From 4fa44f71fbb58abf9256f8bd872b8e0890f49f9c Mon Sep 17 00:00:00 2001
From: 龚焕茏 <2842157468@qq.com>
Date: 星期三, 24 四月 2024 18:08:59 +0800
Subject: [PATCH] 合同规则分三层、合同积分新增

---
 src/views/system/score/default/index.vue |  119 ++++++++++++++++++++++++++++++++---------------------------
 1 files changed, 65 insertions(+), 54 deletions(-)

diff --git a/src/views/system/score/default/index.vue b/src/views/system/score/default/index.vue
index 126fd5e..7edbf72 100644
--- a/src/views/system/score/default/index.vue
+++ b/src/views/system/score/default/index.vue
@@ -164,59 +164,54 @@
     </el-dialog>
 
     <!-- 鏂板鎴栦慨鏀� -->
-    <el-dialog title="杩愮淮绉垎瀹℃牳" :visible.sync="open" width="700px"append-to-body>
+    <el-dialog title="杩愮淮绉垎瀹℃牳" :visible.sync="open" width="700px" append-to-body>
       <el-form ref="auditingForm" :model="auditingForm" :rules="auditingRules" label-width="120px">
-        <el-form-item label="杩愮淮鑰冩牳鍗曚綅" prop="unitName">
-          <el-select v-model="form.unitNameList" placeholder="杩愮淮鑰冩牳鍗曚綅">
+        <el-form-item label="杩愮淮鑰冩牳鍗曚綅" prop="unitId">
+          <el-select v-model="form.unitId" placeholder="杩愮淮鑰冩牳鍗曚綅" @change="handleChangeUnit">
             <el-option
-              v-for="item in unitNameList"
-              :key="item.id"
-              :label="item.value"
-              :value="item.id">
-            </el-option>
-          </el-select>
-        </el-form-item>
-        <el-form-item label="鑰冩牳鍚�" prop="examineId">
-          <el-select v-model="form.examineId" placeholder="鑰冩牳鍚�" >
-            <el-option
-              v-for="item in examineList"
-              :key="item.id"
-              :label="item.value"
-              :value="item.id">
-            </el-option>
+            v-for="item in unitList"
+            :key="item.id"
+            :label="item.value"
+            :value="item.id">
+          </el-option>
           </el-select>
         </el-form-item>
         <el-form-item label="杩愮淮鑰冩牳瑙勫垯" prop="tempRuleFormList">
           <div class="row-warp">
-            <div class="row" v-for="(form) in tempRuleFormList">
+            <div class="row">
               <div class="row-left">
-                <div>瑙勫垯</div>
                 <div class="block">
                   <span class="demonstration"></span>
                   <el-cascader
+                    ref="cascader"
                     v-model="value"
                     :options="options"
-                    :props = "props"
-                    @change="handleChange"></el-cascader>
+                    @change="handleChange">
+                    <template slot-scope="{ data }">
+                      <el-tooltip
+                        class="item"
+                        :disabled="data.label.length < 16 && !data.deductCategory"
+                        effect="dark"
+                        :content="data.label.length < 16 ? data.deductCategory ? data.deductCategory + ' ' + data.calcFraction + (data.calcUnit ? '/' + data.calcUnit : '') : '' : (data.deductCategory ? data.label + ' ' + data.deductCategory + ' ' + data.calcFraction + (data.calcUnit ? '/' + data.calcUnit : '') : data.label)"
+                        placement="left"
+                      >
+                        <span>{{ data.label }}</span>
+                      </el-tooltip>
+                    </template>
+                  </el-cascader>
                 </div>
               </div>
-              <div class="row-right">
+              <div class="row-right" v-if="needNum">
                 <div>鎸囨爣</div>
                 <div class="margin-5">
-                  <el-input type="number" v-model="form.weight"/>
+                  <el-input type="number" placeholder="璇疯緭鍏�" v-model="form.num" @change="handleChangeNum"/>
                 </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>
             </div>
           </div>
         </el-form-item>
-        <el-form-item label="杩愮淮鑰冩牳鎵e垎"  style="width: 20%">
-          <el-input v-model="auditingForm.score"></el-input>
+        <el-form-item label="杩愮淮鑰冩牳鎵e垎"  style="width: 51%">
+          <el-input type="number" v-model="form.score"></el-input>
         </el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer">
@@ -230,33 +225,17 @@
 <script>
 import { listAuditing, getAuditing, delAuditing, addAuditing, updateAuditing,auditing } from "@/api/platform/contract-score";
 import { unitSelect } from "@/api/platform/unit";
+import { getRuleListByUnitId } from "@/api/platform/calculate-rule";
 
 export default {
   name: "Auditing",
   data() {
     return {
-      options: [{
-        value: 'city',
-        label: '鍓嶇鎰熺煡婧愭不鐞嗗伐浣�',
-        children: [{
-          value: 'fushun',
-          label: '鏃堕挓鍚屾',
-        }, {
-          value: 'rong',
-          label: 'OSD鏍囪瘑鏈慨澶�',
-        }, {
-          value: 'rong',
-          label: '涓�鏈轰竴妗d笉鍚堟牸',
-        }
-        ]
-      },
-      ],
+      needNum: false,
+      options: [],
       auditingOpen: false,
       auditingForm: {},
       unitList: [],
-      unitNameList: [
-        {id:2 , value:"鎴愰兘x杩愮淮"}
-        ],
       // 鑰冩牳妯℃澘
       examineList: [
         {id:1 , value:"杞﹁締鑰冩牳"},
@@ -314,8 +293,36 @@
     this.getUnitSelect();
   },
   methods: {
-    handleChange(value) {
-      console.log(value);
+    handleChange() {
+      let item = this.$refs['cascader'].getCheckedNodes()[0].data;
+      console.log("item", item);
+      if (item.deductCategory == "鎵f寚瀹氬垎鏁�") {
+        this.needNum = false;
+        this.form.score = item.calcFraction;
+      } else {
+        this.needNum = true;
+        this.form.score = null;
+      }
+    },
+    handleChangeNum() {
+      // 绠楀垎
+    },
+    handleChangeUnit(value) {
+      getRuleListByUnitId(value).then((res) => {
+        this.options = this.getTreeData(res.data);
+      })
+    },
+    getTreeData(data){
+      for(var i=0;i<data.length;i++){
+        if(data[i].children.length<1){
+          // children鑻ヤ负绌烘暟缁勶紝鍒欏皢children璁句负undefined
+          data[i].children=undefined;
+        }else {
+          // children鑻ヤ笉涓虹┖鏁扮粍锛屽垯缁х画 閫掑綊璋冪敤 鏈柟娉�
+          this.getTreeData(data[i].children);
+        }
+      }
+      return data;
     },
     // 鎻愪氦瀹℃牳
     submitAuditing() {
@@ -489,4 +496,8 @@
   flex-direction: row;
 }
 </style>
-
+<style>
+.el-cascader-node {
+  max-width: 300px;
+}
+</style>
\ No newline at end of file

--
Gitblit v1.8.0