Browse Source

档案分类

master
xuhuajiao 2 years ago
parent
commit
d0cf9019ff
  1. 11
      src/api/system/archivesClass.js
  2. 46
      src/views/system/archivesClassify/module/tableList.vue

11
src/api/system/archivesClass.js

@ -9,6 +9,15 @@ export function FetchInitArchivesClass(params) {
}) })
} }
// 获取档案分类树
export function FetchArchivesClassTree(params) {
return request({
url: 'api/archivesClass/getArchivesClassTree',
method: 'get',
params
})
}
export function add(data) { export function add(data) {
return request({ return request({
url: 'api/archivesClass/editArchivesClass', url: 'api/archivesClass/editArchivesClass',
@ -33,4 +42,4 @@ export function del(data) {
}) })
} }
export default { add, edit, del, FetchInitArchivesClass }
export default { add, edit, del, FetchInitArchivesClass, FetchArchivesClassTree }

46
src/views/system/archivesClassify/module/tableList.vue

@ -40,7 +40,6 @@
<el-form-item v-if="crud.status.add === 1" label="所属门类" prop="categoryId"> <el-form-item v-if="crud.status.add === 1" label="所属门类" prop="categoryId">
<treeselect <treeselect
v-model="form.categoryId" v-model="form.categoryId"
:load-options="loadCategorys"
:options="categoryDatas" :options="categoryDatas"
placeholder="选择所属门类" placeholder="选择所属门类"
flat flat
@ -79,8 +78,9 @@
> >
<treeselect <treeselect
v-model="form.pid" v-model="form.pid"
:load-options="loadCategory"
:options="depts"
:load-options="loadClassifyTree"
:options="classifyOptions"
:normalizer="classifyNormalizer"
placeholder="选择上级类目" placeholder="选择上级类目"
/> />
</el-form-item> </el-form-item>
@ -178,6 +178,7 @@ export default {
}, },
data() { data() {
return { return {
classifyOptions: [],
categoryDatas: [], categoryDatas: [],
selections: [], selections: [],
isAllSelect: false, isAllSelect: false,
@ -242,6 +243,7 @@ export default {
// //
[CRUD.HOOK.afterToCU](crud, form) { [CRUD.HOOK.afterToCU](crud, form) {
this.getCategoryDataTree() this.getCategoryDataTree()
this.getClassifyTree()
if (form.id != null) { if (form.id != null) {
if (form.pid === null) { if (form.pid === null) {
form.isTop = '1' form.isTop = '1'
@ -263,13 +265,33 @@ export default {
this.categoryDatas = this.filterData(res) this.categoryDatas = this.filterData(res)
}) })
}, },
getClassifyTree() {
crudClassify.FetchArchivesClassTree().then(res => {
this.classifyOptions = res.map(function(obj) {
if (obj.childArchivesClass !== null) {
obj.hasChildren = true
} else {
obj.hasChildren = false
}
if (obj.hasChildren) {
obj.children = null
}
return obj
})
})
},
// //
loadCategorys({ action, parentNode, callback }) {
loadClassifyTree({ action, parentNode, callback }) {
if (action === LOAD_CHILDREN_OPTIONS) { if (action === LOAD_CHILDREN_OPTIONS) {
FetchCategoryMenu().then(res => {
crudClassify.FetchArchivesClassTree().then(res => {
parentNode.children = res.map(function(obj) { parentNode.children = res.map(function(obj) {
if (obj.children) {
obj.childMenus = null
if (obj.childArchivesClass !== 0) {
obj.hasChildren = true
} else {
obj.hasChildren = false
}
if (obj.hasChildren) {
obj.children = null
} }
return obj return obj
}) })
@ -361,6 +383,16 @@ export default {
children: node.children, children: node.children,
isDisabled: node.isType !== 2 isDisabled: node.isType !== 2
} }
},
classifyNormalizer(node) {
if (node.childArchivesClass && !node.childArchivesClass.length) {
delete node.childArchivesClass
}
return {
id: node.id,
label: node.name,
children: node.childArchivesClass
}
} }
} }
} }

Loading…
Cancel
Save