Browse Source

门类管理 树状接口对接

master
z_yu 3 years ago
parent
commit
1245456a69
  1. 45
      src/api/category/category.js
  2. 8
      src/views/archivesManage/archivesList/index.vue
  3. 100
      src/views/category/form.vue
  4. 20
      src/views/category/index.vue

45
src/api/category/category.js

@ -0,0 +1,45 @@
import request from '@/utils/request'
export function getCategoryTree() {
return request({
url: 'api/archives-type/menu',
method: 'get'
})
}
export function getCategoryType() {
return request({
url: 'api/archives-type/dropdown-list',
method: 'get'
})
}
export function add(data) {
data = Object.assign({ isTypeMetic: data.isType === '6' }, data)
return request({
url: 'api/archives-type/create',
method: 'post',
data
})
}
export function del(ids) {
const data = {
id: ids[0]
}
return request({
url: 'api/dictrionary/delete',
method: 'post',
data
})
}
export function edit(data) {
return request({
url: 'api/dictrionary/edit',
method: 'post',
data
})
}
export default { add, edit, del, getCategoryTree }

8
src/views/archivesManage/archivesList/index.vue

@ -20,7 +20,7 @@
<script>
import archivesDetail from './archivesDetail'
import crudDict from '@/api/archivesConfig/dict'
import crudCategory from '@/api/category/category'
import CRUD, { presenter } from '@crud/crud'
export default {
@ -30,7 +30,7 @@ export default {
return [
CRUD({
title: '门类', url: 'api/dictrionary/menu',
crudMethod: { ...crudDict },
crudMethod: { ...crudCategory },
sort: ['dicSequence,asc']
})
]
@ -39,8 +39,8 @@ export default {
data() {
return {
defaultProps: {
children: 'childMenus',
label: 'dicName'
children: 'children',
label: 'cnName'
}
}
},

100
src/views/category/form.vue

@ -5,19 +5,19 @@
<span class="dialog-left-bottom" />
<div class="setting-dialog">
<el-form ref="form" :model="form" :rules="rules" size="small" label-width="80px">
<el-form-item label="门类名称" prop="dicName">
<el-input v-model="form.dicName" style="width: 370px;" />
<el-form-item label="门类名称" prop="cnName">
<el-input v-model="form.cnName" style="width: 370px;" />
</el-form-item>
<el-form-item label="门类类型" prop="dicCode">
<el-select v-model="form.dicCode" style="width: 370px;" @change="changeType">
<el-form-item label="门类类型" prop="isType">
<el-select v-model="form.isType" style="width: 370px;" @change="changeType">
<el-option v-for="item in selectOptions" :key="item.value" :label="item.label" :value="item.value" />
</el-select>
</el-form-item>
<el-form-item label="选择模板" prop="dicExplain">
<treeselect v-model="form.dicExplain" :options="templateTree" placeholder="" style="width: 370px;" :disabled="form.dicCode !== '6'" :normalizer="normalizer" />
<treeselect v-model="form.dicExplain" :options="templateTree" placeholder="" style="width: 370px;" :disabled="form.isType !== '6'" :normalizer="normalizer" />
</el-form-item>
<el-form-item label="内容说明">
<el-input v-model="form.dicExplain" style="width: 370px;" type="textarea" :rows="4" />
<el-input v-model="form.remark" style="width: 370px;" type="textarea" :rows="4" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
@ -29,91 +29,61 @@
</template>
<script>
import crudDict from '@/api/archivesConfig/dict'
import { getCategoryTree, getCategoryType } from '@/api/category/category'
import { form } from '@crud/crud'
import Treeselect from '@riophae/vue-treeselect'
import '@riophae/vue-treeselect/dist/vue-treeselect.css'
const defaultForm = { id: null, dicName: null, dicCode: '1', dicExplain: null, dicType: true }
const defaultForm = { id: null, cnName: null, isType: '1', remark: null }
export default {
components: { Treeselect },
mixins: [form(defaultForm)],
mixins: [
form(function() {
return Object.assign({ pid: this.pid }, defaultForm)
})
],
data() {
return {
pid: null,
rules: {
dicName: [
{ required: true, message: '请输入字典名称', trigger: 'blur' }
cnName: [
{ required: true, message: '请输入门类名称', trigger: 'blur' }
]
},
selectOptions: [
{
value: '1',
label: '文件夹'
},
{
value: '2',
label: '项目'
},
{
value: '3',
label: '案卷'
},
{
value: '4',
label: '卷内'
},
{
value: '5',
label: '文件'
},
{
value: '6',
label: '选择模板'
}
],
templateTree: [
{
id: 'a',
label: 'a',
children: [
{
id: 'aa',
label: 'aa'
},
{
id: 'ab',
label: 'ab'
}
]
},
{
id: 'b',
label: 'b'
},
{
id: 'c',
label: 'c'
}
]
selectOptions: [],
templateTree: []
}
},
created() {
this.getSelectOptions()
},
methods: {
changeType() {
if (this.form.dicCode === '6') {
if (this.form.isType === '6') {
// this.crudDict.getDicts()
this.getTemplateTree()
}
},
getTemplateTree() {
crudDict.getDicts().then(res => {
getCategoryTree().then(res => {
this.templateTree = res
})
},
getSelectOptions() {
getCategoryType().then(res => {
for (const key in res) {
this.selectOptions.push({
value: key,
label: res[key]
})
}
})
},
normalizer(node) {
return {
id: node.id,
label: node.dicName,
children: node.childMenus
label: node.cnName,
children: node.children
}
}
}

20
src/views/category/index.vue

@ -1,7 +1,7 @@
<template>
<div class="app-container">
<!--修改新增表单组件-->
<eForm />
<eForm ref="eform" />
<el-dialog title="确认删除" :visible.sync="deleteVisible" :before-close="handleClose">
<span class="dialog-right-top" />
<span class="dialog-left-bottom" />
@ -31,6 +31,11 @@
<span class="right-top-line" />
<span class="left-bottom-line" />
<crudOperation :permission="permission">
<template v-slot:left>
<el-button v-permission="permission.add" size="mini" icon="el-icon-plus" :disabled="crud.selections.length === 0" @click="crud.toAdd">
新增
</el-button>
</template>
<template v-slot:right>
<el-button v-permission="permission.del" icon="el-icon-delete" size="mini" :loading="crud.delAllLoading" :disabled="crud.selections.length === 0" @click="toDelete(crud.selections)">删除</el-button>
<el-button v-permission="permission.sort" icon="el-icon-sort" size="mini" :loading="sortLoading" :disabled="!crud.selections[0]||!crud.selections[0].childMenus || crud.selections[0].childMenus.length <= 1" @click="toSort(crud.selections)">排序</el-button>
@ -60,7 +65,7 @@
</template>
<script>
import crudDict from '@/api/archivesConfig/dict'
import crudCategory from '@/api/category/category'
import CRUD, { presenter, header } from '@crud/crud'
import eForm from './form'
import sortDialog from './sortDialog'
@ -79,10 +84,10 @@ export default {
cruds() {
return [
CRUD({
title: '门类', url: 'api/dictrionary/menu',
crudMethod: { ...crudDict },
title: '门类', url: 'api/archives-type/menu',
crudMethod: { ...crudCategory },
optShow: {
add: true,
add: false,
edit: true,
del: false,
download: false,
@ -108,8 +113,8 @@ export default {
sort: ['admin', 'category:sort']
},
defaultProps: {
children: 'childMenus',
label: 'dicName'
children: 'children',
label: 'cnName'
},
// activeAddBtn: false,
deleteVisible: false,
@ -151,6 +156,7 @@ export default {
handleNodeClick(val) {
if (val) {
this.crud.selectionChangeHandler([val])
this.$refs.eform.pid = val.id
console.log(this.crud.selectionChangeHandler([val]))
// this.$refs.dictDetail.query.id = val.id
// this.$refs.dictDetail.dicPid = val.id

Loading…
Cancel
Save