From 4faaa50ff4a44a07949f82271170bec1d9a9e8ef Mon Sep 17 00:00:00 2001
From: haoxuan <haoxuan>
Date: 星期三, 11 十月 2023 16:06:23 +0800
Subject: [PATCH] Merge branch 'dev' of http://192.168.5.5:10010/r/web/crm-web into wn

---
 src/views/service/serviceContract/AddServiceContractDialog.vue      |   47 ++++
 src/views/sales/salesOpportunity/AddSalesOpportunityDialog.vue      |   61 +++++
 src/views/service/serviceFollowup/AddServiceFollowupDialog.vue      |   47 ++++
 src/views/sales/quotation/AddQuotationDialog.vue                    |   58 +++++
 src/views/sales/subOrder/AddSubOrderDialog.vue                      |   61 +++++
 src/api/sales/contractManage.js                                     |    6 
 src/views/sales/masterOrder/AddMasterOrderDialog.vue                |   60 +++++
 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 
 11 files changed, 479 insertions(+), 60 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/sales/masterOrder/AddMasterOrderDialog.vue b/src/views/sales/masterOrder/AddMasterOrderDialog.vue
index 666e60f..462e94e 100644
--- a/src/views/sales/masterOrder/AddMasterOrderDialog.vue
+++ b/src/views/sales/masterOrder/AddMasterOrderDialog.vue
@@ -22,6 +22,31 @@
           <div v-if="isUnflod" class="basic-info-title">鍩烘湰淇℃伅</div>
           <div class="basic-info-view">
             <el-row>
+<!--              <el-col v-if="isUnflod" :span="12">-->
+<!--                <el-form-item label="鍗曟嵁缂栧彿" prop="number">-->
+<!--                  <el-input v-model="editConfig.infomation.number"></el-input>-->
+<!--                </el-form-item>-->
+<!--              </el-col>-->
+              <el-col v-if="isUnflod" :span="12">
+                <el-form-item label="鍗曟嵁缂栧彿" prop="number">
+                  <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">
@@ -46,11 +71,6 @@
                       <i class="el-icon-remove-outline" title="娓呴櫎"></i>
                     </div>
                   </div>
-                </el-form-item>
-              </el-col>
-              <el-col v-if="isUnflod" :span="12">
-                <el-form-item label="鍗曟嵁缂栧彿" prop="number">
-                  <el-input v-model="editConfig.infomation.number"></el-input>
                 </el-form-item>
               </el-col>
               <el-col v-if="isUnflod" :span="12">
@@ -157,8 +177,11 @@
 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";
 export default {
   name: "QuotationDialog",
+  mixins:[codeMixin],
   props: {
     editCommonConfig: {
       type: Object,
@@ -171,7 +194,7 @@
       }
     }
   },
