Selaa lähdekoodia

Merge branch 'dev' of http://110.41.163.243:9980/kd-aiot/kd-aiot-frontend-aps into dev

LAPTOP-16IUEB3P\Lenovo 3 vuotta sitten
vanhempi
commit
c8f681c629

+ 7 - 4
src/App.vue

@@ -9,13 +9,16 @@
 
   export default {
     name: 'App',
-    created() {
+    created () {
+      console.log(
+        '我是-----------aps----应用------------------------------------'
+      );
       // 恢复主题
       this.$store.dispatch('theme/recoverTheme');
     },
     methods: {
       /* 路由切换更新浏览器标题 */
-      setDocumentTitle() {
+      setDocumentTitle () {
         updateDocumentTitle(
           this.$route,
           (key) => this.$t(key),
@@ -24,10 +27,10 @@
       }
     },
     watch: {
-      '$i18n.locale'() {
+      '$i18n.locale' () {
         this.setDocumentTitle();
       },
-      $route() {
+      $route () {
         this.setDocumentTitle();
       }
     }

+ 13 - 3
src/api/materialPlan/index.js

@@ -3,8 +3,8 @@ import request from '@/utils/request';
 /**
  * 列表
  */
-export async function getList (params) {
-  const res = await request.get('/aps/batchingplan/page', { params });
+export async function getList (data) {
+  const res = await request.post('/aps/batchingplan/page', data);
   if (res.data.code == 0) {
     return res.data.data;
   }
@@ -51,11 +51,21 @@ export async function getById (id) {
   }
   return Promise.reject(new Error(res.data.message));
 }
+/**
+ * 详情
+ */
+export async function getPlanInfoById (id) {
+  const res = await request.get(`/aps/batchingplan/getPlanInfoById/${id}`);
+  if (res.data.code == 0) {
+    return res.data.data;
+  }
+  return Promise.reject(new Error(res.data.message));
+}
 /**
  * 发布信息返显
  */
 export async function getReleaseInfoById (id) {
-  const res = await request.get(`/aps/productionplan/getReleaseInfoById/${id}`);
+  const res = await request.get(`/aps/batchingplan/getReleaseInfoById/${id}`);
   if (res.data.code == 0) {
     return res.data.data;
   }

+ 1 - 1
src/api/saleOrder/index.js

@@ -81,7 +81,7 @@ export async function getProductVersion (code) {
     `/aps/productionplan/getProductVersion/${code}`
   );
   if (res.data.code == 0) {
-    return res.data.data;
+    return res.data.data || [];
   }
   return Promise.reject(new Error(res.data.message));
 }

+ 3 - 1
src/config/setting.js

@@ -54,7 +54,9 @@ export const TOKEN_STORE_NAME = window.__POWERED_BY_QIANKUN__
   : `${SYSTEM_NAME}-access_token`;
 
 // 主题配置存储的名称
-export const THEME_STORE_NAME = 'theme';
+export const THEME_STORE_NAME = window.__POWERED_BY_QIANKUN__
+  ? 'theme'
+  : `${SYSTEM_NAME}-theme`;
 
 // i18n 缓存的名称
 export const I18N_CACHE_NAME = 'i18n-lang';

+ 0 - 1
src/main.js

@@ -69,7 +69,6 @@ export async function mount (props) {
   render(props);
 }
 
-
 export async function unmount () {
   instance.$destroy();
   instance.$el.innerHTML = '';

+ 39 - 9
src/views/materialPlan/components/detail/material.vue

@@ -1,12 +1,25 @@
 <template>
   <div class="pane-box">
     <HeaderTitle title="物料信息表"> </HeaderTitle>
-    <ele-pro-table ref="table" :columns="columns" :datasource="[{}]">
+    <ele-pro-table
+      ref="table"
+      :columns="columns"
+      :needPage="false"
+      :initLoad="false"
+      :datasource="datasource"
+    >
     </ele-pro-table>
   </div>
 </template>
 <script>
+  import { getMaterialinfo } from '@/api/productionPlan/index';
   export default {
+    props: {
+      planId: {
+        type: [String, Number],
+        default: ''
+      }
+    },
     data () {
       return {
         columns: [
@@ -16,39 +29,56 @@
             width: '80'
           },
           {
-            prop: 'name',
+            prop: 'materialCode',
             label: '编码'
           },
           {
-            prop: 'name',
+            prop: 'materialName',
             label: '名称'
           },
           {
-            prop: 'name',
+            prop: 'materialType',
             label: '类型'
           },
           {
-            prop: 'name',
+            prop: 'materialUnit',
             label: '单位'
           },
           {
-            prop: 'name',
+            prop: 'requiredNum',
             label: '需求数量'
           },
           {
-            prop: 'name',
+            prop: 'claimNum',
             label: '领用数量'
           },
           {
-            prop: 'name',
+            prop: 'inputNum',
             label: '投入数量'
           },
           {
-            prop: 'name',
+            prop: 'returnNum',
             label: '退还数量'
           }
         ]
       };
+    },
+    watch: {
+      planId: {
+        immediate: true,
+        handler (val) {
+          if (val) {
+            this.$nextTick(() => {
+              this.$refs.table.reload();
+            });
+          }
+        }
+      }
+    },
+    methods: {
+      async datasource () {
+        return getMaterialinfo(this.planId);
+      }
     }
   };
 </script>

+ 67 - 35
src/views/materialPlan/components/detail/plan.vue

@@ -2,33 +2,51 @@
   <div class="pane-box">
     <HeaderTitle title="生产信息"> </HeaderTitle>
     <el-descriptions :column="5" border>
-      <el-descriptions-item label="计划编号">计划编号</el-descriptions-item>
-      <el-descriptions-item label="物料名称">物料名称</el-descriptions-item>
-      <el-descriptions-item label="物料编码">物料编码</el-descriptions-item>
-      <el-descriptions-item label="牌号">牌号</el-descriptions-item>
-      <el-descriptions-item label="型号">型号</el-descriptions-item>
-      <el-descriptions-item label="生产版本">生产版本</el-descriptions-item>
-      <el-descriptions-item label="产线">产线</el-descriptions-item>
-      <el-descriptions-item label="工艺路线名称"
-        >工艺路线名称</el-descriptions-item
-      >
-      <el-descriptions-item label="工艺路线版本"
-        >工艺路线版本</el-descriptions-item
-      >
-      <el-descriptions-item label="生产重量">生产重量</el-descriptions-item>
-      <el-descriptions-item label="要求交付日期"
-        >要求交付日期</el-descriptions-item
-      >
-      <el-descriptions-item label="创建时间">创建时间</el-descriptions-item>
-      <el-descriptions-item label="计划备注" :span="2"
-        >计划备注</el-descriptions-item
-      >
+      <el-descriptions-item label="计划编号">{{
+        productionPlan.code
+      }}</el-descriptions-item>
+      <el-descriptions-item label="物料名称">{{
+        productionPlan.materialName
+      }}</el-descriptions-item>
+      <el-descriptions-item label="物料编码">{{
+        productionPlan.materialCode
+      }}</el-descriptions-item>
+      <el-descriptions-item label="牌号">{{
+        productionPlan.brandNo
+      }}</el-descriptions-item>
+      <el-descriptions-item label="型号">{{
+        productionPlan.model
+      }}</el-descriptions-item>
+      <el-descriptions-item label="生产版本">{{
+        productionPlan.produceVersionName
+      }}</el-descriptions-item>
+      <el-descriptions-item label="产线">{{
+        productionPlan.code
+      }}</el-descriptions-item>
+      <el-descriptions-item label="工艺路线名称">{{
+        productionPlan.routingName
+      }}</el-descriptions-item>
+      <el-descriptions-item label="工艺路线版本">{{
+        productionPlan.routingVersion
+      }}</el-descriptions-item>
+      <el-descriptions-item label="生产重量">{{
+        productionPlan.num
+      }}</el-descriptions-item>
+      <el-descriptions-item label="要求交付日期">{{
+        productionPlan.deliveryTime
+      }}</el-descriptions-item>
+      <el-descriptions-item label="创建时间">{{
+        productionPlan.createTime
+      }}</el-descriptions-item>
+      <el-descriptions-item label="计划备注" :span="2">{{
+        productionPlan.notes
+      }}</el-descriptions-item>
     </el-descriptions>
     <div class="progress-wrapper">
       <div class="progress-item">
-        <div class="label"> 以生产重量 </div>
+        <div class="label"> 生产重量 </div>
         <el-progress
-          :percentage="20"
+          :percentage="(infoData.completeWeightRatio || 0) * 100"
           color="rgba(0, 191, 191, 1)"
           :text-inside="true"
           :stroke-width="16"
@@ -37,7 +55,7 @@
       <div class="progress-item">
         <div class="label"> 已完成工单 </div>
         <el-progress
-          :percentage="20"
+          :percentage="(infoData.completeOrderRatio || 0) * 100"
           color="rgba(2, 125, 180, 1)"
           :text-inside="true"
           :stroke-width="16"
@@ -45,12 +63,18 @@
       </div>
     </div>
 
-    <ele-pro-table ref="table" :columns="columns" :datasource="[{}]">
+    <ele-pro-table ref="table" :columns="columns" :datasource="workOrderList">
     </ele-pro-table>
   </div>
 </template>
 <script>
   export default {
+    props: {
+      infoData: {
+        type: Object,
+        default: () => ({})
+      }
+    },
     data () {
       return {
         columns: [
@@ -61,47 +85,55 @@
             width: '80'
           },
           {
-            prop: 'name',
+            prop: 'code',
             label: '工单号'
           },
           {
-            prop: 'name',
+            prop: 'productNum',
             label: '生产重量'
           },
           {
-            prop: 'name',
+            prop: 'deviceCode',
             label: '设备编码'
           },
           {
-            prop: 'name',
+            prop: 'deviceName',
             label: '设备名称'
           },
           {
-            prop: 'name',
+            prop: 'planStartTime',
             label: '计划开始时间'
           },
           {
-            prop: 'name',
+            prop: 'startTime',
             label: '实际开始时间'
           },
           {
-            prop: 'name',
+            prop: 'executorName',
             label: '执行人'
           },
           {
-            prop: 'name',
+            prop: 'reportWorkTime',
             label: '报工时间'
           },
           {
-            prop: 'name',
+            prop: 'produceCycle',
             label: '生产周期'
           },
           {
-            prop: 'name',
+            prop: 'name4',
             label: '状态'
           }
         ]
       };
+    },
+    computed: {
+      productionPlan () {
+        return this.infoData.productionPlan || {};
+      },
+      workOrderList () {
+        return this.infoData.workOrderList || [];
+      }
     }
   };
 </script>

+ 12 - 4
src/views/materialPlan/components/materialPlan-search.vue

@@ -43,7 +43,6 @@
       <el-col v-bind="styleResponsive ? { lg: 5, md: 12 } : { span: 5 }">
         <el-form-item label="计划状态:" label-width="80px">
           <el-select
-            clearable
             v-model="where.statusList"
             placeholder="请选择"
             class="w100"
@@ -88,7 +87,13 @@
           </el-date-picker>
         </el-form-item>
       </el-col>
-      <el-col v-bind="styleResponsive ? { lg: 5, md: 12 } : { span: 5 }">
+      <el-col
+        v-bind="
+          styleResponsive
+            ? { lg: activeName == 'second' ? 5 : 12, md: 12 }
+            : { span: activeName == 'second' ? 5 : 12 }
+        "
+      >
         <div class="ele-form-actions">
           <el-button
             type="primary"
@@ -137,7 +142,7 @@
       activeName: {
         handler () {
           if (this.activeName) {
-            this.where.status = this.statusOpt[this.activeName][0].value;
+            this.where.statusList = this.statusOpt[this.activeName][0].value;
             this.search();
           }
         },
@@ -148,7 +153,7 @@
     methods: {
       /* 搜索 */
       search () {
-        const where = this.where;
+        const where = { ...this.where };
 
         for (const key in where) {
           if (Array.isArray(where[key]) && where[key].length) {
@@ -160,11 +165,14 @@
         delete where.deliveryTime;
         delete where.createTime;
 
+        where.statusList = where.statusList.split(',');
+
         this.$emit('search', where);
       },
       /*  重置 */
       reset () {
         this.where = { ...this.defaultWhere };
+        this.where.statusList = this.statusOpt[this.activeName][0].value;
         this.search();
       }
     }

+ 20 - 12
src/views/materialPlan/components/plan-edit-dialog.vue

@@ -9,6 +9,7 @@
   >
     <el-form
       :model="formData"
+      ref="formRef"
       label-width="120px"
       class="ele-body"
       :rules="rules"
@@ -23,11 +24,11 @@
           </el-form-item>
         </el-col>
         <!-- <el-col :span="12">
-          <el-form-item label="生产版本" prop="productVersionName">
+          <el-form-item label="生产版本" prop="produceVersionName">
             <el-input
               :disabled="!formData.materialName"
               placeholder="请选择"
-              v-model="formData.productVersionName"
+              v-model="formData.produceVersionName"
               @click.native="chooseVersion"
             ></el-input>
           </el-form-item>
@@ -137,6 +138,7 @@
           categoryId: '',
           unit: '',
           brandNo: '',
+          model: '',
           materialCode: '',
           materialName: ''
         }
@@ -156,23 +158,29 @@
         this.formData.categoryId = row.id;
         this.formData.materialCode = row.code;
         this.formData.brandNo = row.brandNum;
+        this.formData.model = row.modelType;
         this.formData.unit = row.measuringUnit;
       },
-      async confirm () {
-        const request = this.type == 'add' ? save : update;
+      confirm () {
+        this.$refs.formRef.validate(async (value) => {
+          if (value) {
+            const request = this.type == 'add' ? save : update;
 
-        if (this.type == 'add') {
-          this.formData.produceVersionId = '1684162877351866369';
-          this.formData.produceVersionName = '挤压合金生产';
-        }
-        await request(this.formData);
-        this.$message.success('保存成功!');
-        this.$emit('success');
-        this.cancel();
+            if (this.type == 'add') {
+              this.formData.produceVersionId = '1684162877351866369';
+              this.formData.produceVersionName = '挤压合金生产';
+            }
+            await request(this.formData);
+            this.$message.success('保存成功!');
+            this.$emit('success');
+            this.cancel();
+          }
+        });
       },
       cancel () {
         this.visible = false;
         this.formData = {};
+        this.$refs.formRef.resetFields();
       }
 
       // chooseVersion () {

+ 26 - 52
src/views/materialPlan/components/plan-view.vue

@@ -30,16 +30,12 @@
         {{ tableData.length }}条
       </div>
       <div class="items">
-        <span class="label">累计成型数量</span>
-        {{ sumData.formingNum }}pcs
-      </div>
-      <div class="items">
-        <span class="label">累计成型重量</span>
-        {{ sumData.formingWeight }}{{ infoData.productUnitWeight }}
+        <span class="label">累计生产重量</span>
+        {{ sumData.productNum }}{{ infoData.unit }}
       </div>
       <div class="items">
         <span class="label">设备数量</span>
-        {{ sumData.equipment }}
+        {{ sumData.equipment }}台
       </div>
       <!-- <div class="items">
         <span class="label">成型剂需求</span>
@@ -54,33 +50,20 @@
       <el-table :data="tableData">
         <el-table-column type="index" label="序号"></el-table-column>
         <el-table-column label="工单号" prop="code"></el-table-column>
-        <el-table-column label="成型数量" prop="">
-          <template v-slot="{ row, $index }">
-            <el-form-item
-              :prop="`tableData.${$index}.formingNum`"
-              :rules="rule.formingNum"
-            >
-              <el-input
-                type="number"
-                v-model.number="row.formingNum"
-              ></el-input>
-            </el-form-item>
-          </template>
-        </el-table-column>
-        <el-table-column label="成型重量" prop="">
+        <el-table-column label="生产重量" prop="" width="120">
           <template v-slot="{ row, $index }">
             <el-form-item
-              :prop="`tableData.${$index}.formingWeight`"
-              :rules="rule.formingWeight"
+              :prop="`tableData.${$index}.productNum`"
+              :rules="rule.productNum"
             >
               <el-input
                 type="number"
-                v-model.number="row.formingWeight"
+                v-model.number="row.productNum"
               ></el-input>
             </el-form-item>
           </template>
         </el-table-column>
-        <el-table-column label="开始日期" prop="">
+        <el-table-column label="开始日期" prop="" width="160">
           <template v-slot="{ row, $index }">
             <el-form-item
               :prop="`tableData.${$index}.planStartTime`"
@@ -93,29 +76,29 @@
                 :disabledDate="() => time.getTime() >= row.planCompleteDate"
                 type="date"
                 placeholder="选择日期"
-                value-format="yyyy-MM-dd HH:mm:ss"
+                value-format="yyyy-MM-dd"
               >
               </el-date-picker>
             </el-form-item>
           </template>
         </el-table-column>
-        <el-table-column label="班次" prop="">
+        <el-table-column label="班次" prop="" width="160">
           <template v-slot="{ row, $index }">
             <el-form-item
-              :prop="`tableData.${$index}.classeId`"
-              :rules="rule.classeId"
+              :prop="`tableData.${$index}.classesId`"
+              :rules="rule.classesId"
             >
               <classesSelect
                 ref="classesSelectRef"
                 :init="false"
-                v-model="row.classeId"
+                v-model="row.classesId"
                 @selfChange="(val) => handleClasseChange(val, row)"
               />
             </el-form-item>
           </template>
         </el-table-column>
         <el-table-column label="设备编码" prop="deviceCode"></el-table-column>
-        <el-table-column label="设备名称" prop="deviceName">
+        <el-table-column label="设备名称" prop="deviceName" width="160">
           <template v-slot="{ row, $index }">
             <el-input
               :value="row.deviceName"
@@ -181,16 +164,13 @@
         deleteList: [], //已保存删除项
         tableData: [],
         rule: {
-          formingNum: [
+          productNum: [
             { required: true, message: '请输入成型数量', trigger: 'blur' }
           ],
-          formingWeight: [
-            { required: true, message: '请输入成型重量', trigger: 'blur' }
-          ],
           planStartTime: [
             { required: true, message: '请选择开始日期', trigger: 'blur' }
           ],
-          classeId: [
+          classesId: [
             { required: true, message: '请选择班次', trigger: 'change' }
           ]
         },
@@ -232,19 +212,16 @@
     },
     computed: {
       sumData () {
-        let formingNum = 0;
-        let formingWeight = 0;
+        let productNum = 0;
         let equi = new Set();
         this.tableData.forEach((ele) => {
-          formingNum += +ele.formingNum || 0;
-          formingWeight += +ele.formingWeight || 0;
+          productNum += +ele.productNum || 0;
 
           equi.add(ele.deviceId);
         });
 
         return {
-          formingNum,
-          formingWeight: formingWeight.toFixed(2),
+          productNum,
           equipment: equi.size
         };
       }
@@ -297,7 +274,7 @@
                   } else {
                     this.$message.error('发布失败,请重新发布!');
                   }
-                  this.$router.go(-1);
+                  this.$router.back();
                 } catch (error) {
                   console.error(error);
                 }
@@ -341,7 +318,7 @@
       async equipmentSelect (list) {
         for (const pre of list) {
           const code = await getCode('product_order_code');
-          // classeId	班次id		false
+          // classesId	班次id		false
           // classeName	班次名称		false
           // code	工单号		false
           // deviceCode	设备编码		false
@@ -349,15 +326,14 @@
           // deviceName	设备名称		false
           // executorId	执行人id		false
           // executorName	执行人名称		false
-          // formingNum	成型数量		false
           // generativeRules	生成规则		false
           // planCompleteTime	计划完成时间		false
           // planStartTime	计划开始时间		false
-          // productionPlanCode	生产计划号		false
-          // productionPlanId	生产计划id		false
+          // batchingPlanId	生产计划号		false
+          // batchingPlanCode	生产计划id		false
           // workOrderType	工单类型
           this.tableData.push({
-            classeId: pre.classeId,
+            classesId: pre.classesId,
             code: code,
             deviceCode: pre.code,
             deviceId: pre.id,
@@ -367,10 +343,8 @@
             planCompleteTime: '', //当班下班时间,
             planStartTime: pre.planCompleteDate,
             planCompleteDate: pre.planCompleteDate,
-            formingNum: pre.formingNum,
-            formingWeight: '',
-            productionPlanId: this.infoData.id,
-            productionPlanCode: this.infoData.code,
+            batchingPlanId: this.infoData.id,
+            batchingPlanCode: this.infoData.code,
             produceVersionId: this.infoData.produceVersionId
           });
         }

+ 17 - 3
src/views/materialPlan/detail.vue

@@ -7,10 +7,12 @@
       </div>
       <el-tabs v-model="activeName">
         <el-tab-pane label="计划信息" name="plan">
-          <plan />
+          <plan :infoData="infoData" />
         </el-tab-pane>
         <el-tab-pane label="物料信息表" name="material">
-          <material />
+          <material
+            :planId="infoData.productionPlan && infoData.productionPlan.id"
+          />
         </el-tab-pane>
       </el-tabs>
     </el-card>
@@ -20,12 +22,24 @@
 <script>
   import plan from './components/detail/plan.vue';
   import material from './components/detail/material.vue';
+  import { getPlanInfoById } from '@/api/materialPlan/index';
   export default {
     components: { plan, material },
     data () {
       return {
-        activeName: 'plan'
+        activeName: 'plan',
+        infoData: {}
       };
+    },
+    created () {
+      this.getDetail();
+    },
+    methods: {
+      async getDetail () {
+        const data = await getPlanInfoById(this.$route.query.id);
+
+        this.infoData = data;
+      }
     }
   };
 </script>

+ 23 - 44
src/views/materialPlan/index.vue

@@ -120,7 +120,6 @@
             type: 'index',
             width: 55,
             align: 'center',
-            showOverflowTooltip: true,
             fixed: 'left'
           },
           {
@@ -128,30 +127,22 @@
             prop: 'code',
             action: 'code',
             label: '计划编号',
-            align: 'center',
-            showOverflowTooltip: true,
-            minWidth: 110
+            align: 'center'
           },
           {
             prop: 'materialCode',
             label: '编号',
-            align: 'center',
-            showOverflowTooltip: true,
-            minWidth: 110
+            align: 'center'
           },
           {
             prop: 'materialName',
             label: '物料名称',
-            align: 'center',
-            showOverflowTooltip: true,
-            minWidth: 110
+            align: 'center'
           },
           {
             prop: 'brandNo',
             label: '牌号',
-            align: 'center',
-            showOverflowTooltip: true,
-            minWidth: 110
+            align: 'center'
           },
           {
             prop: 'num',
@@ -159,23 +150,19 @@
               this.activeName === 'second'
                 ? '计划生产重量(KG)'
                 : '生产重量(KG)',
-            align: 'center',
-            showOverflowTooltip: true,
-            minWidth: 110
+            align: 'center'
           },
           ...(this.activeName === 'second'
             ? [
                 {
-                  prop: 'code',
+                  prop: 'releaseTime',
                   label: '已生产重量(KG)',
-                  align: 'center',
-                  showOverflowTooltip: true,
-                  minWidth: 110
+                  align: 'center'
                 }
               ]
             : []),
           // {
-          //   prop: 'productVersionName',
+          //   prop: 'produceVersionName',
           //   label: '生产版本',
           //   align: 'center',
           //   showOverflowTooltip: true,
@@ -191,18 +178,14 @@
           {
             prop: 'deliveryTime',
             label: '要求交付日期',
-            align: 'center',
-            showOverflowTooltip: true,
-            minWidth: 110
+            align: 'center'
           },
           ...(this.activeName === 'second'
             ? [
                 {
                   prop: 'completeTime',
                   label: '实际完成时间',
-                  align: 'center',
-                  showOverflowTooltip: true,
-                  minWidth: 110
+                  align: 'center'
                 }
               ]
             : []),
@@ -210,8 +193,6 @@
             prop: 'status',
             label: '状态',
             align: 'center',
-            showOverflowTooltip: true,
-            minWidth: 110,
             formatter: (row) => {
               const obj = this.statusOpt[this.activeName].find(
                 (i) => i.value == row.status
@@ -222,25 +203,19 @@
           {
             prop: 'createUserName',
             label: '创建人',
-            align: 'center',
-            showOverflowTooltip: true,
-            minWidth: 110
+            align: 'center'
           },
           {
             prop: 'createTime',
             label: '创建时间',
-            align: 'center',
-            showOverflowTooltip: true,
-            minWidth: 110
+            align: 'center'
           },
           ...(this.activeName === 'second'
             ? [
                 {
-                  prop: 'code',
+                  prop: 'releaseTime',
                   label: '发布时间',
-                  align: 'center',
-                  showOverflowTooltip: true,
-                  minWidth: 110
+                  align: 'center'
                 }
               ]
             : []),
@@ -253,8 +228,7 @@
                   align: 'center',
                   resizable: false,
                   fixed: 'right',
-                  slot: 'action',
-                  showOverflowTooltip: true
+                  slot: 'action'
                 }
               ]
             : [])
@@ -296,12 +270,17 @@
 
       /* 刷新表格 */
       reload (where = {}) {
-        this.$refs.table.reload({ page: 1, where });
+        this.$nextTick(() => {
+          this.$refs.table.reload({ page: 1, where });
+        });
       },
 
-      goDetail (row) {
+      goDetail ({ id }) {
         this.$router.push({
-          path: '/materialPlan/detail'
+          path: '/materialPlan/detail',
+          query: {
+            id
+          }
         });
       }
     }

+ 13 - 18
src/views/materialPlan/workOrderPublish.vue

@@ -9,11 +9,11 @@
         <el-descriptions-item label="计划编号">{{
           infoData.code
         }}</el-descriptions-item>
-        <el-descriptions-item label="计划类型">{{
-          planType[infoData.planType]
+        <el-descriptions-item label="物料名称">{{
+          infoData.materialName
         }}</el-descriptions-item>
-        <el-descriptions-item label="产品编码">{{
-          infoData.productCode
+        <el-descriptions-item label="物料编码">{{
+          infoData.materialCode
         }}</el-descriptions-item>
         <el-descriptions-item label="牌号">{{
           infoData.brandNo
@@ -30,20 +30,15 @@
         <el-descriptions-item label="工艺路线版本">{{
           infoData.routingVersion
         }}</el-descriptions-item>
-        <el-descriptions-item label="产品数量"
-          >{{ infoData.productNum }}PCS</el-descriptions-item
-        >
-        <el-descriptions-item label="产品重量"
-          >{{ infoData.productWeight
-          }}{{ infoData.productUnitWeight }}</el-descriptions-item
-        >
-        <el-descriptions-item label="要求成型数量"
-          >{{ infoData.requiredFormingNum }}PCS</el-descriptions-item
-        >
-        <el-descriptions-item label="要求成型重量"
-          >{{ infoData.requiredFormingWeight
-          }}{{ infoData.productUnitWeight }}</el-descriptions-item
-        >
+        <el-descriptions-item label="生产重量">{{
+          infoData.num
+        }}</el-descriptions-item>
+        <el-descriptions-item label="要求交付日期">{{
+          infoData.deliveryTime
+        }}</el-descriptions-item>
+        <el-descriptions-item label="创建时间">{{
+          infoData.createTime
+        }}</el-descriptions-item>
       </el-descriptions>
 
       <!-- <div class="rules-box">

+ 8 - 8
src/views/productionPlan/components/plan-view.vue

@@ -39,7 +39,7 @@
       </div>
       <div class="items">
         <span class="label">设备数量</span>
-        {{ sumData.equipment }}
+        {{ sumData.equipment }}
       </div>
       <!-- <div class="items">
         <span class="label">成型剂需求</span>
@@ -54,7 +54,7 @@
       <el-table :data="tableData">
         <el-table-column type="index" label="序号"></el-table-column>
         <el-table-column label="工单号" prop="code"></el-table-column>
-        <el-table-column label="成型数量" prop="">
+        <el-table-column label="成型数量" prop="" width="120">
           <template v-slot="{ row, $index }">
             <el-form-item
               :prop="`tableData.${$index}.formingNum`"
@@ -67,7 +67,7 @@
             </el-form-item>
           </template>
         </el-table-column>
-        <el-table-column label="成型重量" prop="">
+        <el-table-column label="成型重量" prop="" width="120">
           <template v-slot="{ row, $index }">
             <el-form-item
               :prop="`tableData.${$index}.formingWeight`"
@@ -80,7 +80,7 @@
             </el-form-item>
           </template>
         </el-table-column>
-        <el-table-column label="开始日期" prop="">
+        <el-table-column label="开始日期" prop="" width="160">
           <template v-slot="{ row, $index }">
             <el-form-item
               :prop="`tableData.${$index}.planStartTime`"
@@ -93,13 +93,13 @@
                 :disabledDate="() => time.getTime() >= row.planCompleteDate"
                 type="date"
                 placeholder="选择日期"
-                value-format="yyyy-MM-dd HH:mm:ss"
+                value-format="yyyy-MM-dd"
               >
               </el-date-picker>
             </el-form-item>
           </template>
         </el-table-column>
-        <el-table-column label="班次" prop="">
+        <el-table-column label="班次" prop="" width="160">
           <template v-slot="{ row, $index }">
             <el-form-item
               :prop="`tableData.${$index}.classeId`"
@@ -115,7 +115,7 @@
           </template>
         </el-table-column>
         <el-table-column label="设备编码" prop="deviceCode"></el-table-column>
-        <el-table-column label="设备名称" prop="deviceName">
+        <el-table-column label="设备名称" prop="deviceName" width="160">
           <template v-slot="{ row, $index }">
             <el-input
               :value="row.deviceName"
@@ -297,7 +297,7 @@
                   } else {
                     this.$message.error('发布失败,请重新发布!');
                   }
-                  this.$router.go(-1);
+                  this.$router.back();
                 } catch (error) {
                   console.error(error);
                 }

+ 8 - 7
src/views/productionPlan/components/productionPlan-search.vue

@@ -50,12 +50,7 @@
       </el-col>
       <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
         <el-form-item label="计划状态:" label-width="80px">
-          <el-select
-            clearable
-            v-model="where.status"
-            placeholder="请选择"
-            class="w100"
-          >
+          <el-select v-model="where.status" placeholder="请选择" class="w100">
             <el-option
               v-for="item in statusOpt[activeName]"
               :label="item.label"
@@ -149,7 +144,13 @@
           </el-date-picker>
         </el-form-item>
       </el-col>
-      <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
+      <el-col
+        v-bind="
+          styleResponsive
+            ? { lg: activeName == 'first' ? 24 : 6, md: 12 }
+            : { span: activeName == 'first' ? 24 : 6 }
+        "
+      >
         <div class="ele-form-actions">
           <el-button
             type="primary"

+ 1 - 1
src/views/productionPlan/workOrderPublish.vue

@@ -22,7 +22,7 @@
           infoData.model
         }}</el-descriptions-item>
         <el-descriptions-item label="生产版本">{{
-          infoData.productVersionName
+          infoData.produceVersionName
         }}</el-descriptions-item>
         <el-descriptions-item label="工艺路线名称">{{
           infoData.routingName

+ 301 - 296
src/views/saleOrder/components/order-search.vue

@@ -14,330 +14,335 @@
       </el-col>
       <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
         <el-form-item label="产品编码:">
-					<el-input v-model="where.productCode" placeholder="请输入"></el-input>
+          <el-input v-model="where.productCode" placeholder="请输入"></el-input>
+        </el-form-item>
+      </el-col>
+      <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
+        <el-form-item label="行号:">
+          <el-input v-model="where.lineNumber" placeholder="请输入"></el-input>
+        </el-form-item>
+      </el-col>
+      <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
+        <el-form-item label="牌号:">
+          <el-input v-model="where.brandNo" placeholder="请输入"></el-input>
+        </el-form-item>
+      </el-col>
+      <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
+        <el-form-item label="型号:">
+          <el-input v-model="where.model" placeholder="请输入"></el-input>
+        </el-form-item>
+      </el-col>
+      <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
+        <el-form-item label="订单来源:">
+          <DictSelection
+            dictName="订单来源"
+            clearable
+            v-model="where.orderSource"
+          >
+          </DictSelection>
+        </el-form-item>
+      </el-col>
+      <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
+        <el-form-item label="客户名称:">
+          <el-input
+            v-model="where.customerName"
+            placeholder="请输入"
+          ></el-input>
+        </el-form-item>
+      </el-col>
+      <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
+        <el-form-item label="订单类型:">
+          <DictSelection
+            dictName="订单类型"
+            clearable
+            v-model="where.orderType"
+          >
+          </DictSelection>
+        </el-form-item>
+      </el-col>
+      <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
+        <el-form-item label="生产状态:">
+          <el-select v-model="where.proStu" placeholder="请选择">
+            <el-option
+              v-if="chooseName == 'first'"
+              v-for="item in awaitProcuct"
+              :key="item.value"
+              :label="item.label"
+              :value="item.value"
+            >
+            </el-option>
+            <el-option
+              v-if="chooseName == 'second'"
+              v-for="item in alreadyProcuct"
+              :key="item.value"
+              :label="item.label"
+              :value="item.value"
+            >
+            </el-option>
+          </el-select>
+        </el-form-item>
+      </el-col>
+      <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
+        <el-form-item label="按单按库:">
+          <DictSelection
+            dictName="按单按库"
+            clearable
+            v-model="where.orderLibraryType"
+          >
+          </DictSelection>
+        </el-form-item>
+      </el-col>
+      <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
+        <el-form-item label="业务员:">
+          <el-input v-model="where.salesman" placeholder="请输入"></el-input>
+        </el-form-item>
+      </el-col>
+    </el-row>
+    <el-row :gutter="15">
+      <el-col v-bind="styleResponsive ? { lg: 12, md: 12 } : { span: 12 }">
+        <el-form-item label="交货日期:">
+          <el-date-picker
+            style="width: 100%"
+            v-model="time"
+            type="daterange"
+            range-separator="至"
+            start-placeholder="开始日期"
+            end-placeholder="结束日期"
+            value-format="yyyy-MM-dd HH:mm:ss"
+            :default-time="['00:00:00', '23:59:59']"
+          >
+          </el-date-picker>
+        </el-form-item>
+      </el-col>
+      <el-col v-bind="styleResponsive ? { lg: 12, md: 12 } : { span: 12 }">
+        <div class="ele-form-actions">
+          <el-button
+            type="primary"
+            icon="el-icon-search"
+            class="ele-btn-icon"
+            @click="search"
+            size="small"
+          >
+            查询
+          </el-button>
+          <el-button
+            @click="reset"
+            icon="el-icon-refresh-left"
+            size="small"
+            type="primary"
+            >重置</el-button
+          >
+        </div>
+      </el-col>
+      <el-col v-bind="styleResponsive ? { lg: 24, md: 24 } : { span: 24 }">
+        <el-form-item label-width="0px">
+          <el-button @click="goProduct">转生产计划</el-button>
+          <el-button type="primary" @click="orderRefresh">订单刷新</el-button>
+          <el-button type="success" @click="toCreate">创建订单</el-button>
+          <el-upload
+            class="avatar-uploader"
+            action="#"
+            :show-file-list="false"
+            :http-request="uploadFile"
+            :before-upload="beforeUpload"
+            :on-change="handleChange"
+          >
+            <el-button type="warning">批量导入</el-button>
+          </el-upload>
+          <el-button type="info">
+            <a
+              :href="fileUrl"
+              download="销售订单导入模板.xls"
+              class="button-link"
+              >下载模板</a
+            >
+          </el-button>
+          <el-button type="danger" @click="batchDelete">批量删除</el-button>
         </el-form-item>
       </el-col>
-	<el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
-	  <el-form-item label="行号:">
-			<el-input v-model="where.lineNumber" placeholder="请输入"></el-input>
-	  </el-form-item>
-	</el-col>
-	<el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
-	  <el-form-item label="牌号:">
-			<el-input v-model="where.brandNo" placeholder="请输入"></el-input>
-	  </el-form-item>
-	</el-col>
-	<el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
-	  <el-form-item label="型号:">
-			<el-input v-model="where.model" placeholder="请输入"></el-input>
-	  </el-form-item>
-	</el-col>
-	<el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
-	  <el-form-item label="订单来源:">
-		 <DictSelection dictName="订单来源" clearable v-model="where.orderSource">
-		 </DictSelection>
-	  </el-form-item>
-	</el-col>
-	<el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
-	  <el-form-item label="客户名称:">
-			<el-input v-model="where.customerName" placeholder="请输入"></el-input>
-	  </el-form-item>
-	</el-col>
-	<el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
-	  <el-form-item label="订单类型:">
-			<DictSelection dictName="订单类型" clearable v-model="where.orderType">
-			</DictSelection>
-	  </el-form-item>
-	</el-col>
-	<el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
-	  <el-form-item label="生产状态:">
-			<el-select v-model="where.proStu" placeholder="请选择">
-				<el-option
-				   v-if="chooseName=='first'"
-					v-for="item in awaitProcuct"
-					:key="item.value"
-					:label="item.label"
-					:value="item.value">
-				</el-option>
-				<el-option
-				   v-if="chooseName=='second'"
-					v-for="item in alreadyProcuct"
-					:key="item.value"
-					:label="item.label"
-					:value="item.value">
-				</el-option>
-			</el-select>
-	  </el-form-item>
-	</el-col>
-	  <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
-	    <el-form-item label="按单按库:">
-	  		<!-- <DictSelection dictName="按单按库" clearable v-model="where.orderLibraryType">
-	  		</DictSelection> -->
-			<el-select v-model="where.orderLibraryType" placeholder="请选择">
-				<el-option
-					v-for="item in orderTypeList"
-					:key="item.value"
-					:label="item.label"
-					:value="item.value">
-				</el-option>
-			</el-select>
-	    </el-form-item>
-	  </el-col>
-	  <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
-	    <el-form-item label="业务员:">
-	  		<el-input v-model="where.salesman" placeholder="请输入"></el-input>
-	    </el-form-item>
-	  </el-col>
     </el-row>
-	<el-row :gutter="15">
-		<el-col v-bind="styleResponsive ? { lg: 12, md: 12 } : { span: 12 }">
-		  <el-form-item label="交货日期:">
-			<el-date-picker
-				style="width: 100%;"
-				v-model="time"
-				type="daterange"
-				range-separator="至"
-				start-placeholder="开始日期"
-				end-placeholder="结束日期"
-				value-format="yyyy-MM-dd HH:mm:ss"
-				:default-time="['00:00:00', '23:59:59']"
-				>
-			</el-date-picker>
-		  </el-form-item>
-		</el-col>
-		<el-col v-bind="styleResponsive ? { lg: 12, md: 12 } : { span: 12 }">
-			<div class="ele-form-actions">
-				<el-button
-					type="primary"
-					icon="el-icon-search"
-					class="ele-btn-icon"
-					@click="search"
-					size="small"
-				>
-					查询
-				</el-button>
-				 <el-button @click="reset"
-					 icon="el-icon-refresh-left"
-					 size="small"
-					 type="primary"
-				 >重置</el-button>
-			</div>
-		</el-col>
-		<el-col v-bind="styleResponsive ? { lg: 24, md: 24 } : { span: 24 }">
-		  <el-form-item label-width="0px">
-			  <el-button @click="goProduct">转生产计划</el-button>
-			  <el-button type="primary" @click="orderRefresh">订单刷新</el-button>
-			  <el-button type="success" @click="toCreate">创建订单</el-button>
-			  <el-upload
-				class="avatar-uploader"
-				action="#"
-				:show-file-list="false"
-				:http-request="uploadFile"
-				:before-upload="beforeUpload"
-				:on-change="handleChange"
-			  >
-				<el-button type="warning">批量导入</el-button>
-			  </el-upload>
-			  <el-button type="info"> 
-				  <a :href="fileUrl" download="销售订单导入模板.xls" class="button-link">下载模板</a>
-			  </el-button>
-			  <el-button type="danger" @click="batchDelete">批量删除</el-button>
-		  </el-form-item>
-		</el-col>
-	</el-row>
-		
-		<!-- 导入异常 -->
-		<import-exception ref="importDialog"> </import-exception>
-		<!-- 创建订单 -->
-		<create-order ref="createDialog" @refresh="search"> </create-order>
-		<!-- 订单组合 -->
-		<group-order ref="groupDialog"> </group-order>
+
+    <!-- 导入异常 -->
+    <import-exception ref="importDialog"> </import-exception>
+    <!-- 创建订单 -->
+    <create-order ref="createDialog" @refresh="search"> </create-order>
+    <!-- 订单组合 -->
+    <group-order ref="groupDialog"> </group-order>
   </el-form>
 </template>
 
 <script>
-	import ImportException from '../components/import-exception.vue'
-	import CreateOrder from '../components/create-order.vue'
-	import GroupOrder from '../components/group-order.vue'
-	import { importFile } from '@/api/saleOrder';
-	import fileUrl from '@/assets/file/销售订单导入模板.xlsx';
-	import { pullSalesOrder , deleteOrder  } from '@/api/saleOrder';
-	export default {
-		props: {
-			selection:Array
-		},
-		components: {
-		  ImportException,
-		  CreateOrder,
-		  GroupOrder
-		},
-    data() {
+  import ImportException from '../components/import-exception.vue';
+  import CreateOrder from '../components/create-order.vue';
+  import GroupOrder from '../components/group-order.vue';
+  import { importFile } from '@/api/saleOrder';
+  import fileUrl from '@/assets/file/销售订单导入模板.xlsx';
+  import { pullSalesOrder, deleteOrder } from '@/api/saleOrder';
+  export default {
+    props: {
+      selection: Array
+    },
+    components: {
+      ImportException,
+      CreateOrder,
+      GroupOrder
+    },
+    data () {
       // 默认表单数据
       const defaultWhere = {
-			 code:'',
-			 productCode:'',
-			 customerName:'',
-			 lineNumber:'',
-			 model:'',
-			 brandNo:'',
-			 orderSource:0,
-			 orderType:0,
-			 proStu:'',
-			 orderLibraryType:0,
-			 salesman:'',
+        code: '',
+        productCode: '',
+        customerName: '',
+        lineNumber: '',
+        model: '',
+        brandNo: '',
+        orderSource: '',
+        orderType: '',
+        proStu: '',
+        orderLibraryType: '',
+        salesman: ''
       };
       return {
-		fileUrl,
-		// 表单数据
-		where: { ...defaultWhere },
-		time:[],
-		fileList:[],
-		awaitProcuct:[
-			{value:1,label:'待排产'}
-		],
-		alreadyProcuct:[
-			{value:0,label:'所有状态'},
-			{value:2,label:'待发布'},
-			{value:3,label:'发布失败'},
-			{value:4,label:'待生产'},
-			{value:5,label:'生产中'},
-			{value:6,label:'已完成'},
-			{value:7,label:'已延期'}
-		],
-		chooseName:'first',
-		orderTypeList:[
-			{value:0,label:'所有'},
-			{value:1,label:'按单'},
-			{value:2,label:'按库'},
-		]
+        fileUrl,
+        // 表单数据
+        where: { ...defaultWhere },
+        time: [],
+        fileList: [],
+        awaitProcuct: [{ value: 1, label: '待排产' }],
+        alreadyProcuct: [
+          { value: 0, label: '所有状态' },
+          { value: 2, label: '待发布' },
+          { value: 3, label: '发布失败' },
+          { value: 4, label: '待生产' },
+          { value: 5, label: '生产中' },
+          { value: 6, label: '已完成' },
+          { value: 7, label: '已延期' }
+        ],
+        chooseName: 'first'
       };
     },
     computed: {
       // 是否开启响应式布局
-      styleResponsive() {
+      styleResponsive () {
         return this.$store.state.theme.styleResponsive;
       }
     },
-    created(){
-    },
+    created () {},
     methods: {
-	  setData(activeName){
-		  this.chooseName = activeName
-		  this.where.proStu = ''
-	  },
+      setData (activeName) {
+        this.chooseName = activeName;
+        this.where.proStu = '';
+      },
       /* 搜索 */
-      search() {
-        if(this.time.length){
-        	this.where.startTime = this.time[0]
-        	this.where.endTime = this.time[1]
+      search () {
+        if (this.time.length) {
+          this.where.startTime = this.time[0];
+          this.where.endTime = this.time[1];
         }
         this.$emit('search', this.where);
       },
       /*  重置 */
-      reset() {
-	    this.time = []
+      reset () {
+        this.time = [];
         this.where = { ...this.defaultWhere };
         this.search();
       },
-	  toImport(){
-		  this.$refs.importDialog.open()
-	  },
-	  toCreate(){
-		  this.$refs.createDialog.open()
-	  },
-	  toGroup(){
-		 this.$refs.groupDialog.open() 
-	  },
-	  goProduct(){
-		 if(!this.selection.length){
-			 return this.$message.warning('请先勾选一个或多个订单!')
-		 }
-		 const productCode = this.selection[0].productCode
-		 for(var i=0;i<this.selection.length;i++){
-			 if(productCode != this.selection[i].productCode){
-				 return this.$message.warning('产品编码不一致!')
-			 }
-		 }
-		 const list = []
-		 this.selection.map((item) => {
-		   list.push(item.id);
-		 });
-		 this.$router.push({
-		    path: '/saleOrder/salesToProduction',
-			query:{
-				selection:JSON.stringify(list)
-			}
-		 });
-	  },
-		
-		// 刷新订单
-		orderRefresh(){
-			 pullSalesOrder().then(res=>{
-			 })
-		},
-		
-		// 点击批量删除
-		batchDelete(){
-			if(!this.selection.length){
-				return this.$message.warning('请先勾选一个或多个订单!') 
-			}
-			let ids = []
-			this.selection.map(item=>{
-				ids.push(item.id)
-			})
-			this.$confirm('此操作将永久删除所选择的订单, 是否继续?', '提示', {
-				confirmButtonText: '确定',
-				cancelButtonText: '取消',
-				type: 'warning'
-			}).then(() => {
-				deleteOrder(ids).then(res=>{
-					this.$message.success(res)
-					this.search();
-				})
-			}).catch(() => {
-				  
-			})
-		},
-		
-	  
-	   handleChange(file, fileList) {
-			this.fileList = fileList;
-			console.log(fileList)
-		},
-	  
-	  //上传限制
-	  beforeUpload (file) {
-	    const isLt10M = file.size / 1024 / 1024 < 10;
-	    if (!isLt10M) {
-	      this.$message.error('上传文件大小不能超过 10MB!');
-	    }
-	    return isLt10M;
-	  },
-	  //文件上传
-	  uploadFile (param) {
-		  let fd = new FormData();
-				this.fileList.forEach(item=>{
-					fd.append("importExcel",item.raw);
-				})
-			importFile(fd).then(res=>{
-				this.$emit('search', this.where);
-			})
-	  },
-	  
+      toImport () {
+        this.$refs.importDialog.open();
+      },
+      toCreate () {
+        this.$refs.createDialog.open();
+      },
+      toGroup () {
+        this.$refs.groupDialog.open();
+      },
+      goProduct () {
+        if (!this.selection.length) {
+          return this.$message.warning('请先勾选一个或多个订单!');
+        }
+        const productCode = this.selection[0].productCode;
+        for (var i = 0; i < this.selection.length; i++) {
+          if (productCode != this.selection[i].productCode) {
+            return this.$message.warning('产品编码不一致!');
+          }
+        }
+        const list = [];
+        this.selection.map((item) => {
+          list.push(item.id);
+        });
+        this.$router.push({
+          path: '/saleOrder/salesToProduction',
+          query: {
+            selection: JSON.stringify(list)
+          }
+        });
+      },
+
+      // 刷新订单
+      orderRefresh () {
+        pullSalesOrder().then((res) => {});
+      },
+
+      // 点击批量删除
+      batchDelete () {
+        if (!this.selection.length) {
+          return this.$message.warning('请先勾选一个或多个订单!');
+        }
+        let ids = [];
+        this.selection.map((item) => {
+          ids.push(item.id);
+        });
+        this.$confirm('此操作将永久删除所选择的订单, 是否继续?', '提示', {
+          confirmButtonText: '确定',
+          cancelButtonText: '取消',
+          type: 'warning'
+        })
+          .then(() => {
+            deleteOrder(ids).then((res) => {
+              this.$message.success(res);
+              this.search();
+            });
+          })
+          .catch(() => {});
+      },
+
+      handleChange (file, fileList) {
+        this.fileList = fileList;
+        console.log(fileList);
+      },
+
+      //上传限制
+      beforeUpload (file) {
+        const isLt10M = file.size / 1024 / 1024 < 10;
+        if (!isLt10M) {
+          this.$message.error('上传文件大小不能超过 10MB!');
+        }
+        return isLt10M;
+      },
+      //文件上传
+      uploadFile (param) {
+        let fd = new FormData();
+        this.fileList.forEach((item) => {
+          fd.append('importExcel', item.raw);
+        });
+        importFile(fd).then((res) => {
+          this.$emit('search', this.where);
+        });
+      }
     }
   };
 </script>
 <style lang="scss" scoped>
-    .ele-form-actions{
-		display:flex;
-		align-items: center;
-		justify-content: flex-end;
-	}
-	.avatar-uploader{
-		display: inline-block;
-		margin: 0 10px;
-	}
-	.button-link{
-		color: #fff;
-	}
-</style>
+  .ele-form-actions {
+    display: flex;
+    align-items: center;
+    justify-content: flex-end;
+  }
+  .avatar-uploader {
+    display: inline-block;
+    margin: 0 10px;
+  }
+  .button-link {
+    color: #fff;
+  }
+</style>

+ 1 - 1
src/views/saleOrder/components/plan-submit.vue

@@ -33,7 +33,7 @@
         </el-descriptions-item>
         <el-descriptions-item>
           <template slot="label"> 生产版本 </template>
-          {{ info.productVersionName }}
+          {{ info.produceVersionName }}
         </el-descriptions-item>
         <el-descriptions-item>
           <template slot="label"> 产品数量 </template>