From 19e559358b907cff913d7aa277fa04496b7fe0a6 Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期五, 19 四月 2024 15:55:16 +0800
Subject: [PATCH] 考核模板

---
 src/api/platform/check-rule.js      |   14 -
 src/api/platform/check-template.js  |   10 +
 src/views/system/rule/index.vue     |   15 --
 src/views/system/template/index.vue |  293 ++++++++++++++++++++++++++++++++++--------------
 4 files changed, 223 insertions(+), 109 deletions(-)

diff --git a/src/api/platform/check-rule.js b/src/api/platform/check-rule.js
index 6deb1ef..3a44b68 100644
--- a/src/api/platform/check-rule.js
+++ b/src/api/platform/check-rule.js
@@ -4,8 +4,8 @@
 export function listCheckRule(query) {
   return request({
     url: '/check/rule/list',
-    method: 'post',
-    data: query
+    method: 'get',
+    params: query
   })
 }
 
@@ -26,6 +26,8 @@
   })
 }
 
+
+
 // 淇敼鑰冩牳瑙勫垯
 export function updateCheckRule(data) {
   return request({
@@ -43,10 +45,4 @@
   })
 }
 
-// 鑾峰彇涓嬫媺鍒楄〃
-export function ruleSelect() {
-  return request({
-    url: '/check-rule/list',
-    method: 'get'
-  })
-}
+
diff --git a/src/api/platform/check-template.js b/src/api/platform/check-template.js
index 620fd8f..fd8dee2 100644
--- a/src/api/platform/check-template.js
+++ b/src/api/platform/check-template.js
@@ -5,7 +5,7 @@
   return request({
     url: '/check/template/list',
     method: 'get',
-    data: query
+    params: query
   })
 }
 
@@ -26,6 +26,14 @@
   })
 }
 
+// 澶嶅埗鑰冩牳瑙勫垯
+export function copyCheckTemplate(data) {
+  return request({
+    url: '/check/template/copy',
+    method: 'post',
+    data: data
+  })
+}
 // 淇敼鑰冩牳妯℃澘
 export function updateCheckTemplate(data) {
   return request({
diff --git a/src/views/system/rule/index.vue b/src/views/system/rule/index.vue
index 75d534d..fdc5ca9 100644
--- a/src/views/system/rule/index.vue
+++ b/src/views/system/rule/index.vue
@@ -14,7 +14,6 @@
               <i style="font-size: 40px;padding: 15px;" :class="item.icon"></i>
               <div style="font-size:12px; text-align: center; height: 25px;">{{ item.name }} </div>
               <div class="bottom clearfix">
-                <el-button type="text" class="button" @click="handleAudit(item)">瀹℃牳</el-button>
                 <el-button type="text" class="button" @click="handleUpdate(item)">淇敼</el-button>
               </div>
             </el-card>
@@ -36,7 +35,6 @@
             <i style="font-size: 40px;padding: 15px;" :class="item.icon"></i>
             <div style="font-size:12px; text-align: center; height: 25px;">{{ item.name }} </div>
             <div class="bottom clearfix">
-              <el-button type="text" class="button" @click="handleAudit(item)">瀹℃牳</el-button>
               <el-button type="text" class="button" @click="handleUpdate(item)">淇敼</el-button>
             </div>
           </el-card>
@@ -58,7 +56,6 @@
             <i style="font-size: 40px;padding: 15px;" :class="item.icon"></i>
             <div style="font-size:12px; text-align: center; height: 25px;">{{ item.name }} </div>
             <div class="bottom clearfix">
-              <el-button type="text" class="button" @click="handleAudit(item)">瀹℃牳</el-button>
               <el-button type="text" class="button" @click="handleUpdate(item)">淇敼</el-button>
             </div>
           </el-card>
@@ -160,7 +157,7 @@
 import { templateSelect} from   "@/api/platform/check-template"
 export default {
   name: "CheckRule",
-  dicts: ['platform_audit_state','platform_examine_category','platform_rule_category'],
+  dicts: ['platform_audit_state','platform_rule_category'],
   data() {
     return {
       // 閬僵灞�
@@ -193,7 +190,6 @@
         createTime: null,
         ruleCategory: null,
         templateId: null,
-        examineCategory: 1,
       },
       videoData: [
         { name: '骞冲彴鍦ㄧ嚎鐜�', icon: 'el-icon-connection', ruleDescription: '鐪佸巺瀵瑰競绾у叡浜拰鑱旂綉骞冲彴杩涜瀹炴椂鐩戞祴锛屽競绾у叡浜�/鑱旂綉骞冲彴姣忔湀绂荤嚎鎬绘椂闀垮湪30鍒嗛挓浠ュ唴鐨勫钩鍙板湪绾跨巼涓�100%锛屾瘡瓒呰繃30鍒嗛挓鎵�10涓櫨鍒嗙偣锛屾墸瀹屼负姝€��' +
@@ -248,7 +244,7 @@
     };
   },
   created() {
-
+    this.getList();
   },
   methods: {
     groupData(data) {
@@ -259,12 +255,7 @@
       }
       return groupedData;
     },
-    /** 鑰冩牳妯℃澘涓嬫媺鍒楄〃 */
-    getTemplateSelect() {
-      templateSelect().then((res) => {
-        this.templateList = res.data;
-      })
-    },
+
     /** 鏌ヨ鑰冩牳瑙勫垯鍒楄〃 */
     getList() {
       this.loading = true;
diff --git a/src/views/system/template/index.vue b/src/views/system/template/index.vue
index e1480c5..2f4a281 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"
@@ -74,30 +57,47 @@
           @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.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="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"
@@ -113,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)"
@@ -133,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">
@@ -141,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>
@@ -152,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">
@@ -160,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="璇疯緭鍏ョ郴鏁板��" />
@@ -179,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">
@@ -193,13 +221,13 @@
 </template>
 
 <script>
-import { listCheckTemplate, getCheckTemplate, delCheckTemplate, addCheckTemplate, updateCheckTemplate } from "@/api/platform/check-template";
-// import { ruleSelect } 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_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 },
@@ -207,10 +235,11 @@
       areaList:[],
       ruleList: [],
       unitList: [],
-      // 涓存椂瑙勫垯琛ㄥ崟
-      tempRuleForm: {},
+      selectedRuleIds: [],
+      examineCategory: null,
+      isExamineCategoryDisabled: false,
       // 涓存椂瑙勫垯琛ㄥ崟鍒楄〃
-      tempRuleFormList: [{"ruleId": null, "adjustCoefficient": null}],
+      tempRuleFormList: [],
       // 鏈�缁�
       ruleFormList: [],
       // 閬僵灞�
@@ -237,8 +266,8 @@
       queryParams: {
         pageNum: 1,
         pageSize: 10,
-        status: null,
-        createTime: null,
+        examineCategory: null,
+        examineTag: null
       },
       // 琛ㄥ崟鍙傛暟
       form: {},
@@ -247,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();
@@ -265,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)
@@ -274,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;
@@ -317,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
@@ -346,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) {
@@ -365,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 {
@@ -386,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("鍒犻櫎鎴愬姛");
@@ -434,7 +542,7 @@
   }
 
   .item {
-    margin-bottom: 18px;
+    margin-bottom: 15px;
     overflow: hidden;
     text-overflow: ellipsis;
     white-space: nowrap;
@@ -442,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