Browse Source

门类管理档案管理 接口对接

master
z_yu 3 years ago
parent
commit
cec5482353
  1. 2
      src/api/archivesManage/archivesList.js
  2. 27
      src/api/category/fieldManage.js
  3. 83
      src/views/archivesManage/archivesList/archivesDetail.vue
  4. 12
      src/views/category/fieldManage/index.vue
  5. 3
      src/views/category/fieldManage/module/form.vue
  6. 42
      src/views/components/category/SettingForm.vue

2
src/api/archivesManage/archivesList.js

@ -45,4 +45,4 @@ export function del(ids) {
}) })
} }
export default { add, edit, getTableDisplayFields, getFormDisplayFields }
export default { add, edit, del, getTableDisplayFields, getFormDisplayFields }

27
src/api/category/fieldManage.js

@ -0,0 +1,27 @@
import request from '@/utils/request'
export function add(data) {
return request({
url: 'api/archives-type/createDic',
method: 'post',
data
})
}
export function del(ids) {
const data = ids ? ids.join() : ''
return request({
url: 'api/dictrionary/delete',
method: 'post',
data
})
}
export function edit(data) {
return request({
url: 'api/archives-type/update',
method: 'put',
data
})
}
export default { add, edit, del }

83
src/views/archivesManage/archivesList/archivesDetail.vue

