From 50147d17d5d5549877b578c185e8451cdd9f5593 Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期三, 10 四月 2024 14:08:22 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 src/views/system/threshold/index.vue             |   17 +++
 src/views/system/work-order/distribute/index.vue |  146 ++++++++++++++++++++++++++++
 src/layout/components/Navbar.vue                 |   16 +++
 src/api/platform/notify.js                       |   61 ++++++++++++
 src/api/platform/people.js                       |    8 +
 src/views/system/report/index.vue                |   41 ++++++-
 src/views/system/unit/index.vue                  |    4 
 7 files changed, 279 insertions(+), 14 deletions(-)

diff --git a/src/api/platform/notify.js b/src/api/platform/notify.js
new file mode 100644
index 0000000..6b0a016
--- /dev/null
+++ b/src/api/platform/notify.js
@@ -0,0 +1,61 @@
+import axios from "./request";
+
+// 鑾峰彇閫氱煡鍒嗛〉
+export const getNotifys = (params) => {
+    return axios({
+        url: "/notify/page",
+        method: "GET",
+        params: params
+    })
+}
+
+// 鑾峰彇閫氱煡鍒楄〃
+export const getNotifyList = () => {
+    return axios({
+        url: "/notify/list",
+        method: "GET"
+    })
+}
+
+// 閫氳繃id鑾峰彇閫氱煡
+export const getNotifyById = (params) => {
+    return axios({
+        url: "/notify/" + params,
+        method: "GET"
+    })
+}
+
+// 閫氳繃id鍒犻櫎閫氱煡
+export const deleteNotifyById = (params) => {
+    return axios({
+        url: "/notify/" + params,
+        method: "DELETE"
+    })
+}
+
+// 鎵归噺鍒犻櫎閫氱煡
+export const deleteNotifyByIds = (params) => {
+    return axios({
+        url: "/notify/batch",
+        method: "DELETE",
+        data: params
+    })
+}
+
+// 淇敼閫氱煡
+export const editNotify = (params) => {
+    return axios({
+        url: "/notify/",
+        method: "PUT",
+        data: params
+    })
+}
+
+// 娣诲姞閫氱煡
+export const addNotify = (params) => {
+    return axios({
+        url: "/notify/",
+        method: "POST",
+        data: params
+    })
+}
diff --git a/src/api/platform/people.js b/src/api/platform/people.js
index efc0d1f..5ee7a10 100644
--- a/src/api/platform/people.js
+++ b/src/api/platform/people.js
@@ -17,6 +17,14 @@
   })
 }
 
+// 鏍规嵁杩愮淮鍗曚綅鏌ヨ杩愮淮浜哄憳璇︾粏
+export function getPeopleByUnitId(id) {
+  return request({
+    url: '/yw-people/getPeopleByUnitId/' + id,
+    method: 'get'
+  })
+}
+
 // 鏂板杩愮淮浜哄憳
 export function addPeople(data) {
   return request({
diff --git a/src/layout/components/Navbar.vue b/src/layout/components/Navbar.vue
index cd90e52..7defbcf 100644
--- a/src/layout/components/Navbar.vue
+++ b/src/layout/components/Navbar.vue
@@ -41,6 +41,12 @@
     <div class="button-container">
       <el-button type="primary" @click="toScreen">鍙鍖栧ぇ灞�</el-button>
     </div>
+    <div class="button-container">
+      <el-button type="primary" @click="toSystemB">璺宠浆B绯荤粺</el-button>
+    </div>
+    <div class="button-container">
+      <el-button type="primary" @click="toSystemA">璺宠浆A绯荤粺</el-button>
+    </div>
   </div>
 </template>
 
@@ -109,6 +115,16 @@
       this.$router.push({
         path: '/screen'
       })
+    },
+    toSystemA() {
+      this.$router.push({
+        path: '/screen'
+      })
+    },
+    toSystemB() {
+      this.$router.push({
+        path: '/screen'
+      })
     }
   }
 }
diff --git a/src/views/system/report/index.vue b/src/views/system/report/index.vue
index e4b92de..950f1e9 100644
--- a/src/views/system/report/index.vue
+++ b/src/views/system/report/index.vue
@@ -92,7 +92,7 @@
       <el-table-column label="鎶ュ浜哄憳" align="center" prop="peopleName" />
       <el-table-column label="鐐逛綅" align="center" prop="pointName" />
       <el-table-column label="鎶ュ绫诲瀷" align="center" prop="reportType" />