-  components: { SelectClientDialog },
+  components: {WordInput, SelectClientDialog },
   computed: {
     clientList() {
       return this.$store.state.getClientName.clientList
@@ -193,14 +216,33 @@
         title: "",
         infomation: {}
       },
-      clientId: this.editCommonConfig.infomation.client_id
+      clientId: this.editCommonConfig.infomation.client_id,
+      objCode: { name: "", page: 0, pageSize: 0, type: "閿�鍞�诲崟缂栫爜",codeStandID:'' },
     }
   },
   created() {
     this.$store.dispatch("geClient")
     this.getCommonData()
+    this.formInfo()
+  },
+  watch:{
+    'editCommonConfig.visible'(val){
+      if(val){
+        this.formInfo()
+      }
+    },
+    'editCommonConfig.infomation.codeStandID'(val){
+      this.formInfo()
+    }
   },
   methods: {
+    formInfo(){
+      this.objCode.codeStandID = ''
+      if(this.editConfig.infomation.codeStandID){
+        this.objCode.codeStandID = this.editConfig.infomation.codeStandID;
+      }
+      this.getRCodeStandardList();
+    },
     getCommonData() {
       getAllData()
         .then((res) => {
@@ -251,7 +293,9 @@
         member_id: data.member_id || 0,
         money: data.money || 0,
         number: data.number || "",
-        start_time: data.start_time || ""
+        start_time: data.start_time || "",
+        codeStandID:data.ID,
+        codeRule:this.codeRule,
       }
       return params
     },
diff --git a/src/views/sales/quotation/AddQuotationDialog.vue b/src/views/sales/quotation/AddQuotationDialog.vue
index 23192e4..ca6a31b 100644
--- a/src/views/sales/quotation/AddQuotationDialog.vue
+++ b/src/views/sales/quotation/AddQuotationDialog.vue
@@ -24,6 +24,27 @@
           <div class="basic-info-view">
             <el-row>
               <el-col :span="12">
+                <el-form-item label="鎶ヤ环缂栧彿" prop="number">
+                  <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
@@ -49,11 +70,11 @@
                   </div>
                 </el-form-item>
               </el-col>
-              <el-col :span="12">
-                <el-form-item label="鎶ヤ环缂栧彿" prop="number">
-                  <el-input v-model="editConfig.infomation.number"></el-input>
-                </el-form-item>
-              </el-col>
+<!--              <el-col :span="12">-->
+<!--                <el-form-item label="鎶ヤ环缂栧彿" prop="number">-->
+<!--                  <el-input v-model="editConfig.infomation.number"></el-input>-->
+<!--                </el-form-item>-->
+<!--              </el-col>-->
               <el-col :span="12">
                 <el-form-item label="鎶ヤ环鍗曠姸鎬�" prop="quotation_status_id">
                   <div class="common-select">
@@ -294,8 +315,10 @@
 import SelectClientDialog from "@/views/other/commonDialog/SelectClientDialog"
 import SelectContactDialog from "@/views/other/commonDialog/SelectContactDialog"
 import SelectChanceDialog from "@/views/other/commonDialog/SelectChanceDialog"
+import codeMixin from "@/views/client/followupRecords/mixin/codeMixin";
 export default {
   name: "QuotationDialog",
+  mixins:[codeMixin],
   props: {
     editCommonConfig: {
       type: Object,
@@ -364,7 +387,8 @@
       saleChanceId: this.editCommonConfig.infomation.sale_chance_id,
       tableData: [],
       productId: 1,
-      isNoProduct: true
+      isNoProduct: true,
+      objCode: { name: "", page: 0, pageSize: 0, type: "鎶ヤ环缂栫爜",codeStandID:'' },
     }
   },
   created() {
@@ -373,8 +397,26 @@
     this.$store.dispatch("geChance")
     this.setTableForm()
     this.getCommonData()
+    this.formInfo()
+  },
+  watch:{
+    'editConfig.visible'(val){
+      if(val){
+        this.formInfo()
+      }
+    },
+    'editConfig.infomation.codeStandID'(){
+      this.formInfo()
+    }
   },
   methods: {
+    formInfo(){
+      this.objCode.codeStandID = ''
+      if(this.editConfig.infomation.codeStandID){
+        this.objCode.codeStandID = this.editConfig.infomation.codeStandID;
+      }
+      this.getRCodeStandardList();
+    },
     getCommonData() {
       getAllData()
         .then((res) => {
@@ -448,7 +490,9 @@
         quotation_status_id: data.quotation_status_id || 0,
         sale_chance_id: this.saleChanceId || 0,
         validity_date: data.validity_date || "",
-        products: this.tableData
+        products: this.tableData,
+        codeStandID:data.ID,
+        codeRule:this.codeRule,
       }
       return params
     },
diff --git a/src/views/sales/salesOpportunity/AddSalesOpportunityDialog.vue b/src/views/sales/salesOpportunity/AddSalesOpportunityDialog.vue
index 69c9edd..9bc0695 100644
--- a/src/views/sales/salesOpportunity/AddSalesOpportunityDialog.vue
+++ b/src/views/sales/salesOpportunity/AddSalesOpportunityDialog.vue
@@ -23,6 +23,31 @@
           <div class="basic-info-title">鏈轰細鍩烘湰淇℃伅</div>
           <div class="basic-info-view">
             <el-row>
+<!--              <el-col :span="12">-->
+<!--                <el-form-item label="閿�鍞満浼氱紪鍙�" prop="number">-->
+<!--                  <el-input v-model="editConfig.infomation.number"></el-input>-->
+<!--                </el-form-item>-->
+<!--              </el-col>-->
+             <el-col :span="12">
+               <el-form-item label="閿�鍞満浼氱紪鍙�" prop="number">
+                 <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">
@@ -47,11 +72,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"></el-input>
                 </el-form-item>
               </el-col>
               <el-col :span="12">
@@ -552,8 +572,11 @@
 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";
 export default {
   name: "AddSalesOpportunityDialog",
+  mixins:[codeMixin],
   props: {
     editCommonConfig: {
       type: Object,
@@ -566,7 +589,7 @@
       }
     }
   },
-  components: { SelectClientDialog, SelectContactDialog },
+  components: {WordInput, SelectClientDialog, SelectContactDialog },
   computed: {
     searchCommonHeight() {
       return this.$refs.searchCommonView.offsetHeight
@@ -615,7 +638,8 @@
       },
       restaurants: [],
       clientId: this.editCommonConfig.infomation.client_id,
-      contactId: this.editCommonConfig.infomation.contact_id
+      contactId: this.editCommonConfig.infomation.contact_id,
+      objCode: { name: "", page: 0, pageSize: 0, type: "閿�鍞満浼氱紪鐮�",codeStandID:'' },
     }
   },
   created() {
@@ -625,8 +649,26 @@
       this.getCityList(this.editConfig.infomation.province_id, "edit")
     }
     this.getCommonData()
+    this.formInfo();
+  },
+  watch:{
+    'editConfig.visible'(val){
+      if(val){
+        this.formInfo()
+      }
+    },
+    'editConfig.infomation.codeStandID'(){
+      this.formInfo()
+    }
   },
   methods: {
+    formInfo(){
+      this.objCode.codeStandID = ''
+      if(this.editConfig.infomation.codeStandID){
+        this.objCode.codeStandID = this.editConfig.infomation.codeStandID;
+      }
+      this.getRCodeStandardList();
+    },
     getCommonData() {
       this.editConfig.infomation.country_id = 1
       this.editConfig.infomation.province_id =
@@ -727,7 +769,10 @@
         whether_established: data.whether_established || "",
 
         remark: data.remark || "",
-        detail_address: data.detail_address || ""
+        detail_address: data.detail_address || "",
+
+        codeStandID:data.ID,
+        codeRule:this.codeRule,
       }
       return params
     },
diff --git a/src/views/sales/subOrder/AddSubOrderDialog.vue b/src/views/sales/subOrder/AddSubOrderDialog.vue
index 10f5a17..7e46442 100644
--- a/src/views/sales/subOrder/AddSubOrderDialog.vue
+++ b/src/views/sales/subOrder/AddSubOrderDialog.vue
@@ -22,6 +22,31 @@
           <div class="basic-info-title">鍩烘湰淇℃伅</div>
           <div class="basic-info-view">
             <el-row>
+<!--              <el-col :span="12">-->
+<!--                <el-form-item label="鍗曟嵁缂栧彿" prop="number">-->
+<!--                  <el-input v-model="editConfig.infomation.number"></el-input>-->
+<!--                </el-form-item>-->
+<!--              </el-col>-->
+              <el-col :span="12">
+                <el-form-item label="鍗曟嵁缂栧彿" prop="number">
+                  <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">
@@ -48,11 +73,7 @@
                   </div>
                 </el-form-item>
               </el-col>
-              <el-col :span="12">
-                <el-form-item label="鍗曟嵁缂栧彿" prop="number">
-                  <el-input v-model="editConfig.infomation.number"></el-input>
-                </el-form-item>
-              </el-col>
+
               <el-col :span="12">
                 <el-form-item label="閿�鍞�诲崟" prop="master_order_number">
                   <div class="custom-name">
@@ -174,10 +195,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";
 
 export default {
   name: "SubOrderDialog",
-  components: { CommonFormTableView, SelectClientDialog, SelectCommonDialog },
+  mixins:[codeMixin],
+  components: {WordInput, CommonFormTableView, SelectClientDialog, SelectCommonDialog },
   props: {
     editCommonConfig: {
       type: Object,
@@ -239,7 +263,8 @@
       masterId: this.editCommonConfig.infomation.masterOrderId,
       tableData: [],
       productId: 1,
-      addProductArr: []
+      addProductArr: [],
+      objCode: { name: "", page: 0, pageSize: 0, type: "閿�鍞瓙鍗曠紪鐮�",codeStandID:'' },
     }
   },
   created() {
@@ -247,8 +272,26 @@
     this.$store.dispatch("geMaster")
     this.setTableForm()
     this.getCommonData()
+    this.formInfo();
+  },
+  watch:{
+    'editConfig.visible'(val){
+      if(val){
+        this.formInfo()
+      }
+    },
+    'editConfig.infomation.codeStandID'(){
+      this.formInfo()
+    }
   },
   methods: {
+    formInfo(){
+      this.objCode.codeStandID = ''
+      if(this.editConfig.infomation.codeStandID){
+        this.objCode.codeStandID = this.editConfig.infomation.codeStandID;
+      }
+      this.getRCodeStandardList();
+    },
     getCommonData() {
       getAllData()
         .then((res) => {
@@ -321,7 +364,9 @@
         masterOrderId: this.masterId || 0,
         memberId: data.memberId || 0,
         number: data.number || "",
-        product: this.tableData
+        product: this.tableData,
+        codeStandID:data.ID,
+        codeRule:this.codeRule,
       }
       return params
     },
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