From 01cea4bc73210e43f748d82a02a432cce615be2d Mon Sep 17 00:00:00 2001 From: haoxuan <haoxuan> Date: 星期二, 24 十月 2023 17:52:04 +0800 Subject: [PATCH] Merge branch 'dev' of http://192.168.5.5:10010/r/web/crm-web into wn --- src/views/sales/salesDetails/AddSalesDetailsDialog.vue | 258 +++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 227 insertions(+), 31 deletions(-) diff --git a/src/views/sales/salesDetails/AddSalesDetailsDialog.vue b/src/views/sales/salesDetails/AddSalesDetailsDialog.vue index 71c572a..a0745c3 100644 --- a/src/views/sales/salesDetails/AddSalesDetailsDialog.vue +++ b/src/views/sales/salesDetails/AddSalesDetailsDialog.vue @@ -13,7 +13,7 @@ :model="editConfig.infomation" :rules="rules" label-position="right" - label-width="308px" + label-width="30%" size="mini" style="height: 60vh; overflow-x: hidden" > @@ -24,9 +24,41 @@ <div class="basic-info-view"> <el-row> <el-col :span="12"> + <el-form-item label="鏄庣粏鍗曠紪鍙�" prop="number"> + <el-input + v-if=" + editConfig.title == '缂栬緫' || + (editConfig.title == '鏂板缓' && + codenumer && + (explain != '' || isIdDisabled)) + " + :disabled="editConfig.title == '缂栬緫'" + v-model="editConfig.infomation.number" + placeholder="璇疯緭鍏ョ紪鐮�" + > + </el-input> + <span v-else-if="editConfig.title == '鏂板缓'" style="color: #f56c6c" + >璇蜂紭鍏堥厤缃紪鐮佽鑼� <el-button type="text" @click="numberClick"> 閰嶇疆瑙勮寖 </el-button></span + > + <!-- <WordInput + v-if="codenumer && (explain != '' || isIdDisabled) && method == 0" + :codenumer="codenumer" + :sum="sum" + :disabled="editConfig.title !== '鏂板缓' || isIdDisabled" + :inputValue="inputValue" + @codeList="codeList" + /> + <span v-else-if="method == 0" style="color: #f56c6c" + >璇蜂紭鍏堥厤缃紪鐮佽鑼� <el-button type="text" @click="numberClick"> 閰嶇疆瑙勮寖 </el-button></span + > + <span v-else>{{ editConfig.title === "鏂板缓" ? "鑷姩鐢熸垚" : editConfig.infomation.number }}</span> --> + </el-form-item> + </el-col> + <el-col :span="12"> <el-form-item label="瀹㈡埛鍚嶇О" prop="client_name"> <div class="custom-name"> <el-autocomplete + style="width: 100%" v-model="editConfig.infomation.client_name" :fetch-suggestions=" (queryString, callback) => { @@ -35,25 +67,31 @@ " value-key="name" @select="handleSelectClient('client', $event)" + :disabled="isNameChanceEdit" ></el-autocomplete> - <div class="common-select-btn" @click="selClientClick('client')"> + <div v-if="!isNameChanceEdit" class="common-select-btn" @click="selClientClick('client')"> <i class="el-icon-circle-plus-outline" title="閫夋嫨"></i> </div> - <div class="common-select-btn" @click="clearupClient('client')"> - <i class="el-icon-edit-outline" title="娓呴櫎"></i> + <div + v-if=" + editConfig.infomation.client_name && + editConfig.infomation.client_name.length > 0 && + !isNameChanceEdit + " + class="common-select-btn" + @click="clearupClient('client')" + > + <i class="el-icon-remove-outline" title="娓呴櫎"></i> </div> </div> </el-form-item> </el-col> - <el-col :span="12"> - <el-form-item label="璁㈠崟缂栧彿" prop="number"> - <el-input v-model="editConfig.infomation.number"></el-input> - </el-form-item> - </el-col> + <el-col :span="12"> <el-form-item label="閿�鍞満浼�" prop="saleChanceId"> <div class="custom-name"> <el-autocomplete + style="width: 100%" v-model="editConfig.infomation.sale_chance_name" :fetch-suggestions=" (queryString, callback) => { @@ -62,12 +100,53 @@ " value-key="name" @select="handleSelectClient('chance', $event)" + :disabled="isNameChanceEdit" ></el-autocomplete> - <div class="common-select-btn" @click="selClientClick('chance')"> + <div v-if="!isNameChanceEdit" class="common-select-btn" @click="selClientClick('chance')"> <i class="el-icon-circle-plus-outline"></i> </div> - <div class="common-select-btn" @click="clearupClient('chance')"> - <i class="el-icon-edit-outline"></i> + <div + v-if=" + editConfig.infomation.sale_chance_name && + editConfig.infomation.sale_chance_name.length > 0 && + !isNameChanceEdit + " + class="common-select-btn" + @click="clearupClient('chance')" + > + <i class="el-icon-remove-outline"></i> + </div> + </div> + </el-form-item> + </el-col> + <el-col :span="12"> + <el-form-item label="閿�鍞瓙鍗�" prop="subbill_name"> + <div class="custom-name"> + <el-autocomplete + style="width: 100%" + v-model="editConfig.infomation.subbill_name" + :fetch-suggestions=" + (queryString, callback) => { + querySearchAsync(queryString, callback, 'subbill') + } + " + value-key="number" + @select="handleSelectClient('subbill', $event)" + :disabled="isNameChanceEdit" + ></el-autocomplete> + <div v-if="!isNameChanceEdit" class="common-select-btn" @click="selClientClick('subbill')"> + <i class="el-icon-circle-plus-outline" title="閫夋嫨"></i> + </div> + <div + v-if=" + editConfig.infomation.subbill_name && + editConfig.infomation.subbill_name.length > 0 && + !isNameChanceEdit + " + class="common-select-btn" + @click="clearupClient('subbill')" + > + <i class="el-icon-remove-outline" title="娓呴櫎"></i> </div> </div> </el-form-item> @@ -92,6 +171,7 @@ value-format="yyyy-MM-dd" type="date" placeholder="閫夋嫨鏃ユ湡" + style="width: 100%" > </el-date-picker> </el-form-item> @@ -102,7 +182,7 @@ v-model="editConfig.infomation.memberId" placeholder="璇烽�夋嫨" size="mini" - style="width: 63%" + style="width: 100%" > <el-option v-for="item in memberOptions" :key="item.id" :label="item.username" :value="item.id"> </el-option> @@ -116,6 +196,7 @@ value-format="yyyy-MM-dd" type="date" placeholder="閫夋嫨鏃ユ湡" + style="width: 100%" > </el-date-picker> </el-form-item> @@ -159,9 +240,10 @@ <el-input v-model="editConfig.infomation.phone"></el-input> </el-form-item> </el-col> - <el-col :span="24"> + <el-col :span="12"> <el-form-item label="鏀惰揣鍦板潃" prop="address"> <el-input + style="width: 100%" type="textarea" :autosize="{ minRows: 2 }" v-model="editConfig.infomation.address" @@ -197,8 +279,9 @@ <div class="basic-info-view"> <el-row> <el-col :span="24"> - <el-form-item label="鏉℃涓庢潯浠�" prop="conditions"> + <el-form-item label="鏉℃涓庢潯浠�" prop="conditions" label-width="15%"> <el-input + style="width: 100%" type="textarea" :autosize="{ minRows: 4 }" v-model="editConfig.infomation.conditions" @@ -212,7 +295,7 @@ <div class="basic-info-view"> <el-row> <el-col :span="24"> - <el-form-item label="澶囨敞" prop="remark"> + <el-form-item label="澶囨敞" prop="remark" label-width="15%"> <el-input type="textarea" :autosize="{ minRows: 2 }" @@ -335,6 +418,12 @@ :edit-common-config="editSelectChanceConfig" @selClient="selClient" /> + <!-- 閿�鍞瓙鍗� --> + <SelectCommonDialog + v-if="editSelCommonConfig.editVisible" + :edit-common-config="editSelCommonConfig" + @selClient="selClient" + /> <!-- 鏂板缓 鏀舵璁″垝 --> <AddCollectionPlan v-if="addCollectionConfig.visible" :edit-common-config="addCollectionConfig" /> </el-dialog> @@ -348,8 +437,16 @@ import SelectClientDialog from "@/views/other/commonDialog/SelectClientDialog" import SelectChanceDialog from "@/views/other/commonDialog/SelectChanceDialog" import AddCollectionPlan from "@/views/other/payment/collectionPlan/AddCollectionPlan" +import codeMixin from "@/components/makepager/mixin/codeMixin" +import { getSaleChanceList } from "@/api/sales/salesOpportunity" +import { getSubOrderList } from "@/api/sales/subOrder" +import SelectCommonDialog from "@/views/other/commonDialog/SelectCommonDialog" + +import { mapActions } from "vuex" + export default { name: "AddSalesDetailsDialog", + mixins: [codeMixin], props: { editCommonConfig: { type: Object, @@ -362,22 +459,26 @@ } } }, - components: { CommonFormTableView, SelectClientDialog, SelectChanceDialog, AddCollectionPlan }, + components: { CommonFormTableView, SelectClientDialog, SelectChanceDialog, AddCollectionPlan, SelectCommonDialog }, computed: { clientList() { return this.$store.state.getClientName.clientList - }, - saleChancelist() { - return this.$store.state.getClientName.saleChancelist } + // saleChancelist() { + // return this.$store.state.getClientName.saleChancelist + // }, + // subOrderList() { + // return this.$store.state.getClientName.subOrderList + // } }, data() { return { - dialogWidth: "80%", + dialogWidth: "50%", editConfig: this.editCommonConfig, rules: { client_name: [{ required: true, message: "璇烽�夋嫨瀹㈡埛鍚嶇О", trigger: "change" }], - number: [{ required: true, message: "璇疯緭鍏ヨ鍗曠紪鍙�", trigger: "blur" }], + // subbill_name: [{ required: true, message: "璇烽�夋嫨閿�鍞瓙鍗�", trigger: "change" }], + number: [{ required: true,validator: this.validateCheckCode, trigger: "blur" }], signTime: [{ required: true, message: "璇烽�夋嫨绛剧害鏃ユ湡", trigger: "change" }], memberId: [{ required: true, message: "璇烽�夋嫨閿�鍞礋璐d汉", trigger: "change" }] // approvalOpinion: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }] @@ -402,10 +503,17 @@ editSelectChanceConfig: { editVisible: false, title: "", + infomation: {}, + search_map: {} + }, + editSelCommonConfig: { + editVisible: false, + title: "", infomation: {} }, clientId: this.editCommonConfig.infomation.client_id, - saleChanceId: this.editCommonConfig.infomation.saleChanceId, + saleChanceId: this.editCommonConfig.infomation.sale_chance_id, + subbillId: this.editCommonConfig.infomation.subbillId, productId: 1, isNoProduct: true, addCollectionConfig: { @@ -413,21 +521,46 @@ title: "鏂板缓", infomation: {} }, - amountTotal: 0 + amountTotal: 0, + isNameChanceEdit: false } }, created() { this.$store.dispatch("geClient") - this.$store.dispatch("geChance") + // this.$store.dispatch("geChance") + // this.$store.dispatch("getSubunit") this.setTableForm() this.getCommonData() + this.formInfo() + // if (this.editConfig.title === "鏂板缓" && this.editConfig.infomation.client_name.length > 0) { + // this.isNameChanceEdit = true + // } + // else { + + // } + }, + watch: { + "editClientManageConfig.visible"(val) { + if (val) { + this.formInfo() + } + }, }, methods: { + ...mapActions(["getChanceFilter", "getSubunitFliter"]), + formInfo() { + this.objCode.type = "閿�鍞槑缁嗙紪鐮�" + this.objCode.codeStandID = "" + if (this.editConfig.infomation.codeStandID) { + this.objCode.codeStandID = this.editConfig.infomation.codeStandID + } + this.getRCodeStandardList() + }, getCommonData() { getAllData() .then((res) => { this.memberOptions = res.data.member - this.dataProcess() + // this.dataProcess() }) .catch((err) => { console.log(err) @@ -444,7 +577,6 @@ saveClick(formName) { 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 @@ -509,7 +641,7 @@ wechatOrderStatus: data.wechatOrderStatus || 0, logisticCompany: data.logisticCompany || "", logisticCost: data.logisticCost || 0, - logisticNumber: data.logisticNumber || "" + logisticNumber: data.logisticNumber || "", } let params = {} if (this.editConfig.title === "鏂板缓") { @@ -533,48 +665,107 @@ var restaurants = [] if (value === "client") { restaurants = this.clientList + console.log(restaurants, "瀹㈡埛鍗�") } else if (value === "chance") { restaurants = this.saleChancelist + } else if (value === "subbill") { + restaurants = this.subOrderList } - var results = queryString ? restaurants.filter(this.createStateFilter(queryString)) : restaurants + var results = queryString ? restaurants.filter(this.createStateFilter(queryString, value)) : restaurants cb(results) }, - createStateFilter(queryString) { + createStateFilter(queryString, value) { return (state) => { - return state.name.toLowerCase().indexOf(queryString.toLowerCase()) === 0 + if (value === "subbill") { + return state.number.toLowerCase().indexOf(queryString.toLowerCase()) === 0 + } else { + return state.name.toLowerCase().indexOf(queryString.toLowerCase()) === 0 + } } + }, + // 閿�鍞満浼氬垪琛� + async getSaleChanceList(item) { + await getSaleChanceList({ + page: 1, + pageSize: 15, + search_map: { + client_id: item.id + } + }).then((res) => { + console.log(res) + this.saleChancelist = res.data.list + }) + }, + // 閿�鍞瓙鍗曞垪琛� + async getSubOrderList(item) { + await getSubOrderList({ + page: 1, + pageSize: 15, + search_map: { + client_id: item.id + } + }).then((res) => { + this.subOrderList = res.data.list + }) }, handleSelectClient(value, item) { if (value === "client") { + this.editConfig.infomation.subbill_name ="" + this.editConfig.infomation.sale_chance_name="" this.clientId = item.id + this.editConfig.infomation.client_name = item.name + this.getSaleChanceList(item) + this.getSubOrderList(item) } else if (value === "chance") { this.saleChanceId = item.id + this.editConfig.infomation.sale_chance_name = item.name + } else if (value === "subbill") { + console.log("涓嬫媺妗嗙偣鍑�", item) + this.subbillId = item.id + this.editConfig.infomation.subbill_name = item.number } }, selClientClick(value) { if (value === "client") { this.editSelectClientConfig.editVisible = true } else if (value === "chance") { + this.editSelectChanceConfig.clientId = this.clientId this.editSelectChanceConfig.editVisible = true + } else if (value === "subbill") { + this.editSelCommonConfig.title = "閿�鍞瓙鍗�" + this.editSelCommonConfig.editVisible = true + this.editSelCommonConfig.clientId = this.clientId } }, selClient(row, value) { if (value === "client") { + this.editConfig.infomation.sale_chance_name="" + this.editConfig.infomation.subbill_name="" this.editConfig.infomation.client_name = row.name this.clientId = row.id + this.getSaleChanceList(row) + this.getSubOrderList(row) } else if (value === "chance") { this.editConfig.infomation.sale_chance_name = row.name this.saleChanceId = row.id + } else if (value === "subbill") { + this.editConfig.infomation.subbill_name = row.number + this.subbillId = row.id } }, // 娓呴櫎宸查�夋嫨鐢ㄦ埛 clearupClient(value) { if (value === "client") { + this.editConfig.infomation.sale_chance_name="" this.editConfig.infomation.client_name = "" + this.editConfig.infomation.subbill_name ="" this.clientId = 0 } else if (value === "chance") { this.editConfig.infomation.sale_chance_name = "" this.saleChanceId = 0 + } else if (value === "subbill") { + this.editConfig.infomation.subbill_name = "" + this.subbillId = 0 } }, // 娣诲姞闄勪欢 @@ -668,6 +859,11 @@ <style lang="scss" scoped> ::v-deep { .iframe-dialog .el-dialog__body { + .el-form { + .el-form-item { + width: 100%; + } + } .basic-info { .basic-info-title { background-color: #f4f8fe; -- Gitblit v1.8.0