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/notice/index.vue | 657 ++++++++++++++++++++++++++++------------------------------- 1 files changed, 312 insertions(+), 345 deletions(-) diff --git a/ruoyi-ui/src/views/system/notice/index.vue b/ruoyi-ui/src/views/system/notice/index.vue index 50dcd3e..7982b54 100644 --- a/ruoyi-ui/src/views/system/notice/index.vue +++ b/ruoyi-ui/src/views/system/notice/index.vue @@ -1,345 +1,312 @@ -<template> - <div class="app-container"> - <el-form :model="queryParams" ref="queryForm" :inline="true" label-width="68px"> - <el-form-item label="公告标题" prop="noticeTitle"> - <el-input - v-model="queryParams.noticeTitle" - placeholder="请输入公告标题" - clearable - size="small" - @keyup.enter.native="handleQuery" - /> - </el-form-item> - <el-form-item label="操作人员" prop="createBy"> - <el-input - v-model="queryParams.createBy" - placeholder="请输入操作人员" - clearable - size="small" - @keyup.enter.native="handleQuery" - /> - </el-form-item> - <el-form-item label="类型" prop="noticeType"> - <el-select v-model="queryParams.noticeType" placeholder="公告类型" clearable size="small"> - <el-option - v-for="dict in typeOptions" - :key="dict.dictValue" - :label="dict.dictLabel" - :value="dict.dictValue" - /> - </el-select> - </el-form-item> - <el-form-item> - <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button> - <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button> - </el-form-item> - </el-form> - - <el-row :gutter="10" class="mb8"> - <el-col :span="1.5"> - <el-button - type="primary" - icon="el-icon-plus" - size="mini" - @click="handleAdd" - v-hasPermi="['system:notice:add']" - >新增</el-button> - </el-col> - <el-col :span="1.5"> - <el-button - type="success" - icon="el-icon-edit" - size="mini" - :disabled="single" - @click="handleUpdate" - v-hasPermi="['system:notice:edit']" - >修改</el-button> - </el-col> - <el-col :span="1.5"> - <el-button - type="danger" - icon="el-icon-delete" - size="mini" - :disabled="multiple" - @click="handleDelete" - v-hasPermi="['system:notice:remove']" - >删除</el-button> - </el-col> - </el-row> - - <el-table v-loading="loading" :data="noticeList" @selection-change="handleSelectionChange"> - <el-table-column type="selection" width="55" align="center" /> - <el-table-column label="序号" align="center" prop="noticeId" width="100" /> - <el-table-column - label="公告标题" - align="center" - prop="noticeTitle" - :show-overflow-tooltip="true" - /> - <el-table-column - label="公告类型" - align="center" - prop="noticeType" - :formatter="typeFormat" - width="100" - /> - <el-table-column - label="状态" - align="center" - prop="status" - :formatter="statusFormat" - width="100" - /> - <el-table-column label="创建者" align="center" prop="createBy" width="100" /> - <el-table-column label="创建时间" align="center" prop="createTime" width="100"> - <template slot-scope="scope"> - <span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</span> - </template> - </el-table-column> - <el-table-column label="操作" align="center" class-name="small-padding fixed-width"> - <template slot-scope="scope"> - <el-button - size="mini" - type="text" - icon="el-icon-edit" - @click="handleUpdate(scope.row)" - v-hasPermi="['system:notice:edit']" - >修改</el-button> - <el-button - size="mini" - type="text" - icon="el-icon-delete" - @click="handleDelete(scope.row)" - v-hasPermi="['system:notice:remove']" - >删除</el-button> - </template> - </el-table-column> - </el-table> - - <pagination - v-show="total>0" - :total="total" - :page.sync="queryParams.pageNum" - :limit.sync="queryParams.pageSize" - @pagination="getList" - /> - - <!-- 添加或修改公告对话框 --> - <el-dialog :title="title" :visible.sync="open" width="780px" append-to-body> - <el-form ref="form" :model="form" :rules="rules" label-width="80px"> - <el-row> - <el-col :span="12"> - <el-form-item label="公告标题" prop="noticeTitle"> - <el-input v-model="form.noticeTitle" placeholder="请输入公告标题" /> - </el-form-item> - </el-col> - <el-col :span="12"> - <el-form-item label="公告类型" prop="noticeType"> - <el-select v-model="form.noticeType" placeholder="请选择"> - <el-option - v-for="dict in typeOptions" - :key="dict.dictValue" - :label="dict.dictLabel" - :value="dict.dictValue" - ></el-option> - </el-select> - </el-form-item> - </el-col> - <el-col :span="24"> - <el-form-item label="状态"> - <el-radio-group v-model="form.status"> - <el-radio - v-for="dict in statusOptions" - :key="dict.dictValue" - :label="dict.dictValue" - >{{dict.dictLabel}}</el-radio> - </el-radio-group> - </el-form-item> - </el-col> - <el-col :span="24"> - <el-form-item label="内容"> - <Editor v-model="form.noticeContent" /> - </el-form-item> - </el-col> - </el-row> - </el-form> - <div slot="footer" class="dialog-footer" style="padding-top:20px"> - <el-button type="primary" @click="submitForm">确 定</el-button> - <el-button @click="cancel">取 消</el-button> - </div> - </el-dialog> - </div> -</template> - -<script> -import { listNotice, getNotice, delNotice, addNotice, updateNotice, exportNotice } from "@/api/system/notice"; -import Editor from '@/components/Editor'; - -export default { - name: "Notice", - components: { - Editor - }, - data() { - return { - // 遮罩层 - loading: true, - // 选中数组 - ids: [], - // 非单个禁用 - single: true, - // 非多个禁用 - multiple: true, - // 总条数 - total: 0, - // 公告表格数据 - noticeList: [], - // 弹出层标题 - title: "", - // 是否显示弹出层 - open: false, - // 类型数据字典 - statusOptions: [], - // 状态数据字典 - typeOptions: [], - // 查询参数 - queryParams: { - pageNum: 1, - pageSize: 10, - noticeTitle: undefined, - createBy: undefined, - status: undefined - }, - // 表单参数 - form: {}, - // 表单校验 - rules: { - noticeTitle: [ - { required: true, message: "公告标题不能为空", trigger: "blur" } - ], - noticeType: [ - { required: true, message: "公告类型不能为空", trigger: "blur" } - ] - } - }; - }, - created() { - this.getList(); - this.getDicts("sys_notice_status").then(response => { - this.statusOptions = response.data; - }); - this.getDicts("sys_notice_type").then(response => { - this.typeOptions = response.data; - }); - }, - methods: { - /** 查询公告列表 */ - getList() { - this.loading = true; - listNotice(this.queryParams).then(response => { - this.noticeList = response.rows; - this.total = response.total; - this.loading = false; - }); - }, - // 公告状态字典翻译 - statusFormat(row, column) { - return this.selectDictLabel(this.statusOptions, row.status); - }, - // 公告状态字典翻译 - typeFormat(row, column) { - return this.selectDictLabel(this.typeOptions, row.noticeType); - }, - // 取消按钮 - cancel() { - this.open = false; - this.reset(); - }, - // 表单重置 - reset() { - this.form = { - noticeId: undefined, - noticeTitle: undefined, - noticeType: undefined, - noticeContent: undefined, - status: "0" - }; - this.resetForm("form"); - }, - /** 搜索按钮操作 */ - handleQuery() { - this.queryParams.pageNum = 1; - this.getList(); - }, - /** 重置按钮操作 */ - resetQuery() { - this.resetForm("queryForm"); - this.handleQuery(); - }, - // 多选框选中数据 - handleSelectionChange(selection) { - this.ids = selection.map(item => item.noticeId) - this.single = selection.length!=1 - this.multiple = !selection.length - }, - /** 新增按钮操作 */ - handleAdd() { - this.reset(); - this.open = true; - this.title = "添加公告"; - }, - /** 修改按钮操作 */ - handleUpdate(row) { - this.reset(); - const noticeId = row.noticeId || this.ids - getNotice(noticeId).then(response => { - this.form = response.data; - this.open = true; - this.title = "修改公告"; - }); - }, - /** 提交按钮 */ - submitForm: function() { - this.$refs["form"].validate(valid => { - if (valid) { - if (this.form.noticeId != undefined) { - updateNotice(this.form).then(response => { - if (response.code === 200) { - this.msgSuccess("修改成功"); - this.open = false; - this.getList(); - } else { - this.msgError(response.msg); - } - }); - } else { - addNotice(this.form).then(response => { - if (response.code === 200) { - this.msgSuccess("新增成功"); - this.open = false; - this.getList(); - } else { - this.msgError(response.msg); - } - }); - } - } - }); - }, - /** 删除按钮操作 */ - handleDelete(row) { - const noticeIds = row.noticeId || this.ids - this.$confirm('是否确认删除公告编号为"' + noticeIds + '"的数据项?', "警告", { - confirmButtonText: "确定", - cancelButtonText: "取消", - type: "warning" - }).then(function() { - return delNotice(noticeIds); - }).then(() => { - this.getList(); - this.msgSuccess("删除成功"); - }).catch(function() {}); - } - } -}; -</script> \ No newline at end of file +<template> + <div class="app-container"> + <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> + <el-form-item label="公告标题" prop="noticeTitle"> + <el-input + v-model="queryParams.noticeTitle" + placeholder="请输入公告标题" + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label="操作人员" prop="createBy"> + <el-input + v-model="queryParams.createBy" + placeholder="请输入操作人员" + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label="类型" prop="noticeType"> + <el-select v-model="queryParams.noticeType" placeholder="公告类型" clearable> + <el-option + v-for="dict in dict.type.sys_notice_type" + :key="dict.value" + :label="dict.label" + :value="dict.value" + /> + </el-select> + </el-form-item> + <el-form-item> + <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button> + <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button> + </el-form-item> + </el-form> + + <el-row :gutter="10" class="mb8"> + <el-col :span="1.5"> + <el-button + type="primary" + plain + icon="el-icon-plus" + size="mini" + @click="handleAdd" + v-hasPermi="['system:notice:add']" + >新增</el-button> + </el-col> + <el-col :span="1.5"> + <el-button + type="success" + plain + icon="el-icon-edit" + size="mini" + :disabled="single" + @click="handleUpdate" + v-hasPermi="['system:notice:edit']" + >修改</el-button> + </el-col> + <el-col :span="1.5"> + <el-button + type="danger" + plain + icon="el-icon-delete" + size="mini" + :disabled="multiple" + @click="handleDelete" + v-hasPermi="['system:notice:remove']" + >删除</el-button> + </el-col> + <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> + </el-row> + + <el-table v-loading="loading" :data="noticeList" @selection-change="handleSelectionChange"> + <el-table-column type="selection" width="55" align="center" /> + <el-table-column label="序号" align="center" prop="noticeId" width="100" /> + <el-table-column + label="公告标题" + align="center" + prop="noticeTitle" + :show-overflow-tooltip="true" + /> + <el-table-column label="公告类型" align="center" prop="noticeType" width="100"> + <template slot-scope="scope"> + <dict-tag :options="dict.type.sys_notice_type" :value="scope.row.noticeType"/> + </template> + </el-table-column> + <el-table-column label="状态" align="center" prop="status" width="100"> + <template slot-scope="scope"> + <dict-tag :options="dict.type.sys_notice_status" :value="scope.row.status"/> + </template> + </el-table-column> + <el-table-column label="创建者" align="center" prop="createBy" width="100" /> + <el-table-column label="创建时间" align="center" prop="createTime" width="100"> + <template slot-scope="scope"> + <span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</span> + </template> + </el-table-column> + <el-table-column label="操作" align="center" class-name="small-padding fixed-width"> + <template slot-scope="scope"> + <el-button + size="mini" + type="text" + icon="el-icon-edit" + @click="handleUpdate(scope.row)" + v-hasPermi="['system:notice:edit']" + >修改</el-button> + <el-button + size="mini" + type="text" + icon="el-icon-delete" + @click="handleDelete(scope.row)" + v-hasPermi="['system:notice:remove']" + >删除</el-button> + </template> + </el-table-column> + </el-table> + + <pagination + v-show="total>0" + :total="total" + :page.sync="queryParams.pageNum" + :limit.sync="queryParams.pageSize" + @pagination="getList" + /> + + <!-- 添加或修改公告对话框 --> + <el-dialog :title="title" :visible.sync="open" width="780px" append-to-body> + <el-form ref="form" :model="form" :rules="rules" label-width="80px"> + <el-row> + <el-col :span="12"> + <el-form-item label="公告标题" prop="noticeTitle"> + <el-input v-model="form.noticeTitle" placeholder="请输入公告标题" /> + </el-form-item> + </el-col> + <el-col :span="12"> + <el-form-item label="公告类型" prop="noticeType"> + <el-select v-model="form.noticeType" placeholder="请选择公告类型"> + <el-option + v-for="dict in dict.type.sys_notice_type" + :key="dict.value" + :label="dict.label" + :value="dict.value" + ></el-option> + </el-select> + </el-form-item> + </el-col> + <el-col :span="24"> + <el-form-item label="状态"> + <el-radio-group v-model="form.status"> + <el-radio + v-for="dict in dict.type.sys_notice_status" + :key="dict.value" + :label="dict.value" + >{{dict.label}}</el-radio> + </el-radio-group> + </el-form-item> + </el-col> + <el-col :span="24"> + <el-form-item label="内容"> + <editor v-model="form.noticeContent" :min-height="192"/> + </el-form-item> + </el-col> + </el-row> + </el-form> + <div slot="footer" class="dialog-footer"> + <el-button type="primary" @click="submitForm">确 定</el-button> + <el-button @click="cancel">取 消</el-button> + </div> + </el-dialog> + </div> +</template> + +<script> +import { listNotice, getNotice, delNotice, addNotice, updateNotice } from "@/api/system/notice"; + +export default { + name: "Notice", + dicts: ['sys_notice_status', 'sys_notice_type'], + data() { + return { + // 遮罩层 + loading: true, + // 选中数组 + ids: [], + // 非单个禁用 + single: true, + // 非多个禁用 + multiple: true, + // 显示搜索条件 + showSearch: true, + // 总条数 + total: 0, + // 公告表格数据 + noticeList: [], + // 弹出层标题 + title: "", + // 是否显示弹出层 + open: false, + // 查询参数 + queryParams: { + pageNum: 1, + pageSize: 10, + noticeTitle: undefined, + createBy: undefined, + status: undefined + }, + // 表单参数 + form: {}, + // 表单校验 + rules: { + noticeTitle: [ + { required: true, message: "公告标题不能为空", trigger: "blur" } + ], + noticeType: [ + { required: true, message: "公告类型不能为空", trigger: "change" } + ] + } + }; + }, + created() { + this.getList(); + }, + methods: { + /** 查询公告列表 */ + getList() { + this.loading = true; + listNotice(this.queryParams).then(response => { + this.noticeList = response.rows; + this.total = response.total; + this.loading = false; + }); + }, + // 取消按钮 + cancel() { + this.open = false; + this.reset(); + }, + // 表单重置 + reset() { + this.form = { + noticeId: undefined, + noticeTitle: undefined, + noticeType: undefined, + noticeContent: undefined, + status: "0" + }; + this.resetForm("form"); + }, + /** 搜索按钮操作 */ + handleQuery() { + this.queryParams.pageNum = 1; + this.getList(); + }, + /** 重置按钮操作 */ + resetQuery() { + this.resetForm("queryForm"); + this.handleQuery(); + }, + // 多选框选中数据 + handleSelectionChange(selection) { + this.ids = selection.map(item => item.noticeId) + this.single = selection.length!=1 + this.multiple = !selection.length + }, + /** 新增按钮操作 */ + handleAdd() { + this.reset(); + this.open = true; + this.title = "添加公告"; + }, + /** 修改按钮操作 */ + handleUpdate(row) { + this.reset(); + const noticeId = row.noticeId || this.ids + getNotice(noticeId).then(response => { + this.form = response.data; + this.open = true; + this.title = "修改公告"; + }); + }, + /** 提交按钮 */ + submitForm: function() { + this.$refs["form"].validate(valid => { + if (valid) { + if (this.form.noticeId != undefined) { + updateNotice(this.form).then(response => { + this.$modal.msgSuccess("修改成功"); + this.open = false; + this.getList(); + }); + } else { + addNotice(this.form).then(response => { + this.$modal.msgSuccess("新增成功"); + this.open = false; + this.getList(); + }); + } + } + }); + }, + /** 删除按钮操作 */ + handleDelete(row) { + const noticeIds = row.noticeId || this.ids + this.$modal.confirm('是否确认删除公告编号为"' + noticeIds + '"的数据项?').then(function() { + return delNotice(noticeIds); + }).then(() => { + this.getList(); + this.$modal.msgSuccess("删除成功"); + }).catch(() => {}); + } + } +}; +</script> -- Gitblit v1.9.2