|
@@ -1,6 +1,6 @@
|
|
<template>
|
|
<template>
|
|
<div class="__normal-page">
|
|
<div class="__normal-page">
|
|
- <div class="__normal-tree">
|
|
|
|
|
|
+ <div class="__normal-tree" v-loading="loadingTree">
|
|
<div class="tree-filter">
|
|
<div class="tree-filter">
|
|
<CusFormColumn
|
|
<CusFormColumn
|
|
:span="24"
|
|
:span="24"
|
|
@@ -14,14 +14,14 @@
|
|
<template v-for="p in dictTree">
|
|
<template v-for="p in dictTree">
|
|
<div class="tree-parent __hover" :class="{active: p.expend}" @click="p.expend = !p.expend">{{p.name}}</div>
|
|
<div class="tree-parent __hover" :class="{active: p.expend}" @click="p.expend = !p.expend">{{p.name}}</div>
|
|
<template v-if="p.expend">
|
|
<template v-if="p.expend">
|
|
- <template v-for="s in p.children.filter(v => v.name.includes(treeFilter))">
|
|
|
|
- <div class="tree-son __hover" :class="{active: queryForm.dictId === s.value}" @click="queryForm.dictId = s.value">{{s.name}}</div>
|
|
|
|
|
|
+ <template v-for="s in p.children?.filter(v => v.name.includes(treeFilter))">
|
|
|
|
+ <div class="tree-son __hover" :class="{active: selectDict === s.value}" @click="handleTreeClick(s.value)">{{s.name}}</div>
|
|
</template>
|
|
</template>
|
|
</template>
|
|
</template>
|
|
</template>
|
|
</template>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
- <div class="__normal-content">
|
|
|
|
|
|
+ <div class="__normal-content" v-if="selectDict">
|
|
<CusContent
|
|
<CusContent
|
|
v-model:tableHead="tableHead"
|
|
v-model:tableHead="tableHead"
|
|
@handleReset="handleReset"
|
|
@handleReset="handleReset"
|
|
@@ -32,11 +32,11 @@
|
|
<CusFormColumn
|
|
<CusFormColumn
|
|
:span="8"
|
|
:span="8"
|
|
label="字典显示名称:"
|
|
label="字典显示名称:"
|
|
- v-model:param="queryForm.shipId"/>
|
|
|
|
|
|
+ v-model:param="queryForm.dictLabel"/>
|
|
<CusFormColumn
|
|
<CusFormColumn
|
|
:span="8"
|
|
:span="8"
|
|
label="字典值内容:"
|
|
label="字典值内容:"
|
|
- v-model:param="queryForm.shipId"/>
|
|
|
|
|
|
+ v-model:param="queryForm.dictValue"/>
|
|
<CusSearchButtons
|
|
<CusSearchButtons
|
|
@handleReset="handleReset"
|
|
@handleReset="handleReset"
|
|
@handleSearch="onSearch"
|
|
@handleSearch="onSearch"
|
|
@@ -58,7 +58,6 @@
|
|
:page="queryPage.pageNum"
|
|
:page="queryPage.pageNum"
|
|
:pageSize="queryPage.pageSize"
|
|
:pageSize="queryPage.pageSize"
|
|
@handlePage="handlePage"
|
|
@handlePage="handlePage"
|
|
- @handleSort="handleSort"
|
|
|
|
>
|
|
>
|
|
<template #do-column-value="{ scope }">
|
|
<template #do-column-value="{ scope }">
|
|
<div class="__cus-table_do">
|
|
<div class="__cus-table_do">
|
|
@@ -68,7 +67,7 @@
|
|
<div class="__cus-table_do-blue __hover" @click="onEdit(scope.row)">
|
|
<div class="__cus-table_do-blue __hover" @click="onEdit(scope.row)">
|
|
<SvgIcon name="edit" size="16"/>编辑
|
|
<SvgIcon name="edit" size="16"/>编辑
|
|
</div>
|
|
</div>
|
|
- <div class="__cus-table_do-red __hover">
|
|
|
|
|
|
+ <div class="__cus-table_do-red __hover" @click="onDel(scope.row)">
|
|
<SvgIcon name="del" size="16"/>删除
|
|
<SvgIcon name="del" size="16"/>删除
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
@@ -77,7 +76,7 @@
|
|
</template>
|
|
</template>
|
|
</CusContent>
|
|
</CusContent>
|
|
</div>
|
|
</div>
|
|
- <DetailCom v-model:show="showDetail" :transfer="transfer"/>
|
|
|
|
|
|
+ <DetailCom v-model:show="showDetail" :transfer="transfer" @refresh="handleSearch()"/>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</template>
|
|
|
|
|
|
@@ -97,6 +96,7 @@ import {
|
|
import {useStore} from 'vuex'
|
|
import {useStore} from 'vuex'
|
|
import {useRouter, useRoute} from 'vue-router'
|
|
import {useRouter, useRoute} from 'vue-router'
|
|
import DetailCom from './detail.vue'
|
|
import DetailCom from './detail.vue'
|
|
|
|
+import { ElMessage, ElMessageBox } from 'element-plus';
|
|
|
|
|
|
export default defineComponent({
|
|
export default defineComponent({
|
|
name: '',
|
|
name: '',
|
|
@@ -125,38 +125,20 @@ export default defineComponent({
|
|
queryForm: <any>{},
|
|
queryForm: <any>{},
|
|
// 查询表单参数备份
|
|
// 查询表单参数备份
|
|
back_queryForm: {},
|
|
back_queryForm: {},
|
|
- // 查询表格排序
|
|
|
|
- querySort: {},
|
|
|
|
// 表格表头
|
|
// 表格表头
|
|
tableHead: [
|
|
tableHead: [
|
|
- {value: "p1", label: "字典显示名称", show: true},
|
|
|
|
- {value: "p1", label: "字典值内容", show: true},
|
|
|
|
- {value: "p1", label: "排序", show: true},
|
|
|
|
- {value: "p1", label: "更新时间", show: true},
|
|
|
|
- {value: "do", label: "操作", show: true, width: 260},
|
|
|
|
|
|
+ {value: "dictLabel", label: "字典显示名称", show: true},
|
|
|
|
+ {value: "dictValue", label: "字典值内容", show: true},
|
|
|
|
+ {value: "dictSort", label: "排序", show: true},
|
|
|
|
+ {value: "updateTime", label: "更新时间", show: true},
|
|
|
|
+ {value: "do", label: "操作", show: true, popover: true, width: 260},
|
|
],
|
|
],
|
|
showDetail: false,
|
|
showDetail: false,
|
|
transfer: {},
|
|
transfer: {},
|
|
treeFilter: '',
|
|
treeFilter: '',
|
|
- dictTree: [
|
|
|
|
- {
|
|
|
|
- name: '席位管理',
|
|
|
|
- expend: true,
|
|
|
|
- children: [
|
|
|
|
- {name: '值班厅领导', value: 1},
|
|
|
|
- {name: '总值班', value: 2},
|
|
|
|
- {name: '带班领导', value: 3},
|
|
|
|
- {name: '值班长', value: 4},
|
|
|
|
- {name: '值班员', value: 5},
|
|
|
|
- ]
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- name: 'xxx管理',
|
|
|
|
- expend: false,
|
|
|
|
- children: [
|
|
|
|
- ]
|
|
|
|
- },
|
|
|
|
- ]
|
|
|
|
|
|
+ dictTree: [],
|
|
|
|
+ loadingTree: false,
|
|
|
|
+ selectDict: ''
|
|
});
|
|
});
|
|
const ref_cusTable = ref()
|
|
const ref_cusTable = ref()
|
|
// 获取字典
|
|
// 获取字典
|
|
@@ -168,11 +150,6 @@ export default defineComponent({
|
|
state.queryPage.pageSize = pageSize
|
|
state.queryPage.pageSize = pageSize
|
|
handleSearch(page, pageSize)
|
|
handleSearch(page, pageSize)
|
|
}
|
|
}
|
|
- // 查询排序参数改变处理方法
|
|
|
|
- const handleSort = ({key, value}: any) => {
|
|
|
|
- state.querySort = key ? {key: value} : {}
|
|
|
|
- handleSearch()
|
|
|
|
- }
|
|
|
|
// 重置查询表单方法
|
|
// 重置查询表单方法
|
|
const handleReset = () => {
|
|
const handleReset = () => {
|
|
state.queryForm = {}
|
|
state.queryForm = {}
|
|
@@ -185,46 +162,24 @@ export default defineComponent({
|
|
const queryParams: any = {
|
|
const queryParams: any = {
|
|
pageNum: page,
|
|
pageNum: page,
|
|
pageSize: pageSize,
|
|
pageSize: pageSize,
|
|
- sort: {},
|
|
|
|
- text: ''
|
|
|
|
- }
|
|
|
|
- // 添加排序参数
|
|
|
|
- for (const [k, v] of Object.entries(state.querySort)) {
|
|
|
|
- that.$util.isValue(v) ? (queryParams.sort[k] = v) : null;
|
|
|
|
|
|
+ dictType: state.selectDict
|
|
}
|
|
}
|
|
// 添加表单参数
|
|
// 添加表单参数
|
|
for (const [k, v] of Object.entries(state.back_queryForm)) {
|
|
for (const [k, v] of Object.entries(state.back_queryForm)) {
|
|
that.$util.isValue(v) ? (queryParams[k] = v) : null;
|
|
that.$util.isValue(v) ? (queryParams[k] = v) : null;
|
|
}
|
|
}
|
|
- // 添加复合查询参数
|
|
|
|
state.loading = true
|
|
state.loading = true
|
|
-
|
|
|
|
- // mock
|
|
|
|
- const arr: any = []
|
|
|
|
- for (let i = 0; i < 77; i++) {
|
|
|
|
- arr.push({
|
|
|
|
- p1: '阿三顶顶顶顶顶顶顶顶顶顶顶顶顶' + i,
|
|
|
|
- fileList: [
|
|
|
|
- { "url": "http://8.140.240.182:18085/profile/upload/2023/10/23/6b7bf3b4-592a-4e2f-ba92-11923671ce3b.doc", "name": "迁移案例.doc"},
|
|
|
|
- ],
|
|
|
|
- })
|
|
|
|
- }
|
|
|
|
- state.queryResult.tableData = arr
|
|
|
|
- state.queryResult.total = arr.length
|
|
|
|
- state.loading = false
|
|
|
|
- // that.$api.patrolBoatList(that.$util.formatGetParam(queryParams)).then((res: { code: number; rows: never[]; total: number; }) => {
|
|
|
|
- // if (res.code === 200) {
|
|
|
|
- // state.queryResult.tableData = res.rows
|
|
|
|
- // state.queryResult.total = res.total
|
|
|
|
- // }
|
|
|
|
- // setTimeout(() => {
|
|
|
|
- // state.loading = false
|
|
|
|
- // }, 1000)
|
|
|
|
- // }).catch(() => {
|
|
|
|
- // setTimeout(() => {
|
|
|
|
- // state.loading = false
|
|
|
|
- // }, 1000)
|
|
|
|
- // })
|
|
|
|
|
|
+ that.$api.getDictDataList(that.$util.formatGetParam(queryParams)).then((res: any) => {
|
|
|
|
+ if (res.code === 200) {
|
|
|
|
+ state.queryResult.tableData = res.rows
|
|
|
|
+ state.queryResult.total = res.total
|
|
|
|
+ } else {
|
|
|
|
+ ElMessage.error(res.message)
|
|
|
|
+ }
|
|
|
|
+ state.loading = false
|
|
|
|
+ }).catch(() => {
|
|
|
|
+ state.loading = false
|
|
|
|
+ })
|
|
}
|
|
}
|
|
// 点击查询按钮后
|
|
// 点击查询按钮后
|
|
const onSearch = () => {
|
|
const onSearch = () => {
|
|
@@ -236,39 +191,91 @@ export default defineComponent({
|
|
const onAdd = () => {
|
|
const onAdd = () => {
|
|
state.transfer = {
|
|
state.transfer = {
|
|
method: 'add',
|
|
method: 'add',
|
|
|
|
+ dictType: state.selectDict
|
|
}
|
|
}
|
|
state.showDetail = true
|
|
state.showDetail = true
|
|
}
|
|
}
|
|
const onEdit = (val) => {
|
|
const onEdit = (val) => {
|
|
state.transfer = {
|
|
state.transfer = {
|
|
method: 'edit',
|
|
method: 'edit',
|
|
- detail: val
|
|
|
|
|
|
+ detail: JSON.parse(JSON.stringify(val)),
|
|
|
|
+ dictType: state.selectDict
|
|
}
|
|
}
|
|
state.showDetail = true
|
|
state.showDetail = true
|
|
}
|
|
}
|
|
const onView = (val) => {
|
|
const onView = (val) => {
|
|
state.transfer = {
|
|
state.transfer = {
|
|
method: 'view',
|
|
method: 'view',
|
|
- detail: val
|
|
|
|
|
|
+ detail: JSON.parse(JSON.stringify(val))
|
|
}
|
|
}
|
|
state.showDetail = true
|
|
state.showDetail = true
|
|
}
|
|
}
|
|
|
|
+ const initTree = () => {
|
|
|
|
+ state.loadingTree = true
|
|
|
|
+ state.dictTree = []
|
|
|
|
+ that.$api.getDictTypeTreeSelectTree().then(res => {
|
|
|
|
+ if (res.code === 200) {
|
|
|
|
+ state.dictTree = res.data.map((p) => {
|
|
|
|
+ p.expend = false
|
|
|
|
+ p.name = p.label
|
|
|
|
+ p.value = p.attachedField
|
|
|
|
+ if (p.children?.length > 0) {
|
|
|
|
+ p.children = p.children.map(c => {
|
|
|
|
+ c.name = c.label
|
|
|
|
+ c.value = c.attachedField
|
|
|
|
+ return c
|
|
|
|
+ })
|
|
|
|
+ }
|
|
|
|
+ return p
|
|
|
|
+ })
|
|
|
|
+ } else {
|
|
|
|
+ ElMessage.error(res.message)
|
|
|
|
+ }
|
|
|
|
+ state.loadingTree = false
|
|
|
|
+ }).catch(() => {
|
|
|
|
+ state.loadingTree = false
|
|
|
|
+ })
|
|
|
|
+ }
|
|
|
|
+ const handleTreeClick = (val) => {
|
|
|
|
+ state.selectDict = val
|
|
|
|
+ handleSearch()
|
|
|
|
+ }
|
|
|
|
+ const onDel = (val) => {
|
|
|
|
+ ElMessageBox.confirm(`是否删除${val.dictLabel}?`, "提示", {
|
|
|
|
+ confirmButtonText: "确定",
|
|
|
|
+ cancelButtonText: "取消",
|
|
|
|
+ type: "warning",
|
|
|
|
+ }).then(() => {
|
|
|
|
+ state.loading = true
|
|
|
|
+ that.$api.delDictData(val.id).then(res => {
|
|
|
|
+ if (res.code === 200) {
|
|
|
|
+ handleSearch()
|
|
|
|
+ } else {
|
|
|
|
+ ElMessage.error(res.msg)
|
|
|
|
+ state.loading = false
|
|
|
|
+ }
|
|
|
|
+ }).catch(() => {
|
|
|
|
+ state.loading = false
|
|
|
|
+ })
|
|
|
|
+ }).catch(() => {})
|
|
|
|
+ }
|
|
onMounted(() => {
|
|
onMounted(() => {
|
|
state.back_queryForm = JSON.parse(JSON.stringify(state.queryForm))
|
|
state.back_queryForm = JSON.parse(JSON.stringify(state.queryForm))
|
|
initDictionary()
|
|
initDictionary()
|
|
- handleSearch()
|
|
|
|
|
|
+ initTree()
|
|
})
|
|
})
|
|
return {
|
|
return {
|
|
ref_cusTable,
|
|
ref_cusTable,
|
|
...toRefs(state),
|
|
...toRefs(state),
|
|
handleSearch,
|
|
handleSearch,
|
|
handlePage,
|
|
handlePage,
|
|
- handleSort,
|
|
|
|
handleReset,
|
|
handleReset,
|
|
onSearch,
|
|
onSearch,
|
|
onAdd,
|
|
onAdd,
|
|
onEdit,
|
|
onEdit,
|
|
onView,
|
|
onView,
|
|
|
|
+ handleTreeClick,
|
|
|
|
+ onDel
|
|
}
|
|
}
|
|
},
|
|
},
|
|
})
|
|
})
|