Browse Source

健康管理 任务- 手环

zhangming 3 years ago
parent
commit
873b2ba7c7

+ 3 - 2
src/views/HealthControl/HealthTab3.vue

@@ -77,7 +77,7 @@
     </div>
     <div class="dialog-box">
       <el-dialog title="消缺跟踪" v-model="dialogVisible" width="950px" custom-class="modal" :close-on-click-modal="false">
-        <info-track :data="trackDate"/>
+        <info-track :formdata="trackDate"/>
       </el-dialog>   
     </div> 
   </div>
@@ -165,7 +165,6 @@ export default {
     },
     // 消缺跟踪
     onClickTrack(row){
-      this.dialogVisible = true
       this.requestTrack(row);
     },
     // 获取场站
@@ -239,6 +238,8 @@ export default {
         success(res) {
           if (res.code == 200) {
             that.trackDate = res.data
+            console.warn(that.trackDate);
+             that.dialogVisible = true
           }
         },
       });

+ 1 - 1
src/views/HealthControl/HealthTab4.vue

@@ -78,7 +78,7 @@
     </div>
     <div class="dialog-box">
       <el-dialog title="日信息对比" v-model="dialogVisible" width="1200px" custom-class="modal" :close-on-click-modal="false">
-        <info-history :data="trackDate"/>
+        <info-history :formdata="trackDate"/>
       </el-dialog>   
     </div> 
   </div>

+ 187 - 168
src/views/HealthControl/defect-elimination-tracking.vue

@@ -1,198 +1,217 @@
 <template>
-    <div class="defect-elimination-tracking" v-if="showMe">
-        <div class="defect-elimination-tracking-close">
-            <i class="el-icon el-icon-close" @click="close"></i>
+  <div class="defect-elimination-tracking" v-if="showMe">
+    <div class="defect-elimination-tracking-close">
+      <i class="el-icon el-icon-close" @click="close"></i>
+    </div>
+    <div class="header-tile-box">
+      <div class="header-tile-h">
+        <div class="header-box">
+          <img :src="header" class="header" />
+        </div>
+      </div>
+      <div class="header-tile">
+        <div class="info-form-box">
+          <div class="info-form">
+            <div class="info-form-label">检修人员:</div>
+            <div class="info-form-value">王义波</div>
+          </div>
+          <div class="info-form">
+            <div class="info-form-label">收缩血压:</div>
+            <div class="info-form-value">0</div>
+          </div>
+        </div>
+      </div>
+      <div class="header-tile">
+        <div class="info-form-box">
+          <div class="info-form">
+            <div class="info-form-label">工作时长:</div>
+            <div class="info-form-value">76.0分钟</div>
+          </div>
+          <div class="info-form">
+            <div class="info-form-label">舒张血压:</div>
+            <div class="info-form-value">0</div>
+          </div>
         </div>
-        <div class="header-tile-box">
-            <div class="header-tile-h">
-                <div class="header-box">
-                    <img :src="header" class="header" />
-                </div>
-            </div>
-            <div class="header-tile">
-                <div class="info-form-box">
-                    <div class="info-form">
-                        <div class="info-form-label">检修人员:</div>
-                        <div class="info-form-value">王义波</div>
-                    </div>
-                    <div class="info-form">
-                        <div class="info-form-label">收缩血压:</div>
-                        <div class="info-form-value">0</div>
-                    </div>
-                </div>
-            </div>
-            <div class="header-tile">
-                <div class="info-form-box">
-                    <div class="info-form">
-                        <div class="info-form-label">工作时长:</div>
-                        <div class="info-form-value">76.0分钟</div>
-                    </div>
-                    <div class="info-form">
-                        <div class="info-form-label">舒张血压:</div>
-                        <div class="info-form-value">0</div>
-                    </div>
-                </div>
-            </div>
-            <div class="header-tile">
-                <div class="info-form-box">
-                    <div class="info-form">
-                        <div class="info-form-label">工作强度:</div>
-                        <div class="info-form-value">高</div>
-                    </div>
-                    <div class="info-form">
-                        <div class="info-form-label">心跳频率:</div>
-                        <div class="info-form-value">0</div>
-                    </div>
-                </div>
-            </div>
-            <div class="header-tile">
-                <div class="info-form-box">
-                    <div class="info-form">
-                        <div class="info-form-label">疲劳度:</div>
-                        <div class="info-form-value">0</div>
-                    </div>
-                    <div class="info-form">
-                        <div class="info-form-label">血压:</div>
-                        <div class="info-form-value">0</div>
-                    </div>
-                </div>
-            </div>
+      </div>
+      <div class="header-tile">
+        <div class="info-form-box">
+          <div class="info-form">
+            <div class="info-form-label">工作强度:</div>
+            <div class="info-form-value">高</div>
+          </div>
+          <div class="info-form">
+            <div class="info-form-label">心跳频率:</div>
+            <div class="info-form-value">0</div>
+          </div>
         </div>
