<!--
|
* @Author: lzhe lzhe@example.com
|
* @Date: 2024-03-26 10:28:33
|
* @LastEditors: lzhe lzhe@example.com
|
* @LastEditTime: 2024-04-02 18:28:33
|
* @FilePath: /smart-web/src/views/master/person/main/index.vue
|
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
-->
|
<template>
|
<el-dialog title="字典名称字典配置" v-model="visible" :width="1000" destroy-on-close @closed="$emit('closed')">
|
<div class="dict-main">
|
<el-form :inline="true" :model="searchData" label-width="80px">
|
<el-form-item label="字典编号">
|
<el-input v-model="searchData.code" placeholder="字典编号" clearable />
|
</el-form-item>
|
<el-form-item label="字典名称">
|
<el-input v-model="searchData.dictValue" placeholder="字典名称" clearable></el-input>
|
</el-form-item>
|
<el-form-item>
|
<el-button type="primary" @click="searchModalclick">搜索</el-button>
|
<el-button @click="searchClearModalBtn">清空</el-button>
|
</el-form-item>
|
</el-form>
|
<div>
|
<div class="dict-Btn">
|
<div class="dict-btn-bottom">
|
<el-button type="primary" @click="addAllocation">+ 新增</el-button>
|
<el-button type="danger" plain @click="delAllocation">删除</el-button>
|
</div>
|
</div>
|
<div class="dict-table">
|
<el-table ref="modalTeTableRef" :data="allocationTableData" border style="width: 100%" class="modalTeTableRef" row-key="id" @selection-change="modalSelectionChange" :tree-props="{ children: 'children', hasChildren: 'hasChildren' }">
|
<el-table-column type="selection" width="55" />
|
<el-table-column prop="code" label="字典编号" width="220"></el-table-column>
|
<el-table-column prop="dictValue" label="字典名称"></el-table-column>
|
<el-table-column prop="dictKey" label="字典键值"></el-table-column>
|
<el-table-column prop="isSealed" label="封存" width="60">
|
<template #default="scope">
|
<div>{{scope.row.isSealed == 0?"否":"是"}}</div>
|
</template>
|
</el-table-column>
|
<el-table-column fixed="right" label="操作" width="160">
|
<template #default="scope">
|
<el-button text type="primary" size="small" @click="table_show(scope.row, scope.$index)">查看</el-button>
|
<el-button type="text" size="small" @click="table_edit(scope.row, scope.$index)">编辑</el-button>
|
<el-button text type="primary" size="small" @click="table_del(scope.row, scope.$index)">删除</el-button>
|
<el-button text type="primary" size="small" @click="table_allocation(scope.row, scope.$index)">新增子项</el-button>
|
</template>
|
</el-table-column>
|
</el-table>
|
<el-pagination
|
@size-change="handleSizeChange"
|
@current-change="handleCurrentChange"
|
:current-page="currentPage4"
|
:page-sizes="[15, 50, 100]"
|
:page-size="15"
|
layout="total, sizes, prev, pager, next, jumper"
|
:total="400">
|
</el-pagination>
|
</div>
|
</div>
|
</div>
|
<SubitemAdd-dict v-if="dialog.allocation" ref="SubitemAddDict" @success="allocationSuccess" @closed="dialog.allocation=false"></SubitemAdd-dict>
|
</el-dialog>
|
|
</template>
|
<script>
|
import SubitemAddDict from './SubitemAddDict'
|
export default {
|
emits: ['success', 'closed'],
|
data(){
|
return {
|
oldRow: {},
|
selection: [],
|
mode: "edit",
|
visible: false,
|
searchData: {
|
code: "",
|
dictValue: "",
|
current: "1",
|
size: "15",
|
parentId: ""
|
},
|
dialog: {
|
allocation: false
|
},
|
leftActive: true,
|
input: '',
|
options: [{
|
value: '选项1',
|
label: '黄金糕'
|
}],
|
input3: '',
|
allocationTableData: [],
|
}
|
},
|
created(){
|
|
},
|
mounted(){
|
},
|
components: {
|
SubitemAddDict
|
},
|
methods: {
|
allocationSuccess(val) {
|
this.searchBtn();
|
},
|
searchModalclick() {
|
this.searchData.current = "1";
|
this.searchData.size = "15";
|
this.searchBtn();
|
},
|
searchClearModalBtn() {
|
this.searchData.current = "1";
|
this.searchData.size = "15";
|
this.searchData.code = "";
|
this.searchData.dictValue = "";
|
this.searchBtn();
|
},
|
searchBtn() {
|
this.$HTTP.get("/api/blade-system/dict/child-list",this.searchData).then(res=> {
|
if(res.code == 200) {
|
this.allocationTableData = res.data;
|
//this.total = res.data.total;
|
}
|
})
|
},
|
//字典配置
|
table_allocation(row) {
|
this.addAllocation(row,"subitem");
|
},
|
showDict() {
|
this.$HTTP.get("/api/blade-system/dict/tree?code=DICT").then(res=> {
|
if(res.code == 200) {
|
res.data.forEach(item=> {
|
if(item.id == this.addAllocationForm.parentId) {
|
this.addAllocationForm.$parentId = item.title;
|
}
|
})
|
this.parentData = res.data;
|
}
|
})
|
},
|
//删除
|
table_del(row) {
|
var that = this;
|
this.$confirm(`确定将选择数据删除?`, '', {
|
type: 'warning'
|
}).then(() => {
|
this.$HTTP.post("/api/blade-system/dict/remove?ids="+row.id).then(res=> {
|
if(res.code == 200) {
|
that.$message.success("操作成功");
|
that.searchBtn();
|
}
|
})
|
}).catch(() => {
|
|
})
|
},
|
//添加
|
addAllocation(row,type){
|
this.dialog.allocation = true;
|
this.$nextTick(() => {
|
if(type == "subitem") { //添加子项
|
this.$refs.SubitemAddDict.open('edit').setData(row)
|
}else {
|
this.$refs.SubitemAddDict.open('edit').setData(this.oldRow)
|
}
|
})
|
},
|
table_edit(row){
|
this.dialog.allocation = true
|
row.mode = "edit";
|
this.$nextTick(() => {
|
this.$refs.SubitemAddDict.open('edit').setData(row)
|
})
|
},
|
//查看
|
table_show(row){
|
this.dialog.allocation = true
|
row.mode = "show";
|
this.$nextTick(() => {
|
this.$refs.SubitemAddDict.open('show').setData(row)
|
})
|
},
|
modalSelectionChange(selection) {
|
this.selection = selection;
|
},
|
delAllocation() {
|
if(this.selection.length == 0) {
|
this.$message({
|
message: '请选择至少一条数据',
|
type: 'warning'
|
});
|
return;
|
}
|
var selStr = "";
|
this.selection.map(item=> {
|
selStr += item.id + ","
|
})
|
selStr = selStr.replace(/,$/, '');
|
var that = this;
|
this.$HTTP.post("/api/blade-system/dict/remove?ids="+selStr).then(res=> {
|
if(res.code == 200) {
|
that.$message.success("操作成功");
|
that.searchModalclick();
|
}
|
})
|
},
|
changeDepartment() {
|
this.departmentVisible = true;
|
},
|
changeTab(name) {
|
if(name == 1) {
|
this.leftActive = true;
|
}else {
|
this.leftActive = false;
|
}
|
},
|
handleSizeChange(val) {
|
console.log(`每页 ${val} 条`);
|
},
|
handleCurrentChange(val) {
|
console.log(`当前页: ${val}`);
|
},
|
//表单注入数据
|
setData(row){
|
//可以和上面一样单个注入,也可以像下面一样直接合并进去
|
this.searchData.parentId = row.id;
|
this.oldRow = row;
|
this.searchBtn();
|
},
|
//显示
|
open(mode='add'){
|
this.mode = mode;
|
this.visible = true;
|
return this
|
}
|
}
|
}
|
</script>
|
|
<style scoped>
|
.dict-main {
|
background-color: #fff;
|
margin: 8px;
|
padding: 8px;
|
}
|
.dict-Btn {
|
display: flex;
|
justify-content: space-between;
|
border-bottom: 1px solid #dcdfe6;
|
margin-bottom: 8px;
|
padding-left: 8px;
|
padding-right: 8px;
|
}
|
.searchStatus {
|
margin-right: 6px;
|
width: 200px;
|
}
|
.dict-btn-bottom {
|
padding-left: 8px;
|
padding-right: 8px;
|
margin-bottom: 8px;
|
}
|
.dict-table {
|
padding-left: 8px;
|
padding-right: 8px;
|
margin-bottom: 8px;
|
|
}
|
.modalTeTableRef {
|
margin-bottom: 8px;
|
}
|
</style>
|