@ -5,32 +5,10 @@
<div class="head-archives-top"> <div class="head-archives-top">
<div class="head-search"> <div class="head-search">
<!-- 搜索 --> <!-- 搜索 -->
<el-input
v-model="query.blurry"
clearable
size="small"
placeholder="请输入关键词"
prefix-icon="el-icon-search"
style="width: 200px;"
class="filter-item"
@keyup.enter.native="crud.toQuery"
/>
<el-select
v-model="query.enabled"
clearable
size="small"
placeholder="状态"
class="filter-item"
style="width: 126px"
@change="crud.toQuery"
>
<el-input v-model="query.blurry" clearable size="small" placeholder="请输入关键词" prefix-icon="el-icon-search" style="width: 200px;" class="filter-item" @keyup.enter.native="crud.toQuery" />
<el-select v-model="query.enabled" clearable size="small" placeholder="状态" class="filter-item" style="width: 126px" @change="crud.toQuery">
<i slot="prefix" class="iconfont icon-zhuangtai-fanbai" /> <i slot="prefix" class="iconfont icon-zhuangtai-fanbai" />
<el-option
v-for="item in stateOptions"
:key="item.key"
:label="item.label"
:value="item.key"
/>
<el-option v-for="item in stateOptions" :key="item.key" :label="item.label" :value="item.key" />
</el-select> </el-select>
<rrOperation /> <rrOperation />
</div> </div>
@ -52,7 +30,7 @@
<span class="dialog-right-top" /> <span class="dialog-right-top" />
<span class="dialog-left-bottom" /> <span class="dialog-left-bottom" />
<div class="setting-dialog"> <div class="setting-dialog">
<PreviewForm :is-disabled="false" />
<PreviewForm :is-disabled="false" :this-fields="form" />
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button type="text" @click="crud.cancelCU">取消</el-button> <el-button type="text" @click="crud.cancelCU">取消</el-button>
<el-button :loading="crud.status.cu === 2" type="primary" @click="crud.submitCU">确认</el-button> <el-button :loading="crud.status.cu === 2" type="primary" @click="crud.submitCU">确认</el-button>
@ -83,17 +61,7 @@
</div> </div>
</el-dialog> </el-dialog>
<!--表格渲染--> <!--表格渲染-->
<el-table
ref="table"
v-loading="crud.loading || getTableDisplayFieldsLoading"
class="archives-table"
:data="crud.data"
highlight-current-row
style="width: 100%; "
height="calc(100vh - 370px)"
@selection-change="crud.selectionChangeHandler"
@row-click="clickRowHandler"
>
<el-table ref="table" v-loading="crud.loading || getTableDisplayFieldsLoading" class="archives-table" :data="crud.data" highlight-current-row style="width: 100%; " height="calc(100vh - 370px)" @selection-change="crud.selectionChangeHandler" @row-click="clickRowHandler">
<el-table-column type="selection" width="55" align="center" /> <el-table-column type="selection" width="55" align="center" />
<el-table-column type="index" label="序号" width="55" align="center" /> <el-table-column type="index" label="序号" width="55" align="center" />
<el-table-column v-for="field in tableDisplayFields" :key="field.id" :label="field.fieldCnName" :align="field.displayformatType" :width="field.displayLength" show-overflow-tooltip> <el-table-column v-for="field in tableDisplayFields" :key="field.id" :label="field.fieldCnName" :align="field.displayformatType" :width="field.displayLength" show-overflow-tooltip>
@ -133,7 +101,7 @@
</template> </template>
<script> <script>
import { add, edit, getTableDisplayFields, getFormDisplayFields } from '@/api/archivesManage/archivesList'
import { add, edit, del, getTableDisplayFields, getFormDisplayFields } from '@/api/archivesManage/archivesList'
import CRUD, { presenter, header, form } from '@crud/crud' import CRUD, { presenter, header, form } from '@crud/crud'
import crudOperation from '@crud/CRUD.operation' import crudOperation from '@crud/CRUD.operation'
import rrOperation from '@crud/RR.operation' import rrOperation from '@crud/RR.operation'
@ -151,13 +119,7 @@ export default {
selectedCategory: { selectedCategory: {
type: Object, type: Object,
default: function() { default: function() {
return {
cnName: '',
isType: '',
parentName: '',
isColumnLength: '',
remark: ''
}
return {}
} }
} }
}, },
@ -166,8 +128,8 @@ export default {
CRUD({ CRUD({
title: '档案', title: '档案',
url: 'api/archives/initArchivesView', url: 'api/archives/initArchivesView',
query: { categoryId: 'FFAFBB1647D459C82080A', isdel: false },
crudMethod: { add, edit },
query: { isdel: false },
crudMethod: { add, edit, del },
optShow: { optShow: {
add: true, add: true,
edit: true, edit: true,
@ -176,7 +138,7 @@ export default {
download: true, download: true,
group: false group: false
}, },
// queryOnPresenterCreated: false,
queryOnPresenterCreated: false,
sort: ['department,asc'] sort: ['department,asc']
}) })
] ]
@ -221,18 +183,28 @@ export default {
defaultForm: {} defaultForm: {}
} }
}, },
watch: {
selectedCategory: function(newValue, oldValue) {
//
if (newValue.isType === 3 || newValue.isType === 4 || newValue.isType === 5) {
this.crud.query.categoryId = newValue.id
this.crud.refresh()
}
}
},
methods: { methods: {
[CRUD.HOOK.beforeRefresh]() { [CRUD.HOOK.beforeRefresh]() {
this.getTableDisplayFieldsLoading = true this.getTableDisplayFieldsLoading = true
// //
getTableDisplayFields({ categoryId: 'FFAFBB1647D459C82080A' }).then(data => {
this.tableDisplayFields = data.filter((fields) => { return fields.isDisplay })
getTableDisplayFields({ categoryId: this.selectedCategory.id }).then(data => {
this.tableDisplayFields = data
this.getTableDisplayFieldsLoading = false this.getTableDisplayFieldsLoading = false
return true return true
}) })
}, },
[CRUD.HOOK.beforeToCU]() { [CRUD.HOOK.beforeToCU]() {
getFormDisplayFields({ categoryId: 'FFAFBB1647D459C82080A' }).then(data => {
this.form.dictionaryConfigId = {}
getFormDisplayFields({ categoryId: this.selectedCategory.id }).then(data => {
this.formPreviewData = data.showFiled.filter((fields) => { return fields.isInput }) this.formPreviewData = data.showFiled.filter((fields) => { return fields.isInput })
this.formPreviewData.map(item => { this.formPreviewData.map(item => {
this.rules[item.fieldName] = [ this.rules[item.fieldName] = [
@ -247,15 +219,8 @@ export default {
} else { } else {
this.crud.defaultForm[item.fieldName] = null this.crud.defaultForm[item.fieldName] = null
} }
if (item.sysDictionaryId) {
// this.$nextTick(() => {
// //
// this.getDict(item.sysDictionaryId)
// })
}
}) })
this.crud.defaultForm.categoryId = 'FFAFBB1647D459C82080A'
this.form.categoryId = 'FFAFBB1647D459C82080A'
this.form.categoryId = this.selectedCategory.id
return true return true
}) })
}, },

12
src/views/category/fieldManage/index.vue

@ -30,7 +30,7 @@
<span v-if="scope.row.isInputClass === 'textarea'">文本域</span> <span v-if="scope.row.isInputClass === 'textarea'">文本域</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="sysDictionaryId" label="对应字典" min-width="85" />
<el-table-column prop="dictionaryConfigId.dicName" label="对应字典" min-width="85" />
<el-table-column prop="editLength" label="显示长度" min-width="85" /> <el-table-column prop="editLength" label="显示长度" min-width="85" />
<el-table-column label="显示一整行" min-width="110" align="center"> <el-table-column label="显示一整行" min-width="110" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
@ -81,16 +81,19 @@
</template> </template>
<script> <script>
import { add, edit } from '@/api/archivesConfig/field'
import { add, edit } from '@/api/category/fieldManage'
import eForm from './module/form' import eForm from './module/form'
import CRUD, { presenter } from '@crud/crud' import CRUD, { presenter } from '@crud/crud'
import crudOperation from '@crud/CRUD.operation' import crudOperation from '@crud/CRUD.operation'
export default { export default {
components: { eForm, crudOperation }, components: { eForm, crudOperation },
mixins: [presenter()],
mixins: [
presenter()
],
cruds() { cruds() {
return CRUD({ return CRUD({
debugger: 'true',
tag: 'field', tag: 'field',
url: 'api/archives-type/manage', url: 'api/archives-type/manage',
crudMethod: { add, edit }, crudMethod: { add, edit },
@ -153,6 +156,9 @@ export default {
[CRUD.HOOK.beforeRefresh]() { [CRUD.HOOK.beforeRefresh]() {
this.crud.query.categoryId = this.selectedCategory.id this.crud.query.categoryId = this.selectedCategory.id
}, },
[CRUD.HOOK.beforeToCU](crud) {
crud.selections[0].dictionaryConfigId = crud.selections[0].dictionaryConfigId || {}
},
clickRowHandler(row) { clickRowHandler(row) {
this.$refs.fieldTable.clearSelection() this.$refs.fieldTable.clearSelection()
this.$refs.fieldTable.toggleRowSelection(row) this.$refs.fieldTable.toggleRowSelection(row)

3
src/views/category/fieldManage/module/form.vue

@ -3,7 +3,7 @@
<span class="dialog-right-top" /> <span class="dialog-right-top" />
<span class="dialog-left-bottom" /> <span class="dialog-left-bottom" />
<div class="setting-dialog"> <div class="setting-dialog">
<SettingForm ref="editForm" :is-disabled="false" :is-add="true" :this-fields="{}" />
<SettingForm ref="editForm" :is-disabled="false" :is-add="crud.status.add === 1" :this-fields="form" />
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button :loading="crud.status.cu === 2" type="primary" @click="crud.submitCU"> <el-button :loading="crud.status.cu === 2" type="primary" @click="crud.submitCU">
保存 保存
@ -18,6 +18,7 @@ import { form } from '@crud/crud'
import SettingForm from '@/views/components/category/SettingForm' import SettingForm from '@/views/components/category/SettingForm'
const defaultForm = { const defaultForm = {
dictionaryConfigId: {}
} }
export default { export default {
components: { SettingForm }, components: { SettingForm },

42
src/views/components/category/SettingForm.vue

@ -31,10 +31,10 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="对应字典" prop="sysDictionaryId">
<el-input v-if="isDisabled" v-model="form.sysDictionaryId" readonly />
<el-form-item label="对应字典" prop="dictionaryConfigId">
<el-input v-if="isDisabled" v-model="form.dictionaryConfigId.dicName" readonly />
<!-- @change="selectDictionary" --> <!-- @change="selectDictionary" -->
<el-select v-else v-model="form.sysDictionaryId" placeholder="" value-key="dicName">
<el-select v-else v-model="form.dictionaryConfigId.id" placeholder="" value-key="id">
<el-option v-for="item in dictionaryData" :key="item.id" :label="item.dicName" :value="item.id" /> <el-option v-for="item in dictionaryData" :key="item.id" :label="item.dicName" :value="item.id" />
</el-select> </el-select>
</el-form-item> </el-form-item>
@ -48,27 +48,27 @@
<el-col :span="9"> <el-col :span="9">
<el-form-item class="checkbox-item"> <el-form-item class="checkbox-item">
<span>显示一整行</span> <span>显示一整行</span>
<el-checkbox v-model="form.isLine" label="" name="isLine" :disabled="isDisabled" @change="changeIsLine" />
<el-checkbox v-model="form.isLine" name="isLine" :disabled="isDisabled" @change="changeIsLine" />
</el-form-item> </el-form-item>
<el-form-item class="checkbox-item"> <el-form-item class="checkbox-item">
<span>输入字段</span> <span>输入字段</span>
<el-checkbox v-model="form.isInput" label="" name="isInput" :disabled="isDisabled" />
<el-checkbox v-model="form.isInput" name="isInput" :disabled="isDisabled" />
</el-form-item> </el-form-item>
<el-form-item class="checkbox-item"> <el-form-item class="checkbox-item">
<span>必填字段</span> <span>必填字段</span>
<el-checkbox v-model="form.isRequired" label="" name="isRequired" :disabled="isDisabled" />
<el-checkbox v-model="form.isRequired" name="isRequired" :disabled="isDisabled" />
</el-form-item> </el-form-item>
<el-form-item class="checkbox-item"> <el-form-item class="checkbox-item">
<span>自动生成</span> <span>自动生成</span>
<el-checkbox v-model="form.isAutomatic" label="" name="isAutomatic" :disabled="isDisabled" @change="changeAuto" />
<el-checkbox v-model="form.isAutomatic" name="isAutomatic" :disabled="isDisabled" @change="changeAuto" />
</el-form-item> </el-form-item>
<el-form-item class="checkbox-item"> <el-form-item class="checkbox-item">
<span>值不重复</span> <span>值不重复</span>
<el-checkbox v-model="form.isRepeat" label="" name="isRepeat" :disabled="isDisabled" />
<el-checkbox v-model="form.isRepeat" name="isRepeat" :disabled="isDisabled" />
</el-form-item> </el-form-item>
<el-form-item class="checkbox-item"> <el-form-item class="checkbox-item">
<span>自动补零</span> <span>自动补零</span>
<el-checkbox v-model="form.isFilling" label="" name="isFilling" :disabled="isDisabled" @change="changeSupplement" />
<el-checkbox v-model="form.isFilling" name="isFilling" :disabled="isDisabled" @change="changeSupplement" />
</el-form-item> </el-form-item>
<el-form-item class="input-num" label="位数" prop="fillingDigit"> <el-form-item class="input-num" label="位数" prop="fillingDigit">
<el-input v-if="isDisabled" v-model="form.fillingDigit" readonly /> <el-input v-if="isDisabled" v-model="form.fillingDigit" readonly />
@ -341,17 +341,17 @@ export default {
} }
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.des-form{
width: 496px;
padding: 20px 38px 20px 20px;
margin-top: 30px;
border-radius: 4px;
background-color: #02255F;
::v-deep .el-checkbox,
::v-deep .el-checkbox__input,
::v-deep .el-checkbox__input.is-disabled .el-checkbox__inner,
::v-deep .el-checkbox__inner::after{
cursor: default;
}
.des-form {
width: 496px;
padding: 20px 38px 20px 20px;
margin-top: 30px;
border-radius: 4px;
background-color: #02255f;
::v-deep .el-checkbox,
::v-deep .el-checkbox__input,
::v-deep .el-checkbox__input.is-disabled .el-checkbox__inner,
::v-deep .el-checkbox__inner::after {
cursor: default;
} }
}
</style> </style>
Loading…
Cancel
Save