-      <el-table-column label="鎶ュ鍐呭" align="center" prop="reportContent" />
+      <el-table-column label="鎶ュ鍐呭" align="center" prop="reportContent" show-overflow-tooltip="true" />
       <el-table-column label="涓婃姤鏉愭枡" align="center" prop="reportMaterials" />
       <el-table-column label="鏁呴殰绫诲瀷" align="center" prop="errorType" />
       <el-table-column label="瀹℃牳鏃堕棿" align="center" prop="auditingTime" width="180">
@@ -115,6 +115,7 @@
             icon="el-icon-edit"
             @click="handleAuditing(scope.row)"
             v-hasPermi="['system:report:audit']"
+            v-if="scope.row.status === 0"
           >瀹℃牳</el-button>
           <el-button
             size="mini"
@@ -218,21 +219,23 @@
           <el-date-picker v-model="auditingForm.endCreateTime" disabled />
         </el-form-item>
         <el-form-item label="鎶ュ鍐呭">
-          <el-input v-model="auditingForm.pointName" disabled />
+          <el-input type="textarea" v-html="auditingForm.reportContent" disabled />
         </el-form-item>
         <el-form-item label="涓婃姤鏉愭枡">
-          <el-upload v-model="auditingForm.reportMaterials" disabled/>
+          <el-link :href="auditingForm.reportMaterials" :underline="false">{{ auditingForm.reportMaterials }}</el-link>
         </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-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>
@@ -321,6 +324,12 @@
         reportType: [
           { required: true, message: "璇烽�夋嫨鎶ュ绫诲瀷", trigger: "blur" }
         ],
+        errorType: [
+          { required: true, message: "璇烽�夋嫨鏁呴殰绫诲瀷", trigger: "blur" }
+        ],
+        expirTime: [
+          { required: true, message: "璇烽�夋嫨鏈夋晥鏃堕棿", trigger: "blur" }
+        ],
       }
     };
   },
@@ -334,6 +343,7 @@
     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
@@ -342,6 +352,7 @@
       this.auditingForm.reportType =row.reportType
       this.auditingForm.endCreateTime =row.endCreateTime
       this.auditingForm.beginCreateTime =row.beginCreateTime
+      this.auditingForm.reportMaterials =row.reportMaterials
     },
     // 杩滅▼鎼滅储鐐逛綅
     remoteGetPoints(query) {
@@ -406,6 +417,8 @@
     resetQuery() {
       this.daterangeCreateTime = [];
       this.daterangeAuditingTime = [];
+      this.queryParams["beginCreateTime"] = null;
+      this.queryParams["endCreateTime"] = null;
       this.resetForm("queryForm");
       this.handleQuery();
     },
@@ -429,6 +442,16 @@
         this.form = response.data;
         this.open = true;
         this.title = "淇敼鎶ュ";
+      });
+    },
+    /** 瀹℃牳鎸夐挳鎿嶄綔 */
+    auditingSubmit() {
+      this.auditingForm.auditingTime = new Date();
+      updateReport(this.auditingForm).then(response => {
+        this.$modal.msgSuccess("瀹℃牳鎴愬姛");
+        this.auditingOpen = false
+        this.getList();
+        this.auditingForm = {}
       });
     },
     /** 鎻愪氦鎸夐挳 */
@@ -471,7 +494,7 @@
     },
     /** 瀵煎嚭鎸夐挳鎿嶄綔 */
     handleExport() {
-      this.download('system/report/export', {
+      this.download('report/export', {
         ...this.queryParams
       }, `report_${new Date().getTime()}.xlsx`)
     }
diff --git a/src/views/system/threshold/index.vue b/src/views/system/threshold/index.vue
index a334492..5b536ca 100644
--- a/src/views/system/threshold/index.vue
+++ b/src/views/system/threshold/index.vue
@@ -24,10 +24,17 @@
         </template>
       </el-table-column>
       <el-table-column label="瓒呮椂澶╂暟" align="center" prop="timeout"/>
-      <el-table-column label="鎸囨爣" align="center" prop="indicator">
+      <el-table-column label="宸ュ崟闃堝��" align="center" prop="indicator">
         <template slot-scope="scope">
           <div v-for="item in JSON.parse(scope.row.indicator)" :key="item">
             {{ item.label }}锛歿{ item.value }}
+          </div>
+        </template>
+      </el-table-column>
+      <el-table-column label="涓嬪彂闃堝��" align="center" prop="indicator">
+        <template slot-scope="scope">
+          <div v-for="item in JSON.parse(scope.row.indicator)" :key="item">
+            {{ item.label }}锛歿{ item.value2 }}
           </div>
         </template>
       </el-table-column>
