yizai il y a 3 ans
Parent
commit
2bed0fdcfd

+ 131 - 0
src/views/grider-erections/beam-carrier-work-info/components/THAInfo.vue

@@ -0,0 +1,131 @@
+<template>
+  <table class="info_table">
+    <tr>
+      <td class="cell_title">行走速度</td>
+      <td class="cell_data"><span class="fontSpan">{{ grider.windSpeed }}</span>米/时</td>
+      <td class="cell_title">吊钩重量</td>
+      <td class="cell_data"><span class="fontSpan">{{ grider.windPower }}</span> t</td>
+    </tr>
+    <tr>
+      <td class="cell_title">装载重量</td>
+      <td class="cell_data"><span class="fontSpan">{{ grider.position }}</span>t</td>
+      <td class="cell_title" title="单次工作时间">单次工作时间</td>
+      <td class="cell_data"><span class="fontSpan">{{ grider.onceWorkTime }}</span>小时</td>
+    </tr>
+    <tr>
+      <td class="cell_title">转速</td>
+      <td class="cell_data"><span class="fontSpan">1</span>次</td>
+      <td class="cell_title">油压</td>
+      <td class="cell_data"><span class="fontSpan">{{ grider.onceWorkTime }}</span>mpa</td>
+    </tr>
+    <tr>
+      <td class="cell_title" colspan="2">水温</td>
+      <td class="cell_data" colspan="2">{{ grider.slingWeight }}°</td>
+    </tr>
+    <!-- <tr>
+      <td class="cell_title" title="主梁水平度纵向">主梁水平度纵向</td>
+      <td class="cell_data"><span class="fontSpan">{{ grider.verticalLeveLness }}</span>°</td>
+      <td class="cell_title" title="主梁水平度横向">主梁水平度横向</td>
+      <td class="cell_data"><span class="fontSpan">{{ grider.horizontaLeveLness }}</span>°</td>
+    </tr> -->
+    <!-- <tr>
+      <td class="cell_title" title="前支腿位置">前支腿位置</td>
+      <td class="cell_data"><span class="fontSpan">{{ grider.frontPosition }}</span>米</td>
+      <td class="cell_title" title="前支腿垂直度纵向">前支腿垂直度纵向</td>
+      <td class="cell_data"><span class="fontSpan">{{ grider.frontVertical }}</span>°</td>
+    </tr>
+    <tr>
+      <td class="cell_title">速度</td>
+      <td class="cell_data"><span class="fontSpan">{{ grider.frontSpeed }}</span>米/s</td>
+      <td class="cell_title" title="中支腿状态">中支腿状态</td>
+      <td class="cell_data"><span class="fontSpan">{{ grider.middleStatus }}</span></td>
+    </tr>
+    <tr>
+      <td class="cell_title">系统状态</td>
+      <td class="cell_data"><span class="fontSpan">正常</span></td>
+      <td class="cell_title" title="起吊总重量">起吊总重量</td>
+      <td class="cell_data"><span class="fontSpan">{{ grider.slingWeight }}</span>t</td>
+    </tr> -->
+    <!-- <tr>
+      <td class="cell_title" colspan="2">前小车</td>
+      <td class="cell_title" colspan="2">后小车</td>
+    </tr>
+    <tr>
+      <td class="cell_title">行走速度</td>
+      <td class="cell_title">行走位置</td>
+      <td class="cell_title">行走速度</td>
+      <td class="cell_title">行走位置</td>
+    </tr>
+    <tr>
+      <td class="cell_data"><span class="fontSpan">{{ grider.beforeCarSpeed }}</span>m/s</td>
+      <td class="cell_data"><span class="fontSpan">{{ grider.beforeCarPosition }}</span></td>
+      <td class="cell_data"><span class="fontSpan">{{ grider.afterCarSpeed }}</span>m/s</td>
+      <td class="cell_data"><span class="fontSpan">{{ grider.afterCarPosition }}</span></td>
+    </tr> -->
+  </table>
+</template>
+
+<script>
+export default {
+  name: 'THAInfoMng',
+  data() {
+    return {
+      grider: {}
+    }
+  },
+  methods: {
+    show(data) {
+      if (data) {
+        this.grider = data
+      }
+    }
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+.info_table {
+    position: relative;
+    overflow: hidden;
+    -webkit-box-sizing: border-box;
+    box-sizing: border-box;
+    -webkit-box-flex: 1;
+    -ms-flex: 1;
+    flex: 1;
+    width: 100%;
+    max-width: 100%;
+    //background-color: #FFFFFF;
+    font-size: 14px;
+    color: white;
+    table-layout:fixed;
+    .cell_title{
+      //background-color: #f7f7f7 !important;
+      text-align: center;
+      width: 25%;
+    }
+    .cell_data{
+      text-align: center;
+      width: 25%;
+    }
+    td {
+    border: 1px solid #dfe6ec;
+    padding: 9px 0;
+    min-width: 0;
+    -webkit-box-sizing: border-box;
+    box-sizing: border-box;
+    text-overflow: ellipsis;
+    vertical-align: middle;
+    position: relative;
+    text-align: left;
+    // white-space:nowrap;
+    // text-overflow:
+    // ellipsis;
+    // overflow: hidden;
+  }
+  .fontSpan{
+    font-weight: 900;
+    color: green;
+  }
+}
+
+</style>

+ 88 - 0
src/views/grider-erections/beam-carrier-work-info/components/beam-support.vue

@@ -0,0 +1,88 @@
+<template>
+  <table class="info_table">
+    <!-- <tr>
+      <td class="cell_title" colspan="">前车或后车</td>
+    </tr> -->
+    <tr>
+      <td class="cell_title">前车或后车</td>
+      <td class="cell_title">闭式泵A口压力</td>
+      <td class="cell_title">闭式泵B口压力</td>
+      <td class="cell_title">开式回路压力</td>
+      <td class="cell_title">驻车制动压力</td>
+      <td class="cell_title">行车制动压力</td>
+    </tr>
+    <tr v-for="item in grider.slingSys" :key="item.id">
+      <td class="cell_title"><span class="fontSpan">{{ item.no }}</span></td>
+      <td class="cell_title"><span class="fontSpan">{{ item.weight }}</span></td>
+      <td class="cell_title"><span class="fontSpan">{{ item.height }}</span></td>
+      <td class="cell_title"><span class="fontSpan">{{ item.quantity }}</span></td>
+      <td class="cell_title"><span class="fontSpan">{{ item.quantity }}</span></td>
+      <td class="cell_title"><span class="fontSpan">{{ item.quantity }}</span></td>
+    </tr>
+  </table>
+</template>
+
+<script>
+export default {
+  name: 'TacklingSysMng',
+  data() {
+    return {
+      grider: {}
+    }
+  },
+  methods: {
+    show(data) {
+      if (data) {
+        this.grider = data
+      }
+    }
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+.info_table {
+    position: relative;
+    overflow: hidden;
+    -webkit-box-sizing: border-box;
+    box-sizing: border-box;
+    -webkit-box-flex: 1;
+    -ms-flex: 1;
+    flex: 1;
+    width: 100%;
+    max-width: 100%;
+    //background-color: #FFFFFF;
+    font-size: 14px;
+    color: white;
+    table-layout:fixed;
+    .cell_title{
+      //background-color: #f7f7f7 !important;
+      text-align: center;
+      width: 25%;
+    }
+    .cell_data{
+      text-align: center;
+      width: 25%;
+    }
+    td {
+    border: 1px solid #dfe6ec;
+    padding: 9px 0;
+    min-width: 0;
+    -webkit-box-sizing: border-box;
+    box-sizing: border-box;
+    text-overflow: ellipsis;
+    vertical-align: middle;
+    position: relative;
+    text-align: left;
+    // white-space:nowrap;
+    // text-overflow:
+    // ellipsis;
+    // overflow: hidden;
+  }
+  .fontSpan{
+    font-weight: 900;
+    color: green;
+  }
+}
+
+</style>

+ 80 - 0
src/views/grider-erections/beam-carrier-work-info/components/limit-state.vue

@@ -0,0 +1,80 @@
+<template>
+  <table class="info_table">
+    <tr>
+      <td class="cell_title"><span style="margin-right:15px">行走状态</span><i v-show="grider.walk" class="el-icon-s-opportunity" style="color:green" /><i v-show="!grider.walk" class="el-icon-s-opportunity" style="color:red" /></td>
+      <td class="cell_data"><span style="margin-right:15px">1号发动机状态</span><i v-show="grider.firstWinch" class="el-icon-s-opportunity" style="color:green" /><i v-show="!grider.firstWinch" class="el-icon-s-opportunity" style="color:red" /></td>
+      <td class="cell_title"><span style="margin-right:15px">2号发动机状态</span><i v-show="grider.secondWinch" class="el-icon-s-opportunity" style="color:green" /><i v-show="!grider.secondWinch" class="el-icon-s-opportunity" style="color:red" /></td>
+    </tr>
+    <tr>
+      <td class="cell_data"><span style="margin-right:15px">是否转向</span><i v-show="grider.frontControl" class="el-icon-s-opportunity" style="color:green" /><i v-show="!grider.frontControl" class="el-icon-s-opportunity" style="color:red" /></td>
+      <td class="cell_title"><span style="margin-right:15px">是否制动</span><i v-show="grider.centerControl" class="el-icon-s-opportunity" style="color:green" /><i v-show="!grider.centerControl" class="el-icon-s-opportunity" style="color:red" /></td>
+      <td class="cell_data"><span style="margin-right:15px">拖梁</span><i v-show="grider.rearControl" class="el-icon-s-opportunity" style="color:green" /><i v-show="!grider.rearControl" class="el-icon-s-opportunity" style="color:red" /></td>
+    </tr>
+    <tr>
+      <td class="cell_title"><span style="margin-right:15px">前进</span><i v-show="grider.ledStart" class="el-icon-s-opportunity" style="color:green" /><i v-show="!grider.ledStart" class="el-icon-s-opportunity" style="color:red" /></td>
+      <td class="cell_data"><span style="margin-right:15px">后退</span><i v-show="grider.wriggle" class="el-icon-s-opportunity" style="color:green" /><i v-show="!grider.wriggle" class="el-icon-s-opportunity" style="color:red" /></td>
+      <td class="cell_title"><span style="margin-right:15px">均衡</span><i v-show="grider.feed" class="el-icon-s-opportunity" style="color:green" /><i v-show="!grider.feed" class="el-icon-s-opportunity" style="color:red" /></td>
+    </tr>
+  </table>
+</template>
+
+<script>
+export default {
+  name: 'LimitStateMng',
+  data() {
+    return {
+      grider: {}
+    }
+  },
+  methods: {
+    show(data) {
+      if (data) {
+        this.grider = data
+      }
+    }
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+.info_table {
+    position: relative;
+    overflow: hidden;
+    -webkit-box-sizing: border-box;
+    box-sizing: border-box;
+    -webkit-box-flex: 1;
+    -ms-flex: 1;
+    flex: 1;
+    width: 100%;
+    max-width: 100%;
+    //background-color: #FFFFFF;
+    font-size: 14px;
+    color: white;
+    table-layout:fixed;
+    .cell_title{
+      //background-color: #f7f7f7 !important;
+      text-align: center;
+      width: 25%;
+    }
+    .cell_data{
+      text-align: center;
+      width: 25%;
+    }
+    td {
+    border: 1px solid #dfe6ec;
+    padding: 9px 0;
+    min-width: 0;
+    -webkit-box-sizing: border-box;
+    box-sizing: border-box;
+    text-overflow: ellipsis;
+    vertical-align: middle;
+    position: relative;
+    text-align: left;
+  }
+  .fontSpan{
+    font-weight: 900;
+    color: green;
+  }
+}
+
+</style>

+ 122 - 0
src/views/grider-erections/beam-carrier-work-info/components/tackling-sys.vue

@@ -0,0 +1,122 @@
+<template>
+  <table class="info_table">
+    <tr>
+      <td class="cell_title" colspan="6">运梁车均衡力信息</td>
+    </tr>
+    <tr>
+      <td class="cell_title">前车或后车</td>
+      <td class="cell_title">前左均衡力</td>
+      <td class="cell_title">前右均衡力</td>
+      <td class="cell_title">左后均衡力</td>
+      <td class="cell_title">左后均衡力</td>
+      <td class="cell_title">右后均衡力</td>
+    </tr>
+    <tr v-for="item in grider" :key="item.id">
+      <td class="cell_title"><span class="fontSpan">{{ item.no }}</span></td>
+      <td class="cell_title"><span class="fontSpan">{{ item.weight }}</span></td>
+      <td class="cell_title"><span class="fontSpan">{{ item.height }}</span></td>
+      <td class="cell_title"><span class="fontSpan">{{ item.quantity }}</span></td>
+      <td class="cell_title"><span class="fontSpan">{{ item.height1 }}</span></td>
+      <td class="cell_title"><span class="fontSpan">{{ item.quantity1 }}</span></td>
+    </tr>
+  </table>
+</template>
+
+<script>
+export default {
+  name: 'TacklingSysMng',
+  data() {
+    return {
+      grider: [
+        {
+          no: '前车',
+          weight: 1,
+          height: 2,
+          quantity: 3,
+          height1: 4,
+          quantity1: 5
+        },
+        {
+          no: '后车',
+          weight: 1,
+          height: 2,
+          quantity: 3,
+          height1: 4,
+          quantity1: 5
+        }
+      ]
+    }
+  },
+  methods: {
+    show(data) {
+      if (data) {
+        this.grider = [
+          {
+            no: '前车',
+            weight: 1,
+            height: 2,
+            quantity: 3,
+            height1: 4,
+            quantity1: 5
+          },
+          {
+            no: '后车',
+            weight: 1,
+            height: 2,
+            quantity: 3,
+            height1: 4,
+            quantity1: 5
+          }
+        ]
+      }
+    }
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+.info_table {
+    position: relative;
+    overflow: hidden;
+    -webkit-box-sizing: border-box;
+    box-sizing: border-box;
+    -webkit-box-flex: 1;
+    -ms-flex: 1;
+    flex: 1;
+    width: 100%;
+    max-width: 100%;
+    //background-color: #FFFFFF;
+    font-size: 14px;
+    color: white;
+    table-layout:fixed;
+    .cell_title{
+      //background-color: #f7f7f7 !important;
+      text-align: center;
+      width: 25%;
+    }
+    .cell_data{
+      text-align: center;
+      width: 25%;
+    }
+    td {
+    border: 1px solid #dfe6ec;
+    padding: 9px 0;
+    min-width: 0;
+    -webkit-box-sizing: border-box;
+    box-sizing: border-box;
+    text-overflow: ellipsis;
+    vertical-align: middle;
+    position: relative;
+    text-align: left;
+    // white-space:nowrap;
+    // text-overflow:
+    // ellipsis;
+    // overflow: hidden;
+  }
+  .fontSpan{
+    font-weight: 900;
+    color: green;
+  }
+}
+
+</style>

+ 391 - 384
src/views/grider-erections/beam-carrier-work-info/tky-index.vue

@@ -3,179 +3,165 @@
     <el-container class="content-height-fit">
       <el-container class="resize-fit-container">
         <div class="app-container">
-          <el-row :xs="24" class="sum-row" style="padding-bottom: 15px">
-            <el-col :sm="6" :md="6" class="sum-row-col sum-row-cols">
-              <div
-                :class="online?'info-box bg-green':'info-box bg-red' "
-                style="margin-bottom: 0px"
-              >
-                <span class="info-box-icon"><svg-icon :icon-class="online?'在线':'离线' " /></span>
-                <div class="info-box-content">
-                  <span class="info-box-text">是否在线</span>
-                  <span
-                    class="info-box-number"
-                  >{{ online?'是':'否' }}</span>
-                  <div class="progress">
-                    <div class="progress-bar" style="width: 100%" />
-                  </div>
-                  <span class="progress-description">
-                    运梁车
-                  </span>
-                </div>
-              </div>
-            </el-col>
-            <el-col :sm="6" :md="6" class="sum-row-col sum-row-cols">
-              <div
-                class="info-box bg-deep-blue"
-                style="margin-bottom: 0px"
-              >
-                <span class="info-box-icon"><i class="fa fa-hourglass" /></span>
-                <div class="info-box-content">
-                  <span class="info-box-text">工作时长</span>
-                  <span
-                    class="info-box-number"
-                  >100小时</span>
-                  <div class="progress">
-                    <div class="progress-bar" style="width: 10%" />
-                  </div>
-                  <span class="progress-description">
-                    累计工作1000小时
-                  </span>
-                </div>
-              </div>
+          <el-row :gutter="16">
+            <el-col :sm="18" :md="18">
+              <el-select v-model="query.deviceManageId" size="mini" placeholder="请选择设备" @change="deviceChange">
+                <el-option
+                  v-for="item in griderErections"
+                  :key="item.value"
+                  :label="item.label"
+                  :value="item.value"
+                />
+              </el-select>
+              <el-tag type="success" style="margin-left: 6px;" size="mini">在线</el-tag>
+              <el-select v-model="query.beamCode" size="mini" style="float:right;margin-right: 6px;" placeholder="请选择梁片编码">
+                <el-option
+                  v-for="item in beams"
+                  :key="item.value"
+                  :label="item.label"
+                  :value="item.value"
+                />
+              </el-select>
             </el-col>
-            <el-col :sm="6" :md="6" class="sum-row-col sum-row-cols">
-              <div
-                class="info-box bg-aqua"
-                style="margin-bottom: 0px"
-              >
-                <span class="info-box-icon"><i class="fa fa-pie-chart" /></span>
-                <div class="info-box-content">
-                  <span class="info-box-text">运梁重量</span>
-                  <span
-                    class="info-box-number"
-                  >300吨</span>
-                  <div class="progress">
-                    <div class="progress-bar" style="width: 10%" />
-                  </div>
-                  <span class="progress-description">
-                    累计重量30000吨
-                  </span>
-                </div>
-              </div>
-            </el-col>
-            <el-col :sm="6" :md="6" class="sum-row-col">
-              <div
-                class="info-box bg-cyan"
-                style="margin-bottom: 0px"
-              >
-                <span
-                  class="info-box-icon"
-                ><i
-                  class="fa fa-exclamation-triangle"
-                /></span>
-                <div class="info-box-content">
-                  <span class="info-box-text">报警情况</span>
-                  <span class="info-box-number">
-                    7次</span>
-                  <div class="progress">
-                    <div class="progress-bar" style="width: 58%" />
-                  </div>
-                  <span class="progress-description">
-                    4个报警已解除
-                  </span>
-                </div>
-              </div>
-            </el-col>
-          </el-row>
-          <el-row :xs="24">
-            <el-col :sm="12" :md="12" style="padding-right: 15px">
-              <box icon="el-icon-map-location" title="GPS定位">
-                <!-- <baidu-map
-                  style="width:100%;height:254px"
-                  class="map"
-                  ak="NSIRtpnFIMlRSVaWF8EYLkVGzAvPKMWL"
-                  :zoom="14"
-                  center="杭州"
-                  :scroll-wheel-zoom="true"
-                >
-                  <bm-scale anchor="BMAP_ANCHOR_TOP_RIGHT" />
-                  <bm-navigation anchor="BMAP_ANCHOR_BOTTOM_RIGHT" />
-                </baidu-map> -->
-                <img src="../../../assets/ditu.jpg" width="100%" height="254">
-              </box>
-            </el-col>
-            <el-col :xs="24" :sm="6" :md="6" style="padding-right: 15px">
-              <box icon="el-icon-help" title="基础信息">
-                <div style="height:254px">
-                  <BasicInfo />
-                </div>
-              </box>
-            </el-col>
-            <el-col :xs="24" :sm="6" :md="6">
-              <box icon="el-icon-help" title="均衡力及高度信息">
-                <div style="height:254px">
-                  <Balanced />
-                </div>
-              </box>
+            <el-col :sm="6" :md="6">
+              <span style="color: white;font-size: 18px;">视频监控</span>
             </el-col>
           </el-row>
           <el-row>
-            <el-col :xs="24" :sm="10" :md="10" style="padding-right: 15px">
-              <box icon="el-icon-camera" title="视频监控">
-                <el-row style="height:400px">
-                  <el-col :sm="8" :md="8">
-                    <img src="../../../assets/ylc1.jpg" width="100%" height="185">
+            <el-col :lg="18" :sm="18" :xs="18" :xl="18" :md="18" style="padding-right: 8px">
+              <div class="boxall">
+                <el-row>
+                  <el-col :lg="4" :sm="4" :xs="4" :xl="4" :md="4">
+                    <div class="boxCenter" style="cursor:pointer " @click="warningClick">
+                      <div class="box-warning"><i class="el-icon-warning" /><span style="margin-left:5px">报警信息</span></div>
+                      <div class="left-div"><span style="font-size: 25px;color: yellow;">{{ data.warningCount }}</span>次</div>
+                      <div class="left-foot">已解除报警{{ data.doneWarningCount }}次</div>
+                    </div>
+                    <div class="boxCenter">
+                      <div class="box-warning"><i class="el-icon-timer" /><span style="margin-left:5px">工作时长</span></div>
+                      <div class="left-div"><span style="font-size: 25px;color: yellow;">{{ data.timeCount }}</span>小时</div>
+                      <div class="left-foot">累计工作{{ data.allTimeCount }}小时</div>
+                    </div>
+                    <div class="boxCenter">
+                      <div class="box-warning"><i class="el-icon-refresh" /><span style="margin-left:5px">运梁次数</span></div>
+                      <div class="left-div"><span style="font-size: 25px;color: yellow;">{{ data.cycleCount }}</span>次</div>
+                      <div class="left-foot">累计运梁{{ data.allCycleCount }}次</div>
+                    </div>
                   </el-col>
-                  <el-col :sm="8" :md="8">
-                    <img src="../../../assets/ylc2.jpg" width="100%" height="185">
+                  <el-col :lg="20" :sm="20" :xs="20" :xl="20" :md="20">
+                    <div class="titleup">
+                      <span>最近更新时间:</span><span style="color:yellow;font-weight: bold;">{{ noGuide.uploadTime | datetimeseconds }}</span>
+                    </div>
+                    <div ref="canvasdiv" style="background: #0AA4BC">
+                      <baidu-map
+                        style="width:100%;height:400px"
+                        class="map"
+                        :ak="baiduKey"
+                        :map-type="mapType"
+                        :zoom="14"
+                        center="北京"
+                        :scroll-wheel-zoom="true"
+                      >
+
+                        <bm-scale anchor="BMAP_ANCHOR_TOP_RIGHT" />
+                        <bm-navigation anchor="BMAP_ANCHOR_BOTTOM_RIGHT" />
+                        <bm-map-type :map-types="['BMAP_EARTH_MAP', 'BMAP_EARTH_MAP']" anchor="BMAP_ANCHOR_TOP_RIGHT" />
+                      </baidu-map>
+                    </div>
                   </el-col>
-                  <el-col :sm="8" :md="8">
-                    <img src="../../../assets/ylc3.jpg" width="100%" height="185">
+                </el-row>
+                <div class="boxfoot" />
+              </div>
+            </el-col>
+            <el-col :xs="6" :sm="6" :md="6">
+              <div class="boxall">
+                <el-row :gutter="8" style="margin-top:6px">
+                  <el-col :sm="12" :md="12">
+                    <img src="../../../assets/ylc1.jpg" width="100%" height="210">
                   </el-col>
-                  <el-col :sm="8" :md="8">
-                    <img src="../../../assets/ylc4.jpg" width="100%" height="185">
+                  <el-col :sm="12" :md="12" style="padding-bottom: 8px;">
+                    <img src="../../../assets/ylc2.jpg" width="100%" height="210">
                   </el-col>
-                  <el-col :sm="8" :md="8">
-                    <img src="../../../assets/ylc5.jpg" width="100%" height="185">
+                  <el-col :sm="12" :md="12">
+                    <img src="../../../assets/ylc3.jpg" width="100%" height="210">
                   </el-col>
-                  <el-col :sm="8" :md="8">
-                    <img src="../../../assets/ylc6.jpg" width="100%" height="185">
+                  <el-col :sm="12" :md="12">
+                    <img src="../../../assets/ylc4.jpg" width="100%" height="210">
                   </el-col>
                 </el-row>
-              </box>
-            </el-col>
-            <el-col :xs="24" :sm="8" :md="8" style="padding-right: 15px">
-              <box icon="el-icon-camera" title="工况信息">
-                <div style="height:400px">
-                  <WorkInfo />
-                </div>
-              </box>
+                <div class="boxfoot" />
+              </div>
             </el-col>
-            <el-col :xs="24" :sm="6" :md="6">
-              <box icon="el-icon-warning-outline" title="报警情况">
-                <div style="height:400px">
-                  <el-table
-                    ref="table"
-                    :data="tableData"
-                    height="400px"
-                    border
-                    style="width: 100%"
-                  >
-                    <el-table-column type="index" label="序号" align="center" />
-                    <el-table-column prop="date" label="报警时间" align="center">
-                      <template slot-scope="{ row }">
-                        {{ row.date | datetime }}
-                      </template>
-                    </el-table-column>
-                    <el-table-column prop="reason" label="报警记录" align="center" />
-                    <el-table-column prop="date" label="解除报警时间" align="center" />
-                  </el-table>
-                </div>
-              </box>
+          </el-row>
+          <el-row>
+            <el-col :lg="24" :sm="24" :xs="24" :xl="24" :md="24">
+              <div class="boxall">
+                <el-row :gutter="16">
+                  <el-col :lg="16" :sm="16" :xs="16" :xl="16" :md="16">
+                    <el-row>
+                      <el-col :lg="24" :sm="24" :xs="24" :xl="24" :md="24">
+                        <box icon="el-icon-help" title="限位状态" class="boxColor">
+                          <div>
+                            <LimitState ref="limitState" />
+                          </div>
+                        </box>
+                      </el-col>
+                    </el-row>
+                    <el-row :gutter="16">
+                      <el-col :lg="12" :sm="12" :xs="12" :xl="12" :md="12">
+                        <box icon="el-icon-help" title="基本信息" class="boxInfo">
+                          <div>
+                            <THAInfo ref="thaInfo" />
+                          </div>
+                        </box>
+                      </el-col>
+                      <el-col :lg="12" :sm="12" :xs="12" :xl="12" :md="12">
+                        <box icon="el-icon-help" title="前车或后车压力" class="boxInfo">
+                          <div>
+                            <BeamSupport ref="beamSupport" />
+                          </div>
+                        </box>
+                      </el-col>
+                    </el-row>
+                  </el-col>
+                  <el-col :lg="8" :sm="8" :xs="8" :xl="8" :md="8">
+                    <box icon="el-icon-help" title="前车或后车均衡力" class="boxColor">
+                      <div>
+                        <TacklingSys ref="tacklingSys" />
+                      </div>
+                    </box>
+                  </el-col>
+                </el-row>
+                <div class="boxfoot" />
+              </div>
             </el-col>
           </el-row>
-        </div></el-container>
+        </div>
+        <el-dialog title="预警详情" :close-on-click-modal="false" :visible.sync="proDucitonVisible" class="roll-dialog" top="20vh" width="50%">
+          <el-table v-loading="listLoading" row-key="id" :data="warnings" border stripe fit highlight-current-row height="400px">
+            <el-table-column label="序号" type="index" align="center" />
+            <el-table-column label="报警时间" prop="warningDate" align="center">
+              <template slot-scope="{row}">
+                {{ row.warningDate |datetimeseconds }}
+              </template>
+            </el-table-column>
+            <el-table-column label="报警记录" prop="warningRecord" align="center" />
+            <el-table-column label="解除报警时间" align="center">
+              <template slot-scope="{row}">
+                {{ row.relieveDate |datetimeseconds }}
+              </template>
+            </el-table-column>
+            <el-table-column label="是否解除" align="center">
+              <template slot-scope="{row}">
+                <el-tag size="mini" :type="row.isAlarm?'success':'danger'">{{ row.isAlarm?"已解除":"未解除" }}</el-tag>
+              </template>
+            </el-table-column>
+          </el-table>
+          <div slot="footer" class="dialog-footer">
+            <el-button @click="proDucitonVisible = false">取消</el-button>
+          </div>
+        </el-dialog>
+      </el-container>
     </el-container>
   </div>
 </template>
@@ -183,276 +169,297 @@
 <script>
 import Box from '@/components/Box/Box'
 import waves from '@/directive/waves' // waves directive
-// import BaiduMap from 'vue-baidu-map/components/map/Map.vue'
-// import BmScale from 'vue-baidu-map/components/controls/Scale'
-// import BmNavigation from 'vue-baidu-map/components/controls/Navigation'
-const defaultSettings = require('@/settings.js')
-import { mapGetters } from 'vuex'
-import BasicInfo from '@/views/grider-erections/beam-carrier-work-info/components/BasicInfo'
-import Balanced from '@/views/grider-erections/beam-carrier-work-info/components/Balanced'
-import WorkInfo from '@/views/grider-erections/beam-carrier-work-info/components/WorkInfo'
+import THAInfo from '@/views/grider-erections/beam-carrier-work-info/components/THAInfo.vue'
+import BaiduMap from 'vue-baidu-map/components/map/Map.vue'
+import BmScale from 'vue-baidu-map/components/controls/Scale'
+import BmMapType from 'vue-baidu-map/components/controls/MapType'
+import BmNavigation from 'vue-baidu-map/components/controls/Navigation'
+import BeamSupport from '@/views/grider-erections/beam-carrier-work-info/components/beam-support.vue'
+import TacklingSys from '@/views/grider-erections/beam-carrier-work-info/components/tackling-sys.vue'
+import LimitState from '@/views/grider-erections/beam-carrier-work-info/components/limit-state.vue'
+import * as griderErectionApi from '@/api/grider-erection'
+import _ from 'lodash'
+
 export default {
   directives: { waves },
   components: {
-    // BaiduMap,
-    // BmScale,
-    // BmNavigation,
-    BasicInfo,
-    Balanced,
-    WorkInfo,
-    Box //, InnerSidebar , ProjectSectionDeviceTree
-  },
-  props: {
-    query: { type: Object, default: null, required: false }
+    Box, //, InnerSidebar, ProjectSectionDeviceTree
+    THAInfo,
+    BeamSupport,
+    TacklingSys,
+    LimitState,
+    BmMapType,
+    BaiduMap,
+    BmScale,
+    BmNavigation
   },
   data() {
     return {
-      connection: null,
-      tasks: [],
-      title: defaultSettings.title,
-      notifications: [],
-      online: true, // 是否在线
-      videos: ['https://player.youku.com/embed/XNTg3NDI2NjI0',
-        'https://player.youku.com/embed/XNTg3NDI2NjI0',
-        'https://player.youku.com/embed/XNTg3NDI2NjI0',
-        'https://player.youku.com/embed/XNTg3NDI2NjI0',
-        'https://player.youku.com/embed/XNTg3NDI2NjI0'
+      mapType: 'BMAP_SATELLITE_MAP',
+      griderErections: [
+        {
+          value: 'EA64ABA4-3514-9D82-0D8C-3A03141B7962',
+          label: '运梁车-HSH-LC01-SXJ900',
+          type: 1
+
+        },
+        {
+          value: 'E0F30D4B-55B5-0C56-4841-3A0314301ED1',
+          label: '运梁车-HSH-LC02-YTJ',
+          type: 2
+        }
       ],
-      tableData: [{
-        date: '2016-05-10',
-        reason: '发动机',
-        state: '已处理',
-        level: '一般'
-      }, {
-        date: '2016-05-09',
-        reason: '发动机',
-        state: '已处理',
-        level: '严重'
-      }, {
-        date: '2016-05-08',
-        reason: '发动机',
-        state: '未处理',
-        level: '中等'
-      }, {
-        date: '2016-05-03',
-        reason: '发动机',
-        state: '已处理',
-        level: '一般'
-      }, {
-        date: '2016-05-07',
-        reason: '行走速度',
-        state: '已处理',
-        level: '一般'
-      }, {
-        date: '2016-05-06',
-        reason: '行走速度',
-        state: '未处理',
-        level: '一般'
-      }, {
-        date: '2016-05-05',
-        reason: '行走速度',
-        state: '未处理',
-        level: '一般'
-      }, {
-        date: '2016-05-05',
-        reason: '行走速度',
-        state: '未处理',
-        level: '一般'
-      },
-      {
-        date: '2016-05-05',
-        reason: '行走速度',
-        state: '未处理',
-        level: '一般'
-      }
+      beams: [
+        {
+          value: '2022060101',
+          label: '2022060101'
+        }
       ],
-      videoData: {
-        frontLeftUrl: '',
-        aroundUrl: '',
-        rearLeftUrl: '',
-        rearRightUrl: ''
+      query: {
+        deviceManageId: 'EA64ABA4-3514-9D82-0D8C-3A03141B7962',
+        beamCode: '2022060101'
       },
-      listQuery: {}
+      listLoading: false,
+      proDucitonVisible: false,
+      modelVisible: true,
+      data: {},
+      noGuide: {},
+      warnings: [],
+      playback: { anim: null, isAnimRunning: false }
     }
   },
   computed: {
-    ...mapGetters(['sidebar', 'avatar', 'device', 'name'])
+    baiduKey() {
+      return process.env.VUE_APP_BD_MAP_KEY
+    }
+  },
+  created() {
   },
   async mounted() {
     this.loading = true
-    const table = this.$refs.table
-    // 拿到表格中承载数据的div元素
-    const divData = table.bodyWrapper
-    // 拿到元素后,对元素进行定时增加距离顶部距离,实现滚动效果(此配置为每100毫秒移动1像素)
-    setInterval(() => {
-      // 元素自增距离顶部1像素
-      divData.scrollTop += 1
-      // 判断元素是否滚动到底部(可视高度+距离顶部=整个高度)
-      if (divData.clientHeight + divData.scrollTop === divData.scrollHeight) {
-        // 重置table距离顶部距离
-        divData.scrollTop = 0
+    try {
+      await this.$store.dispatch('user/clientCredentials')
+      this.loading = false
+    } catch (ex) {
+      console.log(ex)
+    }
+    griderErectionApi.getList(this.query).then(res => {
+      this.data = res
+      if (res.splitTypeNoGuideBeams.length > 0) {
+        this.noGuide = res.splitTypeNoGuideBeams[res.splitTypeNoGuideBeams.length - 1]
+        this.returndata(res.splitTypeNoGuideBeams[res.splitTypeNoGuideBeams.length - 1])
       }
-    }, 100)
+    })
   },
   methods: {
-    // getUserListEvents() {
-    //   var loadTodo = getUserLatestToDoList(this.userId).then(res => {
-    //     this.tasks = res
-    //   })
-    //   return Promise.all([loadTodo])
-    // },
-    // markTodoAsComplete(task) {
-    //   markAsComplete(task.id)
-    // },
-    // markNotificationAsRead(notification) {
-    //   // markAsRead(notification.id)
-    // },
-    // toggleSideBar() {
-    //   this.$store.dispatch('app/toggleSideBar')
-    // },
-    // async logout() {
-    //   await this.$store.dispatch('user/logout')
-    //   if (process.env.VUE_APP_ONLY_SSO === 'true') {
-    //     await this.$store.dispatch('user/logoutOidc')
-    //   } else {
-    //     var homeUrl = process.env.VUE_APP_HOME_URL
-    //     if (homeUrl) {
-    //       window.location.href = homeUrl
-    //     } else {
-    //       this.$router.push({ path: '/' })
-    //     }
-    //   }
-    // },
-    // 查询
-    handleFilter() {
+    hitoryClick() {
+      this.$refs.towD.playBack(this.data.splitTypeNoGuideBeams)
     },
-    handleTreeClick() {
-
+    playbacking(data) {
+      this.playback = data
+    },
+    stopPlayback() {
+      this.$refs.towD.stopPlayback()
+    },
+    pause() {
+      this.$refs.towD.suspend()
+    },
+    goon() {
+      this.$refs.towD.goon()
+    },
+    zoomIn() {
+      this.$refs.towD.zoomIn()
+    },
+    zoomOut() {
+      this.$refs.towD.zoomOut()
+    },
+    speedUp() {
+      this.$refs.towD.speedUp()
+    },
+    speedDown() {
+      this.$refs.towD.speedDown()
+    },
+    returndata(data) {
+      this.$refs.limitState.show(data)
+      this.$refs.thaInfo.show(data)
+      this.$refs.beamSupport.show(data)
+      this.$refs.tacklingSys.show(data)
+    },
+    warningClick() {
+      this.proDucitonVisible = true
+      this.listLoading = true
+      griderErectionApi.getWarnings(this.query)
+        .then(res => {
+          this.warnings = res
+          this.listLoading = false
+        })
+    },
+    deviceChange(id) {
+      var grider = _.find(this.griderErections, ['value', id])
+      if (grider.type === 1) {
+        this.modelVisible = true
+      } else {
+        this.modelVisible = false
+      }
     }
   }
 }
 </script>
-<style lang="scss" scoped>
-.table {
-    border-top: 0px solid #dcdfe6;
-    border-collapse: collapse;
+<style  lang="scss" scoped>
+::v-deep .resize-fit-container {
     width: 100%;
-    background-color: #fff;
-    font-size: 14px;
-    line-height: 1em;
+    padding: 8px;
+    overflow-y: auto;
+    background: #181833;
+}
+
+// .el-table {
+//     line-height: 1em;
+// }
+.content-height-fit {
+ height: calc(100vh - 0px) !important;
 }
-.el-table >>> .el-table__cell {
-    padding: 8px 0;
+// ::v-deep .el-table__body-wrapper {
+//   &::-webkit-scrollbar { // 整个滚动条
+//     width: 0; // 纵向滚动条的宽度
+//     background: rgba(213,215,220,0.3);
+//     border: none;
+//   }
+//   &::-webkit-scrollbar-track { // 滚动条轨道
+//     border: none;
+//   }
+// }
+::v-deep .el-table th.gutter{
+  display: none;
+  width:0
 }
-.table td,table th {
-     border-top: none;
-    border: 1px solid #dcdfe6;
-    background-color:aliceblue;
-    max-width: 250px;
+::v-deep .el-table colgroup col[name='gutter']{
+  display: none;
+  width: 0;
 }
-table tr:nth-child(even){
-background: #efefef;
 
+::v-deep .el-table__body{
+  width: 100% !important;
 }
-.el-table >>> tr:nth-child(even){
-background: #efefef;
-
+.boxall {
+  margin-top: 8px;
+    border: 2px solid #1b5677;
+    padding: 0rem .3rem .3rem;
+    position: relative;
+    //margin-bottom: 1rem;
+    height: 445px;
 }
-::v-deep .card-body {
-  -ms-flex: 1 1 auto;
-    -webkit-box-flex: 1;
-    flex: 1 1 auto;
-    min-height: 1px;
-    padding: 0.2rem !important;
+.boxCenter{
+    border: 3px solid #0A3054;
+    padding: 0rem .3rem .3rem;
+    position: relative;
+    width: 80%;
+    margin: auto;
+    //margin-bottom: 1rem;
+    height: 120px;
+    margin-top: 20px;
 }
-
-.sum-row {
-  margin-top: 0px;
+.box-warning{
+  color: #fff;
+  margin-top: 10px;
+  margin-left: 5px;
 }
-.sum-row-cols {
-  padding-right: 15px;
+.left-div{
+  //border-bottom: 1px solid;
+    margin: 5px 25px;
+    color: #fff;
 }
-.sum-row-col .info-box {
-  height: 100px;
-  margin: 0px;
-  padding: 0px;
+.left-foot{
+  //border-bottom: 1px solid;
+    margin-top: 0px;
+    margin-left: 25px;
+    color: #fff;
 }
-.sum-row-col .bg-aqua {
-  background-color: #00c0ef !important;
-  color: #fff !important;
+
+.boxall:before,
+.boxall:after {
+    position: absolute;
+    width: 1rem;
+    height: 1rem;
+    content: "";
+    border-top: 3px solid #02a6b5;
+    top: 0;
 }
-.progress-description,
-.info-box-text {
-  display: block;
-  font-size: 14px;
-  white-space: nowrap;
-  overflow: hidden;
-  text-overflow: ellipsis;
+
+.boxall:before,
+.boxfoot:before {
+    border-left: 3px solid #02a6b5;
+    left: 0;
 }
-.bg-deep-blue {
-  background-color: #3e72c5 !important;
-  color: #fff;
+
+.boxall:after,
+.boxfoot:after {
+    border-right: 3px solid #02a6b5;
+    right: 0;
+}
+
+.boxfoot {
+    position: absolute;
+    bottom: 0;
+    width: 100%;
+    left: 0;
 }
-.info-box .progress {
-  background-color: rgba(0, 0, 0, 0.125);
-  height: 2px;
-  margin: 5px 0;
+
+.boxfoot:before,
+.boxfoot:after {
+    position: absolute;
+    width: 1rem;
+    height: 1rem;
+    content: "";
+    border-bottom: 3px solid #02a6b5;
+    bottom: 0;
 }
-.info-box .progress {
-  background: rgba(0, 0, 0, 0.2);
-  margin: 5px -10px 5px -10px;
-  height: 2px;
+.titleup{
+      padding: 6px 0px;
+    color: white;
 }
-.info-box-icon {
-  border-top-left-radius: 2px;
-  border-top-right-radius: 0;
-  border-bottom-right-radius: 0;
-  border-bottom-left-radius: 2px;
-  display: block;
-  float: left;
-  height: 100px;
-  width: 80px;
-  text-align: center;
-  font-size: 45px;
-  line-height: 100px;
+.boxColor{
+      background: #162B56;
+      margin-bottom:0px;
+    margin-top: 20px;
 }
-.content-height-fit {
- height: calc(100vh - 0px) !important;
+.boxInfo {
+    background: #162B56;
+    margin-bottom: 0px;
+    margin-top: 35px;
 }
-::v-deep .el-table__body-wrapper {
-  &::-webkit-scrollbar { // 整个滚动条
-    width: 0; // 纵向滚动条的宽度
-    background: rgba(213,215,220,0.3);
-    border: none;
-  }
-  &::-webkit-scrollbar-track { // 滚动条轨道
-    border: none;
-  }
+::v-deep .card-header {
+    background-color: transparent;
+    border-bottom: 1px solid rgba(0,0,0,.125);
+    padding: 0.25rem 1.25rem;
+    position: relative;
+    border-top-left-radius: .25rem;
+    border-top-right-radius: .25rem;
 }
-::v-deep .el-table th.gutter{
-  display: none;
-  width:0
+::v-deep .card-title {
+    float: left;
+    font-size: 1.1rem;
+    font-weight: bold;
+    color: white;
+    margin: 0;
 }
-::v-deep .el-table colgroup col[name='gutter']{
-  display: none;
-  width: 0;
+::v-deep .card-body {
+    -ms-flex: 1 1 auto;
+    -webkit-box-flex: 1;
+    flex: 1 1 auto;
+    min-height: 1px;
+    padding: 0.25rem;
 }
-
-::v-deep .el-table__body{
-  width: 100% !important;
+::v-deep .BMap_cpyCtrl{
+  display: none !important;
 }
-
-.div-circular {
-  width:16px;
-  height:16px;
-  border-radius:50%;
-  }
-.div-normal
-{
-  background-color:#25b38e;
+::v-deep  .anchorBL{
+       display:none !important;
+   }
+::v-deep .BMap_stdMpZoom{
+  display:none !important;
 }
-.div-abnormal
-{
-  background-color:#686868;
+::v-deep .BMap_stdMpPan{
+  display:none !important;
 }
 </style>

+ 6 - 6
src/views/grider-erections/gride-work-info/tky-index.vue

@@ -225,12 +225,12 @@ export default {
   },
   async mounted() {
     this.loading = true
-    // try {
-    //   await this.$store.dispatch('user/clientCredentials')
-    //   this.loading = false
-    // } catch (ex) {
-    //   console.log(ex)
-    // }
+    try {
+      await this.$store.dispatch('user/clientCredentials')
+      this.loading = false
+    } catch (ex) {
+      console.log(ex)
+    }
     griderErectionApi.getList(this.query).then(res => {
       this.data = res
       if (res.splitTypeNoGuideBeams.length > 0) {