From ff5dc3f6f35feae198a7735c4173e060ca8060cd Mon Sep 17 00:00:00 2001 From: yangfeng <wanwan926_4@163.com> Date: 星期三, 11 十月 2023 15:47:55 +0800 Subject: [PATCH] feat: 合同管理、服务合同、客户服务单、服务回访单编码规则修改及合同管理删除功能修复 --- src/views/service/serviceContract/AddServiceContractDialog.vue | 47 ++++++++- src/views/service/serviceFollowup/AddServiceFollowupDialog.vue | 47 ++++++++- src/api/sales/contractManage.js | 6 src/views/sales/contractManage/AddContractManageDialog.vue | 47 ++++++++- src/views/service/clientServiceOrder/AddCientServiceOrderDialog.vue | 48 ++++++++- src/views/service/clientServiceOrder/mixin/codeMixin.js | 102 ++++++++++++++++++++ src/views/sales/contractManage/index.vue | 2 7 files changed, 270 insertions(+), 29 deletions(-) diff --git a/src/api/sales/contractManage.js b/src/api/sales/contractManage.js index cc57f57..10038f8 100644 --- a/src/api/sales/contractManage.js +++ b/src/api/sales/contractManage.js @@ -17,11 +17,11 @@ }) } // 鍒犻櫎鍚堝悓绠$悊 -export function getDelContract(data) { +export function getDelContract(id) { return request({ - url: "/api/contract/delete", + url: `/api/contract/delete/${id}`, method: "delete", - data + id }) } // 鏇存柊鍚堝悓绠$悊 diff --git a/src/views/sales/contractManage/AddContractManageDialog.vue b/src/views/sales/contractManage/AddContractManageDialog.vue index d0a9d4f..31f8c7e 100644 --- a/src/views/sales/contractManage/AddContractManageDialog.vue +++ b/src/views/sales/contractManage/AddContractManageDialog.vue @@ -21,6 +21,23 @@ <div class="basic-info-view"> <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 + v-if="codenumer && (explain != '' || isIdDisabled) && method == 0" + :codenumer="codenumer" + :sum="sum" + :disabled="editConfig.infomation.id || 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>鑷姩鐢熸垚</span> + </el-form-item> + </el-col> + <el-col :span="12"> <el-form-item label="瀹㈡埛鍚嶇О" prop="client_name"> <div class="custom-name"> <el-autocomplete @@ -45,11 +62,6 @@ <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" style="width: 100%"></el-input> </el-form-item> </el-col> <el-col :span="12"> @@ -211,8 +223,10 @@ 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" export default { name: "AddContractManageDialog", + mixins: [codeMixin], props: { editCommonConfig: { type: Object, @@ -265,8 +279,27 @@ this.$store.dispatch("geClient") this.$store.dispatch("geQuotation") this.getCommonData() + this.formInfo() + }, + watch: { + "editCommonConfig.visible"(val) { + if (val) { + this.formInfo() + } + }, + "editCommonConfig.infomation.codeStandID"() { + this.formInfo() + } }, methods: { + 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) => { @@ -318,7 +351,9 @@ member_id: data.memberId || 0, number: data.number || "", quotation_id: this.quotationId || 0, - status_id: data.statusId || 0 + status_id: data.statusId || 0, + codeStandID: data.ID, + codeRule: this.codeRule } return params }, diff --git a/src/views/sales/contractManage/index.vue b/src/views/sales/contractManage/index.vue index 64821f8..8976ada 100644 --- a/src/views/sales/contractManage/index.vue +++ b/src/views/sales/contractManage/index.vue @@ -221,7 +221,7 @@ type: "warning" }) .then(() => { - getDelContract({ ids: [id] }).then((response) => { + getDelContract(id).then((response) => { if (response.code === 200) { this.$message.success("鍒犻櫎鎴愬姛") this.getData() diff --git a/src/views/service/clientServiceOrder/AddCientServiceOrderDialog.vue b/src/views/service/clientServiceOrder/AddCientServiceOrderDialog.vue index 65bf383..6afd7f5 100644 --- a/src/views/service/clientServiceOrder/AddCientServiceOrderDialog.vue +++ b/src/views/service/clientServiceOrder/AddCientServiceOrderDialog.vue @@ -24,6 +24,23 @@ <div class="basic-info-view"> <el-row> <el-col :span="12"> + <el-form-item label="鏈嶅姟鍗曠紪鍙�" prop="serviceNumber"> + <!-- <el-input v-model="editConfig.infomation.serviceNumber" style="width: 100%"></el-input> --> + <WordInput + v-if="codenumer && (explain != '' || isIdDisabled) && method == 0" + :codenumer="codenumer" + :sum="sum" + :disabled="editConfig.infomation.id || 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>鑷姩鐢熸垚</span> + </el-form-item> + </el-col> + <el-col :span="12"> <el-form-item label="瀹㈡埛鍚嶇О" prop="client_name"> <div class="custom-name"> <el-autocomplete @@ -50,11 +67,7 @@ </div> </el-form-item> </el-col> - <el-col :span="12"> - <el-form-item label="鏈嶅姟鍗曠紪鍙�" prop="serviceNumber"> - <el-input v-model="editConfig.infomation.serviceNumber" style="width: 100%"></el-input> - </el-form-item> - </el-col> + <el-col :span="12"> <el-form-item label="鏈嶅姟鍚堝悓"> <div class="custom-name"> @@ -631,10 +644,11 @@ getTimeSpentList } from "@/api/common/other" import Status from "@/common/const/commonStatus" +import codeMixin from "./mixin/codeMixin" export default { name: "AddClientServiceOrderDialog", - mixins: [pageMixin], + mixins: [pageMixin, codeMixin], props: { editCommonConfig: { type: Object, @@ -751,8 +765,26 @@ this.getSeverityList() this.getPriorityLevelList() this.getTimeSpentList() + this.formInfo() + }, + watch: { + "editCommonConfig.visible"(val) { + if (val) { + this.formInfo() + } + }, + "editCommonConfig.infomation.codeStandID"() { + this.formInfo() + } }, methods: { + formInfo() { + this.objCode.codeStandID = "" + if (this.editConfig.infomation.codeStandID) { + this.objCode.codeStandID = this.editConfig.infomation.codeStandID + } + this.getRCodeStandardList() + }, setTable() { this.recordTableList = { tableInfomation: [], @@ -847,7 +879,9 @@ solutionRemark: data.solutionRemark || "", serviceOrderStatusId: data.serviceOrderStatusId || 0, subject: data.subject || "", - timeSpentId: data.timeSpentId || 0 + timeSpentId: data.timeSpentId || 0, + codeStandID: data.ID, + codeRule: this.codeRule } return params }, diff --git a/src/views/service/clientServiceOrder/mixin/codeMixin.js b/src/views/service/clientServiceOrder/mixin/codeMixin.js new file mode 100644 index 0000000..07a2455 --- /dev/null +++ b/src/views/service/clientServiceOrder/mixin/codeMixin.js @@ -0,0 +1,102 @@ +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.data.code == 200) { + const { + List = [], + ID, + AutoRule = {}, + Method + } = res.data.data && res.data.data.data ? res.data.data.data[0] : [] + this.codeRule = res.data.data && res.data.data.data ? res.data.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.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 + + 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.serviceNumber + ? this.editConfig.infomation.serviceNumber + : autoRule.PrefixValue + ) + return true + } + } + } + if (this.editConfig.infomation.id) { + this.codeList(this.editConfig.infomation.serviceNumber) + } + + this.$forceUpdate() + } else { + this.$message.error(res.data.msg ? res.data.msg : "鑾峰彇缂栫爜瑙勮寖澶辫触锛岃閲嶈瘯锛�") + } + } catch (err) { + console.log(err) + } + }, + 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, "")) + }, + // 閰嶇疆缂栫爜瑙勮寖鐨勮烦杞� + numberClick() { + window.open("http://www.fai365.com:9080/facilty", "_blank") + } + } +} diff --git a/src/views/service/serviceContract/AddServiceContractDialog.vue b/src/views/service/serviceContract/AddServiceContractDialog.vue index 2719d49..78e80ef 100644 --- a/src/views/service/serviceContract/AddServiceContractDialog.vue +++ b/src/views/service/serviceContract/AddServiceContractDialog.vue @@ -24,6 +24,23 @@ <div class="basic-info-view"> <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 + v-if="codenumer && (explain != '' || isIdDisabled) && method == 0" + :codenumer="codenumer" + :sum="sum" + :disabled="editConfig.infomation.id || 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>鑷姩鐢熸垚</span> + </el-form-item> + </el-col> + <el-col :span="12"> <el-form-item label="瀹㈡埛鍚嶇О" prop="client_name"> <div class="custom-name"> <el-autocomplete @@ -48,11 +65,6 @@ <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" style="width: 100%"></el-input> </el-form-item> </el-col> <el-col :span="12"> @@ -436,8 +448,10 @@ 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" export default { name: "AddServiceContractDialog", + mixins: [codeMixin], props: { editCommonConfig: { type: Object, @@ -530,8 +544,27 @@ this.$store.dispatch("geQuotation") this.setTableForm() this.getCommonData() + this.formInfo() + }, + watch: { + "editCommonConfig.visible"(val) { + if (val) { + this.formInfo() + } + }, + "editCommonConfig.infomation.codeStandID"() { + this.formInfo() + } }, methods: { + 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) => { @@ -611,7 +644,9 @@ terms: data.terms || "", typeId: 0, serviceContractTypeId: data.serviceContractTypeId || 0, - serviceContractStatusId: data.serviceContractStatusId || 0 + serviceContractStatusId: data.serviceContractStatusId || 0, + codeStandID: data.ID, + codeRule: this.codeRule } return params }, diff --git a/src/views/service/serviceFollowup/AddServiceFollowupDialog.vue b/src/views/service/serviceFollowup/AddServiceFollowupDialog.vue index caebbba..0c4b224 100644 --- a/src/views/service/serviceFollowup/AddServiceFollowupDialog.vue +++ b/src/views/service/serviceFollowup/AddServiceFollowupDialog.vue @@ -24,6 +24,23 @@ <div class="basic-info-view"> <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 + v-if="codenumer && (explain != '' || isIdDisabled) && method == 0" + :codenumer="codenumer" + :sum="sum" + :disabled="editConfig.infomation.id || 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>鑷姩鐢熸垚</span> + </el-form-item> + </el-col> + <el-col :span="12"> <el-form-item label="瀹㈡埛鍚嶇О" prop="client_name"> <div class="custom-name"> <el-autocomplete @@ -48,11 +65,6 @@ <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" style="width: 100%"></el-input> </el-form-item> </el-col> <el-col :span="12"> @@ -281,8 +293,10 @@ 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" export default { name: "AddServiceFollowupDialog", + mixins: [codeMixin], props: { editCommonConfig: { type: Object, @@ -346,8 +360,27 @@ this.$store.dispatch("geContact") this.$store.dispatch("geServiceOrder") this.getCommonData() + this.formInfo() + }, + watch: { + "editCommonConfig.visible"(val) { + if (val) { + this.formInfo() + } + }, + "editCommonConfig.infomation.codeStandID"() { + this.formInfo() + } }, methods: { + 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) => { @@ -410,7 +443,9 @@ satisfaction: data.satisfactionId || 0, serviceOrderId: this.serviceOrderId || 0, solveRate: data.solveRateId || 0, - timelyRate: data.timelyRateId || 0 + timelyRate: data.timelyRateId || 0, + codeStandID: data.ID, + codeRule: this.codeRule } return params }, -- Gitblit v1.8.0