@@ -75,7 +82,8 @@
           <el-input type="number" min="0" max="1000" v-model="form.timeout" placeholder="璇疯緭鍏ヨ秴鏃跺ぉ鏁�"/>
         </el-form-item>
         <el-form-item :label="indicator.label" prop="indexOneValue" v-for="indicator in indicators" label-width="150px">
-          <el-input class="el-input-width" v-model="indicator.value" :placeholder="'璇疯緭鍏�' + indicator.label"/>
+          <el-input class="el-input-half-width" v-model="indicator.value" placeholder="宸ュ崟闃堝��"/>
+          <el-input style="float: right;" class="el-input-half-width" v-model="indicator.value2" placeholder="涓嬪彂闃堝��"/>
         </el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer">
@@ -325,3 +333,8 @@
   }
 }
 </script>
+<style>
+.el-input-half-width {  
+  width: calc(50% - 6px); /* 鍑忓幓涓�浜涢棿闅� */  
+}
+</style>
\ No newline at end of file
diff --git a/src/views/system/unit/index.vue b/src/views/system/unit/index.vue
index dc3bf74..4409bfa 100644
--- a/src/views/system/unit/index.vue
+++ b/src/views/system/unit/index.vue
@@ -261,6 +261,8 @@
     /** 閲嶇疆鎸夐挳鎿嶄綔 */
     resetQuery() {
       this.daterangeCreateTime = [];
+      this.queryParams.start = null;
+      this.queryParams.end = null;
       this.resetForm("queryForm");
       this.handleQuery();
     },