-        <div class="det-chart-title">检修人员健康情况</div>
-        <div class="det-chart-sub-title">工作期间检测值</div>
-        <normal-line-chart class="det-chart" height="21.296vh" :showLegend="true" />
-        <div class="det-chart-sub-title-big">专业技能:</div>
-        <div class="det-chart-sub-title">电力类,机电类</div>
+      </div>
+      <div class="header-tile">
+        <div class="info-form-box">
+          <div class="info-form">
+            <div class="info-form-label">疲劳度:</div>
+            <div class="info-form-value">0</div>
+          </div>
+          <div class="info-form">
+            <div class="info-form-label">血压:</div>
+            <div class="info-form-value">0</div>
+          </div>
+        </div>
+      </div>
     </div>
+    <div class="det-chart-title">检修人员健康情况</div>
+    <div class="det-chart-sub-title">工作期间检测值</div>
+    <normal-line-chart class="det-chart" height="21.296vh" :showLegend="true" />
+    <div class="det-chart-sub-title-big">专业技能:</div>
+    <div class="det-chart-sub-title">电力类,机电类</div>
+  </div>
 </template>
 
 <script>
 import NormalLineChart from "@com/chart/line/normal-line-chart.vue";
 export default {
-    components: {
-        NormalLineChart
+  components: {
+    NormalLineChart,
+  },
+  props: {
+    formdata: Object,
+  },
+  data() {
+    return {
+      showMe: false,
+      header: require("@assets/logo.png"),
+    };
+  },
+  created(){
+      this.search()
+      console.warn(this.formdata);
+  },
+  // 函数
+  methods: {
+    async search() {
+      const { data } = await this.API.requestData({
+        subUrl: "/recommen/findShbraceletList",
+        method: "POST", 
+        data:{
+          name : this.formdata.workleader,
+          beginDate : this.formdata.departuretime,
+          endDate : this.formdata.checktime,
+        }
+      });
+      console.warn(data);
     },
-    data() {
-        return {
-            showMe: false,
-            header: require("@assets/logo.png"),
-        };
+    show: function () {
+      this.showMe = true;
     },
-    // 函数
-    methods: {
-        show: function () {
-            this.showMe = true;
-        },
-        close: function () {
-            this.showMe = false;
-        },
+    close: function () {
+      this.showMe = false;
     },
+  },
 };
 </script>
 
 <style lang="less">
 .defect-elimination-tracking {
+  position: absolute;
+  width: 800px;
+  height: 460px;
+  top: calc(50% - 230px);
+  left: calc(50% - 400px);
+  background: rgba(18, 29, 28, 0.95);
+  border: 1px solid rgba(5, 187, 76, 0.5);
+  padding: 16px;
+  z-index: 999;
+  .defect-elimination-tracking-close {
     position: absolute;
-    width: 800px;
-    height: 460px;
-    top: calc(50% - 230px);
-    left: calc(50% - 400px);
-    background: rgba(18, 29, 28, 0.95);
-    border: 1px solid rgba(5, 187, 76, 0.5);
-    padding: 16px;
-
-    .defect-elimination-tracking-close {
-        position: absolute;
-        top: 16px;
-        right: 16px;
-        cursor: pointer;
-
-        i {
-            font-size: 16px;
-            color: #909399;
-        }
+    top: 16px;
+    right: 16px;
+    cursor: pointer;
 
-        &:hover {
-            i {
-                color: @green;
-            }
-        }
+    i {
+      font-size: 16px;
+      color: #909399;
     }
 
-    .header-tile-box {
-        display: flex;
+    &:hover {
+      i {
+        color: @green;
+      }
+    }
+  }
 
-        .header-tile-h {
-            width: 54px;
-
-            .header-box {
-                width: 54px;
-                height: 76px;
-                display: flex;
-                align-items: center;
-                justify-content: center;
-                background: #ffffff;
-
-                .header {
-                    width: 54px;
-                }
-            }
-        }
+  .header-tile-box {
+    display: flex;
 
-        .header-tile {
-            padding: 0 8px;
-            display: flex;
-            flex-direction: column;
-            justify-content: center;
-
-            .info-form-box {
-                .info-form {
-                    display: flex;
-
-                    .info-form-label {
-                        width: 80px;
-                        font-size: @fontsize-s;
-                        color: @gray-l;
-                        text-align: right;
-                    }
-
-                    .info-form-value {
-                        font-size: @fontsize-s;
-                        color: @white;
-                        line-height: 1.5;
-                        margin-left: 8px;
-                    }
-
-                    +.info-form {
-                        margin-top: 8px;
-                    }
-                }
-            }
-        }
-    }
-    
-    .det-chart {
-        width: 100%;
-        height: 21.296vh;
-    }
+    .header-tile-h {
+      width: 54px;
 
-    .det-chart-title {
-        text-align: center;
-        font-size: @fontsize;
-        color: @gray-l;
-        margin-top: 16px;
-    }
+      .header-box {
+        width: 54px;
+        height: 76px;
+        display: flex;
+        align-items: center;
+        justify-content: center;
+        background: #ffffff;
 
-    .det-chart-sub-title {
-        font-size: @fontsize-s;
-        color: @gray-l;
-        margin: 8px 0;
+        .header {
+          width: 54px;
+        }
+      }
     }
 
-    .det-chart-sub-title-big {
-        font-size: @fontsize;
-        color: @gray-l;
-        margin: 16px 0 8px 0;
+    .header-tile {
+      padding: 0 8px;
+      display: flex;
+      flex-direction: column;
+      justify-content: center;
+
+      .info-form-box {
+        .info-form {
+          display: flex;
+
+          .info-form-label {
+            width: 80px;
+            font-size: @fontsize-s;
+            color: @gray-l;
+            text-align: right;
+          }
+
+          .info-form-value {
+            font-size: @fontsize-s;
+            color: @white;
+            line-height: 1.5;
+            margin-left: 8px;
+          }
+
+          + .info-form {
+            margin-top: 8px;
+          }
+        }
+      }
     }
+  }
+
+  .det-chart {
+    width: 100%;
+    height: 21.296vh;
+  }
+
+  .det-chart-title {
+    text-align: center;
+    font-size: @fontsize;
+    color: @gray-l;
+    margin-top: 16px;
+  }
+
+  .det-chart-sub-title {
+    font-size: @fontsize-s;
+    color: @gray-l;
+    margin: 8px 0;
+  }
+
+  .det-chart-sub-title-big {
+    font-size: @fontsize;
+    color: @gray-l;
+    margin: 16px 0 8px 0;
+  }
 }
 </style>

+ 89 - 62
src/views/HealthControl/infotrack.vue

@@ -3,55 +3,15 @@
     <div class="form-info">
       <div class="work-flow">
         <div class="work-flow-line"></div>
-        <div class="work-flow-item">
+        <div :class="['work-flow-item', item.name == statu(form) ? 'active' : '']" v-for="(item, i) in svgarr" :key="i">
           <div class="work-flow-icon-item">
             <div class="work-flow-icon-o"></div>
             <div class="work-flow-icon-i"></div>
             <span class="svg-icon">
-              <SvgIcon svgid="svg-qx-warn"></SvgIcon>
+              <SvgIcon :svgid="item.svg"></SvgIcon>
             </span>
           </div>
-          <div class="work-flow-text">流程未启动</div>
-        </div>
-        <div class="work-flow-item">
-          <div class="work-flow-icon-item">
-            <div class="work-flow-icon-o"></div>
-            <div class="work-flow-icon-i"></div>
-            <span class="svg-icon">
-              <SvgIcon svgid="svg-qx-down"></SvgIcon>
-            </span>
-          </div>
-          <div class="work-flow-text">消缺单已下达</div>
-        </div>
-        <div class="work-flow-item">
-          <div class="work-flow-icon-item">
-            <div class="work-flow-icon-o"></div>
-            <div class="work-flow-icon-i"></div>
-            <span class="svg-icon">
-              <SvgIcon svgid="svg-qx-hour-hand"></SvgIcon>
-            </span>
-          </div>
-          <div class="work-flow-text">消缺单处理中</div>
-        </div>
-        <div class="work-flow-item active">
-          <div class="work-flow-icon-item">
-            <div class="work-flow-icon-o"></div>
-            <div class="work-flow-icon-i"></div>
-            <span class="svg-icon">
-              <SvgIcon svgid="svg-对"></SvgIcon>
-            </span>
-          </div>
-          <div class="work-flow-text">消缺完成</div>
-        </div>
-        <div class="work-flow-item">
-          <div class="work-flow-icon-item">
-            <div class="work-flow-icon-o"></div>
-            <div class="work-flow-icon-i"></div>
-            <span class="svg-icon">
-              <SvgIcon svgid="svg-qx-flag"></SvgIcon>
-            </span>
-          </div>
-          <div class="work-flow-text">消缺验收</div>
+          <div class="work-flow-text">{{ item.name }}</div>
         </div>
       </div>
       <div class="form-body">
@@ -67,10 +27,7 @@
             </el-col>
             <el-col :span="12">
               <el-form-item label="风机:">
-                <el-input
-                  v-model="form.wtId"
-                  placeholder="风机名称"
-                ></el-input>
+                <el-input v-model="form.wtId" placeholder="风机名称"></el-input>
               </el-form-item>
             </el-col>
           </el-row>
@@ -216,7 +173,7 @@
         </el-form>
       </div>
     </div>
-    <div class="tabs">
+    <!-- <div class="tabs">
       <div class="tab-box">
         <div
           class="tab-item"
@@ -234,18 +191,22 @@
           <span>{{ tab.text }}</span>
         </div>
       </div>
-    </div>
+    </div> -->
+    <defect-elimination-tracking ref="det" :show="false" :formdata='formdata'></defect-elimination-tracking>
   </div>
 </template>
 
 <script>
 import SvgIcon from "@com/coms/icon/svg-icon.vue";
+import { warn } from "@vue/runtime-core";
+
+import DefectEliminationTracking from "../HealthControl/defect-elimination-tracking.vue";  //手环监控
 export default {
   components: {
-    SvgIcon,
+    SvgIcon,DefectEliminationTracking
   },
   props: {
-    data: Object,
+    formdata: Object,
   },
   data() {
     return {
@@ -263,6 +224,29 @@ export default {
           text: "监控视频",
         },
       ],
+      svgarr: [
+        {
+          svg: "svg-qx-warn",
+          name: "流程未启动",
+        },
+        {
+          svg: "svg-qx-down",
+          name: "消缺单已下达",
+        },
+        {
+          svg: "svg-qx-hour-hand",
+          name: "消缺单处理中",
+        },
+        {
+          svg: "svg-对",
+          name: "消缺完成",
+        },
+        {
+          svg: "svg-qx-flag",
+          name: "消缺验收",
+        },
+      ],
+
       activeTab: 0,
       form: {
         wtId: "",
@@ -304,26 +288,69 @@ export default {
       },
     };
   },
-  mounted() {
-    this.$nextTick(() => {
-      this.form = this.data;
-    });
+  created() {
+     this.form = this.formdata;
+     console.warn(this.form);
+     console.warn(this.statu(this.form));
   },
   // 函数
   methods: {
+    showDet() {
+      this.$refs.det.show();
+    },
+    statu(data) {
+      if (null != data.checktime) {
+        return "消缺验收";
+      } else if (
+        "等待运行验收" == data.status ||
+        data.status == "集控中心修改检修时间" ||
+        null != data.repairedtime
+      ) {
+        return "消缺完成";
+      } else if (null != data.departuretime || null != data.arrivaltime) {
+        return "消缺单处理中";
+      } else if (
+        "风机工作票已批准" == data.status ||
+        data.status == "开风机工作票"
+      ) {
+        return "消缺单已下达";
+      } else if (null == data.status || data.status == "流程未启动" || data.status == "流程未启用") {
+        return "流程未启动";
+      }
+      else{
+        return "流程未启动";
+      }
+    },
     selectTab: function (index) {
       this.activeTab = index;
+      if(index == 1){
+        this.showDet()
+      }
     },
   },
   watch: {
     data(value) {
-      this.form = value;
-      this.form.tjss = value.tjss?new Date(value.tjss).formatDate("yyyy-MM-dd hh:mm:ss"):""
-      this.form.prodtdepttime = value.prodtdepttime?new Date(value.prodtdepttime).formatDate("yyyy-MM-dd hh:mm:ss"):""
-      this.form.departuretime = value.departuretime?new Date(value.departuretime).formatDate("yyyy-MM-dd hh:mm:ss"):""
-      this.form.arrivaltime = value.arrivaltime?new Date(value.arrivaltime).formatDate("yyyy-MM-dd hh:mm:ss"):""
-      this.form.repairedtime = value.repairedtime?new Date(value.repairedtime).formatDate("yyyy-MM-dd hh:mm:ss"):""
-      this.form.checktime = value.checktime?new Date(value.checktime).formatDate("yyyy-MM-dd hh:mm:ss"):"" 
+      // this.form = value;
+      // console.warn(this.statu(value));
+      // console.warn(this.form);
+      this.form.tjss = value.tjss
+        ? new Date(value.tjss).formatDate("yyyy-MM-dd hh:mm:ss")
+        : "";
+      this.form.prodtdepttime = value.prodtdepttime
+        ? new Date(value.prodtdepttime).formatDate("yyyy-MM-dd hh:mm:ss")
+        : "";
+      this.form.departuretime = value.departuretime
+        ? new Date(value.departuretime).formatDate("yyyy-MM-dd hh:mm:ss")
+        : "";
+      this.form.arrivaltime = value.arrivaltime
+        ? new Date(value.arrivaltime).formatDate("yyyy-MM-dd hh:mm:ss")
+        : "";
+      this.form.repairedtime = value.repairedtime
+        ? new Date(value.repairedtime).formatDate("yyyy-MM-dd hh:mm:ss")
+        : "";
+      this.form.checktime = value.checktime
+        ? new Date(value.checktime).formatDate("yyyy-MM-dd hh:mm:ss")
+        : "";
     },
   },
 };

+ 63 - 46
src/views/HealthControl/infotrack2.vue

@@ -1,57 +1,17 @@
 <template>
   <div class="track-info">
     <div class="form-info">
-      <div class="work-flow">
+       <div class="work-flow">
         <div class="work-flow-line"></div>
-        <div class="work-flow-item">
+        <div :class="['work-flow-item', item.name == statu(form) ? 'active' : '']" v-for="(item, i) in svgarr" :key="i">
           <div class="work-flow-icon-item">
             <div class="work-flow-icon-o"></div>
             <div class="work-flow-icon-i"></div>
             <span class="svg-icon">
-              <SvgIcon svgid="svg-qx-warn"></SvgIcon>
+              <SvgIcon :svgid="item.svg"></SvgIcon>
             </span>
           </div>
-          <div class="work-flow-text">流程未启动</div>
-        </div>
-        <div class="work-flow-item">
-          <div class="work-flow-icon-item">
-            <div class="work-flow-icon-o"></div>
-            <div class="work-flow-icon-i"></div>
-            <span class="svg-icon">
-              <SvgIcon svgid="svg-qx-down"></SvgIcon>
-            </span>
-          </div>
-          <div class="work-flow-text">消缺单已下达</div>
-        </div>
-        <div class="work-flow-item">
-          <div class="work-flow-icon-item">
-            <div class="work-flow-icon-o"></div>
-            <div class="work-flow-icon-i"></div>
-            <span class="svg-icon">
-              <SvgIcon svgid="svg-qx-hour-hand"></SvgIcon>
-            </span>
-          </div>
-          <div class="work-flow-text">消缺单处理中</div>
-        </div>
-        <div class="work-flow-item active">
-          <div class="work-flow-icon-item">
-            <div class="work-flow-icon-o"></div>
-            <div class="work-flow-icon-i"></div>
-            <span class="svg-icon">
-              <SvgIcon svgid="svg-对"></SvgIcon>
-            </span>
-          </div>
-          <div class="work-flow-text">消缺完成</div>
-        </div>
-        <div class="work-flow-item">
-          <div class="work-flow-icon-item">
-            <div class="work-flow-icon-o"></div>
-            <div class="work-flow-icon-i"></div>
-            <span class="svg-icon">
-              <SvgIcon svgid="svg-qx-flag"></SvgIcon>
-            </span>
-          </div>
-          <div class="work-flow-text">消缺验收</div>
+          <div class="work-flow-text">{{ item.name }}</div>
         </div>
       </div>
        <div class="form-body">
@@ -269,14 +229,16 @@
         </div>
       </div>
     </div>
+    <defect-elimination-tracking ref="det" :show="false" :formdata='formdata'></defect-elimination-tracking>
   </div>
 </template>
 
 <script>
 import SvgIcon from "@com/coms/icon/svg-icon.vue";
+import DefectEliminationTracking from "../HealthControl/defect-elimination-tracking.vue";  //手环监控
 export default {
   components: {
-    SvgIcon
+    SvgIcon,DefectEliminationTracking
   },
    props: {
     data: Object,
@@ -298,6 +260,28 @@ export default {
         },
       ],
       activeTab: 0,
+      svgarr: [
+        {
+          svg: "svg-qx-warn",
+          name: "流程未启动",
+        },
+        {
+          svg: "svg-qx-down",
+          name: "消缺单已下达",
+        },
+        {
+          svg: "svg-qx-hour-hand",
+          name: "消缺单处理中",
+        },
+        {
+          svg: "svg-对",
+          name: "消缺完成",
+        },
+        {
+          svg: "svg-qx-flag",
+          name: "消缺验收",
+        },
+      ],
       form: {
         wtId: "",
         wpId: "",
@@ -347,6 +331,11 @@ export default {
       },
     };
   },
+  created() {
+     this.form = this.formdata;
+     console.warn(this.form);
+     console.warn(this.statu(this.form));
+  },
   mounted() {
     this.$nextTick(() => {
       this.form = this.data;
@@ -354,13 +343,41 @@ export default {
   },
   // 函数
   methods: {
+    showDet() {
+      this.$refs.det.show();
+    },
+    statu(data) {
+      if (null != data.checktime) {
+        return "消缺验收";
+      } else if (
+        "等待运行验收" == data.status ||
+        data.status == "集控中心修改检修时间" ||
+        null != data.repairedtime
+      ) {
+        return "消缺完成";
+      } else if (null != data.departuretime || null != data.arrivaltime) {
+        return "消缺单处理中";
+      } else if (
+        "风机工作票已批准" == data.status ||
+        data.status == "开风机工作票"
+      ) {
+        return "消缺单已下达";
+      } else if (null == data.status || data.status == "流程未启动" || data.status == "流程未启用") {
+        return "流程未启动";
+      }
+      else{
+        return "流程未启动";
+      }
+    },
     selectTab: function (index) {
       this.activeTab = index;
+      if(index == 1){
+        this.showDet()
+      }
     },
   },
   watch: {
     data(value) {
-      this.form = value;
       this.form.tjss = value.tjss?new Date(value.tjss).formatDate("yyyy-MM-dd hh:mm:ss"):""
       this.form.prodtdepttime = value.prodtdepttime?new Date(value.prodtdepttime).formatDate("yyyy-MM-dd hh:mm:ss"):""
       this.form.departuretime = value.departuretime?new Date(value.departuretime).formatDate("yyyy-MM-dd hh:mm:ss"):""