From 84562e1978146f396c6976c75dc931c12b188982 Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期五, 26 四月 2024 15:54:17 +0800
Subject: [PATCH] 核算报告功能完善

---
 src/views/system/report/index.vue |  127 +++++++++++++++++++++++++++++++++++++-----
 1 files changed, 111 insertions(+), 16 deletions(-)

diff --git a/src/views/system/report/index.vue b/src/views/system/report/index.vue
index e78d801..f399ce2 100644
--- a/src/views/system/report/index.vue
+++ b/src/views/system/report/index.vue
@@ -17,6 +17,16 @@
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
+      <el-form-item label="鎶ュ绫诲瀷" prop="reportType">
+        <el-select
+          v-model="queryParams.reportType"
+          placeholder="鎶ュ绫诲瀷"
+          clearable
+        >
+          <el-option label="浜嬪墠鎶ュ" value="浜嬪墠鎶ュ" />
+          <el-option label="浜嬪悗鎶ュ" value="浜嬪悗鎶ュ" />
+        </el-select>
+      </el-form-item>
       <el-form-item label="鎶ュ鏃堕棿">
         <el-date-picker
           v-model="daterangeCreateTime"
@@ -42,6 +52,7 @@
           icon="el-icon-plus"
           size="mini"
           @click="handleAdd"
+          v-hasPermi="['system:report:add']"
         >鏂板</el-button>
       </el-col>
 <!--      <el-col :span="1.5">-->
@@ -62,6 +73,7 @@
           size="mini"
           :disabled="multiple"
           @click="handleDelete"
+          v-hasPermi="['system:report:remove']"
         >鍒犻櫎</el-button>
       </el-col>
       <el-col :span="1.5">
@@ -71,6 +83,7 @@
           icon="el-icon-download"
           size="mini"
           @click="handleExport"
+          v-hasPermi="['system:report:export']"
         >瀵煎嚭</el-button>
       </el-col>
       <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
@@ -81,8 +94,13 @@
       <el-table-column label="杩愮淮鍗曚綅" align="center" prop="unitName" />
       <el-table-column label="鎶ュ浜哄憳" align="center" prop="peopleName" />
       <el-table-column label="鐐逛綅" align="center" prop="pointName" />
-      <el-table-column label="鎶ュ鍐呭" align="center" prop="reportContent" />
-      <el-table-column label="涓婃姤鏉愭枡" align="center" prop="reportMaterials" />
+      <el-table-column label="鎶ュ绫诲瀷" align="center" prop="reportType" />
+      <el-table-column label="鎶ュ鍐呭" align="center" prop="reportContent" show-overflow-tooltip="true" />
+      <el-table-column label="涓婃姤鏉愭枡" align="center" prop="reportMaterials" show-overflow-tooltip="true">
+        <template slot-scope="scope">
+          <div v-for="(item, index) in scope.row.reportMaterials.split(',')" :key="index">{{ item.substring(item.lastIndexOf("/") + 1) }}</div>
+        </template>
+      </el-table-column>
       <el-table-column label="鏁呴殰绫诲瀷" align="center" prop="errorType" />
       <el-table-column label="瀹℃牳鏃堕棿" align="center" prop="auditingTime" width="180">
         <template slot-scope="scope">
@@ -103,7 +121,8 @@
             type="text"
             icon="el-icon-edit"
             @click="handleAuditing(scope.row)"
-            v-hasPermi="['system:report:auditing']"
+            v-hasPermi="['system:report:edit']"
+            v-if="scope.row.status === 0"
           >瀹℃牳</el-button>
           <el-button
             size="mini"
@@ -138,10 +157,16 @@
             :loading="selectLoading">
             <el-option
               v-for="item in pointList"
-              :key="item.value"
-              :label="item.label"
-              :value="item.value">
+              :key="item.id"
+              :label="item.value"
+              :value="item.id">
             </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="鎶ュ绫诲瀷" prop="reportType">
