|
|
@@ -1,49 +1,79 @@
|
|
|
<!-- 字典编辑弹窗 -->
|
|
|
<template>
|
|
|
<ele-modal
|
|
|
- width="460px"
|
|
|
+ width="800px"
|
|
|
+ :maxable="true"
|
|
|
:visible="visible"
|
|
|
:close-on-click-modal="true"
|
|
|
:title="isUpdate ? '修改字典' : '添加字典'"
|
|
|
@update:visible="updateVisible"
|
|
|
>
|
|
|
- <el-form ref="form" :model="form" :rules="rules" label-width="82px">
|
|
|
- <el-form-item label="字典名称:" prop="dictName">
|
|
|
- <el-input
|
|
|
- clearable
|
|
|
- :maxlength="20"
|
|
|
- v-model="form.dictName"
|
|
|
- placeholder="请输入字典名称"
|
|
|
- />
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="字典值:" prop="dictCode">
|
|
|
- <el-input
|
|
|
- clearable
|
|
|
- :maxlength="20"
|
|
|
- v-model="form.dictCode"
|
|
|
- placeholder="请输入字典值"
|
|
|
- />
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="排序号:" prop="sortNumber">
|
|
|
- <el-input-number
|
|
|
- :min="0"
|
|
|
- :max="9999"
|
|
|
- v-model="form.sortNumber"
|
|
|
- controls-position="right"
|
|
|
- placeholder="请输入排序号"
|
|
|
- class="ele-fluid ele-text-left"
|
|
|
- />
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="备注:">
|
|
|
- <el-input
|
|
|
- :rows="4"
|
|
|
- type="textarea"
|
|
|
- :maxlength="200"
|
|
|
- v-model="form.comments"
|
|
|
- placeholder="请输入备注"
|
|
|
- />
|
|
|
- </el-form-item>
|
|
|
+ <el-form ref="form" :model="form" :rules="rules" label-width="85px">
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="字典名称:" prop="name">
|
|
|
+ <el-input
|
|
|
+ clearable
|
|
|
+ :disabled="isUpdate"
|
|
|
+ :maxlength="20"
|
|
|
+ v-model="form.name"
|
|
|
+ placeholder="请输入字典名称"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="字典值:" prop="code">
|
|
|
+ <el-input
|
|
|
+ clearable
|
|
|
+ :maxlength="20"
|
|
|
+ v-model="form.code"
|
|
|
+ placeholder="请输入字典值"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="应用类型:" prop="appType">
|
|
|
+ <el-radio-group v-model="form.appType">
|
|
|
+ <el-radio :label="1">业务字典</el-radio>
|
|
|
+ <el-radio :label="2">数据字典</el-radio>
|
|
|
+ </el-radio-group>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="是否启用:" prop="enable">
|
|
|
+ <el-radio-group v-model="form.enable">
|
|
|
+ <el-radio :label="1">是</el-radio>
|
|
|
+ <el-radio :label="0">否</el-radio>
|
|
|
+ </el-radio-group>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <!-- <el-col :span="12">
|
|
|
+ <el-form-item label="排序号:" prop="sortNumber">
|
|
|
+ <el-input-number
|
|
|
+ :min="0"
|
|
|
+ :max="9999"
|
|
|
+ v-model="form.sortNumber"
|
|
|
+ controls-position="right"
|
|
|
+ placeholder="请输入排序号"
|
|
|
+ class="ele-fluid ele-text-left"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col> -->
|
|
|
+
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-form-item label="备注:">
|
|
|
+ <el-input
|
|
|
+ :rows="4"
|
|
|
+ type="textarea"
|
|
|
+ :maxlength="200"
|
|
|
+ v-model="form.remark"
|
|
|
+ placeholder="请输入备注"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
</el-form>
|
|
|
+
|
|
|
<template v-slot:footer>
|
|
|
<el-button @click="updateVisible(false)">取消</el-button>
|
|
|
<el-button type="primary" :loading="loading" @click="save">
|
|
|
@@ -55,43 +85,71 @@
|
|
|
|
|
|
<script>
|
|
|
import { addDictionary, updateDictionary } from '@/api/system/dictionary';
|
|
|
+ import {
|
|
|
+ pageDictionaryData,
|
|
|
+ removeDictionaryData,
|
|
|
+ removeDictionaryDataBatch
|
|
|
+ } from '@/api/system/dictionary-data';
|
|
|
|
|
|
export default {
|
|
|
+ created() {},
|
|
|
props: {
|
|
|
// 弹窗是否打开
|
|
|
visible: Boolean,
|
|
|
// 修改回显的数据
|
|
|
- data: Object
|
|
|
+ id: String
|
|
|
},
|
|
|
data() {
|
|
|
const defaultForm = {
|
|
|
- dictId: null,
|
|
|
- dictName: '',
|
|
|
- dictCode: '',
|
|
|
- sortNumber: null,
|
|
|
- comments: ''
|
|
|
+ name: '',
|
|
|
+ code: '',
|
|
|
+ appType: 1,
|
|
|
+ enable: 1,
|
|
|
+ remark: '',
|
|
|
+ dictStaticSubmitPOList: []
|
|
|
};
|
|
|
return {
|
|
|
defaultForm,
|
|
|
// 表单数据
|
|
|
form: { ...defaultForm },
|
|
|
+ // form: {
|
|
|
+ // name: '',
|
|
|
+ // code: '',
|
|
|
+ // appType: 1,
|
|
|
+ // enable: 1,
|
|
|
+ // remark: ''
|
|
|
+ // },
|
|
|
// 表单验证规则
|
|
|
rules: {
|
|
|
- dictName: [
|
|
|
+ name: [
|
|
|
{
|
|
|
required: true,
|
|
|
message: '请输入字典名称',
|
|
|
trigger: 'blur'
|
|
|
}
|
|
|
],
|
|
|
- dictCode: [
|
|
|
+ code: [
|
|
|
{
|
|
|
required: true,
|
|
|
message: '请输入字典值',
|
|
|
trigger: 'blur'
|
|
|
}
|
|
|
],
|
|
|
- sortNumber: [
|
|
|
+ appType: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: '请选择应用类型',
|
|
|
+ trigger: 'blur'
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ enable: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: '请选择是否启用',
|
|
|
+ trigger: 'blur'
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ sort: [
|
|
|
{
|
|
|
required: true,
|
|
|
message: '请输入排序号',
|
|
|
@@ -99,12 +157,88 @@
|
|
|
}
|
|
|
]
|
|
|
},
|
|
|
+ // 表格列配置
|
|
|
+ columns: [
|
|
|
+ {
|
|
|
+ columnKey: 'selection',
|
|
|
+ type: 'selection',
|
|
|
+ width: 45,
|
|
|
+ align: 'center'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ columnKey: 'index',
|
|
|
+ type: 'index',
|
|
|
+ width: 45,
|
|
|
+ align: 'center',
|
|
|
+ showOverflowTooltip: true
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: 'code',
|
|
|
+ label: '字典编码',
|
|
|
+ showOverflowTooltip: true
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: 'name',
|
|
|
+ label: '字典名称',
|
|
|
+
|
|
|
+ showOverflowTooltip: true
|
|
|
+ },
|
|
|
+ // {
|
|
|
+ // prop: 'appType',
|
|
|
+ // label: '字典类型',
|
|
|
+
|
|
|
+ // showOverflowTooltip: true,
|
|
|
+ // minWidth: 110
|
|
|
+ // },
|
|
|
+ {
|
|
|
+ prop: 'appType',
|
|
|
+ label: '应用类型',
|
|
|
+
|
|
|
+ showOverflowTooltip: true
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: 'remark',
|
|
|
+ label: '描述',
|
|
|
+
|
|
|
+ showOverflowTooltip: true
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: 'createTime',
|
|
|
+ label: '创建时间',
|
|
|
+
|
|
|
+ showOverflowTooltip: true,
|
|
|
+ minWidth: 110,
|
|
|
+ formatter: (_row, _column, cellValue) => {
|
|
|
+ return this.$util.toDateString(cellValue);
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ columnKey: 'action',
|
|
|
+ label: '操作',
|
|
|
+ width: 130,
|
|
|
+ align: 'center',
|
|
|
+ resizable: false,
|
|
|
+ slot: 'action',
|
|
|
+ showOverflowTooltip: true
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ // 表格选中数据
|
|
|
+ selection: [],
|
|
|
+ datasource: {
|
|
|
+ list: []
|
|
|
+ },
|
|
|
+
|
|
|
// 提交状态
|
|
|
loading: false,
|
|
|
// 是否是修改
|
|
|
isUpdate: false
|
|
|
};
|
|
|
},
|
|
|
+ created() {
|
|
|
+ if (this.id) {
|
|
|
+ this.getDetail();
|
|
|
+ }
|
|
|
+ },
|
|
|
methods: {
|
|
|
/* 保存编辑 */
|
|
|
save() {
|
|
|
@@ -130,6 +264,14 @@
|
|
|
/* 更新visible */
|
|
|
updateVisible(value) {
|
|
|
this.$emit('update:visible', value);
|
|
|
+ },
|
|
|
+
|
|
|
+ async getDetail() {
|
|
|
+ const res = await pageDictionaryData(this.id);
|
|
|
+ this.form = res.data.dictInfoVO;
|
|
|
+
|
|
|
+ this.form.dictStaticSubmitPOList = res.data.dictStaticVOList;
|
|
|
+ // this.datasource.list = this.from.dictStaticSubmitPOList;
|
|
|
}
|
|
|
},
|
|
|
watch: {
|