Explorar o código

生产总订单/材料请购单-料品列表-多选

jingbb hai 8 meses
pai
achega
ffdca5075f

+ 29 - 13
src/views/production/Popup/inventoryPopup.vue

@@ -55,7 +55,7 @@
             id='sonList1'
             :loading="loading"
             :columns="columns"
-            rowKey="rowIndex"
+            :row-key="record => record.ID"
             :dataSource="dataSource"
             :pagination="pagination"
             :scroll="{ x: 800, y: 300 }"
@@ -88,6 +88,7 @@
             queryParam:{},
             selectedRowKeys:[],
             selectedRows:[],
+            ExecutionStatus:'',
             dataSource:[],
             loading:false,
             pagination:{
@@ -168,18 +169,23 @@
                 this.queryParam ={}
             },
             handleOk(){
-                if(this.selectedRowKeys.length!==1){
-                    this.$message.warning('请选择一条数据!')
-                }else{
-                    this.$emit('okData',this.selectedRows[0],this.record)
+                console.log(this.selectedRows,this.selectedRowKeys);
+                if(this.ExecutionStatus=='add'){
+                    this.$emit('okDataMultiple',this.selectedRows)
                     this.handleCancel()
+                }else{
+                    if(this.selectedRowKeys.length!==1){
+                        this.$message.warning('请选择一条数据!')
+                    }else{
+                        this.$emit('okData',this.selectedRows[0],this.record)
+                        this.handleCancel()
+                    }
                 }
             },
-            getData(data){
+            getData(data,state){
                 this.loading = true 
+                this.ExecutionStatus = state
                 this.queryParam.Org = data
-                this.selectedRowKeys = []
-                this.selectedRows = []
                 getAction('/production/safetyStock/selectItemMaster',this.queryParam).then(res=>{
                         if(res.success){
                           this.dataSource = res.result.records
@@ -197,14 +203,14 @@
                 })
             },
             searchQuery(){
-                this.getData(this.queryParam.Org)
+                this.getData(this.queryParam.Org,this.ExecutionStatus)
             },
             searchReset(){
                 this.queryParam.className = ''
                 this.queryParam.classCode = ''
                 this.queryParam.name = ''
                 this.queryParam.code = ''
-                this.getData(this.queryParam.Org)
+                this.getData(this.queryParam.Org,this.ExecutionStatus)
             },
             searchClassName(){
                 this.$refs.ClassNamePopup.visible = true
@@ -216,11 +222,21 @@
             handleTableChange(pagination, filters, sorter) {
                 this.queryParam.pageNo = pagination.current
                 this.queryParam.pageSize = pagination.pageSize
-                this.getData(this.queryParam.Org)
+                this.getData(this.queryParam.Org,this.ExecutionStatus)
+        
             },
             onSelectChange(selectedRowKeys, selectionRows) {
               this.selectedRowKeys = selectedRowKeys;
-              this.selectedRows = selectionRows;
+              this.selectedRows=this.selectedRows.concat(selectionRows)
+              this.selectedRows=this.selectedRows.filter(item=>this.selectedRowKeys.indexOf(item.ID) != -1)
+                //数组对象去重
+                let map = new Map();
+                for (let item of this.selectedRows) {
+                if (!map.has(item.ID)) {
+                    map.set(item.ID, item);
+                    };
+                };
+                this.selectedRows = [...map.values()];
             },
             handleToggleSearch(){
                 this.toggleSearchStatus=!this.toggleSearchStatus
@@ -231,7 +247,7 @@
                   click: () => {
                     this.selectedRowKeys=[]
                     this.selectedRows=[]
-                    this.selectedRowKeys.push(index)
+                    this.selectedRowKeys.push(record.ID)
                     this.selectedRows.push(record)
                   },
                 }

+ 34 - 5
src/views/production/materialprocurement/modules/materialProcurementAdd.vue

@@ -283,7 +283,7 @@
        </a-form-model>
     </a-card>
     <projectPopup ref="projectPopup" @okData="okData"></projectPopup>
-    <inventoryPopup ref="inventoryPopup" @okData="okDataInvent"></inventoryPopup>
+    <inventoryPopup ref="inventoryPopup" @okData="okDataInvent" @okDataMultiple="addDataMultiple"></inventoryPopup>
     <deparmentPopup ref="deparmentPopup" @okData="okDataDeparment"></deparmentPopup>
     <OperatorsPopup ref="OperatorsPopup" @okData="okDataOperators"></OperatorsPopup>
     <organizationPopup ref="organizationPopup" @okData="okDataOrganization"></organizationPopup>
@@ -721,7 +721,12 @@
                 })
             },
             addList(){
-                this.formTable.dataSource.push({rowNo: this.formTable.dataSource.length+1,projectCode:this.form.projectCode,projectName:this.form.projectName,rate:''})
+                if(this.form.orgName&&this.form.orgName!==''){
+                    this.$refs.inventoryPopup.visible = true
+                    this.$refs.inventoryPopup.getData(this.form.planOrg,'add')
+                }else{
+                    this.$message.warning("请选择组织!")
+                }
             },
             onSearchProject(){
                 if(this.form.orgName&&this.form.orgName!==''){
@@ -751,7 +756,7 @@
             onSearchInventory(record){
                 if(this.form.orgName&&this.form.orgName!==''){
                     this.$refs.inventoryPopup.visible = true
-                    this.$refs.inventoryPopup.getData(this.form.planOrg )
+                    this.$refs.inventoryPopup.getData(this.form.planOrg,'edit')
                     this.$refs.inventoryPopup.record=record
                 }else{
                     this.$message.warning("请选择组织!")
@@ -789,8 +794,6 @@
               this.$set(recoerd,'unit',data.unit )
               this.$set(recoerd,'auxiliaryUnit',data.auxiliaryUnit )
               this.$set(recoerd,'inventory',data.ID )
-              this.$set(recoerd,'quantity','' )
-              this.$set(recoerd,'unQuantity','')
               data.rate = data.rate?data.rate:1
               this.$set(recoerd,'rate',data.rate)
               this.$set(recoerd,'quantity','')
@@ -803,6 +806,32 @@
               }
               this.$refs.formRef.clearValidate(['inventoryName']);
             },
+            addDataMultiple(rows){
+                rows.map(item=>{
+                    var obj ={}
+                    this.$set(obj,'inventoryCode',item.Code)
+                    this.$set(obj,'inventoryName',item.Name)
+                    this.$set(obj,'specs',item.SPECS)
+                    this.$set(obj,'attribute',item.Code1 )
+                    this.$set(obj,'unit',item.unit )
+                    this.$set(obj,'auxiliaryUnit',item.auxiliaryUnit )
+                    this.$set(obj,'inventory',item.ID )
+                    item.rate = item.rate?item.rate:1
+                    this.$set(obj,'rate',item.rate)
+                    this.$set(obj,'quantity','')
+                    this.$set(obj,'unQuantity','')
+                    this.$set(obj,'rowNo',this.formTable.dataSource.length+1)
+                    this.$set(obj,'projectCode',this.form.projectCode)
+                    this.$set(obj,'projectName',this.form.projectName)
+                    var attributeArr = item.Code1.split("-")
+                    if(attributeArr.length==4){
+                        this.$set(obj,'color',attributeArr[1])
+                        this.$set(obj,'fixedLength',attributeArr[2])
+                        this.$set(obj,'widthHeight',attributeArr[3])
+                    }
+                    this.formTable.dataSource.push(obj)
+                })
+            },
             okDataDeparment(data){
                 this.$set(this.form,'planDept',data.Name)
                 this.$set(this.form,'planDeptId',data.ID)

+ 38 - 3
src/views/production/productionTotalOrder/modules/SurplusMaterials.vue

@@ -201,7 +201,7 @@
                 </template>
             </a-table>
         </a-form-model>
-        <inventoryPopup ref="inventoryPopup" @okData="okDataInvent"></inventoryPopup>
+        <inventoryPopup ref="inventoryPopup" @okData="okDataInvent"  @okDataMultiple="addDataMultiple"></inventoryPopup>
     </div>
   </template>
   
@@ -519,6 +519,8 @@
                 // },
           ],
         disableMixinCreated:'1',
+        projectCode:"",
+        projectName:'',
         rules:{
             quantity:{required:true,message:"不可为空"},
             unQuantity:{required:true,message:"不可为空"},
@@ -540,7 +542,15 @@
             this.selectedRows = selectionRows;
         },
         addList(projectCode,projectName){
-            this.form.dataSource.push({rowNo: this.form.dataSource.length+1,projectCode:projectCode,projectName:projectName})
+            this.projectCode=projectCode
+            this.projectName=projectName
+            if(this.planOrg&&this.planOrg!==''){
+                this.$refs.inventoryPopup.visible = true
+                this.$refs.inventoryPopup.getData(this.planOrg,'add')
+            }else{
+                    this.$message.warning("请选择组织!")
+            }
+            // this.form.dataSource.push({rowNo: this.form.dataSource.length+1,projectCode:projectCode,projectName:projectName})
         },
         //改变主数量计算辅数量
         changeQuantity(record){
@@ -583,7 +593,7 @@
                 this.$message.warning('请选择生产组织!')
             }else{
                 this.$refs.inventoryPopup.visible = true
-                this.$refs.inventoryPopup.getData(this.planOrg)
+                this.$refs.inventoryPopup.getData(this.planOrg,'edit')
                 this.$refs.inventoryPopup.record=record
             }
         },
@@ -604,6 +614,31 @@
                 this.$set(recoerd,'widthHeight',attributeArr[3])
               }
         },