+          <el-select v-model="form.reportType">
+            <el-option label="浜嬪墠鎶ュ" value="浜嬪墠鎶ュ"/>
+            <el-option label="浜嬪悗鎶ュ" value="浜嬪悗鎶ュ"/>
           </el-select>
         </el-form-item>
         <el-form-item label="鏁呴殰绫诲瀷" prop="errorType">
@@ -150,6 +175,18 @@
             <el-option label="璁惧鏁呴殰" value="璁惧鏁呴殰"/>
             <el-option label="璁惧閬楀け" value="璁惧閬楀け"/>
           </el-select>
+        </el-form-item>
+        <el-form-item label="鎶ュ鏃堕棿" prop="expirTime">
+          <el-date-picker
+            v-model="form.expirTime"
+            style="width: 240px"
+            value-format="yyyy-MM-dd"
+            type="daterange"
+            range-separator="-"
+            start-placeholder="寮�濮嬫棩鏈�"
+            end-placeholder="缁撴潫鏃ユ湡"
+            @change="handleExpirTimeChange"
+          ></el-date-picker>
         </el-form-item>
         <el-form-item label="鎶ュ鍐呭" prop="reportContent">
           <editor v-model="form.reportContent" :min-height="192"/>
@@ -177,25 +214,40 @@
         <el-form-item label="鎶ュ浜哄憳">
           <el-input v-model="auditingForm.peopleName" disabled />
         </el-form-item>
+        <el-form-item label="鎶ュ绫诲瀷">
+          <el-input v-model="auditingForm.reportType" disabled />
+        </el-form-item>
         <el-form-item label="鏁呴殰绫诲瀷">
           <el-input v-model="auditingForm.errorType" disabled />
         </el-form-item>
-        <el-form-item label="鎶ュ鍐呭">
-          <el-input v-model="auditingForm.pointName" disabled />
+        <el-form-item label="鐢熸晥鏃堕棿">
+          <el-date-picker v-model="auditingForm.beginCreateTime" disabled />
         </el-form-item>
-        <el-form-item label="瀹℃牳缁撴灉" prop="auditing">
-          <el-radio v-model="auditingForm.auditing" label="pass">閫氳繃</el-radio>
-          <el-radio v-model="auditingForm.auditing" label="reject">椹冲洖</el-radio>
+        <el-form-item label="澶辨晥鏃堕棿">
+          <el-date-picker v-model="auditingForm.endCreateTime" disabled />
+        </el-form-item>
+        <el-form-item label="鎶ュ鍐呭">
+          <el-input type="textarea" v-html="auditingForm.reportContent" disabled />
+        </el-form-item>
+        <el-form-item label="涓婃姤鏉愭枡">
+          <el-link v-for="item in auditingForm.reportMaterials != null ? auditingForm.reportMaterials.split(',') : auditingForm.reportMaterials" :underline="false" :key="item" @click="handleDownload(item)">{{ item.substring(item.lastIndexOf("/") + 1) }}</el-link>
+        </el-form-item>
+        <el-form-item label="瀹℃牳缁撴灉">
+          <el-radio-group v-model="auditingForm.status">
+            <el-radio :label="1">閫氳繃</el-radio>
+            <el-radio :label="2">椹冲洖</el-radio>
+          </el-radio-group>
         </el-form-item>
         <el-form-item label="瀹℃牳鎰忚" prop="suggest">
-          <el-input v-model="auditingForm.suggest"/>
+          <el-input v-model="auditingForm.auditOpinion"/>
         </el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer">
-        <el-button type="primary">纭� 瀹�</el-button>
+        <el-button type="primary" @click="auditingSubmit">纭� 瀹�</el-button>
         <el-button @click="auditingCancel">鍙� 娑�</el-button>
       </div>
     </el-dialog>
+
   </div>
 </template>
 
@@ -231,6 +283,7 @@
       open: false,
       // 鏁呴殰绫诲瀷鏃堕棿鑼冨洿
       daterangeCreateTime: [],
