Jon 1 год назад
Родитель
Сommit
6f8f3fea7e

+ 80 - 0
src/views/produce/components/feeding/components/deviceBom.vue

@@ -0,0 +1,80 @@
+<template>
+  <div>
+    <div class="title_box rx-bc mt6">
+      <div class="name">设备信息 </div>
+
+      <div class="rx-bc"> </div>
+    </div>
+
+    <div class="material">
+      <div class="content_table" v-for="(item,index) in list" :key='index'>
+        <div class="item rx-sc">
+
+          <div class="rx ww33">
+            <div class="lable rx-cc">工位名称</div>
+            <div class="content">
+              {{ item.workstationName || (item.extInfo && item.extInfo.workstationName) }}
+            </div>
+          </div>
+
+          <div class="rx ww33">
+            <div class="lable rx-cc">设备编码</div>
+            <div class="content">{{ item.code }}</div>
+          </div>
+
+          <div class="rx ww33">
+            <div class="lable rx-cc">设备名称</div>
+            <div class="content">{{ item.name }}</div>
+          </div>
+        </div>
+
+        <div class="item rx-sc">
+       
+          <div class="rx ww33">
+            <div class="lable rx-cc">固资编码</div>
+            <div class="content rx-sc">
+              <div>{{item.extInfo.fixCode}}</div>
+            </div>
+          </div>
+
+          <div class="rx ww33">
+            <div class="lable rx-cc">编号</div>
+            <div class="content rx-sc">
+              <div>{{item.extInfo.codeNumber}}</div>
+            </div>
+          </div>
+
+          
+        </div>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+  export default {
+    name: 'deviceBom',
+    props: {
+      list: {
+        type: Array,
+        default: () => []
+      },
+      isDetails: {
+        type: Boolean,
+        default: false
+      }
+    },
+
+    computed: {},
+
+    data() {
+      return {};
+    },
+
+    methods: {}
+  };
+</script>
+
+<style scoped lang="scss">
+
+</style>

+ 157 - 18
src/views/produce/components/feeding/index.vue

@@ -13,7 +13,12 @@
 
           <div class="rx-bc">
             <el-button type="text" size="mini">出库单</el-button>
-            <el-button type="text" size="mini"  @click="openPicking(item.workOrderId, item)">添加物料</el-button>
+            <el-button
+              type="text"
+              size="mini"
+              @click="openPicking(item.workOrderId, item)"
+              >添加物料</el-button
+            >
             <el-button type="text" size="mini">清空缓存</el-button>
             <el-button type="text" size="mini">缓存</el-button>
           </div>
@@ -25,35 +30,38 @@
           v-if="item.paramDetailList.length != 0"
           :list="item.paramDetailList"
         ></paramBom>
+
+        <deviceBom
+          v-if="item.equipmentList.length != 0"
+          :list="item.equipmentList"
+        ></deviceBom>
       </div>
     </div>
 
-
     <pickingList
       isType="feed"
       ref="pickingListRef"
       @allSelection="allSelection"
     ></pickingList>
-
   </div>
 </template>
 
 <script>
   import { workorderList } from '@/api/produce/workOrder';
 
-
-  import pickingList from '../picking/pickingList.vue'
+  import pickingList from '../picking/pickingList.vue';
 
   import workOrderBom from './components/workOrderBom.vue';
   import paramBom from './components/paramBom.vue';
