695593266@qq.com hace 11 meses
padre
commit
eeba34f9af

+ 7 - 6
src/views/outsourcing/components/details.vue

@@ -58,6 +58,7 @@
       ref="table"
       v-if="detailType == 1"
       :columns="columns"
+      :datasource="row.detailList"
       cache-key="detailsTable"
       height="calc(100vh - 350px)"
     >
@@ -274,14 +275,14 @@
 
         if (row.detailType == 1) {
           this.detailType = 1;
-          this.$nextTick(() => {
-            this.$refs.table.setData([...row.detailList]);
-          });
+          // this.$nextTick(() => {
+          //   this.$refs.table.setData([...row.detailList]);
+          // });
         } else if (row.detailType == 2) {
           this.detailType = 2;
-          this.$nextTick(() => {
-            this.$refs.table2.setData([...row.detailList]);
-          });
+          // this.$nextTick(() => {
+          //   this.$refs.table2.setData([...row.detailList]);
+          // });
         }
 
         this.row = row;

+ 98 - 69
src/views/outsourcing/components/search.vue

@@ -1,92 +1,121 @@
 <!-- 搜索表单 -->
 <template>
-    <el-form label-width="90px" class="ele-form-search" @keyup.enter.native="search" @submit.native.prevent>
-        <el-row :gutter="15">
-            <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
-                <el-form-item label="工单编码:">
-                    <el-input size="mini" clearable v-model="where.workOrderId" placeholder="请输入" />
-                </el-form-item>
-            </el-col>
+  <el-form
+    label-width="90px"
+    class="ele-form-search"
+    @keyup.enter.native="search"
+    @submit.native.prevent
+  >
+    <el-row :gutter="15">
+      <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
+        <el-form-item label="工单编码:">
+          <el-input
+            size="mini"
+            clearable
+            v-model.trim="where.workOrderCode"
+            placeholder="请输入"
+          />
+        </el-form-item>
+      </el-col>
 
-            <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
-                <el-form-item label="委外名称:">
-                    <el-input size="mini"  clearable v-model="where.name" placeholder="请输入" />
-                </el-form-item>
-            </el-col>
+      <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
+        <el-form-item label="委外名称:">
+          <el-input
+            size="mini"
+            clearable
+            v-model.trim="where.name"
+            placeholder="请输入"
+          />
+        </el-form-item>
+      </el-col>
 
-            <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
-                <el-form-item label="委外编码:">
-                    <el-input size="mini" clearable v-model="where.code" placeholder="请输入" />
-                </el-form-item>
-            </el-col>
+      <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
+        <el-form-item label="委外编码:">
+          <el-input
+            size="mini"
+            clearable
+            v-model.trim="where.code"
+            placeholder="请输入"
+          />
+        </el-form-item>
+      </el-col>
 
-          <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
-            <el-form-item label="组织机构:">
-              <auth-selection  v-model="where.deptIds" style="width: 100%"></auth-selection>
-            </el-form-item>
-          </el-col>
+      <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
+        <el-form-item label="组织机构:">
+          <auth-selection
+            v-model="where.deptIds"
+            style="width: 100%"
+          ></auth-selection>
+        </el-form-item>
+      </el-col>
 
-
-            <el-col style="display: flex;justify-content: flex-end" v-bind="styleResponsive ? { lg: 24, md: 24 } : { span: 24 }">
-                <el-form-item label-width="0px">
-                    <el-button size="mini" type="primary" icon="el-icon-search" class="ele-btn-icon" @click="search">
-                        查询
-                    </el-button>
-                    <el-button size="mini" @click="reset" icon="el-icon-refresh-left" type="primary">重置</el-button>
-                </el-form-item>
-            </el-col>
-        </el-row>
-    </el-form>
+      <el-col
+        style="display: flex; justify-content: flex-end"
+        v-bind="styleResponsive ? { lg: 24, md: 24 } : { span: 24 }"
+      >
+        <el-form-item label-width="0px">
+          <el-button
+            size="mini"
+            type="primary"
+            icon="el-icon-search"
+            class="ele-btn-icon"
+            @click="search"
+          >
+            查询
+          </el-button>
+          <el-button
+            size="mini"
+            @click="reset"
+            icon="el-icon-refresh-left"
+            type="primary"
+            >重置</el-button
+          >
+        </el-form-item>
+      </el-col>
+    </el-row>
+  </el-form>
 </template>
 
 <script>
-
-export default {
+  export default {
     props: [],
     data() {
-        // 默认表单数据
-        const defaultWhere = {
-            workOrderId: '',
-            name: '',
-            code: ''
-
-
-        };
-        return {
-            // 表单数据
-            where: { ...defaultWhere },
-
-        };
+      // 默认表单数据
+      const defaultWhere = {
+        workOrderCode: '',
+        name: '',
+        code: ''
+      };
+      return {
+        // 表单数据
+        where: { ...defaultWhere }
+      };
     },
     computed: {
-        // 是否开启响应式布局
-        styleResponsive() {
-            return this.$store.state.theme.styleResponsive;
-        }
+      // 是否开启响应式布局
+      styleResponsive() {
+        return this.$store.state.theme.styleResponsive;
+      }
     },
     watch: {},
-    created() {
-
-    },
+    created() {},
     methods: {
-        /* 搜索 */
-        search() {
-            this.$emit('search', this.where);
-        },
-        /*  重置 */
-        reset() {
-            this.where = { ...this.defaultWhere };
-            this.search();
-        },
-
-
+      /* 搜索 */
+      search() {
+        this.$emit('search', this.where);
+      },
+      /*  重置 */
+      reset() {
+        this.where = { ...this.defaultWhere };
+        this.search();
+      }
     }
-};
+  };
 </script>
 <style lang="scss" scoped>
-.ele-form-actions {
+  .ele-form-actions {
     display: flex;
     align-items: center;
     justify-content: flex-end;
-}
+  }
 </style>

+ 7 - 0
src/views/outsourcing/index.vue

@@ -18,6 +18,12 @@
             >{{ row.code }}</el-link
           >
         </template>
