| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-form style="margin-left :20px" :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> |
| | | <el-form style="margin-left :20px" :model="queryParams" ref="queryForm" size="small" :inline="true" |
| | | v-show="showSearch" label-width="68px"> |
| | | <el-form-item label="考核类型" prop="examineCategory"> |
| | | <el-select v-model="queryParams.examineCategory" placeholder="考核类型" clearable @keyup.enter.native="handleQuery"> |
| | | <el-option |
| | | v-for="dict in dict.type.platform_examine_category" |
| | | :key="dict.value" |
| | | :label="dict.label" |
| | | :value="parseInt(dict.value)" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-select v-model="queryParams.examineCategory" placeholder="考核类型" clearable @change="handleQuery"> |
| | | <el-option |
| | | v-for="dict in dict.type.platform_examine_category" |
| | | :key="dict.value" |
| | | :label="dict.label" |
| | | :value="parseInt(dict.value)" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="考核标签" prop="examineTag"> |
| | | <el-select v-model="queryParams.examineTag" placeholder="考核标签" clearable @keyup.enter.native="handleQuery"> |
| | | <el-select v-model="queryParams.examineTag" placeholder="考核标签" clearable @change="handleQuery"> |
| | | <el-option |
| | | v-for="dict in dict.type.platform_examine_tag" |
| | | :key="parseInt(dict.value)" |
| | |
| | | icon="el-icon-plus" |
| | | size="mini" |
| | | @click="handleAdd" |
| | | >新增</el-button> |
| | | >新增 |
| | | </el-button> |
| | | </el-col> |
| | | <!-- <el-col :span="1.5"> |
| | | <el-button |
| | |
| | | @click="handleDelete" |
| | | >删除</el-button> |
| | | </el-col> --> |
| | | <!-- <el-col :span="1.5">--> |
| | | <!-- <el-button--> |
| | | <!-- type="warning"--> |
| | | <!-- plain--> |
| | | <!-- icon="el-icon-download"--> |
| | | <!-- size="mini"--> |
| | | <!-- @click="handleExport"--> |
| | | <!-- >导出</el-button>--> |
| | | <!-- </el-col>--> |
| | | <!-- <el-col :span="1.5">--> |
| | | <!-- <el-button--> |
| | | <!-- type="warning"--> |
| | | <!-- plain--> |
| | | <!-- icon="el-icon-download"--> |
| | | <!-- size="mini"--> |
| | | <!-- @click="handleExport"--> |
| | | <!-- >导出</el-button>--> |
| | | <!-- </el-col>--> |
| | | <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> |
| | | </el-row> |
| | | <div class="card-container"> |
| | | <el-card class="box-card" v-for="item in checkTemplateList" :key="item"> |
| | | <div class="text item">模板名称:{{ item.templateName }}</div> |
| | | <div class="text item">考核标签:{{ item.examineTag == 0 ? '省厅考核' : '市局考核' }}</div> |
| | | <div class="text item" style="display: flex"> |
| | | <span>考核类型:</span> |
| | | <dict-tag :options="dict.type.platform_examine_category" :value="item.examineCategory"/> |
| | | </div> |
| | | <!-- <div class="text item">考核频率:{{ item.frequency == 0 ? '月度考核' : '季度考核' }}</div> --> |
| | | <div class="text item" style="display: flex"> |
| | | <span>考核对象:</span> |
| | | <el-tooltip effect="dark" :content="translateDeptIdList(item.deptId)" placement="top"> |
| | | <div class="item" style="margin-bottom: 0" v-for = "(deptId,index) in item.deptId" :key = index> |
| | | {{ translateDeptIdList(item.deptId) }} |
| | | </div> |
| | | <el-card class="box-card" v-for="item in checkTemplateList" :key="item"> |
| | | <div class="text item">模板名称:{{ item.templateName }}</div> |
| | | <div class="text item">考核标签:{{ |
| | | item.examineTag === 0 ? '省厅考核' : |
| | | item.examineTag === 1 ? '区县考核' : |
| | | item.examineTag === 2 ? '公安部考核' : '未知' |
| | | }} |
| | | </div> |
| | | <div class="text item" style="display: flex"> |
| | | <span>考核类型:</span> |
| | | <dict-tag :options="dict.type.platform_examine_category" :value="item.examineCategory"/> |
| | | </div> |
| | | <!-- <div class="text item">考核频率:{{ item.frequency == 0 ? '月度考核' : '季度考核' }}</div> --> |
| | | <div class="text item" style="display: flex"> |
| | | <span>考核对象:</span> |
| | | <el-tooltip effect="dark" :content="translateDeptIdList(item.deptId)" placement="top"> |
| | | <div class="item" style="margin-bottom: 0" v-for="(deptId,index) in item.deptId" :key=index> |
| | | {{ translateDeptIdList(item.deptId) }} |
| | | </div> |
| | | </el-tooltip> |
| | | </div> |
| | | <div class="text item" style="display: flex"> |
| | | <span style="padding: 3px 0;">使用状态:</span> |
| | | <dict-tag :options="dict.type.platform_use_state" :value="item.status"/> |
| | | </div> |
| | | <div class="bottom clearfix"> |
| | | <el-button type="text" class="button" @click="handleStatus(item)" v-show="item.status == 1" >启用</el-button> |
| | | <el-button type="text" class="button" @click="handleStatus(item)" v-show="item.status == 0" >停用</el-button> |
| | | <el-button type="text" class="button" @click="handleCopy(item)">复制</el-button> |
| | | <el-button type="text" class="button" @click="handleUpdate(item)">修改</el-button> |
| | | <el-button type="text" class="button" @click="handleDelete(item)">删除</el-button> |
| | | </div> |
| | | </el-card> |
| | | </div> |
| | | <div class="text item" style="display: flex"> |
| | | <span style="padding: 3px 0;">使用状态:</span> |
| | | <dict-tag :options="dict.type.platform_use_state" :value="item.status"/> |
| | | </div> |
| | | <div class="bottom clearfix"> |
| | | <el-button type="text" class="button" @click="handleStatus(item)" v-show="item.status == 1">启用</el-button> |
| | | <el-button type="text" class="button" @click="handleStatus(item)" v-show="item.status == 0">停用</el-button> |
| | | <el-button type="text" class="button" @click="handleCopy(item)">复制</el-button> |
| | | <el-button type="text" class="button" @click="handleUpdate(item)">修改</el-button> |
| | | <el-button type="text" class="button" @click="handleDelete(item)">删除</el-button> |
| | | </div> |
| | | </el-card> |
| | | </div> |
| | | |
| | | <pagination |
| | |
| | | <el-dialog :title="title" :visible.sync="open" width="700px" append-to-body> |
| | | <el-form ref="form" :model="form" :rules="rules" label-width="80px"> |
| | | <el-form-item label="模板名称" prop="templateName"> |
| | | <el-input v-model="form.templateName" placeholder="请输入模板名称" /> |
| | | <el-input v-model="form.templateName" placeholder="请输入模板名称"/> |
| | | </el-form-item> |
| | | <el-form-item label="考核标签" prop="examineTag"> |
| | | <el-select v-model="form.examineTag" placeholder="考核类型"> |
| | |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <!-- <el-form-item label="考核频率" prop="frequency">--> |
| | | <!-- <el-select v-model="form.frequency" placeholder="考核频率">--> |
| | | <!-- <el-option--> |
| | | <!-- v-for="dict in dict.type.platform_examine_frequency"--> |
| | | <!-- :key="dict.value"--> |
| | | <!-- :label="dict.label"--> |
| | | <!-- :value="parseInt(dict.value)"--> |
| | | <!-- />--> |
| | | <!-- </el-select>--> |
| | | <!-- </el-form-item>--> |
| | | <!-- <el-form-item label="考核频率" prop="frequency">--> |
| | | <!-- <el-select v-model="form.frequency" placeholder="考核频率">--> |
| | | <!-- <el-option--> |
| | | <!-- v-for="dict in dict.type.platform_examine_frequency"--> |
| | | <!-- :key="dict.value"--> |
| | | <!-- :label="dict.label"--> |
| | | <!-- :value="parseInt(dict.value)"--> |
| | | <!-- />--> |
| | | <!-- </el-select>--> |
| | | <!-- </el-form-item>--> |
| | | <el-form-item label="考核对象" prop="deptId"> |
| | | <el-select v-model="form.deptId" multiple placeholder="请选择"> |
| | | <el-option |
| | |
| | | <div class="row-warp"> |
| | | <div class="row" v-for="(form) in tempRuleFormList"> |
| | | <div class="row-left"> |
| | | <div>规则</div> |
| | | <div class="margin-5"> |
| | | <el-select v-model="form.ruleId" placeholder="请选择"> |
| | | <el-option |
| | | v-for="item in currentRuleList" |
| | | :key="item.id" |
| | | :label="item.ruleName" |
| | | :value="item.id" |
| | | :disabled="isRuleDisabled(item.id, index)" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | <div>规则</div> |
| | | <div class="margin-5"> |
| | | <el-select v-model="form.ruleId" placeholder="请选择"> |
| | | <el-option |
| | | v-for="item in currentRuleList" |
| | | :key="item.id" |
| | | :label="item.ruleName" |
| | | :value="item.id" |
| | | :disabled="isRuleDisabled(item.id, index)" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </div> |
| | | </div> |
| | | <div class="row-right"> |
| | | <div>权重</div> |
| | | <div class="margin-5"> |
| | | <el-input type="number" v-model.number="form.weight" /> |
| | | </div> |
| | | <div>权重</div> |
| | | <div class="margin-5"> |
| | | <el-input type="number" v-model.number="form.weight"/> |
| | | </div> |
| | | </div> |
| | | <div class="item-op"> |
| | | <el-button @click="removeRule(form)" type="danger" icon="el-icon-delete" circle></el-button> |
| | | </div> |
| | | </div> |
| | | <div style="margin-top: 25px"> |
| | | <el-button type="success" @click="nextAdd()" size="mini" plain>添加</el-button> |
| | | <el-button type="success" @click="nextAdd()" size="mini" plain>添加</el-button> |
| | | </div> |
| | | </div> |
| | | </el-form-item> |
| | | <el-form-item label="报警分数" prop="alarmScore"> |
| | | <el-input v-model="form.alarmScore" placeholder="请输入报警分数" /> |
| | | <el-input v-model="form.alarmScore" placeholder="请输入报警分数"/> |
| | | </el-form-item> |
| | | <el-form-item label="调整系数" prop="adjustCoefficient"> |
| | | <el-input v-model="form.adjustCoefficient" placeholder="请输入系数值" /> |
| | | <el-input v-model="form.adjustCoefficient" placeholder="请输入系数值"/> |
| | | </el-form-item> |
| | | <el-form-item label="调整方式" prop="adjustWay"> |
| | | <el-select v-model="form.adjustWay" placeholder="请选择调整系数计算方式"> |
| | |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="规则描述" prop="description"> |
| | | <el-input v-model="form.description" type="textarea" :autosize="{ minRows: 4, maxRows: 6}" placeholder="请输入规则描述"/> |
| | | <el-input v-model="form.description" type="textarea" :autosize="{ minRows: 4, maxRows: 6}" |
| | | placeholder="请输入规则描述"/> |
| | | </el-form-item> |
| | | <el-form-item label="状态" prop="status"> |
| | | <el-radio v-model="form.status" label="0" >启用</el-radio> |
| | | <el-radio v-model="form.status" label="1" >停用</el-radio> |
| | | <el-radio v-model="form.status" label="0">启用</el-radio> |
| | | <el-radio v-model="form.status" label="1">停用</el-radio> |
| | | </el-form-item> |
| | | </el-form> |
| | | <div slot="footer" class="dialog-footer"> |
| | |
| | | </template> |
| | | |
| | | <script> |
| | | import { listCheckTemplate, getCheckTemplate, delCheckTemplate, addCheckTemplate, updateCheckTemplate,copyCheckTemplate } from "@/api/platform/check-template"; |
| | | import { areaSelect } from '@/api/system/dept' |
| | | import { listCheckRule } from "../../../../api/platform/check-rule"; |
| | | import { |
| | | listCheckTemplate, |
| | | getCheckTemplate, |
| | | delCheckTemplate, |
| | | addCheckTemplate, |
| | | updateCheckTemplate, |
| | | copyCheckTemplate |
| | | } from "@/api/platform/check-template"; |
| | | import {areaSelect} from '@/api/system/dept' |
| | | import {listCheckRule} from "../../../../api/platform/check-rule"; |
| | | |
| | | export default { |
| | | name: "CheckTemplate", |
| | | dicts: ['platform_use_state','platform_examine_category','platform_rule_category','platform_examine_frequency','platform_examine_tag'], |
| | | dicts: ['platform_use_state', 'platform_examine_category', 'platform_rule_category', 'platform_examine_frequency', 'platform_examine_tag'], |
| | | data() { |
| | | return { |
| | | props: { multiple: true }, |
| | | props: {multiple: true}, |
| | | value: [], |
| | | areaList:[], |
| | | areaList: [], |
| | | ruleList: [], |
| | | unitList: [], |
| | | selectedRuleIds: [], |
| | |
| | | // 表单校验 |
| | | rules: { |
| | | templateName: [ |
| | | { required: true, message: "模板名称不能为空", trigger: "blur" } |
| | | {required: true, message: "模板名称不能为空", trigger: "blur"} |
| | | ], |
| | | examineTag: [ |
| | | { required: true, message: "请选择考核标签", trigger: "change" } |
| | | {required: true, message: "请选择考核标签", trigger: "change"} |
| | | ], |
| | | frequency: [ |
| | | { required: true, message: "请选择状态考核频率", trigger: "change" } |
| | | {required: true, message: "请选择状态考核频率", trigger: "change"} |
| | | ], |
| | | deptId: [ |
| | | { required: true, message: "请至少选择一个考核对象", trigger: "change" } |
| | | {required: true, message: "请至少选择一个考核对象", trigger: "change"} |
| | | ], |
| | | examineCategory: [ |
| | | { required: true, message: "请选择考核类型", trigger: "change" } |
| | | {required: true, message: "请选择考核类型", trigger: "change"} |
| | | ], |
| | | adjustCoefficient: [ |
| | | { required: true, message: "调整系数不能为空", trigger: "blur" } |
| | | {required: true, message: "调整系数不能为空", trigger: "blur"} |
| | | ], |
| | | adjustWay: [ |
| | | { required: true, message: "请选择调整方式", trigger: "change" } |
| | | {required: true, message: "请选择调整方式", trigger: "change"} |
| | | ], |
| | | status: [ |
| | | { required: true, message: "请选择状态", trigger: "change" } |
| | | {required: true, message: "请选择状态", trigger: "change"} |
| | | ], |
| | | }, |
| | | }; |
| | |
| | | // 多选框选中数据 |
| | | handleSelectionChange(selection) { |
| | | this.ids = selection.map(item => item.id) |
| | | this.single = selection.length!==1 |
| | | this.single = selection.length !== 1 |
| | | this.multiple = !selection.length |
| | | }, |
| | | /** 新增按钮操作 */ |
| | |
| | | this.title = "添加考核模板"; |
| | | }, |
| | | /** 复制按钮操作 */ |
| | | handleCopy(row){ |
| | | handleCopy(row) { |
| | | copyCheckTemplate(row).then(response => { |
| | | this.$modal.msgSuccess("复制成功"); |
| | | this.open = false; |
| | | this.getList(); |
| | | }); |
| | | }, |
| | | handleStatus(row){ |
| | | handleStatus(row) { |
| | | let text = row.status == 1 ? '启用' : '停用'; |
| | | const templateName = row.templateName; |
| | | this.$modal.confirm('是否确认' + text + '考核名为"' + templateName + '"的数据项?').then(function() { |
| | | this.$modal.confirm('是否确认' + text + '考核名为"' + templateName + '"的数据项?').then(function () { |
| | | row.status = row.status == 1 ? "0" : "1"; |
| | | return updateCheckTemplate(row); |
| | | }).then(() => { |
| | | this.getList(); |
| | | this.$modal.msgSuccess(text + "成功"); |
| | | }).catch(() => {}); |
| | | }).catch(() => { |
| | | }); |
| | | |
| | | }, |
| | | /** 修改按钮操作 */ |
| | |
| | | /** 删除按钮操作 */ |
| | | handleDelete(row) { |
| | | const id = row.id |
| | | this.$modal.confirm('是否确认删除考核模板名为"' + row.templateName + '"的数据项?').then(function() { |
| | | this.$modal.confirm('是否确认删除考核模板名为"' + row.templateName + '"的数据项?').then(function () { |
| | | return delCheckTemplate(id); |
| | | }).then(() => { |
| | | this.getList(); |
| | | this.$modal.msgSuccess("删除成功"); |
| | | }).catch(() => {}); |
| | | }).catch(() => { |
| | | }); |
| | | }, |
| | | /** 导出按钮操作 */ |
| | | handleExport() { |
| | |
| | | .margin-5 { |
| | | margin-left: 5px; |
| | | } |
| | | |
| | | .row-warp { |
| | | display: flex; |
| | | flex-direction: column; |
| | | } |
| | | |
| | | .row { |
| | | display: flex; |
| | | flex-direction: row; |
| | |
| | | justify-content: center; |
| | | margin: 5px 0; |
| | | } |
| | | |
| | | .row-left { |
| | | flex: 1; |
| | | display: flex; |
| | | flex-direction: row; |
| | | } |
| | | |
| | | .row-right { |
| | | flex: 1; |
| | | display: flex; |
| | | flex-direction: row; |
| | | } |
| | | |
| | | .text { |
| | | font-size: 14px; |
| | | } |
| | | font-size: 14px; |
| | | } |
| | | |
| | | .item { |
| | | margin-bottom: 15px; |
| | | overflow: hidden; |
| | | text-overflow: ellipsis; |
| | | white-space: nowrap; |
| | | } |
| | | .item { |
| | | margin-bottom: 15px; |
| | | overflow: hidden; |
| | | text-overflow: ellipsis; |
| | | white-space: nowrap; |
| | | } |
| | | |
| | | .box-card { |
| | | width: 20%; |
| | | .box-card { |
| | | width: 20%; |
| | | |
| | | margin-right: 50px; |
| | | margin-bottom: 30px; |
| | | } |
| | | margin-right: 50px; |
| | | margin-bottom: 30px; |
| | | } |
| | | |
| | | .card-container { |
| | | display: flex; |
| | | flex-wrap: wrap; |