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