From fb20919d312b7f3bf81805eda670f42fa2d18e39 Mon Sep 17 00:00:00 2001 From: haoxuan <haoxuan> Date: 星期三, 28 二月 2024 14:38:41 +0800 Subject: [PATCH] Merge branch 'master' of http://192.168.5.5:10010/r/web/crm-web --- src/views/service/serviceContract/AddServiceContractDialog.vue | 123 +++++++++------ src/components/makepager/TableCommonView.vue | 17 + src/views/sales/salesOpportunity/AddSalesOpportunityDialog.vue | 35 +++- src/components/makepager/CommonFormTableView.vue | 185 +++++++++++++---------- src/views/other/commonDialog/SelectCommonDialog.vue | 87 +++++----- 5 files changed, 264 insertions(+), 183 deletions(-) diff --git a/src/components/makepager/CommonFormTableView.vue b/src/components/makepager/CommonFormTableView.vue index 4476b95..6cffcd6 100644 --- a/src/components/makepager/CommonFormTableView.vue +++ b/src/components/makepager/CommonFormTableView.vue @@ -44,7 +44,7 @@ :disabled="!isOperate" @change=" (val) => { - commonInputChange(val, item.prop, scope.row,scope) + commonInputChange(val, item.prop, scope.row, scope) } " ></el-input> @@ -67,15 +67,23 @@ } " ></el-autocomplete> - <div class="common-select-btn" v-if="isOperate" @click="selClientClick(scope.row, item.prop)"> - <i class="el-icon-circle-plus-outline" title="閫夋嫨"></i> + + <div + v-if="scope.row[item.prop] && scope.row[item.prop].length > 0 && isOperate" + class="common-select-btn" + @click="handleEditClient(scope, item.prop)" + > + <i class="el-icon-edit" title="缂栬緫"></i> </div> <div - v-if="scope.row[item.prop] && scope.row[item.prop].length > 0&&isOperate" + v-if="scope.row[item.prop] && scope.row[item.prop].length > 0 && isOperate" class="common-select-btn" - @click="clearupClient(scope.row)" + @click="clearupClient(scope)" > <i class="el-icon-remove-outline" title="娓呴櫎"></i> + </div> + <div class="common-select-btn" v-else @click="selClientClick(scope, item.prop)"> + <i class="el-icon-circle-plus-outline" title="閫夋嫨"></i> </div> </div> </el-form-item> @@ -86,7 +94,13 @@ :rules="[{ required: item.isRequird ? true : false, message: '杈撳叆涓嶈兘涓虹┖' }]" > <!-- <el-input v-model.trim="scope.row[item.prop]" maxlength="50" size="mini"></el-input> --> - <el-date-picker :disabled="!isOperate" v-model="scope.row[item.prop]" type="date" size="mini" style="width: 110px"> + <el-date-picker + :disabled="!isOperate" + v-model="scope.row[item.prop]" + type="date" + size="mini" + style="width: 110px" + > </el-date-picker> </el-form-item> <el-form-item @@ -105,7 +119,7 @@ style="width: 100%; margin-right: 5px" @change=" (val) => { - commonInputChange(val, item.prop, scope.row,scope) + commonInputChange(val, item.prop, scope.row, scope) } " ></el-input-number> @@ -127,7 +141,7 @@ style="width: 100%; margin-right: 5px" @change=" (val) => { - commonInputChange(val, item.prop, scope.row,scope) + commonInputChange(val, item.prop, scope.row, scope) } " ></el-input-number> @@ -154,7 +168,7 @@ style="width: 100%; margin-right: 5px" @change=" (val) => { - commonInputChange(val, item.prop, scope.row,scope) + commonInputChange(val, item.prop, scope.row, scope) } " ></el-input-number> @@ -162,14 +176,9 @@ <span v-else style="text-align: right">{{ scope.row[item.prop] }}</span> </template> </el-table-column> - <el-table-column label="鎿嶄綔" width="40" v-if="!detailEnter" align="center"> + <el-table-column label="鎿嶄綔" width="40" v-if="!detailEnter" align="center"> <template slot-scope="scope"> - <el-button - type="text" - size="small" - :disabled="!isOperate" - @click="deleteClick(scope)" - >鍒犻櫎</el-button> + <el-button type="text" size="small" :disabled="!isOperate" @click="deleteClick(scope)">鍒犻櫎</el-button> </template> </el-table-column> <slot name="tableButton" /> @@ -179,7 +188,7 @@ <el-button size="small" type="primary" :disabled="!isOperate" @click="add">鏂板</el-button> <!-- <el-button size="small" type="primary" disabled>瀵煎叆鏄庣粏</el-button> --> <el-button size="small" type="primary" :disabled="!isOperate" @click="empty">娓呯┖</el-button> - <el-button size="small" type="primary" @click="recalculate" :disabled="(isRecalculate&&!isOperate) ? false : true" + <el-button size="small" type="primary" @click="recalculate" :disabled="isRecalculate && !isOperate ? false : true" >閲嶇畻</el-button > </div> @@ -199,6 +208,7 @@ <SelectCommonDialog v-if="editSelCommonConfig.editVisible" :edit-common-config="editSelCommonConfig" + :selectBoxList="tableList.tableData" :quotationNumber="quotationNumber" @selClient="selClient" @getSelectArray="getSelectArray" @@ -222,24 +232,24 @@ default: false }, // 閭d釜椤甸潰 鐢ㄦ潵鍒ゆ柇璁$畻鏂瑰紡 - pageName:{ - type:String, - default:'' + pageName: { + type: String, + default: "" }, // 鍒楄〃鏂板鏄惁澶氶�� - addTypeIdMultiple:{ - type:Boolean, - default:false, + addTypeIdMultiple: { + type: Boolean, + default: false }, // 鏍规嵁鎶ヤ环鍗曟煡璇骇鍝� - quotationNumber:{ - type:[String,Number], - default:'' + quotationNumber: { + type: [String, Number], + default: "" }, - // 鏄惁鍙互鎿嶄綔 娣诲姞绛� - isOperate:{ - type:Boolean, - default:true, + // 鏄惁鍙互鎿嶄綔 娣诲姞绛� + isOperate: { + type: Boolean, + default: true }, productTableList: { type: Object, @@ -274,7 +284,7 @@ tableList: [], editSelCommonConfig: { editVisible: false, - isSelectBox:false, + isSelectBox: false, title: "", infomation: {} }, @@ -344,13 +354,13 @@ sums[index] = "灏忚:" return } - const title = ["#", "浜у搧鍚嶇О",'浜у搧缂栧彿','鍗曚綅','閿�鍞崟浠�','鎴愭湰鍗曚环'] + const title = ["#", "浜у搧鍚嶇О", "浜у搧缂栧彿", "鍗曚綅", "閿�鍞崟浠�", "鎴愭湰鍗曚环"] // 鍘婚櫎鏌愪簺涓嶉渶瑕佽绠楃殑鏁版嵁 if (title.includes(column.label)) { sums[index] = "" return } - if(this.pageName=='quotation'&&column.label=='姣涘埄'){ + if (this.pageName == "quotation" && column.label == "姣涘埄") { sums[index] = "" return } @@ -406,15 +416,16 @@ }, // 鏂板 add() { - if(this.addTypeIdMultiple){ + if (this.addTypeIdMultiple) { + this.productIndex = this.tableList.tableData.length this.editSelCommonConfig.title = "浜у搧鍚嶇О" - this.editSelCommonConfig.isSelectBox=true; + this.editSelCommonConfig.isSelectBox = true this.editSelCommonConfig.editVisible = true - }else{ + } else { this.$emit("addProductClick") } }, - commonInputChange(val, prop, row,scope) { + commonInputChange(val, prop, row, scope) { if (prop === "amount") { this.tableList.tableData.map((ite) => { if (ite.name === row.name) { @@ -422,27 +433,28 @@ } }) } - if(this.pageName=='quotation'&&prop=='cost'&&scope.row.cost){ - let value=scope.row.cost - let reg2 = - /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/; - if (!reg2.test(value)||value==0) { - this.$message.error("鎴愭湰鍗曚环闇�瑕佸~鍐欏ぇ浜�0鐨�2浣嶅皬鏁帮紒") - return true; - } + if (this.pageName == "quotation" && prop == "cost" && scope.row.cost) { + let value = scope.row.cost + let reg2 = /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/ + if (!reg2.test(value) || value == 0) { + this.$message.error("鎴愭湰鍗曚环闇�瑕佸~鍐欏ぇ浜�0鐨�2浣嶅皬鏁帮紒") + return true + } this.$forceUpdate() } - if(this.pageName=='quotation'){ - if(prop=='price'||prop=='cost'){ - if(scope.row.price&&scope.row.cost){ - let profit=Number(scope.row.price)-Number(scope.row.cost) - scope.row.profit=profit+''; - let margin=((Number(scope.row.price)-Number(scope.row.cost))*100/Number(scope.row.cost)).toFixed(2) - scope.row.margin=margin+''; + if (this.pageName == "quotation") { + if (prop == "price" || prop == "cost") { + if (scope.row.price && scope.row.cost) { + let profit = Number(scope.row.price) - Number(scope.row.cost) + scope.row.profit = profit + "" + let margin = (((Number(scope.row.price) - Number(scope.row.cost)) * 100) / Number(scope.row.cost)).toFixed( + 2 + ) + scope.row.margin = margin + "" } } } - this.$emit("inputContent", val, prop, row,scope) + this.$emit("inputContent", val, prop, row, scope) }, // 娓呯┖ empty() { @@ -450,11 +462,11 @@ this.$emit("emptyProductClick") }, // 鍒犻櫎 - deleteClick(scope){ - this.tableList.tableData.splice(scope.$index,1) - this.$forceUpdate(); - this.$message.success('鍒犻櫎鎴愬姛锛�') - this.$emit("deleteClick",scope) + deleteClick(scope) { + this.tableList.tableData.splice(scope.$index, 1) + this.$forceUpdate() + this.$message.success("鍒犻櫎鎴愬姛锛�") + this.$emit("deleteClick", scope) }, // 閲嶇畻 recalculate() { @@ -496,35 +508,47 @@ } }) }, - selClientClick(row, prop) { - console.log(row, prop) - this.productIndex = row.productId - 1 + // 鏂板 + selClientClick(scope, prop) { + console.log(scope, prop) + this.productIndex = scope.$index this.editSelCommonConfig.title = "浜у搧鍚嶇О" - this.editSelCommonConfig.isSelectBox=false; + this.editSelCommonConfig.isSelectBox = true + this.editSelCommonConfig.editVisible = true + }, + // 缂栬緫 + handleEditClient(scope, prop) { + console.log(scope, prop) + this.productIndex = scope.$index + this.editSelCommonConfig.title = "浜у搧鍚嶇О" + this.editSelCommonConfig.isSelectBox = false this.editSelCommonConfig.editVisible = true }, selClient(item) { - console.log(item) - console.log(this.tableList.tableData) - this.isRecalculate = true - // this.editConfig.infomation.client_name = row.name - this.tableList.tableData.map((ite, index) => { - if (index === this.productIndex) { - ite.name = item.name - ite.amount = item.amount || 1 - ite.number = item.number - ite.price = item.price - ite.total = item.amount ? item.amount * item.price : 1 * item.price - ite.unit = item.unit - } - }) + let list = this.tableList.tableData.map((item) => item.number) + if (list.findIndex((v) => v == item.number) == -1) { + this.isRecalculate = true + // this.editConfig.infomation.client_name = row.name + this.tableList.tableData.map((ite, index) => { + if (index === this.productIndex) { + ite.name = item.name + ite.amount = item.amount || 1 + ite.number = item.number + ite.price = item.price + ite.total = item.amount ? item.amount * item.price : 1 * item.price + ite.unit = item.unit + } + }) + } else { + this.$message.error("涓嶈兘閫夋嫨閲嶅鐨勪骇鍝侊紝 璇烽噸鏂伴�夋嫨") + } }, - getSelectArray(val){ - this.$emit("getSelectArray",val) + getSelectArray(val) { + this.$emit("getSelectArray", val, this.productIndex) }, // 娓呴櫎宸查�夋嫨鐢ㄦ埛 - clearupClient(row) { - this.productIndex = row.productId - 1 + clearupClient(scope) { + this.productIndex = scope.$index this.tableList.tableData.map((ite, index) => { if (index === this.productIndex) { ite.name = "" @@ -555,7 +579,6 @@ <!-- Add "scoped" attribute to limit CSS to this component only --> <style lang="scss" scoped> .page-view { - .el-form-item { margin-bottom: 0; .custom-name { diff --git a/src/components/makepager/TableCommonView.vue b/src/components/makepager/TableCommonView.vue index 584763a..50ac390 100644 --- a/src/components/makepager/TableCommonView.vue +++ b/src/components/makepager/TableCommonView.vue @@ -19,7 +19,7 @@ @row-click="tableRowClick" :row-class-name="tableRowClassName" > - <el-table-column v-if="selectBox" type="selection" width="40"> </el-table-column> + <el-table-column v-if="selectBox" type="selection" width="40" :selectable="selectable"> </el-table-column> <el-table-column v-if="tableList.selectIndex" type="index" label="搴忓彿" width="50"></el-table-column> <el-table-column v-for="(item, i) in tableList.tableColumn" @@ -185,11 +185,16 @@ return {} } }, - loading:{ + loading: { type: Boolean, default: false + }, + selectBoxList: { + type: Array, + default: () => [] } }, + data() { return { iscolopen: false, @@ -391,6 +396,14 @@ } } this.$emit("tableRowClassName", row) + }, + selectable(row) { + let list = this.selectBoxList.map((item) => item.number) + if (list.findIndex((v) => v == row.number) == -1) { + return true + } else { + return false + } } } } diff --git a/src/views/other/commonDialog/SelectCommonDialog.vue b/src/views/other/commonDialog/SelectCommonDialog.vue index 237f33b..3603f67 100644 --- a/src/views/other/commonDialog/SelectCommonDialog.vue +++ b/src/views/other/commonDialog/SelectCommonDialog.vue @@ -29,10 +29,11 @@ </div> </div> <TableCommonView - class="bg-list" + class="bg-list" ref="tableListRef" :table-list="tableList" :select-box="editCommonConfig.isSelectBox" + :selectBoxList="selectBoxList" @selCommonClick="selNameClick" @selTableCol="selTableCol" @getSelectArray="getSelectArray" @@ -72,20 +73,24 @@ default: () => { return { editVisible: false, - isSelectBox:false, + isSelectBox: false, title: "", clientId: 0, - isRequest:true, + isRequest: true, client_name: "", tableInfomation: [] } } }, // 鏍规嵁鎶ヤ环鍗曟煡璇骇鍝� - quotationNumber:{ - type:[String,Number], - default:'' + quotationNumber: { + type: [String, Number], + default: "" }, + selectBoxList: { + type: Array, + default: () => [] + } }, components: {}, computed: {}, @@ -106,7 +111,7 @@ keywordType: "", tableColumn: [], showCol: [], - selectArray:[], + selectArray: [] } }, created() { @@ -177,9 +182,9 @@ { label: "瀹㈡埛鍚嶇О", prop: "client_name" }, { label: "鎵�灞炰笟鍔℃満浼�", prop: "sale_chance_name" }, { label: "鎶ヤ环鍗曠姸鎬�", prop: "quotationStatus" }, - { label: "鍚堣", prop: "amountTotal" }, + { label: "鍚堣", prop: "amountTotal" } ] - this.showCol = ["鎶ヤ环鍗曞彿","鎶ヤ环鍚嶇О","閿�鍞礋璐d汉",'瀹㈡埛鍚嶇О','鎵�灞炰笟鍔℃満浼�','鎶ヤ环鍗曠姸鎬�','鍚堣'] + this.showCol = ["鎶ヤ环鍗曞彿", "鎶ヤ环鍚嶇О", "閿�鍞礋璐d汉", "瀹㈡埛鍚嶇О", "鎵�灞炰笟鍔℃満浼�", "鎶ヤ环鍗曠姸鎬�", "鍚堣"] this.tableList = { selectIndex: true, @@ -210,12 +215,14 @@ this.searchSel = { value: "serviceNumber", label: "鏈嶅姟鍗曠紪鍙�" } } else if (this.editConfig.title === "浜у搧鍚嶇О") { this.tableColumn = [ - { label: "浜у搧鍚嶇О", prop: "name", isClick: this.editCommonConfig.isSelectBox?false:true, default: true }, // 浜у搧鍚嶇О + { label: "浜у搧鍚嶇О", prop: "name", isClick: this.editCommonConfig.isSelectBox ? false : true, default: true }, // 浜у搧鍚嶇О { label: "浜у搧缂栧彿", prop: "number" }, - { label: "瑙勬牸", prop: "specs" }, + { label: "閿�鍞崟浠�", prop: "price" }, + { label: "鍗曚綅", prop: "unit" }, + { label: "浜у搧瑙勬牸", prop: "specs" }, { label: "鍨嬪彿", prop: "type" } ] - this.showCol = ["浜у搧鍚嶇О", "浜у搧缂栧彿",'瑙勬牸','鍨嬪彿'] + this.showCol = ["浜у搧鍚嶇О", "浜у搧缂栧彿", "閿�鍞崟浠�", "鍗曚綅", "浜у搧瑙勬牸", "鍨嬪彿"] this.tableList = { selectIndex: true, tableInfomation: [], @@ -276,11 +283,11 @@ this.tableList.tableColumn = this.setColumnVisible(val) }, // 鍒楄〃澶氶�� - getSelectArray(val){ - this.selectArray=val; + getSelectArray(val) { + this.selectArray = val }, - saveClick(){ - this.$emit('getSelectArray',this.selectArray) + saveClick() { + this.$emit("getSelectArray", this.selectArray) this.editConfig.editVisible = false }, // 璇锋眰鏁版嵁 @@ -357,18 +364,18 @@ }, // 鎶ヤ环鍗� async getQuotationList() { - if(!this.editConfig.isRequest){ - this.tableList.tableInfomation =this.editConfig.tableInfomation.map((item) => { - return { - ...item, - client_name: item.client.name, - sale_chance_name: item.sale_chance.name, - member_name: item.member.username, - quotationStatus: item.quotation_status.name - } - }) - this.pagerOptions.totalCount =this.editConfig.count?this.editConfig.count:0 - return true; + if (!this.editConfig.isRequest) { + this.tableList.tableInfomation = this.editConfig.tableInfomation.map((item) => { + return { + ...item, + client_name: item.client.name, + sale_chance_name: item.sale_chance.name, + member_name: item.member.username, + quotationStatus: item.quotation_status.name + } + }) + this.pagerOptions.totalCount = this.editConfig.count ? this.editConfig.count : 0 + return true } await getQuotationList({ search_map: this.search_map, @@ -398,7 +405,7 @@ // 閿�鍞槑缁嗗崟 async getSalesDetailsList() { await getSalesDetailsList({ - clientId:Number(this.editCommonConfig.clientId), + clientId: Number(this.editCommonConfig.clientId), page: this.pagerOptions.currPage, pageSize: this.pagerOptions.pageSize }).then((res) => { @@ -453,15 +460,15 @@ }, // 浜у搧鍚嶇О async getProductList() { - let params={ + let params = { productName: this.keywordType === "浜у搧鍚嶇О" ? this.keyword : "", productNumber: this.keywordType === "浜у搧缂栧彿" ? this.keyword : "", page: this.pagerOptions.currPage, pageSize: this.pagerOptions.pageSize } - // 鏍规嵁鎶ヤ环鍗曟煡璇骇鍝� - if(this.quotationNumber){ - params.quotationNumber=this.quotationNumber + // 鏍规嵁鎶ヤ环鍗曟煡璇骇鍝� + if (this.quotationNumber) { + params.quotationNumber = this.quotationNumber } await getProductList(params).then((res) => { console.log(res.data) @@ -483,7 +490,7 @@ }, async getSalesReturnList() { await getSalesReturnList({ - clientId:Number(this.editCommonConfig.clientId), + clientId: Number(this.editCommonConfig.clientId), page: this.pagerOptions.currPage, pageSize: this.pagerOptions.pageSize }).then((res) => { @@ -532,8 +539,8 @@ this.editConfig.editVisible = false }, selNameClick(row) { - if(this.editCommonConfig.isSelectBox){ - return true; + if (this.editCommonConfig.isSelectBox) { + return true } this.editConfig.editVisible = false if (this.editConfig.title === "閿�鍞�诲崟") { @@ -578,9 +585,9 @@ <style lang="scss" scoped> .bg-view { margin: 10px; - .bg-list{ - min-height:370px; - } + .bg-list { + min-height: 370px; + } .query-bg { margin-left: -20px; margin-bottom: 10px; @@ -592,7 +599,7 @@ width: 100px; } } - + .btn { float: right; } diff --git a/src/views/sales/salesOpportunity/AddSalesOpportunityDialog.vue b/src/views/sales/salesOpportunity/AddSalesOpportunityDialog.vue index 35cbbe7..62d4db1 100644 --- a/src/views/sales/salesOpportunity/AddSalesOpportunityDialog.vue +++ b/src/views/sales/salesOpportunity/AddSalesOpportunityDialog.vue @@ -327,9 +327,11 @@ <div class="product-view"> <CommonFormTableView :show-summary="showSummary" + :addTypeIdMultiple="true" :product-table-list="productTableList" @inputContent="inputContent" @addProductClick="addProductClick" + @getSelectArray="getSelectArray" @emptyProductClick="emptyProductClick" @recalculateProductClick="recalculateProductClick" @clearupProduct="clearupProduct" @@ -1000,17 +1002,28 @@ }, // 浜у搧鏂板 addProductClick() { - this.productId++ - this.tableData.push({ - productId: this.productId, - id: 0, - amount: 0, - desc: "", - name: "", - number: "", - price: 0, - total: 0 - }) + // this.productId++ + // this.tableData.push({ + // productId: this.productId, + // id: 0, + // amount: 0, + // desc: "", + // name: "", + // number: "", + // price: 0, + // total: 0 + // }) + // this.showSummary.show = true + }, + // 鏂板鏂瑰紡淇敼 + getSelectArray(val) { + if (val.length > 0) { + val.map((item, index) => { + item.productId = this.tableData.length + index + 1 + }) + } + this.tableData = this.tableData.concat(val) + this.productTableList.tableData = this.tableData this.showSummary.show = true }, // 浜у搧娓呯┖ diff --git a/src/views/service/serviceContract/AddServiceContractDialog.vue b/src/views/service/serviceContract/AddServiceContractDialog.vue index f387206..4aed079 100644 --- a/src/views/service/serviceContract/AddServiceContractDialog.vue +++ b/src/views/service/serviceContract/AddServiceContractDialog.vue @@ -368,9 +368,11 @@ <div class="product-view"> <CommonFormTableView :show-summary="showSummary" + :addTypeIdMultiple="true" :product-table-list="productTableList" @inputContent="inputContent" @addProductClick="addProductClick" + @getSelectArray="getSelectArray" @emptyProductClick="emptyProductClick" @recalculateProductClick="recalculateProductClick" @clearupProduct="clearupProduct" @@ -613,46 +615,52 @@ this.$refs[formName].validate((valid) => { if (valid) { console.log(this.editConfig.infomation) - for (let i = 0; i < this.tableData.length; i++) { - if (this.tableData[i].name.length === 0) { - this.isNoProduct = true - break - } else { - this.isNoProduct = false - } - } - if (this.isNoProduct) { - this.$message.error("浜у搧鍚嶇О涓嶈兘涓虹┖") + // for (let i = 0; i < this.tableData.length; i++) { + // if (this.tableData[i].name.length === 0) { + // this.isNoProduct = true + // break + // } else { + // this.isNoProduct = false + // } + // } + // if (this.isNoProduct) { + // this.$message.error("浜у搧鍚嶇О涓嶈兘涓虹┖") + // } else { + const params = this.saveParams() + if (this.editConfig.title === "鏂板缓") { + getAddServiceContract(params).then((res) => { + console.log(res) + this.editConfig.visible = false + if (res.code === 200) { + this.$message.success("娣诲姞鎴愬姛") + this.$parent.getData() + } + }) } else { - const params = this.saveParams() - if (this.editConfig.title === "鏂板缓") { - getAddServiceContract(params).then((res) => { - console.log(res) - this.editConfig.visible = false - if (res.code === 200) { - this.$message.success("娣诲姞鎴愬姛") - this.$parent.getData() - } - }) - } else { - getUpdateServiceContract(params).then((res) => { - console.log(res) - this.editConfig.visible = false - if (res.code === 200) { - this.$message.success("缂栬緫鎴愬姛") - this.$parent.getData() - } - }) - } + getUpdateServiceContract(params).then((res) => { + console.log(res) + this.editConfig.visible = false + if (res.code === 200) { + this.$message.success("缂栬緫鎴愬姛") + this.$parent.getData() + } + }) } - } else { - console.log("error submit") - return false } + // } else { + // console.log("error submit") + // return false + // } }) }, saveParams() { let data = this.editConfig.infomation + let products = [] + this.tableData.map((item) => { + if (item.number.length > 0) { + products.push(item) + } + }) let params = { id: this.editConfig.title === "鏂板缓" ? 0 : data.id, clientId: this.clientId || 0, @@ -660,7 +668,7 @@ endTime: data.endTime || "", memberId: data.memberId || 0, number: data.number || "", - products: this.tableData, + products: products, quotationId: this.quotationId || 0, remark: data.remark || "", saleChanceId: this.saleChanceId || 0, @@ -800,8 +808,9 @@ } this.productTableList = { tableData: this.tableData, + isReturn: true, tableColumn: [ - { label: "#", prop: "productId", width: 40 }, + // { label: "#", prop: "productId", width: 40 }, { label: "浜у搧鍚嶇О", prop: "name", productName: true, isRequird: true }, { label: "浜у搧缂栧彿", prop: "number" }, { label: "鏁伴噺", prop: "amount", inputNumber: true, isRequird: true }, @@ -813,27 +822,43 @@ }, // 浜у搧鍒楄〃杈撳叆 inputContent(val, prop, row) { - this.productId = row.productId + // this.productId = row.productId this.tableData.map((item) => { - if (item.productId === row.productId) { + if (item.number === row.number) { item[prop] = val } }) }, // 浜у搧鏂板 addProductClick() { - this.productId++ - this.tableData.push({ - productId: this.productId, - id: 0, - amount: 0, - desc: "", - name: "", - number: "", - price: 0, - total: 0, - unit: "" - }) + // this.productId++ + // this.tableData.push({ + // productId: this.productId, + // id: 0, + // amount: 0, + // desc: "", + // name: "", + // number: "", + // price: 0, + // total: 0, + // unit: "" + // }) + // this.showSummary.show = true + }, + // 鏂板鏂瑰紡淇敼 + getSelectArray(val, index) { + if (this.tableData.length == 1 && this.tableData[0].number.length == 0) { + this.tableData = [] + } + if (index < this.tableData.length) { + this.tableData.splice(index, 1) + val.map((item, ind) => { + this.tableData.splice(index + ind, 0, item) + }) + } else { + this.tableData = this.tableData.concat(val) + } + this.productTableList.tableData = this.tableData this.showSummary.show = true }, // 浜у搧娓呯┖ -- Gitblit v1.8.0