From d4f4c52402b91cb8e17c1845da71c5e39662fde0 Mon Sep 17 00:00:00 2001 From: yangfeng <wanwan926_4@163.com> Date: 星期三, 03 一月 2024 15:28:06 +0800 Subject: [PATCH] 销售报价单列表页增加统计内容及接口联调、添加报价单天天客户名称及对应限制功能 --- src/views/sales/salesDetails/index.vue | 849 ++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 763 insertions(+), 86 deletions(-) diff --git a/src/views/sales/salesDetails/index.vue b/src/views/sales/salesDetails/index.vue index 1b6e83a..e88abf1 100644 --- a/src/views/sales/salesDetails/index.vue +++ b/src/views/sales/salesDetails/index.vue @@ -1,34 +1,187 @@ <template> <div class="sales-details"> - <SearchCommonView ref="searchCommonView" :query-class-options="queryClassOptions" :search-options="searchOptions" /> - <div class="btn-pager"> - <PublicFunctionBtnView :submit-approval="true" :operates-list="operatesList" /> - <PagerView class="page" /> + <div v-if="isDetail" class="detail-top"> + <DetailListCommonBtn /> </div> - <TableCommonView ref="tableListRef" :show-summary="showSummary" :table-list="tableList"> - <template slot="tableButton"> - <el-table-column label="鎿嶄綔" width="90"> - <template slot-scope="scope"> - <el-button @click="handleClick(scope.row)" type="text" size="small">缂栬緫</el-button> - <el-button @click="delClick(scope.row.id)" type="text" size="small">鍒犻櫎</el-button> + + <div v-else class="filter"> + <div class="filter-card"> + <CommonSearch + :show-add="false" + :show-download="false" + :amount-view="false" + :show-action-btn="false" + placeholder="璇疯緭鍏ヨ鍗曠紪鍙�" + @searchClick="onFilterSearch" + > + <template slot="leftButton"> + <el-button size="small" type="primary" @click="addBtnClick">鏂板缓</el-button> + <!-- <el-button size="small" @click="delClick">鍒犻櫎</el-button> --> </template> - </el-table-column> - </template> - </TableCommonView> + </CommonSearch> + </div> + </div> + + <div class="body"> + <!-- <div class="body-card"> --> + <div class="content-top"> + <div class="list-view"> + <TableCommonView + ref="tableListRef" + :show-summary="showSummary" + :table-list="tableList" + @selClientClick="selClientClick" + @selCommonClick="selCommonClick" + @getSelectArray="getSelectArray" + @selTableCol="selTableCol" + @tableRowClick="tableRowClick" + :selectClassRow="selectRow" + > + <template slot="tableButton"> + <el-table-column label="鎿嶄綔" width="180"> + <template slot-scope="scope"> + <el-button @click.stop="handleClick(scope.row, '鏌ョ湅')" type="text" size="small">鏌ョ湅</el-button> + <template v-if="scope.row.status === 1"> + <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.stop="closeClick(scope.row)" type="text" size="small">鍏抽棴</el-button> + </template> + </template> + </el-table-column> + </template> + </TableCommonView> + </div> + <div class="btn-pager"> + <PagerView class="page" :pager-options="pagerOptions" v-on="pagerEvents" /> + </div> + </div> + <div class="content-bottom"> + <div class="bottom-tabs" :class="!isDetail ? 'bgcGrey' : 'bgcWhite'"> + <div + class="tab-pane" + @click="getTab(0)" + :style="{ + background: TabsIndex == 0 ? '#2a78fb' : '#F1F3F8', + color: TabsIndex == 0 ? '#fff' : '#666' + }" + > + 浜у搧淇℃伅 + </div> + <div + class="tab-pane" + @click="getTab(1)" + :style="{ + background: TabsIndex == 1 ? '#2a78fb' : '#F1F3F8', + color: TabsIndex == 1 ? '#fff' : '#666' + }" + > + 鍙戣揣淇℃伅 + </div> + <div + class="tab-pane" + @click="getTab(2)" + :style="{ + 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"> + <TableCommonView :loading="loading" :table-list="productTableList" @selTableCol="selBottomTableCol"> + <!-- <template slot="tableButton"> + <el-table-column label="鎿嶄綔" width="160" fixed="right"> + <template slot-scope="scope"> + <el-button @click="viewClick(scope.row)" type="text" size="small">鏌ョ湅</el-button> + </template> + </el-table-column> + </template> --> + </TableCommonView> + </div> + </div> + </div> + <!-- 纭鎻愪氦-閫夋嫨椤圭洰 --> + <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 dialog_btn"> + <el-button @click="projectListShow = false">鍙� 娑�</el-button> + <el-button type="primary" @click="affirmCommitBtn">纭� 瀹�</el-button> + </span> + </el-dialog> <!-- 鏂板缓/缂栬緫 --> - <AddSalesDetailsDialog v-if="editConfig.visible" :edit-common-config="editConfig" /> + <AddSalesDetailsDialog + v-if="editConfig.visible" + :edit-common-config="editConfig" + @addCollectionPlanClick="addCollectionPlanClick" + /> + <!-- 閿�鍞槑缁嗚鎯� --> + <DetailSpecification v-if="specificationDetail.visible" :specification-detail="specificationDetail" /> + <!-- 瀹㈡埛璇︽儏 --> + <DetailClientManage v-if="clientDeail.visible" :client-manage-detail="clientDeail" /> + <!-- 鏂板缓 鏀舵璁″垝 --> + <AddCollectionPlan v-if="addCollectionConfig.visible" :edit-common-config="addCollectionConfig" /> </div> </template> <script> import AddSalesDetailsDialog from "@/views/sales/salesDetails/AddSalesDetailsDialog" -import { getSalesDetailsList, getDelSalesDetails } from "@/api/sales/salesDetails" - +import { + getSalesDetailsList, + getDelSalesDetails, + getProductInventoryInfo, + getProductOrderInfo, + updateStatus, + getProjectList, + sendSalesDetailsToOtherSystem +} 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" +import { getDataByType } from "@/api/data" export default { name: "SalesDetails", - props: {}, + props: { + isDetail: { + type: Boolean, + default: false + }, + addConfig: { + type: Object, + default: () => { + return {} + } + } + }, + mixins: [pageMixin], components: { - AddSalesDetailsDialog + AddSalesDetailsDialog, + DetailSpecification, + DetailClientManage: () => import("@/views/client/client/DetailClientManage"), + AddCollectionPlan }, computed: { searchCommonHeight() { @@ -36,94 +189,286 @@ } }, data() { + // 浜у搧淇℃伅 + const productColumn = [ + { label: "浜у搧缂栧彿", prop: "number", default: true }, + { label: "浜у搧鍚嶇О", prop: "name" }, + { label: "鏁伴噺", prop: "amount" }, + { label: "鍗曚綅", prop: "unit" }, + { label: "閿�鍞崟浠�", prop: "salePrice", price: true }, + { label: "鎴愭湰鍗曚环", prop: "cost" }, + { label: "姣涘埄", prop: "profit" }, + { label: "姣涘埄鐜�(%)", prop: "margin" }, + { label: "浠风◣鍚堣", prop: "total", price: true } + ] + // 搴撳瓨淇℃伅 + const inventoryColumn = [ + { label: "浜у搧缂栧彿", prop: "number", default: true }, + { label: "浜у搧鍚嶇О", prop: "name" }, + { label: "璁㈠崟鏁伴噺", prop: "orderAmount" }, + { label: "鍙戣揣鍗�", prop: "invoice" }, + { label: "鎵胯繍鍟�", prop: "carrier" }, + { label: "杩愬崟鍙�", prop: "waybill" }, + { label: "浠撳簱", prop: "warehouse" }, + { label: "鍦ㄥ簱鏁伴噺", prop: "amount" }, + { label: "鍙敤搴撳瓨", prop: "availableNumber" }, + { label: "鍗曚綅", prop: "unit" } + ] + // 鍒堕�犱俊鎭� + const makeColumn = [ + { label: "鐢熶骇璁㈠崟", prop: "orderId", default: true }, + { label: "浜у搧鍚嶇О", prop: "productName" }, + { label: "璁㈠崟鐘舵��", prop: "orderStatus" }, + { label: "宸ュ崟缂栧彿", prop: "workOrderId" }, + { label: "宸ュ崟鐘舵��", prop: "workOrderStatus" }, + { 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: {}, - queryClassOptions: [ - { value: "1", label: "鍏ㄩ儴" }, - { value: "2", label: "宸插彂璐�" }, - { value: "3", label: "寰呴噰璐�" }, - { value: "4", label: "鏈湀浜や粯" }, - { value: "5", label: "宸蹭綔搴�" } - ], searchOptions: [], - operatesList: [ - { id: "1", name: "鍏变韩" }, - { id: "2", name: "鎵归噺缂栬緫" }, - { id: "3", name: "瀵煎嚭" }, - { id: "4", name: "涓嬭浇鍏ㄩ儴闄勪欢" }, - { id: "5", name: "鏇存敼鍒涘缓浜�" }, - { id: "6", name: "鏍戠粨鏋勮缃�" }, - { id: "7", name: "瀹℃壒璁剧疆" }, - { id: "8", name: "鎭㈠棰勮鍒楀" } - ], editConfig: { visible: false, title: "鏂板缓", infomation: {} }, showSummary: { - show: true, + show: false, sumProp: [ "receiveTotalAmount", - "total", + "amountTotal", "amountReceivable", "invoicedAmount", "uninvoicedAmount", "number", "unOutoundNo", + "taxUnitPrice", "priceTax" ], mergeNumber: 6 - } + }, + specificationDetail: { + visible: false, + infomation: {} + }, + clientDeail: { + visible: false, + infomation: {} + }, + selValueList: [], + search_map: {}, + searchSel: { + value: "number", + label: "璁㈠崟缂栧彿" + }, + keyword: "", + keywordType: "", + addCollectionConfig: { + visible: false, + title: "鏂板缓", + infomation: {} + }, + tableColumn: [ + { label: "璁㈠崟缂栧彿", prop: "number", isCommonClick: true, default: true }, + { label: "閿�鍞礋璐d汉", prop: "member_name" }, + { label: "绛剧害鏃ユ湡", prop: "signTime" }, + { label: "浜や粯鏃ユ湡", prop: "deliveryDate" }, + { label: "璁㈠崟鏉ユ簮", prop: "source" }, + { label: "鍚堣", prop: "amountTotal", price: true }, + { label: "鐘舵��", prop: "status", isCallMethod: true, getCallMethod: this.getStatus } + ], + showCol: ["璁㈠崟缂栧彿", "閿�鍞礋璐d汉", "绛剧害鏃ユ湡", "浜や粯鏃ユ湡", "璁㈠崟鏉ユ簮", "鍚堣", "鐘舵��"], + tableBottomColumn: [], + showBottomCol: [], + TabsIndex: "0", + productTableList: {}, + productColumn: productColumn, + showProductCol: ["浜у搧缂栧彿", "浜у搧鍚嶇О", "鏁伴噺", "鍗曚綅", "閿�鍞崟浠�", "鎴愭湰鍗曚环", "姣涘埄", "姣涘埄鐜�(%)", "浠风◣鍚堣"], + inventoryColumn: inventoryColumn, + showInventoryCol: [ + "浜у搧缂栧彿", + "浜у搧鍚嶇О", + "璁㈠崟鏁伴噺", + "鍙戣揣鍗�", + "鎵胯繍鍟�", + "杩愬崟鍙�", + "浠撳簱", + "鍦ㄥ簱鏁伴噺", + "鍙敤搴撳瓨", + "鍗曚綅" + ], + makeColumn: makeColumn, + showMakeCol: ["鐢熶骇璁㈠崟", "浜у搧鍚嶇О", "璁㈠崟鐘舵��", "宸ュ崟缂栧彿", "宸ュ崟鐘舵��", "璁″垝寮�濮嬫椂闂�", "璁″垝缁撴潫鏃堕棿"], + // 閲囪喘 + purchaseColumn: purchaseColumn, + showPurchaseCol: ["閲囪喘鍗曞彿", "閲囪喘鍗曞悕绉�", "渚涘簲鍟嗗悕绉�", "閲囪喘鏁伴噺", "鐘舵��"], + selectRow: {}, + projectList: [], + projectListShow: false, + projects: { + projectId: "" + }, + thatRow: {}, + rules: { + projectId: [{ required: true, message: "璇烽�夋嫨椤圭洰", trigger: "change" }] + }, + purchaseStatusList: getDataByType("purchaseStatus"), + loading: false } }, created() { this.setTable() + if (!this.isDetail) { + this.keyword = "" + this.keywordType = "" + } else { + this.keyword = this.addConfig.keyword + this.keywordType = this.addConfig.keywordType + } this.getData() + 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 = { + selectIndex: true, tableInfomation: [], - tableColumn: [ - { label: "璁㈠崟缂栧彿", prop: "number" }, - { label: "瀹㈡埛鍚嶇О", prop: "client_name" }, - { label: "绛剧害鏃ユ湡", prop: "signTime", isTime: true, width: 150 }, - { label: "閿�鍞礋璐d汉", prop: "memberId" }, - { label: "鍑哄簱鐘舵��", prop: "outboundStatus" }, - { label: "宸叉敹鎬婚", prop: "receiveTotalAmount", price: true }, - { label: "鍚堣", prop: "total", price: true }, - { label: "搴旀敹浣欓", prop: "amountReceivable", price: true }, - { label: "宸插紑绁ㄩ噾棰�", prop: "invoicedAmount", price: true }, - { label: "鏈紑绁ㄩ噾棰�", prop: "uninvoicedAmount", price: true }, - { label: "浜у搧鍚嶇О", prop: "productName" }, - { label: "鏁伴噺", prop: "number1" }, - { label: "鍚◣鍗曚环", prop: "taxUnitPrice", price: true }, - { label: "鏈嚭搴撴暟閲�", prop: "unOutoundNo" }, - { label: "浠风◣鍚堣", prop: "priceTax", price: true } - ] + allcol: [], + showcol: this.showCol, + tableColumn: this.setColumnVisible(this.showCol, this.tableColumn) } + this.setTableList(this.tableList) + + // bottom 浜у搧淇℃伅/搴撳瓨淇℃伅/鍒堕�犱俊鎭垪琛� + this.tableBottomColumn = this.productColumn + this.showBottomCol = this.showProductCol + this.setBottomList() + }, + // bom 鍒楄〃 + setBottomList() { + this.productTableList = { + selectIndex: true, + tableInfomation: [], + allcol: [], + showcol: this.showBottomCol, + tableColumn: this.setColumnVisible(this.showBottomCol, this.tableBottomColumn) + } + this.setTableList(this.productTableList) + }, + setTableList(tableList) { + tableList.allcol = tableList.tableColumn.filter((ele) => !ele.default).map((ele) => ele.label) this.searchOptions = [] - for (let i = 0; i < this.tableList.tableColumn.length; i++) { - const label = this.tableList.tableColumn[i].label - this.searchOptions.push({ value: (i + 1).toString(), label: label }) + for (let i = 0; i < tableList.tableColumn.length; i++) { + const label = tableList.tableColumn[i].label + const value = tableList.tableColumn[i].prop + this.searchOptions.push({ value: value, label: label }) } + }, + setColumnVisible(showCol, tableColumn) { + return tableColumn.map((ele) => { + return { + ...ele, + isShowColumn: showCol.includes(ele.label) + } + }) + }, + // top 鏄庣粏鍗� + selTableCol(val) { + this.showcol = val + this.tableList.tableColumn = this.setColumnVisible(val, this.tableColumn) + }, + // bottom 浜у搧淇℃伅 + selBottomTableCol(val) { + this.showcol = val + this.productTableList.tableColumn = this.setColumnVisible(val, this.tableBottomColumn) }, // 璇锋眰鏁版嵁 async getData() { + let params = {} + console.log(this.addConfig) + if (this.addConfig.keywordType === "瀹㈡埛鍚嶇О") { + params = { + clientId: this.addConfig.client_id, + page: this.pagerOptions.currPage, + pageSize: this.pagerOptions.pageSize + } + } else if (this.addConfig.keywordType === "閿�鍞満浼�") { + params = { + saleChanceId: this.addConfig.sale_chance_id, + page: this.pagerOptions.currPage, + pageSize: this.pagerOptions.pageSize + } + } else if (this.addConfig.keywordType === "閿�鍞瓙鍗�") { + params = { + number: this.addConfig.subbill_name, + page: this.pagerOptions.currPage, + pageSize: this.pagerOptions.pageSize + } + } else { + params = { + keyword: this.keyword, + keywordType: this.keywordType, + page: this.pagerOptions.currPage, + pageSize: this.pagerOptions.pageSize + } + } this.loading = true - await getSalesDetailsList() + 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) => { return { ...item, - client_name: item.client.name + client_name: item.client.name, + member_name: item.Member.username, + source: "" } }) 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] : {} + this.tableRowClick(this.selectRow) + } } else { this.tableList.tableInfomation = [] } @@ -138,41 +483,282 @@ this.loading = false }) }, + // 鑾峰彇浜у搧/搴撳瓨淇℃伅 + async getProductInventoryInfo(row) { + if (this.TabsIndex == 0 || row.status == 1) { + this.productTableList.tableInfomation = row.products || [] + } else { + if (row.number) { + this.loading = true + await getProductInventoryInfo(row.number) + .then((res) => { + this.productTableList.tableInfomation = res.data?.length > 0 ? res.data : [] + this.loading = false + }) + .catch(() => { + this.productTableList.tableInfomation = [] + this.loading = false + }) + } + } + }, + // 鑾峰彇鍒堕�犱俊鎭� + async getProductOrderInfo(number) { + 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) { + this.keyword = searchText ?? "" + this.keywordType = "璁㈠崟缂栧彿" + this.pagerOptions.currPage = 1 + this.getData() + }, // 鏂板缓 addBtnClick() { this.editConfig.visible = true this.editConfig.title = "鏂板缓" - this.editConfig.infomation = {} + console.log(this.addConfig) + this.editConfig.infomation = { + ...this.addConfig, + currency: "浜烘皯甯�", + sale_chance_name: "", + subbill_name: "", + client_name: this.addConfig?.client_name ?? "", + quotation_number: "" + } }, - // 缂栬緫 - handleClick(row) { - console.log(row) + // 鏌ョ湅 缂栬緫 + handleClick(row, title) { + let params = JSON.parse(JSON.stringify(row)) + this.editConfig.title = title + this.editConfig.infomation = { + ...params, + currency: "浜烘皯甯�", + sale_chance_name: params.saleChance.name, + deliverType: params.deliverType === 0 ? "" : params.deliverType, + quotation_number: params.quotation.number + } this.editConfig.visible = true - this.editConfig.title = "缂栬緫" - this.editConfig.infomation = { ...row } + }, + // 纭鎻愪氦 + async submitClick(row) { + this.thatRow = row + if (row.projectId == "") { + this.projectListShow = true + } else { + let params = { + ...row, + status: 2 + } + await sendSalesDetailsToOtherSystem(params).then((res) => { + if (res.code == 200) { + this.$message.success("鎴愬姛鎺ㄩ�佽嚦aps绯荤粺") + this.getData() + this.thatRow.status = 2 + } + }) + } + }, + // 鍏抽棴 + 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(id) { + delClick(rowID) { + console.log(rowID, "xxxxshanchu") + // if (this.selValueList && this.selValueList.length > 0) { this.$confirm("鏄惁纭鍒犻櫎?", "璀﹀憡", { confirmButtonText: "纭畾", cancelButtonText: "鍙栨秷", type: "warning" }) - .then(function () { - return getDelSalesDetails({ id: id }) + .then(() => { + getDelSalesDetails({ ids: [rowID] }).then((response) => { + if (response.code === 200) { + this.$message.success("鍒犻櫎鎴愬姛") + this.getData() + } else { + this.$message.warning("鍒犻櫎澶辫触") + } + }) }) - .then((response) => { - if (response.code === 200) { - this.$message.success("鍒犻櫎鎴愬姛") - this.getData() - } else { - this.$message.warning("鍒犻櫎澶辫触") - } - }) - .catch(function () {}) + .catch(() => {}) + // } else { + // this.$message.warning("璇疯嚦灏戦�夋嫨涓�鏉¤褰�") + // } }, getSelectArray(val) { console.log(val) + this.selValueList = [] + const list = val.map((item) => { + return item.id + }) + this.selValueList = list + }, + // 瀹㈡埛鍚嶇О璇︽儏 + selClientClick(row) { + console.log(row) + this.clientDeail.visible = true + this.clientDeail.infomation = { + ...row.client, + member: row.Member, + client_name: row.client.name, + client_level: row.client.client_level.name, + client_status: row.client.client_status.name + } + }, + // 鑱旂郴浜鸿鎯� + selCommonClick(row) { + this.specificationDetail.infomation = { ...row } + this.specificationDetail.visible = true + }, + addCollectionPlanClick(row) { + this.addCollectionConfig.visible = true + this.addCollectionConfig.title = "鏂板缓" + this.addCollectionConfig.sourceType = 1 + this.addCollectionConfig.infomation = { ...row } + }, + //鑾峰彇褰撳墠閫変腑璧勬簮鐨刬d + getTab(tab) { + this.TabsIndex = tab + if (this.TabsIndex == 0) { + // 浜у搧淇℃伅鍒楄〃 + this.tableBottomColumn = this.productColumn + this.showBottomCol = this.showProductCol + this.setBottomList() + this.getProductInventoryInfo(this.selectRow) + } else if (this.TabsIndex == 1) { + // 搴撳瓨淇℃伅鍒楄〃 + this.tableBottomColumn = this.inventoryColumn + this.showBottomCol = this.showInventoryCol + this.setBottomList() + if (this.selectRow.status == 1) { + this.productTableList.tableInfomation = [] + } else { + this.getProductInventoryInfo(this.selectRow) + } + } else if (this.TabsIndex == 2) { + // 鍒堕�犱俊鎭垪琛� + 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) + } + }, + // 鐘舵�� + getStatus(val) { + return val === 1 ? "寰呯‘璁�" : val === 2 ? "寰呭嚭搴�" : val === 3 ? "鍑哄簱瀹屾垚" : val === 4 ? "宸插叧闂�" : "--" + }, + // top 琛岀偣鍑� + tableRowClick(row) { + this.selectRow = row + if (this.TabsIndex == 0) { + this.getProductInventoryInfo(this.selectRow) + } else if (this.TabsIndex == 1) { + if (this.selectRow.status == 1) { + this.productTableList.tableInfomation = [] + } else { + 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() { + await getProjectList({ + page: 1, + pageSize: 100 + }).then((res) => { + this.projectList = res.data ? 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 + 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 + } + }) + } + }) } } } @@ -180,18 +766,109 @@ <!-- Add "scoped" attribute to limit CSS to this component only --> <style lang="scss" scoped> +::v-deep { + .el-table .el-table__cell { + padding: 0; + } + .el-table__footer-wrapper tbody td.el-table__cell { + height: 48px; + } +} + .sales-details { - .btn-pager { + height: 100%; + overflow: hidden; + .filter { + height: 80px; display: flex; - .page { - margin-left: auto; + align-items: center; + padding: 12px 20px 0 20px; + &-card { + height: 80px; + display: flex; + align-items: center; + box-sizing: border-box; + padding: 10px 20px; + flex: 1; + border-radius: 12px; + background-color: #fff; + } + } + .body { + box-sizing: border-box; + padding: 10px 20px; + border-radius: 12px; + height: calc(100% - 70px); + .content-top { + background-color: #fff; + border-radius: 12px; + min-height: 70px; + height: 48%; + position: relative; + .list-view { + height: calc(100% - 60px); + } + } + .content-bottom { + .bottom-tabs { + height: 40px; + line-height: 40px; + background: #e6ecf2; + display: flex; + .tab-pane { + width: 100px; + margin-right: 20px; + font-size: 14px !important; + text-align: center; + cursor: pointer; + background: #2a78fb; + border-top-left-radius: 20px; + border-top-right-radius: 20px; + } + } + .lable-view { + background: #e6ecf2; + height: 40px; + line-height: 40px; + .name { + border-left: 4px solid #2a78fb; + padding-left: 10px; + } + } + background-color: #fff; + border-radius: 12px; + min-height: 70px; + height: calc(52% - 60px); + margin-top: 10px; + // padding: 10px 20px; + .list-view { + height: calc(100% - 10px); + } + } + .btn-pager { + display: flex; + margin-top: 10px; + .page { + margin-left: auto; + } } } } -::v-deep { - .el-table .cell, - .el-table th.el-table__cell > .cell { - padding: 0 2px; + +.bgcGrey { + background: #e6ecf2; +} +.bgcWhite { + background: #fff !important; +} +.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