ysy 1 سال پیش
والد
کامیت
fb1d066b94

+ 1 - 1
src/views/produce/components/feeding/components/instanceBom.vue

@@ -1,7 +1,7 @@
 <template>
   <div>
     <div class="title_box rx-bc mt6">
-      <div class="name">物料清单 </div>
+      <div class="name">物料清单({{list.length || 0}})个 </div>
 
       <div class="rx-bc"> </div>
     </div>

+ 236 - 0
src/views/produce/components/feeding/components/semiProductBom.vue

@@ -0,0 +1,236 @@
+<template>
+    <div>
+      <div class="title_box rx-bc mt6">
+        <div class="name">物料清单({{list.length || 0}})个 </div>
+  
+        <div class="rx-bc"> </div>
+      </div>
+  
+      <div class="material">
+        <div class="content_table mb4" 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.code }}
+              </div>
+            </div>
+  
+            <div class="rx ww33">
+              <div class="lable rx-cc">名称</div>
+              <div class="content">{{ item.name }}
+                ({{item.rootCategoryLevelId == 2 ? '在制品' :  item.rootCategoryLevelId == 23 ? '半成品' :  item.rootCategoryLevelId == 9 ? '产品' :   item.rootCategoryLevelId == 28 ? '废品' : ''  }})
+              </div>
+            </div>
+  
+            <div class="rx ww33">
+              <div class="lable rx-cc">型号</div>
+              <div class="content">{{ item.modelType }}</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.specification }}</div>
+              </div>
+            </div>
+  
+            <div class="rx ww33">
+              <div class="lable rx-cc">牌号</div>
+              <div class="content rx-sc">
+                <div>{{ item.brandNum }}</div>
+              </div>
+            </div>
+  
+            <div class="rx ww33">
+              <div class="lable rx-cc">包装库存</div>
+              <div class="content rx-sc">
+                <div>{{ item.packingCountBase }}/ {{ item.minUnit }}</div>
+              </div>
+            </div>
+          </div>
+  
+          <div class="item rx-sc" v-if="item.isConsumable == 0">
+            <div class="rx ww33">
+              <div class="lable rx-cc">{{
+                currentTaskDiagram.isFirstTask == 1 ? '物料重量' : '上道重量'
+              }}</div>
+              <div class="content" v-if="currentTaskDiagram.isFirstTask == 1">
+                {{ item.extInfo.weight || 0 }} {{ item.extInfo.weightUnit }}</div
+              >
+              <div class="content" v-if="currentTaskDiagram.isFirstTask == 0">
+                {{ item.extInfo.newWeight || 0 }}
+                {{ item.extInfo.weightUnit }}</div
+              >
+            </div>
+  
+            <div class="rx ww33">
+              <div class="lable rx-cc">刻码</div>
+              <div class="content">{{ item.extInfo.engrave }}</div>
+            </div>
+  
+            <div class="rx ww33">
+              <div class="lable rx-cc">物料代号</div>
+              <div class="content">{{ item.extInfo.materielCode }}</div>
+            </div>
+          </div>
+  
+          <div
+            class="item rx-sc"
+            v-if="item.isConsumable == 0 && deviceList.length > 0"
+          >
+            <div class="rx ww33">
+              <div class="lable rx-cc">设备</div>
+              <div class="content content_num">
+                <el-select
+                  v-model="item.deviceId"
+                  placeholder="请选择"
+                  @change="(e) => selectVal(e, item, index)"
+                >
+                  <el-option
+                    v-for="item in deviceList"
+                    :label="item.name + '-' + item.codeNumber"
+                    :value="item.id"
+                    :key="item.id"
+                  >
+                  </el-option>
+                </el-select>
+              </div>
+            </div>
+  
+            <div class="rx ww33">
+              <div class="lable rx-cc">炉次号</div>
+              <div class="content content_num rx-sc">
+                <el-input
+                  size="mini"
+                  v-model="item.extInfo.heatNumber"
+                  placeholder="请输入炉次号"
+                />
+              </div>
+            </div>
+          </div>
+  
+          <div class="item rx-sc">
+            <div class="rx ww33">
+              <div class="lable rx-cc">数量</div>
+              <div class="content content_num rx-sc">
+                <el-input
+                  size="mini"
+                  v-model="item.feedQuantity"
+                  placeholder="数量"
+                >
+                </el-input>
+              </div>
+            </div>
+  
+            <div class="rx ww33" v-if="item.isConsumable == 0">
+              <div class="lable rx-cc">位置</div>
+              <div class="content">{{ item.extInfo.position }}</div>
+            </div>
+          </div>
+  
+          <div class="del_box">
+            <el-link
+              type="danger"
+              icon="el-icon-delete"
+              @click="getDelete(index)"
+            ></el-link>
+          </div>
+        </div>
+      </div>
+    </div>
+  </template>
+  <script>
+    export default {
+      props: {
+        list: {
+          type: Array,
+          default: () => []
+        },
+        equipmentList: {
+          type: Array,
+          default: () => []
+        },
+  
+        currentTaskDiagram: {
+          type: Object,
+          default: () => {}
+        },
+        isDetails: {
+          type: Boolean,
+          default: false
+        }
+      },
+  
+      watch: {
+        equipmentList: {
+          immediate: true,
+          deep: true,
+          handler(newVal) {
+            this.deviceList = newVal;
+            this.changeHeatNumber();
+          }
+        }
+      },
+  
+      data() {
+        return {
+          deviceList: []
+        };
+      },
+  
+      methods: {
+        getDelete(index) {
+          this.list.splice(index, 1);
+        },
+  
+        selectVal(e, item, idx) {
+          let obj = this.deviceList.find((f) => f.id == e);
+  
+          this.$set(
+            this.list[idx],
+            'deviceName',
+            obj.name + '-' + obj.codeNumber
+          );
+          this.$set(
+            this.list[idx]['extInfo'],
+            'heatNumber',
+            obj.extInfo.heatNumber
+          );
+        },
+  
+        changeHeatNumber() {
+          console.log(this.deviceList);
+  
+          this.deviceList.forEach((f) => {
+            this.list.forEach((o) => {
+              if (
+                o.deviceId &&
+                f.id == o.deviceId &&
+                this.deviceList.length > 1
+              ) {
+                o.extInfo.heatNumber = f.extInfo.heatNumber;
+                o['workstationName'] = f.workstationName;
+              } else if (this.deviceList.length == 1) {
+                o['deviceName'] = this.deviceList[0].name;
+                o['deviceId'] = this.deviceList[0].id;
+                o['workstationName'] = this.deviceList[0].workstationName;
+                o.extInfo.heatNumber = this.deviceList[0].extInfo.heatNumber;
+  
+                this.$forceUpdate();
+              }
+            });
+          });
+        }
+      }
+    };
+  </script>
+  
+  <style lang="scss" scoped>
+    .mb4 {
+      margin-bottom: 4px;
+    }
+  </style>
+  

