|
@@ -9,7 +9,8 @@
|
|
|
<el-button type="primary"
|
|
|
class="el-button--small-yh add-customer-btn-three"
|
|
|
:disabled="!form.id"
|
|
|
- @click.stop="confirmReceipt">确认收货
|
|
|
+ @click.stop="confirmReceipt">
|
|
|
+ {{receiptDisable ?"撤销收货":"确认收货"}}
|
|
|
</el-button>
|
|
|
<el-button type="success"
|
|
|
class="el-button--small-yh add-customer-btn-two"
|
|
@@ -19,7 +20,7 @@
|
|
|
<el-button
|
|
|
class="el-button--small-yh add-customer-btn"
|
|
|
type="primary"
|
|
|
- :disabled="disabled"
|
|
|
+ :disabled="disabled || receiptDisable"
|
|
|
@click="editCustomer"
|
|
|
>{{ form.id ? '确认修改' : '确认新增' }}
|
|
|
</el-button>
|
|
@@ -31,13 +32,13 @@
|
|
|
<el-row>
|
|
|
<el-col v-for="(item,index) in basicData.column" :key="index" :span="item.span?item.span:8">
|
|
|
<el-form-item :label="item.label" :prop="item.prop" :rules="item.rules">
|
|
|
- <el-date-picker v-if="item.type === 'datetime'" style="width: 100%;" v-model="form[item.prop]" size="small" type="date" placeholder="请选择日期" value-format="yyyy-MM-dd HH:mm:ss"/>
|
|
|
+ <el-date-picker v-if="item.type === 'datetime'" style="width: 100%;" v-model="form[item.prop]" :disabled="receiptDisable" size="small" type="date" placeholder="请选择日期" value-format="yyyy-MM-dd HH:mm:ss"/>
|
|
|
<selectComponent v-else-if="item.prop === 'corpId'" v-model="form[item.prop]" :configuration="configuration"/>
|
|
|
- <el-select v-else-if="item.prop === 'storageId'" style="width: 100%" v-model="form[item.prop]" size="small" placeholder="请选择" clearable filterable>
|
|
|
+ <el-select v-else-if="item.prop === 'storageId'" style="width: 100%" :disabled="receiptDisable" v-model="form[item.prop]" size="small" placeholder="请选择" clearable filterable>
|
|
|
<el-option v-for="(item,index) in storageIdDic" :key="index" :label="item.cname" :value="item.id"></el-option>
|
|
|
</el-select>
|
|
|
- <el-input type="textarea" v-else-if="(item.prop === 'deliveryRemarks')" v-model="form[item.prop]" size="small" autocomplete="off" placeholder="请输入"></el-input>
|
|
|
- <el-input v-else v-model="form[item.prop]" size="small" :disabled="item.disabled?true:false" placeholder="请输入" autocomplete="off"></el-input>
|
|
|
+ <el-input type="textarea" v-else-if="(item.prop === 'deliveryRemarks')" v-model="form[item.prop]" :disabled="receiptDisable" size="small" autocomplete="off" placeholder="请输入"></el-input>
|
|
|
+ <el-input v-else v-model="form[item.prop]" size="small" :disabled="item.disabled?true:false || receiptDisable" placeholder="请输入" autocomplete="off"></el-input>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
@@ -55,7 +56,7 @@
|
|
|
@row-del="rowDel"
|
|
|
>
|
|
|
<template slot-scope="{row}" slot="billNo">
|
|
|
- <span v-if="row.$cellEdit" style="float: left;color: #F56C6C;">*</span>
|
|
|
+ <span v-if="row.$cellEdit" class="required_fields">*</span>
|
|
|
<el-input
|
|
|
v-if="row.$cellEdit"
|
|
|
v-model="row.billNo"
|
|
@@ -67,10 +68,10 @@
|
|
|
<span v-else>{{ row.billNo }}</span>
|
|
|
</template>
|
|
|
<template slot-scope="{row}" slot="contractNumber">
|
|
|
- <span v-if="row.$cellEdit" style="float: left;color: #F56C6C;">*</span>
|
|
|
+ <span v-if="row.$cellEdit" class="required_fields">*</span>
|
|
|
<el-select
|
|
|
v-if="row.$cellEdit"
|
|
|
- style="width:90%"
|
|
|
+ style="width:90% !important;"
|
|
|
v-model="row.contractNumber"
|
|
|
placeholder=" "
|
|
|
size="small"
|
|
@@ -82,14 +83,24 @@
|
|
|
v-for="(item,index) in contractDic"
|
|
|
:key="index"
|
|
|
:label="item.orderNo"
|
|
|
+ @change="sumOrderNo()"
|
|
|
:value="item.orderNo"
|
|
|
></el-option>
|
|
|
</el-select>
|
|
|
<span v-else>{{ row.contractNumber }}</span>
|
|
|
</template>
|
|
|
<template slot="priceCategory" slot-scope="{row,index}">
|
|
|
- <span style="margin-left: 12px;padding-top: 2px">{{ row.priceCategoryNames }}</span>
|
|
|
- <el-button v-if="row.$cellEdit" type="text" size="mini" style="float: right" @click="choice(row)">选择</el-button>
|
|
|
+ <span v-if="row.$cellEdit" class="required_fields">*</span>
|
|
|
+ <el-input
|
|
|
+ v-if="row.$cellEdit"
|
|
|
+ v-model="row.priceCategoryNames"
|
|
|
+ size="small"
|
|
|
+ placeholder="请点击右侧按钮选择"
|
|
|
+ :disabled="true"
|
|
|
+ style="width: 63%"
|
|
|
+ ></el-input>
|
|
|
+ <el-button v-if="row.$cellEdit" size="small" icon="el-icon-search" @click="choice(row)"></el-button>
|
|
|
+ <span v-else>{{ row.priceCategoryNames }}</span>
|
|
|
</template>
|
|
|
<template slot="invoiceWeight" slot-scope="{ row }">
|
|
|
<el-input
|
|
@@ -125,9 +136,11 @@
|
|
|
<span v-else>{{ row.price }}</span>
|
|
|
</template>
|
|
|
<template slot="actualQuantity" slot-scope="{ row }">
|
|
|
+ <span v-if="row.$cellEdit" class="required_fields">*</span>
|
|
|
<el-input
|
|
|
v-if="row.$cellEdit"
|
|
|
v-model="row.actualQuantity"
|
|
|
+ style="width: 93%"
|
|
|
placeholder="请输入"
|
|
|
size="small"
|
|
|
oninput='this.value=this.value.replace(/[^(\d.)]/g,"").replace(/^(\d+)\.(\d\d).*$/, "$1.$2")'
|
|
@@ -139,14 +152,23 @@
|
|
|
<el-button
|
|
|
type="text"
|
|
|
size="small"
|
|
|
+ :disabled="receiptDisable"
|
|
|
@click="rowCell(row,index)"
|
|
|
>{{ row.$cellEdit ? '保存' : '修改' }}
|
|
|
</el-button>
|
|
|
+ <el-button
|
|
|
+ type="text"
|
|
|
+ size="small"
|
|
|
+ :disabled="receiptDisable"
|
|
|
+ @click="rowDel(row,index)"
|
|
|
+ >删除
|
|
|
+ </el-button>
|
|
|
</template>
|
|
|
<template slot="menuLeft" slot-scope="{size}">
|
|
|
<el-button type="primary"
|
|
|
icon="el-icon-plus"
|
|
|
size="small"
|
|
|
+ :disabled="receiptDisable"
|
|
|
@click="commoditySelection"
|
|
|
>录入明细
|
|
|
</el-button>
|
|
@@ -202,9 +224,6 @@
|
|
|
<span slot="footer" class="dialog-footer">
|
|
|
<el-button @click="dialogVisible = false">取 消</el-button>
|
|
|
<el-button type="primary" @click="commodityConfirm" v-if="selectKind != -1" :disabled="tableData.length !== 1">确定</el-button>
|
|
|
-<!-- <el-button type="primary" @click="importGoods" v-if="commodityData !== true && selectKind == -1" :disabled="tableData.length !== 1" >导入</el-button>-->
|
|
|
-<!-- <el-button type="primary" @click="importChoice" v-if="commodityData === true && selectKind == -1"-->
|
|
|
-<!-- :disabled="tableData.length !== 1">导入</el-button>-->
|
|
|
</span>
|
|
|
</el-dialog>
|
|
|
<el-dialog
|
|
@@ -215,10 +234,12 @@
|
|
|
width="60%"
|
|
|
:close-on-click-modal="false"
|
|
|
:destroy-on-close="true"
|
|
|
- :close-on-press-escape="false">
|
|
|
+ :modal-append-to-body='false'
|
|
|
+ :close-on-press-escape="false"
|
|
|
+ v-dialog-drag>
|
|
|
<procurement-detail
|
|
|
- :status="132"
|
|
|
- :closeFun="procurementClose"
|
|
|
+ @closeFun="!procurementDialog"
|
|
|
+ @importProMent="importProMent"
|
|
|
>
|
|
|
</procurement-detail>
|
|
|
</el-dialog>
|
|
@@ -235,7 +256,8 @@ import {detailReceiptList,
|
|
|
removeGoodsItem,
|
|
|
getStorage,
|
|
|
getInventory,
|
|
|
- confirmReceipt
|
|
|
+ confirmReceipt,
|
|
|
+ repealReceipt
|
|
|
} from "@/api/importTrade/receipt"
|
|
|
import {
|
|
|
getList
|
|
@@ -244,7 +266,8 @@ import upLoadOption from "../../exportTrade/purchaseContract/config/uploadList.j
|
|
|
import {detailListData } from "@/api/importTrade/purchase";
|
|
|
import { contrastObj,contrastList } from "@/util/contrastData";
|
|
|
import { getOrgOrderNo } from "@/api/importTrade/salesContract"
|
|
|
-import { procurementDetail } from "@/components/procurement/procurementDetail";
|
|
|
+import procurementDetail from "@/components/procurement/index";
|
|
|
+import _ from "lodash";
|
|
|
|
|
|
export default {
|
|
|
name: "detailsPageEdit",
|
|
@@ -260,6 +283,7 @@ export default {
|
|
|
return {
|
|
|
form: {},
|
|
|
disabled: false,
|
|
|
+ receiptDisable:false,
|
|
|
customerContact: customerContact,
|
|
|
contactsForm: {},
|
|
|
contactsData: [],
|
|
@@ -435,6 +459,8 @@ export default {
|
|
|
detailReceiptList(id).then(res => {
|
|
|
this.form = res.data.data;
|
|
|
this.oldForm = Object.assign({},res.data.data);
|
|
|
+ this.receiptDisable = res.data.data.deliveryStatus === "已收货" ? true :false
|
|
|
+ this.configuration.disabled = this.receiptDisable
|
|
|
if(this.form.companyName){
|
|
|
this.configuration.dicData = this.form.companyName
|
|
|
}
|
|
@@ -448,35 +474,40 @@ export default {
|
|
|
}
|
|
|
})
|
|
|
}
|
|
|
- // else{
|
|
|
- // getSysNo("JK-SH").then(res =>{
|
|
|
- // this.$set(this.form,"sysNo", res.data.data)
|
|
|
- // })
|
|
|
- // }
|
|
|
if(this.detailData.params){
|
|
|
detailListData(this.detailData.params.id).then(res =>{
|
|
|
- // this.form.orderNo = res.data.data.orderNo;
|
|
|
- // this.form.saleman = res.data.data.salesName;
|
|
|
- // this.configuration.dicData = res.data.data.corpsName
|
|
|
- // this.form.corpId = res.data.data.corpsName[0].cname
|
|
|
+ const orderNoList = [];
|
|
|
res.data.data.itemsVOList.forEach((item,index) =>{
|
|
|
this.detailData.params.orderItemIds.forEach((e,i) =>{
|
|
|
if(e == index){
|
|
|
item.srcId = item.id;
|
|
|
item.contractNumber = res.data.data.orderNo;
|
|
|
- item.actualQuantity = item.purchaseQuantity;
|
|
|
+ orderNoList.push(item.contractNumber)
|
|
|
+ if(item.actualQuantity !== 0){ //如果收过货
|
|
|
+ item.actualQuantity = _.subtract(item.purchaseQuantity, item.actualQuantity); //收货件数 = 采购件数 - 已收件数
|
|
|
+ }else{
|
|
|
+ item.actualQuantity = item.purchaseQuantity;
|
|
|
+ }
|
|
|
item.contractAmount = item.amount;
|
|
|
delete item.id
|
|
|
- delete item.actualQuantity
|
|
|
this.$refs.crudContact.rowCellAdd(item);
|
|
|
this.$refs.crudContact.rowCell(item,this.contactsData.length - 1)
|
|
|
}
|
|
|
})
|
|
|
})
|
|
|
+ this.$set(this.form,'orderNo', Array.from(new Set(orderNoList)).join(","))
|
|
|
+ this.$set(this.form,'saleman',res.data.data.salesName)
|
|
|
+ this.$set(this.form,'corpId',res.data.data.corpsName[0].id)
|
|
|
+ this.$set(this.configuration,'dicData', res.data.data.corpsName)
|
|
|
})
|
|
|
}
|
|
|
},
|
|
|
methods: {
|
|
|
+ sumOrderNo(){
|
|
|
+ //拿到所有明细合同号 去重加逗号放到主表合同号
|
|
|
+ const contractNumberList = this.contactsData.map(item =>{item.contractNumber})
|
|
|
+ this.$set(this.form,'orderNo', Array.from(new Set(contractNumberList)).join(","))
|
|
|
+ },
|
|
|
//合计
|
|
|
totalChange(){
|
|
|
let invoiceList = this.contactsData.map(item => {
|
|
@@ -499,7 +530,8 @@ export default {
|
|
|
getOrgOrderNo(row.billNo).then(res =>{
|
|
|
if(res.data){
|
|
|
this.contractDic = res.data;
|
|
|
- row.contractNumber = res.data[0].orderNo
|
|
|
+ row.contractNumber = res.data[0].orderNo;
|
|
|
+ this.sumOrderNo()
|
|
|
}
|
|
|
}).catch(()=>{
|
|
|
row.contractNumber = ''
|
|
@@ -511,7 +543,7 @@ export default {
|
|
|
row.price = "";
|
|
|
row.contractAmount = 0
|
|
|
} else {
|
|
|
- row.contractAmount = (row.actualQuantity * row.price).toFixed(2);
|
|
|
+ row.contractAmount = _.multiply(row.actualQuantity,row.price).toFixed(2);
|
|
|
}
|
|
|
},
|
|
|
//件数
|
|
@@ -520,7 +552,7 @@ export default {
|
|
|
row.actualQuantity = "";
|
|
|
row.contractAmount = 0
|
|
|
} else {
|
|
|
- row.contractAmount = (row.actualQuantity * row.price).toFixed(2);
|
|
|
+ row.contractAmount = _.multiply(row.actualQuantity,row.price).toFixed(2);
|
|
|
}
|
|
|
},
|
|
|
//新增商品信息保存触发
|
|
@@ -568,12 +600,18 @@ export default {
|
|
|
editCustomer(status) {
|
|
|
this.$refs["form"].validate((valid) => {
|
|
|
for (let i = 0; i < this.contactsData.length; i++) {
|
|
|
- if (this.contactsData[i].billNo == null) {
|
|
|
+ if (this.contactsData[i].billNo === "") {
|
|
|
return this.$message.error(`请输入第${i + 1}行的提单号`);
|
|
|
}
|
|
|
- if (this.contactsData[i].contractNumber == null) {
|
|
|
+ if (this.contactsData[i].contractNumber === "") {
|
|
|
return this.$message.error(`请输入第${i + 1}行的合同号`);
|
|
|
}
|
|
|
+ if (this.contactsData[i].priceCategory === "") {
|
|
|
+ return this.$message.error(`请输入第${i + 1}行的货物品种`);
|
|
|
+ }
|
|
|
+ if (this.contactsData[i].actualQuantity == null) {
|
|
|
+ return this.$message.error(`请输入第${i + 1}行的件数`);
|
|
|
+ }
|
|
|
}
|
|
|
if (valid) {
|
|
|
let submitDto = {
|
|
@@ -587,6 +625,7 @@ export default {
|
|
|
detailReceiptList(res.data.data.id).then(res => {
|
|
|
this.form = res.data.data;
|
|
|
this.oldForm = Object.assign({},res.data.data);
|
|
|
+ this.receiptDisable = res.data.data.deliveryStatus === "已收货" ? true :false
|
|
|
this.configuration.dicData = this.form.companyName
|
|
|
if(this.form.deliveryItemsList){
|
|
|
this.contactsData = this.form.deliveryItemsList
|
|
@@ -612,7 +651,7 @@ export default {
|
|
|
if(contrastObj(this.form,this.oldForm) || contrastList(this.contactsData,this.oldContactsData)
|
|
|
|| contrastList(this.upLoadData,this.oldUpLoadData)
|
|
|
){
|
|
|
- this.$confirm("请先保存在进行收货?", {
|
|
|
+ this.$confirm("请先保存在进行操作!", {
|
|
|
confirmButtonText: "保存",
|
|
|
cancelButtonText: "取消",
|
|
|
type: "warning"
|
|
@@ -620,17 +659,42 @@ export default {
|
|
|
this.editCustomer()
|
|
|
})
|
|
|
}else{
|
|
|
- this.$confirm("是否确认收货?", {
|
|
|
- confirmButtonText: "确定",
|
|
|
- cancelButtonText: "取消",
|
|
|
- type: "warning"
|
|
|
- }).then(()=>{
|
|
|
- this.form.deliveryItemsList = this.contactsData;
|
|
|
- confirmReceipt(this.form).then(res =>{
|
|
|
+ if(!this.receiptDisable){
|
|
|
+ this.$confirm("是否确认收货?", {
|
|
|
+ confirmButtonText: "确定",
|
|
|
+ cancelButtonText: "取消",
|
|
|
+ type: "warning"
|
|
|
+ }).then(()=>{
|
|
|
+ this.form.deliveryItemsList = this.contactsData;
|
|
|
+ confirmReceipt(this.form).then(res =>{
|
|
|
+ if(res.data.success){
|
|
|
+ this.$message.success("收货成功!")
|
|
|
+ this.receiptDisable = res.data.data.deliveryStatus === "已收货" ? true :false
|
|
|
+ }
|
|
|
+ })
|
|
|
})
|
|
|
- })
|
|
|
+ }else{
|
|
|
+ this.$confirm("是否撤销收货!", {
|
|
|
+ confirmButtonText: "确定",
|
|
|
+ cancelButtonText: "取消",
|
|
|
+ type: "warning"
|
|
|
+ }).then(()=>{
|
|
|
+ this.form.deliveryItemsList = this.contactsData;
|
|
|
+ repealReceipt(this.form).then(res =>{
|
|
|
+ if(res.data.success){
|
|
|
+ this.$message.success("撤销成功!")
|
|
|
+ this.receiptDisable = res.data.data.deliveryStatus === "已收货" ? true :false
|
|
|
+ }
|
|
|
+ })
|
|
|
+ })
|
|
|
+ }
|
|
|
}
|
|
|
},
|
|
|
+ //导入采购明细
|
|
|
+ importProMent(list){
|
|
|
+ this.procurementDialog = false;
|
|
|
+ this.$refs.crudContact.rowCellAdd(list);
|
|
|
+ },
|
|
|
//上传文件保存
|
|
|
upLoadSave(row, done, loading){
|
|
|
this.upLoadData.push(row)
|
|
@@ -677,14 +741,6 @@ export default {
|
|
|
this.contactsData[this.selectKind].priceCategory = this.tableData[0].id;
|
|
|
this.contactsData[this.selectKind].itemDescription = this.tableData[0].cnameDescription;
|
|
|
this.$set(this.contactsData[this.selectKind],'priceCategoryNames',this.tableData[0].cname)
|
|
|
- // let params = {
|
|
|
- // corpId : this.form.corpId,
|
|
|
- // storageId: this.form.storageId,
|
|
|
- // goodId: this.contactsData[this.selectKind].priceCategory,
|
|
|
- // cntrNo: this.contactsData[this.selectKind].containerNo ,
|
|
|
- // billNo: this.contactsData[this.selectKind].billNo ,
|
|
|
- // contractNumber: this.contactsData[this.selectKind].contractNumber,
|
|
|
- // }
|
|
|
this.dialogVisible = !this.dialogVisible
|
|
|
this.selectKind = -1;
|
|
|
}
|
|
@@ -817,7 +873,11 @@ export default {
|
|
|
::v-deep .el-form-item {
|
|
|
margin-bottom: 0;
|
|
|
}
|
|
|
-
|
|
|
+.required_fields{
|
|
|
+ color: #F56C6C;
|
|
|
+ display:inline-block;
|
|
|
+ width: 7%
|
|
|
+}
|
|
|
.add-customer-btn-two {
|
|
|
position: fixed;
|
|
|
right: 150px;
|