@@ -318,7 +320,7 @@
     },
     /** 瀵煎嚭鎸夐挳鎿嶄綔 */
     handleExport() {
-      this.download('system/unit/export', {
+      this.download('yw-unit/export', {
         ...this.queryParams
       }, `unit_${new Date().getTime()}.xlsx`)
     }
diff --git a/src/views/system/work-order/distribute/index.vue b/src/views/system/work-order/distribute/index.vue
index 6ae9267..45fae99 100644
--- a/src/views/system/work-order/distribute/index.vue
+++ b/src/views/system/work-order/distribute/index.vue
@@ -83,6 +83,13 @@
                 end-placeholder="缁撴潫鏃ユ湡">
               </el-date-picker>
             </el-form-item>
+            <el-form-item label="鏁呴殰绫诲瀷" prop="errorType">
+              <el-select v-model="fastDistributeForm.errorType">
+                <el-option label="甯傛斂鏂藉伐" value="甯傛斂鏂藉伐"/>
+                <el-option label="璁惧鏁呴殰" value="璁惧鏁呴殰"/>
+                <el-option label="璁惧閬楀け" value="璁惧閬楀け"/>
+              </el-select>
+            </el-form-item>
             <el-form-item label="鏁伴噺闄愬埗" prop="fastNumLimit">
               <el-input v-model="fastDistributeForm.fastNumLimit" size="small" type="number" placeholder="姝ゆ宸ュ崟涓嬪彂鏈�澶ф暟閲�"></el-input>
             </el-form-item>
@@ -92,7 +99,8 @@
           </el-form>
           <el-button slot="reference" type="primary" size="small">蹇嵎涓嬪彂</el-button>
         </el-popover>
-        <el-button size="small" type="primary" @click="page" class="op">鍒锋柊</el-button>
+        <el-button size="small" type="primary" @click="page">鍒锋柊</el-button>
+        <el-button size="small" type="primary" @click="handleAdd">鏂板</el-button>
       </el-col>
     </el-row>
 
@@ -117,11 +125,58 @@
       </el-col>
 
     </el-row>
+
+    <!-- 娣诲姞鎴栦慨鏀广�愯濉啓鍔熻兘鍚嶇О銆戝璇濇 -->
+    <el-dialog :title="detailName" :visible.sync="open" width="500px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="杩愮淮鍗曚綅" prop="unitId">
+          <el-select v-model="form.unitId" 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="source">
+          <el-select
+            v-model="form.source"
+            filterable
+            remote
+            reserve-keyword
+            placeholder="璇烽�夋嫨鏉ユ簮"
+            :remote-method="remoteGetPoints"
+            :loading="selectLoading">
+            <el-option
+              v-for="item in pointList"
+              :key="item.id"
+              :label="item.value"
+              :value="item.value">
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="鏁呴殰绫诲瀷" prop="errorType">
+          <el-select v-model="form.errorType">
+            <el-option label="甯傛斂鏂藉伐" value="甯傛斂鏂藉伐"/>
+            <el-option label="璁惧鏁呴殰" value="璁惧鏁呴殰"/>
+            <el-option label="璁惧閬楀け" value="璁惧閬楀け"/>
+          </el-select>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">纭� 瀹�</el-button>
+        <el-button @click="cancel">鍙� 娑�</el-button>
+      </div>
+    </el-dialog>
+
   </div>
 </template>
 
 <script>
-import {distributeWorkOrder, fastDistribute} from '@/api/platform/work-order'
+import {distributeWorkOrder, fastDistribute, addWorkOrder, updateWorkOrder} from '@/api/platform/work-order'
+import {unitSelect} from "@/api/platform/unit";
+import { pointSelectData } from "@/api/platform/point";
 export default {
   name: 'index',
   data() {
@@ -169,6 +224,9 @@
         fastNumLimit: [
           { required: true, message: "璇疯緭鍏ュ揩閫熷垎鍙戞暟閲忛檺鍒�", trigger: "change" }
         ],
+        errorType: [
+          { required: true, message: "璇锋晠闅滅被鍨�", trigger: "change" }
+        ],
       },
       queryParams: {
         unitId: null,
@@ -182,10 +240,37 @@
       activeIndex: '0',
       loading: false,
       workOrderList: [],
+      // 寮瑰嚭灞傛爣棰�
+      title: "",
+      // 鏄惁鏄剧ず寮瑰嚭灞�
+      open: false,
+      // 琛ㄥ崟鍙傛暟
+      form: {
+      },
+      // 涓嬫媺鍔犺浇
+      selectLoading: false,
+      // 鐐逛綅list
+      pointList: [],
+      // 琛ㄥ崟鏍¢獙
+      rules: {
+        source: [
+          { required: true, message: "宸ュ崟鏉ユ簮涓嶈兘涓虹┖", trigger: "blur" }
+        ],
+        workOrderNo: [
+          { required: true, message: "宸ュ崟鍙蜂笉鑳戒负绌�", trigger: "blur" }
+        ],
+        unitId: [
+          { required: true, message: "杩愮淮鍗曚綅涓嶈兘涓虹┖", trigger: "blur" }
+        ],
+        errorType: [
+          { required: true, message: "璇烽�夋嫨鏁呴殰绫诲瀷", trigger: "blur" }
+        ],
+      }
     }
   },
   mounted() {
     this.page();
+    this.selectUnit();
   },
   methods: {
     submitSetting() {
@@ -264,6 +349,63 @@
     handleSelectionChange(selection) {
       this.multipleSelection = selection.map(item => item.id)
     },
+    /** 鏂板鎸夐挳鎿嶄綔 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "娣诲姞鍚堝悓";
+    },
+    // 琛ㄥ崟閲嶇疆
+    reset() {
+      this.form = {};
+      this.resetForm("form");
+    },
+    /** 鎻愪氦鎸夐挳 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateWorkOrder(this.form).then(response => {
+              this.$modal.msgSuccess("淇敼鎴愬姛");
+              this.open = false;
+              this.page();
+            });
+          } else {
+            addWorkOrder(this.form).then(response => {
+              this.$modal.msgSuccess("鏂板鎴愬姛");
+              this.open = false;
+              this.page();
+            });
+          }
+        }
+      });
+    },
+    // 鍙栨秷鎸夐挳
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 杩愮淮鍏徃涓嬫媺鏁版嵁
+    selectUnit() {
+      unitSelect().then(res => {
+        this.unitList = res.data;
+      })
+    },
+    // 杩滅▼鎼滅储鐐逛綅
+    remoteGetPoints(query) {
+      if (query !== '') {
+        this.selectLoading = true;
+        let data = {
+          "keyword": query
+        }
+        pointSelectData(data).then(res => {
+          this.pointList = res.data;
+          this.selectLoading = false;
+        })
+      } else {
+        this.pointList = [];
+      }
+    },
   }
 }
 </script>

--
Gitblit v1.8.0