+ 10 - 1
src/views/produce/components/feeding/index.vue

@@ -52,6 +52,13 @@
           :equipmentList="item.equipmentList"
           :currentTaskDiagram="item.currentTaskDiagram"
         ></instanceBom>
+
+        <semiProductBom
+          v-if="item.semiProductList.length != 0"
+          :list="item.semiProductList"
+          :equipmentList="item.equipmentList"
+          :currentTaskDiagram="item.currentTaskDiagram"
+        ></semiProductBom>
       </div>
     </div>
 
@@ -74,6 +81,7 @@
   import productsBom from './components/productsBom.vue';
   import modelBom from './components/modelBom.vue';
   import instanceBom from './components/instanceBom.vue';
+  import semiProductBom from './components/semiProductBom.vue';
   export default {
     name: 'feeding',
     components: {
@@ -84,7 +92,8 @@
       deviceBom,
       productsBom,
       modelBom,
-      instanceBom
+      instanceBom,
+      semiProductBom
     },
     props: {
       workListIds: {

+ 1 - 1
src/views/produce/components/picking/pickingList.vue

@@ -514,7 +514,7 @@
       if (this.isType == 'pick') {
         this.treeIds = '1, 5, 7, 8, 10, 13, 14, 23, 26, 9, 28';
       } else if (this.isType == 'feed') {
-        this.treeIds = '1, 2, 4, 5, 7, 8, 10, 11, 13, 14, 26, 9, 28';
+        this.treeIds = '1, 2, 4, 5, 7, 8, 10, 11, 13, 14, 26, 9, 23,28';
       } else if (this.isType == 'job') {
         this.treeIds = '4, 7';
       }