| | |
| | | <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="configName"> |
| | | <el-input |
| | | v-model="queryParams.configName" |
| | | placeholder="请输入参数名称" |
| | | clearable |
| | | style="width: 240px" |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="参数键名" prop="configKey"> |
| | | <el-input |
| | | v-model="queryParams.configKey" |
| | | placeholder="请输入参数 KEY" |
| | | clearable |
| | | style="width: 240px" |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="系统内置" prop="configType"> |
| | | <el-select v-model="queryParams.configType" placeholder="系统内置" clearable> |
| | | <el-option |
| | | v-for="dict in dict.type.sys_yes_no" |
| | | :key="dict.value" |
| | | :label="dict.label" |
| | | :value="dict.value" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <!-- <el-form-item label="创建时间">--> |
| | | <!-- <el-date-picker--> |
| | | <!-- v-model="dateRange"--> |
| | | <!-- style="width: 240px"--> |
| | | <!-- value-format="yyyy-MM-dd"--> |
| | | <!-- type="daterange"--> |
| | | <!-- range-separator="-"--> |
| | | <!-- start-placeholder="开始日期"--> |
| | | <!-- end-placeholder="结束日期"--> |
| | | <!-- ></el-date-picker>--> |
| | | <!-- </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> |
| | | <div class="app-main"> |
| | | <div class="base-container"> |
| | | <el-card shadow="never" class="box-card"> |
| | | <!--搜索条件--> |
| | | <div class="filter-container"> |
| | | <el-form :inline="true" :model="filterFrom" size="small"> |
| | | <el-form-item label="参数名称"> |
| | | <el-input v-model="filterFrom.configName" placeholder="请输入'参数名称'" clearable /> |
| | | </el-form-item> |
| | | <el-form-item label="参数标识"> |
| | | <el-input v-model="filterFrom.configKey" placeholder="请输入'参数KEY'" clearable /> |
| | | </el-form-item> |
| | | <!-- <el-form-item label="发起时间">--> |
| | | <!-- <el-date-picker v-model="filterFrom.startTime" type="date" placeholder="选择开始日期" format="yyyy-MM-dd" value-format="yyyy-MM-dd" style="width: 177px" />--> |
| | | <!-- - <el-date-picker v-model="filterFrom.finishTime" style="width: 177px" type="date" placeholder="选择结束日期" format="yyyy-MM-dd" value-format="yyyy-MM-dd" />--> |
| | | <!-- </el-form-item>--> |
| | | <el-form-item label="系统内置"> |
| | | <el-select v-model="filterFrom.configType" placeholder="系统内置" clearable> |
| | | <el-option |
| | | v-for="dict in dict.type.sys_yes_no" |
| | | :key="dict.value" |
| | | :label="dict.label" |
| | | :value="dict.value" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <my-button-v2 site="filter" name="搜索" @click="search(1)" /> |
| | | <my-button-v2 site="filter" name="重置" @click="reset()" /> |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | | </el-card> |
| | | <!--列表--> |
| | | <my-table-v3 ref="myTable" :filter="filterFrom" :table="table" /> |
| | | <!--添加/编辑弹窗--> |
| | | <edit v-if="editSetting.show" :setting="editSetting" @close="editSetting.show=false" @search="search" /> |
| | | </div> |
| | | |
| | | <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:config: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:config: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:config:remove']"--> |
| | | <!-- >删除</el-button>--> |
| | | <!-- </el-col>--> |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | | type="warning" |
| | | plain |
| | | icon="el-icon-download" |
| | | size="mini" |
| | | @click="handleExport" |
| | | v-hasPermi="['system:config:export']" |
| | | >导出</el-button> |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | | type="danger" |
| | | plain |
| | | icon="el-icon-refresh" |
| | | size="mini" |
| | | @click="handleRefreshCache" |
| | | v-hasPermi="['system:config:remove']" |
| | | >刷新缓存</el-button> |
| | | </el-col> |
| | | <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> |
| | | </el-row> |
| | | |
| | | <!--列表--> |
| | | <my-table-v3 ref="myTable" :filter="filterFrom" :table="table" /> |
| | | |
| | | <!-- 添加或修改参数配置对话框 --> |
| | | <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body> |
| | | <el-form ref="form" :model="form" :rules="rules" label-width="80px"> |
| | | <el-form-item label="参数名称" prop="config_name"> |
| | | <el-input v-model="form.config_name" placeholder="请输入参数名称" /> |
| | | </el-form-item> |
| | | <el-form-item label="KEY" prop="config_key"> |
| | | <el-input v-model="form.config_key" placeholder="请输入参数键名" /> |
| | | </el-form-item> |
| | | <el-form-item label="VALUE" prop="config_value"> |
| | | <el-input v-model="form.config_value" placeholder="请输入参数键值" /> |
| | | </el-form-item> |
| | | <el-form-item label="系统内置" prop="config_type"> |
| | | <el-radio-group v-model="form.config_type"> |
| | | <el-radio |
| | | v-for="dict in dict.type.sys_yes_no" |
| | | :key="dict.value" |
| | | :label="dict.value" |
| | | >{{dict.label}}</el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | <el-form-item label="备注" prop="remark"> |
| | | <el-input v-model="form.remark" type="textarea" placeholder="请输入内容" /> |
| | | </el-form-item> |
| | | </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 {addConfig, delConfig, getConfig, listConfig, refreshCache, updateConfig} from "@/api/system/config"; |
| | | import {listConfig, refreshCache} from "@/api/system/config"; |
| | | import myTableV3 from '@/views/components/myTableV3'; |
| | | import myButtonV2 from '@/views/components/myButtonV2' |
| | | import edit from './edit' |
| | | |
| | | export default { |
| | | components: {myTableV3}, |
| | | components: {myTableV3, myButtonV2, edit}, |
| | | name: "Config", |
| | | dicts: ['sys_yes_no'], |
| | | data() { |
| | | return { |
| | | // 遮罩层 |
| | | loading: true, |
| | | // 选中数组 |
| | | ids: [], |
| | | // 非单个禁用 |
| | | single: true, |
| | | // 非多个禁用 |
| | | multiple: true, |
| | | // 显示搜索条件 |
| | | showSearch: true, |
| | | // 总条数 |
| | | total: 0, |
| | | // 参数表格数据 |
| | | configList: [], |
| | | // 弹出层标题 |
| | | title: "", |
| | | // 是否显示弹出层 |
| | | open: false, |
| | | // 日期范围 |
| | | dateRange: [], |
| | | // 查询参数 |
| | | queryParams: { |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | configName: undefined, |
| | | configKey: undefined, |
| | | configType: undefined |
| | | }, |
| | | // 表单参数 |
| | | form: {}, |
| | | // form: {}, |
| | | // 表单校验 |
| | | rules: { |
| | | config_name: [ |
| | | { required: true, message: "参数名称不能为空", trigger: "blur" } |
| | | ], |
| | | config_key: [ |
| | | { required: true, message: "参数键名不能为空", trigger: "blur" } |
| | | ], |
| | | config_value: [ |
| | | { required: true, message: "参数键值不能为空", trigger: "blur" } |
| | | ] |
| | | }, |
| | | |
| | | /** 搜索条件*/ |
| | | filterFrom: { |
| | | title: null |
| | | configName: null, |
| | | configKey: null, |
| | | configType: null |
| | | }, |
| | | |
| | | table: { |
| | |
| | | // 工具条 |
| | | tools: { |
| | | columnsCtrl: {// 列控制按钮 |
| | | show: false |
| | | show: true |
| | | }, |
| | | generalExport: {// 通用导出按钮 |
| | | show: false |
| | | }, |
| | | custom: [ // 自定义工具条按钮 |
| | | { |
| | | name: '刷新缓存', |
| | | checkPermission: 'system:config:remove', |
| | | myType: 'danger', |
| | | mySize: 'mini', |
| | | click: ()=> { |
| | | this.handleRefreshCache(); |
| | | } |
| | | }, |
| | | { |
| | | name: '导出参数', |
| | | click: ()=> { |
| | | |
| | | } |
| | | } |
| | | ] |
| | | }, |
| | | columns: [ |
| | |
| | | title = '否' |
| | | break |
| | | } |
| | | return { value: title } |
| | | return { value: title, type: 'primary' } |
| | | } |
| | | }, |
| | | { title: '创建时间', field: 'create_time', align: 'left', width: 170 }, |
| | |
| | | total: 0 |
| | | } |
| | | } |
| | | }, |
| | | |
| | | // 添加&编辑窗口 |
| | | editSetting: { |
| | | id: null, |
| | | title: '', |
| | | show: false |
| | | } |
| | | }; |
| | | }, |
| | | |
| | | created() { |
| | | // this.getList(); |
| | | // console.log(dict); |
| | | }, |
| | | methods: { |
| | | // 查询table列表 |
| | |
| | | this.$refs.myTable.search() |
| | | } |
| | | }, |
| | | |
| | | /** 查询参数列表 */ |
| | | getList() { |
| | | this.loading = true; |
| | | listConfig(this.addDateRange(this.queryParams, this.dateRange)).then(response => { |
| | | this.configList = response.data; |
| | | this.total = response.total; |
| | | this.loading = false; |
| | | } |
| | | ); |
| | | }, |
| | | // 取消按钮 |
| | | cancel() { |
| | | this.open = false; |
| | | this.reset(); |
| | | }, |
| | | // 表单重置 |
| | | reset() { |
| | | this.form = { |
| | | config_id: undefined, |
| | | config_name: undefined, |
| | | config_key: undefined, |
| | | config_value: undefined, |
| | | config_type: "Y", |
| | | remark: undefined |
| | | }; |
| | | this.resetForm("form"); |
| | | }, |
| | | /** 搜索按钮操作 */ |
| | | handleQuery() { |
| | | this.queryParams.pageNum = 1; |
| | | this.getList(); |
| | | }, |
| | | /** 重置按钮操作 */ |
| | | resetQuery() { |
| | | this.dateRange = []; |
| | | this.resetForm("queryForm"); |
| | | this.handleQuery(); |
| | | this.filterFrom = { |
| | | configName: null, |
| | | configKey: null, |
| | | configType: null |
| | | } |
| | | this.search(1) |
| | | }, |
| | | /** 新增按钮操作 */ |
| | | handleAdd() { |
| | |
| | | }, |
| | | /** 修改按钮操作 */ |
| | | handleUpdate(row) { |
| | | this.reset(); |
| | | const configId = row.config_id || this.ids |
| | | getConfig(configId).then(response => { |
| | | this.form = response.data; |
| | | this.open = true; |
| | | this.title = "修改参数"; |
| | | }); |
| | | }, |
| | | /** 提交按钮 */ |
| | | submitForm: function() { |
| | | this.$refs["form"].validate(valid => { |
| | | if (valid) { |
| | | if (this.form.config_id != undefined) { |
| | | updateConfig(this.form).then(response => { |
| | | this.$modal.msgSuccess("修改成功"); |
| | | this.open = false; |
| | | this.getList(); |
| | | }); |
| | | } else { |
| | | addConfig(this.form).then(response => { |
| | | this.$modal.msgSuccess("新增成功"); |
| | | this.open = false; |
| | | this.getList(); |
| | | }); |
| | | } |
| | | } |
| | | }); |
| | | }, |
| | | /** 删除按钮操作 */ |
| | | handleDelete(row) { |
| | | const configIds = row.config_id || this.ids; |
| | | this.$modal.confirm('是否确认删除参数编号为"' + configIds + '"的数据项?').then(function() { |
| | | return delConfig(configIds); |
| | | }).then(() => { |
| | | this.getList(); |
| | | this.$modal.msgSuccess("删除成功"); |
| | | }).catch(() => {}); |
| | | this.editSetting.id = row.config_id |
| | | this.editSetting.title = "编辑参数" |
| | | this.editSetting.show = true |
| | | }, |
| | | /** 导出按钮操作 */ |
| | | handleExport() { |
| | |
| | | }, |
| | | /** 刷新缓存按钮操作 */ |
| | | handleRefreshCache() { |
| | | refreshCache().then(() => { |
| | | this.$modal.msgSuccess("刷新成功"); |
| | | }); |
| | | }, |
| | | |
| | | /** 显示配置详情 */ |
| | | showDetail(row){ |
| | | |
| | | this.$confirm('确认刷新缓存?', '提示', { |
| | | confirmButtonText: '确定', |
| | | cancelButtonText: '取消', |
| | | type: 'warning' |
| | | }).then(()=> { |
| | | refreshCache().then(() => { |
| | | this.$modal.msgSuccess("刷新成功"); |
| | | }); |
| | | }) |
| | | } |
| | | } |
| | | }; |