+        addDataMultiple(rows){
+                rows.map(item=>{
+                    var obj ={}
+                    this.$set(obj,'inventoryCode',item.Code)
+                    this.$set(obj,'inventoryName',item.Name)
+                    this.$set(obj,'specs',item.SPECS)
+                    this.$set(obj,'unit',item.unit )
+                    this.$set(obj,'auxiliaryUnit',item.auxiliaryUnit )
+                    // this.$set(obj,'attribute',item.Code1 )
+                    this.$set(obj,'inventory',item.ID )
+                    this.$set(obj,'rate',item.rate)
+                    this.$set(obj,'quantity','')
+                    this.$set(obj,'unQuantity','')
+                    this.$set(obj,'rowNo',this.form.dataSource.length+1)
+                    this.$set(obj,'projectCode',this.projectCode)
+                    this.$set(obj,'projectName',this.projectName)
+                    var attributeArr = item.Code1.split("-")
+                    if(attributeArr.length==4){
+                        this.$set(obj,'color',attributeArr[1])
+                        this.$set(obj,'fixedLength',attributeArr[2])
+                        this.$set(obj,'widthHeight',attributeArr[3])
+                    }
+                    this.form.dataSource.push(obj)
+                })
+        },
         //杂发/杂收
         sendOrReceive(data){
             var idExistence = 'yes',

+ 38 - 3
src/views/production/productionTotalOrder/modules/material.vue

@@ -207,7 +207,7 @@
                 </template>
             </a-table>
         </a-form-model>
-        <inventoryPopup ref="inventoryPopup" @okData="okDataInvent"></inventoryPopup>
+        <inventoryPopup ref="inventoryPopup" @okData="okDataInvent" @okDataMultiple="addDataMultiple"></inventoryPopup>
     </div>
   </template>
   
@@ -526,6 +526,8 @@
                     width:460,
                 },
           ],
