From af0e0a110e7187bf008655f7510199a0c0b25ec4 Mon Sep 17 00:00:00 2001 From: Nymph2333 <498092988@qq.com> Date: 星期一, 10 四月 2023 14:27:40 +0800 Subject: [PATCH] newInstance() 已弃用,使用clazz.getDeclaredConstructor().newInstance() This method propagates any exception thrown by the nullary constructor, including a checked exception. Use of this method effectively bypasses the compile-time exception checking that would otherwise be performed by the compiler. The Constructor.newInstance method avoids this problem by wrapping any exception thrown by the constructor in a (checked) InvocationTargetException. The call clazz.newInstance() can be replaced by clazz.getDeclaredConstructor().newInstance() The latter sequence of calls is inferred to be able to throw the additional exception types InvocationTargetException and NoSuchMethodException. Both of these exception types are subclasses of ReflectiveOperationException. --- ruoyi-ui/src/views/system/dict/data.vue | 165 ++++++++++++++++++++++++++++++++++++------------------- 1 files changed, 108 insertions(+), 57 deletions(-) diff --git a/ruoyi-ui/src/views/system/dict/data.vue b/ruoyi-ui/src/views/system/dict/data.vue index f5eb63e..d78af12 100644 --- a/ruoyi-ui/src/views/system/dict/data.vue +++ b/ruoyi-ui/src/views/system/dict/data.vue @@ -1,8 +1,8 @@ <template> <div class="app-container"> - <el-form :model="queryParams" ref="queryForm" :inline="true"> + <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> <el-form-item label="字典名称" prop="dictType"> - <el-select v-model="queryParams.dictType" size="small"> + <el-select v-model="queryParams.dictType"> <el-option v-for="item in typeOptions" :key="item.dictId" @@ -16,17 +16,16 @@ v-model="queryParams.dictLabel" placeholder="请输入字典标签" clearable - size="small" @keyup.enter.native="handleQuery" /> </el-form-item> <el-form-item label="状态" prop="status"> - <el-select v-model="queryParams.status" placeholder="数据状态" clearable size="small"> + <el-select v-model="queryParams.status" placeholder="数据状态" clearable> <el-option - v-for="dict in statusOptions" - :key="dict.dictValue" - :label="dict.dictLabel" - :value="dict.dictValue" + v-for="dict in dict.type.sys_normal_disable" + :key="dict.value" + :label="dict.label" + :value="dict.value" /> </el-select> </el-form-item> @@ -40,6 +39,7 @@ <el-col :span="1.5"> <el-button type="primary" + plain icon="el-icon-plus" size="mini" @click="handleAdd" @@ -49,6 +49,7 @@ <el-col :span="1.5"> <el-button type="success" + plain icon="el-icon-edit" size="mini" :disabled="single" @@ -59,6 +60,7 @@ <el-col :span="1.5"> <el-button type="danger" + plain icon="el-icon-delete" size="mini" :disabled="multiple" @@ -69,21 +71,41 @@ <el-col :span="1.5"> <el-button type="warning" + plain icon="el-icon-download" size="mini" @click="handleExport" v-hasPermi="['system:dict:export']" >导出</el-button> </el-col> + <el-col :span="1.5"> + <el-button + type="warning" + plain + icon="el-icon-close" + size="mini" + @click="handleClose" + >关闭</el-button> + </el-col> + <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> </el-row> <el-table v-loading="loading" :data="dataList" @selection-change="handleSelectionChange"> <el-table-column type="selection" width="55" align="center" /> <el-table-column label="字典编码" align="center" prop="dictCode" /> - <el-table-column label="字典标签" align="center" prop="dictLabel" /> + <el-table-column label="字典标签" align="center" prop="dictLabel"> + <template slot-scope="scope"> + <span v-if="scope.row.listClass == '' || scope.row.listClass == 'default'">{{scope.row.dictLabel}}</span> + <el-tag v-else :type="scope.row.listClass == 'primary' ? '' : scope.row.listClass">{{scope.row.dictLabel}}</el-tag> + </template> + </el-table-column> <el-table-column label="字典键值" align="center" prop="dictValue" /> <el-table-column label="字典排序" align="center" prop="dictSort" /> - <el-table-column label="状态" align="center" prop="status" :formatter="statusFormat" /> + <el-table-column label="状态" align="center" prop="status"> + <template slot-scope="scope"> + <dict-tag :options="dict.type.sys_normal_disable" :value="scope.row.status"/> + </template> + </el-table-column> <el-table-column label="备注" align="center" prop="remark" :show-overflow-tooltip="true" /> <el-table-column label="创建时间" align="center" prop="createTime" width="180"> <template slot-scope="scope"> @@ -130,16 +152,29 @@ <el-form-item label="数据键值" prop="dictValue"> <el-input v-model="form.dictValue" placeholder="请输入数据键值" /> </el-form-item> + <el-form-item label="样式属性" prop="cssClass"> + <el-input v-model="form.cssClass" placeholder="请输入样式属性" /> + </el-form-item> <el-form-item label="显示排序" prop="dictSort"> <el-input-number v-model="form.dictSort" controls-position="right" :min="0" /> + </el-form-item> + <el-form-item label="回显样式" prop="listClass"> + <el-select v-model="form.listClass"> + <el-option + v-for="item in listClassOptions" + :key="item.value" + :label="item.label + '(' + item.value + ')'" + :value="item.value" + ></el-option> + </el-select> </el-form-item> <el-form-item label="状态" prop="status"> <el-radio-group v-model="form.status"> <el-radio - v-for="dict in statusOptions" - :key="dict.dictValue" - :label="dict.dictValue" - >{{dict.dictLabel}}</el-radio> + v-for="dict in dict.type.sys_normal_disable" + :key="dict.value" + :label="dict.value" + >{{dict.label}}</el-radio> </el-radio-group> </el-form-item> <el-form-item label="备注" prop="remark"> @@ -155,11 +190,12 @@ </template> <script> -import { listData, getData, delData, addData, updateData, exportData } from "@/api/system/dict/data"; -import { listType, getType } from "@/api/system/dict/type"; +import { listData, getData, delData, addData, updateData } from "@/api/system/dict/data"; +import { optionselect as getDictOptionselect, getType } from "@/api/system/dict/type"; export default { name: "Data", + dicts: ['sys_normal_disable'], data() { return { // 遮罩层 @@ -170,6 +206,8 @@ single: true, // 非多个禁用 multiple: true, + // 显示搜索条件 + showSearch: true, // 总条数 total: 0, // 字典表格数据 @@ -180,8 +218,33 @@ title: "", // 是否显示弹出层 open: false, - // 状态数据字典 - statusOptions: [], + // 数据标签回显样式 + listClassOptions: [ + { + value: "default", + label: "默认" + }, + { + value: "primary", + label: "主要" + }, + { + value: "success", + label: "成功" + }, + { + value: "info", + label: "信息" + }, + { + value: "warning", + label: "警告" + }, + { + value: "danger", + label: "危险" + } + ], // 类型数据字典 typeOptions: [], // 查询参数 @@ -212,9 +275,6 @@ const dictId = this.$route.params && this.$route.params.dictId; this.getType(dictId); this.getTypeList(); - this.getDicts("sys_normal_disable").then(response => { - this.statusOptions = response.data; - }); }, methods: { /** 查询字典类型详细 */ @@ -227,8 +287,8 @@ }, /** 查询字典类型列表 */ getTypeList() { - listType().then(response => { - this.typeOptions = response.rows; + getDictOptionselect().then(response => { + this.typeOptions = response.data; }); }, /** 查询字典数据列表 */ @@ -239,10 +299,6 @@ this.total = response.total; this.loading = false; }); - }, - // 数据状态字典翻译 - statusFormat(row, column) { - return this.selectDictLabel(this.statusOptions, row.status); }, // 取消按钮 cancel() { @@ -255,6 +311,8 @@ dictCode: undefined, dictLabel: undefined, dictValue: undefined, + cssClass: undefined, + listClass: 'default', dictSort: 0, status: "0", remark: undefined @@ -265,6 +323,11 @@ handleQuery() { this.queryParams.pageNum = 1; this.getList(); + }, + /** 返回按钮操作 */ + handleClose() { + const obj = { path: "/system/dict" }; + this.$tab.closeOpenPage(obj); }, /** 重置按钮操作 */ resetQuery() { @@ -301,19 +364,17 @@ if (valid) { if (this.form.dictCode != undefined) { updateData(this.form).then(response => { - if (response.code === 200) { - this.msgSuccess("修改成功"); - this.open = false; - this.getList(); - } + this.$store.dispatch('dict/removeDict', this.queryParams.dictType); + this.$modal.msgSuccess("修改成功"); + this.open = false; + this.getList(); }); } else { addData(this.form).then(response => { - if (response.code === 200) { - this.msgSuccess("新增成功"); - this.open = false; - this.getList(); - } + this.$store.dispatch('dict/removeDict', this.queryParams.dictType); + this.$modal.msgSuccess("新增成功"); + this.open = false; + this.getList(); }); } } @@ -322,29 +383,19 @@ /** 删除按钮操作 */ handleDelete(row) { const dictCodes = row.dictCode || this.ids; - this.$confirm('是否确认删除字典编码为"' + dictCodes + '"的数据项?', "警告", { - confirmButtonText: "确定", - cancelButtonText: "取消", - type: "warning" - }).then(function() { - return delData(dictCodes); - }).then(() => { - this.getList(); - this.msgSuccess("删除成功"); - }).catch(function() {}); + this.$modal.confirm('是否确认删除字典编码为"' + dictCodes + '"的数据项?').then(function() { + return delData(dictCodes); + }).then(() => { + this.getList(); + this.$modal.msgSuccess("删除成功"); + this.$store.dispatch('dict/removeDict', this.queryParams.dictType); + }).catch(() => {}); }, /** 导出按钮操作 */ handleExport() { - const queryParams = this.queryParams; - this.$confirm('是否确认导出所有数据项?', "警告", { - confirmButtonText: "确定", - cancelButtonText: "取消", - type: "warning" - }).then(function() { - return exportData(queryParams); - }).then(response => { - this.download(response.msg); - }).catch(function() {}); + this.download('system/dict/data/export', { + ...this.queryParams + }, `data_${new Date().getTime()}.xlsx`) } } }; -- Gitblit v1.9.2