| | |
| | | ref="form" |
| | | :model="editConfig.infomation" |
| | | :rules="rules" |
| | | label-position="right" |
| | | label-position="left" |
| | | label-width="10%" |
| | | size="mini" |
| | | style="height: 60vh; overflow-x: hidden" |
| | |
| | | :selectBox="false" |
| | | :addTypeIdMultiple="true" |
| | | pageName="quotation" |
| | | :isBorder="true" |
| | | :detailEnter="true" |
| | | :isOperate=" |
| | | (autoCodeHeadersObj.Bjd == 'yes' && editConfig.infomation.quotation_number) || |
| | | autoCodeHeadersObj.Bjd != 'yes' |
| | | ? true |
| | | : false |
| | | " |
| | | :quotationNumber="autoCodeHeadersObj.Bjd == 'yes' ? editConfig.infomation.quotation_number : ''" |
| | | :product-table-list="productTableList" |
| | | :isOperate="true" |
| | | @inputContent="inputContent" |
| | | @addProductClick="addProductClick" |
| | | @getSelectArray="getSelectArray" |
| | |
| | | @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&&item.leftAmount>0){ |
| | | isShipments=false |
| | | }else if(item.leftAmount<=0){ |
| | | shipmentsNum=true |
| | | }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 if(item.leftAmount<=0){ |
| | | isShipments=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 |
| | | // let noUsable=false |
| | | this.productTableList.tableData.map((item)=>{ |
| | | if(item.availableAmount-item.leftAmount<0){ |
| | | this.dissatisfy=true |
| | | return this.dissatisfy |
| | | }else{ |
| | | item.availableAmount=Number(item.availableAmount) |
| | | item.leftAmount=Number(item.leftAmount) |
| | | item.finishAmount=Number(item.finishAmount) |
| | | item.orderAmount=Number(item.orderAmount) |
| | | console.log(item,"item") |
| | | if(item.availableAmount>=item.leftAmount&&item.availableAmount>0&&item.leftAmount>0){ |
| | | portion++ |
| | | this.shipmentsList.push(item) |
| | | } |
| | | // if(item.availableAmount<item.leftAmount){ |
| | | // noUsable=true |
| | | // } |
| | | }) |
| | | if(portion===this.productTableList.tableData.length){ |
| | | if(portion===0){// 没有产品满足发货条件 |
| | | this.completely=false |
| | | this.dissatisfy=true |
| | | // if(noUsable){ |
| | | // this.shipmentsMsg="可用库存不满足未发货数量,无法发货" |
| | | // }else{ |
| | | // } |
| | | this.shipmentsMsg="可用库存或未发货数量为0或当前可用库存不满足未发货数量,不能完成一次发货" |
| | | |
| | | }else if(portion>0&&portion<this.productTableList.tableData.length){// 部分产品满足发货条件 |
| | | this.dissatisfy=false |
| | | this.completely=true |
| | | this.shipmentsMsg="只能满足部分发货需求,是否确认发货" |
| | | |
| | | }else if(portion!==0){ |
| | | this.dissatisfy=false |
| | | this.completely=true |
| | | console.log(portion,"portion") |
| | | this.shipmentsMsg="能满足发货需求,直接发货吧" |
| | | } |
| | | |
| | | 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){ |
| | | item.availableAmount=Number(item.availableAmount) |
| | | item.leftAmount=Number(item.leftAmount) |
| | | item.finishAmount=Number(item.finishAmount) |
| | | item.orderAmount=Number(item.orderAmount) |
| | | if(item.availableAmount>0&&item.leftAmount>0){ |
| | | portion++ |
| | | this.shipmentsList.push(item) |
| | | } |
| | | }) |
| | | 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 |
| | | 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="能满足发货需求,直接发货吧" |
| | | } |
| | | } |
| | | }, |
| | | // 产品入库信息 |
| | | 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){ |
| | | this.dissatisfy=true |
| | | return this.dissatisfy |
| | | item.availableAmount=Number(item.availableAmount) |
| | | item.leftAmount=Number(item.leftAmount) |
| | | item.finishAmount=Number(item.finishAmount) |
| | | item.orderAmount=Number(item.orderAmount) |
| | | if(item.availableAmount>=item.leftAmount&&item.availableAmount>0&&item.leftAmount>0){ |
| | | portion++ |
| | | this.shipmentsList.push(item) |
| | | } |
| | | }) |
| | | console.log(portion,"portion2") |
| | | 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{ |
| | | this.dissatisfy=false |
| | | this.completely=true |
| | | this.shipmentsMsg="能满足发货需求,直接发货吧" |
| | | } |
| | | } |
| | | } |
| | | }) |
| | |
| | | } |
| | | } |
| | | .basic-info { |
| | | padding: 0px 20px ; |
| | | .product-view{ |
| | | } |
| | | .basic-info-title { |
| | | background-color: #f4f8fe; |
| | | padding-left: 10px; |
| | |
| | | } |
| | | .tips{ |
| | | font-size: 16px; |
| | | color: #FF9C49; |
| | | display: flex; |
| | | margin-left: 20px; |
| | | i{ |
| | | font-size: 24px; |
| | | margin-right: 10px; |
| | | } |
| | | } |
| | | .tips_success{ |
| | | color: #5299FF; |
| | | } |
| | | .tips_portion{ |
| | | color: #FF9C49; |
| | | } |
| | | .tips_insufficient{ |
| | | color: #FF9C49; |
| | | } |
| | | } |
| | | .unflod-collapse { |
| | |
| | | background-color: #f5f5f5; |
| | | height: 55px; |
| | | line-height: 55px; |
| | | text-align: right !important; |
| | | } |
| | | .el-input__inner { |
| | | text-align: left; |
| | | } |
| | | // .el-input__inner { |
| | | // text-align: left; |
| | | // } |
| | | } |
| | | .el-table tr { |
| | | background-color: #fff; |
| | | } |
| | | .el-table th.el-table__cell.is-leaf{ |
| | | background-color: #F1F3F8 !important; |
| | | } |
| | | .el-dialog__footer{ |
| | | text-align: right !important; |
| | | padding-right: 20px; |
| | | } |
| | | .el-dialog__header { |
| | | background: #f5f7fa; |
| | | height: 50px !important; |
| | | line-height: 50px !important; |
| | | padding: 0; |
| | | font-weight: 600 !important; |
| | | font-size: 15px !important; |
| | | padding-left: 20px !important; |
| | | } |
| | | // .el-table{ |
| | | // border: 1px solid #e1e1e1; |
| | | // } |
| | | } |
| | | </style> |