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/quotation/AddQuotationDialog.vue | 150 +++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 124 insertions(+), 26 deletions(-) diff --git a/src/views/sales/quotation/AddQuotationDialog.vue b/src/views/sales/quotation/AddQuotationDialog.vue index 45e4c87..b9de06b 100644 --- a/src/views/sales/quotation/AddQuotationDialog.vue +++ b/src/views/sales/quotation/AddQuotationDialog.vue @@ -10,10 +10,11 @@ > <el-form ref="form" + v-if="refreshFlag" :model="editConfig.infomation" :rules="rules" label-position="right" - label-width="308px" + label-width="110px" size="mini" style="height: 60vh; overflow-x: hidden" > @@ -24,6 +25,44 @@ <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="quotationName"> + <div class="custom-name"> + <el-input v-model="editConfig.infomation.quotationName"></el-input> + </div> + </el-form-item> + </el-col> + <!-- <el-col :span="12"> <el-form-item label="瀹㈡埛鍚嶇О" prop="client_name"> <div class="custom-name"> <el-autocomplete @@ -39,17 +78,21 @@ <div 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" + 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> --> + <!-- <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="quotation_status_id"> <div class="common-select"> @@ -78,12 +121,13 @@ v-model="editConfig.infomation.validity_date" value-format="yyyy-MM-dd HH:mm:ss" type="datetime" + style="width: 100%" placeholder="閫夋嫨鏃ユ湡" > </el-date-picker> </el-form-item> </el-col> - <el-col :span="12"> + <!-- <el-col :span="12"> <el-form-item label="鑱旂郴浜哄鍚�" prop="contact_id"> <div class="custom-name"> <el-autocomplete @@ -99,19 +143,23 @@ <div class="common-select-btn" @click="selClientClick('contact')"> <i class="el-icon-circle-plus-outline" title="閫夋嫨"></i> </div> - <div class="common-select-btn" @click="clearupClient('contact')"> - <i class="el-icon-edit-outline" title="娓呴櫎"></i> + <div + v-if="editConfig.infomation.contact_name && editConfig.infomation.contact_name.length > 0" + class="common-select-btn" + @click="clearupClient('contact')" + > + <i class="el-icon-remove-outline" title="娓呴櫎"></i> </div> </div> </el-form-item> - </el-col> + </el-col> --> <el-col :span="12"> <el-form-item label="閿�鍞礋璐d汉" prop="member_id"> <el-select v-model="editConfig.infomation.member_id" 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> @@ -134,8 +182,12 @@ <div 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" + class="common-select-btn" + @click="clearupClient('chance')" + > + <i class="el-icon-remove-outline"></i> </div> </div> </el-form-item> @@ -281,8 +333,10 @@ import SelectClientDialog from "@/views/other/commonDialog/SelectClientDialog" import SelectContactDialog from "@/views/other/commonDialog/SelectContactDialog" import SelectChanceDialog from "@/views/other/commonDialog/SelectChanceDialog" +import codeMixin from "@/components/makepager/mixin/codeMixin" export default { name: "QuotationDialog", + mixins: [codeMixin], props: { editCommonConfig: { type: Object, @@ -312,16 +366,18 @@ }, data() { return { - dialogWidth: "80%", + refreshFlag: true, + dialogWidth: "50%", editConfig: this.editCommonConfig, rules: { - client_id: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }], - number: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }], + number: [{ required: true, validator: this.validateCheckCode, trigger: ["blur","change"] }], + quotationName: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }], quotation_status_id: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }], + sale_chance_name: [{ required: true, validator: this.checkChance, trigger: "change" }], member_id: [{ required: true, message: "璇烽�夋嫨璐熻矗浜�", trigger: "change" }] }, memberOptions: [], - quotationStatusOptions: [{ id: 1, name: "涓嶇煡閬�" }], // 鎶ヤ环鍗曠姸鎬� + quotationStatusOptions: [], // 鎶ヤ环鍗曠姸鎬� currencyOptions: [{ id: 1, name: "浜烘皯甯�" }], // 甯佺 approvalWorkflowOptions: [], // 瀹℃壒娴佺▼ productTableList: {}, @@ -351,7 +407,8 @@ saleChanceId: this.editCommonConfig.infomation.sale_chance_id, tableData: [], productId: 1, - isNoProduct: true + isNoProduct: true, + objCode: { name: "", page: 0, pageSize: 0, type: "鎶ヤ环缂栫爜", codeStandID: "" } } }, created() { @@ -360,8 +417,23 @@ this.$store.dispatch("geChance") this.setTableForm() this.getCommonData() + this.formInfo() + }, + watch: { + "editConfig.visible"(val) { + if (val) { + this.formInfo() + } + }, }, methods: { + formInfo() { + this.objCode.codeStandID = "" + if (this.editConfig.infomation.codeStandID) { + this.objCode.codeStandID = this.editConfig.infomation.codeStandID + } + this.getRCodeStandardList() + }, getCommonData() { getAllData() .then((res) => { @@ -422,20 +494,31 @@ } }) }, + /** + * 寮哄埗鍒锋柊form缁勪欢 + * 澶栭儴鏇存敼琛ㄥ崟鍊间笉浼氳Е鍙戣〃鍗曟牎楠�,瀵艰嚧鍗充娇鏈夊�煎琚〃鍗曟牎楠岄樆濉炰綇 + */ + refresh() { + this.refreshFlag = false + requestAnimationFrame(() => { + this.refreshFlag = true + }) + }, saveParams() { let data = this.editConfig.infomation let params = { id: this.editConfig.title === "鏂板缓" ? 0 : data.id, - client_id: this.clientId || 0, + quotationName: data.quotationName || "", conditions: data.conditions || "", - contact_id: this.contactId || 0, file: data.file || "", member_id: data.member_id || 0, number: data.number || "", quotation_status_id: data.quotation_status_id || 0, sale_chance_id: this.saleChanceId || 0, validity_date: data.validity_date || "", - products: this.tableData + products: this.tableData, + codeStandID: data.ID, + client_id: this.clientId || 0 } return params }, @@ -491,6 +574,7 @@ this.editConfig.infomation.client_name = row.name this.clientId = row.id } + this.refresh() }, // 娓呴櫎宸查�夋嫨鐢ㄦ埛 clearupClient(value) { @@ -504,13 +588,14 @@ this.editConfig.infomation.contact_name = "" this.contactId = 0 } + this.refresh() }, // 娣诲姞闄勪欢 addAnnexClick() {}, // 璁剧疆鍏佽涓婁紶鏂囦欢鏍煎紡 setFormatClick() {}, setTableForm() { - if (this.editConfig.title === "鏂板缓") { + if (this.editConfig.title === "鏂板缓" || this.editConfig.infomation.products.length === 0) { this.tableData = [ { productId: this.productId, @@ -587,6 +672,14 @@ clearupProduct(data) { this.tableData = data this.productTableList.tableData = this.tableData + }, + // 璁㈠崟缂栫爜鍗曠嫭鏍¢獙 + checkChance(rule, value, callback) { + if (this.editConfig.infomation.sale_chance_name && this.editConfig.infomation.sale_chance_name.length > 0) { + callback() + } else { + callback(new Error("璇烽�夋嫨閿�鍞満浼�")) + } } } } @@ -613,7 +706,7 @@ .common-select { display: flex; .common-select-sel { - width: 270px; + flex: 1; } .common-select-btn { margin-left: 5px; @@ -621,6 +714,11 @@ cursor: pointer; } } + .custom-name { + .el-autocomplete { + flex: 1; + } + } } .annex-view { display: flex; -- Gitblit v1.8.0