From 7d99c78c767f5ec13f9bbab6e1251825e92ea009 Mon Sep 17 00:00:00 2001
From: 龚焕茏 <2842157468@qq.com>
Date: 星期一, 29 四月 2024 17:53:16 +0800
Subject: [PATCH] 合同考核结果定时任务、详情、查询、导出

---
 src/views/system/calculate/order/index.vue |  133 +++++++++++++++++++++-----------------------
 src/api/platform/check-result.js           |   12 +++
 src/views/system/contract/index.vue        |    2 
 src/api/platform/contract-score.js         |    2 
 src/views/system/score/default/index.vue   |   24 +++++--
 5 files changed, 92 insertions(+), 81 deletions(-)

diff --git a/src/api/platform/check-result.js b/src/api/platform/check-result.js
index 578e87a..23b723b 100644
--- a/src/api/platform/check-result.js
+++ b/src/api/platform/check-result.js
@@ -3,12 +3,20 @@
 // 鏌ヨ鑰冩牳缁撴灉鍒楄〃
 export function listCheckResult(query) {
   return request({
-    url: '/check/result/list',
-    method: 'get',
+    url: '/check/result/list?pageNum=' + query.pageNum + '&pageSize=' + query.pageSize,
+    method: 'post',
     data: query
   })
 }
 
