ysy hai 1 ano
pai
achega
948eb6c488

+ 149 - 0
src/views/produce/components/jobBooking/components/byProductBom.vue

@@ -0,0 +1,149 @@
+<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_table2">
+        <div class="head row rx-sc">
+          <div class="item ww30">物料编码</div>
+          <div class="item ww30">物料名称</div>
+          <div class="item ww40">重量</div>
+        </div>
+
+        <div class="table">
+          <div class="tr row rx-sc" v-for="(item, index) in list" :key="index">
+            <div class="item ww30">{{ item.code }}</div>
+            <div class="item ww30">{{
+              isDetails ? item.categoryName : item.name
+            }}</div>
+            <div class="item ww40 content_num">
+              <el-input
+                v-model="item.recycleQuantity"
+                type="digit"
+                v-if="!isDetails"
+              ></el-input>
+              <div v-if="isDetails">{{ item.quantity }}</div>
+              <div class="unit">{{ item.unit }}</div>
+            </div>
+
+            <div
+              class="penalize"
+              v-if="!isDetails"
+              :style="{ background: item.warehouseId ? '#FFA07A' : '' }"
+              @click="penalize(index)"
+              >处置</div
+            >
+            <div
+              v-if="isDetails"
+              class="penalize"
+              :style="{ background: item.warehouseId ? '#FFA07A' : '' }"
+              @click="handleView(item.warehouseName)"
+              >查看</div
+            >
+          </div>
+        </div>
+      </div>
+    </div>
+
+    <el-dialog
+      title="仓库处置"
+      :visible.sync="visible"
+      :before-close="handleClose"
+      :close-on-click-modal="false"
+      :close-on-press-escape="false"
+      append-to-body
+      width="500px"
+    >
+      <el-form size="mini" :model="form" label-width="96px">
+        <el-form-item label="仓库" prop="warehouseList">
+          <el-select v-model="form.warehouseId" placeholder="请选择仓库">
+            <el-option
+              v-for="item in warehouseList"
+              :label="item.name"
+              :value="item.id"
+              :key="item.id"
+            >
+            </el-option>
+          </el-select>
+        </el-form-item>
+      </el-form>
+
+      <template slot="footer">
+        <el-button size="mini" @click="visible = false">取 消</el-button>
+        <el-button size="mini" type="primary" @click="warehouseSave"
+          >保 存</el-button
+        >
+      </template>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+  export default {
+    name: 'semiProductJobBom',
+
+    props: {
+      list: {
+        type: Array,
+        default: () => []
+      },
+
+      isDetails: {
+        type: Boolean,
+        default: false
+      },
+
+      warehouseList: {
+        type: Array,
+        default: () => []
+      }
+    },
+
+    data() {
+      return {
+        form: {
+          warehouseId: null
+        },
+        penalizeIndex: null,
+        visible: false
+      };
+    },
+
+    methods: {
+      handleClose() {
+        this.penalizeIndex = null;
+
+        this.visible = false;
+      },
+
+      penalize(index) {
+        this.penalizeIndex = index;
+        this.visible = true;
+      },
+
+      warehouseSave() {
+        this.$set(
+          this.list[penalizeIndex],
+          'warehouseId',
+          this.form.warehouseId || null
+        );
+
+        this.handleClose();
+        this.$forceUpdate();
+      },
+      handleView(name) {
+        this.$message.info(name || '未设置');
+      }
+    }
+  };
+</script>
+
+<style lang="scss" scoped>
+  .materialBor {
+    border: 1rpx solid #157a2c;
+  }
+</style>

+ 49 - 0
src/views/produce/components/jobBooking/components/oneJobQualityBom.vue

@@ -0,0 +1,49 @@
+<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" v-for="(it, idx) in list" :key="idx">
+      <div class="content_table"> </div>
+    </div>
+  </div>
+</template>
+
+<script>
+  export default {
+    name: 'semiProductJobBom',
+
+    props: {
+      list: {
+        type: Array,
+        default: () => []
+      },
+      equipmentList: {
+        type: Array,
+        default: () => []
+      },
+
+      currentTaskDiagram: {
+        type: Object,
+        default: () => {}
+      },
+      isDetails: {
+        type: Boolean,
+        default: false
+      }
+    },
+
+    data() {
+      return {};
+    }
+  };
+</script>
+
+<style lang="scss" scoped>
+  .materialBor {
+    border: 1rpx solid #157a2c;
+  }
+</style>

