From eed27d3000e127c433fd45609d0d5e5d06b7868c Mon Sep 17 00:00:00 2001 From: haoxuan <haoxuan> Date: 星期二, 26 十二月 2023 11:14:28 +0800 Subject: [PATCH] Merge branch 'dev' of http://192.168.5.5:10010/r/web/crm-web into dev --- src/views/sales/salesDetails/index.vue | 241 +++++++++++++++++++++++++++++------------------ 1 files changed, 147 insertions(+), 94 deletions(-) diff --git a/src/views/sales/salesDetails/index.vue b/src/views/sales/salesDetails/index.vue index 1d267bb..8c8a14e 100644 --- a/src/views/sales/salesDetails/index.vue +++ b/src/views/sales/salesDetails/index.vue @@ -62,8 +62,8 @@ class="tab-pane" @click="getTab(0)" :style="{ - background: isClickProduct ? '#2a78fb' : '#F1F3F8', - color: isClickProduct ? '#fff' : '#666' + background: TabsIndex==0 ? '#2a78fb' : '#F1F3F8', + color: TabsIndex==0 ? '#fff' : '#666' }" > 浜у搧淇℃伅 @@ -72,8 +72,8 @@ class="tab-pane" @click="getTab(1)" :style="{ - background: isClickInventory ? '#2a78fb' : '#F1F3F8', - color: isClickInventory ? '#fff' : '#666' + background: TabsIndex==1 ? '#2a78fb' : '#F1F3F8', + color: TabsIndex==1 ? '#fff' : '#666' }" > 搴撳瓨淇℃伅 @@ -82,11 +82,21 @@ class="tab-pane" @click="getTab(2)" :style="{ - background: isClickMake ? '#2a78fb' : '#F1F3F8', - color: isClickMake ? '#fff' : '#666' + background: TabsIndex==2 ? '#2a78fb' : '#F1F3F8', + color: TabsIndex==2 ? '#fff' : '#666' }" > 鍒堕�犱俊鎭� + </div> + <div + class="tab-pane" + @click="getTab(3)" + :style="{ + background: TabsIndex==3 ? '#2a78fb' : '#F1F3F8', + color: TabsIndex==3 ? '#fff' : '#666' + }" + > + 閲囪喘淇℃伅 </div> </div> <div class="list-view"> @@ -103,31 +113,21 @@ </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-dialog title="璇烽�夋嫨椤圭洰" :visible.sync="projectListShow" width="400px" :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"> + <span slot="footer" class="dialog-footer dialog_btn"> <el-button @click="projectListShow = false">鍙� 娑�</el-button> <el-button type="primary" @click="affirmCommitBtn">纭� 瀹�</el-button> </span> @@ -161,7 +161,7 @@ import pageMixin from "@/components/makepager/pager/mixin/pageMixin" import DetailSpecification from "@/views/sales/salesDetails/DetailSpecification" import AddCollectionPlan from "@/views/other/payment/collectionPlan/AddCollectionPlan" - +import { getDataByType } from "@/api/data" export default { name: "SalesDetails", props: { @@ -191,7 +191,7 @@ data() { // 浜у搧淇℃伅 const productColumn = [ - { label: "浜у搧缂栧彿", prop: "id", default: true }, + { label: "浜у搧缂栧彿", prop: "number", default: true }, { label: "浜у搧鍚嶇О", prop: "name" }, { label: "鏁伴噺", prop: "amount" }, { label: "鍗曚綅", prop: "unit" }, @@ -203,7 +203,7 @@ ] // 搴撳瓨淇℃伅 const inventoryColumn = [ - { label: "浜у搧缂栧彿", prop: "id", default: true }, + { label: "浜у搧缂栧彿", prop: "number", default: true }, { label: "浜у搧鍚嶇О", prop: "name" }, { label: "璁㈠崟鏁伴噺", prop: "orderAmount" }, { label: "浠撳簱", prop: "warehouse" }, @@ -221,6 +221,32 @@ { label: "璁″垝寮�濮嬫椂闂�", prop: "startTime" }, { label: "璁″垝缁撴潫鏃堕棿", prop: "endTime" } ] + // 閲囪喘淇℃伅 + const purchaseColumn=[ + { + label: "閲囪喘鍗曞彿", + prop: "purchaseNumber", + default: true + }, + { + label: "閲囪喘鍗曞悕绉�", + prop: "purchaseName", + }, + { + label: "渚涘簲鍟嗗悕绉�", + prop: "supplierName", + }, + { + label: "閲囪喘鏁伴噺", + prop: "amount", + }, + { + label: "鐘舵��", + prop: "status", + isCallMethod: true, + getCallMethod: this.getpurchaseStatus, + }, + ]; return { tableList: {}, searchOptions: [], @@ -277,9 +303,6 @@ showCol: ["璁㈠崟缂栧彿", "閿�鍞礋璐d汉", "绛剧害鏃ユ湡", "浜や粯鏃ユ湡", "璁㈠崟鏉ユ簮", "鍚堣", "鐘舵��"], tableBottomColumn: [], showBottomCol: [], - isClickProduct: true, // 浜у搧淇℃伅 - isClickInventory: false, // 搴撳瓨淇℃伅 - isClickMake: false, // 鍒堕�犱俊鎭� TabsIndex: "0", productTableList: {}, productColumn: productColumn, @@ -288,16 +311,21 @@ showInventoryCol: ["浜у搧缂栧彿", "浜у搧鍚嶇О", "璁㈠崟鏁伴噺", "浠撳簱", "鍦ㄥ簱鏁伴噺", "鍙敤搴撳瓨", "鍗曚綅"], makeColumn: makeColumn, showMakeCol: ["鐢熶骇璁㈠崟", "浜у搧鍚嶇О", "璁㈠崟鐘舵��", "宸ュ崟缂栧彿", "宸ュ崟鐘舵��", "璁″垝寮�濮嬫椂闂�", "璁″垝缁撴潫鏃堕棿"], + // 閲囪喘 + purchaseColumn: purchaseColumn, + showPurchaseCol: ['閲囪喘鍗曞彿','閲囪喘鍗曞悕绉�',"渚涘簲鍟嗗悕绉�", "閲囪喘鏁伴噺", "鐘舵��"], selectRow: {}, - projectList:[], - projectListShow:false, - projects:{ - projectId:'', + projectList: [], + projectListShow: false, + projects: { + projectId: "" }, - thatRow:{}, + thatRow: {}, rules: { - projectId: [{ required: true, message: "璇烽�夋嫨椤圭洰", trigger: "change" }], + projectId: [{ required: true, message: "璇烽�夋嫨椤圭洰", trigger: "change" }] }, + purchaseStatusList: getDataByType("purchaseStatus"), + loading:false, } }, created() { @@ -313,6 +341,17 @@ this.getProjectList() }, methods: { + getpurchaseStatus(val) { + if (val) { + for (let i in this.purchaseStatusList) { + if (this.purchaseStatusList[i].id == val) { + return this.purchaseStatusList[i].name; + } + } + } else { + return "--"; + } + }, setTable() { // top 鏄庣粏鍗曞垪琛� this.tableList = { @@ -369,7 +408,6 @@ }, // 璇锋眰鏁版嵁 async getData() { - this.loading = true let params = {} console.log(this.addConfig) if (this.addConfig.keywordType === "瀹㈡埛鍚嶇О") { @@ -398,9 +436,9 @@ pageSize: this.pagerOptions.pageSize } } + this.loading = true await getSalesDetailsList(params) .then((res) => { - console.log(res) if (res.code === 200) { if (res.data.list && res.data.list.length > 0) { const list = res.data.list.map((item) => { @@ -415,8 +453,7 @@ 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.getProductInventoryInfo(row) + this.tableRowClick(this.selectRow) } } else { this.tableList.tableInfomation = [] @@ -434,22 +471,35 @@ }, // 鑾峰彇浜у搧/搴撳瓨淇℃伅 async getProductInventoryInfo(row) { - console.log(row.status, "鐘舵��", row) if (row.status === 1) { - this.productTableList.tableInfomation = row.products + this.productTableList.tableInfomation = row.products || [] } else { + this.loading = true await getProductInventoryInfo(row.number).then((res) => { - console.log(res) - this.productTableList.tableInfomation = res.data + this.productTableList.tableInfomation = res.data?.length > 0 ? res.data : [] + this.loading = false + }).catch(() => { + this.productTableList.tableInfomation = [] + this.loading = false }) } }, // 鑾峰彇鍒堕�犱俊鎭� async getProductOrderInfo(number) { - await getProductOrderInfo(number).then((res) => { - console.log(res) - this.productTableList.tableInfomation = res.data - }) + if(number){ + this.loading = true + await getProductOrderInfo(number).then((res) => { + if(this.TabsIndex == 3){ + this.productTableList.tableInfomation = (res.data&&res.data.purchaseInfo) ? res.data.purchaseInfo : [] + }else{ + this.productTableList.tableInfomation = (res.data&&res.data.makeInfo) ? res.data.makeInfo : [] + } + this.loading = false + }).catch(() => { + this.productTableList.tableInfomation = [] + this.loading = false + }) + } }, // 鎼滅储 onFilterSearch(searchText) { @@ -474,34 +524,32 @@ }, // 鏌ョ湅 缂栬緫 handleClick(row, title) { - console.log(row, title) - this.editConfig.visible = true + let params = JSON.parse(JSON.stringify(row)); this.editConfig.title = title this.editConfig.infomation = { - ...row, + ...params, currency: "浜烘皯甯�", - sale_chance_name: row.saleChance.name, - deliverType: row.deliverType === 0 ? "" : row.deliverType, - quotation_number: row.quotation.number + sale_chance_name: params.saleChance.name, + deliverType: params.deliverType === 0 ? "" : params.deliverType, + quotation_number: params.quotation.number } + this.editConfig.visible = true }, // 纭鎻愪氦 async submitClick(row) { - this.thatRow=row - if(row.projectId==""){ - this.$message.error("璇峰厛濉啓椤圭洰淇℃伅") - this.projectListShow=true - }else{ + this.thatRow = row + if (row.projectId == "") { + this.projectListShow = true + } else { let params = { ...row, status: 2 } - console.log(params,"鐪嬬湅params") - await sendSalesDetailsToOtherSystem(params).then((res)=>{ + await sendSalesDetailsToOtherSystem(params).then((res) => { if (res.code == 200) { this.$message.success("鎴愬姛鎺ㄩ�佽嚦aps绯荤粺") this.getData() - this.thatRow.status=2 + this.thatRow.status = 2 } }) } @@ -583,30 +631,27 @@ getTab(tab) { this.TabsIndex = tab if (this.TabsIndex == 0) { - this.isClickProduct = true - this.isClickInventory = false - this.isClickMake = false // 浜у搧淇℃伅鍒楄〃 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 - this.isClickMake = false // 搴撳瓨淇℃伅鍒楄〃 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 - this.isClickMake = true // 鍒堕�犱俊鎭垪琛� this.tableBottomColumn = this.makeColumn this.showBottomCol = this.showMakeCol + this.setBottomList() + this.getProductOrderInfo(this.selectRow.number) + } else if (this.TabsIndex == 3) { + // 閲囪喘淇℃伅鍒楄〃 + this.tableBottomColumn = this.purchaseColumn + this.showBottomCol = this.showPurchaseCol this.setBottomList() this.getProductOrderInfo(this.selectRow.number) } @@ -616,8 +661,7 @@ return val === 1 ? "寰呯‘璁�" : val === 2 ? "寰呭嚭搴�" : val === 3 ? "鍑哄簱瀹屾垚" : val === 4 ? "宸插叧闂�" : "--" }, // top 琛岀偣鍑� - tableRowClick(row, column, event) { - console.log(row, column, event) + tableRowClick(row) { this.selectRow = row if (this.TabsIndex == 0) { this.getProductInventoryInfo(this.selectRow) @@ -625,24 +669,26 @@ this.getProductInventoryInfo(this.selectRow) } else if (this.TabsIndex == 2) { this.getProductOrderInfo(this.selectRow.number) + }else if(this.TabsIndex == 3) { + // 閲囪喘淇℃伅 + this.getProductOrderInfo(this.selectRow.number) } }, // 鑾峰彇椤圭洰鍒楄〃 - async getProjectList(){ + async getProjectList() { await getProjectList({ page: 1, - pageSize: 100, + pageSize: 100 }).then((res) => { - console.log(res.data,"椤圭洰鍒楄〃淇℃伅") - this.projectList=res.data + this.projectList = res.data?res.data:[] }) }, handleClose(done) { done() }, - + saveParams() { - let params={ + let params = { address: this.thatRow.address || "", addressee: this.thatRow.addressee || "", clientId: this.thatRow.clientId || 0, @@ -662,25 +708,25 @@ logisticNumber: this.thatRow.logisticNumber || "", quotationId: this.thatRow.quotationId, deliverType: this.thatRow.deliverType || 0, - status: this.thatRow.deliverType, - projectId:this.projects.projectId||0 + status: this.thatRow.deliverType, + projectId: this.projects.projectId || 0 } return params }, // 纭鎻愪氦 - affirmCommitBtn(){ - let params=this.saveParams() - this.$refs['form'].validate((valid) => { - if(valid){ + affirmCommitBtn() { + let params = this.saveParams() + this.$refs["form"].validate((valid) => { + if (valid) { console.log() - this.projectListShow=false - console.log(params,"閫夋嫨椤圭洰鍚庣殑params") - params.status=2 - sendSalesDetailsToOtherSystem(params).then((res)=>{ + this.projectListShow = false + console.log(params, "閫夋嫨椤圭洰鍚庣殑params") + params.status = 2 + sendSalesDetailsToOtherSystem(params).then((res) => { if (res.code == 200) { this.$message.success("鎴愬姛鎺ㄩ�佽嚦aps绯荤粺") this.getData() - this.thatRow.status=2 + this.thatRow.status = 2 } }) } @@ -746,6 +792,7 @@ margin-right: 20px; font-size: 14px !important; text-align: center; + cursor: pointer; background: #2a78fb; border-top-left-radius: 20px; border-top-right-radius: 20px; @@ -786,8 +833,14 @@ .bgcWhite { background: #fff !important; } -.el-form-item{ +.el-form-item { width: 80%; margin: 20px auto; } +::v-deep .el-dialog__footer { + text-align: right !important; + .el-button { + margin-right: 10px; + } +} </style> -- Gitblit v1.8.0