+          projectCode:"",
+          projectName:'',
         rules:{
             quantity:{required:true,message:"不可为空"},
             unQuantity:{required:true,message:"不可为空"},
@@ -547,7 +549,15 @@
             this.selectedRows = selectionRows;
         },
         addList(projectCode,projectName){
-            this.form.dataSource.push({rowNo: this.form.dataSource.length+1,projectCode:projectCode,projectName:projectName})
+            this.projectCode=projectCode
+            this.projectName=projectName
+            if(this.planOrg&&this.planOrg!==''){
+                this.$refs.inventoryPopup.visible = true
+                this.$refs.inventoryPopup.getData(this.planOrg,'add')
+            }else{
+                    this.$message.warning("请选择组织!")
+            }
+            // this.form.dataSource.push({rowNo: this.form.dataSource.length+1,projectCode:projectCode,projectName:projectName})
         },
         delectRow(){
             if( this.selectedRowKeys.length==0){
@@ -641,7 +651,7 @@
                 this.$message.warning('请选择生产组织!')
             }else{
                 this.$refs.inventoryPopup.visible = true
-                this.$refs.inventoryPopup.getData(this.planOrg)
+                this.$refs.inventoryPopup.getData(this.planOrg,'edit')
                 this.$refs.inventoryPopup.record=record
             }
         },
@@ -663,6 +673,31 @@
                 this.$set(recoerd,'widthHeight',attributeArr[3])
             }
         },