+// 鏌ヨ鑰冩牳缁撴灉璇︽儏
+export function resultRecord(id) {
+  return request({
+    url: '/check/result/record/list?resultId=' + id,
+    method: 'get'
+  })
+}
+
 // 鏌ヨ鑰冩牳缁撴灉璇︾粏
 export function getCheckResult(id) {
   return request({
diff --git a/src/api/platform/contract-score.js b/src/api/platform/contract-score.js
index 8e111ea..da595be 100644
--- a/src/api/platform/contract-score.js
+++ b/src/api/platform/contract-score.js
@@ -3,7 +3,7 @@
 // 鏌ヨ杩濊瀹℃牳鍒楄〃
 export function listAuditing(data) {
   return request({
-    url: '/contract/score/list',
+    url: '/contract/score/list?pageNum=' + data.pageNum + '&pageSize=' + data.pageSize,
     method: 'post',
     data: data
   })
diff --git a/src/views/system/calculate/order/index.vue b/src/views/system/calculate/order/index.vue
index f694391..9aa6437 100644
--- a/src/views/system/calculate/order/index.vue
+++ b/src/views/system/calculate/order/index.vue
@@ -1,14 +1,17 @@
 <template>
   <div class="app-container">
     <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="100px">
-      <el-form-item label="鑰冩牳瀵硅薄" prop="checkUnitId">
-        <el-input
-          v-model="queryParams.checkUnitName"
-          placeholder="璇疯緭鍏ヨ�冩牳瀵硅薄"
-          clearable
-          @clear="handleQuery"
-          @keyup.enter.native="handleQuery"
-        />
+      <el-form-item label="鑰冩牳瀵硅薄" prop="unitId">
+        <el-select v-model="queryParams.unitId" @change="handleQuery" clearable placeholder="鑰冩牳瀵硅薄">
+          <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="unitId">
+        <el-select v-model="queryParams.publish" @change="handleQuery" clearable placeholder="鍙戝竷鐘舵��">
+          <el-option label="鏈彂甯�" :value="0" />
+          <el-option label="宸插彂甯�" :value="1" />
+        </el-select>
       </el-form-item>
       <el-form-item label="鑰冩牳鏃堕棿">
         <el-date-picker
@@ -62,19 +65,23 @@
       <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
     </el-row>
 
-    <el-card class="box-card" v-for="item in checkResultList" :key="item.id">
-      <div slot="header" class="clearfix">
-        <span>{{ item.contractName }}</span>
-        <el-button style="float: right; padding: 3px 6px" type="text" @click="handleDetail(item)">璇︽儏</el-button>
-      </div>
-      <div class="text item">鑰冩牳<span class="time">{{ item.unitName }}</span></div>
-      <div class="text item">鑰冩牳鍒嗘暟<span class="time">{{ item.score }}</span></div>
-      <div class="text item">鑰冩牳鏃堕棿
-        <span class="time">{{ item.checkTime }}</span>
-        <el-button size="small" round style="float: right;" @click="handlePublish(item)" v-show="item.publish != 1"  v-hasPermi="['result:contract:publish']">纭鍙戝竷</el-button>
-        <el-button size="small" round style="float: right;" @click="handlePublish(item)" v-show="item.publish == 1"  v-hasPermi="['result:contract:publish']">宸插彂甯�</el-button>
-      </div>
-    </el-card>
+    <el-row v-loading="loading">
+      <el-col :span="8" v-for="(item, index) in checkResultList" :key="index">
+        <el-card class="box-card">
+          <div slot="header" class="clearfix">
+            <span>{{ item.contractName }}</span>
+            <el-button style="float: right; padding: 3px 6px" type="text" @click="handleDetail(item)">璇︽儏</el-button>
+          </div>
+          <div class="text item">鑰冩牳瀵硅薄<span class="time">{{ item.unitName }}</span></div>
+          <div class="text item">鑰冩牳鍒嗘暟<span class="time">{{ item.score }}</span></div>
+          <div class="text item">鑰冩牳鏃堕棿
+            <span class="time">{{ item.checkTime }}</span>
+            <el-button size="small" round style="float: right;" @click="handlePublish(item)" v-show="item.publish != 1"  v-hasPermi="['result:contract:publish']">纭鍙戝竷</el-button>
+            <el-button size="small" round style="float: right;" disabled v-show="item.publish == 1"  v-hasPermi="['result:contract:publish']">宸插彂甯�</el-button>
+          </div>
+        </el-card>
+      </el-col>
+    </el-row>
 
 
     <pagination
@@ -122,18 +129,24 @@
           show-summary
           style="width: 100%">
           <el-table-column
-            prop="name"
+            prop="ruleName"
             label="瑙勫垯鍚�"
-            width="180">
+            :show-overflow-tooltip="true"
+            width="300">
           </el-table-column>
           <el-table-column
-            prop="content"
-            label="鎸囨爣"
-            width="180">
+           label="鎵e噺鏂瑰紡"
+            align="center"
+            prop="deductCategory"
+            width="180px">
+          </el-table-column>
+          <el-table-column
+            prop="num"
+            label="鎸囨爣">
           </el-table-column>
           <el-table-column
             prop="score"
-            label="寰楀垎">
+            label="鎵e垎">
           </el-table-column>
         </el-table>
     </el-dialog>
@@ -151,7 +164,8 @@
 </template>
 
 <script>
-import { listCheckResult, getCheckResult, delCheckResult, addCheckResult, updateCheckResult,manualScore, publishCheckResult } from "@/api/platform/check-result";
+import { resultRecord, listCheckResult, getCheckResult, delCheckResult, addCheckResult, updateCheckResult,manualScore, publishCheckResult } from "@/api/platform/check-result";
+import { unitSelect } from "@/api/platform/unit";
 
 export default {
   name: "CheckResult",
@@ -162,23 +176,7 @@
       detail:{
 
       },
-      tableData: [{
-        name: '瑙嗛骞冲潎鍦ㄧ嚎鐜�',
-        content: '97%',
-        score: '-5'
-      }, {
-        name: '涓�鏈轰竴妗�24灏忔椂鏈慨澶�',
-        content: '5涓�',
-        score: '-0.5'
-      }, {
-        name: '瀛樺偍鏁呴殰',
-        content: '5灏忔椂',
-        score: '-0.3'
-      }, {
-        name: '鏃堕挓涓嶅悓姝�24灏忔椂鏈慨澶�',
-        content: '3涓�',
-        score: '-0.5'
-      }],
+      tableData: [],
       manualScoreOpen: false,
       manualScoreForm: {},
       manualScoreTitle: '',
@@ -213,36 +211,29 @@
       form: {},
       // 琛ㄥ崟鏍¢獙
       rules: {
-      }
+      },
+      unitList: []
     };
   },
   created() {
     this.getList();
+    this.getUnitSelect();
   },
   methods: {
-    frequencyFormatter(row) {
-      if (row.frequency === "1") {
-        return "鏈堝害鑰冩牳"
-      }
-      if (row.frequency === "2") {
-        return "瀛e害鑰冩牳"
-      }
-    },
-    examineRangeFormatter(row) {
-      if (row.examineRange === "1") {
-        return "鍒嗗眬鑰冩牳"
-      }
-      if (row.examineRange === "2") {
-        return "甯傚眬鑰冩牳"
-      }
+    getUnitSelect() {
+      // 杩愮淮鍗曚綅涓嬫媺鍒楄〃
+      unitSelect().then((res) => {
+        this.unitList = res.data;
+      })
     },
     /** 鏌ヨ鑰冩牳缁撴灉鍒楄〃 */
     getList() {
       this.loading = true;
       if (null != this.daterangeCheckTime && '' != this.daterangeCheckTime) {
-        this.queryParams["start"] = this.daterangeCheckTime[0];
-        this.queryParams["end"] = this.daterangeCheckTime[1];
+        this.queryParams["createStartTime"] = this.daterangeCheckTime[0];
+        this.queryParams["createEndTime"] = this.daterangeCheckTime[1];
       }
+      console.log("this.queryParams", this.queryParams)
       listCheckResult(this.queryParams).then(response => {
         this.checkResultList = response.rows;
         this.total = response.total;
@@ -293,11 +284,12 @@
       this.manualScoreOpen = true;
     },
     handleDetail(row) {
+      resultRecord(row.id).then(res => {
+        this.tableData = res.rows;
+      })
       this.detail = row;
-      this.detail.carOnlineRate =  '97%';
-      this.detailTitle = '鑰冩牳缁撴灉';
+      this.detailTitle = '鑰冩牳缁撴灉璇︽儏';
       this.detailOpen = true;
-
     },
     handlePublish(row) {
       let text = row.publish == 1 ? '鍙栨秷鍙戝竷' : '鍙戝竷';
@@ -312,13 +304,13 @@
     },
     /** 鎼滅储鎸夐挳鎿嶄綔 */
     handleQuery() {
-      this.queryParams.pageNum = 1;
       this.getList();
     },
     /** 閲嶇疆鎸夐挳鎿嶄綔 */
     resetQuery() {
       this.daterangeCheckTime = [];
       this.resetForm("queryForm");
+      this.queryParams = {};
       this.handleQuery();
     },
     // 澶氶�夋閫変腑鏁版嵁
@@ -375,9 +367,9 @@
     },
     /** 瀵煎嚭鎸夐挳鎿嶄綔 */
     handleExport() {
-      this.download('system/checkResult/export', {
+      this.download('check/result/export', {
         ...this.queryParams
-      }, `checkResult_${new Date().getTime()}.xlsx`)
+      }, `鍚堝悓鑰冩牳缁撴灉_${new Date().getTime()}.xlsx`)
     },
 
   }
@@ -404,6 +396,7 @@
     clear: both
   }
   .box-card {
-    width: 350px;
+    width: 400px;
+    margin-bottom: 20px;
   }
 </style>
diff --git a/src/views/system/contract/index.vue b/src/views/system/contract/index.vue
index 61ac223..8a0d0e7 100644
--- a/src/views/system/contract/index.vue
+++ b/src/views/system/contract/index.vue
@@ -33,7 +33,7 @@
           <el-collapse-item  v-for="(item, index) in ruleData" :key="index" :title="item.ruleName" :name="index">
             <div class="inline-input-container" v-for="(item, index) in item.children" :key="index">
               <b>{{ item.ruleDesc }}</b> <br v-if="item.ruleDesc"/>
-              <el-tooltip class="item" v-for="(item, index) in item.children" :key="index" effect="dark" :content="item.deductCategory == '鍒嗘暟涔樹互鏁伴噺' ? '鎵�' + item.calcFraction  + '涔樹互鏁伴噺 ' : item.deductCategory == '闄や互鏁伴噺鍚庝箻浠ュ垎鏁�' ? '鎵�' + item.calcFraction + '鍒�/' +  item.calcUnit + '灏忔椂' : item.deductCategory + ' ' + item.calcFraction" placement="top">
+              <el-tooltip class="item" v-for="(item, index) in item.children" :key="index" effect="dark" :content="item.deductCategory == '鍒嗘暟涔樹互鏁伴噺' ? '鎵�' + item.calcFraction  + '鍒�*鏁伴噺 ' : item.deductCategory == '闄や互鏁伴噺鍚庝箻浠ュ垎鏁�' ? '鎵�' + item.calcFraction + '鍒�/' +  item.calcUnit + '灏忔椂' : '鎵�' + item.calcFraction + '鍒�'" placement="top">
                 <span>{{ item.ruleCondition }}<br/></span>
                 <!-- {{ item.deductCategory }} {{ item.calcFraction }}{{ item.calcUnit ? "/" + item.calcUnit : ''  }} -->
             </el-tooltip>
diff --git a/src/views/system/score/default/index.vue b/src/views/system/score/default/index.vue
index bb3d5be..f2db340 100644
--- a/src/views/system/score/default/index.vue
+++ b/src/views/system/score/default/index.vue
@@ -44,12 +44,13 @@
 
     <el-table v-loading="loading" :data="auditingList" @selection-change="handleSelectionChange">
       <el-table-column type="selection" width="55" align="center" />
-      <el-table-column label="鑰冩牳鍗曚綅" align="center" prop="unitName" width="180" />
-      <el-table-column label="鑰冩牳鍚堝悓" align="center" prop="contractName" width="180" />
-      <el-table-column label="鑰冩牳瑙勫垯" align="center" prop="ruleName" width="120" :show-overflow-tooltip="true" />
-      <el-table-column label="鑰冩牳鎸囨爣" align="center" prop="num" width="120" />
-      <el-table-column label="鑰冩牳鎵e垎" align="center" prop="score" width="120" />
-      <el-table-column label="鍒涘缓鏃堕棿" align="center" prop="createTime" />
+      <el-table-column label="鑰冩牳鍗曚綅" align="center" prop="unitName"/>
+      <el-table-column label="鑰冩牳鍚堝悓" align="center" prop="contractName"/>
+      <el-table-column label="鑰冩牳瑙勫垯" align="center" prop="ruleName" :show-overflow-tooltip="true" />
+      <el-table-column label="鎵e噺鏂瑰紡" align="center" prop="deductCategory"/>
+      <el-table-column label="鑰冩牳鎸囨爣" align="center" prop="num"/>
+      <el-table-column label="鑰冩牳鎵e垎" align="center" prop="score"/>
+      <el-table-column label="鍒涘缓鏃堕棿" align="center" prop="createTime" width="180px"/>
       <el-table-column label="瀹℃牳鐘舵��" align="center" prop="auditingStatus">
         <template slot-scope="scope">
           <el-tag
@@ -121,7 +122,14 @@
                   <el-cascader ref="cascader" v-model="form.ruleIdsArray" :options="options" @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)"
+                        :content="
+                          data.label.length < 16 ?   
+                            data.deductCategory ?   
+                                data.deductCategory == '鍒嗘暟涔樹互鏁伴噺' ? '鎵�' + data.calcFraction  + '鍒�*鏁伴噺 ' : data.deductCategory == '闄や互鏁伴噺鍚庝箻浠ュ垎鏁�' ? '鎵�' + data.calcFraction + '鍒�/' +  data.calcUnit + '灏忔椂' : '鎵�' + data.calcFraction + '鍒�' :   
+                                '' :   
+                            (data.deductCategory ?   
+                                data.label + ' ' + (data.deductCategory == '鍒嗘暟涔樹互鏁伴噺' ? '鎵�' + data.calcFraction  + '鍒�*鏁伴噺 ' : data.deductCategory == '闄や互鏁伴噺鍚庝箻浠ュ垎鏁�' ? '鎵�' + data.calcFraction + '鍒�/' +  data.calcUnit + '灏忔椂' : '鎵�' + data.calcFraction + '鍒�') :   
+                                data.label)"
                         placement="left">
                         <span>{{ data.label }}</span>
                       </el-tooltip>
@@ -281,6 +289,7 @@
       let item = this.$refs['cascader'].getCheckedNodes()[0].data;
       this.calcObj = item;
       this.form.contractId = item.contractId;
+      this.form.deductCategory = item.deductCategory == '鍒嗘暟涔樹互鏁伴噺' ? '鎵�' + item.calcFraction  + '鍒�*鏁伴噺 ' : item.deductCategory == '闄や互鏁伴噺鍚庝箻浠ュ垎鏁�' ? '鎵�' + item.calcFraction + '鍒�/' +  item.calcUnit + '灏忔椂' : '鎵�' + item.calcFraction + '鍒�';
       if (item.deductCategory == "鎵f寚瀹氬垎鏁�") {
         this.needNum = false;
         this.form.score = item.calcFraction;
@@ -399,6 +408,7 @@
       this.daterangeAuditingTime = [];
       this.daterangeCreateTime = [];
       this.resetForm("queryForm");
+      this.queryParams = {};
       this.handleQuery();
     },
     // 澶氶�夋閫変腑鏁版嵁

--
Gitblit v1.8.0