Guoxiaohuan 5 år sedan
förälder
incheckning
93a3edaca9
2 ändrade filer med 148 tillägg och 48 borttagningar
  1. 65 24
      src/views/appeal/appealDetail.vue
  2. 83 24
      src/views/appeal/index.vue

+ 65 - 24
src/views/appeal/appealDetail.vue

@@ -8,22 +8,26 @@
     <div class="detailContainer">
       <div class="title Micbold">未执行申诉单</div>
       <div class="nav MicrYaHei">
-        <span>项目名称:大连万达广场</span>
-        <span>申请人:张三</span>
-        <span>申请时间:2020.01.13</span>
+        <span>项目名称:莞城万科城市广场</span>
+        <span>申请人:{{ applyUser||'--'}}</span>
+        <span>申请时间:{{dateNow||'--'}}</span>
       </div>
-      <div class="cont1 MicrYaHei">申诉未执行指令:2020.01.13 14:30 推送策略未执行</div>
+      <div
+        class="cont1 MicrYaHei"
+      >申诉未执行指令:{{formatterStr(detailObj.recommend.date)}} {{formatterStr1(detailObj.recommend.time)}} {{detailObj.title||'--'}}</div>
       <div class="cont2">
-        <audit-table :tableList='tableList'></audit-table>
+        <audit-table :tableList="tableList"></audit-table>
       </div>
       <div class="cont3">
         <span class="Micbold">策略评价</span>
-        <span class="MicrYaHei">执行策略的评价,判断项目执行策略的好坏,执行策略的评价,判断项目执行策略的好最多50个字</span>
+        <!-- <span
+          class="MicrYaHei"
+        >{{detailObj.recommend.evaluateStrategy||detailObj.recommend.remarks||'--'}}</span>-->
       </div>
       <div class="cont4">
         <span class="Micbold">申请原因</span>
         <span>
-          <el-select size="mini" v-model="value" placeholder="请选择">
+          <el-select size="mini" v-model="detailObj.reasonType" placeholder="请选择">
             <el-option
               v-for="item in options"
               :key="item.value"
@@ -33,21 +37,28 @@
           </el-select>
         </span>
         <span>
-          <textarea placeholder="填写申请原因" v-model="reason"></textarea>
+          <textarea placeholder="填写申请原因" v-model="detailObj.reason"></textarea>
         </span>
       </div>
       <div class="foot">
-        <upload-img :souseArr="souseArr"></upload-img>
+        <upload-img :souseArr="detailObj.pics"></upload-img>
       </div>
     </div>
   </div>
 </template>
 <script>
+var moment = require("moment");
+import "moment/locale/zh-cn";
 import Head from "../main/index";
 import AuditTable from "../audit/auditTable";
 import UploadImg from "../../components/uploadImg";
-import { queryWorkflow, queryChillerExecuteInfo } from "@/api/appeal/appeal.js";
+import {
+  queryWorkflow,
+  querySimpleInfo,
+  queryChillerExecuteInfo
+} from "@/api/appeal/appeal.js";
 import { updateWorkflow } from "@/api/audit/audit.js";
