From 4d6d23e986f1cc9fed61f3161c46b4f2be069fb7 Mon Sep 17 00:00:00 2001 From: yangfeng <wanwan926_4@163.com> Date: 星期四, 23 十一月 2023 15:36:25 +0800 Subject: [PATCH] 新建收款计划增加收款期数 --- src/views/sales/salesDetails/index.vue | 269 ++++++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 231 insertions(+), 38 deletions(-) diff --git a/src/views/sales/salesDetails/index.vue b/src/views/sales/salesDetails/index.vue index ba89cdc..ca149e8 100644 --- a/src/views/sales/salesDetails/index.vue +++ b/src/views/sales/salesDetails/index.vue @@ -40,12 +40,12 @@ <template slot="tableButton"> <el-table-column label="鎿嶄綔" width="180"> <template slot-scope="scope"> - <el-button @click="handleClick(scope.row, '鏌ョ湅')" type="text" size="small">鏌ョ湅</el-button> + <el-button @click.stop="handleClick(scope.row, '鏌ョ湅')" type="text" size="small">鏌ョ湅</el-button> <template v-if="scope.row.status === 1"> - <el-button @click="handleClick(scope.row, '缂栬緫')" type="text" size="small">缂栬緫</el-button> - <el-button @click="submitClick(scope.row)" type="text" size="small">纭鎻愪氦</el-button> + <el-button @click.stop="handleClick(scope.row, '缂栬緫')" type="text" size="small">缂栬緫</el-button> + <el-button @click.stop="submitClick(scope.row)" type="text" size="small">纭鎻愪氦</el-button> <!-- <el-button @click="delClick(scope.row.id)" type="text" size="small">鍒犻櫎</el-button> --> - <el-button @click="closeClick(scope.row.id)" type="text" size="small">鍏抽棴</el-button> + <el-button @click.stop="closeClick(scope.row)" type="text" size="small">鍏抽棴</el-button> </template> </template> </el-table-column> @@ -102,6 +102,36 @@ </div> </div> </div> + <!-- 纭鎻愪氦-閫夋嫨椤圭洰 --> + <el-dialog + title="璇烽�夋嫨椤圭洰" + :visible.sync="projectListShow" + width="40%" + :before-close="handleClose"> + <el-form + label-width="100px" + class="demo-ruleForm" + ref="form" + :rules="rules" + :model="projects" + > + <el-form-item label="閫夋嫨椤圭洰" prop="projectId"> + <el-select + v-model="projects.projectId" + placeholder="璇烽�夋嫨" + size="mini" + style="width: 100%" + > + <el-option v-for="item in projectList" :key="item.projectId" :label="item.projectName" :value="item.projectId"> + </el-option> + </el-select> + </el-form-item> + </el-form> + <span slot="footer" class="dialog-footer"> + <el-button @click="projectListShow = false">鍙� 娑�</el-button> + <el-button type="primary" @click="affirmCommitBtn">纭� 瀹�</el-button> + </span> + </el-dialog> <!-- 鏂板缓/缂栬緫 --> <AddSalesDetailsDialog v-if="editConfig.visible" @@ -119,7 +149,17 @@ <script> import AddSalesDetailsDialog from "@/views/sales/salesDetails/AddSalesDetailsDialog" -import { getSalesDetailsList, getDelSalesDetails } from "@/api/sales/salesDetails" +import { + getSalesDetailsList, + getDelSalesDetails, + getProductInventoryInfo, + getProductOrderInfo, + updateStatus, + createOperation, + getProjectList, + getUpdateSalesDetails, + sendSalesDetailsToApsProject +} from "@/api/sales/salesDetails" import pageMixin from "@/components/makepager/pager/mixin/pageMixin" import DetailSpecification from "@/views/sales/salesDetails/DetailSpecification" import AddCollectionPlan from "@/views/other/payment/collectionPlan/AddCollectionPlan" @@ -153,35 +193,35 @@ data() { // 浜у搧淇℃伅 const productColumn = [ - { label: "浜у搧缂栧彿", prop: "number", default: true }, - { label: "浜у搧鍚嶇О", prop: "client_name" }, - { label: "鏁伴噺", prop: "signTime" }, - { label: "鍗曚綅", prop: "member_name" }, - { label: "鍙戣揣鍗�", prop: "outboundStatus" }, - { label: "鎵胯繍鍟�", prop: "receiveTotalAmount", price: true }, - { label: "杩愬崟鍙�", prop: "total", price: true }, - { label: "閿�鍞崟浠�", prop: "taxUnitPrice", isProductPrice: true }, - { label: "浠风◣鍚堣", prop: "priceTax", isProductTotal: true } + { label: "浜у搧缂栧彿", prop: "id", default: true }, + { label: "浜у搧鍚嶇О", prop: "name" }, + { label: "鏁伴噺", prop: "amount" }, + { label: "鍗曚綅", prop: "unit" }, + { label: "鍙戣揣鍗�", prop: "invoice" }, + { label: "鎵胯繍鍟�", prop: "carrier" }, + { label: "杩愬崟鍙�", prop: "waybillNumber" }, + { label: "閿�鍞崟浠�", prop: "salePrice", price: true }, + { label: "浠风◣鍚堣", prop: "valorem", price: true } ] // 搴撳瓨淇℃伅 const inventoryColumn = [ - { label: "浜у搧缂栧彿", prop: "number", default: true }, - { label: "浜у搧鍚嶇О", prop: "client_name" }, - { label: "璁㈠崟鏁伴噺", prop: "signTime" }, - { label: "浠撳簱", prop: "member_name" }, - { label: "鍦ㄥ簱鏁伴噺", prop: "outboundStatus" }, - { label: "鍙敤搴撳瓨", prop: "receiveTotalAmount", price: true }, - { label: "鍗曚綅", prop: "total", price: true } + { label: "浜у搧缂栧彿", prop: "id", default: true }, + { label: "浜у搧鍚嶇О", prop: "name" }, + { label: "璁㈠崟鏁伴噺", prop: "orderAmount" }, + { label: "浠撳簱", prop: "warehouse" }, + { label: "鍦ㄥ簱鏁伴噺", prop: "amount" }, + { label: "鍙敤搴撳瓨", prop: "availableNumber" }, + { label: "鍗曚綅", prop: "unit" } ] // 鍒堕�犱俊鎭� const makeColumn = [ - { label: "鐢熶骇璁㈠崟", prop: "number", default: true }, - { label: "浜у搧鍚嶇О", prop: "client_name" }, - { label: "璁㈠崟鐘舵��", prop: "signTime" }, - { label: "宸ュ崟缂栧彿", prop: "member_name" }, - { label: "宸ュ崟鐘舵��", prop: "outboundStatus" }, - { label: "璁″垝寮�濮嬫椂闂�", prop: "receiveTotalAmount", price: true }, - { label: "璁″垝缁撴潫鏃堕棿", prop: "total", price: true } + { label: "鐢熶骇璁㈠崟", prop: "orderId", default: true }, + { label: "浜у搧鍚嶇О", prop: "productName" }, + { label: "璁㈠崟鐘舵��", prop: "orderStatus" }, + { label: "宸ュ崟缂栧彿", prop: "workOrderId" }, + { label: "宸ュ崟鐘舵��", prop: "workOrderStatus" }, + { label: "璁″垝寮�濮嬫椂闂�", prop: "startTime" }, + { label: "璁″垝缁撴潫鏃堕棿", prop: "endTime" } ] return { tableList: {}, @@ -195,7 +235,7 @@ show: false, sumProp: [ "receiveTotalAmount", - "total", + "amountTotal", "amountReceivable", "invoicedAmount", "uninvoicedAmount", @@ -233,7 +273,7 @@ { label: "绛剧害鏃ユ湡", prop: "signTime" }, { label: "浜や粯鏃ユ湡", prop: "deliveryDate" }, { label: "璁㈠崟鏉ユ簮", prop: "source" }, - { label: "鍚堣", prop: "total", price: true }, + { label: "鍚堣", prop: "amountTotal", price: true }, { label: "鐘舵��", prop: "status", isCallMethod: true, getCallMethod: this.getStatus } ], showCol: ["璁㈠崟缂栧彿", "閿�鍞礋璐d汉", "绛剧害鏃ユ湡", "浜や粯鏃ユ湡", "璁㈠崟鏉ユ簮", "鍚堣", "鐘舵��"], @@ -250,7 +290,16 @@ showInventoryCol: ["浜у搧缂栧彿", "浜у搧鍚嶇О", "璁㈠崟鏁伴噺", "浠撳簱", "鍦ㄥ簱鏁伴噺", "鍙敤搴撳瓨", "鍗曚綅"], makeColumn: makeColumn, showMakeCol: ["鐢熶骇璁㈠崟", "浜у搧鍚嶇О", "璁㈠崟鐘舵��", "宸ュ崟缂栧彿", "宸ュ崟鐘舵��", "璁″垝寮�濮嬫椂闂�", "璁″垝缁撴潫鏃堕棿"], - selectRow: {} + selectRow: {}, + projectList:[], + projectListShow:false, + projects:{ + projectId:'', + }, + thatRow:{}, + rules: { + projectId: [{ required: true, message: "璇烽�夋嫨椤圭洰", trigger: "change" }], + }, } }, created() { @@ -263,6 +312,7 @@ this.keywordType = this.addConfig.keywordType } this.getData() + this.getProjectList() }, methods: { setTable() { @@ -360,16 +410,15 @@ ...item, client_name: item.client.name, member_name: item.Member.username, - source: "CRM鍚屾", - status: 2 + source: "CRM鍚屾" } }) this.tableList.tableInfomation = list || [] this.pagerOptions.totalCount = res.data.count if (res.data.count > 0) { this.selectRow = this.tableList.tableInfomation.length > 0 ? this.tableList.tableInfomation[0] : {} - // let row = this.tableList.tableInfomation[0]; - // this.getPointinspectionRecord(row.id); + let row = this.tableList.tableInfomation[0] + this.getProductInventoryInfo(row) } } else { this.tableList.tableInfomation = [] @@ -384,6 +433,25 @@ this.tableList.tableInfomation = [] this.loading = false }) + }, + // 鑾峰彇浜у搧/搴撳瓨淇℃伅 + async getProductInventoryInfo(row) { + console.log(row.status, "鐘舵��", row) + if (row.status === 1) { + this.productTableList.tableInfomation = row.products + } else { + await getProductInventoryInfo(row.number).then((res) => { + console.log(res) + this.productTableList.tableInfomation = res.data + }) + } + }, + // 鑾峰彇鍒堕�犱俊鎭� + async getProductOrderInfo(number) { + await getProductOrderInfo(number).then((res) => { + console.log(res) + this.productTableList.tableInfomation = res.data + }) }, // 鎼滅储 onFilterSearch(searchText) { @@ -420,12 +488,47 @@ } }, // 纭鎻愪氦 - submitClick(row) { - console.log(row, "纭鎻愪氦") + async submitClick(row) { + this.thatRow=row + if(row.projectId==""){ + this.$message.error("璇峰厛濉啓椤圭洰淇℃伅") + this.projectListShow=true + }else{ + let params = { + ...row, + status: 2 + } + await createOperation(params).then((res) => { + if (res.code == 200) { + this.$message.success("纭鎻愪氦鎴愬姛") + this.getData() + this.thatRow.status=2 + sendSalesDetailsToApsProject(this.thatRow).then((res)=>{ + if(res.code===200){ + this.$message.success("鎴愬姛鎺ㄩ�佽嚦aps绯荤粺") + } + }) + } + }) + } }, // 鍏抽棴 closeClick(row) { console.log(row, "鍏抽棴") + this.updateStatus(row.id, 4) + }, + // 淇敼鐘舵�� + async updateStatus(id, status) { + await updateStatus({ + id: id, + status: status + }).then((res) => { + console.log(res) + if (res.code == 200) { + this.$message.success("鍏抽棴鎴愬姛") + this.getData() + } + }) }, // 鍒犻櫎 delClick(rowID) { @@ -493,6 +596,7 @@ this.tableBottomColumn = this.productColumn this.showBottomCol = this.showProductCol this.setBottomList() + this.getProductInventoryInfo(this.selectRow) } else if (this.TabsIndex == 1) { this.isClickProduct = false this.isClickInventory = true @@ -501,6 +605,7 @@ this.tableBottomColumn = this.inventoryColumn this.showBottomCol = this.showInventoryCol this.setBottomList() + this.getProductInventoryInfo(this.selectRow) } else if (this.TabsIndex == 2) { this.isClickProduct = false this.isClickInventory = false @@ -509,6 +614,7 @@ this.tableBottomColumn = this.makeColumn this.showBottomCol = this.showMakeCol this.setBottomList() + this.getProductOrderInfo(this.selectRow.number) } }, // 鐘舵�� @@ -519,7 +625,90 @@ tableRowClick(row, column, event) { console.log(row, column, event) this.selectRow = row - // this.getPointinspectionRecord(row.id); + if (this.TabsIndex == 0) { + this.getProductInventoryInfo(this.selectRow) + } else if (this.TabsIndex == 1) { + this.getProductInventoryInfo(this.selectRow) + } else if (this.TabsIndex == 2) { + this.getProductOrderInfo(this.selectRow.number) + } + }, + // 鑾峰彇椤圭洰鍒楄〃 + async getProjectList(){ + await getProjectList({ + page: 1, + pageSize: 100, + }).then((res) => { + console.log(res.data,"椤圭洰鍒楄〃淇℃伅") + this.projectList=res.data + }) + }, + handleClose(done) { + done() + }, + + saveParams() { + let params={ + address: this.thatRow.address || "", + addressee: this.thatRow.addressee || "", + clientId: this.thatRow.clientId || 0, + conditions: this.thatRow.conditions || "", + deliveryDate: this.thatRow.deliveryDate || "", + memberId: this.thatRow.memberId || 0, + number: this.thatRow.number || "", + phone: this.thatRow.phone || "", + products: this.thatRow.products, + remark: this.thatRow.remark || "", + saleChanceId: this.thatRow.saleChanceId || 0, + saleType: this.thatRow.saleType || 0, + signTime: this.thatRow.signTime || "", + wechatOrderStatus: this.thatRow.wechatOrderStatus || 0, + logisticCompany: this.thatRow.logisticCompany || "", + logisticCost: this.thatRow.logisticCost || 0, + logisticNumber: this.thatRow.logisticNumber || "", + quotationId: this.thatRow.quotationId, + deliverType: this.thatRow.deliverType || 0, + status: this.thatRow.deliverType, + projectId:this.projects.projectId||0 + } + return params + }, + // 纭鎻愪氦 + affirmCommitBtn(){ + let params=this.saveParams() + this.$refs['form'].validate((valid) => { + if(valid){ + console.log() + this.projectListShow=false + getUpdateSalesDetails({ + id:this.thatRow.id, + salesDetails:params + }).then((res) => { + console.log(res) + this.editConfig.visible = false + if (res.code === 200) { + let params2 = { + ...this.thatRow, + status: 2 + } + createOperation(params2).then((res) => { + if (res.code == 200) { + this.$message.success("鎻愪氦鎴愬姛") + this.getData() + this.thatRow.status=2 + sendSalesDetailsToApsProject(this.thatRow).then((res)=>{ + if(res.code===200){ + this.$message.success("鎴愬姛鎺ㄩ�佽嚦aps绯荤粺") + } + }) + } + }) + } + }).catch((err)=>{ + this.$message.error(`缂栬緫澶辫触:${err}`) + }) + } + }) } } } @@ -621,4 +810,8 @@ .bgcWhite { background: #fff !important; } +.el-form-item{ + width: 80%; + margin: 20px auto; +} </style> -- Gitblit v1.8.0