+  import deviceBom from './components/deviceBom.vue';
   export default {
     name: 'feeding',
     components: {
       pickingList,
 
-
       workOrderBom,
-      paramBom
+      paramBom,
+      deviceBom
     },
     props: {
       workListIds: {
@@ -94,8 +102,7 @@
         workorderList(param).then((res) => {
           this.List = res.map((m) => {
             m.workOrderId = m.id;
-            m.paramDetailList = [
-            ];
+            m.paramDetailList = [];
 
             m.instanceList = []; // 物料
             m.equipmentList = []; // 设备
@@ -155,14 +162,55 @@
         this.$refs.pickingListRef.open(id, item);
       },
 
-      allSelection(id, list) {
-        this.List.forEach((e) => {
-          if (e.workOrderId == id) {
-           console.log(88,list)
+      allSelection(id, selectList) {
+        this.List.forEach((m) => {
+          if (m.workOrderId == id) {
+            let modelList = []; // 模具
+            let instanceList = []; // 投料
+            let aridRegionList = []; // 干燥区
+            let equipmentList = []; // 生产设备
+            let palletList = []; // 舟皿
+            let revolvingDiskList = []; // 周转盘
+            let semiProductList = []; // 半成品
+            let turnover = []; //周转车
+
+            selectList.forEach((f) => {
+              if (f.rootCategoryLevelId == 4) {
+                equipmentList = equipmentList.concat(f);
+              }
+              if (f.rootCategoryLevelId == 5) {
+                modelList = modelList.concat(f);
+              } else if (f.rootCategoryLevelId == 1) {
+                instanceList = instanceList.concat(f);
+              } else if (f.rootCategoryLevelId == 11) {
+                aridRegionList = aridRegionList.concat(f);
+              } else if (f.rootCategoryLevelId == 7) {
+                turnover = turnover.concat(f);
+              } else if (f.rootCategoryLevelId == 8) {
+                palletList = palletList.concat(f);
+              } else if (f.rootCategoryLevelId == 26) {
+                revolvingDiskList = revolvingDiskList.concat(f);
+              } else if (
+                [23, 2, 9, 28].includes(Number(f.rootCategoryLevelId))
+              ) {
+                semiProductList = semiProductList.concat(f);
+              }
+            });
+
+            this.$set(m, 'modelList', modelList);
+            this.$set(m, 'instanceList', instanceList);
+            this.$set(m, 'aridRegionList', aridRegionList);
+            this.$set(m, 'equipmentList', equipmentList);
+            this.$set(m, 'turnover', turnover);
+            this.$set(m, 'palletList', palletList);
+            this.$set(m, 'revolvingDiskList', revolvingDiskList);
+            this.$set(m, 'semiProductList', semiProductList);
+
+
+            this.$forceUpdate();
           }
         });
-      },
-
+      }
     }
   };
 </script>
@@ -193,9 +241,10 @@
 </style>
 
 <style lang="scss">
-.mt6{
-  margin-top: 6px;
-}
+  .mt6 {
+    margin-top: 6px;
+  }
+
   .title_box {
     .name {
       font-size: 14px;
@@ -204,6 +253,7 @@
       color: #157a2c;
       padding-left: 5px;
       position: relative;
+
       &:before {
         position: absolute;
         content: '';
@@ -217,4 +267,93 @@
       }
     }
   }
+
+  .material {
+    margin-top: 6px;
+
+    .content_table {
+      width: 100%;
+      border: 1px solid #e3e5e5;
+
+      .item {
+        display: flex;
+        border-bottom: 1px solid #e3e5e5;
+
+        .lable {
+          width: 66px;
+          text-align: center;
+          background-color: #f7f9fa;
+          font-size: 13px;
+          border-right: 1px solid #e3e5e5;
+          flex-shrink: 0;
+        }
+
+        .lable80 {
+          width: 80px !important;
+          font-size: 12px;
+        }
+
+        .ww60 {
+          width: 60px;
+        }
+
+        .content {
+          width: 250px;
+          min-height: 32px;
+          font-size: 14px;
+          line-height: 14px;
+          font-style: normal;
+          font-weight: 400;
+          padding: 9px 4px;
+          box-sizing: border-box;
+          word-wrap: break-word;
+          flex-grow: 1 !important;
+
+          .unit {
+            padding: 0 2px;
+            font-size: 12px;
+            color: #404446;
+          }
+        }
+
+        .content_num {
+          display: flex;
+          align-items: center;
+          padding: 0 2px;
+        }
+
+        .pd2 {
+          padding: 2px 4px;
+        }
+
+        &:last-child {
+          border-bottom: none;
+        }
+      }
+
+      .ww55 {
+        width: 55%;
+      }
+
+      .ww50 {
+        width: 50%;
+      }
+
+      .ww45 {
+        width: 45%;
+      }
+
+      .ww30 {
+        width: 30%;
+      }
+
+      .ww33 {
+        width: 33.33%;
+      }
+
+      .ww20 {
+        width: 20%;
+      }
+    }
+  }
 </style>