+ 89 - 0
src/views/produce/components/jobBooking/components/palletBom.vue

@@ -0,0 +1,89 @@
+<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.code }}
+              </div>
+            </div>
+  
+            <div class="rx ww33">
+              <div class="lable rx-cc">名称</div>
+              <div
+                class="content"
+              >
+              {{item.name}}
+              </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 content_num rx-sc">
+              <el-input size="mini" v-model="item.extInfo.formedNum" type='digit' :disabled="isDetails"/>
+            </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 {
+      name: 'deviceBom',
+      props: {
+        list: {
+          type: Array,
+          default: () => []
+        },
+		isDetails: {
+				type: Boolean,
+				default: false
+			}
+  
+  
+      },
+  
+      computed: {},
+  
+      data() {
+        return {};
+      },
+  
+      methods: {
+        getDelete(idx) {
+          this.list.splice(idx, 1);
+        }
+      }
+    };
+  </script>
+  
+  <style scoped lang="scss"></style>
+  

+ 56 - 0
src/views/produce/components/jobBooking/components/semiProductJobBom.vue

@@ -0,0 +1,56 @@
+<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',
+        it.extInfo.reportWeight && it.extInfo.reportWeight && 'materialBor'
+      ]"
+      v-for="(it, idx) in list"
+      :key="idx"
+    >
+      <div class="content_table"> </div>
+    </div>
+  </div>
+</template>
+
+<script>
+  export default {
+    name: 'semiProductJobBom',
+
+    props: {
+      list: {
+        type: Array,
+        default: () => []
+      },
+      equipmentList: {
+        type: Array,
+        default: () => []
+      },
+
+      currentTaskDiagram: {
+        type: Object,
+        default: () => {}
+      },
+      isDetails: {
+        type: Boolean,
+        default: false
+      }
+    },
+
+    data() {
+      return {};
+    }
+  };
+</script>
+
+<style lang="scss" scoped>
+  .materialBor {
+    border: 1rpx solid #157a2c;
+  }
+</style>

+ 19 - 1
src/views/produce/components/jobBooking/index.vue

@@ -26,6 +26,14 @@
         <deviceBom v-if="item.equipmentList.length != 0" :list="item.equipmentList"></deviceBom>
 
         <modelBom v-if='item.modelList.length != 0' :list='item.modelList' pattern='job' ref='modelRef'></modelBom>
+
+        <palletBom v-if="item.palletList.length != 0" :list='item.palletList'></palletBom>
+
+        <revolvingDiskBom  v-if="item.revolvingDiskList.length > 0" pattern='job' :list="objData.revolvingDiskList"></revolvingDiskBom>
+
+        <semiProductJobBom></semiProductJobBom>
+
+        <byProductBom  v-if='item.productRecycleList.length != 0' :list='item.productRecycleList'> </byProductBom>
       </div>
     </div>
   </div>
@@ -40,12 +48,22 @@ import paramBom from '../feeding/components/paramBom.vue';
 import jobBom from './components/jobBom.vue';
 import deviceBom from '../feeding/components/deviceBom.vue';
 import modelBom from '../feeding/components/modelBom.vue'
+import palletBom from './components/palletBom.vue'
+import revolvingDiskBom from '../feeding/components/revolvingDiskBom.vue' 
+import semiProductJobBom from './components/semiProductJobBom.vue'
+
+import byProductBom from './components/byProductBom.vue'
 export default {
   components: {
     workOrderBom,
     paramBom,
     jobBom,
-    deviceBom
+    deviceBom,
+    modelBom,
+    palletBom,
+    revolvingDiskBom,
+    semiProductJobBom,
+    byProductBom
   },
   props: {
     workListIds: {