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