+        addDataMultiple(rows){
+                rows.map(item=>{
+                    var obj ={}
+                    this.$set(obj,'inventoryCode',item.Code)
+                    this.$set(obj,'inventoryName',item.Name)
+                    this.$set(obj,'specs',item.SPECS)
+                    this.$set(obj,'unit',item.unit )
+                    this.$set(obj,'auxiliaryUnit',item.auxiliaryUnit )
+                    this.$set(obj,'attribute',item.Code1 )
+                    this.$set(obj,'inventory',item.ID )
+                    this.$set(obj,'rate',item.rate)
+                    this.$set(obj,'quantity','')
+                    this.$set(obj,'unQuantity','')
+                    this.$set(obj,'rowNo',this.form.dataSource.length+1)
+                    this.$set(obj,'projectCode',this.projectCode)
+                    this.$set(obj,'projectName',this.projectName)
+                    var attributeArr = item.Code1.split("-")
+                    if(attributeArr.length==4){
+                        this.$set(obj,'color',attributeArr[1])
+                        this.$set(obj,'fixedLength',attributeArr[2])
+                        this.$set(obj,'widthHeight',attributeArr[3])
+                    }
+                    this.form.dataSource.push(obj)
+                })
+        },
     },
   
     computed: {

+ 38 - 3
src/views/production/productionTotalOrder/modules/productDetails.vue

@@ -240,7 +240,7 @@
                 </template>
             </a-table>
         </a-form-model>
-        <inventoryPopup ref="inventoryPopup" @okData="okDataInvent"></inventoryPopup>
+        <inventoryPopup ref="inventoryPopup" @okData="okDataInvent" @okDataMultiple="addDataMultiple"></inventoryPopup>
     </div>
   </template>
   
@@ -263,6 +263,8 @@
         selectedRowKeys:[],
         selectedRows:[],
         planOrg:'',
+        projectCode:"",
+        projectName:'',
         form:{
             dataSource:[],
         },
@@ -610,7 +612,15 @@
             this.selectedRows = selectionRows;
         },
         addList(projectCode,projectName){
-            this.form.dataSource.push({rowNo: this.form.dataSource.length+1,projectCode:projectCode,projectName:projectName})
+            this.projectCode=projectCode
+            this.projectName=projectName
+            if(this.planOrg&&this.planOrg!==''){
+                this.$refs.inventoryPopup.visible = true
+                this.$refs.inventoryPopup.getData(this.planOrg,'add')
+            }else{
+                    this.$message.warning("请选择组织!")
+            }
+            // this.form.dataSource.push({rowNo: this.form.dataSource.length+1,projectCode:projectCode,projectName:projectName})
         },
         //改变主数量计算辅数量
         changeQuantity(record){
@@ -633,7 +643,7 @@
                 this.$message.warning('请选择生产组织!')
             }else{
                 this.$refs.inventoryPopup.visible = true
-                this.$refs.inventoryPopup.getData(this.planOrg)
+                this.$refs.inventoryPopup.getData(this.planOrg,'edit')
                 this.$refs.inventoryPopup.record=record
             }
         },
@@ -694,6 +704,31 @@
                 this.$set(recoerd,'widthHeight',attributeArr[3])
               }
         },
+        addDataMultiple(rows){
+                rows.map(item=>{
+                    var obj ={}
+                    this.$set(obj,'inventoryCode',item.Code)
+                    this.$set(obj,'inventoryName',item.Name)
+                    this.$set(obj,'specs',item.SPECS)
+                    this.$set(obj,'unit',item.unit )
+                    this.$set(obj,'auxiliaryUnit',item.auxiliaryUnit )
+                    this.$set(obj,'attribute',item.Code1 )
+                    this.$set(obj,'inventory',item.ID )
+                    this.$set(obj,'rate',item.rate)
+                    this.$set(obj,'quantity','')
+                    this.$set(obj,'unQuantity','')
+                    this.$set(obj,'rowNo',this.form.dataSource.length+1)
+                    this.$set(obj,'projectCode',this.projectCode)
+                    this.$set(obj,'projectName',this.projectName)
+                    var attributeArr = item.Code1.split("-")
+                    if(attributeArr.length==4){
+                        this.$set(obj,'color',attributeArr[1])
+                        this.$set(obj,'fixedLength',attributeArr[2])
+                        this.$set(obj,'widthHeight',attributeArr[3])
+                    }
+                    this.form.dataSource.push(obj)
+                })
+        },
         delectRow(){
             if( this.selectedRowKeys.length==0){
                 this.$message.warning('请勾选子表数据!')