瀏覽代碼

组装单,拆卸单页面字段对接

sunlupeng 7 月之前
父節點
當前提交
a1fc31be8b

+ 8 - 0
src/api/goodsManage.js

@@ -25,6 +25,14 @@ export function goodsList(query) {
   })
 }
 
+export function listGoods(query) {
+  return request({
+    url: '/product/list',
+    method: 'get',
+    params: query
+  })
+}
+
 export function removeItem(query) {
   return request({
     url: '/product/remove',

+ 41 - 20
src/views/stock/assembly/assembly.vue

@@ -3,25 +3,31 @@
     <!-- 查询和其他操作 -->
     <div class="filter-container">
       <el-date-picker v-model="listQuery.startDate" value-format="yyyy-MM-dd" type="date" placeholder="开始日期"
-        style="width:200px">
+      class="filter-item" style="width:200px">
       </el-date-picker>
       <el-date-picker v-model="listQuery.endDate" value-format="yyyy-MM-dd" type="date" placeholder="结束日期"
-        style="width:200px">
+      class="filter-item" style="width:200px">
       </el-date-picker>
-      <el-select v-model="listQuery.warehouseId" clearable placeholder="请选择仓库" class="filter-item" style="width: 200px">
+      <el-select v-model="listQuery.warehouseId" clearable placeholder="仓库" class="filter-item" style="width: 200px">
         <el-option :key="item.id" v-for="item in warehouseList" :label="item.warehouseName" :value="item.id">
         </el-option>
       </el-select>
-      <el-select v-model="listQuery.isRunFinish" clearable placeholder="请选择状态" class="filter-item" style="width: 200px">
+      <el-select v-model="listQuery.addHandlerId" clearable filterable placeholder="经手人" class="filter-item" style="width: 200px">
+          <el-option :key="item.loginId" v-for="item in userSelsctList" :label="item.deptName+'_'+item.userName" :value="item.loginId">
+          </el-option>
+      </el-select>
+      <el-select v-model="listQuery.isRunFinish" clearable placeholder="组装状态" class="filter-item" style="width: 200px">
         <el-option :key="item.type" v-for="item in typeList" :label="item.name" :value="item.type">
         </el-option>
       </el-select>
+      <el-input v-model="listQuery.assembleProductName" clearable placeholder="组装商品名称" class="filter-item" style="width: 200px;" >
+      </el-input>
       <el-button class="filter-item" type="primary" v-waves icon="el-icon-search" @click="handleFilter">查找</el-button>
       <el-button class="filter-item" v-waves icon="el-icon-refresh" @click="resetQuery">重置</el-button>
       <el-button class="filter-item" type="primary" @click="handleCreate" icon="el-icon-plus">添加</el-button>
       <!-- <el-button class="filter-item" :loading="downloadLoading" v-waves icon="el-icon-download"
         @click="handleDownload">导出</el-button> -->
-      <!-- <el-button class="filter-item" type="success" icon="el-icon-takeaway-box" @click="executeAll">批量入库</el-button> -->
+      <!-- <el-button class="filter-item" type="success" icon="el-icon-takeaway-box" @click="executeAll">批量组装</el-button> -->
       <el-button class="filter-item" type="warning" icon="el-icon-delete" @click="delAll">批量删除</el-button>
     </div>
 
@@ -31,30 +37,32 @@
       <el-table-column type="selection" width="55px" align="center"> </el-table-column>
       <el-table-column type="index" label="序号" header-align="center" align="center">
       </el-table-column>
-      <el-table-column align="center" min-width="150px" label="入库单号">
+      <el-table-column align="center" min-width="150px" label="包装/组装单号">
         <template slot-scope="scope">
           <router-link :to="{ name: 'assemblyDetail', params: { id: scope.row.id } }">
             <div style="color: #337ab7;cursor: pointer;">{{ scope.row.serialCode }}</div>
           </router-link>
         </template>
       </el-table-column>
-      <el-table-column align="center" min-width="100px" label="入库时间" prop="serialDate">
-      </el-table-column>
-      <el-table-column align="center" min-width="100px" label="供应商" prop="supplierName">
+      <el-table-column align="center" min-width="100px" label="组装时间" prop="serialDate">
       </el-table-column>
       <el-table-column align="center" min-width="100px" label="仓库" prop="warehouseName">
       </el-table-column>
       <el-table-column align="center" min-width="100px" label="经手人" prop="addHandlerName">
       </el-table-column>
-      <el-table-column align="center" min-width="100px" label="入库状态">
+      <el-table-column align="center" min-width="200px" label="组装商品名称" prop="assembleProductName">
+      </el-table-column>
+      <el-table-column align="center" min-width="200px" label="组装原因" prop="remarks">
+      </el-table-column>
+      <el-table-column align="center" min-width="100px" label="组装状态">
         <template slot-scope="props">
-            <span v-if="props.row.isRunFinish == '0'" style="color: #67C23A;font-weight: bold;">已入库</span>
-            <span v-if="props.row.isRunFinish == '1'" style="color: #E6A23C;font-weight: bold;">待入库</span>
+            <span v-if="props.row.isRunFinish == '0'" style="color: #67C23A;font-weight: bold;">已组装</span>
+            <span v-if="props.row.isRunFinish == '1'" style="color: #E6A23C;font-weight: bold;">待组装</span>
           </template>
       </el-table-column>
       <el-table-column align="center" label="操作" width="240px" class-name="small-padding fixed-width">
         <template slot-scope="scope">
-          <el-button v-if="scope.row.isRunFinish == '1'" type="success" size="small" @click="handleExecute(scope.row)">入库</el-button>
+          <el-button v-if="scope.row.isRunFinish == '1'" type="success" size="small" @click="handleExecute(scope.row)">组装</el-button>
           <el-button type="primary" size="small" @click="handleUpdate(scope.row)">编辑</el-button>
           <el-button type="danger" size="small" @click="handleDelete(scope.row)">删除</el-button>
         </template>
@@ -73,6 +81,7 @@
 <script>
 import { listAssembly, deleteAssembly, executeAssembly } from "@/api/assembly";
 import { warehouseList } from "@/api/warehouse";
+import { allUserList } from "@/api/public";
 import waves from "@/directive/waves"; // 水波纹指令
 
 export default {
@@ -81,14 +90,15 @@ export default {
     return {
       downloadLoading: false,
       warehouseList: [],
+      userSelsctList:[],
       typeList: [
         {
           type: '0',
-          name: "已入库",
+          name: "已组装",
         },
         {
           type: '1',
-          name: "待入库",
+          name: "待组装",
         },
       ],
       list: [
@@ -104,12 +114,15 @@ export default {
         startDate: '',
         endDate: '',
         warehouseId: '',
+        addHandlerId: '',
         isRunFinish: '',
+        assembleProductName:'',
       },
     }
   },
   created() {
     this.getStoreList();
+    this.getAllUserList(); 
     this.getList();
   },
   methods: {
@@ -119,6 +132,12 @@ export default {
         this.warehouseList = response.data.data;
       }).catch(() => { });
     },
+    /** 获取人员列表数据 */
+    getAllUserList() {
+      allUserList().then(response => {
+        this.userSelsctList = response.data.data;
+      }).catch(() => { });
+    },
     /** 重置按钮操作 */
     resetQuery() {
       this.listQuery = {
@@ -127,7 +146,9 @@ export default {
         startDate: '',
         endDate: '',
         warehouseId: '',
+        addHandlerId: '',
         isRunFinish: '',
+        assembleProductName:'',
       },
         this.getList()
     },
@@ -181,7 +202,7 @@ export default {
       })
     },
     handleExecute(row) {
-      this.$confirm('确认入库吗?', '提示', {
+      this.$confirm('确认组装吗?', '提示', {
         confirmButtonText: '确定',
         cancelButtonText: '取消',
         type: 'warning'
@@ -189,7 +210,7 @@ export default {
         executeAssembly({ ids: row.id }).then(response => {
           this.$notify({
             title: '成功',
-            message: '入库成功',
+            message: '组装成功',
             type: 'success',
             duration: 2000
           })
@@ -200,7 +221,7 @@ export default {
     executeAll() {
       const length = this.multipleSelection.length;
       if (length > 0) {
-        this.$confirm("确认入库吗?", "提示", {
+        this.$confirm("确认组装吗?", "提示", {
           confirmButtonText: "确定",
           cancelButtonText: "取消",
           type: "warning",
@@ -212,7 +233,7 @@ export default {
           executeAssembly({ ids: ids }).then(() => {
             this.$notify({
               title: "成功",
-              message: "入库成功",
+              message: "组装成功",
               type: "success",
               duration: 2000,
             });
@@ -222,7 +243,7 @@ export default {
       } else {
         this.$notify({
           title: "提示",
-          message: "请选择要入库的信息!",
+          message: "请选择要组装的信息!",
           type: "warning",
         });
       }

+ 154 - 172
src/views/stock/assembly/assemblyAdd.vue

@@ -1,99 +1,96 @@
 <template>
     <div class="app-container">
         <el-form ref="dataForm" :model="dataForm" :rules="rules" label-width="120px" inline>
-            <h3>通用入库单</h3>
-            <!-- <el-form-item label="名称" prop="name">
-                <el-input v-model="dataForm.name" :minlength="2" :maxlength="20" clearable
-                    placeholder="请输入名称" style="width:200px" :disabled="type === 'detail'"></el-input>
-            </el-form-item> -->
-            <el-form-item label="入库时间" prop="serialDate">
+            <h3>组装单</h3>
+            <el-form-item label="组装时间" prop="serialDate">
                 <el-date-picker v-model="dataForm.serialDate" value-format="yyyy-MM-dd HH:mm:ss" type="datetime"
                     placeholder="选择日期时间" style="width:200px" :disabled="type === 'detail'">
                 </el-date-picker>
             </el-form-item>
-            <el-form-item label="供应商" prop="supplierId">
-                <el-select v-model="dataForm.supplierId" clearable placeholder="请选择" style="width: 200px;" :disabled="type === 'detail'">
-                    <el-option :key="item.id" v-for="item in supplierList" :label="item.businessName" :value="item.id">
+            <el-form-item label="仓库" prop="warehouseId">
+                <el-select v-model="dataForm.warehouseId" clearable placeholder="请选择" style="width: 200px;"
+                    :disabled="type === 'detail'">
+                    <el-option :key="item.id" v-for="item in warehouseList" :label="item.warehouseName"
+                        :value="item.id">
                     </el-option>
                 </el-select>
             </el-form-item>
-            <el-form-item label="仓库" prop="warehouseId">
-                <el-select v-model="dataForm.warehouseId" clearable placeholder="请选择" style="width: 200px;" :disabled="type === 'detail'">
-                    <el-option :key="item.id" v-for="item in warehouseList" :label="item.warehouseName" :value="item.id">
+            <el-form-item label="经手人" prop="addHandlerId">
+                <el-select v-model="dataForm.addHandlerId" clearable filterable placeholder="请选择" style="width: 200px"
+                    :disabled="type === 'detail'">
+                    <el-option :key="item.loginId" v-for="item in userSelsctList"
+                        :label="item.deptName + '_' + item.userName" :value="item.loginId">
                     </el-option>
                 </el-select>
             </el-form-item>
-            <el-form-item label="经手人" prop="addHandlerId">
-                <el-select v-model="dataForm.addHandlerId" clearable filterable placeholder="请选择" style="width: 200px" :disabled="type === 'detail'">
-                    <el-option :key="item.loginId" v-for="item in recipientsList" :label="item.deptName+'_'+item.userName" :value="item.loginId">
+            <el-form-item label="组装商品" prop="assembleProductId">
+                <el-select v-model="dataForm.assembleProductId" clearable placeholder="请选择" style="width: 200px;"
+                    :disabled="type === 'detail'">
+                    <el-option :key="item.id" v-for="item in assembleProducList" :label="item.productName"
+                        :value="item.id">
                     </el-option>
                 </el-select>
             </el-form-item>
-            
-
-            <!-- <el-form-item label="采购说明" prop="desc">
-                <el-input style="width:535px" v-model="dataForm.desc" :maxlength="120"
-                    type="textarea" :disabled="type === 'detail'" :autosize="{ minRows: 1, maxRows: 4 }"
-                    placeholder="请输入采购说明 最大120字"></el-input>
-            </el-form-item> -->
-            <el-form-item label="附件:" prop="fileIds">
-                <el-upload :limit="1" :action="fileUrl" :file-list="dataForm.fileList" :on-success="handleFileSuccess"
-                    :before-upload="beforeUploadFile" :on-remove="handleRemove">
-                    <el-button size="small" type="primary" :disabled="type === 'detail'">点击上传</el-button>
-                </el-upload>
+            <el-form-item label="组装量" prop="updateNumber">
+                <el-input-number v-model="dataForm.updateNumber" :min="1" :max="10000"
+                    placeholder="请输入组装量" style="width:200px" :disabled="type === 'detail'"></el-input-number>
+            </el-form-item>
+            <el-form-item label="组装原因" prop="remarks">
+                <el-input style="width:535px" v-model="dataForm.remarks" :maxlength="120" type="textarea"
+                    :disabled="type === 'detail'" :autosize="{ minRows: 1, maxRows: 4 }"
+                    placeholder="请输入组装原因 最大120字"></el-input>
             </el-form-item>
             <div class="mx">
-        <h3>入库明细</h3>
-        <el-button size="small" type="primary" v-if="type !== 'detail'"
-          @click="handleSelectGoods" icon="el-icon-plus">商品/物料</el-button>
-      </div>
-      <el-table size="small" :data="dataForm.inventoryEntryInfos" border :cell-style="{ textAlign: 'center' }"
-            :header-cell-style="{ textAlign: 'center' }" style="width: 100%">
-            <el-table-column label="商品编号">
-              <template slot-scope="scope">
-                {{ scope.row.productCode }}
-              </template>
-            </el-table-column>
-            <el-table-column label="商品名称">
-              <template slot-scope="scope">
-                {{ scope.row.productName }}
-              </template>
-            </el-table-column>
-            <el-table-column label="单价(¥)">
-              <template slot-scope="scope">
-                {{ scope.row.createPrice.toFixed(2) }}
-              </template>
-            </el-table-column>
-            <el-table-column label="库存数量">
-              <template slot-scope="scope">
-                {{ scope.row.createProductNumber }}
-              </template>
-            </el-table-column>
-            <el-table-column label="入库数量">
-              <template slot-scope="scope">
-                <el-form-item v-if="type !== 'detail'" :prop="'inventoryEntryInfos.'+scope.$index+'.updateNumber'" :rules="{ required: true, message: '入库数量不能为空', trigger: 'blur' }" class="tableFormItem">
-                    <el-input-number v-model="scope.row.updateNumber" @change="handleChange(scope.row)" size="small" :min="1" :max="10000" label="入库数量"></el-input-number>
-                </el-form-item>
-                <span v-else>{{ scope.row.updateNumber }}</span>
-              </template>
-            </el-table-column>
-            <el-table-column label="合计(¥)">
-              <template slot-scope="scope">
-                {{ scope.row.sumPrice.toFixed(2) }}
-              </template>
-            </el-table-column>
-            <!-- <el-table-column label="备注">
-              <template slot-scope="scope">
-                <el-input :maxlength="99" v-model="scope.row.remark" :disabled="type === 'detail'" />
-              </template>
-            </el-table-column> -->
-            <el-table-column label="操作" width="150" v-if="type !== 'detail'">
-              <template slot-scope="scope">
-                <el-button size="mini" type="danger"
-                  @click="dataForm.inventoryEntryInfos.splice(scope.$index, 1)">删除</el-button>
-              </template>
-            </el-table-column>
-          </el-table>
+                <h3>子商品清单</h3>
+                <el-button size="small" type="primary" v-if="type !== 'detail'" @click="handleSelectGoods('inventoryOutInfos')"
+                    icon="el-icon-plus">商品/物料</el-button>
+            </div>
+            <el-table size="small" :data="dataForm.inventoryOutInfos" border :cell-style="{ textAlign: 'center' }"
+                :header-cell-style="{ textAlign: 'center' }" style="width: 100%">
+                <el-table-column label="商品编号">
+                    <template slot-scope="scope">
+                        {{ scope.row.productCode }}
+                    </template>
+                </el-table-column>
+                <el-table-column label="商品名称">
+                    <template slot-scope="scope">
+                        {{ scope.row.productName }}
+                    </template>
+                </el-table-column>
+                <el-table-column label="单价(¥)">
+                    <template slot-scope="scope">
+                        {{ scope.row.createPrice.toFixed(2) }}
+                    </template>
+                </el-table-column>
+                <el-table-column label="库存数量">
+                    <template slot-scope="scope">
+                        {{ scope.row.createProductNumber }}
+                    </template>
+                </el-table-column>
+                <el-table-column label="消耗">
+                    <template slot-scope="scope">
+                        <el-form-item v-if="type !== 'detail'"
+                            :prop="'inventoryOutInfos.' + scope.$index + '.updateNumber'"
+                            :rules="{ required: true, message: '消耗不能为空', trigger: 'blur' }" class="tableFormItem">
+                            <el-input-number v-model="scope.row.updateNumber" @change="handleChange(scope.row)"
+                                size="small" :min="1" :max="10000"></el-input-number>
+                        </el-form-item>
+                        <span v-else>{{ scope.row.updateNumber }}</span>
+                    </template>
+                </el-table-column>
+                <el-table-column label="备注">
+                    <template slot-scope="scope">
+                        <el-input v-if="type !== 'detail'" :maxlength="99" v-model="scope.row.remarks" />
+                        <span v-else>{{ scope.row.remarks }}</span>
+                    </template>
+                </el-table-column>
+                <el-table-column label="操作" width="150" v-if="type !== 'detail'">
+                    <template slot-scope="scope">
+                        <el-button size="mini" type="danger"
+                            @click="dataForm.inventoryOutInfos.splice(scope.$index, 1)">删除</el-button>
+                    </template>
+                </el-table-column>
+            </el-table>
         </el-form>
         <div class="footer">
             <el-button type="primary" @click="submitForm" v-if="type !== 'detail'">保存
@@ -105,7 +102,7 @@
 </template>
 <script>
 import { createAssembly, updateAssembly, readAssembly } from "@/api/assembly";
-import { supplierList } from "@/api/supplier";
+import { listGoods } from "@/api/goodsManage";
 import { warehouseList } from "@/api/warehouse";
 import { allUserList } from "@/api/public";
 import waves from "@/directive/waves"; // 水波纹指令
@@ -114,32 +111,42 @@ export default {
     directives: { waves },
     data() {
         return {
-            fileUrl:this.upLoadUrl,
-            recipientsList:[],
-            supplierList: [],
+            userSelsctList: [],
+            assembleProducList: [],
             warehouseList: [],
             id: '',
             type: '',
             /** 表单*/
             dataForm: {
-                serialDate:'',
-                supplierId:undefined,
-                warehouseId:undefined,
-                addHandlerId:undefined,
-                fileIds:undefined,
-                fileList: [],
-                inventoryEntryInfos: []
+                serialDate: '',
+                warehouseId: undefined,
+                updateUserName: undefined,
+                addHandlerId: undefined,
+                assembleProductId: undefined,
+                updateNumber: 1,
+                remarks: undefined,
+                inventoryEntryInfos: [],
+                inventoryOutInfos: []
             },
             rules: {
                 serialDate: [
-                    { required: true, message: '请选择入库时间', trigger: 'blur' }
+                    { required: true, message: '请选择组装时间', trigger: 'blur' }
                 ],
                 warehouseId: [
                     { required: true, message: '请选择仓库', trigger: 'blur' }
                 ],
+                remarks: [
+                    { required: true, message: '请填写组装原因', trigger: 'blur' }
+                ],
                 addHandlerId: [
                     { required: true, message: '请选择经手人', trigger: 'blur' }
                 ],
+                assembleProductId: [
+                    { required: true, message: '请选择组装商品', trigger: 'blur' }
+                ],
+                updateNumber: [
+                    { required: true, message: '请输入组装数量', trigger: 'blur' }
+                ],
             },
         }
     },
@@ -149,13 +156,15 @@ export default {
             handler(newVal) {
                 if (this.$route.name === 'assemblyAdd') {
                     this.dataForm = {
-                        serialDate:undefined,
-                        supplierId:undefined,
-                        warehouseId:undefined,
-                        addHandlerId:undefined,
-                        fileIds:undefined,
-                        fileList: [],
-                        inventoryEntryInfos: []
+                        serialDate: '',
+                        warehouseId: undefined,
+                        updateUserName: undefined,
+                        addHandlerId: undefined,
+                        assembleProductId: undefined,
+                        updateNumber: 1,
+                        remarks: undefined,
+                        inventoryEntryInfos: [],
+                        inventoryOutInfos: []
                     }
                 } else if (this.$route.name === 'assemblyDetail') {
                     this.type = 'detail'
@@ -168,27 +177,27 @@ export default {
         }
     },
     mounted() {
-        this.getSupplierList();
-        this.getStoreList(); 
-        this.getAllUserList(); 
+        this.getAssembleProducList();
+        this.getStoreList();
+        this.getAllUserList();
     },
     methods: {
-        /** 获取供应商列表数据 */
-        getSupplierList(){
-            supplierList().then(response => {
-                this.supplierList = response.data.data;
+        /** 获取组装商品列表数据 */
+        getAssembleProducList() {
+            listGoods().then(response => {
+                this.assembleProducList = response.data.data;
             }).catch(() => { });
         },
         /** 获取仓库列表数据 */
         getStoreList() {
             warehouseList().then(response => {
                 this.warehouseList = response.data.data;
-            }).catch(() => {});
+            }).catch(() => { });
         },
         /** 获取人员列表数据 */
         getAllUserList() {
             allUserList().then(response => {
-                this.recipientsList = response.data.data;
+                this.userSelsctList = response.data.data;
             }).catch(() => { });
         },
         /** 获取详情页面数据 */
@@ -198,39 +207,47 @@ export default {
                 dataForm.inventoryEntryInfos = dataForm.inventoryEntryInfos == null ? [] : dataForm.inventoryEntryInfos
                 dataForm.inventoryOutInfos = dataForm.inventoryOutInfos == null ? [] : dataForm.inventoryOutInfos
                 this.dataForm = dataForm;
-            }).catch(() => {})
+            }).catch(() => { })
         },
-         // 选择商品
-        async handleSelectGoods() {
+        // 选择商品
+        async handleSelectGoods(val) {
             if (!this.dataForm.warehouseId) {
                 this.$message.error('请先选择仓库!')
                 return
-            }else{
-                console.log(this.dataForm.inventoryEntryInfos)
-                let selectedIds = this.dataForm.inventoryEntryInfos.map(item => item.id);
+            } else {
+                let selectedIds = val=='inventoryEntryInfos' ? this.dataForm.inventoryEntryInfos.map(item => item.productId) : this.dataForm.inventoryOutInfos.map(item => item.productId);
                 const Goods = await this.$EnPickerGoods({
                     // goodsApi: '/warehouse-entry/info/inventory',
                     selectedIds: selectedIds,
                     goodsApiParams: { warehouseId: this.dataForm.warehouseId }
                 })
                 if (!Goods.length) return
-                const inventoryEntryInfos = Goods.map(item => {
-                    item.updateNumber = 1
-                    item.sumPrice = item.createPrice * 1
-                    return item
-                })
-                this.dataForm.inventoryEntryInfos = this.dataForm.inventoryEntryInfos && this.dataForm.inventoryEntryInfos.length ? this.dataForm.inventoryEntryInfos.concat(inventoryEntryInfos) : this.dataForm.inventoryEntryInfos = inventoryEntryInfos
+                if(val=='inventoryEntryInfos'){
+                    const inventoryEntryInfos = Goods.map(item => {
+                        item.updateNumber = 1
+                        item.sumPrice = item.createPrice * 1
+                        return item
+                    })
+                    this.dataForm.inventoryEntryInfos = this.dataForm.inventoryEntryInfos && this.dataForm.inventoryEntryInfos.length ? this.dataForm.inventoryEntryInfos.concat(inventoryEntryInfos) : this.dataForm.inventoryEntryInfos = inventoryEntryInfos
+                }else{
+                    const inventoryOutInfos = Goods.map(item => {
+                        item.updateNumber = 1
+                        item.sumPrice = item.createPrice * 1
+                        return item
+                    })
+                    this.dataForm.inventoryOutInfos = this.dataForm.inventoryOutInfos && this.dataForm.inventoryOutInfos.length ? this.dataForm.inventoryOutInfos.concat(inventoryOutInfos) : this.dataForm.inventoryOutInfos = inventoryOutInfos
+                }
             }
-            
+
         },
-        submitForm(){
+        submitForm() {
             this.$refs["dataForm"].validate((valid) => {
                 if (valid) {
-                    if(this.dataForm.inventoryEntryInfos.length == 0){
+                    if (this.dataForm.inventoryEntryInfos.length == 0 || this.dataForm.inventoryOutInfos.length == 0) {
                         this.$message.error('请选择商品/物料!')
                         return
-                    }else{
-                        if(this.id){
+                    } else {
+                        if (this.id) {
                             updateAssembly(this.dataForm).then(() => {
                                 this.$notify({
                                     title: '成功',
@@ -240,7 +257,7 @@ export default {
                                 })
                                 this.roBack();
                             })
-                        }else{
+                        } else {
                             createAssembly(this.dataForm).then(() => {
                                 this.$notify({
                                     title: "成功",
@@ -251,7 +268,7 @@ export default {
                                 this.roBack();
                             })
                         }
-                    }   
+                    }
                 }
             });
         },
@@ -272,64 +289,29 @@ export default {
                 }
             })
             // this.$router.push({ name: 'assembly' })
-        },
-        handleRemove(file, fileList) {
-        console.log(file, fileList);
-        let fileIds = [];
-        for (let i in fileList) {
-            let id = fileList[i].response.data.id;
-            fileIds.push(id);
         }
-        this.dataForm.fileIds = fileIds.join(",");
-        },
-        beforeUploadFile(file) {
-        console.log(file);
-        const size = file.size / 1024 / 1024;
-        console.log(size);
-        if (size > 10) {
-            this.$message.error("文件大小不能超过10MB!");
-            return false;
-        }
-        },
-        handleFileSuccess(res, file, fileList) {
-        console.log(file, fileList);
-        console.log("------", "==========");
-        console.log("res = ", res);
-
-        let fileIds = [];
-        for (let i in fileList) {
-            let response = fileList[i].response;
-            if (response.errno && response.errno != "0") {
-            this.$message.error("该文件上传失败,已被移除,请重新上传!");
-            // 上传失败移除该 file 对象
-            fileList.splice(i, 1);
-            } else {
-            let id = fileList[i].response.data.id;
-            fileIds.push(id);
-            }
-        }
-        this.dataForm.fileIds = fileIds.join(",");
-        },
     }
 }
 </script>
 <style>
 /** 底部步骤 */
 .footer {
-  width: 100%;
-  padding: 10px;
-  bottom: 0px;
-  text-align: center;
-  z-index: 999;
+    width: 100%;
+    padding: 10px;
+    bottom: 0px;
+    text-align: center;
+    z-index: 999;
 }
+
 .mx {
-  display: flex;
-  align-items: center;
-  justify-content: space-between;
+    display: flex;
+    align-items: center;
+    justify-content: space-between;
 }
+
 /** 表格中输入框样式 */
 .tableFormItem {
-  width: 100%;
-  margin-bottom: 0;
+    width: 100%;
+    margin-bottom: 0;
 }
 </style>

+ 41 - 20
src/views/stock/disassembly/disassembly.vue

@@ -3,25 +3,31 @@
     <!-- 查询和其他操作 -->
     <div class="filter-container">
       <el-date-picker v-model="listQuery.startDate" value-format="yyyy-MM-dd" type="date" placeholder="开始日期"
-        style="width:200px">
+      class="filter-item" style="width:200px">
       </el-date-picker>
       <el-date-picker v-model="listQuery.endDate" value-format="yyyy-MM-dd" type="date" placeholder="结束日期"
-        style="width:200px">
+      class="filter-item" style="width:200px">
       </el-date-picker>
-      <el-select v-model="listQuery.warehouseId" clearable placeholder="请选择仓库" class="filter-item" style="width: 200px">
+      <el-select v-model="listQuery.warehouseId" clearable placeholder="仓库" class="filter-item" style="width: 200px">
         <el-option :key="item.id" v-for="item in warehouseList" :label="item.warehouseName" :value="item.id">
         </el-option>
       </el-select>
-      <el-select v-model="listQuery.isRunFinish" clearable placeholder="请选择状态" class="filter-item" style="width: 200px">
+      <el-select v-model="listQuery.addHandlerId" clearable filterable placeholder="经手人" class="filter-item" style="width: 200px">
+          <el-option :key="item.loginId" v-for="item in userSelsctList" :label="item.deptName+'_'+item.userName" :value="item.loginId">
+          </el-option>
+      </el-select>
+      <el-select v-model="listQuery.isRunFinish" clearable placeholder="拆卸状态" class="filter-item" style="width: 200px">
         <el-option :key="item.type" v-for="item in typeList" :label="item.name" :value="item.type">
         </el-option>
       </el-select>
+      <el-input v-model="listQuery.assembleProductName" clearable placeholder="拆卸商品名称" class="filter-item" style="width: 200px;" >
+      </el-input>
       <el-button class="filter-item" type="primary" v-waves icon="el-icon-search" @click="handleFilter">查找</el-button>
       <el-button class="filter-item" v-waves icon="el-icon-refresh" @click="resetQuery">重置</el-button>
       <el-button class="filter-item" type="primary" @click="handleCreate" icon="el-icon-plus">添加</el-button>
       <!-- <el-button class="filter-item" :loading="downloadLoading" v-waves icon="el-icon-download"
         @click="handleDownload">导出</el-button> -->
-      <!-- <el-button class="filter-item" type="success" icon="el-icon-takeaway-box" @click="executeAll">批量入库</el-button> -->
+      <!-- <el-button class="filter-item" type="success" icon="el-icon-takeaway-box" @click="executeAll">批量拆卸</el-button> -->
       <el-button class="filter-item" type="warning" icon="el-icon-delete" @click="delAll">批量删除</el-button>
     </div>
 
@@ -31,30 +37,32 @@
       <el-table-column type="selection" width="55px" align="center"> </el-table-column>
       <el-table-column type="index" label="序号" header-align="center" align="center">
       </el-table-column>
-      <el-table-column align="center" min-width="150px" label="入库单号">
+      <el-table-column align="center" min-width="150px" label="包装/拆卸单号">
         <template slot-scope="scope">
           <router-link :to="{ name: 'disassemblyDetail', params: { id: scope.row.id } }">
             <div style="color: #337ab7;cursor: pointer;">{{ scope.row.serialCode }}</div>
           </router-link>
         </template>
       </el-table-column>
-      <el-table-column align="center" min-width="100px" label="入库时间" prop="serialDate">
-      </el-table-column>
-      <el-table-column align="center" min-width="100px" label="供应商" prop="supplierName">
+      <el-table-column align="center" min-width="100px" label="拆卸时间" prop="serialDate">
       </el-table-column>
       <el-table-column align="center" min-width="100px" label="仓库" prop="warehouseName">
       </el-table-column>
       <el-table-column align="center" min-width="100px" label="经手人" prop="addHandlerName">
       </el-table-column>
-      <el-table-column align="center" min-width="100px" label="入库状态">
+      <el-table-column align="center" min-width="200px" label="拆卸商品名称" prop="assembleProductName">
+      </el-table-column>
+      <el-table-column align="center" min-width="200px" label="拆卸原因" prop="remarks">
+      </el-table-column>
+      <el-table-column align="center" min-width="100px" label="拆卸状态">
         <template slot-scope="props">
-            <span v-if="props.row.isRunFinish == '0'" style="color: #67C23A;font-weight: bold;">已入库</span>
-            <span v-if="props.row.isRunFinish == '1'" style="color: #E6A23C;font-weight: bold;">待入库</span>
+            <span v-if="props.row.isRunFinish == '0'" style="color: #67C23A;font-weight: bold;">已拆卸</span>
+            <span v-if="props.row.isRunFinish == '1'" style="color: #E6A23C;font-weight: bold;">待拆卸</span>
           </template>
       </el-table-column>
       <el-table-column align="center" label="操作" width="240px" class-name="small-padding fixed-width">
         <template slot-scope="scope">
-          <el-button v-if="scope.row.isRunFinish == '1'" type="success" size="small" @click="handleExecute(scope.row)">入库</el-button>
+          <el-button v-if="scope.row.isRunFinish == '1'" type="success" size="small" @click="handleExecute(scope.row)">拆卸</el-button>
           <el-button type="primary" size="small" @click="handleUpdate(scope.row)">编辑</el-button>
           <el-button type="danger" size="small" @click="handleDelete(scope.row)">删除</el-button>
         </template>
@@ -73,6 +81,7 @@
 <script>
 import { listDisassembly, deleteDisassembly, executeDisassembly } from "@/api/disassembly";
 import { warehouseList } from "@/api/warehouse";
+import { allUserList } from "@/api/public";
 import waves from "@/directive/waves"; // 水波纹指令
 
 export default {
@@ -81,14 +90,15 @@ export default {
     return {
       downloadLoading: false,
       warehouseList: [],
+      userSelsctList:[],
       typeList: [
         {
           type: '0',
-          name: "已入库",
+          name: "已拆卸",
         },
         {
           type: '1',
-          name: "待入库",
+          name: "待拆卸",
         },
       ],
       list: [
@@ -104,12 +114,15 @@ export default {
         startDate: '',
         endDate: '',
         warehouseId: '',
+        addHandlerId: '',
         isRunFinish: '',
+        assembleProductName:'',
       },
     }
   },
   created() {
     this.getStoreList();
+    this.getAllUserList(); 
     this.getList();
   },
   methods: {
@@ -119,6 +132,12 @@ export default {
         this.warehouseList = response.data.data;
       }).catch(() => { });
     },
+    /** 获取人员列表数据 */
+    getAllUserList() {
+      allUserList().then(response => {
+        this.userSelsctList = response.data.data;
+      }).catch(() => { });
+    },
     /** 重置按钮操作 */
     resetQuery() {
       this.listQuery = {
@@ -127,7 +146,9 @@ export default {
         startDate: '',
         endDate: '',
         warehouseId: '',
+        addHandlerId: '',
         isRunFinish: '',
+        assembleProductName:'',
       },
         this.getList()
     },
@@ -181,7 +202,7 @@ export default {
       })
     },
     handleExecute(row) {
-      this.$confirm('确认入库吗?', '提示', {
+      this.$confirm('确认拆卸吗?', '提示', {
         confirmButtonText: '确定',
         cancelButtonText: '取消',
         type: 'warning'
@@ -189,7 +210,7 @@ export default {
         executeDisassembly({ ids: row.id }).then(response => {
           this.$notify({
             title: '成功',
-            message: '入库成功',
+            message: '拆卸成功',
             type: 'success',
             duration: 2000
           })
@@ -200,7 +221,7 @@ export default {
     executeAll() {
       const length = this.multipleSelection.length;
       if (length > 0) {
-        this.$confirm("确认入库吗?", "提示", {
+        this.$confirm("确认拆卸吗?", "提示", {
           confirmButtonText: "确定",
           cancelButtonText: "取消",
           type: "warning",
@@ -212,7 +233,7 @@ export default {
           executeDisassembly({ ids: ids }).then(() => {
             this.$notify({
               title: "成功",
-              message: "入库成功",
+              message: "拆卸成功",
               type: "success",
               duration: 2000,
             });
@@ -222,7 +243,7 @@ export default {
       } else {
         this.$notify({
           title: "提示",
-          message: "请选择要入库的信息!",
+          message: "请选择要拆卸的信息!",
           type: "warning",
         });
       }

+ 154 - 172
src/views/stock/disassembly/disassemblyAdd.vue

@@ -1,99 +1,96 @@
 <template>
     <div class="app-container">
         <el-form ref="dataForm" :model="dataForm" :rules="rules" label-width="120px" inline>
-            <h3>通用入库单</h3>
-            <!-- <el-form-item label="名称" prop="name">
-                <el-input v-model="dataForm.name" :minlength="2" :maxlength="20" clearable
-                    placeholder="请输入名称" style="width:200px" :disabled="type === 'detail'"></el-input>
-            </el-form-item> -->
-            <el-form-item label="入库时间" prop="serialDate">
+            <h3>拆卸单</h3>
+            <el-form-item label="拆卸时间" prop="serialDate">
                 <el-date-picker v-model="dataForm.serialDate" value-format="yyyy-MM-dd HH:mm:ss" type="datetime"
                     placeholder="选择日期时间" style="width:200px" :disabled="type === 'detail'">
                 </el-date-picker>
             </el-form-item>
-            <el-form-item label="供应商" prop="supplierId">
-                <el-select v-model="dataForm.supplierId" clearable placeholder="请选择" style="width: 200px;" :disabled="type === 'detail'">
-                    <el-option :key="item.id" v-for="item in supplierList" :label="item.businessName" :value="item.id">
+            <el-form-item label="仓库" prop="warehouseId">
+                <el-select v-model="dataForm.warehouseId" clearable placeholder="请选择" style="width: 200px;"
+                    :disabled="type === 'detail'">
+                    <el-option :key="item.id" v-for="item in warehouseList" :label="item.warehouseName"
+                        :value="item.id">
                     </el-option>
                 </el-select>
             </el-form-item>
-            <el-form-item label="仓库" prop="warehouseId">
-                <el-select v-model="dataForm.warehouseId" clearable placeholder="请选择" style="width: 200px;" :disabled="type === 'detail'">
-                    <el-option :key="item.id" v-for="item in warehouseList" :label="item.warehouseName" :value="item.id">
+            <el-form-item label="经手人" prop="addHandlerId">
+                <el-select v-model="dataForm.addHandlerId" clearable filterable placeholder="请选择" style="width: 200px"
+                    :disabled="type === 'detail'">
+                    <el-option :key="item.loginId" v-for="item in userSelsctList"
+                        :label="item.deptName + '_' + item.userName" :value="item.loginId">
                     </el-option>
                 </el-select>
             </el-form-item>
-            <el-form-item label="经手人" prop="addHandlerId">
-                <el-select v-model="dataForm.addHandlerId" clearable filterable placeholder="请选择" style="width: 200px" :disabled="type === 'detail'">
-                    <el-option :key="item.loginId" v-for="item in recipientsList" :label="item.deptName+'_'+item.userName" :value="item.loginId">
+            <el-form-item label="拆卸商品" prop="assembleProductId">
+                <el-select v-model="dataForm.assembleProductId" clearable placeholder="请选择" style="width: 200px;"
+                    :disabled="type === 'detail'">
+                    <el-option :key="item.id" v-for="item in assembleProducList" :label="item.productName"
+                        :value="item.id">
                     </el-option>
                 </el-select>
             </el-form-item>
-            
-
-            <!-- <el-form-item label="采购说明" prop="desc">
-                <el-input style="width:535px" v-model="dataForm.desc" :maxlength="120"
-                    type="textarea" :disabled="type === 'detail'" :autosize="{ minRows: 1, maxRows: 4 }"
-                    placeholder="请输入采购说明 最大120字"></el-input>
-            </el-form-item> -->
-            <el-form-item label="附件:" prop="fileIds">
-                <el-upload :limit="1" :action="fileUrl" :file-list="dataForm.fileList" :on-success="handleFileSuccess"
-                    :before-upload="beforeUploadFile" :on-remove="handleRemove">
-                    <el-button size="small" type="primary" :disabled="type === 'detail'">点击上传</el-button>
-                </el-upload>
+            <el-form-item label="拆卸量" prop="updateNumber">
+                <el-input-number v-model="dataForm.updateNumber" :min="1" :max="10000"
+                    placeholder="请输入拆卸量" style="width:200px" :disabled="type === 'detail'"></el-input-number>
+            </el-form-item>
+            <el-form-item label="拆卸原因" prop="remarks">
+                <el-input style="width:535px" v-model="dataForm.remarks" :maxlength="120" type="textarea"
+                    :disabled="type === 'detail'" :autosize="{ minRows: 1, maxRows: 4 }"
+                    placeholder="请输入拆卸原因 最大120字"></el-input>
             </el-form-item>
             <div class="mx">
-        <h3>入库明细</h3>
-        <el-button size="small" type="primary" v-if="type !== 'detail'"
-          @click="handleSelectGoods" icon="el-icon-plus">商品/物料</el-button>
-      </div>
-      <el-table size="small" :data="dataForm.inventoryEntryInfos" border :cell-style="{ textAlign: 'center' }"
-            :header-cell-style="{ textAlign: 'center' }" style="width: 100%">
-            <el-table-column label="商品编号">
-              <template slot-scope="scope">
-                {{ scope.row.productCode }}
-              </template>
-            </el-table-column>
-            <el-table-column label="商品名称">
-              <template slot-scope="scope">
-                {{ scope.row.productName }}
-              </template>
-            </el-table-column>
-            <el-table-column label="单价(¥)">
-              <template slot-scope="scope">
-                {{ scope.row.createPrice.toFixed(2) }}
-              </template>
-            </el-table-column>
-            <el-table-column label="库存数量">
-              <template slot-scope="scope">
-                {{ scope.row.createProductNumber }}
-              </template>
-            </el-table-column>
-            <el-table-column label="入库数量">
-              <template slot-scope="scope">
-                <el-form-item v-if="type !== 'detail'" :prop="'inventoryEntryInfos.'+scope.$index+'.updateNumber'" :rules="{ required: true, message: '入库数量不能为空', trigger: 'blur' }" class="tableFormItem">
-                    <el-input-number v-model="scope.row.updateNumber" @change="handleChange(scope.row)" size="small" :min="1" :max="10000" label="入库数量"></el-input-number>
-                </el-form-item>
-                <span v-else>{{ scope.row.updateNumber }}</span>
-              </template>
-            </el-table-column>
-            <el-table-column label="合计(¥)">
-              <template slot-scope="scope">
-                {{ scope.row.sumPrice.toFixed(2) }}
-              </template>
-            </el-table-column>
-            <!-- <el-table-column label="备注">
-              <template slot-scope="scope">
-                <el-input :maxlength="99" v-model="scope.row.remark" :disabled="type === 'detail'" />
-              </template>
-            </el-table-column> -->
-            <el-table-column label="操作" width="150" v-if="type !== 'detail'">
-              <template slot-scope="scope">
-                <el-button size="mini" type="danger"
-                  @click="dataForm.inventoryEntryInfos.splice(scope.$index, 1)">删除</el-button>
-              </template>
-            </el-table-column>
-          </el-table>
+                <h3>子商品清单</h3>
+                <el-button size="small" type="primary" v-if="type !== 'detail'" @click="handleSelectGoods('inventoryEntryInfos')"
+                    icon="el-icon-plus">商品/物料</el-button>
+            </div>
+            <el-table size="small" :data="dataForm.inventoryEntryInfos" border :cell-style="{ textAlign: 'center' }"
+                :header-cell-style="{ textAlign: 'center' }" style="width: 100%">
+                <el-table-column label="商品编号">
+                    <template slot-scope="scope">
+                        {{ scope.row.productCode }}
+                    </template>
+                </el-table-column>
+                <el-table-column label="商品名称">
+                    <template slot-scope="scope">
+                        {{ scope.row.productName }}
+                    </template>
+                </el-table-column>
+                <el-table-column label="单价(¥)">
+                    <template slot-scope="scope">
+                        {{ scope.row.createPrice.toFixed(2) }}
+                    </template>
+                </el-table-column>
+                <el-table-column label="库存数量">
+                    <template slot-scope="scope">
+                        {{ scope.row.createProductNumber }}
+                    </template>
+                </el-table-column>
+                <el-table-column label="消耗">
+                    <template slot-scope="scope">
+                        <el-form-item v-if="type !== 'detail'"
+                            :prop="'inventoryEntryInfos.' + scope.$index + '.updateNumber'"
+                            :rules="{ required: true, message: '消耗不能为空', trigger: 'blur' }" class="tableFormItem">
+                            <el-input-number v-model="scope.row.updateNumber" @change="handleChange(scope.row)"
+                                size="small" :min="1" :max="10000"></el-input-number>
+                        </el-form-item>
+                        <span v-else>{{ scope.row.updateNumber }}</span>
+                    </template>
+                </el-table-column>
+                <el-table-column label="备注">
+                    <template slot-scope="scope">
+                        <el-input v-if="type !== 'detail'" :maxlength="99" v-model="scope.row.remarks" />
+                        <span v-else>{{ scope.row.remarks }}</span>
+                    </template>
+                </el-table-column>
+                <el-table-column label="操作" width="150" v-if="type !== 'detail'">
+                    <template slot-scope="scope">
+                        <el-button size="mini" type="danger"
+                            @click="dataForm.inventoryEntryInfos.splice(scope.$index, 1)">删除</el-button>
+                    </template>
+                </el-table-column>
+            </el-table>
         </el-form>
         <div class="footer">
             <el-button type="primary" @click="submitForm" v-if="type !== 'detail'">保存
@@ -105,7 +102,7 @@
 </template>
 <script>
 import { createDisassembly, updateDisassembly, readDisassembly } from "@/api/disassembly";
-import { supplierList } from "@/api/supplier";
+import { listGoods } from "@/api/goodsManage";
 import { warehouseList } from "@/api/warehouse";
 import { allUserList } from "@/api/public";
 import waves from "@/directive/waves"; // 水波纹指令
@@ -114,32 +111,42 @@ export default {
     directives: { waves },
     data() {
         return {
-            fileUrl:this.upLoadUrl,
-            recipientsList:[],
-            supplierList: [],
+            userSelsctList: [],
+            assembleProducList: [],
             warehouseList: [],
             id: '',
             type: '',
             /** 表单*/
             dataForm: {
-                serialDate:'',
-                supplierId:undefined,
-                warehouseId:undefined,
-                addHandlerId:undefined,
-                fileIds:undefined,
-                fileList: [],
-                inventoryEntryInfos: []
+                serialDate: '',
+                warehouseId: undefined,
+                updateUserName: undefined,
+                addHandlerId: undefined,
+                assembleProductId: undefined,
+                updateNumber: 1,
+                remarks: undefined,
+                inventoryEntryInfos: [],
+                inventoryOutInfos: []
             },
             rules: {
                 serialDate: [
-                    { required: true, message: '请选择入库时间', trigger: 'blur' }
+                    { required: true, message: '请选择拆卸时间', trigger: 'blur' }
                 ],
                 warehouseId: [
                     { required: true, message: '请选择仓库', trigger: 'blur' }
                 ],
+                remarks: [
+                    { required: true, message: '请填写拆卸原因', trigger: 'blur' }
+                ],
                 addHandlerId: [
                     { required: true, message: '请选择经手人', trigger: 'blur' }
                 ],
+                assembleProductId: [
+                    { required: true, message: '请选择拆卸商品', trigger: 'blur' }
+                ],
+                updateNumber: [
+                    { required: true, message: '请输入拆卸数量', trigger: 'blur' }
+                ],
             },
         }
     },
@@ -149,13 +156,15 @@ export default {
             handler(newVal) {
                 if (this.$route.name === 'disassemblyAdd') {
                     this.dataForm = {
-                        serialDate:undefined,
-                        supplierId:undefined,
-                        warehouseId:undefined,
-                        addHandlerId:undefined,
-                        fileIds:undefined,
-                        fileList: [],
-                        inventoryEntryInfos: []
+                        serialDate: '',
+                        warehouseId: undefined,
+                        updateUserName: undefined,
+                        addHandlerId: undefined,
+                        assembleProductId: undefined,
+                        updateNumber: 1,
+                        remarks: undefined,
+                        inventoryEntryInfos: [],
+                        inventoryOutInfos: []
                     }
                 } else if (this.$route.name === 'disassemblyDetail') {
                     this.type = 'detail'
@@ -168,27 +177,27 @@ export default {
         }
     },
     mounted() {
-        this.getSupplierList();
-        this.getStoreList(); 
-        this.getAllUserList(); 
+        this.getAssembleProducList();
+        this.getStoreList();
+        this.getAllUserList();
     },
     methods: {
-        /** 获取供应商列表数据 */
-        getSupplierList(){
-            supplierList().then(response => {
-                this.supplierList = response.data.data;
+        /** 获取拆卸商品列表数据 */
+        getAssembleProducList() {
+            listGoods().then(response => {
+                this.assembleProducList = response.data.data;
             }).catch(() => { });
         },
         /** 获取仓库列表数据 */
         getStoreList() {
             warehouseList().then(response => {
                 this.warehouseList = response.data.data;
-            }).catch(() => {});
+            }).catch(() => { });
         },
         /** 获取人员列表数据 */
         getAllUserList() {
             allUserList().then(response => {
-                this.recipientsList = response.data.data;
+                this.userSelsctList = response.data.data;
             }).catch(() => { });
         },
         /** 获取详情页面数据 */
@@ -198,39 +207,47 @@ export default {
                 dataForm.inventoryEntryInfos = dataForm.inventoryEntryInfos == null ? [] : dataForm.inventoryEntryInfos
                 dataForm.inventoryOutInfos = dataForm.inventoryOutInfos == null ? [] : dataForm.inventoryOutInfos
                 this.dataForm = dataForm;
-            }).catch(() => {})
+            }).catch(() => { })
         },
-         // 选择商品
-        async handleSelectGoods() {
+        // 选择商品
+        async handleSelectGoods(val) {
             if (!this.dataForm.warehouseId) {
                 this.$message.error('请先选择仓库!')
                 return
-            }else{
-                console.log(this.dataForm.inventoryEntryInfos)
-                let selectedIds = this.dataForm.inventoryEntryInfos.map(item => item.id);
+            } else {
+                let selectedIds = val=='inventoryEntryInfos' ? this.dataForm.inventoryEntryInfos.map(item => item.productId) : this.dataForm.inventoryOutInfos.map(item => item.productId);
                 const Goods = await this.$EnPickerGoods({
                     // goodsApi: '/warehouse-entry/info/inventory',
                     selectedIds: selectedIds,
                     goodsApiParams: { warehouseId: this.dataForm.warehouseId }
                 })
                 if (!Goods.length) return
-                const inventoryEntryInfos = Goods.map(item => {
-                    item.updateNumber = 1
-                    item.sumPrice = item.createPrice * 1
-                    return item
-                })
-                this.dataForm.inventoryEntryInfos = this.dataForm.inventoryEntryInfos && this.dataForm.inventoryEntryInfos.length ? this.dataForm.inventoryEntryInfos.concat(inventoryEntryInfos) : this.dataForm.inventoryEntryInfos = inventoryEntryInfos
+                if(val=='inventoryEntryInfos'){
+                    const inventoryEntryInfos = Goods.map(item => {
+                        item.updateNumber = 1
+                        item.sumPrice = item.createPrice * 1
+                        return item
+                    })
+                    this.dataForm.inventoryEntryInfos = this.dataForm.inventoryEntryInfos && this.dataForm.inventoryEntryInfos.length ? this.dataForm.inventoryEntryInfos.concat(inventoryEntryInfos) : this.dataForm.inventoryEntryInfos = inventoryEntryInfos
+                }else{
+                    const inventoryOutInfos = Goods.map(item => {
+                        item.updateNumber = 1
+                        item.sumPrice = item.createPrice * 1
+                        return item
+                    })
+                    this.dataForm.inventoryOutInfos = this.dataForm.inventoryOutInfos && this.dataForm.inventoryOutInfos.length ? this.dataForm.inventoryOutInfos.concat(inventoryOutInfos) : this.dataForm.inventoryOutInfos = inventoryOutInfos
+                }
             }
-            
+
         },
-        submitForm(){
+        submitForm() {
             this.$refs["dataForm"].validate((valid) => {
                 if (valid) {
-                    if(this.dataForm.inventoryEntryInfos.length == 0){
+                    if (this.dataForm.inventoryEntryInfos.length == 0 || this.dataForm.inventoryOutInfos.length == 0) {
                         this.$message.error('请选择商品/物料!')
                         return
-                    }else{
-                        if(this.id){
+                    } else {
+                        if (this.id) {
                             updateDisassembly(this.dataForm).then(() => {
                                 this.$notify({
                                     title: '成功',
@@ -240,7 +257,7 @@ export default {
                                 })
                                 this.roBack();
                             })
-                        }else{
+                        } else {
                             createDisassembly(this.dataForm).then(() => {
                                 this.$notify({
                                     title: "成功",
@@ -251,7 +268,7 @@ export default {
                                 this.roBack();
                             })
                         }
-                    }   
+                    }
                 }
             });
         },
@@ -272,64 +289,29 @@ export default {
                 }
             })
             // this.$router.push({ name: 'disassembly' })
-        },
-        handleRemove(file, fileList) {
-        console.log(file, fileList);
-        let fileIds = [];
-        for (let i in fileList) {
-            let id = fileList[i].response.data.id;
-            fileIds.push(id);
         }
-        this.dataForm.fileIds = fileIds.join(",");
-        },
-        beforeUploadFile(file) {
-        console.log(file);
-        const size = file.size / 1024 / 1024;
-        console.log(size);
-        if (size > 10) {
-            this.$message.error("文件大小不能超过10MB!");
-            return false;
-        }
-        },
-        handleFileSuccess(res, file, fileList) {
-        console.log(file, fileList);
-        console.log("------", "==========");
-        console.log("res = ", res);
-
-        let fileIds = [];
-        for (let i in fileList) {
-            let response = fileList[i].response;
-            if (response.errno && response.errno != "0") {
-            this.$message.error("该文件上传失败,已被移除,请重新上传!");
-            // 上传失败移除该 file 对象
-            fileList.splice(i, 1);
-            } else {
-            let id = fileList[i].response.data.id;
-            fileIds.push(id);
-            }
-        }
-        this.dataForm.fileIds = fileIds.join(",");
-        },
     }
 }
 </script>
 <style>
 /** 底部步骤 */
 .footer {
-  width: 100%;
-  padding: 10px;
-  bottom: 0px;
-  text-align: center;
-  z-index: 999;
+    width: 100%;
+    padding: 10px;
+    bottom: 0px;
+    text-align: center;
+    z-index: 999;
 }
+
 .mx {
-  display: flex;
-  align-items: center;
-  justify-content: space-between;
+    display: flex;
+    align-items: center;
+    justify-content: space-between;
 }
+
 /** 表格中输入框样式 */
 .tableFormItem {
-  width: 100%;
-  margin-bottom: 0;
+    width: 100%;
+    margin-bottom: 0;
 }
 </style>