+
+        <template v-slot:totalWeight="{ row }">
+          <div v-if="row.totalWeight">{{ row.totalWeight }}</div>
+          <div v-else>无</div>
+        </template>
+
         <template v-slot:requireDeliveryTime="{ row }">
           <span v-if="row.deliveryMethod == 1">{{
             row.requireDeliveryTime
@@ -203,6 +209,7 @@
 
           {
             prop: 'totalWeight',
+            slot: 'totalWeight',
             label: '委外重量',
             align: 'center'
           },

+ 5 - 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">物料清单 ({{ list.length || 0 }})个 </div>
+      <div class="name">{{ title }} ({{ list.length || 0 }})个 </div>
 
       <div class="rx-bc"> </div>
     </div>
@@ -111,6 +111,10 @@
       workInfo: {
         type: Object,
         default: () => {}
+      },
+      title: {
+        type: String,
+        default: '物料清单'
       }
     },
 

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

@@ -137,6 +137,18 @@
             :equipmentList="item.equipmentList"
             :currentTaskDiagram="item.currentTaskDiagram"
             :workInfo="item"
+            :title="物料清单"
+          >
+          </instanceBom>
+
+          <!-- 备料清单 -->
+          <instanceBom
+            v-if="item.sparePartsList.length != 0"
+            :list="item.sparePartsList"
+            :equipmentList="item.equipmentList"
+            :currentTaskDiagram="item.currentTaskDiagram"
+            :workInfo="item"
+            :title="备料清单"
           >
           </instanceBom>
 
@@ -322,7 +334,7 @@
             let arr = [];
             arr = res.map((m) => {
               m.workOrderId = m.id;
-              m.paramDetailList = [];
+              m.paramDetailList = m.paramDetailList;
 
               m.instanceList = []; // 物料
               // m.equipmentList = []; // 设备
@@ -332,6 +344,7 @@
               m.palletList = []; // 舟皿
               m.revolvingDiskList = []; // 周转盘
               m.semiProductList = []; //半成品
+              m.sparePartsList = []; //备品清单
 
               if (m.pickOutInList.length > 0) {
                 m.pickOutInList.forEach((f) => {
@@ -341,6 +354,8 @@
                     m.modelList.push(f);
                   } else if (f.rootCategoryLevelId == 5) {
                     m.modelList.push(f);
+                  } else if (f.rootCategoryLevelId == 6) {
+                    m.sparePartsList.push(f);
                   } else if (f.rootCategoryLevelId == 11) {
                     m.aridRegionList.push(f);
                   } else if (f.rootCategoryLevelId == 13) {
@@ -407,6 +422,7 @@
                 ...m
               };
             });
+            console.log(arr, 'arr');
             this.List = deepClone(arr);
           })
           .finally(() => {
@@ -463,6 +479,7 @@
             let revolvingDiskList = []; // 周转盘
             let semiProductList = []; // 半成品
             let turnover = []; //周转车
+            let sparePartsList = []; //备品清单
 
             selectList.forEach((f) => {
               if (f.rootCategoryLevelId == 4) {
@@ -474,6 +491,8 @@
                 instanceList = instanceList.concat(f);
               } else if (f.rootCategoryLevelId == 11) {
                 aridRegionList = aridRegionList.concat(f);
+              } else if (f.rootCategoryLevelId == 6) {
+                sparePartsList = sparePartsList.concat(f);
               } else if (f.rootCategoryLevelId == 7) {
                 turnover = turnover.concat(f);
               } else if (f.rootCategoryLevelId == 8) {
@@ -488,6 +507,7 @@
             });
 
             this.$set(m, 'modelList', modelList);
+            this.$set(m, 'sparePartsList', sparePartsList);
             this.$set(m, 'instanceList', instanceList);
             this.$set(m, 'aridRegionList', aridRegionList);
             this.$set(m, 'equipmentList', equipmentList);
@@ -522,6 +542,7 @@
                 f['instanceList'] = o.instanceList || [];
                 f['equipmentList'] = o.equipmentList || [];
                 f['modelList'] = o.modelList || [];
+                f['sparePartsList'] = o.sparePartsList || [];
                 f['aridRegionList'] = o.aridRegionList || [];
                 f['packingList'] = o.packingList || [];
                 f['palletList'] = o.palletList || [];

+ 1496 - 0
src/views/produce/components/jobBooking/components/newSemiProductJobBom.vue

@@ -0,0 +1,1496 @@
+<template>
+  <div>
+    <div class="title_box rx-bc mt6">
+      <div class="name">{{ title }}({{ list.length || 0 }})个 </div>
+
+      <!-- isEngrave: {
+        type: Boolean,
+        default: false
+      },
+      isDisposal: {
+        type: Boolean,
+        default: false
+      } -->
+
+      <div class="title_box rx-bc mt6">
+        <div
+          v-if="!isDetails && isEngrave"
+          class="rx-bc"
+          style="margin-left: 20px"
+        >
+          <el-button type="text" size="mini" @click="batchEngrave()"
+            >批量填写刻码</el-button
+          >
+        </div>
+
+        <div
+          v-if="!isDetails && isDisposal"
+          class="rx-bc"
+          style="margin-left: 20px"
+        >
+          <el-button type="text" size="mini" @click="batchDisposal()"
+            >批量处置</el-button
+          >
+        </div>
+
+        <div
+          class="rx-bc"
+          v-if="!isDetails && isChoose"
+          style="margin-left: 20px"
+          ><el-button type="text" size="mini" @click="batchDelete()"
+            >批量删除</el-button
+          >
+        </div>
+      </div>
+    </div>
+
+    <ele-pro-table
+      ref="table"
+      :needPage="false"
+      :columns="columns"
+      :datasource="list"
+      class="time-form"
+      max-height="600"
+      @columns-change="handleColumnChange"
+      :cache-key="cacheKeyUrl"
+      :selection.sync="selection"
+      row-key="id"
+    >
+      <template v-slot:engrave="{ row, $index }">
+        <span v-if="isDetails">{{ row.extInfo.engrave }}</span>
+        <el-input
+          v-else
+          size="mini"
+          class="content_num"
+          v-model="row.extInfo.engrave"
+          placeholder="刻码"
+        />
+      </template>
+      <template v-slot:sendCode="{ row, $index }">
+        <el-input
+          size="mini"
+          class="content_num"
+          v-model="row.extInfo.sendCode"
+          placeholder="发货条码"
+          :disabled="isDetails"
+        />
+      </template>
+      <template v-slot:batchNo="{ row, $index }">
+        <el-input
+          size="mini"
+          class="content_num"
+          v-model="row.batchNo"
+          placeholder="批次号"
+          :disabled="isDetails"
+        />
+      </template>
+
+      <template v-slot:materielCode="{ row, $index }">
+        <span v-if="isDetails">{{ row.extInfo.materielCode }}</span>
+        <el-input
+          v-else
+          size="mini"
+          class="content_num"
+          v-model="row.extInfo.materielCode"
+          placeholder="物料代号"
+        />
+      </template>
+      <template v-slot:clientCode="{ row, $index }">
+        <span v-if="isDetails"> {{ row.extInfo.clientCode }}</span>
+        <el-input
+          v-else
+          size="mini"
+          class="content_num"
+          v-model="row.extInfo.clientCode"
+          placeholder="请输入客户代号"
+        />
+      </template>
+      <template v-slot:deviceId="{ row, $index }">
+        <el-select
+          v-if="deviceList?.length > 0"
+          class="content_num"
+          v-model="row.deviceId"
+          filterable
+          placeholder="请选择"
+          @change="(e) => selectVal(e, row, $index)"
+          size="mini"
+          :disabled="isDetails"
+        >
+          <el-option
+            v-for="item in deviceList"
+            :label="item.name + '-' + item.codeNumber"
+            :value="item.id || item.instanceId"
+            :key="item.id || item.instanceId"
+          >
+          </el-option>
+        </el-select>
+      </template>
+      <template v-slot:heatNumber="{ row, $index }">
+        <el-input
+          size="mini"
+          class="content_num"
+          v-model="row.extInfo.heatNumber"
+          placeholder="请输入炉次号"
+          :disabled="isDetails"
+        />
+      </template>
+      <template v-slot:feedQuantity="{ row, $index }">
+        <el-input
+          size="mini"
+          class="content_num"
+          v-model="row.feedQuantity"
+          disabled
+          placeholder="数量"
+        />
+      </template>
+      <template v-slot:position="{ row, $index }">
+        <span v-if="isDetails">{{ row.extInfo.position }}</span>
+        <el-input
+          v-else
+          size="mini"
+          class="content_num"
+          v-model="row.extInfo.position"
+          placeholder="位置"
+        />
+      </template>
+      <template v-slot:weight="{ row, $index }">
+        <div style="display: flex; align-items: center">
+          <div class="tag_box">{{ row.extInfo.newWeight ? '上' : '原' }}</div>
+          <span
+            v-if="
+              Object.prototype.hasOwnProperty.call(row.extInfo, 'newWeight')
+            "
+            >{{ row.extInfo.newWeight }}</span
+          >
+
+          <el-input
+            v-if="
+              !Object.prototype.hasOwnProperty.call(row.extInfo, 'newWeight')
+            "
+            size="mini"
+            class="content_num2"
+            style="width: 100px"
+            v-model="row.extInfo.weight"
+            :disabled="isDetails"
+            prop="digit"
+          />
+          <div style="width: 55px">{{ row.weightUnit }}</div>
+        </div>
+      </template>
+      <template v-slot:reportWeight="{ row, $index }">
+        <div style="display: flex; align-items: center">
+          <span v-if="isDetails">{{ row.extInfo.reportWeight }}</span>
+          <el-input
+            v-else
+            size="mini"
+            class="content_num"
+            type="number"
+            v-model="row.extInfo.reportWeight"
+            placeholder="报工重量"
+            prop="digit"
+            @input="handleInput"
+          />
+          <div style="width: 55px">{{ row.weightUnit }}</div>
+        </div>
+      </template>
+      <template v-slot:isQualified="{ row, $index }">
+        <el-select
+          size="mini"
+          class="content_num"
+          v-model="row.extInfo.isQualified"
+          @change="handlerSelect"
+          filterable
+          placeholder="请选择"
+          :disabled="
+            isDetails ||
+            taskObj.type == 2 ||
+            taskObj.type == 3 ||
+            taskObj.type == 6
+          "
+        >
+          <el-option
+            v-for="item in isQualifiedList"
+            :label="item.name"
+            :value="item.code"
+            :key="item.code"
+          >
+          </el-option>
+        </el-select>
+      </template>
+      <!-- :disabled="isDetails || isDisable" -->
+      <template v-slot:notType="{ row, $index }">
+        <el-select
+          v-if="row.extInfo.isQualified && row.extInfo.isQualified == 2"
+          size="mini"
+          class="content_num"
+          v-model="row.extInfo.notType"
+          filterable
+          placeholder="请选择"
+          :disabled="isDetails"
+        >
+          <el-option
+            v-for="item in notTypeList"
+            :label="item.name"
+            :value="item.code"
+            :key="item.code"
+          >
+          </el-option>
+        </el-select>
+      </template>
+      <template v-slot:taskNameHeader>
+        <div>
+          不良原因<span style="color: #f00; padding: 0 2px">/</span>处置
+        </div>
+      </template>
+      <template v-slot:taskName="{ row, $index }">
+        <div
+          v-if="
+            row.extInfo.isQualified != 1 &&
+            row.extInfo.notType &&
+            row.extInfo.notType != 5 &&
+            row.extInfo.notType != 8
+          "
+        >
+          <span v-if="isDetails">{{ row.extInfo.notReason }}</span>
+          <el-input
+            v-else
+            size="mini"
+            class="content_num"
+            v-model="row.extInfo.notReason"
+            placeholder="原因"
+          />
+        </div>
+        <div
+          v-if="![1, 2, 3, 4, 6, 9, 7].includes(Number(row.extInfo.notType))"
+        >
+          <span v-if="isDetails">{{ row.extInfo.taskName }}</span>
+          <el-select
+            v-else
+            size="mini"
+            class="content_num"
+            v-model="row.extInfo.taskId"
+            filterable
+            placeholder="请选择"
+            @change="(e) => selectName(e, $index)"
+          >
+            <el-option
+              v-for="item in stepsList"
+              :label="item.taskTypeName"
+              :value="item.taskId"
+              :key="item.taskId"
+            >
+            </el-option>
+          </el-select>
+        </div>
+      </template>
+      <!-- <template v-slot:index="{ row, $index }">
+        <div
+          class="tag_box"
+          v-if="
+            Object.prototype.hasOwnProperty.call(row, 'extInfo') &&
+            Object.prototype.hasOwnProperty.call(
+              row.extInfo,
+              'productionTimes'
+            ) &&
+            Object.prototype.hasOwnProperty.call(
+              row.extInfo.productionTimes,
+              item.currentTaskDiagram.taskId
+            )
+          "
+        >
+          {{ row.extInfo.productionTimes[item.currentTaskDiagram.taskId] }}
+        </div>
+
+        <div class="tag_box" v-if="row.isCache">缓</div>
+      </template> -->
+      <!-- 操作列 -->
+      <template v-slot:action="{ row, $index }" v-if="!isDetails">
+        <el-link
+          type="success"
+          @click="getOk($index)"
+          v-if="row.confirm == 0 || !row.confirm"
+          >确认</el-link
+        >
+        <el-link type="warning" @click="getCancle($index)" v-else>取消</el-link>
+        <el-link type="danger" @click="getDelete($index)" v-if="!isChoose"
+          >删除</el-link
+        >
+      </template>
+    </ele-pro-table>
+
+    <el-dialog
+      title="工序计算列表"
+      :visible.sync="show"
+      :before-close="cancel"
+      :close-on-click-modal="false"
+      :close-on-press-escape="false"
+      append-to-body
+      width="800px"
+    >
+      <div class="material">
+        <div class="btn_end">
+          <el-button type="primary" size="mini" @click="handAddParam"
+            >添加</el-button
+          >
+        </div>
+        <div class="content_table2">
+          <div class="head row rx-sc">
+            <div class="item ww30">工序名称</div>
+            <div class="item ww20">坯体密度</div>
+            <div class="item ww20">密度系数</div>
+            <div class="item ww20">重量</div>
+            <div class="item ww20">操作</div>
+          </div>
+
+          <div class="table">
+            <div class="tr row rx-sc" v-for="(it, idx) in paramList" :key="idx">
+              <div class="item ww30">
+                <el-select
+                  size="mini"
+                  class="content_num"
+                  filterable
+                  v-model="it.taskId"
+                  placeholder="请选择"
+                >
+                  <el-option
+                    v-for="item in stepsList"
+                    :label="item.taskTypeName"
+                    :value="item.taskId"
+                    :key="item.taskId"
+                  >
+                  </el-option>
+                </el-select>
+              </div>
+
+              <div class="item ww20">
+                <el-input
+                  class="content_num"
+                  size="mini"
+                  v-model="it.billet"
+                  type="digit"
+                  @input="changeInp(it, idx)"
+                ></el-input>
+              </div>
+
+              <div class="item ww20">
+                <el-input
+                  class="content_num"
+                  size="mini"
+                  v-model="it.density"
+                  type="digit"
+                  @input="changeInp(it, idx)"
+                ></el-input>
+              </div>
+
+              <div
+                class="item ww20"
+                v-if="idx == 0 || idx != paramList.length - 1"
+              >
+                < {{ it.CVIWeight }}
+              </div>
+
+              <div
+                class="item ww20"
+                v-if="paramList.length > 1 && idx == paramList.length - 1"
+              >
+                ≥ {{ it.CVIWeight }}
+              </div>
+
+              <div class="item ww20 rx-cc" @click="getDelete2(idx)">
+                <el-link type="danger">删除</el-link>
+              </div>
+            </div>
+          </div>
+        </div>
+
+        <div class="formula_box">计算公式: 物料重量/坯体密度*密度系数 </div>
+
+        <div class="reportWeight rx-sc">
+          物料重量: {{ weight }} ; 报工重量: {{ reportWeight }}
+        </div>
+      </div>
+
+      <template slot="footer">
+        <el-button size="mini" type="primary" @click="paramSave"
+          >保存并计算</el-button
+        >
+        <el-button size="mini" type="primary" @click="save">计算</el-button>
+        <el-button size="mini" @click="cancel">取消</el-button>
+      </template>
+    </el-dialog>
+
+    <el-dialog
+      title="处置类型"
+      v-if="dialogVisible"
+      :visible.sync="dialogVisible"
+      width="30%"
+      :before-close="handleClose"
+    >
+      <el-form ref="form" :model="form" label-width="80px">
+        <el-form-item label="处置类型">
+          <el-select
+            size="mini"
+            filterable
+            v-model="form.taskId"
+            placeholder="请选择"
+          >
+            <el-option
+              v-for="item in stepsList"
+              :label="item.taskTypeName"
+              :value="item.taskId"
+              :key="item.taskId"
+            >
+            </el-option>
+          </el-select>
+        </el-form-item>
+      </el-form>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="dialogVisible = false">取 消</el-button>
+        <el-button type="primary" @click="batchConfirm()">确 定</el-button>
+      </span>
+    </el-dialog>
+
+    <el-dialog
+      title="刻码"
+      v-if="dialogEngrave"
+      :visible.sync="dialogEngrave"
+      width="30%"
+      :before-close="handleClose"
+    >
+      <el-form ref="form" :model="form" label-width="90px">
+        <el-form-item label="刻码区间">
+          <el-input
+            size="mini"
+            type="number"
+            v-model="form.minNumber"
+            placeholder="请输入刻码最小值"
+            prop="digit"
+            style="width: 180px"
+          />
+          -
+          <el-input
+            size="mini"
+            type="number"
+            v-model="form.maxNumber"
+            placeholder="请输入刻码最大值"
+            prop="digit"
+            style="width: 180px"
+          />
+        </el-form-item>
+      </el-form>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="dialogEngrave = false">取 消</el-button>
+        <el-button type="primary" @click="batchEngraveConfirm()"
+          >确 定</el-button
+        >
+      </span>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+  import {
+    getTaskInstanceList,
+    getComputeParam,
+    saveParam
+  } from '@/api/produce/job';
+  import tabMixins from '@/mixins/tableColumnsMixin';
+  import { parameterGetByCode } from '@/api/system/dictionary-data';
+
+  export default {
+    name: 'semiProductJobBom',
+    mixins: [tabMixins],
+    props: {
+      list: {
+        type: Array,
+        default: () => []
+      },
+      equipmentList: {
+        type: Array,
+        default: () => []
+      },
+
+      item: {
+        type: Object,
+        default: () => {}
+      },
+      isDetails: {
+        type: Boolean,
+        default: false
+      },
+      singleReport: {
+        default: null
+      },
+      isQualified: {
+        type: Boolean,
+        default: false
+      },
+      title: {
+        type: String,
+        default: '报工信息'
+      },
+      isChoose: {
+        type: Boolean,
+        default: false
+      },
+      isEngrave: {
+        type: Boolean,
+        default: false
+      },
+      isDisposal: {
+        type: Boolean,
+        default: false
+      }
+    },
+
+    data() {
+      return {
+        deviceList: [],
+        newList: [],
+        stepsList: [],
+        selection: [],
+        cacheKeyUrl: 'mes_produce_jobBooking_semiProductJobBom',
+        weight: 0,
+        reportWeight: 0,
+
+        paramList: [],
+
+        resultObj: {},
+        resultIdx: 0,
+
+        show: false,
+
+        isQualifiedList: [
+          {
+            code: 1,
+            name: '合格'
+          },
+          {
+            code: 2,
+            name: '不合格'
+          }
+        ],
+
+        notTypeList: [
+          {
+            code: 1,
+            name: '返工'
+          },
+          {
+            code: 2,
+            name: '返修'
+          },
+          {
+            code: 3,
+            name: '报废'
+          },
+          {
+            code: 4,
+            name: '降级使用'
+          },
+          {
+            code: 5,
+            name: '让步接收'
+          },
+          {
+            code: 6,
+            name: '留样'
+          },
+          {
+            code: 7,
+            name: '消耗'
+          },
+          {
+            code: 8,
+            name: '回用'
+          },
+          {
+            code: 9,
+            name: '转试销'
+          }
+        ],
+        selectArr: [],
+        isDisable: false,
+        chooseData: [],
+        oldList: [],
+        form: {
+          taskId: '',
+          minNumber: '',
+          maxNumber: ''
+        },
+        dialogVisible: false,
+        dialogEngrave: false
+      };
+    },
+
+    watch: {
+      equipmentList: {
+        immediate: true,
+        deep: true,
+        handler(newVal) {
+          this.deviceList = newVal;
+          console.log(newVal, '1111121547646549896498');
+          this.changeHeatNumber();
+          this.getCodeData();
+        }
+      },
+      list: {
+        immediate: true,
+        deep: true,
+        handler(newVal) {
+          console.log('aaaaaa', newVal);
+          if (newVal.length) {
+            console.log(newVal);
+            this.newList = newVal;
+            // if(this.taskObj.type != 4){
+            this.sumweight(newVal);
+            this.sunTj();
+            // }
+          }
+        }
+      }
+    },
+    computed: {
+      taskObj() {
+        return this.$store.state.user.taskObj;
+      },
+      columns() {
+        let areaCodeColumns = {
+          width: 55,
+          show: false
+        };
+
+        let selection = {
+          width: 45,
+          show: false
+        };
+
+        if (this.isQualified) {
+          areaCodeColumns = {
+            minWidth: 120,
+            prop: 'areaCode',
+            label: '货位',
+            align: 'center',
+            showOverflowTooltip: true,
+            show: true
+          };
+        }
+
+        if (!this.isChoose) {
+          selection = {
+            width: 45,
+            type: 'selection',
+            columnKey: 'selection',
+            align: 'center',
+            fixed: 'left',
+            reserveSelection: true
+          };
+        }
+        return [
+          // selection,
+          {
+            width: 45,
+            type: 'selection',
+            columnKey: 'selection',
+            align: 'center',
+            fixed: 'left',
+            reserveSelection: true
+          },
+          {
+            width: 55,
+            type: 'index',
+            columnKey: 'index',
+            align: 'center',
+            label: '序号',
+            fixed: 'left'
+          },
+          // areaCodeColumns,
+          {
+            minWidth: 120,
+            prop: 'code',
+            label: '编码',
+            align: 'center',
+            showOverflowTooltip: true
+          },
+          {
+            minWidth: 140,
+            prop: 'name',
+            label: '名称',
+            align: 'center',
+            showOverflowTooltip: true
+          },
+          {
+            minWidth: 120,
+            prop: 'batchNo',
+            slot: 'batchNo',
+            label: '批次号',
+            align: 'center',
+            showOverflowTooltip: true
+          },
+          {
+            minWidth: 100,
+            prop: 'rootCategoryLevelId',
+            label: '类型',
+            align: 'center',
+            showOverflowTooltip: true,
+            formatter: (row) => {
+              return row.rootCategoryLevelId == 2
+                ? '在制品'
+                : row.rootCategoryLevelId == 23
+                ? '半成品'
+                : row.rootCategoryLevelId == 9
+                ? '产品'
+                : item.rootCategoryLevelId == 28
+                ? '废品'
+                : '';
+            }
+          },
+          {
+            minWidth: 120,
+            prop: 'extInfo.engrave',
+            label: '刻码',
+            slot: 'engrave',
+            align: 'center'
+          },
+          {
+            minWidth: 80,
+            prop: 'extInfo.productSequence',
+            label: '序列号',
+            align: 'center',
+            showOverflowTooltip: true
+          },
+          {
+            minWidth: 120,
+            prop: 'sendCode',
+            label: '发货条码',
+            slot: 'sendCode',
+            align: 'center'
+          },
+          {
+            minWidth: 160,
+            prop: 'materielCode',
+            label: '物料代号',
+            align: 'center',
+            slot: 'materielCode'
+          },
+          {
+            minWidth: 100,
+            prop: 'clientCode',
+            label: '客户代号',
+            align: 'center',
+            slot: 'clientCode'
+          },
+          {
+            minWidth: 150,
+            prop: 'deviceId',
+            label: '设备',
+            align: 'center',
+            slot: 'deviceId'
+          },
+          {
+            minWidth: 100,
+            prop: 'heatNumber',
+            label: '炉次号',
+            slot: 'heatNumber',
+            align: 'center'
+          },
+          {
+            width: 100,
+            prop: 'feedQuantity',
+            label: '数量',
+            slot: 'feedQuantity',
+            align: 'center'
+          },
+          {
+            width: 110,
+            prop: 'position',
+            label: '位置',
+            slot: 'position',
+            align: 'center'
+          },
+          {
+            width: 180,
+            prop: 'weight',
+            label: '上道工序重量',
+            slot: 'weight',
+            align: 'center'
+          },
+          {
+            width: 150,
+            prop: 'reportWeight',
+            label: '报工重量',
+            slot: 'reportWeight',
+            align: 'center'
+          },
+          {
+            width: 110,
+            prop: 'isQualified',
+            label: '是否合格',
+            slot: 'isQualified',
+            align: 'center'
+          },
+          {
+            width: 160,
+            prop: 'notType',
+            label: '不合格品处置类型',
+            align: 'center',
+            slot: 'notType'
+          },
+          {
+            width: 140,
+            prop: 'taskName',
+            label: '不良原因处置',
+            slot: 'taskName',
+            headerSlot: 'taskNameHeader',
+            align: 'center'
+          },
+
+          {
+            width: 80,
+            prop: 'index',
+            label: '次数',
+            align: 'center',
+            slot: 'index'
+          },
+          {
+            width: 150,
+            prop: 'modelType',
+            label: '型号',
+            slot: 'modelType',
+            align: 'center',
+            showOverflowTooltip: true
+          },
+          {
+            width: 150,
+            prop: 'specification',
+            label: '规格',
+            slot: 'specification',
+            align: 'center',
+            showOverflowTooltip: true
+          },
+          {
+            width: 150,
+            prop: 'brandNum',
+            label: '牌号',
+            slot: 'brandNum',
+            align: 'center',
+            showOverflowTooltip: true
+          },
+          {
+            columnKey: 'action',
+            label: '操作',
+            width: 120,
+            align: 'center',
+            resizable: false,
+            slot: 'action',
+            fixed: 'right',
+            showOverflowTooltip: true
+          }
+        ];
+      },
+      clientEnvironmentId() {
+        return this.$store.state.user.info.clientEnvironmentId;
+      }
+    },
+    created() {
+      this.getTaskFn();
+      this.getCodeData();
+
+      console.log(this.list, 'list1111111111111111111111111');
+    },
+
+    mounted() {
+      if (this.list.length > 0) {
+        this.oldList = this.list;
+      }
+      // this.list.forEach((item, index) => {
+      //   if (!item.extInfo.engrave) {
+      //     item.extInfo.engrave = index + 1;
+      //   }
+      // });
+      console.log(this.item, 'this.itemitemitems');
+    },
+
+    // item
+
+    methods: {
+      sunTj() {
+        console.log(this.newList, 'workReportInfo.formedNum');
+        if (this.item.workReportInfo) {
+          this.item.workReportInfo.formedNum = this.newList.filter(
+            (v) => v.extInfo.isQualified == 1
+          ).length;
+          this.item.workReportInfo.notFormedNum = this.newList.filter(
+            (v) => v.extInfo.isQualified !== 1
+          ).length;
+        }
+      },
+      sumweight(arr) {
+        console.log(arr, 6666667777);
+        let formedWeight = 0;
+        let noFormedWeight = 0;
+        arr.map((s, i) => {
+          if (s.extInfo.reportWeight) {
+            if (s.extInfo.isQualified == 1) {
+              formedWeight += s.extInfo.reportWeight * 1;
+            } else {
+              noFormedWeight += s.extInfo.reportWeight * 1;
+            }
+          } else {
+            s.extInfo.reportWeight = null;
+          }
+          this.$set(
+            this.list[i].extInfo,
+            'reportWeight',
+            s.extInfo.reportWeight
+          );
+        });
+
+        if (this.item.workReportInfo) {
+          this.item.workReportInfo.formedWeight = parseFloat(
+            formedWeight.toFixed(2)
+          );
+          this.item.workReportInfo.notFormedWeight = parseFloat(
+            noFormedWeight.toFixed(2)
+          );
+        }
+      },
+
+      async getCodeData() {
+        await parameterGetByCode({ code: 'enable_quality_plus' }).then(
+          (res) => {
+            if (res.value == '1') {
+              console.log('请求code');
+              this.isDisable = true;
+            } else {
+              this.isDisable = false;
+            }
+          }
+        );
+      },
+
+      handlerSelect() {
+        this.sunTj();
+        this.sumweight(this.list);
+      },
+
+      handleSelectionChange(data) {
+        // this.chooseData = data;
+        // console.log(data, '选择的数据');
+        // this.$emit('chooseData', data);
+        // if (data.length > 0) {
+        //   console.log(data, 'data');
+        //   data.forEach((item) => {
+        //     this.list.forEach((o) => {
+        //       if (item.id == o.id) {
+        //         console.log(11111, 'data');
+        //         o.confirm = 1;
+        //       } else {
+        //         console.log('0000000', 'data');
+        //         o.confirm = 0;
+        //       }
+        //     });
+        //   });
+        // } else {
+        //   console.log(data, 'data');
+        //   this.list.forEach((item) => {
+        //     item.confirm = 0;
+        //   });
+        // }
+      },
+
+      handleInput() {
+        console.log(12354987498498);
+        let arr = JSON.parse(JSON.stringify(this.list));
+        this.sumweight(arr);
+        this.sunTj();
+        // console.log('arr11111112222',arr)
+        // console.log('this.list33333',this.list)
+      },
+
+      batchDisposal() {
+        this.form.taskId = '';
+        this.dialogVisible = true;
+      },
+
+      batchConfirm() {
+        if (!this.form.taskId) {
+          this.$message({ message: '请选择处置类型', type: 'warning' });
+          return false;
+        }
+
+        this.list.forEach((item, index) => {
+          this.$set(this.list[index].extInfo, 'taskId', this.form.taskId);
+        });
+
+        this.$forceUpdate();
+
+        this.dialogVisible = false;
+      },
+
+      handleClose() {
+        this.dialogVisible = false;
+        this.dialogEngrave = false;
+      },
+
+      batchEngrave() {
+        this.form.minNumber = '';
+        this.form.maxNumber = '';
+        this.dialogEngrave = true;
+      },
+
+      batchEngraveConfirm() {
+        if (!this.form.minNumber) {
+          this.$message({ message: '请输入最小刻码', type: 'warning' });
+          return false;
+        }
+
+        if (!this.form.maxNumber) {
+          this.$message({ message: '请输入最大刻码', type: 'warning' });
+          return false;
+        }
+
+        if (Number(this.form.minNumber) > Number(this.form.maxNumber)) {
+          this.$message({
+            message: '最小刻码不能大于最大刻码',
+            type: 'warning'
+          });
+          return false;
+        }
+
+        this.list.forEach((item, index) => {
+          this.$set(this.list[index].extInfo, 'engrave', '');
+        });
+
+        const engraveNumber =
+          Number(this.form.maxNumber) - Number(this.form.minNumber) + 1;
+
+        console.log(engraveNumber, '刻码数量');
+
+        for (let i = 0; i < engraveNumber; i++) {
+          if (this.list.length < i) return;
+
+          if (this.list.length > i) {
+            this.$set(
+              this.list[i].extInfo,
+              'engrave',
+              Number(this.form.minNumber) + i
+            );
+          } else {
+            break;
+          }
+        }
+
+        console.log('222222222222222');
+
+        this.dialogEngrave = false;
+      },
+
+      // changeHeatNumber() {
+      //   if (this.deviceList.length > 0) {
+      //     const device = this.deviceList[0];
+      //     this.$emit('update:heatNumber', device.heatNumber);
+      //   }
+      // },
+
+      getTaskFn() {
+        getTaskInstanceList(this.item.workOrderId).then((res) => {
+          // this.stepsList = res;
+          this.stepsList = res.filter((item) => {
+            return item.taskId != -2;
+          });
+
+          console.log(this.stepsList, 'this.stepsList');
+        });
+      },
+      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() {
+        this.deviceList.forEach((f) => {
+          this.list.forEach((o, index) => {
+            if (
+              o.deviceId &&
+              f.instanceId == o.deviceId &&
+              this.deviceList.length > 1
+            ) {
+              // o.extInfo.heatNumber = f.extInfo.heatNumber;
+              this.$set(
+                this.list[index].extInfo,
+                'heatNumber',
+                f.extInfo.heatNumber
+              );
+              this.$forceUpdate();
+            } else if (this.deviceList.length == 1) {
+              o['deviceId'] = this.deviceList[0].id || f.instanceId;
+              console.log('111111', this.deviceList[0].id);
+              // o.extInfo.heatNumber = this.deviceList[0].extInfo.heatNumber;
+              // this.$set(this.list[index],'heatNumber',this.deviceList[0].extInfo.heatNumber)
+              this.$set(
+                this.list[index].extInfo,
+                'heatNumber',
+                this.deviceList[0].extInfo.heatNumber
+              );
+              this.$forceUpdate();
+            }
+          });
+        });
+      },
+
+      selectName(value, idx) {
+        const taskObj = this.stepsList.find((item) => item.taskId === value);
+        this.$set(this.list[idx].extInfo, 'taskName', taskObj.taskTypeName);
+        this.$forceUpdate();
+      },
+
+      openNumerate(row, idx) {
+        if (!row.extInfo.reportWeight) {
+          this.$message({ message: '请先输入报工重量', type: 'warning' });
+          return false;
+        }
+        this.weight = row.extInfo.weight;
+        this.reportWeight = row.extInfo.reportWeight;
+        this.resultIdx = idx;
+
+        this.show = true;
+      },
+
+      getCompute() {
+        console.log(this.item, '列表数据789');
+        if (this.item.currentTaskDiagram) {
+          getComputeParam(
+            this.item.workOrderId,
+            this.item.currentTaskDiagram.taskId
+          ).then((res) => {
+            this.paramList = [];
+            this.paramList = (res && res.paramList) || [];
+            this.paramObj = res || {};
+          });
+        }
+      },
+
+      handAddParam() {
+        this.paramList.push({
+          taskId: null,
+          taskName: null
+        });
+      },
+      getDelete(idx) {
+        this.list.splice(idx, 1);
+      },
+
+      getOk(index) {
+        this.list[index].confirm = 1;
+      },
+
+      getCancle(index) {
+        this.list[index].confirm = 0;
+      },
+
+      getDelete2(idx) {
+        this.paramList.splice(idx, 1);
+      },
+
+      changeInp(item, index) {
+        if (Number(item.billet) && Number(item.density)) {
+          this.paramList[index].CVIWeight = (
+            (Number(this.weight) / item.billet) *
+            item.density
+          ).toFixed(2);
+        }
+      },
+
+      cancel() {
+        this.show = false;
+        this.reportWeight = 0;
+        this.weight = 0;
+      },
+
+      paramSave() {
+        if (this.paramList.length > 0) {
+          let bol;
+          let _i;
+          bol = this.paramList.every((e, i) => {
+            _i = i + 1;
+            return e.taskId && e.billet && e.density;
+          });
+
+          if (!bol) {
+            this.$message({ message: `第${_i}行数据不全`, type: 'warning' });
+
+            return false;
+          }
+
+          if (this.paramList.length < 1) {
+            this.$message({
+              message: '请输入二个以上计算数据',
+              type: 'warning'
+            });
+
+            return false;
+          }
+        }
+        let param = {};
+
+        if (!Object.prototype.hasOwnProperty.call(this.paramObj, 'id')) {
+          param = {
+            paramList: this.paramList,
+            workOrderId: this.item.workOrderId,
+            taskId: this.item.currentTaskDiagram.taskId
+          };
+        } else {
+          this.paramObj.paramList = this.paramList;
+          param = this.paramObj;
+        }
+
+        saveParam(param).then((res) => {
+          this.$message({ message: '保存成功', type: 'success' });
+          this.getCompute();
+
+          this.save();
+        });
+      },
+
+      save() {
+        if (this.item?.currentTaskDiagram?.isFirstTask == 1) {
+          this.resultObj = {};
+
+          if (Number(this.reportWeight) < Number(this.paramList[0].CVIWeight)) {
+            this.resultObj = this.paramList[0];
+            this.setDataSave();
+            return false;
+          }
+
+          if (
+            Number(this.reportWeight) >=
+            this.paramList[this.paramList.length - 1].CVIWeight
+          ) {
+            this.resultObj = this.paramList[this.paramList.length - 1];
+            this.setDataSave();
+            return false;
+          }
+
+          for (let i = 1; i < this.paramList.length; i++) {
+            console.log(
+              11,
+              Number(this.paramList[i - 1].CVIWeight),
+              Number(this.reportWeight)
+            );
+            if (
+              Number(this.paramList[i - 1].CVIWeight) <
+                Number(this.reportWeight) &&
+              Number(this.reportWeight) < Number(this.paramList[i].CVIWeight)
+            ) {
+              this.resultObj = this.paramList[i];
+              break;
+            }
+          }
+          this.setDataSave();
+        }
+      },
+
+      setDataSave() {
+        this.$set(
+          this.list[this.resultIdx].extInfo,
+          'taskId',
+          this.resultObj.taskId
+        );
+        this.$set(
+          this.list[this.resultIdx].extInfo,
+          'density',
+          this.resultObj.density
+        );
+        this.$set(
+          this.list[this.resultIdx].extInfo,
+          'billet',
+          this.resultObj.billet
+        );
+        this.$set(
+          this.list[this.resultIdx].extInfo,
+          'taskName',
+          this.resultObj.taskName
+        );
+
+        this.cancel();
+      },
+      // 多选
+      // tableDataSelectChange(val) {
+      //   let arr = [];
+      //   this.selectArr = [];
+      //   if (val.length > 0) {
+      //     val.map((item) => {
+      //       arr.push(item.id || item.instanceId);
+      //     });
+      //     this.selectArr = arr;
+      //   }
+      //   console.log(arr);
+      // },
+      //批量删除
+      batchDelete() {
+        if (!this.selection.length) {
+          this.$message.warning('请至少选择一条数据');
+          return;
+        }
+        let ids = this.selection.map((item) => item.id || item.instanceId);
+        this.$confirm('确定要删除选中的报工信息吗?', '提示', {
+          type: 'warning'
+        })
+          .then(() => {
+            ids.forEach((sitem, sindex) => {
+              this.list.forEach((item, index) => {
+                let id = item.id || item.instanceId;
+                if (id == sitem) {
+                  this.list.splice(index, 1);
+                }
+              });
+            });
+          })
+          .catch(() => {});
+      }
+    },
+
+    created() {
+      console.log(this.item, '列表数据123');
+      this.getTaskFn();
+      this.getCompute();
+    }
+  };
+</script>
+
+<style lang="scss" scoped>
+  .tag_box {
+    display: inline-block;
+    padding: 1px 6px;
+    margin-right: 6px;
+    background: #e6a23c;
+    font-size: 11px;
+    color: #fff;
+    border-radius: 2px;
+  }
+
+  .content_num2 {
+    --input-background-color: #f0f8f2;
+  }
+
+  .numerate {
+    font-size: 22rpx;
+    color: #157a2c;
+    cursor: pointer;
+  }
+
+  .material {
+    width: 100%;
+  }
+
+  .btn_end {
+    text-align: right;
+    margin-bottom: 10px;
+  }
+
+  .content_table2 {
+    width: 100%;
+
+    .row {
+      width: 100%;
+
+      .item {
+        color: #404446;
+        font-size: 14px;
+        padding-left: 6px;
+      }
+
+      .color157 {
+        color: #157a2c;
+      }
+
+      .ww20 {
+        width: 20%;
+      }
+
+      .ww30 {
+        width: 30%;
+      }
+
+      .ww25 {
+        width: 25%;
+      }
+
+      .ww35 {
+        width: 35%;
+      }
+
+      .ww10 {
+        width: 10%;
+      }
+    }
+
+    .head {
+      height: 32px;
+      background: #f7f9fa;
+      border-top: 1px solid #e3e5e5;
+      border-left: 1px solid #e3e5e5;
+
+      .item {
+        height: 32px;
+        line-height: 32px;
+        border-right: 1px solid #e3e5e5;
+        box-sizing: border-box;
+      }
+    }
+
+    .tr {
+      border-top: 1px solid #e3e5e5;
+      border-left: 1px solid #e3e5e5;
+
+      .item {
+        font-size: 12px;
+        min-height: 32px;
+        display: flex;
+        align-items: center;
+        border-right: 1px solid #e3e5e5;
+        box-sizing: border-box;
+        white-space: normal;
+        word-break: break-all;
+      }
+
+      &:last-child {
+        border-bottom: 1px solid #e3e5e5;
+      }
+    }
+  }
+
+  .formula_box {
+    font-size: 12px;
+    font-style: normal;
+    font-weight: 400;
+    margin-top: 15px;
+    color: #157a2c;
+  }
+
+  .reportWeight {
+    font-size: 12px;
+    font-style: normal;
+    font-weight: 400;
+    margin-top: 15px;
+    color: #157a2c;
+  }
+
+  .content_num {
+    display: flex;
+    align-items: center;
+    padding: 2px;
+    --input-background-color: #f0f8f2;
+  }
+</style>

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

@@ -359,6 +359,7 @@
   import jobDdBom from './components/jobDdBom.vue';
 
   import semiProductJobBom from './components/semiProductJobBom.vue';
+  // import semiProductJobBom from './components/newSemiProductJobBom.vue';
   import semiProductJobBomPL from './components/semiProductJobBomPL.vue';
   import semiProductJobBomQT from './components/semiProductJobBomQT.vue';
   import batchSemiProductJobBom from './components/batchSemiProductJobBom.vue';

+ 10 - 5
src/views/produce/components/picking/fileBrowse.vue

@@ -1,5 +1,5 @@
 <template>
-  <el-dialog
+  <ele-modal
     title="详情"
     :visible.sync="visible"
     v-if="visible"
@@ -7,6 +7,7 @@
     :close-on-click-modal="false"
     :close-on-press-escape="false"
     append-to-body
+    :maxable="true"
     width="80%"
   >
     <div>
@@ -22,7 +23,7 @@
     <div slot="footer">
       <el-button @click="handleClose"> 关闭 </el-button>
     </div>
-  </el-dialog>
+  </ele-modal>
 </template>
 
 <script>
@@ -32,7 +33,6 @@
 
     data() {
       return {
-  
         fileUrl: '',
         visible: false
       };
@@ -43,8 +43,13 @@
       setFileUrl(row) {
         console.log(row);
         let file = row.storagePath[0];
-       let fileNames=file.storePath.split('/')
-        let url = window.location.origin+'/api/main/file/getFile?objectName='+file.storePath+'&fullfilename='+fileNames[fileNames.length-1]
+        let fileNames = file.storePath.split('/');
+        let url =
+          window.location.origin +
+          '/api/main/file/getFile?objectName=' +
+          file.storePath +
+          '&fullfilename=' +
+          fileNames[fileNames.length - 1];
         this.fileUrl = '/kkfile/onlinePreview?url=' + btoa(url);
         this.visible = true;
       },

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

@@ -245,11 +245,11 @@
             label: '批次号',
             align: 'center'
           },
-          {
-            prop: 'manualBatchNo',
-            label: '批次号',
-            align: 'center'
-          },
+          // {
+          //   prop: 'manualBatchNo',
+          //   label: '批次号',
+          //   align: 'center'
+          // },
           {
             prop: 'availableCountBase',
             label: '计量库存数量',

+ 2 - 2
src/views/produce/components/picking/pickingListSearch.vue

@@ -56,7 +56,7 @@
           ></el-input>
         </el-form-item>
       </el-col>
-      <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
+      <!-- <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
         <el-form-item label="批次号:" prop="manualBatchNo">
           <el-input
             clearable
@@ -64,7 +64,7 @@
             placeholder="请输入"
           ></el-input>
         </el-form-item>
-      </el-col>
+      </el-col> -->
 
       <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
         <el-form-item label="型号:" prop="modelType">

+ 3 - 2
src/views/produce/components/picking/wokePopup.vue

@@ -1,11 +1,12 @@
 <template>
-  <el-dialog
+  <ele-modal
     title="工艺文件"
     :visible.sync="visible"
     :before-close="handleClose"
     :close-on-click-modal="false"
     :close-on-press-escape="false"
     append-to-body
+    :maxable="true"
     width="80%"
   >
     <ele-pro-table
@@ -33,7 +34,7 @@
       @allSelection="allSelection"
     ></pickingList>
     <fileBrowse ref="browseRef"></fileBrowse>
-  </el-dialog>
+  </ele-modal>
 </template>
 
 <script>