| | |
| | | @clearupProduct="clearupProduct" |
| | | ></CommonFormTableView> |
| | | </div> |
| | | <p class="tips" v-if="completely"><i class="el-icon-warning-outline">当前仓库能满足发货需求,直接发货吧</i></p> |
| | | <p class="tips" v-if="satisfyPartly"><i class="el-icon-warning-outline"></i>当前仓库只能部分满足发货需求,是否确认发货</p> |
| | | <p class="tips" v-if="dissatisfy"><i class="el-icon-warning-outline"></i>当前仓库库存不足,不能完成一次发货,请选择其他仓库吧</p> |
| | | <p class="tips tips_success" v-if="completely"><i class="el-icon-warning-outline"></i>{{ shipmentsMsg }}</p> |
| | | <p class="tips tips_insufficient" v-if="dissatisfy"><i class="el-icon-warning-outline"></i>{{shipmentsMsg}}</p> |
| | | </div> |
| | | </el-form> |
| | | |
| | |
| | | label: '仓库1--库存充足的情况' |
| | | }], |
| | | value:"", |
| | | shipmentsList:[], |
| | | shipmentsMsg:"", |
| | | dissatisfy:false, // 一次发货-不足 |
| | | completely:false, // 多次发货,充足 |
| | | satisfyPartly:false, //多次发货,部分满足 |
| | | } |
| | | }, |
| | | mounted(){ |
| | |
| | | this.$refs[formName].validate((valid) => { |
| | | if (valid) { |
| | | const params = this.saveParams() |
| | | confirmOutput(params).then((res)=>{ |
| | | console.log(res,"res") |
| | | if(res&&res.code===200){ |
| | | this.$message.success("发货成功!") |
| | | this.$parent.getData() |
| | | this.editConfig.visible=false |
| | | console.log(params,"参数") |
| | | let isShipments=false |
| | | let shipmentsNum=false |
| | | this.shipmentsList.map((item)=>{ |
| | | if(this.shipmentsType===1){ |
| | | if(item.leftAmount<item.availableAmount){ |
| | | isShipments=false |
| | | }else{ |
| | | isShipments=true |
| | | } |
| | | }else{ |
| | | if(item.outputAmount>item.availableAmount||item.outputAmount>item.leftAmount){ |
| | | isShipments=true |
| | | }else if(item.outputAmount===0){ |
| | | shipmentsNum=true |
| | | }else if(!item.outputAmount){ |
| | | shipmentsNum=true |
| | | }else{ |
| | | isShipments=false |
| | | } |
| | | } |
| | | }) |
| | | if(isShipments){ |
| | | this.$message.warning("发货数量超出未发货数量或超出当前可用库存") |
| | | }else if(shipmentsNum){ |
| | | this.$message.warning("发货数量不能为0") |
| | | }else{ |
| | | confirmOutput(params).then((res)=>{ |
| | | if(res&&res.code===200){ |
| | | this.$message.success("发货成功!") |
| | | this.$parent.getData() |
| | | this.editConfig.visible=false |
| | | } |
| | | }) |
| | | } |
| | | } |
| | | }) |
| | | }, |
| | |
| | | products:[], |
| | | saleDetailNumber:this.editCommonConfig.infomation.saleDetailNumber |
| | | } |
| | | this.productTableList.tableData.map((item)=>{ |
| | | this.shipmentsList.map((item)=>{ |
| | | let obj={ |
| | | number:item.number, |
| | | outputAmount:item.outputAmount||'' |
| | | outputAmount:this.shipmentsType===1?item.leftAmount:item.outputAmount // 本次发货数量 |
| | | } |
| | | params.products.push(obj) |
| | | }) |
| | |
| | | tableColumn: [ |
| | | { label: "产品编号", prop: "number" }, |
| | | { label: "产品名称", prop: "name", min: 110 }, |
| | | { label: "订单数量", prop: "specs" }, |
| | | { label: "订单完成数量", prop: "type" }, |
| | | { label: "订单数量", prop: "orderAmount" }, |
| | | { label: "订单完成数量", prop: "finishAmount" }, |
| | | // { label: "可用库存", prop: "unit" }, |
| | | ] |
| | | } |
| | | }, |
| | | // 产品列表输入 |
| | | inputContent(val, prop, row) { |
| | | // this.productId = row.productId |
| | | this.tableData.map((item) => { |
| | | if (item.number === row.number) { |
| | | item[prop] = val |
| | | } |
| | | }) |
| | | console.log(val,prop,row,) |
| | | // this.productTableList.tableData.map((item) => { |
| | | // if (item.number === row.number) { |
| | | // item[prop] = val |
| | | // } |
| | | // }) |
| | | }, |
| | | // 产品新增 |
| | | addProductClick() { |
| | |
| | | }, |
| | | // 选择发货方式 |
| | | handleRadioChange(value) { |
| | | this.shipmentsList=[] |
| | | this.dissatisfy=false |
| | | this.completely=false |
| | | if(value===1){ |
| | | this.completely=false |
| | | this.satisfyPartly=false |
| | | this.productTableList.tableColumn=[ |
| | | { label: "产品编号", prop: "number" }, |
| | | { label: "产品名称", prop: "name", min: 110 }, |
| | |
| | | this.dissatisfy=false |
| | | let portion=0 |
| | | this.productTableList.tableData.map((item)=>{ |
| | | if(item.availableAmount-item.leftAmount<0){ |
| | | this.dissatisfy=true |
| | | return this.dissatisfy |
| | | }else{ |
| | | if(item.availableAmount>=item.leftAmount&&item.availableAmount>0){ |
| | | portion++ |
| | | this.shipmentsList.push(item) |
| | | } |
| | | if(portion===0){// 没有产品满足发货条件 |
| | | this.completely=false |
| | | this.dissatisfy=true |
| | | this.shipmentsMsg="当前仓库库存不足,不能完成一次发货" |
| | | }else if(portion>0&&portion<this.productTableList.tableData.length){// 部分产品满足发货条件 |
| | | this.dissatisfy=false |
| | | this.completely=true |
| | | this.shipmentsMsg="只能满足部分发货需求,是否确认发货" |
| | | |
| | | }else if(portion===this.productTableList.tableData.length){// 充分满足 |
| | | this.dissatisfy=false |
| | | this.completely=true |
| | | this.shipmentsMsg="能满足发货需求,直接发货吧" |
| | | } |
| | | }) |
| | | if(portion===this.productTableList.tableData.length){ |
| | | if(portion===this.productTableList.tableData.length){ // 全部满足发货条件 |
| | | this.dissatisfy=false |
| | | this.completely=false |
| | | this.completely=true |
| | | } |
| | | }else if(value===2){ |
| | | this.dissatisfy=false |
| | | this.productTableList.tableColumn= [ |
| | | { label: "产品编号", prop: "number" }, |
| | | { label: "产品名称", prop: "name", min: 110 }, |
| | |
| | | { label: "订单完成数量", prop: "finishAmount" }, |
| | | { label: "可用库存", prop: "availableAmount" }, |
| | | { label: "未发货数量", prop: "leftAmount", }, |
| | | { label: "本次发货数量", prop: "outputAmount", inputFloat: true,isRequird: true }, |
| | | { label: "本次发货数量", prop: "outputAmount", inputFloat: true,isRequird:true }, |
| | | { label: "剩余发货数量", prop: "availableAmount",}, |
| | | ] |
| | | let portion=0 |
| | | this.productTableList.tableData.map((item)=>{ |
| | | if(item.availableAmount-item.leftAmount>=0){ |
| | | if(item.availableAmount>0){ |
| | | portion++ |
| | | this.shipmentsList.push(item) |
| | | } |
| | | if(portion===0){ // 没有一件产品能满足发货条件 |
| | | this.completely=false |
| | | this.dissatisfy=true |
| | | this.shipmentsMsg="当前仓库库存为0,无法发货" |
| | | }else if(portion>0&&portion<this.productTableList.tableData.length){ |
| | | this.dissatisfy=false |
| | | this.completely=true |
| | | this.shipmentsMsg="只能满足部分发货需求,是否确认发货" |
| | | }else if(portion===this.productTableList.tableData.length){ |
| | | this.dissatisfy=false |
| | | this.completely=true |
| | | this.shipmentsMsg="能满足发货需求,直接发货吧" |
| | | } |
| | | }) |
| | | if(0<portion<this.productTableList.tableData.length){ |
| | | this.satisfyPartly=true |
| | | }else if(portion===this.productTableList.tableData.length){ |
| | | this.completely=true |
| | | this.dissatisfy=fasle |
| | | }else if(portion===0){ |
| | | this.dissatisfy=true |
| | | this.completely=false |
| | | |
| | | } |
| | | } |
| | | }, |
| | | // 产品入库信息 |
| | | async getDeliveryPrepareInfo(params){ |
| | | await getDeliveryPrepareInfo(params).then((res)=>{ |
| | | this.shipmentsList=[] |
| | | if(res&&res.code===200){ |
| | | this.productTableList.tableData=res.data||[] |
| | | if(this.shipmentsType===1){ |
| | | let portion=0 |
| | | this.productTableList.tableData.map((item)=>{ |
| | | if(item.availableAmount-item.leftAmount<0){ |
| | | if(item.availableAmount>=item.leftAmount&&item.availableAmount>0){ |
| | | portion++ |
| | | this.shipmentsList.push(item) |
| | | } |
| | | if(portion===0){// 没有产品满足发货条件 |
| | | this.completely=false |
| | | this.dissatisfy=true |
| | | return this.dissatisfy |
| | | this.shipmentsMsg="当前产品可用库存为0,无法发货" |
| | | }else if(portion>0&&portion<this.productTableList.tableData.length){ |
| | | this.dissatisfy=false |
| | | this.completely=true |
| | | this.shipmentsMsg="只能满足部分发货需求,是否确认发货" |
| | | // 部分产品满足发货条件 |
| | | }else if(portion===this.productTableList.tableData.length){ |
| | | this.dissatisfy=false |
| | | this.completely=true |
| | | this.shipmentsMsg="能满足发货需求,直接发货吧" |
| | | } |
| | | }) |
| | | } |
| | |
| | | } |
| | | .tips{ |
| | | font-size: 16px; |
| | | color: #FF9C49; |
| | | display: flex; |
| | | margin-left: 20px; |
| | | i{ |
| | |
| | | margin-right: 10px; |
| | | } |
| | | } |
| | | .tips_success{ |
| | | color: #5299FF; |
| | | } |
| | | .tips_portion{ |
| | | color: #FF9C49; |
| | | } |
| | | .tips_insufficient{ |
| | | color: #FF9C49; |
| | | } |
| | | } |
| | | .unflod-collapse { |
| | | display: flex; |