408249787 vor 2 Jahren
Ursprung
Commit
30bf9b3305
1 geänderte Dateien mit 111 neuen und 38 gelöschten Zeilen
  1. 111 38
      src/views/sb/position/SbPositionNum copy.vue

+ 111 - 38
src/views/sb/position/SbPositionNum copy.vue

@@ -1,37 +1,51 @@
 <template>
-  <a-card :bordered="false" v-show="visible" class="card" :title="modalTitle">
-    <h1 style="margin:20px auto; text-align: center"> 设备位置统计数据 </h1>
-    <a-card title="厂区统计">
-      <a-card-grid v-for="position in sbPositionData" v-if="position.type === 1" :key="position.id" style="cursor: pointer;width:25%;text-align:center" @click="selectCountByPosition(position)">
-        {{ position.name + '(数量:' + num + ')' }}
-      </a-card-grid>
-    </a-card>
-
-    <a-card title="车间统计">
-      <a-card-grid v-for="position in sbPositionData" v-if="position.type === 2" :key="position.id" style="cursor: pointer;width:25%;text-align:center" @click="selectCountByPositionGroupBySbType(position)">
-        {{ position.name  + '(数量:' + lineNum + ')' }}
-      </a-card-grid>
-    </a-card>
-
-    <a-card title="类型统计">
-      <a-card-grid v-for="type in typeData" :key="type.id" style="cursor: pointer;width:25%;text-align:center" @click="jumpSbInfo(type)">
-        {{ type.typeName +  '(数量:' + type.num + ')'  }}
-      </a-card-grid>
-    </a-card>
-
-    <a-row :gutter="48">
-      <a-col :md="48" :sm="48">
-        <span class="table-page-search-submitButtons" style="float: right;margin-top: 10px">
-          <a-button style="margin-left: 8px" @click="handleCancel()">返回</a-button>
-        </span>
-      </a-col>
-    </a-row>
-  </a-card>
+  <div v-show="visible" class="main">
+    <div>
+      <div class="one_title">
+        <a-row type="flex" :gutter="[20,20]">
+          <a-col :span="6" v-for="position in sbPositionData" :key="position.id" @click="selectCountByPosition(position)" v-show="position.type === 1">
+            <div class="one_title_option" :class="parentId==position.id?'opt_one_title_option':''">
+              <div><my-icon type="icon-lianyouchangqu-copy" style="font-size:107px;"/></div>
+              <div>
+                <div> {{ position.name }}</div>
+                <div style="color:#296BEF;font-size: 42px;">{{ position.num }}台</div>
+              </div>
+            </div>
+          </a-col>
+        </a-row>
+      </div>
+      <br />
+      <div class="two_title">
+        <a-row type="flex" :gutter="[20,40]">
+          <a-col :span="3" v-for="position in sbPositionData" v-show="position.type === 2 && position.parentId === parentId" :key="position.id" @click="selectCountByPositionGroupBySbType(position)">
+            <div class="two_title_option" :class="code==position.code?'opt_two_title_option':''">
+              <div> {{ position.name }}</div>
+              <div style="color:#296BEF;margin-top: 22px;">{{ position.num }}台</div>
+            </div>
+          </a-col>
+        </a-row>
+      </div>
+      <div class="three_title" v-if="typeData.length >0">
+        <!-- <div class="title">丙二车间:28台</div> -->
+        <a-row type="flex" justify="space-around" :gutter="[40,40]">
+          <a-col :span="3" v-for="item in typeData" :key="item.id" >
+            <div class="three_title_option" @click="jumpSbInfo(item)">
+              <div>{{ item.typeName }}</div>
+              <div style="padding:5px;background: #CDDBFA;opacity: 0.56;border-radius: 2px; color:#2C5DC7;margin-top: 10px;">{{ item.num }}台</div>
+            </div>
+          </a-col>
+        </a-row>
+      </div>
+    </div>
+  </div>
 </template>
 
 <script>
 
-import { querySbPosition, selectCountByPosition, selectCountByPositionGroupBySbType } from '@/api/sb/position'
+import {
+  selectCountByPositionGroup,
+  selectCountByPositionGroupBySbType
+} from '@/api/sb/position'
 
 export default {
   name: 'SbPositionNum',
@@ -42,8 +56,8 @@ export default {
       confirmLoading: false,
       modalTitle: null,
       configMap: {},
-      num: null,
-      lineNum: null,
+      parentId: null,
+      code: null,
       sbPositionData: [],
       typeData: [],
       factoryStr: null,
@@ -56,8 +70,9 @@ export default {
   },
   created () {
     // 下拉框map
-    querySbPosition().then(res => {
+    selectCountByPositionGroup().then(res => {
       this.sbPositionData = res.data
+      this.selectCountByPosition(res.data[0])
     })
   },
   methods: {
@@ -80,14 +95,12 @@ export default {
       }
     },
     selectCountByPosition (position) {
-      selectCountByPosition(position).then(res => {
-        this.num = res.data
-      })
+      this.parentId = position.id
+      this.code = null
+      this.typeData = []
     },
     selectCountByPositionGroupBySbType (position) {
-      selectCountByPosition(position).then(res => {
-        this.lineNum = res.data
-      })
+      this.code = position.code
       selectCountByPositionGroupBySbType(position).then(res => {
         this.typeData = res.data
       })
@@ -99,3 +112,63 @@ export default {
   }
 }
 </script>
+
+<style lang="less" scoped>
+.main{
+  padding:20px;
+  // background: #fff;
+  .one_title_option{
+    background:#fff;
+    display: flex;
+    justify-content: space-between;
+    align-items: center;
+    font-size: 26px;
+    font-family: PingFang SC;
+    font-weight: bold;
+    color: #333333;
+    cursor: pointer;
+    border-radius: 10px;
+    padding:17px 50px 17px 17px;
+  }
+   .opt_one_title_option{
+    background: linear-gradient(-3deg, #99D1F6 0%, #9196F3 100%);
+    color:#fff;
+   }
+  .two_title_option{
+    background:#fff;
+    text-align: center;
+    font-size: 26px;
+    padding:20px;
+    cursor: pointer;
+    box-shadow: 1px 14px 29px 0px rgba(138,97,250,0.19);
+    border-radius: 10px;
+  }
+  .opt_two_title_option{
+    background: linear-gradient(-3deg, #cce2f0 0%, #99D1F6 100%);
+   }
+   .three_title{
+    margin-top: 50px;
+    background: #FFFFFF;
+    border: 1px solid #D2D5D9;
+    border-radius: 4px;
+    font-family: PingFang SC;
+    padding: 20px;
+    min-height:100vh;
+    .title{
+      width: 500px;
+      font-size: 34px;
+      font-weight: bold;
+      padding: 10px 0 30px 0;
+      color: #2C5DC7;
+      border-bottom: 2px solid #2c5dc7;
+      margin-bottom: 30px;
+    }
+    .three_title_option{
+      cursor: pointer;
+      font-size: 22px;
+      font-weight: 500;
+      text-align: center;
+    }
+   }
+}
+</style>