From 76350343afce04acc849c4a51171641469fb36db Mon Sep 17 00:00:00 2001 From: haoxuan <haoxuan> Date: 星期一, 23 十月 2023 17:59:39 +0800 Subject: [PATCH] 客户管理,跟进记录,线索,发票,合同管理,总单,报价单,退款单,明细单,机会,退货单,子单,客户服务单,服务合同,服务回访单 --- src/views/service/serviceContract/AddServiceContractDialog.vue | 23 src/views/client/contacts/AddContactsDialog.vue | 2 src/views/service/serviceFollowup/AddServiceFollowupDialog.vue | 23 src/views/client/followupRecords/AddFollowupRecordsDialog.vue | 451 +++++++++++++--------- src/views/client/salesLead/AddSalesLeadDialog.vue | 23 src/views/sales/salesDetails/AddSalesDetailsDialog.vue | 23 src/components/makepager/mixin/codeMixin.js | 128 ++++++ src/views/sales/masterOrder/AddMasterOrderDialog.vue | 27 + src/views/sales/salesReturn/AddSalesReturnDialog.vue | 23 src/views/service/clientServiceOrder/AddCientServiceOrderDialog.vue | 22 src/views/sales/refundForm/AddRefundFormDialog.vue | 23 src/views/service/clientServiceOrder/mixin/codeMixin.js | 128 +++-- src/views/client/client/AddClientManageDialog.vue | 23 /dev/null | 99 ---- src/views/sales/salesOpportunity/AddSalesOpportunityDialog.vue | 26 + src/views/other/payment/saleInvoice/addSaleInvoice.vue | 22 src/views/sales/quotation/AddQuotationDialog.vue | 23 src/views/sales/subOrder/AddSubOrderDialog.vue | 26 + src/views/sales/contractManage/AddContractManageDialog.vue | 32 19 files changed, 740 insertions(+), 407 deletions(-) diff --git a/src/components/makepager/mixin/codeMixin.js b/src/components/makepager/mixin/codeMixin.js new file mode 100644 index 0000000..515cf09 --- /dev/null +++ b/src/components/makepager/mixin/codeMixin.js @@ -0,0 +1,128 @@ +import WordInput from "@/components/wordInput" +import { getCodeStandardList,getAutoCode } from "@/api/common/standard" +export default { + components: { + WordInput + }, + data() { + return { + // 缂栫爜 + // 鏄惁鑷姩鐢熸垚 + isIdDisabled: false, + inputValue: [], + explain: "", + codenumer: 0, //姣忔杈撳叆鐨勭紪鐮� + codenumberList: [], //鏁存潯缂栫爜 + sum: 0, + method: 0, + objCode: { name: "", page: 0, pageSize: 0, type: "璺熻繘璁板綍缂栫爜", codeStandID: "" }, + codeRule: {}, + codeLength: 0, + autoCodeObj: {} + } + }, + + methods: { + async getRCodeStandardList() { + try { + if (this.editConfig.title == "鏂板缓") { + const res = await getCodeStandardList(this.objCode) + this.codenumer = [] + this.sum = 0 + this.explain = "" + this.codeLength = 0; + if (res.code == 200) { + const { List = [], ID, AutoRule = {}, Method } = res.data && res.data.data ? res.data.data[0] : [] + this.codeRule = res.data && res.data.data ? res.data.data[0] : {} + let autoRule = AutoRule + let method = Method ? Method : 0 + this.method = method + let rules = List + this.editConfig.infomation.ID = ID + if (method == 0 && res.data.data.length > 0) { + console.log("sss") + rules.forEach((item, index) => { + // setTimeout(() => { + // this.codenumer = item.length; + // this.sum++; + // }, 200); + this.codenumer.push(item.Length) + this.codeLength += item.Length; + this.sum++ + this.explain += item.Name + (index === rules.Length - 1 ? "" : "/") + }) + } + console.log(method) + if (method == 1) { + if (Object.keys(autoRule).length > 0) { + this.isIdDisabled = true + if (autoRule.PrefixMethod == 1) { + let prefix = autoRule.PrefixValue.split("").length + + this.codenumer.push(prefix) + this.codeLength += prefix; + if (autoRule.SuffixMethod == 2) { + this.codenumer.push(8) + this.codeLength += 8; + } + if (autoRule.AutoLength) { + this.codenumer.push(autoRule.AutoLength) + this.codeLength += autoRule.AutoLength; + } + this.sum = prefix + Number(autoRule.AutoLength) + // this.codeList( + // this.editConfig.infomation.number ? this.editConfig.infomation.number : autoRule.PrefixValue + // ) + return true + } + } + } + + this.$forceUpdate() + } else { + this.$message.error(res.data.msg ? res.data.msg : "鑾峰彇缂栫爜瑙勮寖澶辫触锛岃閲嶈瘯锛�") + } + this.getAutoCodeValue() + } else { + this.codeList(this.editConfig.infomation.number) + } + } catch (err) { + console.log(err) + } + }, + async getAutoCodeValue() { + const res = await getAutoCode({ codeType: this.objCode.type,autoIncr:this.autoIncr }); + if (res.code == 200) { + this.autoCodeObj = res.data; + this.$set(this.editConfig.infomation, 'number', this.autoCodeObj.id) + } + }, + codeList(val) { + this.inputValue = val + this.codenumberList = val.toString() + this.editConfig.infomation.number = this.codenumberList.length > 0 ? this.codenumberList.replace(/,/g, "") : "" + console.log(this.codenumberList.replace(/,/g, "")) + }, + // validateFormNumber() { + // this.$set(this.editConfig.infomation, 'number', this.editConfig.infomation.number) + // this.$refs.form.validateField('number') + // }, + // 璁㈠崟缂栫爜鍗曠嫭鏍¢獙 + validateCheckCode(rule, value, callback) { + if (value && value.length > 0) { + if (this.editConfig.title == "鏂板缓") { + if (value.length != this.codeLength) { + callback(new Error("璇峰~鍐�" + this.codeLength + "浣嶇殑缂栫爜锛�")); + } + } + callback(); + } else { + callback(new Error("璇疯緭鍏ョ紪鐮�")); + } + }, + // 閰嶇疆缂栫爜瑙勮寖鐨勮烦杞� + numberClick() { + window.open("http://www.fai365.com:9080/facilty", "_blank") + } + } +} diff --git a/src/views/client/client/AddClientManageDialog.vue b/src/views/client/client/AddClientManageDialog.vue index c314122..90c0146 100644 --- a/src/views/client/client/AddClientManageDialog.vue +++ b/src/views/client/client/AddClientManageDialog.vue @@ -25,7 +25,22 @@ <el-row> <el-col :span="12"> <el-form-item label="瀹㈡埛缂栧彿" prop="number"> - <WordInput + <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" @@ -40,7 +55,7 @@ </el-button ></span > - <span v-else>鑷姩鐢熸垚</span> + <span v-else>鑷姩鐢熸垚</span> --> </el-form-item> </el-col> <el-col :span="12"> @@ -510,7 +525,7 @@ <script> import { getAllData, getAddClient, getUpdateClient, checkNameClient } from "@/api/client/client" import { getCityList } from "@/api/common/address" -import codeMixin from "@/views/client/followupRecords/mixin/codeMixin"; +import codeMixin from "@/components/makepager/mixin/codeMixin" export default { name: "AddClientManageDialog", mixins: [codeMixin], @@ -538,7 +553,7 @@ dialogWidth: "50%", editConfig: this.editClientManageConfig, rules: { - number: [{ required: true, message: "璇疯緭鍏ュ鎴风紪鍙�", trigger: ["change",'blur' ]}], + number: [{ required: true, validator: this.validateCheckCode, trigger: ["change",'blur' ]}], name: [ { required: true, message: "璇疯緭鍏ュ鎴峰悕绉�", trigger: ["change",'blur' ] }, { diff --git a/src/views/client/contacts/AddContactsDialog.vue b/src/views/client/contacts/AddContactsDialog.vue index f691b9b6..150be49 100644 --- a/src/views/client/contacts/AddContactsDialog.vue +++ b/src/views/client/contacts/AddContactsDialog.vue @@ -272,7 +272,7 @@ import { getAllData } from "@/api/client/client" import SelectClientDialog from "@/views/other/commonDialog/SelectClientDialog" import { getCityList } from "@/api/common/address" -import codeMixin from "@/views/client/followupRecords/mixin/codeMixin" +import codeMixin from "@/components/makepager/mixin/codeMixin" export default { name: "AddContactsDialog", mixins: [codeMixin], diff --git a/src/views/client/followupRecords/AddFollowupRecordsDialog.vue b/src/views/client/followupRecords/AddFollowupRecordsDialog.vue index da6f687..02375c7 100644 --- a/src/views/client/followupRecords/AddFollowupRecordsDialog.vue +++ b/src/views/client/followupRecords/AddFollowupRecordsDialog.vue @@ -24,7 +24,22 @@ <el-row> <el-col :span="12" v-if="isUnflod"> <el-form-item label="璺熻繘璁板綍缂栧彿" prop="number"> - <WordInput + <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" @@ -35,7 +50,7 @@ <span v-else-if="method == 0" style="color: #f56c6c" >璇蜂紭鍏堥厤缃紪鐮佽鑼� <el-button type="text" @click="numberClick"> 閰嶇疆瑙勮寖 </el-button></span > - <span v-else>鑷姩鐢熸垚</span> + <span v-else>鑷姩鐢熸垚</span> --> </el-form-item> </el-col> <el-col :span="12"> @@ -45,18 +60,24 @@ v-model="editConfig.infomation.client_name" :fetch-suggestions=" (queryString, callback) => { - querySearchAsync(queryString, callback, 'client') + querySearchAsync(queryString, callback, 'client'); } " value-key="name" @select="handleSelectClient('client', $event)" style="width: 100%" ></el-autocomplete> - <div class="common-select-btn" @click="selClientClick('client')"> + <div + class="common-select-btn" + @click="selClientClick('client')" + > <i class="el-icon-circle-plus-outline" title="閫夋嫨"></i> </div> <div - v-if="editConfig.infomation.client_name && editConfig.infomation.client_name.length > 0" + v-if=" + editConfig.infomation.client_name && + editConfig.infomation.client_name.length > 0 + " class="common-select-btn" @click="clearupClient('client')" > @@ -75,7 +96,12 @@ size="mini" style="width: 100%" > - <el-option v-for="item in clientStatusOptions" :key="item.id" :label="item.name" :value="item.id"> + <el-option + v-for="item in clientStatusOptions" + :key="item.id" + :label="item.name" + :value="item.id" + > </el-option> </el-select> <!-- <div class="common-select-btn"><i class="el-icon-setting"></i></div> --> @@ -89,18 +115,24 @@ v-model="editConfig.infomation.contact_name" :fetch-suggestions=" (queryString, callback) => { - querySearchAsync(queryString, callback, 'contact') + querySearchAsync(queryString, callback, 'contact'); } " value-key="name" @select="handleSelectClient('contact', $event)" style="width: 100%" ></el-autocomplete> - <div class="common-select-btn" @click="selClientClick('contact')"> + <div + class="common-select-btn" + @click="selClientClick('contact')" + > <i class="el-icon-circle-plus-outline" title="閫夋嫨"></i> </div> <div - v-if="editConfig.infomation.contact_name && editConfig.infomation.contact_name.length > 0" + v-if=" + editConfig.infomation.contact_name && + editConfig.infomation.contact_name.length > 0 + " class="common-select-btn" @click="clearupClient('contact')" > @@ -117,7 +149,12 @@ size="mini" style="width: 100%" > - <el-option v-for="item in memberOptions" :key="item.id" :label="item.username" :value="item.id"> + <el-option + v-for="item in memberOptions" + :key="item.id" + :label="item.username" + :value="item.id" + > </el-option> </el-select> </el-form-item> @@ -141,7 +178,12 @@ size="mini" style="width: 100%" > - <el-option v-for="item in contactInfoOptions" :key="item.id" :label="item.name" :value="item.id"> + <el-option + v-for="item in contactInfoOptions" + :key="item.id" + :label="item.name" + :value="item.id" + > </el-option> </el-select> </el-form-item> @@ -153,7 +195,7 @@ v-model="editConfig.infomation.sale_chance_name" :fetch-suggestions=" (queryString, callback) => { - querySearchAsync(queryString, callback, 'chance') + querySearchAsync(queryString, callback, 'chance'); } " value-key="name" @@ -162,7 +204,11 @@ placeholder="璇峰厛閫夋嫨瀹㈡埛鍚嶇О" :disabled="isChance" ></el-autocomplete> - <div v-if="!isChance" class="common-select-btn" @click="selClientClick('chance')"> + <div + v-if="!isChance" + class="common-select-btn" + @click="selClientClick('chance')" + > <i class="el-icon-circle-plus-outline"></i> </div> <div @@ -187,18 +233,24 @@ v-model="editConfig.infomation.sales_leads_name" :fetch-suggestions=" (queryString, callback) => { - querySearchAsync(queryString, callback, 'lead') + querySearchAsync(queryString, callback, 'lead'); } " value-key="name" @select="handleSelectClient('lead', $event)" style="width: 100%" ></el-autocomplete> - <div class="common-select-btn" @click="selClientClick('lead')"> + <div + class="common-select-btn" + @click="selClientClick('lead')" + > <i class="el-icon-circle-plus-outline"></i> </div> <div - v-if="editConfig.infomation.sales_leads_name && editConfig.infomation.sales_leads_name.length > 0" + v-if=" + editConfig.infomation.sales_leads_name && + editConfig.infomation.sales_leads_name.length > 0 + " class="common-select-btn" @click="clearupClient('lead')" > @@ -296,15 +348,23 @@ </div> --> </div> <!-- 灞曞紑鏀惰捣 --> - <div v-if="editConfig.title === '鏂板缓'" class="unflod-collapse" @click="unflodCollapseClick"> + <div + v-if="editConfig.title === '鏂板缓'" + class="unflod-collapse" + @click="unflodCollapseClick" + > <div>{{ unflodCollapseStr }}</div> <div v-if="isUnflod"><i class="el-icon-arrow-up"></i></div> <div v-else><i class="el-icon-arrow-down"></i></div> </div> </el-form> <div slot="footer" class="dialog-footer"> - <el-button type="primary" size="small" @click="saveClick('form')">淇� 瀛�</el-button> - <el-button size="small" @click="editConfig.visible = false">鍙� 娑�</el-button> + <el-button type="primary" size="small" @click="saveClick('form')" + >淇� 瀛�</el-button + > + <el-button size="small" @click="editConfig.visible = false" + >鍙� 娑�</el-button + > </div> <!-- 閫夋嫨瀹㈡埛 --> <SelectClientDialog @@ -335,17 +395,21 @@ </template> <script> -import { getAllData } from "@/api/client/client" -import { getAddFollowRecord, getUpdateFollowRecord, getContactInfoList } from "@/api/client/followupRecords" -import SelectClientDialog from "@/views/other/commonDialog/SelectClientDialog" -import SelectContactDialog from "@/views/other/commonDialog/SelectContactDialog" -import SelectChanceDialog from "@/views/other/commonDialog/SelectChanceDialog" -import SelectLeadDialog from "@/views/other/commonDialog/SelectLeadDialog" -import codeMixin from "./mixin/codeMixin" -import { getContactList } from "@/api/client/contacts" -import { mapActions } from "vuex" -import { getSaleChanceList } from "@/api/sales/salesOpportunity" -import { getSalesLeadsList } from "@/api/client/salesLead" +import { getAllData } from "@/api/client/client"; +import { + getAddFollowRecord, + getUpdateFollowRecord, + getContactInfoList, +} from "@/api/client/followupRecords"; +import SelectClientDialog from "@/views/other/commonDialog/SelectClientDialog"; +import SelectContactDialog from "@/views/other/commonDialog/SelectContactDialog"; +import SelectChanceDialog from "@/views/other/commonDialog/SelectChanceDialog"; +import SelectLeadDialog from "@/views/other/commonDialog/SelectLeadDialog"; +import codeMixin from "@/components/makepager/mixin/codeMixin"; +import { getContactList } from "@/api/client/contacts"; +import { mapActions } from "vuex"; +import { getSaleChanceList } from "@/api/sales/salesOpportunity"; +import { getSalesLeadsList } from "@/api/client/salesLead"; export default { name: "AddFollowupRecordsDialog", @@ -357,28 +421,28 @@ return { visible: false, title: "鏂板缓", - infomation: {} - } - } + infomation: {}, + }; + }, }, isDetail: { type: Boolean, - default: false - } + default: false, + }, }, components: { SelectClientDialog, SelectContactDialog, SelectChanceDialog, - SelectLeadDialog + SelectLeadDialog, }, computed: { searchCommonHeight() { - return this.$refs.searchCommonView.offsetHeight + return this.$refs.searchCommonView.offsetHeight; }, clientList() { - return this.$store.state.getClientName.clientList - } + return this.$store.state.getClientName.clientList; + }, // contactNamelist() { // return this.$store.state.getClientName.contactNamelist // }, @@ -394,27 +458,38 @@ dialogWidth: "50%", editConfig: this.editContactsConfig, rules: { - number: [{ required: true, message: "璇疯緭鍏ヨ窡杩涜褰曠紪鍙�", trigger: "blur" }], - member_id: [{ required: true, message: "璇烽�夋嫨璐熻矗浜�", trigger: "change" }], - record: [{ required: true, message: "璇疯緭鍏ヨ窡杩涜褰�", trigger: "blur" }], - client_name: [{ required: true, validator: this.checkClient, trigger: "change" }], - contact_name: [{ required: true, message: "璇烽�夋嫨鑱旂郴浜哄鍚�", trigger: "change" }], + number: [ + { required: true, validator: this.validateCheckCode, trigger: "blur" }, + ], + member_id: [ + { required: true, message: "璇烽�夋嫨璐熻矗浜�", trigger: "change" }, + ], + record: [ + { required: true, message: "璇疯緭鍏ヨ窡杩涜褰�", trigger: "blur" }, + ], + client_name: [ + { required: true, validator: this.checkClient, trigger: "change" }, + ], + contact_name: [ + { required: true, message: "璇烽�夋嫨鑱旂郴浜哄鍚�", trigger: "change" }, + ], topic: [{ required: true, message: "璇疯緭鍏ヤ富棰�", trigger: "blur" }], // content: [{ required: true, message: "璇疯緭鍏ュ唴瀹�", trigger: "blur" }], phoneNumber: [ { required: false, message: "", trigger: "blur" }, { len: 11, message: "闀垮害鍦�11涓瓧绗�", trigger: "blur" }, { - pattern: /^1(3\d|4[5-9]|5[0-35-9]|6[2567]|7[0-8]|8\d|9[0-35-9])\d{8}$/, + pattern: + /^1(3\d|4[5-9]|5[0-35-9]|6[2567]|7[0-8]|8\d|9[0-35-9])\d{8}$/, message: "璇疯緭鍏ユ纭殑鎵嬫満鍙�", - trigger: "blur" - } - ] + trigger: "blur", + }, + ], }, pickerOptions: { disabledDate: (time) => { - return time.getTime() > Date.now() - } + return time.getTime() > Date.now(); + }, }, clientStatusOptions: [], // 瀹㈡埛鐘舵�� contactInfoOptions: [], // 鑱旂郴鏂瑰紡 @@ -424,124 +499,125 @@ editSelectClientConfig: { editVisible: false, title: "", - infomation: {} + infomation: {}, }, editSelectContactConfig: { editVisible: false, title: "", infomation: {}, - search_map: {} + search_map: {}, }, editSelectChanceConfig: { editVisible: false, title: "", infomation: {}, - search_map: {} + search_map: {}, }, editSelectLeadConfig: { editVisible: false, title: "", infomation: {}, - search_map: {} + search_map: {}, }, clientId: this.editContactsConfig.infomation.client_id, contactId: this.editContactsConfig.infomation.contact_id, saleChanceId: this.editContactsConfig.infomation.sale_chance_id, saleLeadId: this.editContactsConfig.infomation.sales_leads_id, saleChancelist: [], - isChance: true - } + isChance: true, + }; }, created() { - this.$store.dispatch("geClient") + this.$store.dispatch("geClient"); // this.$store.dispatch("geContact") // this.$store.dispatch("geChance") // this.$store.dispatch("geLead") - this.getCommonData() - this.getContactInfoList() - this.formInfo() + this.getCommonData(); + this.getContactInfoList(); + this.formInfo(); }, watch: { "editContactsConfig.visible"(val) { if (val) { - this.formInfo() + this.formInfo(); } }, "editContactsConfig.infomation.codeStandID"() { - this.formInfo() - } + this.formInfo(); + }, }, methods: { ...mapActions(["getContactFilter", "getLeadFilter"]), formInfo() { - this.objCode.type = "璺熻繘璁板綍缂栫爜" - this.objCode.codeStandID = "" + this.objCode.type = "璺熻繘璁板綍缂栫爜"; + this.objCode.codeStandID = ""; if (this.editConfig.infomation.codeStandID) { - this.objCode.codeStandID = this.editConfig.infomation.codeStandID + this.objCode.codeStandID = this.editConfig.infomation.codeStandID; } - this.getRCodeStandardList() + this.getRCodeStandardList(); }, getCommonData() { getAllData().then((res) => { - console.log(res) - this.clientStatusOptions = res.data.client_status - this.memberOptions = res.data.member + console.log(res); + this.clientStatusOptions = res.data.client_status; + this.memberOptions = res.data.member; // this.dataProcess() - }) + }); }, async getContactInfoList() { await getContactInfoList().then((res) => { if (res.code === 200) { - this.contactInfoOptions = res.data.list + this.contactInfoOptions = res.data.list; } - }) + }); }, dataProcess() { this.saleChancelist.map((item) => { if (this.saleChanceId === item.id) { - this.editConfig.infomation.sale_chance_name = item.name + this.editConfig.infomation.sale_chance_name = item.name; } - }) + }); this.saleLeadlist.map((item) => { if (this.saleLeadId === item.id) { - this.editConfig.infomation.sales_leads_name = item.name + this.editConfig.infomation.sales_leads_name = item.name; } - }) + }); }, handleClose() { - this.editConfig.visible = false + this.editConfig.visible = false; }, // 淇濆瓨 saveClick(formName) { this.$refs[formName].validate((valid) => { - this.validateFormNumber() if (valid) { - const params = this.saveParams() + const params = this.saveParams(); if (this.editConfig.title === "鏂板缓") { + params.codeStandardID=this.autoCodeObj.codeStandardID + params.autoIncr=this.autoCodeObj.maxAutoIncr getAddFollowRecord(params).then((res) => { - this.editConfig.visible = false + this.editConfig.visible = false; if (res.code === 200) { - this.$message.success("娣诲姞鎴愬姛") - this.$parent.getData() + this.$message.success("娣诲姞鎴愬姛"); + this.$parent.getData(); } - }) + }); } else { getUpdateFollowRecord(params).then((res) => { - this.editConfig.visible = false + this.editConfig.visible = false; if (res.code === 200) { - this.$message.success("缂栬緫鎴愬姛") - this.$parent.getData() + this.$message.success("缂栬緫鎴愬姛"); + this.$parent.getData(); } - }) + }); } } else { - console.log("error submit") - return false + console.log("error submit"); + return false; } - }) + }); }, saveParams() { - let data = this.editConfig.infomation + let data = this.editConfig.infomation; let follow_record = { follow_record: { client_id: this.clientId || 0, @@ -559,16 +635,16 @@ sales_leads_id: this.saleLeadId || 0, topic: data.topic || "", codeStandID: data.ID, - codeRule: this.codeRule - } - } - let params = {} + codeRule: this.codeRule, + }, + }; + let params = {}; if (this.editConfig.title === "鏂板缓") { - params = { ...follow_record } + params = { ...follow_record }; } else { - params = { ...follow_record, id: data.id || 0 } + params = { ...follow_record, id: data.id || 0 }; } - return params + return params; }, // 鑾峰彇閿�鍞満浼� getChanceList(id) { @@ -576,141 +652,145 @@ page: 1, pageSize: 15, search_map: { - client_id: id - } + client_id: id, + }, }).then((res) => { if (res.code == 200) { - this.saleChancelist = res.data.list + this.saleChancelist = res.data.list; } - }) + }); }, // 閫夋嫨瀹㈡埛鐩稿叧鏂规硶 querySearchAsync(queryString, cb, value) { - var restaurants = [] + var restaurants = []; if (value === "client") { - restaurants = this.clientList + restaurants = this.clientList; } else if (value === "contact") { - restaurants = this.contactNamelist + restaurants = this.contactNamelist; } else if (value === "chance") { - restaurants = this.saleChancelist + restaurants = this.saleChancelist; } else { - restaurants = this.saleLeadlist + restaurants = this.saleLeadlist; } - var results = queryString ? restaurants.filter(this.createStateFilter(queryString)) : restaurants - cb(results) + var results = queryString + ? restaurants.filter(this.createStateFilter(queryString)) + : restaurants; + cb(results); }, createStateFilter(queryString) { return (state) => { - return state.name.toLowerCase().indexOf(queryString.toLowerCase()) === 0 - } + return ( + state.name.toLowerCase().indexOf(queryString.toLowerCase()) === 0 + ); + }; }, // 鑱旂郴浜哄垪琛� async getContactList(item) { await getContactList({ search_map: { - client_id: item.id + client_id: item.id, }, page: 1, - pageSize: 15 + pageSize: 15, }).then((res) => { if (res.code === 200) { - this.contactNamelist = res.data.list + this.contactNamelist = res.data.list; } - }) + }); }, // 閿�鍞嚎绱� async getSalesLeadsList(item) { await getSalesLeadsList({ search_map: { - name: item.name - } + name: item.name, + }, }).then((res) => { if (res.code === 200) { - this.saleLeadlist = res.data.list + this.saleLeadlist = res.data.list; } - }) + }); }, async handleSelectClient(value, item) { if (value === "client") { - this.editConfig.infomation.contact_name = "" - this.editConfig.infomation.sales_leads_name="" - this.editConfig.infomation.sale_chance_name="" - this.editSelectContactConfig.search_map.client_id = item.id - this.editSelectChanceConfig.search_map.client_id = item.id - this.editSelectLeadConfig.search_map.name = item.name - this.getContactList(item) - this.getSalesLeadsList(item) - this.clientId = item.id - this.editConfig.infomation.client_name = item.name - this.isChance = false - this.getChanceList(item.id) + this.editConfig.infomation.contact_name = ""; + this.editConfig.infomation.sales_leads_name = ""; + this.editConfig.infomation.sale_chance_name = ""; + this.editSelectContactConfig.search_map.client_id = item.id; + this.editSelectChanceConfig.search_map.client_id = item.id; + this.editSelectLeadConfig.search_map.name = item.name; + this.getContactList(item); + this.getSalesLeadsList(item); + this.clientId = item.id; + this.editConfig.infomation.client_name = item.name; + this.isChance = false; + this.getChanceList(item.id); } else if (value === "contact") { - this.contactId = item.id - this.editConfig.infomation.contact_name = item.name + this.contactId = item.id; + this.editConfig.infomation.contact_name = item.name; } else if (value === "chance") { - this.saleChanceId = item.id - this.editConfig.infomation.sale_chance_name = item.name + this.saleChanceId = item.id; + this.editConfig.infomation.sale_chance_name = item.name; } else { - this.saleLeadId = item.id - this.editConfig.infomation.sales_leads_name = item.name + this.saleLeadId = item.id; + this.editConfig.infomation.sales_leads_name = item.name; } }, selClientClick(value) { if (value === "client") { - this.editSelectClientConfig.editVisible = true + this.editSelectClientConfig.editVisible = true; } else if (value === "contact") { - this.editSelectContactConfig.editVisible = true + this.editSelectContactConfig.editVisible = true; } else if (value === "chance") { - this.editSelectChanceConfig.editVisible = true + this.editSelectChanceConfig.editVisible = true; } else { - this.editSelectLeadConfig.editVisible = true + this.editSelectLeadConfig.editVisible = true; } }, selClient(row, value) { if (value === "contact") { - this.editConfig.infomation.contact_name = row.name - this.contactId = row.id + this.editConfig.infomation.contact_name = row.name; + this.contactId = row.id; } else if (value === "client") { - this.editConfig.infomation.contact_name = "" - this.editConfig.infomation.sales_leads_name="" - this.editConfig.infomation.sale_chance_name="" - this.editSelectContactConfig.search_map.client_id = row.id - this.editSelectChanceConfig.search_map.client_id = row.id - this.editSelectLeadConfig.search_map.name = row.name - this.getContactList(row) - this.getSalesLeadsList(row) - this.clientId = row.id - this.editConfig.infomation.client_name = row.name - this.isChance = false - this.getChanceList(row.id) + this.editConfig.infomation.contact_name = ""; + this.editConfig.infomation.sales_leads_name = ""; + this.editConfig.infomation.sale_chance_name = ""; + this.editSelectContactConfig.search_map.client_id = row.id; + this.editSelectChanceConfig.search_map.client_id = row.id; + this.editSelectLeadConfig.search_map.name = row.name; + this.getContactList(row); + this.getSalesLeadsList(row); + this.clientId = row.id; + this.editConfig.infomation.client_name = row.name; + this.isChance = false; + this.getChanceList(row.id); } else if (value === "chance") { - this.editConfig.infomation.sale_chance_name = row.name - this.saleChanceId = row.id + this.editConfig.infomation.sale_chance_name = row.name; + this.saleChanceId = row.id; } else { - this.editConfig.infomation.sales_leads_name = row.name - this.saleLeadId = row.id + this.editConfig.infomation.sales_leads_name = row.name; + this.saleLeadId = row.id; } }, // 娓呴櫎宸查�夋嫨鐢ㄦ埛 clearupClient(value) { if (value === "client") { - this.editConfig.infomation.contact_name = "" - this.editConfig.infomation.sales_leads_name="" - this.editConfig.infomation.sale_chance_name="" - this.editConfig.infomation.client_name = "" - this.clientId = 0 - this.isChance = true - this.editConfig.infomation.sale_chance_name = "" - this.saleChanceId = 0 + this.editConfig.infomation.contact_name = ""; + this.editConfig.infomation.sales_leads_name = ""; + this.editConfig.infomation.sale_chance_name = ""; + this.editConfig.infomation.client_name = ""; + this.clientId = 0; + this.isChance = true; + this.editConfig.infomation.sale_chance_name = ""; + this.saleChanceId = 0; } else if (value === "contact") { - this.editConfig.infomation.contact_name = "" - this.contactId = 0 + this.editConfig.infomation.contact_name = ""; + this.contactId = 0; } else if (value === "chance") { - this.editConfig.infomation.sale_chance_name = "" - this.saleChanceId = 0 + this.editConfig.infomation.sale_chance_name = ""; + this.saleChanceId = 0; } else { - this.editConfig.infomation.sales_leads_name = "" - this.saleLeadId = 0 + this.editConfig.infomation.sales_leads_name = ""; + this.saleLeadId = 0; } }, // 娣诲姞闄勪欢 @@ -720,23 +800,26 @@ // 灞曞紑鏀惰捣 unflodCollapseClick() { if (this.unflodCollapseStr === "鏀惰捣") { - this.unflodCollapseStr = "灞曞紑鏇村鏍忕洰" - this.isUnflod = false + this.unflodCollapseStr = "灞曞紑鏇村鏍忕洰"; + this.isUnflod = false; } else { - this.unflodCollapseStr = "鏀惰捣" - this.isUnflod = true + this.unflodCollapseStr = "鏀惰捣"; + this.isUnflod = true; } }, // 瀹㈡埛鍚嶇О鍗曠嫭鏍¢獙 checkClient(rule, value, callback) { - if (this.editConfig.infomation.client_name && this.editConfig.infomation.client_name.length > 0) { - callback() + if ( + this.editConfig.infomation.client_name && + this.editConfig.infomation.client_name.length > 0 + ) { + callback(); } else { - callback(new Error("璇烽�夋嫨瀹㈡埛鍚嶇О")) + callback(new Error("璇烽�夋嫨瀹㈡埛鍚嶇О")); } - } - } -} + }, + }, +}; </script> <!-- Add "scoped" attribute to limit CSS to this component only --> diff --git a/src/views/client/followupRecords/mixin/codeMixin.js b/src/views/client/followupRecords/mixin/codeMixin.js deleted file mode 100644 index 8e5b6c1..0000000 --- a/src/views/client/followupRecords/mixin/codeMixin.js +++ /dev/null @@ -1,99 +0,0 @@ -import WordInput from "@/components/wordInput" -import { getCodeStandardList } from "@/api/common/standard" -export default { - components: { - WordInput - }, - data() { - return { - // 缂栫爜 - // 鏄惁鑷姩鐢熸垚 - isIdDisabled: false, - inputValue: [], - explain: "", - codenumer: 0, //姣忔杈撳叆鐨勭紪鐮� - codenumberList: [], //鏁存潯缂栫爜 - sum: 0, - method: 0, - objCode: { name: "", page: 0, pageSize: 0, type: "璺熻繘璁板綍缂栫爜", codeStandID: "" }, - codeRule: {} - } - }, - - methods: { - async getRCodeStandardList() { - try { - const res = await getCodeStandardList(this.objCode) - this.codenumer = [] - this.sum = 0 - this.explain = "" - if (res.code == 200) { - const { List = [], ID, AutoRule = {}, Method } = res.data && res.data.data ? res.data.data[0] : [] - this.codeRule = res.data && res.data.data ? res.data.data[0] : {} - let autoRule = AutoRule - let method = Method ? Method : 0 - this.method = method - let rules = List - this.editConfig.infomation.ID = ID - if (method == 0 && res.data.data.length > 0) { - console.log("sss") - rules.forEach((item, index) => { - // setTimeout(() => { - // this.codenumer = item.length; - // this.sum++; - // }, 200); - this.codenumer.push(item.Length) - this.sum++ - this.explain += item.Name + (index === rules.Length - 1 ? "" : "/") - }) - } - console.log(method) - if (method == 1) { - if (Object.keys(autoRule).length > 0) { - this.isIdDisabled = true - if (autoRule.PrefixMethod == 1) { - let prefix = autoRule.PrefixValue.split("").length - - this.codenumer.push(prefix) - if (autoRule.SuffixMethod == 2) { - this.codenumer.push(8) - } - if (autoRule.AutoLength) { - this.codenumer.push(autoRule.AutoLength) - } - this.sum = prefix + Number(autoRule.AutoLength) - this.codeList( - this.editConfig.infomation.number ? this.editConfig.infomation.number : autoRule.PrefixValue - ) - return true - } - } - } - if (this.editConfig.title !== "鏂板缓") { - this.codeList(this.editConfig.infomation.number) - } - - this.$forceUpdate() - } else { - this.$message.error(res.data.msg ? res.data.msg : "鑾峰彇缂栫爜瑙勮寖澶辫触锛岃閲嶈瘯锛�") - } - } catch (err) { - console.log(err) - } - }, - codeList(val) { - this.inputValue = val - this.codenumberList = val.toString() - this.editConfig.infomation.number = this.codenumberList.length > 0 ? this.codenumberList.replace(/,/g, "") : "" - console.log(this.codenumberList.replace(/,/g, "")) - }, - validateFormNumber(){ - this.$set(this.editConfig.infomation,'number',this.editConfig.infomation.number) - this.$refs.form.validateField('number') - }, - // 閰嶇疆缂栫爜瑙勮寖鐨勮烦杞� - numberClick() { - window.open("http://www.fai365.com:9080/facilty", "_blank") - } - } -} diff --git a/src/views/client/salesLead/AddSalesLeadDialog.vue b/src/views/client/salesLead/AddSalesLeadDialog.vue index 074aa09..20d5445 100644 --- a/src/views/client/salesLead/AddSalesLeadDialog.vue +++ b/src/views/client/salesLead/AddSalesLeadDialog.vue @@ -22,7 +22,22 @@ <el-row> <el-col :span="12"> <el-form-item label="閿�鍞嚎绱㈢紪鍙�" prop="number"> - <WordInput + <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" @@ -37,7 +52,7 @@ </el-button ></span > - <span v-else>鑷姩鐢熸垚</span> + <span v-else>鑷姩鐢熸垚</span> --> </el-form-item> </el-col> <el-col :span="12"> @@ -247,7 +262,7 @@ import { getAddSalesLeads, getUpdateSalesLeads } from "@/api/client/salesLead" import { getAllData } from "@/api/client/client" import { getCityList } from "@/api/common/address" -import codeMixin from "@/views/client/followupRecords/mixin/codeMixin"; +import codeMixin from "@/components/makepager/mixin/codeMixin" export default { name: "AddSalesLeadDialog", mixins: [codeMixin], @@ -271,7 +286,7 @@ editConfig: this.editSalesLeadConfig, rules: { name: [{ required: true, message: "璇疯緭鍏ュ鎴峰悕绉�", trigger: ["change",'blur' ]}], - number: [{ required: true, message: "璇疯緭鍏ラ攢鍞嚎绱㈢紪鍙�", trigger: ["change",'blur' ] }], + number: [{ required: true, validator: this.validateCheckCode, trigger: ["change",'blur' ] }], businessStatus: [{ required: true, message: "璇疯緭鍏ョ嚎绱㈢姸鎬�", trigger: ["change",'blur' ] }], sales_sources_id: [{ required: true, message: "璇烽�夋嫨绾跨储鏉ユ簮", trigger: ["change",'blur' ] }], contact_phone: [ diff --git a/src/views/other/payment/saleInvoice/addSaleInvoice.vue b/src/views/other/payment/saleInvoice/addSaleInvoice.vue index 2ab8b63..818aed8 100644 --- a/src/views/other/payment/saleInvoice/addSaleInvoice.vue +++ b/src/views/other/payment/saleInvoice/addSaleInvoice.vue @@ -25,7 +25,22 @@ <el-row> <el-col :span="12"> <el-form-item label="鍙戠エ缂栧彿" prop="number"> - <WordInput + <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" @@ -40,7 +55,7 @@ </el-button ></span > - <span v-else>鑷姩鐢熸垚</span> + <span v-else>鑷姩鐢熸垚</span> --> </el-form-item> </el-col> <el-col :span="12"> @@ -378,7 +393,7 @@ import SelectClientDialog from "@/views/other/commonDialog/SelectClientDialog" import SelectCommonDialog from "@/views/other/commonDialog/SelectCommonDialog" import { addInvoice, getInvoiceTypeList, getInvoiceStatusList, getCourierCompanyList } from "@/api/common/payment" -import codeMixin from "@/views/client/followupRecords/mixin/codeMixin"; +import codeMixin from "@/components/makepager/mixin/codeMixin" export default { name: "AddSaleInvoiceDialog", mixins: [codeMixin], @@ -412,6 +427,7 @@ dialogWidth: "50%", editConfig: this.editCommonConfig, rules: { + number: [{ required: true, validator: this.validateCheckCode, trigger: ["change",'blur' ] }], subject: [{ required: true, message: "璇疯緭鍏ヤ富棰�", trigger: "blur" }], client_name: [{ required: true, message: "璇烽�夋嫨瀹㈡埛鍚嶇О", trigger: "change" }], invoiceTypeId: [{ required: true, message: "璇烽�夋嫨绁ㄦ嵁绫诲瀷", trigger: "change" }], diff --git a/src/views/sales/contractManage/AddContractManageDialog.vue b/src/views/sales/contractManage/AddContractManageDialog.vue index 7585886..44fb9eb 100644 --- a/src/views/sales/contractManage/AddContractManageDialog.vue +++ b/src/views/sales/contractManage/AddContractManageDialog.vue @@ -22,8 +22,22 @@ <el-row> <el-col :span="12"> <el-form-item label="鍗曟嵁缂栧彿" prop="number"> - <!-- <el-input v-model="editConfig.infomation.number" style="width: 100%"></el-input> --> - <WordInput + <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" @@ -34,7 +48,7 @@ <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> + <span v-else>{{ editConfig.title === "鏂板缓" ? "鑷姩鐢熸垚" : editConfig.infomation.number }}</span> --> </el-form-item> </el-col> <el-col :span="12"> @@ -236,7 +250,7 @@ import { getAddContract, getUpdateContract } from "@/api/sales/contractManage" import SelectClientDialog from "@/views/other/commonDialog/SelectClientDialog" import SelectCommonDialog from "@/views/other/commonDialog/SelectCommonDialog" -import codeMixin from "@/views/client/followupRecords/mixin/codeMixin" +import codeMixin from "@/components/makepager/mixin/codeMixin" import { getQuotationList } from "@/api/sales/quotation" export default { name: "AddContractManageDialog", @@ -267,7 +281,7 @@ dialogWidth: "50%", editConfig: this.editCommonConfig, rules: { - number: [{ required: true, validator: this.checkCode, trigger: "blur" }], + number: [{ required: true, validator: this.validateCheckCode, trigger: "blur" }], client_name: [{ required: true, message: "璇烽�夋嫨瀹㈡埛鍚嶇О", trigger: "change" }], member_id: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }], contractName: [{ required: true, message: "璇疯緭鍏ュ悎鍚屽悕绉�", trigger: "blur" }] @@ -483,14 +497,6 @@ this.isUnflod = true } }, - // 璁㈠崟缂栫爜鍗曠嫭鏍¢獙 - checkCode(rule, value, callback) { - if (this.editConfig.infomation.number && this.editConfig.infomation.number.length > 0) { - callback() - } else { - callback(new Error("璇疯緭鍏ュ崟鎹紪鍙�")) - } - } } } </script> diff --git a/src/views/sales/masterOrder/AddMasterOrderDialog.vue b/src/views/sales/masterOrder/AddMasterOrderDialog.vue index a80b2ce..f6864bc 100644 --- a/src/views/sales/masterOrder/AddMasterOrderDialog.vue +++ b/src/views/sales/masterOrder/AddMasterOrderDialog.vue @@ -30,7 +30,22 @@ <!-- </el-col>--> <el-col v-if="isUnflod" :span="12"> <el-form-item label="鍗曟嵁缂栧彿" prop="number"> - <WordInput + <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" @@ -41,7 +56,7 @@ <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> + <span v-else>{{ editConfig.title === "鏂板缓" ? "鑷姩鐢熸垚" : editConfig.infomation.number }}</span> --> </el-form-item> </el-col> <el-col :span="12"> @@ -174,8 +189,7 @@ import { getAllData } from "@/api/client/client" import { getAddMasterOrder, getUpdateMasterOrder } from "@/api/sales/masterOrder" import SelectClientDialog from "@/views/other/commonDialog/SelectClientDialog" -import WordInput from "@/components/wordInput.vue" -import codeMixin from "@/views/client/followupRecords/mixin/codeMixin" +import codeMixin from "@/components/makepager/mixin/codeMixin" export default { name: "QuotationDialog", mixins: [codeMixin], @@ -191,7 +205,7 @@ } } }, - components: { WordInput, SelectClientDialog }, + components: { SelectClientDialog }, computed: { clientList() { return this.$store.state.getClientName.clientList @@ -203,7 +217,7 @@ dialogWidth: "50%", editConfig: this.editCommonConfig, rules: { - number: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }], + number: [{ required: true, validator: this.validateCheckCode, trigger: "blur" }], client_name: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }], member_id: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }] }, @@ -377,6 +391,7 @@ ::v-deep { .iframe-dialog .el-dialog__body { .basic-info { + min-height:250px; .basic-info-title { background-color: #f4f8fe; padding-left: 10px; diff --git a/src/views/sales/quotation/AddQuotationDialog.vue b/src/views/sales/quotation/AddQuotationDialog.vue index 3909be1..b1b446e 100644 --- a/src/views/sales/quotation/AddQuotationDialog.vue +++ b/src/views/sales/quotation/AddQuotationDialog.vue @@ -26,7 +26,22 @@ <el-row> <el-col :span="12"> <el-form-item label="鎶ヤ环缂栧彿" prop="number"> - <WordInput + <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" @@ -37,7 +52,7 @@ <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> + <span v-else>{{ editConfig.title === "鏂板缓" ? "鑷姩鐢熸垚" : editConfig.infomation.number }}</span> --> </el-form-item> </el-col> <el-col :span="12"> @@ -318,7 +333,7 @@ import SelectClientDialog from "@/views/other/commonDialog/SelectClientDialog" import SelectContactDialog from "@/views/other/commonDialog/SelectContactDialog" import SelectChanceDialog from "@/views/other/commonDialog/SelectChanceDialog" -import codeMixin from "@/views/client/followupRecords/mixin/codeMixin" +import codeMixin from "@/components/makepager/mixin/codeMixin" export default { name: "QuotationDialog", mixins: [codeMixin], @@ -355,7 +370,7 @@ dialogWidth: "50%", editConfig: this.editCommonConfig, rules: { - number: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }], + number: [{ required: true, validator: this.validateCheckCode, trigger: "blur" }], quotationName: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }], quotation_status_id: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }], sale_chance_name: [{ required: true, validator: this.checkChance, trigger: "change" }], diff --git a/src/views/sales/refundForm/AddRefundFormDialog.vue b/src/views/sales/refundForm/AddRefundFormDialog.vue index 5736232..d474b22 100644 --- a/src/views/sales/refundForm/AddRefundFormDialog.vue +++ b/src/views/sales/refundForm/AddRefundFormDialog.vue @@ -25,7 +25,22 @@ <el-row> <el-col :span="12"> <el-form-item label="閫�娆惧崟缂栧彿" prop="number"> - <WordInput + <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" @@ -36,7 +51,7 @@ <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> + <span v-else>{{ editConfig.title === "鏂板缓" ? "鑷姩鐢熸垚" : editConfig.infomation.number }}</span> --> </el-form-item> </el-col> <el-col :span="12"> @@ -313,7 +328,7 @@ import SelectClientDialog from "@/views/other/commonDialog/SelectClientDialog" import SelectCommonDialog from "@/views/other/commonDialog/SelectCommonDialog" import {getBankAccountList, getPaymentTypeList} from "@/api/common/payment" -import codeMixin from "@/views/client/followupRecords/mixin/codeMixin" +import codeMixin from "@/components/makepager/mixin/codeMixin" import { getSalesReturnList } from "@/api/sales/salesReturn" import { mapActions } from "vuex" @@ -347,7 +362,7 @@ editConfig: this.editCommonConfig, rules: { client_name: [{ required: true, message: "璇烽�夋嫨瀹㈡埛鍚嶇О", trigger: "change" }], - number: [{ required: true, message: "璇疯緭鍏ラ��娆惧崟缂栧彿", trigger: "blur" }], + number: [{ required: true, validator: this.validateCheckCode, trigger: "blur" }], refundDate: [{ required: true, message: "璇烽�夋嫨閫�娆炬棩鏈�", trigger: "change" }], memberId: [{ required: true, message: "璇烽�夋嫨閿�鍞礋璐d汉", trigger: "change" }], sale_return_nunber: [{ required: true, message: "璇烽�夋嫨閿�鍞��璐у崟", trigger: "change" }] diff --git a/src/views/sales/salesDetails/AddSalesDetailsDialog.vue b/src/views/sales/salesDetails/AddSalesDetailsDialog.vue index 6de4c84..582f244 100644 --- a/src/views/sales/salesDetails/AddSalesDetailsDialog.vue +++ b/src/views/sales/salesDetails/AddSalesDetailsDialog.vue @@ -25,7 +25,22 @@ <el-row> <el-col :span="12"> <el-form-item label="鏄庣粏鍗曠紪鍙�" prop="number"> - <WordInput + <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" @@ -36,7 +51,7 @@ <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> + <span v-else>{{ editConfig.title === "鏂板缓" ? "鑷姩鐢熸垚" : editConfig.infomation.number }}</span> --> </el-form-item> </el-col> <el-col :span="12"> @@ -422,7 +437,7 @@ 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 "@/views/client/followupRecords/mixin/codeMixin" +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" @@ -463,7 +478,7 @@ rules: { client_name: [{ required: true, message: "璇烽�夋嫨瀹㈡埛鍚嶇О", trigger: "change" }], // subbill_name: [{ required: true, message: "璇烽�夋嫨閿�鍞瓙鍗�", trigger: "change" }], - number: [{ required: true, message: "璇疯緭鍏ヨ鍗曠紪鍙�", trigger: "blur" }], + 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" }] diff --git a/src/views/sales/salesOpportunity/AddSalesOpportunityDialog.vue b/src/views/sales/salesOpportunity/AddSalesOpportunityDialog.vue index 1f1ef32..7f8d5fe 100644 --- a/src/views/sales/salesOpportunity/AddSalesOpportunityDialog.vue +++ b/src/views/sales/salesOpportunity/AddSalesOpportunityDialog.vue @@ -31,7 +31,22 @@ <!-- </el-col>--> <el-col :span="12"> <el-form-item label="閿�鍞満浼氱紪鍙�" prop="number"> - <WordInput + <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" @@ -42,7 +57,7 @@ <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> + <span v-else>{{ editConfig.title === "鏂板缓" ? "鑷姩鐢熸垚" : editConfig.infomation.number }}</span> --> </el-form-item> </el-col> <el-col :span="12"> @@ -576,8 +591,7 @@ import SelectClientDialog from "@/views/other/commonDialog/SelectClientDialog" import SelectContactDialog from "@/views/other/commonDialog/SelectContactDialog" import { getCityList } from "@/api/common/address" -import WordInput from "@/components/wordInput.vue" -import codeMixin from "@/views/client/followupRecords/mixin/codeMixin" +import codeMixin from "@/components/makepager/mixin/codeMixin" import { getContactList } from "@/api/client/contacts" export default { name: "AddSalesOpportunityDialog", @@ -594,7 +608,7 @@ } } }, - components: { WordInput, SelectClientDialog, SelectContactDialog }, + components: { SelectClientDialog, SelectContactDialog }, computed: { searchCommonHeight() { return this.$refs.searchCommonView.offsetHeight @@ -609,7 +623,7 @@ dialogWidth: "50%", editConfig: this.editCommonConfig, rules: { - number: [{ required: true, message: "璇疯緭鍏ラ攢鍞満浼氱紪鍙�", trigger: "blur" }], + number: [{ required: true, validator: this.validateCheckCode, trigger: "blur" }], name: [{ required: true, message: "璇疯緭鍏ユ満浼氬悕绉�", trigger: "blur" }], member_id: [{ required: true, message: "璇烽�夋嫨閿�鍞礋璐d汉", trigger: "change" }], diff --git a/src/views/sales/salesReturn/AddSalesReturnDialog.vue b/src/views/sales/salesReturn/AddSalesReturnDialog.vue index 396ee9a..b3f101c 100644 --- a/src/views/sales/salesReturn/AddSalesReturnDialog.vue +++ b/src/views/sales/salesReturn/AddSalesReturnDialog.vue @@ -25,7 +25,22 @@ <el-row> <el-col :span="12"> <el-form-item label="閿�鍞��璐у崟缂栧彿" prop="number"> - <WordInput + <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" @@ -36,7 +51,7 @@ <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> + <span v-else>{{ editConfig.title === "鏂板缓" ? "鑷姩鐢熸垚" : editConfig.infomation.number }}</span> --> </el-form-item> </el-col> <el-col :span="12"> @@ -250,7 +265,7 @@ import SelectClientDialog from "@/views/other/commonDialog/SelectClientDialog" // import { getProductList } from "@/api/common/other" import SelectCommonDialog from "@/views/other/commonDialog/SelectCommonDialog" -import codeMixin from "@/views/client/followupRecords/mixin/codeMixin" +import codeMixin from "@/components/makepager/mixin/codeMixin" import { getSalesDetailsList } from "@/api/sales/salesDetails" import { mapActions } from "vuex" @@ -283,7 +298,7 @@ dialogWidth: "50%", editConfig: this.editCommonConfig, rules: { - number: [{ required: true, message: "璇疯緭鍏ラ攢鍞��璐у崟鍙�", trigger: "blur" }], + number: [{ required: true, validator: this.validateCheckCode, trigger: "blur" }], repository: [{ required: true, message: "璇烽�夋嫨閫�鍏ヤ粨搴�", trigger: "change" }], memberId: [{ required: true, message: "璇烽�夋嫨璐熻矗浜�", trigger: "change" }], salesDetailNumber: [{ required: true, message: "璇烽�夋嫨閿�鍞槑缁嗗崟", trigger: "change" }] diff --git a/src/views/sales/subOrder/AddSubOrderDialog.vue b/src/views/sales/subOrder/AddSubOrderDialog.vue index 55628d2..f82945a 100644 --- a/src/views/sales/subOrder/AddSubOrderDialog.vue +++ b/src/views/sales/subOrder/AddSubOrderDialog.vue @@ -25,7 +25,22 @@ <el-row> <el-col :span="12"> <el-form-item label="鍗曟嵁缂栧彿" prop="number"> - <WordInput + <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" @@ -36,7 +51,7 @@ <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> + <span v-else>{{ editConfig.title === "鏂板缓" ? "鑷姩鐢熸垚" : editConfig.infomation.number }}</span> --> </el-form-item> </el-col> <el-col :span="12"> @@ -190,14 +205,13 @@ import { getAddSubOrder, getUpdateSubOrder } from "@/api/sales/subOrder" import SelectClientDialog from "@/views/other/commonDialog/SelectClientDialog" import SelectCommonDialog from "@/views/other/commonDialog/SelectCommonDialog" -import WordInput from "@/components/wordInput.vue" -import codeMixin from "@/views/client/followupRecords/mixin/codeMixin" +import codeMixin from "@/components/makepager/mixin/codeMixin" import { getMasterOrderList } from "@/api/sales/masterOrder" export default { name: "SubOrderDialog", mixins: [codeMixin], - components: { WordInput, CommonFormTableView, SelectClientDialog, SelectCommonDialog }, + components: { CommonFormTableView, SelectClientDialog, SelectCommonDialog }, props: { editCommonConfig: { type: Object, @@ -224,7 +238,7 @@ dialogWidth: "50%", editConfig: this.editCommonConfig, rules: { - number: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }], + number: [{ required: true, validator: this.validateCheckCode, trigger: "blur" }], master_order_number: [{ required: true, message: "璇烽�夋嫨鎴栧垱寤洪攢鍞�诲崟", trigger: "blur" }], client_name: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }], memberId: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }] diff --git a/src/views/service/clientServiceOrder/AddCientServiceOrderDialog.vue b/src/views/service/clientServiceOrder/AddCientServiceOrderDialog.vue index ba82d6f..f112c20 100644 --- a/src/views/service/clientServiceOrder/AddCientServiceOrderDialog.vue +++ b/src/views/service/clientServiceOrder/AddCientServiceOrderDialog.vue @@ -25,7 +25,22 @@ <el-row> <el-col :span="12"> <el-form-item label="鏈嶅姟鍗曠紪鍙�" prop="serviceNumber"> - <WordInput + <el-input + v-if=" + editConfig.title == '缂栬緫' || + (editConfig.title == '鏂板缓' && + codenumer && + (explain != '' || isIdDisabled)) + " + :disabled="editConfig.title == '缂栬緫'" + v-model="editConfig.infomation.serviceNumber" + 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" @@ -38,7 +53,7 @@ > <span v-else>{{ editConfig.title === "鏂板缓" ? "鑷姩鐢熸垚" : editConfig.infomation.serviceNumber - }}</span> + }}</span> --> </el-form-item> </el-col> <el-col :span="12"> @@ -688,7 +703,7 @@ dialogWidth: "50%", editConfig: this.editCommonConfig, rules: { - serviceNumber: [{ required: true, message: "璇疯緭鍏ユ湇鍔″崟缂栧彿", trigger: "blur" }], + serviceNumber: [{ required: true, validator: this.validateCheckCode, trigger: "blur" }], client_name: [{ required: true, message: "璇烽�夋嫨瀹㈡埛鍚嶇О", trigger: "change" }], subject: [{ required: true, message: "璇疯緭鍏ヤ富棰�", trigger: "blur" }], // productCategory: [{ required: true, message: "璇烽�夋嫨浜у搧绫诲埆", trigger: "change" }], @@ -821,7 +836,6 @@ // 淇濆瓨 saveClick(formName) { this.$refs[formName].validate((valid) => { - this.validateFormNumber() if (valid) { console.log(this.editConfig.infomation) const params = this.saveParams() diff --git a/src/views/service/clientServiceOrder/mixin/codeMixin.js b/src/views/service/clientServiceOrder/mixin/codeMixin.js index 22a1625..9c1637b 100644 --- a/src/views/service/clientServiceOrder/mixin/codeMixin.js +++ b/src/views/service/clientServiceOrder/mixin/codeMixin.js @@ -1,5 +1,5 @@ import WordInput from "@/components/wordInput" -import { getCodeStandardList } from "@/api/common/standard" +import { getCodeStandardList,getAutoCode } from "@/api/common/standard" export default { components: { WordInput @@ -16,82 +16,104 @@ sum: 0, method: 0, objCode: { name: "", page: 0, pageSize: 0, type: "瀹㈡埛鏈嶅姟缂栫爜", codeStandID: "" }, - codeRule: {} + codeRule: {}, + codeLength: 0, + autoCodeObj: {} } }, methods: { async getRCodeStandardList() { try { - const res = await getCodeStandardList(this.objCode) - this.codenumer = [] - this.sum = 0 - this.explain = "" - if (res.code == 200) { - const { List = [], ID, AutoRule = {}, Method } = res.data && res.data.data ? res.data.data[0] : [] - this.codeRule = res.data && res.data.data ? res.data.data[0] : {} - let autoRule = AutoRule - let method = Method ? Method : 0 - this.method = method - let rules = List - this.editConfig.infomation.ID = ID - if (method == 0 && res.data.data.length > 0) { - rules.forEach((item, index) => { - // setTimeout(() => { - // this.codenumer = item.length; - // this.sum++; - // }, 200); - this.codenumer.push(item.Length) - this.sum++ - this.explain += item.Name + (index === rules.Length - 1 ? "" : "/") - }) - } - if (method == 1) { - if (Object.keys(autoRule).length > 0) { - this.isIdDisabled = true - if (autoRule.PrefixMethod == 1) { - let prefix = autoRule.PrefixValue.split("").length + if (this.editConfig.title == "鏂板缓") { + const res = await getCodeStandardList(this.objCode) + this.codenumer = [] + this.sum = 0 + this.explain = "" + this.codeLength = 0; + if (res.code == 200) { + const { List = [], ID, AutoRule = {}, Method } = res.data && res.data.data ? res.data.data[0] : [] + this.codeRule = res.data && res.data.data ? res.data.data[0] : {} + let autoRule = AutoRule + let method = Method ? Method : 0 + this.method = method + let rules = List + this.editConfig.infomation.ID = ID + if (method == 0 && res.data.data.length > 0) { + rules.forEach((item, index) => { + // setTimeout(() => { + // this.codenumer = item.length; + // this.sum++; + // }, 200); + this.codenumer.push(item.Length) + this.codeLength += item.Length; + this.sum++ + this.explain += item.Name + (index === rules.Length - 1 ? "" : "/") + }) + } + if (method == 1) { + if (Object.keys(autoRule).length > 0) { + this.isIdDisabled = true + if (autoRule.PrefixMethod == 1) { + let prefix = autoRule.PrefixValue.split("").length - this.codenumer.push(prefix) - if (autoRule.SuffixMethod == 2) { - this.codenumer.push(8) + this.codenumer.push(prefix) + this.codeLength += prefix; + if (autoRule.SuffixMethod == 2) { + this.codenumer.push(8) + this.codeLength += 8; + } + if (autoRule.AutoLength) { + this.codenumer.push(autoRule.AutoLength) + this.codeLength += autoRule.AutoLength; + } + this.sum = prefix + Number(autoRule.AutoLength) + // this.codeList( + // this.editConfig.infomation.serviceNumber + // ? this.editConfig.infomation.serviceNumber + // : autoRule.PrefixValue + // ) + return true } - if (autoRule.AutoLength) { - this.codenumer.push(autoRule.AutoLength) - } - this.sum = prefix + Number(autoRule.AutoLength) - this.codeList( - this.editConfig.infomation.serviceNumber - ? this.editConfig.infomation.serviceNumber - : autoRule.PrefixValue - ) - return true } } + this.$forceUpdate() + } else { + this.$message.error(res.data.msg ? res.data.msg : "鑾峰彇缂栫爜瑙勮寖澶辫触锛岃閲嶈瘯锛�") } - if (this.editConfig.title !== "鏂板缓") { - this.codeList(this.editConfig.infomation.serviceNumber) - } - - this.$forceUpdate() } else { - this.$message.error(res.data.msg ? res.data.msg : "鑾峰彇缂栫爜瑙勮寖澶辫触锛岃閲嶈瘯锛�") + this.codeList(this.editConfig.infomation.serviceNumber) } } catch (err) { console.log(err) } }, + async getAutoCodeValue() { + const res = await getAutoCode({ codeType: this.objCode.type, autoIncr: this.autoIncr }); + if (res.code == 200) { + this.autoCodeObj = res.data; + this.$set(this.editConfig.infomation, 'number', this.autoCodeObj.id) + } + }, codeList(val) { - console.log(val, "===val codelist") this.inputValue = val this.codenumberList = val.toString() this.editConfig.infomation.serviceNumber = this.codenumberList.length > 0 ? this.codenumberList.replace(/,/g, "") : "" console.log(this.codenumberList.replace(/,/g, "")) }, - validateFormNumber(){ - this.$set(this.editConfig.infomation,'serviceNumber',this.editConfig.infomation.serviceNumber) - this.$refs.form.validateField('serviceNumber') + // 璁㈠崟缂栫爜鍗曠嫭鏍¢獙 + validateCheckCode(rule, value, callback) { + if (value && value.length > 0) { + if (this.editConfig.title == "鏂板缓") { + if (value.length != this.codeLength) { + callback(new Error("璇峰~鍐�" + this.codeLength + "浣嶇殑缂栫爜锛�")); + } + } + callback(); + } else { + callback(new Error("璇疯緭鍏ョ紪鐮�")); + } }, // 閰嶇疆缂栫爜瑙勮寖鐨勮烦杞� numberClick() { diff --git a/src/views/service/serviceContract/AddServiceContractDialog.vue b/src/views/service/serviceContract/AddServiceContractDialog.vue index 383651e..361b2c6 100644 --- a/src/views/service/serviceContract/AddServiceContractDialog.vue +++ b/src/views/service/serviceContract/AddServiceContractDialog.vue @@ -25,7 +25,22 @@ <el-row> <el-col :span="12"> <el-form-item label="鏈嶅姟鍚堝悓缂栧彿" prop="number"> - <WordInput + <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" @@ -36,7 +51,7 @@ <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> + <span v-else>{{ editConfig.title === "鏂板缓" ? "鑷姩鐢熸垚" : editConfig.infomation.number }}</span> --> </el-form-item> </el-col> <el-col :span="12"> @@ -447,7 +462,7 @@ import SelectContactDialog from "@/views/other/commonDialog/SelectContactDialog" import SelectChanceDialog from "@/views/other/commonDialog/SelectChanceDialog" import SelectCommonDialog from "@/views/other/commonDialog/SelectCommonDialog" -import codeMixin from "@/views/client/followupRecords/mixin/codeMixin" +import codeMixin from "@/components/makepager/mixin/codeMixin" export default { name: "AddServiceContractDialog", mixins: [codeMixin], @@ -489,7 +504,7 @@ dialogWidth: "50%", editConfig: this.editCommonConfig, rules: { - number: [{ required: true, message: "璇疯緭鍏ユ湇鍔″悎鍚岀紪鍙�", trigger: "blur" }], + number: [{ required: true, validator: this.validateCheckCode, trigger: "blur" }], client_name: [{ required: true, message: "璇烽�夋嫨瀹㈡埛鍚嶇О", trigger: "change" }], signTime: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }], memberId: [{ required: true, message: "璇烽�夋嫨璐熻矗浜�", trigger: "change" }] diff --git a/src/views/service/serviceFollowup/AddServiceFollowupDialog.vue b/src/views/service/serviceFollowup/AddServiceFollowupDialog.vue index c98793d..747457d 100644 --- a/src/views/service/serviceFollowup/AddServiceFollowupDialog.vue +++ b/src/views/service/serviceFollowup/AddServiceFollowupDialog.vue @@ -25,7 +25,22 @@ <el-row> <el-col :span="12"> <el-form-item label="鍥炶鍗曠紪鍙�" prop="number"> - <WordInput + <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" @@ -36,7 +51,7 @@ <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> + <span v-else>{{ editConfig.title === "鏂板缓" ? "鑷姩鐢熸垚" : editConfig.infomation.number }}</span> --> </el-form-item> </el-col> <el-col :span="12"> @@ -292,7 +307,7 @@ import SelectClientDialog from "@/views/other/commonDialog/SelectClientDialog" import SelectContactDialog from "@/views/other/commonDialog/SelectContactDialog" import SelectCommonDialog from "@/views/other/commonDialog/SelectCommonDialog" -import codeMixin from "@/views/client/followupRecords/mixin/codeMixin" +import codeMixin from "@/components/makepager/mixin/codeMixin" export default { name: "AddServiceFollowupDialog", mixins: [codeMixin], @@ -325,7 +340,7 @@ dialogWidth: "50%", editConfig: this.editCommonConfig, rules: { - number: [{ required: true, message: "璇疯緭鍏ュ洖璁垮崟鍗曠紪鍙�", trigger: "blur" }], + number: [{ required: true, validator: this.validateCheckCode, trigger: "blur" }], client_name: [{ required: true, message: "璇烽�夋嫨瀹㈡埛鍚嶇О", trigger: "change" }], service_number: [{ required: true, message: "璇烽�夋嫨瀹㈡埛鏈嶅姟鍗�", trigger: "change" }], memberId: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }] -- Gitblit v1.8.0