From 02aa50f23d4858798a951bef1cfe2bc23031a4b1 Mon Sep 17 00:00:00 2001 From: 龚焕茏 <2842157468@qq.com> Date: 星期五, 26 四月 2024 16:11:46 +0800 Subject: [PATCH] 合同导入新增金额规则 --- src/views/system/template/index.vue | 300 +++++++++++++++++++++++++++++++++++++++++------------------ 1 files changed, 209 insertions(+), 91 deletions(-) diff --git a/src/views/system/template/index.vue b/src/views/system/template/index.vue index 1f715a7..f6a88db 100644 --- a/src/views/system/template/index.vue +++ b/src/views/system/template/index.vue @@ -1,35 +1,8 @@ <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="status"> - <el-input - v-model="queryParams.status" - placeholder="璇疯緭鍏ョ姸鎬�" - clearable - @keyup.enter.native="handleQuery" - /> - </el-form-item> - <el-form-item label="鑰冩牳瀵硅薄" prop="unitName"> - <el-input - v-model="queryParams.status" - placeholder="璇疯緭鍏ヨ�冩牳瀵硅薄" - clearable - @keyup.enter.native="handleQuery" - /> - </el-form-item> - <el-form-item label="鍒涘缓鏃堕棿"> - <el-date-picker - v-model="daterangeCreateTime" - style="width: 240px" - value-format="yyyy-MM-dd" - type="daterange" - range-separator="-" - start-placeholder="寮�濮嬫棩鏈�" - end-placeholder="缁撴潫鏃ユ湡" - ></el-date-picker> - </el-form-item> --> + <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.status" placeholder="鑰冩牳绫诲瀷" clearable @keyup.enter.native="handleQuery"> + <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" @@ -38,13 +11,23 @@ /> </el-select> </el-form-item> + <el-form-item label="鑰冩牳鏍囩" prop="examineTag"> + <el-select v-model="queryParams.examineTag" placeholder="鑰冩牳鏍囩" clearable @keyup.enter.native="handleQuery"> + <el-option + v-for="dict in dict.type.platform_examine_tag" + :key="parseInt(dict.value)" + :label="dict.label" + :value="parseInt(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-row :gutter="10" style="margin-left :15px"> <el-col :span="1.5"> <el-button type="primary" @@ -72,33 +55,49 @@ size="mini" :disabled="multiple" @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-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.examineCategory == 0 ? '鐪佸巺鑰冩牳' : '鍖哄煙鑰冩牳' }}</div> - <div class="text item">鑰冩牳瀵硅薄锛歿{ item.deptId }}</div> - <div class="text item">鍙戝竷鐘舵�侊細{{ item.status == 0 ? '鍚敤' : '鍋滅敤' }}</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 ? '鏈堝害鑰冩牳' : '瀛e害鑰冩牳' }}</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="">瀹℃牳</el-button> - <el-button type="text" class="button" @click="">鍙戝竷</el-button> - <el-button type="text" class="button" @click="">澶嶅埗</el-button> + <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 v-show="total>0" @@ -114,10 +113,20 @@ <el-form-item label="妯℃澘鍚嶇О" prop="templateName"> <el-input v-model="form.templateName" placeholder="璇疯緭鍏ユā鏉垮悕绉�" /> </el-form-item> - <el-form-item label="鑰冩牳绫诲瀷" prop="examineCategory"> - <el-select v-model="form.examineCategory" placeholder="鑰冩牳绫诲瀷"> + <el-form-item label="鑰冩牳鏍囩" prop="examineTag"> + <el-select v-model="form.examineTag" placeholder="鑰冩牳绫诲瀷"> <el-option - v-for="dict in dict.type.platform_examine_category" + v-for="dict in dict.type.platform_examine_tag" + :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)" @@ -134,6 +143,16 @@ </el-option> </el-select> </el-form-item> + <el-form-item label="鑰冩牳绫诲瀷" prop="examineCategory"> + <el-select v-model="form.examineCategory" placeholder="鑰冩牳绫诲瀷" :disabled="tempRuleFormList.length > 0"> + <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="tempRuleFormList"> <div class="row-warp"> <div class="row" v-for="(form) in tempRuleFormList"> @@ -142,10 +161,12 @@ <div class="margin-5"> <el-select v-model="form.ruleId" placeholder="璇烽�夋嫨"> <el-option - v-for="item in ruleList" + v-for="item in currentRuleList" :key="item.id" - :label="item.value" - :value="item.id"> + :label="item.ruleName" + :value="item.id" + :disabled="isRuleDisabled(item.id, index)" + > </el-option> </el-select> </div> @@ -153,7 +174,7 @@ <div class="row-right"> <div>鏉冮噸</div> <div class="margin-5"> - <el-input type="number" v-model="form.weight"/> + <el-input type="number" v-model.number="form.weight" /> </div> </div> <div class="item-op"> @@ -161,9 +182,12 @@ </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-form-item> <el-form-item label="璋冩暣绯绘暟" prop="adjustCoefficient"> <el-input v-model="form.adjustCoefficient" placeholder="璇疯緭鍏ョ郴鏁板��" /> @@ -180,9 +204,12 @@ </el-option> </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-form-item> <el-form-item label="鐘舵��" prop="status"> - <el-radio v-model="form.status" label="use">鍚敤</el-radio> - <el-radio v-model="form.status" label="stop">鍋滅敤</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"> @@ -194,13 +221,13 @@ </template> <script> -import { listCheckTemplate, getCheckTemplate, delCheckTemplate, addCheckTemplate, updateCheckTemplate } from "@/api/platform/check-template"; -// import { ruleSelect } from '@/api/platform/check-rule' - import { areaSelect } from '@/api/system/dept' +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_audit_state','platform_examine_category','platform_rule_category'], + dicts: ['platform_use_state','platform_examine_category','platform_rule_category','platform_examine_frequency','platform_examine_tag'], data() { return { props: { multiple: true }, @@ -208,10 +235,11 @@ areaList:[], ruleList: [], unitList: [], - // 涓存椂瑙勫垯琛ㄥ崟 - tempRuleForm: {}, + selectedRuleIds: [], + examineCategory: null, + isExamineCategoryDisabled: false, // 涓存椂瑙勫垯琛ㄥ崟鍒楄〃 - tempRuleFormList: [{"ruleId": null, "adjustCoefficient": null}], + tempRuleFormList: [], // 鏈�缁� ruleFormList: [], // 閬僵灞� @@ -238,8 +266,8 @@ queryParams: { pageNum: 1, pageSize: 10, - status: null, - createTime: null, + examineCategory: null, + examineTag: null }, // 琛ㄥ崟鍙傛暟 form: {}, @@ -248,14 +276,55 @@ templateName: [ { required: true, message: "妯℃澘鍚嶇О涓嶈兘涓虹┖", trigger: "blur" } ], + examineTag: [ + { required: true, message: "璇烽�夋嫨鑰冩牳鏍囩", trigger: "change" } + ], + frequency: [ + { required: true, message: "璇烽�夋嫨鐘舵�佽�冩牳棰戠巼", trigger: "change" } + ], + deptId: [ + { required: true, message: "璇疯嚦灏戦�夋嫨涓�涓�冩牳瀵硅薄", trigger: "change" } + ], + examineCategory: [ + { required: true, message: "璇烽�夋嫨鑰冩牳绫诲瀷", trigger: "change" } + ], adjustCoefficient: [ { required: true, message: "璋冩暣绯绘暟涓嶈兘涓虹┖", trigger: "blur" } ], adjustWay: [ - { required: true, message: "璋冩暣鏂瑰紡锛氫箻闄や笉鑳戒负绌�", trigger: "blur" } + { required: true, message: "璇烽�夋嫨璋冩暣鏂瑰紡", trigger: "change" } ], - } + status: [ + { required: true, message: "璇烽�夋嫨鐘舵��", trigger: "change" } + ], + }, }; + }, + computed: { + formattedDeptIds() { + // 浣跨敤map灏嗘暟缁勫厓绱犺浆鎹负瀛楃涓诧紝鐒跺悗鐢╦oin鏂规硶杩炴帴瀹冧滑 + return this.item.deptId.map(deptId => deptId.toString()).join(', '); + }, + currentRuleList() { + // 鏍规嵁褰撳墠鑰冩牳绫诲瀷杩斿洖鐩稿簲鐨勮鍒欏垪琛� + const ruleListKey = this.form.examineCategory; + // 鏈変笁涓笉鍚岀殑瑙勫垯鍒楄〃 + const videoRules = this.ruleList['videoRules']; // 瑙嗛鐩稿叧鐨勮鍒欓泦鍚� + const carRules = this.ruleList['carRules']; // 姹借溅鐩稿叧鐨勮鍒欓泦鍚� + const faceRules = this.ruleList['faceRules']; // 浜鸿劯鐩稿叧鐨勮鍒欓泦鍚� + + // 浣跨敤鏉′欢璇彞鏉ラ�夋嫨瑙勫垯鍒楄〃 + if (ruleListKey == 0) { + return carRules; + } else if (ruleListKey == 1) { + return faceRules; + } else if (ruleListKey == 2) { + return videoRules; + } else { + // 榛樿杩斿洖涓�涓┖鏁扮粍鎴栧閫夋柟妗� + return []; + } + } }, created() { this.getList(); @@ -266,8 +335,9 @@ } }, methods: { - handleChange(value) { - console.log(value); + isRuleDisabled(ruleId, index) { + // 妫�鏌ヨ鍒欐槸鍚﹀凡琚坊鍔犲埌 tempRuleFormList 涓苟涓斾笉鏄綋鍓嶉亶鍘嗙殑椤� + return this.tempRuleFormList.some(item => item.ruleId === ruleId && item !== this.tempRuleFormList[index]); }, removeRule(form) { console.log(form) @@ -275,34 +345,34 @@ this.tempRuleFormList = this.tempRuleFormList.filter(item => item !== form) }, nextAdd() { - // if (this.tempRuleFormList.length === 0) { - // this.tempRuleFormList.push({"ruleId": null, "weight": null}) - // } else { - // this.ruleFormList.push(this.tempRuleForm); - // this.tempRuleFormList.push(this.tempRuleForm); - // this.tempRuleForm = {}; - // } - this.tempRuleFormList.push({"ruleId": null, "weight": null}) + this.tempRuleFormList.push({"ruleId": null, "weight": null}); + }, + handleChange(value) { + console.log(value); }, // 鑰冩牳瑙勫垯涓嬫媺鏁版嵁 selectCheckRule() { - ruleSelect().then(res => { + listCheckRule().then(res => { this.ruleList = res.data; }) }, - // 杩愮淮鍏徃涓嬫媺鏁版嵁 + // 鍖哄煙涓嬫媺鏁版嵁 areaSelect() { areaSelect().then(res => { this.areaList = res.data; }) }, + translateDeptId(deptId) { + const department = this.areaList.find(dept => dept.id === deptId); + return department ? department.value : '鏈煡'; + }, + translateDeptIdList(deptNames) { + return deptNames.map(this.translateDeptId).join(', '); + }, /** 鏌ヨ鑰冩牳妯℃澘鍒楄〃 */ getList() { this.loading = true; - if (null != this.daterangeCreateTime && '' != this.daterangeCreateTime) { - this.queryParams["start"] = this.daterangeCreateTime[0]; - this.queryParams["end"] = this.daterangeCreateTime[1]; - } + console.log(this.queryParams) listCheckTemplate(this.queryParams).then(response => { this.checkTemplateList = response.rows; this.total = response.total; @@ -318,9 +388,16 @@ reset() { this.form = { id: null, + templateName: null, + examineTag: null, + frequency: null, + deptId: [], + examineCategory: null, + alarmScore: null, adjustCoefficient: null, adjustWay: null, status: null, + description: null, createTime: null, updateTime: null, deleted: null @@ -347,8 +424,30 @@ /** 鏂板鎸夐挳鎿嶄綔 */ handleAdd() { this.reset(); + this.selectedRuleIds = []; + this.tempRuleFormList = []; this.open = true; this.title = "娣诲姞鑰冩牳妯℃澘"; + }, + /** 澶嶅埗鎸夐挳鎿嶄綔 */ + handleCopy(row){ + copyCheckTemplate(row).then(response => { + this.$modal.msgSuccess("澶嶅埗鎴愬姛"); + this.open = false; + this.getList(); + }); + }, + handleStatus(row){ + let text = row.status == 1 ? '鍚敤' : '鍋滅敤'; + const templateName = row.templateName; + 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(() => {}); + }, /** 淇敼鎸夐挳鎿嶄綔 */ handleUpdate(row) { @@ -366,13 +465,21 @@ submitForm() { this.$refs["form"].validate(valid => { if (valid) { + // 閬嶅巻琛ㄥ崟涓殑姣忎釜鏉冮噸瀛楁 + for (let i = 0; i < this.tempRuleFormList.length; i++) { + const weight = this.tempRuleFormList[i].weight; + const ruleId = this.tempRuleFormList[i].ruleId; + // 濡傛灉鏉冮噸涓虹┖锛屽垯鏄剧ず閿欒鎻愮ず锛屽苟闃绘鎻愪氦 + if (!weight || !ruleId) { + this.$message.error('瑙勫垯鎴栨潈閲嶄笉鑳戒负绌�'); + return; + } + } this.form.ruleFormList = this.tempRuleFormList; if (this.form.id != null) { updateCheckTemplate(this.form).then(response => { this.$modal.msgSuccess("淇敼鎴愬姛"); this.open = false; - this.tempRuleFormList = []; - this.form = {}; this.getList(); }); } else { @@ -387,9 +494,9 @@ }, /** 鍒犻櫎鎸夐挳鎿嶄綔 */ handleDelete(row) { - const ids = row.id || this.ids; - this.$modal.confirm('鏄惁纭鍒犻櫎鑰冩牳妯℃澘缂栧彿涓�"' + ids + '"鐨勬暟鎹」锛�').then(function() { - return delCheckTemplate(ids); + const id = row.id + this.$modal.confirm('鏄惁纭鍒犻櫎鑰冩牳妯℃澘鍚嶄负"' + row.templateName + '"鐨勬暟鎹」锛�').then(function() { + return delCheckTemplate(id); }).then(() => { this.getList(); this.$modal.msgSuccess("鍒犻櫎鎴愬姛"); @@ -435,7 +542,7 @@ } .item { - margin-bottom: 18px; + margin-bottom: 15px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; @@ -443,5 +550,16 @@ .box-card { width: 20%; + + margin-right: 80px; + margin-bottom: 30px; } +.card-container { + display: flex; + flex-wrap: wrap; + justify-content: flex-start; + align-items: stretch; + margin-top: 20px; + padding: 0 20px; +} </style> -- Gitblit v1.8.0