+// import {  } from "@/api/appeal/appeal.js";
 
 export default {
   data() {
@@ -69,10 +80,13 @@ export default {
         }
       ],
       value: "",
+      detailObj: {},
       souseArr: ["1576036336333_image.jpg", "1576036135588_image.jpg"],
       appealId: "",
       commandId: "",
-      tableList:[]
+      tableList: [],
+      dateNow: "",
+      applyUser: ""
     };
   },
   components: {
@@ -81,6 +95,27 @@ export default {
     UploadImg
   },
   methods: {
+    formatterStr(str) {
+      if (str) {
+        return (
+          str.substring(0, 4) +
+          "." +
+          str.substring(4, 6) +
+          "." +
+          str.substring(6, 8)
+        );
+      }
+    },
+    formatterStr1(str) {
+      if (str) {
+        return str.substring(0, 2) + ":" + str.substring(2, 4);
+      }
+    },
+    quertName(id) {
+      querySimpleInfo(id, {}).then(res => {
+        this.applyUser = res.realname;
+      });
+    },
     back() {
       this.$router.push("/appeal");
     },
@@ -93,22 +128,25 @@ export default {
         }
       };
       queryChillerExecuteInfo(params).then(res => {
-        const list = res.data || [{}, {}, {}]
-        this.tableList = Object.values(list[0]).map(i => i || {})
-        this.tableList[0].title = '当前运行状态'
-        this.tableList[1].title = '推送策略'
-        this.tableList[2].title = '执行策略'
+        const list = res.data || [{}, {}, {}];
+        this.tableList = Object.values(list[0]).map(i => i || {});
+        this.tableList[0].title = "当前运行状态";
+        this.tableList[1].title = "推送策略";
+        this.tableList[2].title = "执行策略";
       });
     },
     submission() {
       let params = {
         postParams: {
-          id: this.appealId,
+          id: this.detailObj.id,
           commit: "apply",
-          updateUser: "594e95e50abc4b6c9bdda985d313c1b9", //申请人
-          applyUser: "594e95e50abc4b6c9bdda985d313c1b9", //申请人
-          judgement: "评价", //策略评价
-          reasonType: "策略原因", //申诉原因类型:策略原因;设备原因;其他
+          updateUser: this.detailObj.applyUser, //申请人
+          applyUser: this.detailObj.applyUser, //申请人
+          judgement:
+            this.detailObj.recommend.evaluateStrategy ||
+            this.detailObj.recommend.remarks ||
+            "", //策略评价
+          reasonType: this.detailObj.reasonType, //申诉原因类型:策略原因;设备原因;其他
           reason: this.reason, //具体申诉原因
           pics: this.souseArr
         }
@@ -124,9 +162,12 @@ export default {
     }
   },
   mounted() {
-    this.appealId = this.$route.query.id;
-    if (this.commandId) {
-      this.commandId(this.commandId);
+    this.detailObj = JSON.parse(this.$route.query.item);
+    this.dateNow = moment()
+      .locale("zh-cn")
+      .format("YYYY.MM.DD");
+    if (Object.keys(this.detailObj).length > 0) {
+      this.quertName(this.detailObj.applyUser);
     }
   }
 };

+ 83 - 24
src/views/appeal/index.vue

@@ -20,7 +20,7 @@
                   <span>冷机台数</span>
                   <span>{{item.recommend.chillerNumSetL||'--'}}大{{item.recommend.chillerNumSetS||'--'}}小</span>
                   <span>冷机出水温度</span>
-                  <span>{{item.real?item.real.chillWaterOutTempSet:'--'}}°C</span>
+                  <span>{{item.recommend.chillWaterOutTempSet||'--'}}°C</span>
                 </div>
                 <div class="advice">
                   <span>实际执行</span>
@@ -30,9 +30,16 @@
                   <span>{{item.real?item.real.chillWaterOutTempSetOrg:'--'}}°C</span>
                 </div>
                 <div class="remark">备注:{{item.remarks||'--'}}</div>
-                <div class="btn">
-                  <el-button size="mini" @click="viewSnapshots = true">查看快照</el-button>
-                  <el-button size="mini" type="primary" @click="menu(item)">申诉</el-button>
+                <div class="refuteBox">
+                  <div class="refute" v-if="item.status=='305'">
+                    <img src="../../assets/error.png" alt />
+                    <span>已驳回</span>
+                  </div>
+                  <div v-else class="refute2"></div>
+                  <div class="btn">
+                    <el-button size="mini" @click="viewSnapshots = true">查看快照</el-button>
+                    <el-button size="mini" type="primary" @click="menu(item)">申诉</el-button>
+                  </div>
                 </div>
               </div>
             </div>
@@ -114,11 +121,12 @@ export default {
   data() {
     return {
       headText: "未执行申诉",
-      appealsArr: [],
-      InAuditArr: [],
-      auditCompletedArr: [],
+      appealsArr: [], //可申诉的未执行策略
+      InAuditArr: [], //审核中
+      auditCompletedArr: [], //审核完成,超时未申诉
       appealsDate: "",
-      viewSnapshots: false
+      viewSnapshots: false,
+      newArr: []
     };
   },
   components: {
@@ -172,7 +180,7 @@ export default {
     menu(item) {
       this.$router.push({
         path: "/appeal/appealDetail",
-        query: { id: item.recommend.appealId, commandId: item.recommend.id }
+        query: { item: JSON.stringify(item) }
       });
     },
     init() {
@@ -192,14 +200,13 @@ export default {
           withColumns: ["customAttribute"]
         }
       };
-
       queryWorkflow(params).then(res => {
-        let appealsArr = [],
-          arr = [];
-        appealsArr = res.content ? res.content : [];
-        if (appealsArr.length > 0) {
-          appealsArr.forEach(item => {
+        let arr = [];
+        arr = res.content ? res.content : [];
+        if (arr.length > 0) {
+          arr.forEach(item => {
             arr.push(item.commandId);
+            this.newArr.push(item);
           });
           this.queryExecute(arr);
         }
@@ -215,10 +222,21 @@ export default {
         }
       };
       queryChillerExecuteInfo(params).then(res => {
-        this.appealsArr = res.data ? res.data : [];
-        if (this.appealsArr.length > 0) {
-          this.appealsDate = this.appealsArr[0].recommend.date || "--";
+        let arr1 = [],
+          arr2 = [];
+        arr1 = res.data ? res.data : [];
+        if (arr1.length > 0) {
+          arr1.forEach(item => {
+            this.newArr.forEach(item2 => {
+              if (item.recommend.appealId == item2.id) {
+                let obj = Object.assign(item, item2);
+                this.appealsArr.push(obj);
+                this.appealsDate = this.appealsArr[0].recommend.date;
+              }
+            });
+          });
         }
+        console.log(this.appealsArr);
       });
     },
     // 审核完成、超时未申诉
@@ -318,7 +336,7 @@ export default {
           overflow: scroll;
           .execute {
             .card {
-              min-width: 460px;
+              min-width: 470px;
               background: rgba(255, 255, 255, 1);
               border-radius: 4px;
               border: 1px solid rgba(228, 230, 231, 1);
@@ -353,6 +371,11 @@ export default {
                 }
                 span:nth-of-type(3) {
                   width: 115px;
+                  display: inline-block;
+                }
+                span:nth-of-type(5) {
+                  width: 65px;
+                  display: inline-block;
                 }
                 span:nth-of-type(2),
                 span:nth-of-type(4) {
@@ -384,12 +407,48 @@ export default {
                 margin-top: 16px;
                 margin-bottom: 24px;
               }
-              .btn {
+              .refuteBox {
                 display: flex;
-                justify-content: flex-end;
-                .el-button {
-                  width: 80px;
-                  height: 28px;
+                justify-content: space-between;
+                align-items: center;
+                .refute {
+                  padding: 0 12px;
+                  // width: 85px;
+                  height: 24px;
+                  background: #fde3e2;
+                  border-radius: 12px;
+                  display: flex;
+                  align-items: center;
+                  img {
+                    width: 14px;
+                    height: 14px;
+                    margin-right: 4px;
+                  }
+                  span {
+                    display: inline-block;
+                    height: 22px;
+                    font-size: 14px;
+                    font-family: MicrosoftYaHeiSemibold;
+                    color: rgba(245, 78, 69, 1);
+                    line-height: 22px;
+                  }
+                }
+                .refute2 {
+                  padding: 0 12px;
+                  // width: 85px;
+                  height: 24px;
+                  background: #fff;
+                  border-radius: 12px;
+                  display: flex;
+                  align-items: center;
+                }
+                .btn {
+                  // display: flex;
+                  // justify-content: flex-end;
+                  .el-button {
+                    width: 80px;
+                    height: 28px;
+                  }
                 }
               }
             }