+      expirTime: [],
       // 鏁呴殰绫诲瀷鏃堕棿鑼冨洿
       daterangeAuditingTime: [],
       auditingOpen: false,
@@ -242,7 +295,10 @@
         errorType: "",
         reportContent: "",
         auditing: "",
-        suggest: ""
+        suggest: "",
+        reportType: "",
+        beginCreateTime: null,
+        endCreateTime: null
       },
       // 鏌ヨ鍙傛暟
       queryParams: {
@@ -273,6 +329,15 @@
         reportMaterials: [
           { required: true, message: "涓婃姤鏉愭枡涓嶈兘涓虹┖", trigger: "blur" }
         ],
+        reportType: [
+          { required: true, message: "璇烽�夋嫨鎶ュ绫诲瀷", trigger: "blur" }
+        ],
+        errorType: [
+          { required: true, message: "璇烽�夋嫨鏁呴殰绫诲瀷", trigger: "blur" }
+        ],
+        expirTime: [
+          { required: true, message: "璇烽�夋嫨鎶ュ鏃堕棿", trigger: "blur" }
+        ],
       }
     };
   },
@@ -286,11 +351,16 @@
     handleAuditing(row) {
       this.auditingOpen = true;
       this.auditingForm.id =row.id
+      this.auditingForm.pointId =row.pointId
       this.auditingForm.pointName =row.pointName
       this.auditingForm.unitName =row.unitName
       this.auditingForm.peopleName =row.peopleName
       this.auditingForm.errorType =row.errorType
       this.auditingForm.reportContent =row.reportContent
+      this.auditingForm.reportType =row.reportType
+      this.auditingForm.endCreateTime =row.endCreateTime
+      this.auditingForm.beginCreateTime =row.beginCreateTime
+      this.auditingForm.reportMaterials =row.reportMaterials
     },
     // 杩滅▼鎼滅储鐐逛綅
     remoteGetPoints(query) {
@@ -355,6 +425,8 @@
     resetQuery() {
       this.daterangeCreateTime = [];
       this.daterangeAuditingTime = [];
+      this.queryParams["beginCreateTime"] = null;
+      this.queryParams["endCreateTime"] = null;
       this.resetForm("queryForm");
       this.handleQuery();
     },
@@ -380,8 +452,27 @@
         this.title = "淇敼鎶ュ";
       });
     },
+    /** 瀹℃牳鎸夐挳鎿嶄綔 */
+    auditingSubmit() {
+      this.auditingForm.auditingTime = new Date();
+      updateReport(this.auditingForm).then(response => {
+        this.$modal.msgSuccess("瀹℃牳鎴愬姛");
+        this.auditingOpen = false
+        this.getList();
+        this.auditingForm = {}
+      });
+    },
+    handleExpirTimeChange() {
+      if (null != this.form.expirTime && '' != this.form.expirTime) {
+        this.form["beginCreateTime"] = this.form.expirTime[0];
+        this.form["endCreateTime"] = this.form.expirTime[1];
+      }
+    },
     /** 鎻愪氦鎸夐挳 */
     submitForm() {
+
+      // todo 鍒ゆ柇鏄簨鍓嶆姤澶�
+
       this.$refs["form"].validate(valid => {
         if (valid) {
           if (this.form.id != null) {
@@ -392,7 +483,7 @@
             });
           } else {
             addReport(this.form).then(response => {
-              this.$modal.msgSuccess("鏂板鎴愬姛");
+              this.$modal.msgSuccess("鎴愬姛鎻愪氦鎶ュ");
               this.open = false;
               this.getList();
             });
@@ -412,9 +503,13 @@
     },
     /** 瀵煎嚭鎸夐挳鎿嶄綔 */
     handleExport() {
-      this.download('system/report/export', {
+      this.download('report/export', {
         ...this.queryParams
       }, `report_${new Date().getTime()}.xlsx`)
+    },
+    /** 涓嬭浇鎸夐挳鎿嶄綔 */
+    handleDownload (data) {
+      this.$download.resource(data);
     }
   }
 };

--
Gitblit v1.8.0