From f4c300867675f292e882d5125238bb970bc19bdf Mon Sep 17 00:00:00 2001
From: qinxianzhangyao <11053546+qinxianzhangyao@user.noreply.gitee.com>
Date: 星期二, 12 十二月 2023 16:01:38 +0800
Subject: [PATCH] qxtj

---
 src/views/hosp/print/index.vue               |   13 
 vue.config.js                                |    4 
 src/views/reservation/resercopy/index.vue    |   65 +
 src/views/hosp/wxuser/index.vue              |   13 
 src/views/mall/checklog/index.vue            |   19 
 src/views/mall/timeConfig/index.vue          |   21 
 src/views/mall/keyword/index.vue             |   23 
 src/views/system/tijian/index.vue            |   64 +
 src/views/hosp/consumables/index.vue         |   13 
 src/views/hosp/rules/index.vue               |   27 
 src/views/system/comp/index.vue              |   57 +
 src/views/mall/footprint/index.vue           |   19 
 src/views/mall/order/index.vue               |   43 
 src/views/system/sfxm/index.vue              |   13 
 src/views/system/emer/index.vue              |   15 
 src/views/hosp/water/index.vue               |   17 
 src/views/hosp/surveyRecord/index.vue        |   13 
 src/views/system/ypdm/index.vue              |   23 
 src/views/doctor/check/index.vue             |    6 
 src/views/reservation/reservations/index.vue |   29 
 src/views/system/post/index.vue              |   16 
 src/views/hosp/appOrder/index.vue            |   13 
 src/views/hosp/contract/index.vue            |   15 
 src/views/tool/gen/basicInfoForm.vue         |   19 
 src/views/system/ks/index.vue                |   15 
 src/views/system/userinfo/index.vue          |   25 
 src/views/hosp/ruleAdvice/index.vue          |   13 
 src/views/hosp/detail/index.vue              |   13 
 src/views/hosp/teamAppLog/index.vue          |   21 
 src/views/hosp/restore/index.vue             |   27 
 src/views/system/hosp/index.vue              |   47 
 src/views/system/notice/index.vue            |   15 
 src/views/system/package/index.vue           |   29 
 src/views/paiban/beiwanglu/index.vue         |   13 
 src/views/team/reporting/index.vue           |   15 
 src/views/system/dict/index.vue              |   15 
 src/views/system/ssdm/index.vue              |   15 
 src/views/system/config/index.vue            |   17 
 src/views/system/role/index.vue              |   17 
 src/views/hosp/hosp/index.vue                |   35 
 src/views/hosp/Summary/index.vue             |   17 
 src/views/hosp/project/index.vue             |   23 
 src/views/hosp/question/index.vue            |   19 
 src/views/hosp/history/index.vue             |   13 
 src/views/system/menu/index.vue              |   17 
 src/views/doctor/checkAll/index.vue          |    2 
 src/views/hosp/chargingstandard/index.vue    |   13 
 src/views/hosp/sendTemplate/index.vue        |   17 
 src/views/system/dict/data.vue               |   17 
 src/views/team/reportresults/index.vue       |   17 
 src/views/system/transmit/index.vue          |   15 
 src/views/advice/advice/index.vue            |   13 
 src/views/monitor/job/index.vue              |   17 
 src/views/system/dept/index.vue              |   21 
 src/views/reservation/reservation/index.vue  |   43 
 src/views/mall/history/index.vue             |   21 
 src/views/system/tijianall/index.vue         |  490 ++++----------
 src/views/system/examcharge/index.vue        |   23 
 src/views/system/indrefund/index.vue         |   17 
 src/views/paiban/gerenpaiban/index.vue       |   21 
 src/views/system/user/index.vue              |   42 +
 src/views/system/pay/index.vue               |   13 
 src/views/tool/gen/genInfoForm.vue           |   21 
 src/views/paiban/pilpaiban/index.vue         |   13 
 src/views/system/user/profile/userInfo.vue   |   21 
 src/views/system/icd/index.vue               |   13 
 src/views/system/user/profile/resetPwd.vue   |   19 
 src/views/hosp/customer/index.vue            |   27 
 src/views/hosp/surveyTemplate/index.vue      |   13 
 src/views/team/teams/index.vue               |   19 
 src/views/catering/catering/index.vue        |   21 
 src/views/standard/standard/index.vue        |   15 
 src/views/standard/tijianxinxi/index.vue     |   23 
 73 files changed, 1,294 insertions(+), 694 deletions(-)

diff --git a/src/views/advice/advice/index.vue b/src/views/advice/advice/index.vue
index 64e844e..c21a291 100644
--- a/src/views/advice/advice/index.vue
+++ b/src/views/advice/advice/index.vue
@@ -190,6 +190,17 @@
 export default {
   name: "Advice",
   data() {
+    let checkPhoneNum = (rule, value, callback) => {
+         console.log( value)
+      let patter = new RegExp(/^1\s*[3456789]\s*(\d\s*){9}$/);
+      if (value == "" && value == undefined && !value) {
+        return callback('');
+      }  else if(value != undefined && value != ""){
+        return callback();
+      }else if (!patter.test(value)) {
+        return callback('');
+      }
+    };
     return {
       projectList: [],
       // 閬僵灞�
@@ -220,7 +231,7 @@
       form: {},
       // 琛ㄥ崟鏍¢獙
       rules: {
-        proId: [{ required: true, message: "", trigger: "blur" }],
+        proId: [{ required: true, validator: checkPhoneNum,  trigger: "blur" }],
       },
     };
   },
diff --git a/src/views/catering/catering/index.vue b/src/views/catering/catering/index.vue
index 81bd288..6d23b66 100644
--- a/src/views/catering/catering/index.vue
+++ b/src/views/catering/catering/index.vue
@@ -127,8 +127,8 @@
                         <!-- <el-button size="mini" type="text" icon="el-icon-edit" title="淇敼" @click="handleUpdate(scope.row)"
                             v-hasPermi="['template:template:edit']">
                         </el-button> -->
-                        <el-button size="mini" type="text" title="鍒犻櫎" icon="el-icon-delete" @click="handleDelete2(scope.row)"
-                            v-hasPermi="['template:template:remove']">
+                        <el-button size="mini" type="text" title="鍒犻櫎" icon="el-icon-delete"
+                            @click="handleDelete2(scope.row)" v-hasPermi="['template:template:remove']">
                         </el-button>
                     </td>
                 </tr>
@@ -178,6 +178,17 @@
 export default {
     name: "Catering",
     data() {
+        let checkPhoneNum = (rule, value, callback) => {
+         console.log( value)
+      let patter = new RegExp(/^1\s*[3456789]\s*(\d\s*){9}$/);
+      if (value == "" && value == undefined && !value) {
+        return callback('');
+      }  else if(value != undefined && value != ""){
+        return callback();
+      }else if (!patter.test(value)) {
+        return callback('');
+      }
+    };
         return {
             ss: "灏忕背绮�",
             ss1: "楦¤泲",
@@ -214,17 +225,17 @@
             rules: {
                 cateringName: [
                     {
-                        required: true, message: "", trigger: "blur"
+                        required: true, validator: checkPhoneNum, trigger: "blur"
                     }
                 ],
                 priceGt: [
                     {
-                        required: true, message: "", trigger: "blur"
+                        required: true, validator: checkPhoneNum, trigger: "blur"
                     }
                 ],
                 priceLg: [
                     {
-                        required: true, message: "", trigger: "blur"
+                        required: true, validator: checkPhoneNum, trigger: "blur"
                     }
                 ],
             }
diff --git a/src/views/doctor/check/index.vue b/src/views/doctor/check/index.vue
index 7158611..57f55a2 100644
--- a/src/views/doctor/check/index.vue
+++ b/src/views/doctor/check/index.vue
@@ -971,7 +971,11 @@
           setTimeout(() => {
             loading.close();
           }, 3000);
-          this.$message.msgSuccess("鎶ュ憡姝e湪鐢熸垚锛岃涓ゅ垎閽熷悗棰勮锛�");
+          // this.$message.msgSuccess("鎶ュ憡姝e湪鐢熸垚锛岃涓ゅ垎閽熷悗棰勮锛�");
+          this.$message({
+          type: "warning ",
+          message: "鎶ュ憡姝e湪鐢熸垚锛岃涓ゅ垎閽熷悗棰勮锛�!",
+        });
 
         } else {
           this.dialogVisible = true;
diff --git a/src/views/doctor/checkAll/index.vue b/src/views/doctor/checkAll/index.vue
index b5e54ba..f3aea2b 100644
--- a/src/views/doctor/checkAll/index.vue
+++ b/src/views/doctor/checkAll/index.vue
@@ -243,7 +243,7 @@
                 width: 200px;
                
               " v-if="item.parentAdvice">
-                  <el-input v-model="item.parentAdvice[index]" disabled></el-input>
+                  <el-input v-model="item.parentAdvice[index].title" disabled></el-input>
                   <!-- <el-select v-model="item.value" multiple filterable placeholder="璇烽�夋嫨" style="width: 100%" @change="xiAoJieChange($event, item)">
                 <el-option v-for="item1 in item.parentAdvice" :key="item1.id" :label="item1.title" :value="item1.id">
                 </el-option>
diff --git a/src/views/hosp/Summary/index.vue b/src/views/hosp/Summary/index.vue
index ee35ce6..99cc69b 100644
--- a/src/views/hosp/Summary/index.vue
+++ b/src/views/hosp/Summary/index.vue
@@ -64,6 +64,17 @@
 export default {
   name: "Water",
   data() {
+    let checkPhoneNum = (rule, value, callback) => {
+         console.log( value)
+      let patter = new RegExp(/^1\s*[3456789]\s*(\d\s*){9}$/);
+      if (value == "" && value == undefined && !value) {
+        return callback('');
+      }  else if(value != undefined && value != ""){
+        return callback();
+      }else if (!patter.test(value)) {
+        return callback('');
+      }
+    };
     return {
       value1: "",
       begTime: "",
@@ -99,13 +110,13 @@
       // 琛ㄥ崟鏍¢獙
       rules: {
         createTime: [
-          { required: true, message: "", trigger: "blur" }
+          { required: true, validator: checkPhoneNum,  trigger: "blur" }
         ],
         updateTime: [
-          { required: true, message: "", trigger: "blur" }
+          { required: true, validator: checkPhoneNum,  trigger: "blur" }
         ],
         deleted: [
-          { required: true, message: "", trigger: "blur" }
+          { required: true, validator: checkPhoneNum,  trigger: "blur" }
         ]
       }
     };
diff --git a/src/views/hosp/appOrder/index.vue b/src/views/hosp/appOrder/index.vue
index f7e4998..b05c014 100644
--- a/src/views/hosp/appOrder/index.vue
+++ b/src/views/hosp/appOrder/index.vue
@@ -328,6 +328,17 @@
     name: "AppOrder",
     dicts: ['app_refund_status', 'dict_user_national', 'dict_ageunit', 'dict_job', 'dict_user_cardtype', 'dict_user_marry', 'sys_yes_no', 'app_aftersale_status', 'sys_user_sex', 'app_order_status'],
     data() {
+        let checkPhoneNum = (rule, value, callback) => {
+         console.log( value)
+      let patter = new RegExp(/^1\s*[3456789]\s*(\d\s*){9}$/);
+      if (value == "" && value == undefined && !value) {
+        return callback('');
+      }  else if(value != undefined && value != ""){
+        return callback();
+      }else if (!patter.test(value)) {
+        return callback('');
+      }
+    };
         return {
             // 閬僵灞�
             loading: true,
@@ -367,7 +378,7 @@
             rules: {
                 deleted: [
                     {
-                        required: true, message: "", trigger: "blur"
+                        required: true, validator: checkPhoneNum,  trigger: "blur"
                     }
                 ],
             }
diff --git a/src/views/hosp/chargingstandard/index.vue b/src/views/hosp/chargingstandard/index.vue
index 6b3accc..d82ed71 100644
--- a/src/views/hosp/chargingstandard/index.vue
+++ b/src/views/hosp/chargingstandard/index.vue
@@ -146,6 +146,17 @@
 export default {
   name: "Chargingstandard",
   data() {
+    let checkPhoneNum = (rule, value, callback) => {
+         console.log( value)
+      let patter = new RegExp(/^1\s*[3456789]\s*(\d\s*){9}$/);
+      if (value == "" && value == undefined && !value) {
+        return callback('');
+      }  else if(value != undefined && value != ""){
+        return callback();
+      }else if (!patter.test(value)) {
+        return callback('');
+      }
+    };
     return {
       // 閬僵灞�
       loading: true,
@@ -176,7 +187,7 @@
       // 琛ㄥ崟鏍¢獙
       rules: {
         deleted: [
-          { required: true, message: "", trigger: "blur" }
+          { required: true, validator: checkPhoneNum,  trigger: "blur" }
         ]
       }
     };
diff --git a/src/views/hosp/consumables/index.vue b/src/views/hosp/consumables/index.vue
index 6709771..8e17584 100644
--- a/src/views/hosp/consumables/index.vue
+++ b/src/views/hosp/consumables/index.vue
@@ -167,6 +167,17 @@
   name: "Consumables",
   dicts: ['sys_yes_no'],
   data() {
+    let checkPhoneNum = (rule, value, callback) => {
+         console.log( value)
+      let patter = new RegExp(/^1\s*[3456789]\s*(\d\s*){9}$/);
+      if (value == "" && value == undefined && !value) {
+        return callback('');
+      }  else if(value != undefined && value != ""){
+        return callback();
+      }else if (!patter.test(value)) {
+        return callback('');
+      }
+    };
     return {
       // 閬僵灞�
       loading: true,
@@ -199,7 +210,7 @@
       // 琛ㄥ崟鏍¢獙
       rules: {
         deleted: [
-          { required: true, message: "", trigger: "blur" }
+          { required: true, validator: checkPhoneNum,  trigger: "blur" }
         ],
       }
     };
diff --git a/src/views/hosp/contract/index.vue b/src/views/hosp/contract/index.vue
index c1e0a17..fcabe4d 100644
--- a/src/views/hosp/contract/index.vue
+++ b/src/views/hosp/contract/index.vue
@@ -167,6 +167,17 @@
 export default {
     name: "Contract",
     data() {
+        let checkPhoneNum = (rule, value, callback) => {
+         console.log( value)
+      let patter = new RegExp(/^1\s*[3456789]\s*(\d\s*){9}$/);
+      if (value == "" && value == undefined && !value) {
+        return callback('');
+      }  else if(value != undefined && value != ""){
+        return callback();
+      }else if (!patter.test(value)) {
+        return callback('');
+      }
+    };
         return {
             options: [{
                 value: '閫夐」1',
@@ -217,12 +228,12 @@
             rules: {
                 deleted: [
                     {
-                        required: true, message: "", trigger: "blur"
+                        required: true, validator: checkPhoneNum,  trigger: "blur"
                     }
                 ],
                 createTime: [
                     {
-                        required: true, message: "", trigger: "blur"
+                        required: true, validator: checkPhoneNum,  trigger: "blur"
                     }
                 ],
             }
diff --git a/src/views/hosp/customer/index.vue b/src/views/hosp/customer/index.vue
index 2f7156b..b7a510a 100644
--- a/src/views/hosp/customer/index.vue
+++ b/src/views/hosp/customer/index.vue
@@ -514,6 +514,17 @@
     "sys_user_sex",
   ],
   data() {
+    let checkPhoneNum = (rule, value, callback) => {
+         console.log( value)
+      let patter = new RegExp(/^1\s*[3456789]\s*(\d\s*){9}$/);
+      if (value == "" && value == undefined && !value) {
+        return callback('');
+      }  else if(value != undefined && value != ""){
+        return callback();
+      }else if (!patter.test(value)) {
+        return callback('');
+      }
+    };
     return {
       // 閬僵灞�
       loading: true,
@@ -556,30 +567,30 @@
       form: {},
       // 琛ㄥ崟鏍¢獙
       rules: {
-        cusName: [{ required: true, message: "", trigger: "blur" }],
+        cusName: [{ required: true, validator: checkPhoneNum,  trigger: "blur" }],
         cusSex: [
-          { required: true, message: "", trigger: "change" },
+          { required: true, validator: checkPhoneNum,  trigger: "change" },
         ],
         cusBrithday: [
-          { required: true, message: "", trigger: "blur" },
+          { required: true, validator: checkPhoneNum,  trigger: "blur" },
         ],
         cusAddr: [
-          { required: true, message: "", trigger: "blur" },
+          { required: true, validator: checkPhoneNum,  trigger: "blur" },
         ],
         cusPhone: [
-          { required: true, message: "", trigger: "blur" },
+          { required: true, validator: checkPhoneNum,  trigger: "blur" },
         ],
         cusPassword: [
-          { required: true, message: "", trigger: "blur" },
+          { required: true, validator: checkPhoneNum,  trigger: "blur" },
         ],
         // cusNational: [
         //   { required: true, message: "姘戞棌涓嶈兘涓虹┖", trigger: "change" }
         // ],
         cusIdcard: [
-          { required: true, message: "", trigger: "blur" },
+          { required: true, validator: checkPhoneNum,  trigger: "blur" },
         ],
         deleted: [
-          { required: true, message: "", trigger: "blur" },
+          { required: true, validator: checkPhoneNum,  trigger: "blur" },
         ],
       },
     };
diff --git a/src/views/hosp/detail/index.vue b/src/views/hosp/detail/index.vue
index bc36a3a..0d48d42 100644
--- a/src/views/hosp/detail/index.vue
+++ b/src/views/hosp/detail/index.vue
@@ -166,6 +166,17 @@
 export default {
   name: "Detail",
   data() {
+    let checkPhoneNum = (rule, value, callback) => {
+         console.log( value)
+      let patter = new RegExp(/^1\s*[3456789]\s*(\d\s*){9}$/);
+      if (value == "" && value == undefined && !value) {
+        return callback('');
+      }  else if(value != undefined && value != ""){
+        return callback();
+      }else if (!patter.test(value)) {
+        return callback('');
+      }
+    };
     return {
       // 閬僵灞�
       loading: true,
@@ -204,7 +215,7 @@
       // 琛ㄥ崟鏍¢獙
       rules: {
         deleted: [
-          { required: true, message: "", trigger: "blur" }
+          { required: true, validator: checkPhoneNum,  trigger: "blur" }
         ],
       }
     };
diff --git a/src/views/hosp/history/index.vue b/src/views/hosp/history/index.vue
index f5c54eb..d871618 100644
--- a/src/views/hosp/history/index.vue
+++ b/src/views/hosp/history/index.vue
@@ -300,6 +300,17 @@
   name: "History",
   dicts: ["tj_smoking_pinlv", "sys_yes_no", "tj_work_status", "tj_work", "dict_ageunit", "dict_job"],
   data() {
+    let checkPhoneNum = (rule, value, callback) => {
+         console.log( value)
+      let patter = new RegExp(/^1\s*[3456789]\s*(\d\s*){9}$/);
+      if (value == "" && value == undefined && !value) {
+        return callback('');
+      }  else if(value != undefined && value != ""){
+        return callback();
+      }else if (!patter.test(value)) {
+        return callback('');
+      }
+    };
     return {
       selectList: [],
       dataList:[],
@@ -376,7 +387,7 @@
         deleted: [
           {
             required: true,
-            message: "",
+            validator: checkPhoneNum, 
             trigger: "blur",
           },
         ],
diff --git a/src/views/hosp/hosp/index.vue b/src/views/hosp/hosp/index.vue
index 8d8357c..9e359ce 100644
--- a/src/views/hosp/hosp/index.vue
+++ b/src/views/hosp/hosp/index.vue
@@ -314,6 +314,17 @@
   name: "Hosp",
   dicts: ["sys_yes_no", "dict_data_status", "dict_qhdm"],
   data() {
+    let checkPhoneNum = (rule, value, callback) => {
+         console.log( value)
+      let patter = new RegExp(/^1\s*[3456789]\s*(\d\s*){9}$/);
+      if (value == "" && value == undefined && !value) {
+        return callback('');
+      }  else if(value != undefined && value != ""){
+        return callback();
+      }else if (!patter.test(value)) {
+        return callback('');
+      }
+    };
     return {
       // 閬僵灞�
       loading: true,
@@ -356,29 +367,29 @@
       // 琛ㄥ崟鏍¢獙
       rules: {
         hospAreaName: [
-          { required: true, message: "", trigger: "blur" },
+          { required: true, validator: checkPhoneNum,  trigger: "blur" },
         ],
         hospid: [
-          { required: true, message: "", trigger: "blur" },
+          { required: true, validator: checkPhoneNum,  trigger: "blur" },
         ],
         // hospName: [
         //   { required: true, message: "鍖荤枟鏈烘瀯鍚嶇О涓嶈兘涓虹┖", trigger: "blur" },
         // ],
         code: [
-          { required: true, message: "", trigger: "blur" },
+          { required: true, validator: checkPhoneNum,  trigger: "blur" },
         ],
         mainHospArea: [
           {
             required: true,
-            message: "",
+            validator: checkPhoneNum, 
             trigger: "change",
           },
         ],
         createBy: [
-          { required: true, message: "", trigger: "blur" },
+          { required: true, validator: checkPhoneNum,  trigger: "blur" },
         ],
         createTime: [
-          { required: true, message: "", trigger: "blur" },
+          { required: true, validator: checkPhoneNum,  trigger: "blur" },
         ],
         // orderNum: [
         //   { required: true, message: "鎺掑簭涓嶈兘涓虹┖", trigger: "blur" },
@@ -386,24 +397,24 @@
         effective: [
           {
             required: true,
-            message: "",
+            validator: checkPhoneNum, 
             trigger: "change",
           },
         ],
         createByName: [
-          { required: true, message: "", trigger: "blur" },
+          { required: true, validator: checkPhoneNum,  trigger: "blur" },
         ],
         updateByName: [
-          { required: true, message: "", trigger: "blur" },
+          { required: true, validator: checkPhoneNum,  trigger: "blur" },
         ],
         areaName: [
-          { required: true, message: "", trigger: "blur" },
+          { required: true, validator: checkPhoneNum,  trigger: "blur" },
         ],
         principal: [
-          { required: true, message: "", trigger: "blur" },
+          { required: true, validator: checkPhoneNum,  trigger: "blur" },
         ],
         phone: [
-          { required: true, message: "", trigger: "blur" },
+          { required: true, validator: checkPhoneNum,  trigger: "blur" },
         ],
       },
     };
diff --git a/src/views/hosp/print/index.vue b/src/views/hosp/print/index.vue
index 8a99cbd..8ddc514 100644
--- a/src/views/hosp/print/index.vue
+++ b/src/views/hosp/print/index.vue
@@ -65,6 +65,17 @@
     name: "Print",
     dicts: ["print_success_fail",],
     data() {
+        let checkPhoneNum = (rule, value, callback) => {
+         console.log( value)
+      let patter = new RegExp(/^1\s*[3456789]\s*(\d\s*){9}$/);
+      if (value == "" && value == undefined && !value) {
+        return callback('');
+      }  else if(value != undefined && value != ""){
+        return callback();
+      }else if (!patter.test(value)) {
+        return callback('');
+      }
+    };
         return {
             // 閬僵灞�
             loading: true,
@@ -101,7 +112,7 @@
             rules: {
                 deleted: [
                     {
-                        required: true, message: "", trigger: "blur"
+                        required: true, validator: checkPhoneNum,  trigger: "blur"
                     }
                 ]
             }
diff --git a/src/views/hosp/project/index.vue b/src/views/hosp/project/index.vue
index 0f6054b..64535ad 100644
--- a/src/views/hosp/project/index.vue
+++ b/src/views/hosp/project/index.vue
@@ -356,6 +356,17 @@
   dicts: ["sys_normal_disable", "dict_personnel_type", "sys_user_sex", "tj_result_type", "dis_sampling_tab", "sys_dict_specimen", "sys_dict_position", "tj_result_type", "sys_yes_no"],
   components: { Treeselect, IconSelect },
   data() {
+    let checkPhoneNum = (rule, value, callback) => {
+         console.log( value)
+      let patter = new RegExp(/^1\s*[3456789]\s*(\d\s*){9}$/);
+      if (value == "" && value == undefined && !value) {
+        return callback('');
+      }  else if(value != undefined && value != ""){
+        return callback();
+      }else if (!patter.test(value)) {
+        return callback('');
+      }
+    };
     return {
       // 閮ㄩ棬鏍戦�夐」
       deptOptions: undefined,
@@ -439,22 +450,22 @@
       // 琛ㄥ崟鏍¢獙
       rules: {
         createTime: [
-          { required: true, message: "", trigger: "blur" },
+          { required: true, validator: checkPhoneNum,  trigger: "blur" },
         ],
         updateTime: [
-          { required: true, message: "", trigger: "blur" },
+          { required: true, validator: checkPhoneNum,  trigger: "blur" },
         ],
         deleted: [
-          { required: true, message: "", trigger: "blur" },
+          { required: true, validator: checkPhoneNum,  trigger: "blur" },
         ],
         proName: [
-          { required: true, message: "", trigger: "blur" },
+          { required: true, validator: checkPhoneNum,  trigger: "blur" },
         ],
         proPrice: [
-          { required: true, message: "", trigger: "blur" },
+          { required: true, validator: checkPhoneNum,  trigger: "blur" },
         ],
         deptId: [
-          { required: true, message: "", trigger: "blur" },
+          { required: true, validator: checkPhoneNum,  trigger: "blur" },
         ],
         // proStandard: [
         //   { required: true, message: "椤圭洰鏍囧噯鍊间笉鑳戒负绌�", trigger: "blur" },
diff --git a/src/views/hosp/question/index.vue b/src/views/hosp/question/index.vue
index 8d06d60..084600e 100644
--- a/src/views/hosp/question/index.vue
+++ b/src/views/hosp/question/index.vue
@@ -139,6 +139,17 @@
   dicts: ["question_type", "sys_yes_no"],
   name: "Question",
   data() {
+    let checkPhoneNum = (rule, value, callback) => {
+         console.log( value)
+      let patter = new RegExp(/^1\s*[3456789]\s*(\d\s*){9}$/);
+      if (value == "" && value == undefined && !value) {
+        return callback('');
+      }  else if(value != undefined && value != ""){
+        return callback();
+      }else if (!patter.test(value)) {
+        return callback('');
+      }
+    };
     return {
       // 閬僵灞�
       loading: true,
@@ -178,28 +189,28 @@
         question: [
           {
             required: true,
-            message: "",
+            validator: checkPhoneNum, 
             trigger: "blur",
           },
         ],
         type: [
           {
             required: true,
-            message: "",
+            validator: checkPhoneNum, 
             trigger: "change",
           },
         ],
         isRequired: [
           {
             required: true,
-            message: "",
+            validator: checkPhoneNum, 
             trigger: "blur",
           },
         ],
         deleted: [
           {
             required: true,
-            message: "",
+            validator: checkPhoneNum, 
             trigger: "blur",
           },
         ],
diff --git a/src/views/hosp/restore/index.vue b/src/views/hosp/restore/index.vue
index 756e0e8..30ec38f 100644
--- a/src/views/hosp/restore/index.vue
+++ b/src/views/hosp/restore/index.vue
@@ -383,6 +383,17 @@
       "sys_user_sex",
     ],
     data() {
+      let checkPhoneNum = (rule, value, callback) => {
+         console.log( value)
+      let patter = new RegExp(/^1\s*[3456789]\s*(\d\s*){9}$/);
+      if (value == "" && value == undefined && !value) {
+        return callback('');
+      }  else if(value != undefined && value != ""){
+        return callback();
+      }else if (!patter.test(value)) {
+        return callback('');
+      }
+    };
       return {
         // 閬僵灞�
         loading: true,
@@ -425,30 +436,30 @@
         form: {},
         // 琛ㄥ崟鏍¢獙
         rules: {
-          cusName: [{ required: true, message: "", trigger: "blur" }],
+          cusName: [{ required: true, validator: checkPhoneNum,  trigger: "blur" }],
           cusSex: [
-            { required: true, message: "", trigger: "change" },
+            { required: true, validator: checkPhoneNum,  trigger: "change" },
           ],
           cusBrithday: [
-            { required: true, message: "", trigger: "blur" },
+            { required: true, validator: checkPhoneNum,  trigger: "blur" },
           ],
           cusAddr: [
-            { required: true, message: "", trigger: "blur" },
+            { required: true, validator: checkPhoneNum,  trigger: "blur" },
           ],
           cusPhone: [
-            { required: true, message: "", trigger: "blur" },
+            { required: true, validator: checkPhoneNum,  trigger: "blur" },
           ],
           cusPassword: [
-            { required: true, message: "", trigger: "blur" },
+            { required: true, validator: checkPhoneNum,  trigger: "blur" },
           ],
           // cusNational: [
           //   { required: true, message: "姘戞棌涓嶈兘涓虹┖", trigger: "change" }
           // ],
           cusIdcard: [
-            { required: true, message: "", trigger: "blur" },
+            { required: true, validator: checkPhoneNum,  trigger: "blur" },
           ],
           deleted: [
-            { required: true, message: "", trigger: "blur" },
+            { required: true, validator: checkPhoneNum,  trigger: "blur" },
           ],
         },
       };
diff --git a/src/views/hosp/ruleAdvice/index.vue b/src/views/hosp/ruleAdvice/index.vue
index 529e596..85018f8 100644
--- a/src/views/hosp/ruleAdvice/index.vue
+++ b/src/views/hosp/ruleAdvice/index.vue
@@ -133,6 +133,17 @@
 export default {
   name: "RuleAdvice",
   data() {
+    let checkPhoneNum = (rule, value, callback) => {
+         console.log( value)
+      let patter = new RegExp(/^1\s*[3456789]\s*(\d\s*){9}$/);
+      if (value == "" && value == undefined && !value) {
+        return callback('');
+      }  else if(value != undefined && value != ""){
+        return callback();
+      }else if (!patter.test(value)) {
+        return callback('');
+      }
+    };
     return {
       deptOptions: [],
       defaultProps: {
@@ -175,7 +186,7 @@
         deleted: [
           {
             required: true,
-            message: "",
+            validator: checkPhoneNum, 
             trigger: "blur",
           },
         ],
diff --git a/src/views/hosp/rules/index.vue b/src/views/hosp/rules/index.vue
index 6f7330e..c24178c 100644
--- a/src/views/hosp/rules/index.vue
+++ b/src/views/hosp/rules/index.vue
@@ -219,6 +219,17 @@
   name: "Rules",
   dicts: ["tj_rule_type", "tj_rule_sex"],
   data() {
+    let checkPhoneNum = (rule, value, callback) => {
+         console.log( value)
+      let patter = new RegExp(/^1\s*[3456789]\s*(\d\s*){9}$/);
+      if (value == "" && value == undefined && !value) {
+        return callback('');
+      }  else if(value != undefined && value != ""){
+        return callback();
+      }else if (!patter.test(value)) {
+        return callback('');
+      }
+    };
     return {
       deptOptions: [],
       defaultProps: {
@@ -271,30 +282,30 @@
         deleted: [
           {
             required: true,
-            message: "",
+            validator: checkPhoneNum, 
             trigger: "blur",
           },
         ],
         proName: [
-          { required: true, message: "", trigger: "change" },
+          { required: true, validator: checkPhoneNum,  trigger: "change" },
         ],
         ruleType: [
-          { required: true, message: "", trigger: "change" },
+          { required: true, validator: checkPhoneNum,  trigger: "change" },
         ],
         ruleStr: [
-          { required: true, message: "", trigger: "change" },
+          { required: true, validator: checkPhoneNum,  trigger: "change" },
         ],
         bingzhong: [
-          { required: true, message: "", trigger: "change" },
+          { required: true, validator: checkPhoneNum,  trigger: "change" },
         ],
         sex: [
-          { required: true, message: "", trigger: "change" },
+          { required: true, validator: checkPhoneNum,  trigger: "change" },
         ],
         ageLt: [
-          { required: true, message: "", trigger: "change" },
+          { required: true, validator: checkPhoneNum,  trigger: "change" },
         ],
         ageGt: [
-          { required: true, message: "", trigger: "change" },
+          { required: true, validator: checkPhoneNum,  trigger: "change" },
         ],
       },
     };
diff --git a/src/views/hosp/sendTemplate/index.vue b/src/views/hosp/sendTemplate/index.vue
index 126d5ea..2c1c051 100644
--- a/src/views/hosp/sendTemplate/index.vue
+++ b/src/views/hosp/sendTemplate/index.vue
@@ -119,6 +119,17 @@
     name: "SendTemplate",
     dicts: ['tj_send_type', 'sys_normal_disable'],
     data() {
+        let checkPhoneNum = (rule, value, callback) => {
+         console.log( value)
+      let patter = new RegExp(/^1\s*[3456789]\s*(\d\s*){9}$/);
+      if (value == "" && value == undefined && !value) {
+        return callback('');
+      }  else if(value != undefined && value != ""){
+        return callback();
+      }else if (!patter.test(value)) {
+        return callback('');
+      }
+    };
         return {
             // 閬僵灞�
             loading: true,
@@ -152,17 +163,17 @@
             rules: {
                 tempTitle: [
                     {
-                        required: true, message: "", trigger: "blur"
+                        required: true, validator: checkPhoneNum,  trigger: "blur"
                     }
                 ],
                 tempContent: [
                     {
-                        required: true, message: "", trigger: "blur"
+                        required: true, validator: checkPhoneNum,  trigger: "blur"
                     }
                 ],
                 tempType: [
                     {
-                        required: true, message: "", trigger: "change"
+                        required: true, validator: checkPhoneNum,  trigger: "change"
                     }
                 ],
             }
diff --git a/src/views/hosp/surveyRecord/index.vue b/src/views/hosp/surveyRecord/index.vue
index 0f10248..b2ae7b0 100644
--- a/src/views/hosp/surveyRecord/index.vue
+++ b/src/views/hosp/surveyRecord/index.vue
@@ -282,6 +282,17 @@
 export default {
   name: "SurveyRecord",
   data() {
+    let checkPhoneNum = (rule, value, callback) => {
+         console.log( value)
+      let patter = new RegExp(/^1\s*[3456789]\s*(\d\s*){9}$/);
+      if (value == "" && value == undefined && !value) {
+        return callback('');
+      }  else if(value != undefined && value != ""){
+        return callback();
+      }else if (!patter.test(value)) {
+        return callback('');
+      }
+    };
     return {
       // 閬僵灞�
       loading: true,
@@ -320,7 +331,7 @@
         deleted: [
           {
             required: true,
-            message: "",
+            validator: checkPhoneNum, 
             trigger: "blur",
           },
         ],
diff --git a/src/views/hosp/surveyTemplate/index.vue b/src/views/hosp/surveyTemplate/index.vue
index 04ddaaf..e0712aa 100644
--- a/src/views/hosp/surveyTemplate/index.vue
+++ b/src/views/hosp/surveyTemplate/index.vue
@@ -132,6 +132,17 @@
   name: "SurveyTemplate",
   dicts: ["question_template_type"],
   data() {
+    let checkPhoneNum = (rule, value, callback) => {
+         console.log( value)
+      let patter = new RegExp(/^1\s*[3456789]\s*(\d\s*){9}$/);
+      if (value == "" && value == undefined && !value) {
+        return callback('');
+      }  else if(value != undefined && value != ""){
+        return callback();
+      }else if (!patter.test(value)) {
+        return callback('');
+      }
+    };
     return {
       // 閬僵灞�
       loading: true,
@@ -171,7 +182,7 @@
         deleted: [
           {
             required: true,
-            message: "",
+            validator: checkPhoneNum, 
             trigger: "blur",
           },
         ],
diff --git a/src/views/hosp/teamAppLog/index.vue b/src/views/hosp/teamAppLog/index.vue
index aed8a5e..0de9d3c 100644
--- a/src/views/hosp/teamAppLog/index.vue
+++ b/src/views/hosp/teamAppLog/index.vue
@@ -373,6 +373,17 @@
   name: "TeamAppLog",
   dicts: ["dict_tjtype", "tj_from_by"],
   data() {
+    let checkPhoneNum = (rule, value, callback) => {
+         console.log( value)
+      let patter = new RegExp(/^1\s*[3456789]\s*(\d\s*){9}$/);
+      if (value == "" && value == undefined && !value) {
+        return callback('');
+      }  else if(value != undefined && value != ""){
+        return callback();
+      }else if (!patter.test(value)) {
+        return callback('');
+      }
+    };
     return {
       username: "",
       goutongsList: [],
@@ -415,35 +426,35 @@
         cnName: [
           {
             required: true,
-            message: "",
+            validator: checkPhoneNum, 
             trigger: "blur",
           },
         ],
         contactPhone: [
           {
             required: true,
-            message: "",
+            validator: checkPhoneNum, 
             trigger: "blur",
           },
         ],
         count: [
           {
             required: true,
-            message: "",
+            validator: checkPhoneNum, 
             trigger: "blur",
           },
         ],
         createTime: [
           {
             required: true,
-            message: "",
+            validator: checkPhoneNum, 
             trigger: "blur",
           },
         ],
         deleted: [
           {
             required: true,
-            message: "",
+            validator: checkPhoneNum, 
             trigger: "blur",
           },
         ],
diff --git a/src/views/hosp/water/index.vue b/src/views/hosp/water/index.vue
index 4cb8e3d..383e668 100644
--- a/src/views/hosp/water/index.vue
+++ b/src/views/hosp/water/index.vue
@@ -149,6 +149,17 @@
 export default {
   name: "Water",
   data() {
+    let checkPhoneNum = (rule, value, callback) => {
+         console.log( value)
+      let patter = new RegExp(/^1\s*[3456789]\s*(\d\s*){9}$/);
+      if (value == "" && value == undefined && !value) {
+        return callback('');
+      }  else if(value != undefined && value != ""){
+        return callback();
+      }else if (!patter.test(value)) {
+        return callback('');
+      }
+    };
     return {
       // 閬僵灞�
       loading: true,
@@ -181,13 +192,13 @@
       // 琛ㄥ崟鏍¢獙
       rules: {
         createTime: [
-          { required: true, message: "", trigger: "blur" }
+          { required: true, validator: checkPhoneNum,  trigger: "blur" }
         ],
         updateTime: [
-          { required: true, message: "", trigger: "blur" }
+          { required: true, validator: checkPhoneNum,  trigger: "blur" }
         ],
         deleted: [
-          { required: true, message: "", trigger: "blur" }
+          { required: true, validator: checkPhoneNum,  trigger: "blur" }
         ]
       }
     };
diff --git a/src/views/hosp/wxuser/index.vue b/src/views/hosp/wxuser/index.vue
index 25ffc6e..1eb43b1 100644
--- a/src/views/hosp/wxuser/index.vue
+++ b/src/views/hosp/wxuser/index.vue
@@ -155,6 +155,17 @@
   name: "Wxuser",
   dicts: ['sys_user_sex'],
   data() {
+    let checkPhoneNum = (rule, value, callback) => {
+         console.log( value)
+      let patter = new RegExp(/^1\s*[3456789]\s*(\d\s*){9}$/);
+      if (value == "" && value == undefined && !value) {
+        return callback('');
+      }  else if(value != undefined && value != ""){
+        return callback();
+      }else if (!patter.test(value)) {
+        return callback('');
+      }
+    };
     return {
       // 閬僵灞�
       loading: true,
@@ -185,7 +196,7 @@
       // 琛ㄥ崟鏍¢獙
       rules: {
         deleted: [
-          { required: true, message: "", trigger: "blur" }
+          { required: true, validator: checkPhoneNum,  trigger: "blur" }
         ]
       }
     };
diff --git a/src/views/mall/checklog/index.vue b/src/views/mall/checklog/index.vue
index 5958264..3c13fd5 100644
--- a/src/views/mall/checklog/index.vue
+++ b/src/views/mall/checklog/index.vue
@@ -215,6 +215,17 @@
 export default {
   name: "Checklog",
   data() {
+    let checkPhoneNum = (rule, value, callback) => {
+         console.log( value)
+      let patter = new RegExp(/^1\s*[3456789]\s*(\d\s*){9}$/);
+      if (value == "" && value == undefined && !value) {
+        return callback('');
+      }  else if(value != undefined && value != ""){
+        return callback();
+      }else if (!patter.test(value)) {
+        return callback('');
+      }
+    };
     return {
       // 閬僵灞�
       loading: true,
@@ -283,28 +294,28 @@
         userId: [
           {
             required: true,
-            message: "",
+            validator: checkPhoneNum, 
             trigger: "blur",
           },
         ],
         orderSn: [
           {
             required: true,
-            message: "",
+            validator: checkPhoneNum, 
             trigger: "blur",
           },
         ],
         createTime: [
           {
             required: true,
-            message: "",
+            validator: checkPhoneNum, 
             trigger: "blur",
           },
         ],
         deleted: [
           {
             required: true,
-            message: "",
+            validator: checkPhoneNum, 
             trigger: "blur",
           },
         ],
diff --git a/src/views/mall/footprint/index.vue b/src/views/mall/footprint/index.vue
index 93d293c..5063298 100644
--- a/src/views/mall/footprint/index.vue
+++ b/src/views/mall/footprint/index.vue
@@ -148,6 +148,17 @@
 export default {
   name: "Footprint",
   data() {
+    let checkPhoneNum = (rule, value, callback) => {
+         console.log( value)
+      let patter = new RegExp(/^1\s*[3456789]\s*(\d\s*){9}$/);
+      if (value == "" && value == undefined && !value) {
+        return callback('');
+      }  else if(value != undefined && value != ""){
+        return callback();
+      }else if (!patter.test(value)) {
+        return callback('');
+      }
+    };
     return {
       // 閬僵灞�
       loading: true,
@@ -216,28 +227,28 @@
         userId: [
           {
             required: true,
-            message: "",
+            validator: checkPhoneNum, 
             trigger: "blur",
           },
         ],
         goodsId: [
           {
             required: true,
-            message: "",
+            validator: checkPhoneNum, 
             trigger: "blur",
           },
         ],
         createTime: [
           {
             required: true,
-            message: "",
+            validator: checkPhoneNum, 
             trigger: "blur",
           },
         ],
         deleted: [
           {
             required: true,
-            message: "",
+            validator: checkPhoneNum, 
             trigger: "blur",
           },
         ],
diff --git a/src/views/mall/history/index.vue b/src/views/mall/history/index.vue
index 06b4776..7c34eec 100644
--- a/src/views/mall/history/index.vue
+++ b/src/views/mall/history/index.vue
@@ -143,6 +143,17 @@
 export default {
   name: "History",
   data() {
+    let checkPhoneNum = (rule, value, callback) => {
+         console.log( value)
+      let patter = new RegExp(/^1\s*[3456789]\s*(\d\s*){9}$/);
+      if (value == "" && value == undefined && !value) {
+        return callback('');
+      }  else if(value != undefined && value != ""){
+        return callback();
+      }else if (!patter.test(value)) {
+        return callback('');
+      }
+    };
     return {
       // 閬僵灞�
       loading: true,
@@ -209,35 +220,35 @@
         userId: [
           {
             required: true,
-            message: "",
+            validator: checkPhoneNum, 
             trigger: "blur",
           },
         ],
         keyword: [
           {
             required: true,
-            message: "",
+            validator: checkPhoneNum, 
             trigger: "blur",
           },
         ],
         fromType: [
           {
             required: true,
-            message: "",
+            validator: checkPhoneNum, 
             trigger: "change",
           },
         ],
         createTime: [
           {
             required: true,
-            message: "",
+            validator: checkPhoneNum, 
             trigger: "blur",
           },
         ],
         deleted: [
           {
             required: true,
-            message: "",
+            validator: checkPhoneNum, 
             trigger: "blur",
           },
         ],
diff --git a/src/views/mall/keyword/index.vue b/src/views/mall/keyword/index.vue
index 7bec9eb..1c84ba0 100644
--- a/src/views/mall/keyword/index.vue
+++ b/src/views/mall/keyword/index.vue
@@ -167,6 +167,17 @@
 export default {
   name: "Keyword",
   data() {
+    let checkPhoneNum = (rule, value, callback) => {
+         console.log( value)
+      let patter = new RegExp(/^1\s*[3456789]\s*(\d\s*){9}$/);
+      if (value == "" && value == undefined && !value) {
+        return callback('');
+      }  else if(value != undefined && value != ""){
+        return callback();
+      }else if (!patter.test(value)) {
+        return callback('');
+      }
+    };
     return {
       // 閬僵灞�
       loading: true,
@@ -201,42 +212,42 @@
         keyword: [
           {
             required: true,
-            message: "",
+            validator: checkPhoneNum, 
             trigger: "blur",
           },
         ],
         url: [
           {
             required: true,
-            message: "",
+            validator: checkPhoneNum, 
             trigger: "blur",
           },
         ],
         isHot: [
           {
             required: true,
-            message: "",
+            validator: checkPhoneNum, 
             trigger: "blur",
           },
         ],
         isDefault: [
           {
             required: true,
-            message: "",
+            validator: checkPhoneNum, 
             trigger: "blur",
           },
         ],
         sortOrder: [
           {
             required: true,
-            message: "",
+            validator: checkPhoneNum, 
             trigger: "blur",
           },
         ],
         createTime: [
           {
             required: true,
-            message: "",
+            validator: checkPhoneNum, 
             trigger: "blur",
           },
         ],
diff --git a/src/views/mall/order/index.vue b/src/views/mall/order/index.vue
index 6dbe2a6..b82b378 100644
--- a/src/views/mall/order/index.vue
+++ b/src/views/mall/order/index.vue
@@ -620,6 +620,17 @@
    dicts: ["app_order_status", "app_aftersale_status", "app_refund_status","app_refund_type"],
   name: "Order",
   data() {
+    let checkPhoneNum = (rule, value, callback) => {
+         console.log( value)
+      let patter = new RegExp(/^1\s*[3456789]\s*(\d\s*){9}$/);
+      if (value == "" && value == undefined && !value) {
+        return callback('');
+      }  else if(value != undefined && value != ""){
+        return callback();
+      }else if (!patter.test(value)) {
+        return callback('');
+      }
+    };
     return {
       // 閬僵灞�
       loading: true,
@@ -691,77 +702,77 @@
         userId: [
           {
             required: true,
-            message: "",
+            validator: checkPhoneNum, 
             trigger: "blur",
           },
         ],
         orderSn: [
           {
             required: true,
-            message: "",
+            validator: checkPhoneNum, 
             trigger: "blur",
           },
         ],
         orderStatus: [
           {
             required: true,
-            message: "",
+            validator: checkPhoneNum, 
             trigger: "blur",
           },
         ],
         consignee: [
           {
             required: true,
-            message: "",
+            validator: checkPhoneNum, 
             trigger: "blur",
           },
         ],
         mobile: [
           {
             required: true,
-            message: "",
+            validator: checkPhoneNum, 
             trigger: "blur",
           },
         ],
         address: [
           {
             required: true,
-            message: "",
+            validator: checkPhoneNum, 
             trigger: "blur",
           },
         ],
         message: [
           {
             required: true,
-            message: "",
+            validator: checkPhoneNum, 
             trigger: "blur",
           },
         ],
         goodsPrice: [
           {
             required: true,
-            message: "",
+            validator: checkPhoneNum, 
             trigger: "blur",
           },
         ],
         couponPrice: [
           {
             required: true,
-            message: "",
+            validator: checkPhoneNum, 
             trigger: "blur",
           },
         ],
         integralPrice: [
           {
             required: true,
-            message: "",
+            validator: checkPhoneNum, 
             trigger: "blur",
           },
         ],
         grouponPrice: [
           {
             required: true,
-            message: "",
+            validator: checkPhoneNum, 
             trigger: "blur",
           },
         ],
@@ -776,35 +787,35 @@
         actualPrice: [
           {
             required: true,
-            message: "",
+            validator: checkPhoneNum, 
             trigger: "blur",
           },
         ],
         settlementStatus: [
           {
             required: true,
-            message: "",
+            validator: checkPhoneNum, 
             trigger: "blur",
           },
         ],
         freightType: [
           {
             required: true,
-            message: "",
+            validator: checkPhoneNum, 
             trigger: "change",
           },
         ],
         createTime: [
           {
             required: true,
-            message: "",
+            validator: checkPhoneNum, 
             trigger: "blur",
           },
         ],
         deleted: [
           {
             required: true,
-            message: "",
+            validator: checkPhoneNum, 
             trigger: "blur",
           },
         ],
diff --git a/src/views/mall/timeConfig/index.vue b/src/views/mall/timeConfig/index.vue
index 3f83e14..8697616 100644
--- a/src/views/mall/timeConfig/index.vue
+++ b/src/views/mall/timeConfig/index.vue
@@ -127,6 +127,17 @@
 export default {
   name: "TimeConfig",
   data() {
+    let checkPhoneNum = (rule, value, callback) => {
+         console.log( value)
+      let patter = new RegExp(/^1\s*[3456789]\s*(\d\s*){9}$/);
+      if (value == "" && value == undefined && !value) {
+        return callback('');
+      }  else if(value != undefined && value != ""){
+        return callback();
+      }else if (!patter.test(value)) {
+        return callback('');
+      }
+    };
     return {
       yc: false,
       pickerOptions: {
@@ -203,35 +214,35 @@
         startTime: [
           {
             required: true,
-            message: "",
+            validator: checkPhoneNum, 
             trigger: "blur",
           },
         ],
         endTime: [
           {
             required: true,
-            message: "",
+            validator: checkPhoneNum, 
             trigger: "blur",
           },
         ],
         allNum: [
           {
             required: true,
-            message: "",
+            validator: checkPhoneNum, 
             trigger: "blur",
           },
         ],
         nowNum: [
           {
             required: true,
-            message: "",
+            validator: checkPhoneNum, 
             trigger: "blur",
           },
         ],
         deleted: [
           {
             required: true,
-            message: "",
+            validator: checkPhoneNum, 
             trigger: "blur",
           },
         ],
diff --git a/src/views/monitor/job/index.vue b/src/views/monitor/job/index.vue
index 7de859c..ed17e3f 100644
--- a/src/views/monitor/job/index.vue
+++ b/src/views/monitor/job/index.vue
@@ -290,6 +290,17 @@
   name: "Job",
   dicts: ['sys_job_group', 'sys_job_status'],
   data() {
+    let checkPhoneNum = (rule, value, callback) => {
+         console.log( value)
+      let patter = new RegExp(/^1\s*[3456789]\s*(\d\s*){9}$/);
+      if (value == "" && value == undefined && !value) {
+        return callback('');
+      }  else if(value != undefined && value != ""){
+        return callback();
+      }else if (!patter.test(value)) {
+        return callback('');
+      }
+    };
     return {
       // 閬僵灞�
       loading: true,
@@ -328,13 +339,13 @@
       // 琛ㄥ崟鏍¢獙
       rules: {
         jobName: [
-          { required: true, message: "", trigger: "blur" }
+          { required: true, validator: checkPhoneNum,  trigger: "blur" }
         ],
         invokeTarget: [
-          { required: true, message: "", trigger: "blur" }
+          { required: true, validator: checkPhoneNum,  trigger: "blur" }
         ],
         cronExpression: [
-          { required: true, message: "", trigger: "blur" }
+          { required: true, validator: checkPhoneNum,  trigger: "blur" }
         ]
       }
     };
diff --git a/src/views/paiban/beiwanglu/index.vue b/src/views/paiban/beiwanglu/index.vue
index 1a4301c..6a17c9c 100644
--- a/src/views/paiban/beiwanglu/index.vue
+++ b/src/views/paiban/beiwanglu/index.vue
@@ -151,6 +151,17 @@
         "sys_normal_disable"
     ],
     data() {
+        let checkPhoneNum = (rule, value, callback) => {
+         console.log( value)
+      let patter = new RegExp(/^1\s*[3456789]\s*(\d\s*){9}$/);
+      if (value == "" && value == undefined && !value) {
+        return callback('');
+      }  else if(value != undefined && value != ""){
+        return callback();
+      }else if (!patter.test(value)) {
+        return callback('');
+      }
+    };
         return {
             // 鏄剧ず鎼滅储鏉′欢
             showSearch: true,
@@ -173,7 +184,7 @@
             // 琛ㄥ崟鏍¢獙
             rules: {
                 title: [
-                    { required: true, message: "", trigger: "blur" },
+                    { required: true, validator: checkPhoneNum,  trigger: "blur" },
                 ],
             },
         }
diff --git a/src/views/paiban/gerenpaiban/index.vue b/src/views/paiban/gerenpaiban/index.vue
index 718dcde..35193d8 100644
--- a/src/views/paiban/gerenpaiban/index.vue
+++ b/src/views/paiban/gerenpaiban/index.vue
@@ -137,6 +137,17 @@
   name: "TimeConfig",
   dicts: ["yuyue_num_type"],
   data() {
+    let checkPhoneNum = (rule, value, callback) => {
+         console.log( value)
+      let patter = new RegExp(/^1\s*[3456789]\s*(\d\s*){9}$/);
+      if (value == "" && value == undefined && !value) {
+        return callback('');
+      }  else if(value != undefined && value != ""){
+        return callback();
+      }else if (!patter.test(value)) {
+        return callback('');
+      }
+    };
     return {
       yc: false,
       // pickerOptions: {
@@ -217,35 +228,35 @@
         startTime: [
           {
             required: true,
-            message: "",
+            validator: checkPhoneNum, 
             trigger: "blur",
           },
         ],
         endTime: [
           {
             required: true,
-            message: "",
+            validator: checkPhoneNum, 
             trigger: "blur",
           },
         ],
         allNum: [
           {
             required: true,
-            message: "",
+            validator: checkPhoneNum, 
             trigger: "blur",
           },
         ],
         allNum: [
           {
             required: true,
-            message: "",
+            validator: checkPhoneNum, 
             trigger: "blur",
           },
         ],
         numType: [
           {
             required: true,
-            message: "",
+            validator: checkPhoneNum, 
             trigger: "blur",
           },
         ],
diff --git a/src/views/paiban/pilpaiban/index.vue b/src/views/paiban/pilpaiban/index.vue
index 70df054..e69a917 100644
--- a/src/views/paiban/pilpaiban/index.vue
+++ b/src/views/paiban/pilpaiban/index.vue
@@ -97,6 +97,17 @@
     name: "Rules",
     dicts: ["tj_rule_sex"],
     data() {
+      let checkPhoneNum = (rule, value, callback) => {
+         console.log( value)
+      let patter = new RegExp(/^1\s*[3456789]\s*(\d\s*){9}$/);
+      if (value == "" && value == undefined && !value) {
+        return callback('');
+      }  else if(value != undefined && value != ""){
+        return callback();
+      }else if (!patter.test(value)) {
+        return callback('');
+      }
+    };
       return {
         dataList:[{
             newID:1,
@@ -134,7 +145,7 @@
         // 琛ㄥ崟鏍¢獙
         rules: {
           ageGt: [
-            { required: true, message: "", trigger: "change" },
+            { required: true, validator: checkPhoneNum,  trigger: "change" },
           ],
         },
         pickerOptions: {
diff --git a/src/views/reservation/resercopy/index.vue b/src/views/reservation/resercopy/index.vue
index 2f8e2da..8076b5a 100644
--- a/src/views/reservation/resercopy/index.vue
+++ b/src/views/reservation/resercopy/index.vue
@@ -185,6 +185,17 @@
 
   name: "Tijian",
   data() {
+    let checkPhoneNum = (rule, value, callback) => {
+         console.log( value)
+      let patter = new RegExp(/^1\s*[3456789]\s*(\d\s*){9}$/);
+      if (value == "" && value == undefined && !value) {
+        return callback('');
+      }  else if(value != undefined && value != ""){
+        return callback();
+      }else if (!patter.test(value)) {
+        return callback('');
+      }
+    };
     return {
       leftList: "",
       isdisabled: true,
@@ -295,95 +306,95 @@
     
       rules: {
         drugManufacturerId: [
-          { required: true, message: "", trigger: "change" },
+          { required: true, validator: checkPhoneNum,  trigger: "change" },
         ],
         reservationTime: [
-          { required: true, message: "", trigger: "blur" },
+          { required: true, validator: checkPhoneNum,  trigger: "blur" },
         ],
         dwDeptName: [
-          { required: true, message: "", trigger: "change" },
+          { required: true, validator: checkPhoneNum,  trigger: "change" },
         ],
         signingPic: [
-          { required: true, message: "", trigger: "blur" },
+          { required: true, validator: checkPhoneNum,  trigger: "blur" },
         ],
         contactPerson: [
-          { required: true, message: "", trigger: "blur" }
+          { required: true, validator: checkPhoneNum,  trigger: "blur" }
         ],
         contactPhone: [
-          { required: true, message: "", trigger: "blur" }
+          { required: true, validator: checkPhoneNum,  trigger: "blur" }
         ],
         taxNumber: [
-          { required: true, message: "", trigger: "blur" }
+          { required: true, validator: checkPhoneNum,  trigger: "blur" }
         ],
         legalPerson: [
-          { required: true, message: "", trigger: "blur" }
+          { required: true, validator: checkPhoneNum,  trigger: "blur" }
         ],
         registerAddress: [
-          { required: true, message: "", trigger: "blur" }
+          { required: true, validator: checkPhoneNum,  trigger: "blur" }
         ],
         bankAccount: [
-          { required: true, message: "", trigger: "blur" }
+          { required: true, validator: checkPhoneNum,  trigger: "blur" }
         ],
         countNum: [
-          { required: true, message: "", trigger: "blur" }
+          { required: true, validator: checkPhoneNum,  trigger: "blur" }
         ],
         principal: [
-          { required: true, message: "", trigger: "blur" }
+          { required: true, validator: checkPhoneNum,  trigger: "blur" }
         ],
         faxNumber: [
-          { required: true, message: "", trigger: "blur" }
+          { required: true, validator: checkPhoneNum,  trigger: "blur" }
         ],
         mailingAddress: [
-          { required: true, message: "", trigger: "blur" }
+          { required: true, validator: checkPhoneNum,  trigger: "blur" }
         ],
         email: [
-          { required: true, message: "", trigger: "blur" }
+          { required: true, validator: checkPhoneNum,  trigger: "blur" }
         ],
         pacName: [
-          { required: true, message: "", trigger: "change" },
+          { required: true, validator: checkPhoneNum,  trigger: "change" },
         ],
         payType: [
-          { required: true, message: "", trigger: "change" },
+          { required: true, validator: checkPhoneNum,  trigger: "change" },
         ],
         phoe: [
           {
             required: true,
             pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
-            message: "",
+            validator: checkPhoneNum, 
             trigger: "blur",
           },
         ],
 
         proPrice: [
-          { required: true, message: "", trigger: "blur" },
+          { required: true, validator: checkPhoneNum,  trigger: "blur" },
         ],
         createTime: [
-          { required: true, message: "", trigger: "blur" },
+          { required: true, validator: checkPhoneNum,  trigger: "blur" },
         ],
         cnName: [
-          { required: true, message: "", trigger: "blur" },
+          { required: true, validator: checkPhoneNum,  trigger: "blur" },
         ],
         businessLicenseNumber: [
-          { required: true, message: "", trigger: "blur" },
+          { required: true, validator: checkPhoneNum,  trigger: "blur" },
         ],
         createTime: [
-          { required: true, message: "", trigger: "blur" },
+          { required: true, validator: checkPhoneNum,  trigger: "blur" },
         ],
         updateTime: [
-          { required: true, message: "", trigger: "blur" },
+          { required: true, validator: checkPhoneNum,  trigger: "blur" },
         ],
         effective: [
           {
             required: true,
-            message: "",
+            validator: checkPhoneNum, 
             trigger: "change",
           },
         ],
         name: [
-          { required: true, message: "", trigger: "change" },
+          { required: true, validator: checkPhoneNum,  trigger: "change" },
         ],
         contactPhone: [
-          { required: true, message: "", trigger: "change" },
+          { required: true, validator: checkPhoneNum,  trigger: "change" },
         ],
       },
       ListObj: {},
diff --git a/src/views/reservation/reservation/index.vue b/src/views/reservation/reservation/index.vue
index 1184f41..385a1d5 100644
--- a/src/views/reservation/reservation/index.vue
+++ b/src/views/reservation/reservation/index.vue
@@ -377,6 +377,17 @@
 
   name: "Tijian",
   data() {
+    let checkPhoneNum = (rule, value, callback) => {
+         console.log( value)
+      let patter = new RegExp(/^1\s*[3456789]\s*(\d\s*){9}$/);
+      if (value == "" && value == undefined && !value) {
+        return callback('');
+      }  else if(value != undefined && value != ""){
+        return callback();
+      }else if (!patter.test(value)) {
+        return callback('');
+      }
+    };
     return {
       // options: [{
       //     value: '閫夐」1',
@@ -506,52 +517,52 @@
       // 琛ㄥ崟鏍¢獙
       rules: {
         drugManufacturerId: [
-          { required: true, message: "", trigger: "change" },
+          { required: true, validator: checkPhoneNum,  trigger: "change" },
         ],
         reservationTime: [
-          { required: true, message: "", trigger: "blur" },
+          { required: true, validator: checkPhoneNum,  trigger: "blur" },
         ],
         signingPic: [
-          { required: true, message: "", trigger: "blur" },
+          { required: true, validator: checkPhoneNum,  trigger: "blur" },
         ],
         contactPerson: [
-          { required: true, message: "", trigger: "blur" }
+          { required: true, validator: checkPhoneNum,  trigger: "blur" }
         ],
         contactPhone: [
-          { required: true, message: "", trigger: "blur" }
+          { required: true, validator: checkPhoneNum,  trigger: "blur" }
         ],
         taxNumber: [
-          { required: true, message: "", trigger: "blur" }
+          { required: true, validator: checkPhoneNum,  trigger: "blur" }
         ],
         legalPerson: [
-          { required: true, message: "", trigger: "blur" }
+          { required: true, validator: checkPhoneNum,  trigger: "blur" }
         ],
         registerAddress: [
-          { required: true, message: "", trigger: "blur" }
+          { required: true, validator: checkPhoneNum,  trigger: "blur" }
         ],
         bankAccount: [
-          { required: true, message: "", trigger: "blur" }
+          { required: true, validator: checkPhoneNum,  trigger: "blur" }
         ],
         countNum: [
-          { required: true, message: "", trigger: "blur" }
+          { required: true, validator: checkPhoneNum,  trigger: "blur" }
         ],
         principal: [
-          { required: true, message: "", trigger: "blur" }
+          { required: true, validator: checkPhoneNum,  trigger: "blur" }
         ],
         faxNumber: [
-          { required: true, message: "", trigger: "blur" }
+          { required: true, validator: checkPhoneNum,  trigger: "blur" }
         ],
         mailingAddress: [
-          { required: true, message: "", trigger: "blur" }
+          { required: true, validator: checkPhoneNum,  trigger: "blur" }
         ],
         email: [
-          { required: true, message: "", trigger: "blur" }
+          { required: true, validator: checkPhoneNum,  trigger: "blur" }
         ],
         pacName: [
-          { required: true, message: "", trigger: "change" },
+          { required: true, validator: checkPhoneNum,  trigger: "change" },
         ],
         payType: [
-          { required: true, message: "", trigger: "change" },
+          { required: true, validator: checkPhoneNum,  trigger: "change" },
         ],
         phoe: [
           {
diff --git a/src/views/reservation/reservations/index.vue b/src/views/reservation/reservations/index.vue
index c9c9d15..8da22f1 100644
--- a/src/views/reservation/reservations/index.vue
+++ b/src/views/reservation/reservations/index.vue
@@ -749,6 +749,17 @@
     "sys_user_sex", "dict_team", "tj_time_region", "dict_tjtype", "dict_job",
     "dict_user_cardtype", "dict_ageunit",],
   data() {
+    let checkPhoneNum = (rule, value, callback) => {
+         console.log( value)
+      let patter = new RegExp(/^1\s*[3456789]\s*(\d\s*){9}$/);
+      if (value == "" && value == undefined && !value) {
+        return callback('');
+      }  else if(value != undefined && value != ""){
+        return callback();
+      }else if (!patter.test(value)) {
+        return callback('');
+      }
+    };
     return {
       isfalse: false,
       tijiao1: true,
@@ -876,24 +887,24 @@
       fmobj: {},
       // 琛ㄥ崟鏍¢獙
       rules: {
-        cusName: [{ required: true, message: "", trigger: "blur" }],
+        cusName: [{ required: true, validator: checkPhoneNum,  trigger: "blur" }],
         cusSex: [
-          { required: true, message: "", trigger: "change" },
+          { required: true, validator: checkPhoneNum,  trigger: "change" },
         ],
         cusBrithday: [
-          { required: true, message: "", trigger: "blur" },
+          { required: true, validator: checkPhoneNum,  trigger: "blur" },
         ],
         // cusAddr: [
         //   { required: true, message: "鐜板眳浣忓湴鍧�涓嶈兘涓虹┖", trigger: "blur" },
         // ],
         cusPhone: [
-          { required: true, message: "", trigger: "blur" },
+          { required: true, validator: checkPhoneNum,  trigger: "blur" },
         ],
         reservationTime: [
-          { required: true, message: "", trigger: "change" },
+          { required: true, validator: checkPhoneNum,  trigger: "change" },
         ],
         timeRegion: [
-          { required: true, message: "", trigger: "blur" },
+          { required: true, validator: checkPhoneNum,  trigger: "blur" },
         ],
       },
       options: [
@@ -947,21 +958,21 @@
         name: [
           {
             required: true,
-            message: "",
+            validator: checkPhoneNum, 
             trigger: "blur",
           },
         ],
         idCard: [
           {
             required: true,
-            message: "",
+            validator: checkPhoneNum, 
             trigger: "blur",
           },
         ],
         phoe: [
           {
             required: true,
-            message: "",
+            validator: checkPhoneNum, 
             trigger: "blur",
           },
         ],
diff --git a/src/views/standard/standard/index.vue b/src/views/standard/standard/index.vue
index 7e401d4..0534f8c 100644
--- a/src/views/standard/standard/index.vue
+++ b/src/views/standard/standard/index.vue
@@ -249,6 +249,17 @@
   name: "Standard",
   dicts: ["sys_user_sex", "dict_personnel_type"],
   data() {
+    let checkPhoneNum = (rule, value, callback) => {
+         console.log( value)
+      let patter = new RegExp(/^1\s*[3456789]\s*(\d\s*){9}$/);
+      if (value == "" && value == undefined && !value) {
+        return callback('');
+      }  else if(value != undefined && value != ""){
+        return callback();
+      }else if (!patter.test(value)) {
+        return callback('');
+      }
+    };
     return {
       // 閬僵灞�
       loading: true,
@@ -281,10 +292,10 @@
       // 琛ㄥ崟鏍¢獙
       rules: {
         proId: [
-          { required: true, message: "", trigger: "blur" },
+          { required: true, validator: checkPhoneNum,  trigger: "blur" },
         ],
         createTime: [
-          { required: true, message: "", trigger: "blur" },
+          { required: true, validator: checkPhoneNum,  trigger: "blur" },
         ],
       },
     };
diff --git a/src/views/standard/tijianxinxi/index.vue b/src/views/standard/tijianxinxi/index.vue
index ee97f58..c18bba7 100644
--- a/src/views/standard/tijianxinxi/index.vue
+++ b/src/views/standard/tijianxinxi/index.vue
@@ -56,6 +56,17 @@
     dicts: ["sys_normal_disable", "dict_personnel_type", "sys_user_sex", "tj_result_type", "dis_sampling_tab", "sys_dict_specimen", "sys_dict_position", "tj_result_type","sys_yes_no"],
     components: { Treeselect, IconSelect },
     data() {
+      let checkPhoneNum = (rule, value, callback) => {
+         console.log( value)
+      let patter = new RegExp(/^1\s*[3456789]\s*(\d\s*){9}$/);
+      if (value == "" && value == undefined && !value) {
+        return callback('');
+      }  else if(value != undefined && value != ""){
+        return callback();
+      }else if (!patter.test(value)) {
+        return callback('');
+      }
+    };
       return {
         // 閮ㄩ棬鏍戦�夐」
         deptOptions: undefined,
@@ -138,22 +149,22 @@
         // 琛ㄥ崟鏍¢獙
         rules: {
           createTime: [
-            { required: true, message: "", trigger: "blur" },
+            { required: true, validator: checkPhoneNum,  trigger: "blur" },
           ],
           updateTime: [
-            { required: true, message: "", trigger: "blur" },
+            { required: true, validator: checkPhoneNum,  trigger: "blur" },
           ],
           deleted: [
-            { required: true, message: "", trigger: "blur" },
+            { required: true, validator: checkPhoneNum,  trigger: "blur" },
           ],
           proName: [
-            { required: true, message: "", trigger: "blur" },
+            { required: true, validator: checkPhoneNum,  trigger: "blur" },
           ],
           proPrice: [
-            { required: true, message: "", trigger: "blur" },
+            { required: true, validator: checkPhoneNum,  trigger: "blur" },
           ],
           deptName: [
-            { required: true, message: "", trigger: "blur" },
+            { required: true, validator: checkPhoneNum,  trigger: "blur" },
           ],
           // proStandard: [
           //   { required: true, message: "椤圭洰鏍囧噯鍊间笉鑳戒负绌�", trigger: "blur" },
diff --git a/src/views/system/comp/index.vue b/src/views/system/comp/index.vue
index 8d48cd7..30afc43 100644
--- a/src/views/system/comp/index.vue
+++ b/src/views/system/comp/index.vue
@@ -450,6 +450,17 @@
   name: "Comp",
   dicts: ['dict_comp_type', 'dict_data_status', "sys_user_sex", "reservation_pay_type",],
   data() {
+    let checkPhoneNum = (rule, value, callback) => {
+         console.log( value)
+      let patter = new RegExp(/^1\s*[3456789]\s*(\d\s*){9}$/);
+      if (value == "" && value == undefined && !value) {
+        return callback('');
+      }  else if(value != undefined && value != ""){
+        return callback();
+      }else if (!patter.test(value)) {
+        return callback('');
+      }
+    };
     return {
       // 閬僵灞�
       loading: true,
@@ -509,71 +520,73 @@
         sex: "",
 
       },
+
+
       // 琛ㄥ崟鏍¢獙
       rules: {
         cnName: [
-          { required: true, message: "", trigger: "blur" }
+          { required: true, validator: checkPhoneNum,  trigger: "blur" }
         ],
         dwDeptName: [
-          { required: true, message: "", trigger: "blur" }
+          { required: true, validator: checkPhoneNum,  trigger: "blur" }
         ],
         groupingName: [
-          { required: true, message: "", trigger: "blur" }
+          { required: true, validator: checkPhoneNum,  trigger: "blur" }
         ],
         gtAge: [
-          { required: true, message: "", trigger: "blur" }
+          { required: true, validator: checkPhoneNum,  trigger: "blur" }
         ],
         limits: [
-          { required: true, message: "", trigger: "blur" }
+          { required: true, validator: checkPhoneNum,  trigger: "blur" }
         ],
         ltAge: [
-          { required: true, message: "", trigger: "blur" }
+          { required: true, validator: checkPhoneNum,  trigger: "blur" }
         ],
         pacName: [
-          { required: true, message: "", trigger: "blur" }
+          { required: true, validator: checkPhoneNum,  trigger: "blur" }
         ],
         payType: [
-          { required: true, message: "", trigger: "blur" }
+          { required: true, validator: checkPhoneNum,  trigger: "blur" }
         ],
         sex: [
-          { required: true, message: "", trigger: "blur" }
+          { required: true, validator: checkPhoneNum,  trigger: "blur" }
         ],
 
         deleted: [
-          { required: true, message: "", trigger: "blur" }
+          { required: true, validator: checkPhoneNum,  trigger: "blur" }
         ],
         contactPerson: [
-          { required: true, message: "", trigger: "blur" }
+          { required: true, validator: checkPhoneNum,  trigger: "blur" }
         ],
         contactPhone: [
-          { required: true, message: "", trigger: "blur" }
+          { required: true, validator: checkPhoneNum,  trigger: "blur" }
         ],
         taxNumber: [
-          { required: true, message: "", trigger: "blur" }
+          { required: true, validator: checkPhoneNum,  trigger: "blur" }
         ],
         legalPerson: [
-          { required: true, message: "", trigger: "blur" }
+          { required: true, validator: checkPhoneNum,  trigger: "blur" }
         ],
         registerAddress: [
-          { required: true, message: "", trigger: "blur" }
+          { required: true, validator: checkPhoneNum,  trigger: "blur" }
         ],
         bankAccount: [
-          { required: true, message: "", trigger: "blur" }
+          { required: true, validator: checkPhoneNum,  trigger: "blur" }
         ],
         countNum: [
-          { required: true, message: "", trigger: "blur" }
+          { required: true, validator: checkPhoneNum,  trigger: "blur" }
         ],
         principal: [
-          { required: true, message: "", trigger: "blur" }
+          { required: true, validator: checkPhoneNum,  trigger: "blur" }
         ],
         faxNumber: [
-          { required: true, message: "", trigger: "blur" }
+          { required: true, validator: checkPhoneNum,  trigger: "blur" }
         ],
         mailingAddress: [
-          { required: true, message: "", trigger: "blur" }
+          { required: true, validator: checkPhoneNum,  trigger: "blur" }
         ],
         email: [
-          { required: true, message: "", trigger: "blur" }
+          { required: true, validator: checkPhoneNum,  trigger: "blur" }
         ],
       }
     };
@@ -738,7 +751,7 @@
     changeName() {
       this.openss = true;
       this.title = "鍒嗙粍椤圭洰缁存姢";
-      this.OnenewpacName =[]
+      this.OnenewpacName = []
       this.queryParams.price = 0
       if (this.forms.sex) {
         deptTreeSelect(this.forms.sex).then((response) => {
diff --git a/src/views/system/config/index.vue b/src/views/system/config/index.vue
index c283d68..ca13332 100644
--- a/src/views/system/config/index.vue
+++ b/src/views/system/config/index.vue
@@ -176,6 +176,17 @@
   name: "Config",
   dicts: ['sys_yes_no'],
   data() {
+    let checkPhoneNum = (rule, value, callback) => {
+         console.log( value)
+      let patter = new RegExp(/^1\s*[3456789]\s*(\d\s*){9}$/);
+      if (value == "" && value == undefined && !value) {
+        return callback('');
+      }  else if(value != undefined && value != ""){
+        return callback();
+      }else if (!patter.test(value)) {
+        return callback('');
+      }
+    };
     return {
       // 閬僵灞�
       loading: true,
@@ -210,13 +221,13 @@
       // 琛ㄥ崟鏍¢獙
       rules: {
         configName: [
-          { required: true, message: "", trigger: "blur" }
+          { required: true, validator: checkPhoneNum,  trigger: "blur" }
         ],
         configKey: [
-          { required: true, message: "", trigger: "blur" }
+          { required: true, validator: checkPhoneNum,  trigger: "blur" }
         ],
         configValue: [
-          { required: true, message: "", trigger: "blur" }
+          { required: true, validator: checkPhoneNum,  trigger: "blur" }
         ]
       }
     };
diff --git a/src/views/system/dept/index.vue b/src/views/system/dept/index.vue
index 4df8880..27ec998 100644
--- a/src/views/system/dept/index.vue
+++ b/src/views/system/dept/index.vue
@@ -217,6 +217,17 @@
   dicts: ["sys_normal_disable", "dict_user_orgtype", "dict_dept_type"],
   components: { Treeselect },
   data() {
+    let checkPhoneNum = (rule, value, callback) => {
+         console.log( value)
+      let patter = new RegExp(/^1\s*[3456789]\s*(\d\s*){9}$/);
+      if (value == "" && value == undefined && !value) {
+        return callback('');
+      }  else if(value != undefined && value != ""){
+        return callback();
+      }else if (!patter.test(value)) {
+        return callback('');
+      }
+    };
     return {
       // 閮ㄩ棬鍚嶇О
       deptName: undefined,
@@ -253,19 +264,19 @@
       // 琛ㄥ崟鏍¢獙
       rules: {
         parentId: [
-          { required: true, message: "", trigger: "blur" },
+          { required: true, validator: checkPhoneNum,  trigger: "blur" },
         ],
         deptName: [
-          { required: true, message: "", trigger: "blur" },
+          { required: true, validator: checkPhoneNum,  trigger: "blur" },
         ],
         orderNum: [
-          { required: true, message: "", trigger: "blur" },
+          { required: true, validator: checkPhoneNum,  trigger: "blur" },
         ],
         departmentCode: [
-          { required: true, message: "", trigger: "blur" },
+          { required: true, validator: checkPhoneNum,  trigger: "blur" },
         ],
         hospName: [
-          { required: true, message: "", trigger: "blur" },
+          { required: true, validator: checkPhoneNum,  trigger: "blur" },
         ],
         // email: [
         //   {
diff --git a/src/views/system/dict/data.vue b/src/views/system/dict/data.vue
index 38187ea..52e18b0 100644
--- a/src/views/system/dict/data.vue
+++ b/src/views/system/dict/data.vue
@@ -187,6 +187,17 @@
   name: "Data",
   dicts: ['sys_normal_disable'],
   data() {
+    let checkPhoneNum = (rule, value, callback) => {
+         console.log( value)
+      let patter = new RegExp(/^1\s*[3456789]\s*(\d\s*){9}$/);
+      if (value == "" && value == undefined && !value) {
+        return callback('');
+      }  else if(value != undefined && value != ""){
+        return callback();
+      }else if (!patter.test(value)) {
+        return callback('');
+      }
+    };
     return {
       // 閬僵灞�
       loading: true,
@@ -250,13 +261,13 @@
       // 琛ㄥ崟鏍¢獙
       rules: {
         dictLabel: [
-          { required: true, message: "", trigger: "blur" }
+          { required: true, validator: checkPhoneNum,  trigger: "blur" }
         ],
         dictValue: [
-          { required: true, message: "", trigger: "blur" }
+          { required: true, validator: checkPhoneNum,  trigger: "blur" }
         ],
         dictSort: [
-          { required: true, message: "", trigger: "blur" }
+          { required: true, validator: checkPhoneNum,  trigger: "blur" }
         ]
       }
     };
diff --git a/src/views/system/dict/index.vue b/src/views/system/dict/index.vue
index ed707f3..2af0590 100644
--- a/src/views/system/dict/index.vue
+++ b/src/views/system/dict/index.vue
@@ -183,6 +183,17 @@
   name: "Dict",
   dicts: ['sys_normal_disable'],
   data() {
+    let checkPhoneNum = (rule, value, callback) => {
+         console.log( value)
+      let patter = new RegExp(/^1\s*[3456789]\s*(\d\s*){9}$/);
+      if (value == "" && value == undefined && !value) {
+        return callback('');
+      }  else if(value != undefined && value != ""){
+        return callback();
+      }else if (!patter.test(value)) {
+        return callback('');
+      }
+    };
     return {
       // 閬僵灞�
       loading: true,
@@ -217,10 +228,10 @@
       // 琛ㄥ崟鏍¢獙
       rules: {
         dictName: [
-          { required: true, message: "", trigger: "blur" }
+          { required: true, validator: checkPhoneNum,  trigger: "blur" }
         ],
         dictType: [
-          { required: true, message: "", trigger: "blur" }
+          { required: true, validator: checkPhoneNum,  trigger: "blur" }
         ]
       }
     };
diff --git a/src/views/system/emer/index.vue b/src/views/system/emer/index.vue
index fbe8c63..dafeba1 100644
--- a/src/views/system/emer/index.vue
+++ b/src/views/system/emer/index.vue
@@ -241,6 +241,17 @@
 export default {
   name: "Emer",
   data() {
+    let checkPhoneNum = (rule, value, callback) => {
+         console.log( value)
+      let patter = new RegExp(/^1\s*[3456789]\s*(\d\s*){9}$/);
+      if (value == "" && value == undefined && !value) {
+        return callback('');
+      }  else if(value != undefined && value != ""){
+        return callback();
+      }else if (!patter.test(value)) {
+        return callback('');
+      }
+    };
     return {
       // 閬僵灞�
       loading: true,
@@ -278,14 +289,14 @@
         qybz: [
           {
             required: true,
-            message: "",
+            validator: checkPhoneNum, 
             trigger: "blur",
           },
         ],
         deleted: [
           {
             required: true,
-            message: "",
+            validator: checkPhoneNum, 
             trigger: "blur",
           },
         ],
diff --git a/src/views/system/examcharge/index.vue b/src/views/system/examcharge/index.vue
index eca8ed4..69f8d9d 100644
--- a/src/views/system/examcharge/index.vue
+++ b/src/views/system/examcharge/index.vue
@@ -162,10 +162,10 @@
                     :row-style="changRed" style="margin-left: 30px;">
                     <el-table-column type="selection" width="55" align="center" />
                     <el-table-column label="濮撳悕" align="center" prop="customer.cusName" width="90px" />
-                    <el-table-column label="鎵嬫満鍙�" align="center" prop="customer.cusPhone" width="110px"
-                       ></el-table-column>
+                    <el-table-column label="鎵嬫満鍙�" align="center" prop="customer.cusPhone" width="110px"></el-table-column>
                     <el-table-column label="璁㈠崟娴佹按鍙�" align="center" prop="waterId" width="194px" />
-                    <el-table-column label="浣撴椤圭洰" align="center" prop="tjProName" width="120px"  :show-overflow-tooltip="true"/>
+                    <el-table-column label="浣撴椤圭洰" align="center" prop="tjProName" width="120px"
+                        :show-overflow-tooltip="true" />
                     <el-table-column label="搴旀敹閲戦" align="center" prop="copeWith" width="90px" />
                     <el-table-column label="瀹炴敹閲戦" align="center" prop="paidIn" width="80px" />
                     <el-table-column label="浠樻绫诲瀷" align="center" prop="payType" width="80px">
@@ -252,6 +252,17 @@
     name: "Examcharge",
 
     data() {
+        let checkPhoneNum = (rule, value, callback) => {
+         console.log( value)
+      let patter = new RegExp(/^1\s*[3456789]\s*(\d\s*){9}$/);
+      if (value == "" && value == undefined && !value) {
+        return callback('');
+      }  else if(value != undefined && value != ""){
+        return callback();
+      }else if (!patter.test(value)) {
+        return callback('');
+      }
+    };
         return {
             tjNumbers: "",
             // 閬僵灞�
@@ -318,12 +329,12 @@
             },
             // 琛ㄥ崟鏍¢獙
             rules: {
-                name: [{ required: true, message: "", trigger: "change" }],
+                name: [{ required: true, validator: checkPhoneNum, trigger: "change" }],
                 tjPro: [
-                    { required: true, message: "", trigger: "change" },
+                    { required: true, validator: checkPhoneNum, trigger: "change" },
                 ],
                 type: [
-                    { required: true, message: "", trigger: "blur" },
+                    { required: true, validator: checkPhoneNum, trigger: "blur" },
                 ],
             },
         };
diff --git a/src/views/system/hosp/index.vue b/src/views/system/hosp/index.vue
index f2ae498..1be68ca 100644
--- a/src/views/system/hosp/index.vue
+++ b/src/views/system/hosp/index.vue
@@ -742,6 +742,17 @@
     "dict_org_ygt",
   ],
   data() {
+    let checkPhoneNum = (rule, value, callback) => {
+         console.log( value)
+      let patter = new RegExp(/^1\s*[3456789]\s*(\d\s*){9}$/);
+      if (value == "" && value == undefined && !value) {
+        return callback('');
+      }  else if(value != undefined && value != ""){
+        return callback();
+      }else if (!patter.test(value)) {
+        return callback('');
+      }
+    };
     return {
       // 閬僵灞�
       loading: true,
@@ -784,64 +795,64 @@
       // 琛ㄥ崟鏍¢獙
       rules: {
         orgPid: [
-          { required: true, message: "", trigger: "blur" },
+          { required: true, validator: checkPhoneNum,  trigger: "blur" },
         ],
         orgType: [
-          { required: true, message: "", trigger: "change" },
+          { required: true, validator: checkPhoneNum,  trigger: "change" },
         ],
         uscc: [
-          { required: true, message: "", trigger: "blur" },
+          { required: true, validator: checkPhoneNum,  trigger: "blur" },
         ],
         // level: [
         //   { required: true, message: "鍖婚櫌绛夌骇涓嶈兘涓虹┖", trigger: "change" }
         // ],
         mita: [
-          { required: true, message: "", trigger: "change" },
+          { required: true, validator: checkPhoneNum,  trigger: "change" },
         ],
         // hospType: [
         //   { required: true, message: "鍖荤枟鍗敓鏈烘瀯鍒嗙被涓嶈兘涓虹┖", trigger: "change" }
         // ],
         createBy: [
-          { required: true, message: "", trigger: "blur" },
+          { required: true, validator: checkPhoneNum,  trigger: "blur" },
         ],
         createTime: [
-          { required: true, message: "", trigger: "blur" },
+          { required: true, validator: checkPhoneNum,  trigger: "blur" },
         ],
         effective: [
-          { required: true, message: "", trigger: "blur" },
+          { required: true, validator: checkPhoneNum,  trigger: "blur" },
         ],
         jgMultiArea: [
-          { required: true, message: "", trigger: "change" },
+          { required: true, validator: checkPhoneNum,  trigger: "change" },
         ],
         orgCode: [
-          { required: true, message: "", trigger: "change" },
+          { required: true, validator: checkPhoneNum,  trigger: "change" },
         ],
         orgCnName: [
-          { required: true, message: "", trigger: "change" },
+          { required: true, validator: checkPhoneNum,  trigger: "change" },
         ],
         principal: [
-          { required: true, message: "", trigger: "change" },
+          { required: true, validator: checkPhoneNum,  trigger: "change" },
         ],
         phone: [
-          { required: true, message: "", trigger: "change" },
+          { required: true, validator: checkPhoneNum,  trigger: "change" },
         ],
         buildDate: [
-          { required: true, message: "", trigger: "change" },
+          { required: true, validator: checkPhoneNum,  trigger: "change" },
         ],
         legalPerson: [
-          { required: true, message: "", trigger: "change" },
+          { required: true, validator: checkPhoneNum,  trigger: "change" },
         ],
         issueAuth: [
-          { required: true, message: "", trigger: "change" },
+          { required: true, validator: checkPhoneNum,  trigger: "change" },
         ],
         issueDate: [
-          { required: true, message: "", trigger: "change" },
+          { required: true, validator: checkPhoneNum,  trigger: "change" },
         ],
         address: [
-          { required: true, message: "", trigger: "change" },
+          { required: true, validator: checkPhoneNum,  trigger: "change" },
         ],
         level: [
-          { required: true, message: "", trigger: "change" },
+          { required: true, validator: checkPhoneNum,  trigger: "change" },
         ],
         // jgDeptArea: [
         //   { required: true, message: "鐥呭尯绠$悊涓嶈兘涓虹┖", trigger: "change" }
diff --git a/src/views/system/icd/index.vue b/src/views/system/icd/index.vue
index 6fd36cf..b356d4d 100644
--- a/src/views/system/icd/index.vue
+++ b/src/views/system/icd/index.vue
@@ -267,6 +267,17 @@
 export default {
   name: "Icd",
   data() {
+    let checkPhoneNum = (rule, value, callback) => {
+         console.log( value)
+      let patter = new RegExp(/^1\s*[3456789]\s*(\d\s*){9}$/);
+      if (value == "" && value == undefined && !value) {
+        return callback('');
+      }  else if(value != undefined && value != ""){
+        return callback();
+      }else if (!patter.test(value)) {
+        return callback('');
+      }
+    };
     return {
       // 閬僵灞�
       loading: true,
@@ -308,7 +319,7 @@
         deleted: [
           {
             required: true,
-            message: "",
+            validator: checkPhoneNum, 
             trigger: "blur",
           },
         ],
diff --git a/src/views/system/indrefund/index.vue b/src/views/system/indrefund/index.vue
index 02d1901..1e79b11 100644
--- a/src/views/system/indrefund/index.vue
+++ b/src/views/system/indrefund/index.vue
@@ -107,6 +107,17 @@
     name: "Examcharge",
 
     data() {
+        let checkPhoneNum = (rule, value, callback) => {
+         console.log( value)
+      let patter = new RegExp(/^1\s*[3456789]\s*(\d\s*){9}$/);
+      if (value == "" && value == undefined && !value) {
+        return callback('');
+      }  else if(value != undefined && value != ""){
+        return callback();
+      }else if (!patter.test(value)) {
+        return callback('');
+      }
+    };
         return {
             tjNumbers: "",
             // 閬僵灞�
@@ -174,12 +185,12 @@
             },
             // 琛ㄥ崟鏍¢獙
             rules: {
-                name: [{ required: true, message: "", trigger: "change" }],
+                name: [{ required: true, validator: checkPhoneNum,  trigger: "change" }],
                 tjPro: [
-                    { required: true, message: "", trigger: "change" },
+                    { required: true, validator: checkPhoneNum,  trigger: "change" },
                 ],
                 type: [
-                    { required: true, message: "", trigger: "blur" },
+                    { required: true, validator: checkPhoneNum,  trigger: "blur" },
                 ],
             },
         };
diff --git a/src/views/system/ks/index.vue b/src/views/system/ks/index.vue
index 11d13b8..7b07f2d 100644
--- a/src/views/system/ks/index.vue
+++ b/src/views/system/ks/index.vue
@@ -246,6 +246,17 @@
 export default {
   name: "Ks",
   data() {
+    let checkPhoneNum = (rule, value, callback) => {
+         console.log( value)
+      let patter = new RegExp(/^1\s*[3456789]\s*(\d\s*){9}$/);
+      if (value == "" && value == undefined && !value) {
+        return callback('');
+      }  else if(value != undefined && value != ""){
+        return callback();
+      }else if (!patter.test(value)) {
+        return callback('');
+      }
+    };
     return {
       // 閬僵灞�
       loading: true,
@@ -287,10 +298,10 @@
       // 琛ㄥ崟鏍¢獙
       rules: {
         ksbm: [
-          { required: true, message: "", trigger: "blur" }
+          { required: true, validator: checkPhoneNum,  trigger: "blur" }
         ],
         ksmc: [
-          { required: true, message: "", trigger: "blur" }
+          { required: true, validator: checkPhoneNum,  trigger: "blur" }
         ],
         // deleted: [
         //   { required: true, message: "0鏈垹闄�1鍒犻櫎涓嶈兘涓虹┖", trigger: "blur" }
diff --git a/src/views/system/menu/index.vue b/src/views/system/menu/index.vue
index 9440dee..8429d5f 100644
--- a/src/views/system/menu/index.vue
+++ b/src/views/system/menu/index.vue
@@ -281,6 +281,17 @@
   dicts: ['sys_show_hide', 'sys_normal_disable'],
   components: { Treeselect, IconSelect },
   data() {
+    let checkPhoneNum = (rule, value, callback) => {
+         console.log( value)
+      let patter = new RegExp(/^1\s*[3456789]\s*(\d\s*){9}$/);
+      if (value == "" && value == undefined && !value) {
+        return callback('');
+      }  else if(value != undefined && value != ""){
+        return callback();
+      }else if (!patter.test(value)) {
+        return callback('');
+      }
+    };
     return {
       // 閬僵灞�
       loading: true,
@@ -308,13 +319,13 @@
       // 琛ㄥ崟鏍¢獙
       rules: {
         menuName: [
-          { required: true, message: "", trigger: "blur" }
+          { required: true, validator: checkPhoneNum,  trigger: "blur" }
         ],
         orderNum: [
-          { required: true, message: "", trigger: "blur" }
+          { required: true, validator: checkPhoneNum,  trigger: "blur" }
         ],
         path: [
-          { required: true, message: "", trigger: "blur" }
+          { required: true, validator: checkPhoneNum,  trigger: "blur" }
         ]
       }
     };
diff --git a/src/views/system/notice/index.vue b/src/views/system/notice/index.vue
index 646b2e7..71d6425 100644
--- a/src/views/system/notice/index.vue
+++ b/src/views/system/notice/index.vue
@@ -197,6 +197,17 @@
   name: "Notice",
   dicts: ['sys_notice_status', 'sys_notice_type'],
   data() {
+    let checkPhoneNum = (rule, value, callback) => {
+         console.log( value)
+      let patter = new RegExp(/^1\s*[3456789]\s*(\d\s*){9}$/);
+      if (value == "" && value == undefined && !value) {
+        return callback('');
+      }  else if(value != undefined && value != ""){
+        return callback();
+      }else if (!patter.test(value)) {
+        return callback('');
+      }
+    };
     return {
       // 閬僵灞�
       loading: true,
@@ -231,10 +242,10 @@
       // 琛ㄥ崟鏍¢獙
       rules: {
         noticeTitle: [
-          { required: true, message: "", trigger: "blur" }
+          { required: true, validator: checkPhoneNum,  trigger: "blur" }
         ],
         noticeType: [
-          { required: true, message: "", trigger: "change" }
+          { required: true, validator: checkPhoneNum,  trigger: "change" }
         ]
       }
     };
diff --git a/src/views/system/package/index.vue b/src/views/system/package/index.vue
index 6e8c394..492035c 100644
--- a/src/views/system/package/index.vue
+++ b/src/views/system/package/index.vue
@@ -580,6 +580,17 @@
   name: "Package",
   dicts: ["sys_normal_disable", "sys_yes_no"],
   data() {
+    let checkPhoneNum = (rule, value, callback) => {
+         console.log( value)
+      let patter = new RegExp(/^1\s*[3456789]\s*(\d\s*){9}$/);
+      if (value == "" && value == undefined && !value) {
+        return callback('');
+      }  else if(value != undefined && value != ""){
+        return callback();
+      }else if (!patter.test(value)) {
+        return callback('');
+      }
+    };
     return {
       categoryList:[],
       keys:"",
@@ -629,31 +640,31 @@
       // 琛ㄥ崟鏍¢獙
       rules: {
         deleted: [
-          { required: true, message: "", trigger: "blur" },
+          { required: true, validator: checkPhoneNum,  trigger: "blur" },
         ],
         pacName: [
-          { required: true, message: "", trigger: "blur" },
+          { required: true, validator: checkPhoneNum,  trigger: "blur" },
         ],
         pacStatus: [
-          { required: true, message: "", trigger: "change" },
+          { required: true, validator: checkPhoneNum,  trigger: "change" },
         ],
         categoryId: [
-          { required: true, message: "", trigger: "change" },
+          { required: true, validator: checkPhoneNum,  trigger: "change" },
         ],
         keywords: [
-          { required: true, message: "", trigger: "change" },
+          { required: true, validator: checkPhoneNum,  trigger: "change" },
         ],
         isOnSale: [
-          { required: true, message: "", trigger: "change" },
+          { required: true, validator: checkPhoneNum,  trigger: "change" },
         ],
         sort: [
-          { required: true, message: "", trigger: "blur" },
+          { required: true, validator: checkPhoneNum,  trigger: "blur" },
         ],
         retailPrice: [
-          { required: true, message: "", trigger: "blur" },
+          { required: true, validator: checkPhoneNum,  trigger: "blur" },
         ],
         counterPrice: [
-          { required: true, message: "", trigger: "blur" },
+          { required: true, validator: checkPhoneNum,  trigger: "blur" },
         ],
       },
     };
diff --git a/src/views/system/pay/index.vue b/src/views/system/pay/index.vue
index 12f2bdc..753c1fa 100644
--- a/src/views/system/pay/index.vue
+++ b/src/views/system/pay/index.vue
@@ -131,6 +131,17 @@
 export default {
     name: "Pay",
     data() {
+        let checkPhoneNum = (rule, value, callback) => {
+         console.log( value)
+      let patter = new RegExp(/^1\s*[3456789]\s*(\d\s*){9}$/);
+      if (value == "" && value == undefined && !value) {
+        return callback('');
+      }  else if(value != undefined && value != ""){
+        return callback();
+      }else if (!patter.test(value)) {
+        return callback('');
+      }
+    };
         return {
             // 閬僵灞�
             loading: true,
@@ -171,7 +182,7 @@
             rules: {
                 isCheckout: [
                     {
-                        required: true, message: "", trigger: "blur"
+                        required: true, validator: checkPhoneNum,  trigger: "blur"
                     }
                 ]
             }
diff --git a/src/views/system/post/index.vue b/src/views/system/post/index.vue
index 81b12b6..e852d6e 100644
--- a/src/views/system/post/index.vue
+++ b/src/views/system/post/index.vue
@@ -178,6 +178,16 @@
   name: "Post",
   dicts: ['sys_normal_disable'],
   data() {
+    let checkPhoneNum = (rule, value, callback) => {
+      let patter = new RegExp(/^1\s*[3456789]\s*(\d\s*){9}$/);
+      if (value === "") {
+        return callback('');
+      } else if (!patter.test(value)) {
+        return callback('');
+      } else {
+        callback();
+      }
+    };
     return {
       // 閬僵灞�
       loading: true,
@@ -212,13 +222,13 @@
       // 琛ㄥ崟鏍¢獙
       rules: {
         postName: [
-          { required: true, message: "", trigger: "blur" }
+          { required: true, validator: checkPhoneNum,  trigger: "blur" }
         ],
         postCode: [
-          { required: true, message: "", trigger: "blur" }
+          { required: true, validator: checkPhoneNum,  trigger: "blur" }
         ],
         postSort: [
-          { required: true, message: "", trigger: "blur" }
+          { required: true, validator: checkPhoneNum,  trigger: "blur" }
         ]
       }
     };
diff --git a/src/views/system/role/index.vue b/src/views/system/role/index.vue
index 3ee4971..f43160e 100644
--- a/src/views/system/role/index.vue
+++ b/src/views/system/role/index.vue
@@ -394,6 +394,17 @@
   name: "Role",
   dicts: ["sys_normal_disable"],
   data() {
+    let checkPhoneNum = (rule, value, callback) => {
+         console.log( value)
+      let patter = new RegExp(/^1\s*[3456789]\s*(\d\s*){9}$/);
+      if (value == "" && value == undefined && !value) {
+        return callback('');
+      }  else if(value != undefined && value != ""){
+        return callback();
+      }else if (!patter.test(value)) {
+        return callback('');
+      }
+    };
     return {
       sun: false,
       // 閬僵灞�
@@ -466,13 +477,13 @@
       // 琛ㄥ崟鏍¢獙
       rules: {
         roleName: [
-          { required: true, message: "", trigger: "blur" },
+          { required: true, validator: checkPhoneNum,  trigger: "blur" },
         ],
         roleKey: [
-          { required: true, message: "", trigger: "blur" },
+          { required: true, validator: checkPhoneNum,  trigger: "blur" },
         ],
         roleSort: [
-          { required: true, message: "", trigger: "blur" },
+          { required: true, validator: checkPhoneNum,  trigger: "blur" },
         ],
       },
     };
diff --git a/src/views/system/sfxm/index.vue b/src/views/system/sfxm/index.vue
index 5991d6a..4e8a19c 100644
--- a/src/views/system/sfxm/index.vue
+++ b/src/views/system/sfxm/index.vue
@@ -455,6 +455,17 @@
   name: "Sfxm",
   dicts: ['dict_grade'],
   data() {
+    let checkPhoneNum = (rule, value, callback) => {
+         console.log( value)
+      let patter = new RegExp(/^1\s*[3456789]\s*(\d\s*){9}$/);
+      if (value == "" && value == undefined && !value) {
+        return callback('');
+      }  else if(value != undefined && value != ""){
+        return callback();
+      }else if (!patter.test(value)) {
+        return callback('');
+      }
+    };
     return {
       options: [{
         value: '0',
@@ -540,7 +551,7 @@
         deleted: [
           {
             required: true,
-            message: "",
+            validator: checkPhoneNum, 
             trigger: "blur",
           },
         ],
diff --git a/src/views/system/ssdm/index.vue b/src/views/system/ssdm/index.vue
index 3d966aa..79adf3d 100644
--- a/src/views/system/ssdm/index.vue
+++ b/src/views/system/ssdm/index.vue
@@ -267,6 +267,17 @@
 export default {
   name: "Ssdm",
   data() {
+    let checkPhoneNum = (rule, value, callback) => {
+         console.log( value)
+      let patter = new RegExp(/^1\s*[3456789]\s*(\d\s*){9}$/);
+      if (value == "" && value == undefined && !value) {
+        return callback('');
+      }  else if(value != undefined && value != ""){
+        return callback();
+      }else if (!patter.test(value)) {
+        return callback('');
+      }
+    };
     return {
       // 閬僵灞�
       loading: true,
@@ -308,14 +319,14 @@
         qybz: [
           {
             required: true,
-            message: "",
+            validator: checkPhoneNum, 
             trigger: "blur",
           },
         ],
         deleted: [
           {
             required: true,
-            message: "",
+            validator: checkPhoneNum, 
             trigger: "blur",
           },
         ],
diff --git a/src/views/system/tijian/index.vue b/src/views/system/tijian/index.vue
index 1794ad2..04bc27f 100644
--- a/src/views/system/tijian/index.vue
+++ b/src/views/system/tijian/index.vue
@@ -14,7 +14,17 @@
               </el-form-item>
             </el-col>
             <el-col :span="7">
-              <el-form-item label="濮撳悕" prop="cusName" style="display: flex">
+              <el-form-item label="濮撳悕" prop="cusName" style="display: flex"  :rules="[
+                {
+                  required: true, validator: (rule, value, callback) => {
+                    if (!form.cusName) {
+                      callback('')
+                    } else if(form.cusName){
+                      callback()
+                    }
+
+                  }, trigger: 'blur'
+                }]">
                 <el-input v-model="form.cusName" placeholder="璇疯緭鍏ュ鍚�" :disabled="isDisabled" />
               </el-form-item>
             </el-col>
@@ -40,8 +50,20 @@
               </el-form-item>
             </el-col>
             <el-col :span="7">
-              <el-form-item label="鎬у埆" prop="cusSex" :rules="showHidden.has_sex === 'Y' ? rules.cusSex : []"
-                :required="showHidden.has_sex === 'Y'" style="display: flex">
+              <el-form-item label="鎬у埆" prop="cusSex" 
+              :rules="[
+                {
+                  required: true, validator: (rule, value, callback) => {
+                    if (!form.cusSex && showHidden.has_sex === 'Y') {
+                      callback('')
+                    } else  if (showHidden.has_sex === 'N'){
+                      callback()
+                    }else if(form.cusSex && showHidden.has_sex === 'Y'){
+                      callback()
+                    }
+
+                  }, trigger: 'blur'
+                }]" style="display: flex">
                 <el-select :disabled="isDisabled" v-model="form.cusSex" placeholder="鎬у埆">
                   <el-option v-for="dict in dict.type.sys_user_sex" :key="dict.value" :label="dict.label"
                     :value="parseInt(dict.value)"></el-option>
@@ -50,8 +72,21 @@
             </el-col>
 
             <el-col :span="9">
-              <el-form-item label="璇佷欢鍙�" prop="cusIdcard" :rules="showHidden.has_idcard === 'Y' ? rules.cusIdcard : []"
-                :required="showHidden.has_idcard === 'Y'" style="display: flex">
+              <el-form-item label="璇佷欢鍙�" prop="cusIdcard"
+                :rules="[
+                {
+                  required: true, validator: (rule, value, callback) => {
+                    if (!form.cusIdcard && showHidden.has_idcard === 'Y') {
+                      callback('')
+                    } else  if (showHidden.has_idcard === 'N'){
+                      callback()
+                    }else if(form.cusIdcard && showHidden.has_idcard === 'Y'){
+                      callback()
+                    }
+
+                  }, trigger: 'blur'
+                }]"
+                style="display: flex">
                 <span slot="label" style="display:inline-block;border-bottom: 2px solid blue;" @click="handleQuery">
                   璇佷欢鍙�
                 </span>
@@ -79,8 +114,19 @@
               </el-form-item>
             </el-col>
             <el-col :span="7">
-              <el-form-item label="鐢佃瘽" prop="cusPhone" :rules="showHidden.is_phone === 'Y' ? rules.cusPhone : []"
-                :required="showHidden.is_phone === 'Y'" style="display: flex">
+              <el-form-item label="鐢佃瘽" prop="cusPhone" :rules="[
+                {
+                  required: true, validator: (rule, value, callback) => {
+                    if (!form.cusPhone && showHidden.is_phone === 'Y') {
+                      callback('')
+                    } else  if (showHidden.is_phone === 'N'){
+                      callback()
+                    }else if(form.cusPhone && showHidden.is_phone === 'Y'){
+                      callback()
+                    }
+
+                  }, trigger: 'blur'
+                }]" style="display: flex">
                 <el-input v-model="form.cusPhone" placeholder="璇疯緭鍏ヨ仈绯荤數璇�" :disabled="isDisabled" />
               </el-form-item>
             </el-col>
@@ -111,7 +157,7 @@
                 <el-input v-model="form.cusEmail" placeholder="璇疯緭鍏ラ偖绠�" :disabled="isDisabled" />
               </el-form-item>
             </el-col>
-            <el-col :span="6">
+            <el-col :span="4">
               <el-form-item label="骞撮緞  " prop="age" style="display: flex" label-width="150px
               ">
                 <el-input v-model="form.age" :disabled="isDisabled" style="padding-left: 10%" />
@@ -734,7 +780,7 @@
       activeName: "1",
       // 閬僵灞�
       loading: false,
-      labelPosition: "left",
+      labelPosition: "right",
       imageUrl: "",
       isDisabled: false,
       size: "",
diff --git a/src/views/system/tijianall/index.vue b/src/views/system/tijianall/index.vue
index 4cfc314..6a6304f 100644
--- a/src/views/system/tijianall/index.vue
+++ b/src/views/system/tijianall/index.vue
@@ -3,48 +3,42 @@
     <el-row>
       <el-col :span="18">
         <div>
-          <el-form
-            style="margin: 4px 8px"
-            :inline="true"
-            ref="form"
-            :model="form"
-            :rules="rules"
-            :label-position="labelPosition"
-            class="demo-form-inline"
-            label-width="78px"
-          >
-            <el-form-item label="濮撳悕" prop="cusName">
-              <el-input
-                v-model="form.cusName"
-                placeholder="璇疯緭鍏ュ鍚�"
-                style="width: 160px"
-              />
+          <el-form style="margin: 4px 8px" :inline="true" ref="form" :model="form" :rules="rules"
+            :label-position="labelPosition" class="demo-form-inline" label-width="78px">
+            <el-form-item label="濮撳悕" prop="cusName" :rules="[
+              {
+                required: true, validator: (rule, value, callback) => {
+                  if (!form.cusName) {
+                    callback('')
+                  } else if (form.cusName) {
+                    callback()
+                  }
+
+                }, trigger: 'blur'
+              }]">
+              <el-input v-model="form.cusName" placeholder="璇疯緭鍏ュ鍚�" style="width: 160px" />
             </el-form-item>
             <el-form-item label="璇佷欢绫诲瀷" prop="idType">
-              <el-select
-                style="width: 160px"
-                v-model="form.idType"
-                placeholder="璇烽�夋嫨璇佷欢绫诲瀷"
-              >
-                <el-option
-                  v-for="dict in dict.type.dict_user_cardtype"
-                  :key="dict.value"
-                  :label="dict.label"
-                  :value="dict.value"
-                ></el-option>
+              <el-select style="width: 160px" v-model="form.idType" placeholder="璇烽�夋嫨璇佷欢绫诲瀷">
+                <el-option v-for="dict in dict.type.dict_user_cardtype" :key="dict.value" :label="dict.label"
+                  :value="dict.value"></el-option>
               </el-select>
             </el-form-item>
-            <el-form-item label="璇佷欢鍙�" prop="cusIdcard">
-              :required="showHidden.has_idcard === 'Y'" style="display: flex">
-                <span slot="label" style="display:inline-block;border-bottom: 2px solid blue;" @click="handleQuery">
-                  璇佷欢鍙�
-                </span>
-              <el-input
-                style="width: 186px"
-                v-model="form.cusIdcard"
-                placeholder="璇疯緭鍏ヨ韩浠借瘉鍙�"
-                @input="inputChange"
-              />
+            <el-form-item label="璇佷欢鍙�" prop="cusIdcard" :rules="[
+              {
+                required: true, validator: (rule, value, callback) => {
+                  if (!form.cusIdcard) {
+                    callback('')
+                  } else if (form.cusIdcard) {
+                    callback()
+                  }
+
+                }, trigger: 'blur'
+              }]">
+              <span slot="label" style="display:inline-block;border-bottom: 2px solid blue;" @click="handleQuery">
+                璇佷欢鍙�
+              </span>
+              <el-input style="width: 186px" v-model="form.cusIdcard" placeholder="璇疯緭鍏ヨ韩浠借瘉鍙�" @input="inputChange" />
               <!-- <i
                 style="font-size: 17px; margin-left: 3px"
                 class="el-icon-search"
@@ -55,32 +49,15 @@
               <el-input style="width: 55px" v-model="form.age" />
             </el-form-item>
             <el-form-item prop="ageUnit">
-              <el-select
-                style="width: 60px"
-                v-model="form.ageUnit"
-                @change="formchang"
-              >
-                <el-option
-                  v-for="dict in dict.type.dict_ageunit"
-                  :key="dict.value"
-                  :label="dict.label"
-                  :value="dict.value"
-                ></el-option>
+              <el-select style="width: 60px" v-model="form.ageUnit" @change="formchang">
+                <el-option v-for="dict in dict.type.dict_ageunit" :key="dict.value" :label="dict.label"
+                  :value="dict.value"></el-option>
               </el-select>
             </el-form-item>
             <el-form-item label="鎬у埆" prop="cusSex">
-              <el-select
-                style="width: 160px"
-                v-model="form.cusSex"
-                placeholder="璇烽�夋嫨鎬у埆"
-                @change="formchang"
-              >
-                <el-option
-                  v-for="dict in dict.type.sys_user_sex"
-                  :key="dict.value"
-                  :label="dict.label"
-                  :value="parseInt(dict.value)"
-                ></el-option>
+              <el-select style="width: 160px" v-model="form.cusSex" placeholder="璇烽�夋嫨鎬у埆" @change="formchang">
+                <el-option v-for="dict in dict.type.sys_user_sex" :key="dict.value" :label="dict.label"
+                  :value="parseInt(dict.value)"></el-option>
               </el-select>
             </el-form-item>
 
@@ -90,55 +67,36 @@
                 value-format="yyyy-MM-dd" placeholder="璇烽�夋嫨鍑虹敓鏃ユ湡">
               </el-date-picker>
             </el-form-item> -->
-            <el-form-item label="鑱旂郴鐢佃瘽" prop="cusPhone">
-              <el-input
-                v-model="form.cusPhone"
-                placeholder="璇疯緭鍏ヨ仈绯荤數璇�"
-                style="width: 160px"
-              />
+            <el-form-item label="鑱旂郴鐢佃瘽" prop="cusPhone" :rules="[
+              {
+                required: true, validator: (rule, value, callback) => {
+                  if (!form.cusPhone) {
+                    callback('')
+                  } else if (form.cusPhone) {
+                    callback()
+                  }
+
+                }, trigger: 'blur'
+              }]">
+              <el-input v-model="form.cusPhone" placeholder="璇疯緭鍏ヨ仈绯荤數璇�" style="width: 160px" />
             </el-form-item>
             <el-form-item label="姘戞棌" prop="cusNational">
-              <el-select
-                filterable
-                v-model="form.cusNational"
-                placeholder="璇烽�夋嫨姘戞棌"
-                style="width: 130px"
-              >
-                <el-option
-                  v-for="dict in dict.type.dict_user_national"
-                  :key="dict.value"
-                  :label="dict.label"
-                  :value="dict.value"
-                ></el-option>
+              <el-select filterable v-model="form.cusNational" placeholder="璇烽�夋嫨姘戞棌" style="width: 130px">
+                <el-option v-for="dict in dict.type.dict_user_national" :key="dict.value" :label="dict.label"
+                  :value="dict.value"></el-option>
               </el-select>
             </el-form-item>
             <el-form-item label="閭" prop="cusEmail">
-              <el-input
-                v-model="form.cusEmail"
-                placeholder="璇疯緭鍏ラ偖绠�"
-                style="width: 200px"
-              />
+              <el-input v-model="form.cusEmail" placeholder="璇疯緭鍏ラ偖绠�" style="width: 200px" />
             </el-form-item>
             <el-form-item label="濠氬Щ" prop="cusMarryStatus">
-              <el-select
-                style="width: 160px"
-                v-model="form.cusMarryStatus"
-                placeholder="璇烽�夋嫨濠氬Щ鐘跺喌"
-              >
-                <el-option
-                  v-for="dict in dict.type.dict_user_marry"
-                  :key="dict.value"
-                  :label="dict.label"
-                  :value="dict.value"
-                ></el-option>
+              <el-select style="width: 160px" v-model="form.cusMarryStatus" placeholder="璇烽�夋嫨濠氬Щ鐘跺喌">
+                <el-option v-for="dict in dict.type.dict_user_marry" :key="dict.value" :label="dict.label"
+                  :value="dict.value"></el-option>
               </el-select>
             </el-form-item>
             <el-form-item label="鐜颁綇鍧�" prop="cusAddr">
-              <el-input
-                v-model="form.cusAddr"
-                placeholder="璇疯緭鍏ョ幇灞呬綇鍦板潃"
-                style="width: 440px"
-              />
+              <el-input v-model="form.cusAddr" placeholder="璇疯緭鍏ョ幇灞呬綇鍦板潃" style="width: 440px" />
             </el-form-item>
             <!-- <el-form-item label="鎴峰彛鍦板潃" prop="cusAddr">
               <el-input v-model="form.cusAddr" placeholder="璇疯緭鍏ユ埛鍙e湴鍧�" />
@@ -154,98 +112,42 @@
               <el-input v-model="form.indexCard" placeholder="璇疯緭鍏ョ储寮曞崱鍙�" />
             </el-form-item> -->
             <el-form-item label="浣撴绫诲埆" prop="category">
-              <el-select
-                style="width: 140px"
-                v-model="form.category"
-                placeholder="璇烽�夋嫨浣撴绫诲埆"
-              >
-                <el-option
-                  v-for="dict in dict.type.dict_tjtype"
-                  :key="dict.value"
-                  :label="dict.label"
-                  :value="dict.value"
-                ></el-option>
+              <el-select style="width: 140px" v-model="form.category" placeholder="璇烽�夋嫨浣撴绫诲埆">
+                <el-option v-for="dict in dict.type.dict_tjtype" :key="dict.value" :label="dict.label"
+                  :value="dict.value"></el-option>
               </el-select>
               <!-- <el-input v-model="form.category" placeholder="璇疯緭鍏ヤ綋妫�绫诲埆" /> -->
             </el-form-item>
             <el-form-item label="閮ㄩ棬" prop="department">
-              <el-input
-                v-model="form.department"
-                placeholder="璇疯緭鍏ラ儴闂�"
-                style="width: 160px"
-              />
+              <el-input v-model="form.department" placeholder="璇疯緭鍏ラ儴闂�" style="width: 160px" />
             </el-form-item>
             <el-form-item label="宸ヤ綔鍗曚綅" prop="company">
-              <el-input
-                v-model="form.company"
-                placeholder="璇疯緭鍏ュ伐浣滃崟浣�"
-                style="width: 440px"
-              />
+              <el-input v-model="form.company" placeholder="璇疯緭鍏ュ伐浣滃崟浣�" style="width: 440px" />
             </el-form-item>
             <el-form-item label="鑱屼笟" prop="career">
-              <el-select
-                filterable
-                :disabled="isDisabled"
-                v-model="form.career"
-                placeholder="璇疯緭鍏ヨ亴涓�"
-                style="width: 140px"
-              >
-                <el-option
-                  v-for="dict in dict.type.dict_job"
-                  :key="dict.value"
-                  :label="dict.label"
-                  :value="dict.value"
-                ></el-option>
+              <el-select filterable :disabled="isDisabled" v-model="form.career" placeholder="璇疯緭鍏ヨ亴涓�" style="width: 140px">
+                <el-option v-for="dict in dict.type.dict_job" :key="dict.value" :label="dict.label"
+                  :value="dict.value"></el-option>
               </el-select>
             </el-form-item>
             <el-form-item label="棰勭害鏃ユ湡" prop="reservationTime">
-              <el-date-picker
-                v-model="form.reservationTime"
-                type="date"
-                value-format="yyyy-MM-dd"
-                placeholder="閫夋嫨鏃ユ湡"
-                :picker-options="setDisabled"
-                style="width: 160px"
-              >
+              <el-date-picker v-model="form.reservationTime" type="date" value-format="yyyy-MM-dd" placeholder="閫夋嫨鏃ユ湡"
+                :picker-options="setDisabled" style="width: 160px">
               </el-date-picker>
             </el-form-item>
             <el-form-item label="鏃堕棿" prop="timeRegion">
-              <el-select
-                style="width: 160px"
-                v-model="form.timeRegion"
-                placeholder="璇烽�夋嫨棰勭害鏃堕棿"
-              >
-                <el-option
-                  v-for="dict in dict.type.tj_time_region"
-                  :key="dict.value"
-                  :label="dict.label"
-                  :value="dict.value"
-                ></el-option>
+              <el-select style="width: 160px" v-model="form.timeRegion" placeholder="璇烽�夋嫨棰勭害鏃堕棿">
+                <el-option v-for="dict in dict.type.tj_time_region" :key="dict.value" :label="dict.label"
+                  :value="dict.value"></el-option>
               </el-select>
             </el-form-item>
             <el-form-item label="鍗″彿" prop="indexCard">
-              <el-input
-                v-model="form.indexCard"
-                placeholder="璇疯緭鍏ュ崱鍙�"
-                style="width: 190px"
-              />
+              <el-input v-model="form.indexCard" placeholder="璇疯緭鍏ュ崱鍙�" style="width: 190px" />
             </el-form-item>
-            <el-form-item
-              label="浣撴绫诲瀷"
-              prop="tjType"
-              style="margin-right: 20px"
-            >
-              <el-select
-                style="width: 145px"
-                v-model="form.tjType"
-                placeholder="璇烽�夋嫨浣撴绫诲瀷"
-              >
-                <el-option
-                  v-for="dict in dict.type.dict_team"
-                  :key="dict.value"
-                  :label="dict.label"
-                  :value="parseInt(dict.value)"
-                ></el-option>
+            <el-form-item label="浣撴绫诲瀷" prop="tjType" style="margin-right: 20px">
+              <el-select style="width: 145px" v-model="form.tjType" placeholder="璇烽�夋嫨浣撴绫诲瀷">
+                <el-option v-for="dict in dict.type.dict_team" :key="dict.value" :label="dict.label"
+                  :value="parseInt(dict.value)"></el-option>
               </el-select>
             </el-form-item>
           </el-form>
@@ -253,83 +155,28 @@
       </el-col>
     </el-row>
 
-    <el-dialog
-      title="閫夋嫨濂楅"
-      :visible.sync="taocan"
-      width="42%"
-      height="700px"
-    >
-      <el-tabs
-        type="border-card"
-        style="height: 538px; margin: 0 10px; width: 100%"
-      >
+    <el-dialog title="閫夋嫨濂楅" :visible.sync="taocan" width="42%" height="700px">
+      <el-tabs type="border-card" style="height: 538px; margin: 0 10px; width: 100%">
         <el-tab-pane label="濂楅">
-          <el-form
-            :model="queryParam"
-            ref="queryForm"
-            size="small"
-            :inline="true"
-            v-show="showSearch"
-            @submit.native.prevent
-            label-width="auto"
-          >
+          <el-form :model="queryParam" ref="queryForm" size="small" :inline="true" v-show="showSearch"
+            @submit.native.prevent label-width="auto">
             <el-form-item label="濂楅鍚嶇О" prop="pacName">
-              <el-input
-                v-model="queryParam.pacName"
-                placeholder="璇疯緭鍏ュ椁愬悕绉�"
-                clearable
-                @keyup.enter.native="handle"
-              />
+              <el-input v-model="queryParam.pacName" placeholder="璇疯緭鍏ュ椁愬悕绉�" clearable @keyup.enter.native="handle" />
             </el-form-item>
             <el-form-item>
-              <el-button
-                type="primary"
-                icon="el-icon-search"
-                size="mini"
-                @click="handle"
-                >鏌ヨ</el-button
-              >
+              <el-button type="primary" icon="el-icon-search" size="mini" @click="handle">鏌ヨ</el-button>
               <!-- <el-button type="primary"  size="mini" @click="submit">纭</el-button> -->
             </el-form-item>
           </el-form>
           <div class="tab9">
             <div class="grid-content bg-purple" style="width: 100%">
-              <el-table
-                v-loading="loading"
-                element-loading-text="姝e湪鍔犺浇涓�..."
-                element-loading-spinner="el-icon-loading"
-                border
-                :data="newpacName"
-                @select="handleSelectionChange"
-                height="430"
-                ref="tb"
-                style="width: 1000px"
-              >
+              <el-table v-loading="loading" element-loading-text="姝e湪鍔犺浇涓�..." element-loading-spinner="el-icon-loading"
+                border :data="newpacName" @select="handleSelectionChange" height="430" ref="tb" style="width: 1000px">
                 <template slot="empty">鏁版嵁姝e湪鍔犺浇涓�</template>
-                <el-table-column
-                  type="selection"
-                  width="40px"
-                  align="center"
-                  label="閫夋嫨"
-                />
-                <el-table-column
-                  label="濂楅鍚嶇О"
-                  align="center"
-                  prop="pacName"
-                  width="120px"
-                />
-                <el-table-column
-                  label="濂楅浠锋牸"
-                  align="center"
-                  prop="price"
-                  width="120px"
-                />
-                <el-table-column
-                  label="濂楅鏄庣粏"
-                  align="center"
-                  prop="allProName"
-                  :show-overflow-tooltip="true"
-                />
+                <el-table-column type="selection" width="40px" align="center" label="閫夋嫨" />
+                <el-table-column label="濂楅鍚嶇О" align="center" prop="pacName" width="120px" />
+                <el-table-column label="濂楅浠锋牸" align="center" prop="price" width="120px" />
+                <el-table-column label="濂楅鏄庣粏" align="center" prop="allProName" :show-overflow-tooltip="true" />
                 <!-- <el-table-column label="鎿嶄綔" align="center" class-name="small-padding fixed-width">
                   <template slot-scope="scope">
                     <el-button size="mini" type="text" icon="el-icon-circle-check" @click="handleSeach(scope.row)"
@@ -352,13 +199,8 @@
         <el-tab-pane label="鍗曢」">
           <div class="tab8">
             <div class="tab7">
-              <v-tree-transfer
-                :treeData="treedataList"
-                :defaultProps="{ children: 'tjProjectList', label: 'proName' }"
-                :defaultKeys="defaultKeys"
-                @changeKeys="changeCategoryKeys"
-                :key="datekey"
-              ></v-tree-transfer>
+              <v-tree-transfer :treeData="treedataList" :defaultProps="{ children: 'tjProjectList', label: 'proName' }"
+                :defaultKeys="defaultKeys" @changeKeys="changeCategoryKeys" :key="datekey"></v-tree-transfer>
               <!-- <el-tree :data="data" show-checkbox node-key="proId" :props="defaultProps" :default-checked-keys="treeList"
                 @check-change="handleCurrentChecked">
               </el-tree> -->
@@ -425,19 +267,9 @@
              </div> -->
 
           <template>
-            <el-form
-              :model="form"
-              :inline="true"
-              label-width="75px"
-              style="margin-left: 10px"
-            >
+            <el-form :model="form" :inline="true" label-width="75px" style="margin-left: 10px">
               <el-form-item label="搴旀敹閲戦" style="margin-right: 20px">
-                <el-input
-                  placeholder="搴旀敹閲戦"
-                  :value="TotalPrice1 + '.00'"
-                  disabled
-                  style="width: 150px"
-                ></el-input>
+                <el-input placeholder="搴旀敹閲戦" :value="TotalPrice1 + '.00'" disabled style="width: 150px"></el-input>
               </el-form-item>
               <!-- <el-form-item label="浼樻儬鎶樻墸" style="margin-right: 20px">
                <el-input style="width: 100px" text="number" v-model="discount" :value="discount/100"></el-input>
@@ -445,40 +277,15 @@
                   @change="numberChange" :disabled="isfalse"></el-input-number>
               </el-form-item> -->
               <el-form-item label="瀹炴敹閲戦" style="margin-right: 20px">
-                <el-input
-                  placeholder="瀹炴敹閲戦"
-                  v-model="TotalPrice"
-                  disabled
-                  style="width: 190px"
-                ></el-input>
+                <el-input placeholder="瀹炴敹閲戦" v-model="TotalPrice" disabled style="width: 190px"></el-input>
               </el-form-item>
               <el-form-item>
-                <el-button type="primary" @click="Package" size="mini"
-                  >閫夋嫨濂楅</el-button
-                >
+                <el-button type="primary" @click="Package" size="mini">閫夋嫨濂楅</el-button>
 
-                <el-button
-                  type="primary"
-                  @click="submitPrice"
-                  size="mini"
-                  :disabled="confirm"
-                  >棰勭害鐧昏</el-button
-                >
-                <el-button
-                  v-show="lishi"
-                  type="primary"
-                  @click="cope"
-                  size="mini"
-                  >涓�閿鍒�</el-button
-                >
-                <el-button
-                  type="primary"
-                  @click="inputChanges"
-                  v-show="lishi"
-                  size="mini"
-                  :disabled="confirm"
-                  >鍘嗗彶浣撴璁板綍</el-button
-                >
+                <el-button type="primary" @click="submitPrice" size="mini" :disabled="confirm">棰勭害鐧昏</el-button>
+                <el-button v-show="lishi" type="primary" @click="cope" size="mini">涓�閿鍒�</el-button>
+                <el-button type="primary" @click="inputChanges" v-show="lishi" size="mini"
+                  :disabled="confirm">鍘嗗彶浣撴璁板綍</el-button>
               </el-form-item>
             </el-form>
           </template>
@@ -486,16 +293,14 @@
           <div style="text-align: center; margin-bottom: 10px">
             宸查�夐」鐩垪琛�
           </div>
-          <div
-            style="
+          <div style="
               padding: 0px 6px;
               border: 1px solid #e6ebf5;
               max-height: 420px;
               overflow: auto;
               width: 1020px;
               margin-left: 20px;
-            "
-          >
+            ">
             <el-collapse v-model="index" accordion>
               <div v-for="(item, index) in tableData1" :key="index">
                 <el-collapse-item :name="index">
@@ -511,26 +316,15 @@
                       ".00鍏�)"
                     }}
                   </template>
-                  <el-table
-                    :data="item.list"
-                    border
-                    style="width: 100%"
-                    height="270"
-                  >
+                  <el-table :data="item.list" border style="width: 100%" height="270">
                     <el-table-column prop="proName" label="椤圭洰" width="180">
                     </el-table-column>
                     <el-table-column prop="proType" label="鎬у埆" width="180">
-                      <template
-                        slot-scope="scope"
-                        v-if="scope.row.proType == ''"
-                      >
+                      <template slot-scope="scope" v-if="scope.row.proType == ''">
                         {{ scope.row.proType == "" ? "鍏ㄩ儴" : "" }}
                       </template>
                       <template slot-scope="scope" v-else>
-                        <dict-tag
-                          :options="dict.type.sys_user_sex"
-                          :value="scope.row.proType"
-                        />
+                        <dict-tag :options="dict.type.sys_user_sex" :value="scope.row.proType" />
                       </template>
                     </el-table-column>
                     <el-table-column prop="ordPrice" label="搴旀敹閲戦">
@@ -539,10 +333,7 @@
                     </el-table-column>
                     <el-table-column prop="proCheckMethod" label="绌鸿吂">
                       <template slot-scope="scope">
-                        <dict-tag
-                          :options="dict.type.sys_yes_no"
-                          :value="scope.row.proCheckMethod"
-                        />
+                        <dict-tag :options="dict.type.sys_yes_no" :value="scope.row.proCheckMethod" />
                       </template>
                     </el-table-column>
                   </el-table>
@@ -569,15 +360,13 @@
             </el-collapse>
           </div>
 
-          <div
-            style="
+          <div style="
               position: absolute;
               bottom: 100px;
               left: 500px;
               width: 700px;
               display: none;
-            "
-          >
+            ">
             <div id="printBill">
               <div style="font-size: 13px; color: #000000">
                 <div style="width: 48%; margin-top: 10px">
@@ -629,26 +418,12 @@
       </el-col>
     </el-row>
 
-    <el-dialog
-      title="瀵兼鍗曢瑙�"
-      :visible.sync="dialogVisibles"
-      :close-on-click-modal="false"
-    >
+    <el-dialog title="瀵兼鍗曢瑙�" :visible.sync="dialogVisibles" :close-on-click-modal="false">
       <div class="main">
-        <iframe
-          id="printIframe"
-          :src="url"
-          frameborder="0"
-          style="width: 100%; height: 100%"
-        ></iframe>
+        <iframe id="printIframe" :src="url" frameborder="0" style="width: 100%; height: 100%"></iframe>
       </div>
     </el-dialog>
-     <el-dialog
-      title="鎻愮ず"
-      :visible.sync="dialogVisiblese"
-      width="30%"
-      :before-close="handleClose"
-    >
+    <el-dialog title="鎻愮ず" :visible.sync="dialogVisiblese" width="30%" :before-close="handleClose">
       <span>鏄惁澶嶅埗鏈�杩戜竴娆$殑浣撴椤圭洰锛�</span>
       <span slot="footer" class="dialog-footer">
         <el-button @click="dialogVisiblese = false">鍙� 娑�</el-button>
@@ -679,7 +454,7 @@
 import historyTj from "@/components/historyTj/index";
 export default {
   components: {
-    VTreeTransfer,historyTj
+    VTreeTransfer, historyTj
   },
   dicts: [
     "dict_user_national",
@@ -696,6 +471,17 @@
   name: "Tijian",
 
   data() {
+    let checkPhoneNum = (rule, value, callback) => {
+         console.log( value)
+      let patter = new RegExp(/^1\s*[3456789]\s*(\d\s*){9}$/);
+      if (value == "" && value == undefined && !value) {
+        return callback('');
+      }  else if(value != undefined && value != ""){
+        return callback();
+      }else if (!patter.test(value)) {
+        return callback('');
+      }
+    };
     // const isCnNewID = (rule, value, callback) => {
     //   var arrExp = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]; //鍔犳潈鍥犲瓙
     //   var arrValid = [1, 0, "X", 9, 8, 7, 6, 5, 4, 3, 2]; //鏍¢獙鐮�
@@ -866,24 +652,24 @@
       },
       // 琛ㄥ崟鏍¢獙
       rules: {
-        cusName: [{ required: true, message: "", trigger: "blur" }],
+        cusName: [{ required: true, validator: checkPhoneNum, trigger: "blur" }],
         cusSex: [
-          { required: true, message: "", trigger: "change" },
+          { required: true, validator: checkPhoneNum, trigger: "change" },
         ],
         cusBrithday: [
-          { required: true, message: "", trigger: "blur" },
+          { required: true, validator: checkPhoneNum, trigger: "blur" },
         ],
         // cusAddr: [
         //   { required: true, message: "鐜板眳浣忓湴鍧�涓嶈兘涓虹┖", trigger: "blur" },
         // ],
         cusPhone: [
-          { required: true, message: "", trigger: "blur" },
+          { required: true, validator: checkPhoneNum, trigger: "blur" },
         ],
         reservationTime: [
-          { required: true, message: "", trigger: "change" },
+          { required: true, validator: checkPhoneNum, trigger: "change" },
         ],
         timeRegion: [
-          { required: true, message: "", trigger: "blur" },
+          { required: true, validator: checkPhoneNum, trigger: "blur" },
         ],
         // cusIdcard: [
         //   { required: true, message: "璇疯緭鍏ヨ韩浠借瘉鍙�", trigger: "blur" },
@@ -894,10 +680,10 @@
         //   },
         // ],
         cusIdcard: [
-          { required: true, message: "", trigger: "blur" },
+          { required: true, validator: checkPhoneNum, trigger: "blur" },
           {
             pattern: /^(\d{15}$|^\d{18}$|^\d{17}(\d|X|x))$/,
-            message: "",
+            validator: checkPhoneNum,
             trigger: "blur",
             validator: this.validSjh,
           },
@@ -936,20 +722,20 @@
             d.getFullYear() -
             birthdays.getFullYear() -
             (d.getMonth() < birthdays.getMonth() ||
-            (d.getMonth() == birthdays.getMonth() &&
-              d.getDate() < birthdays.getDate())
+              (d.getMonth() == birthdays.getMonth() &&
+                d.getDate() < birthdays.getDate())
               ? 1
               : 0);
           this.form.cusSex = sex;
           this.form.cusBrithday = birthday;
           this.form.age = age;
         }
-        
+
         // let cusIdCard = this.form.cusIdcard;
         // getHistryTjOrderByCusIdCard(cusIdCard).then((res) => {
         //   if (res.code == 200) {
-            this.table = true;
-            this.lishi = true;
+        this.table = true;
+        this.lishi = true;
         //     this.HistoryList = res.data;
         //   }
         // });
@@ -957,14 +743,14 @@
         // return this.$message.error("璇疯緭鍏ユ纭殑韬唤璇佸彿锛�");;
       }
     },
-    inputChanges(){
+    inputChanges() {
       this.$refs.historyTj.getlist();
     },
     cope() {
       let cusIdCard = this.form.cusIdcard;
       getHistryTjOrderProByCusIdCard(cusIdCard).then((res) => {
         this.copeList = res.data;
-        if (res.msg !="鏆傛棤鍘嗗彶璁板綍") {
+        if (res.msg != "鏆傛棤鍘嗗彶璁板綍") {
           this.dialogVisiblese = true;
         } else {
           this.$message.warning("鏆傛棤鍘嗗彶浣撴璁板綍锛�");
@@ -1035,7 +821,7 @@
         .then((_) => {
           done();
         })
-        .catch((_) => {});
+        .catch((_) => { });
     },
     getList1() {
       getInfo().then((response) => {
@@ -1265,7 +1051,7 @@
               });
             });
           });
-        } catch (error) {}
+        } catch (error) { }
         this.loading = false;
       });
     },
diff --git a/src/views/system/transmit/index.vue b/src/views/system/transmit/index.vue
index 77e2e0d..6f101c3 100644
--- a/src/views/system/transmit/index.vue
+++ b/src/views/system/transmit/index.vue
@@ -247,6 +247,17 @@
 export default {
   name: "Record",
   data() {
+    let checkPhoneNum = (rule, value, callback) => {
+         console.log( value)
+      let patter = new RegExp(/^1\s*[3456789]\s*(\d\s*){9}$/);
+      if (value == "" && value == undefined && !value) {
+        return callback('');
+      }  else if(value != undefined && value != ""){
+        return callback();
+      }else if (!patter.test(value)) {
+        return callback('');
+      }
+    };
     return {
       // 閬僵灞�
       loading: true,
@@ -286,14 +297,14 @@
         createTime: [
           {
             required: true,
-            message: "",
+            validator: checkPhoneNum, 
             trigger: "blur",
           },
         ],
         deleted: [
           {
             required: true,
-            message: "",
+            validator: checkPhoneNum, 
             trigger: "blur",
           },
         ],
diff --git a/src/views/system/user/index.vue b/src/views/system/user/index.vue
index 88539d2..3f2accd 100644
--- a/src/views/system/user/index.vue
+++ b/src/views/system/user/index.vue
@@ -688,6 +688,7 @@
   getDeptListByDictHospId,
 } from "@/api/system/user";
 import { getToken } from "@/utils/auth";
+import { getInfo } from "@/api/login";
 import { listHosp } from "@/api/hosp/hosp";
 import Treeselect from "@riophae/vue-treeselect";
 import "@riophae/vue-treeselect/dist/vue-treeselect.css";
@@ -715,6 +716,20 @@
   ],
   components: { Treeselect },
   data() {
+    let checkPhoneNum = (rule, value, callback) => {
+         console.log( value)
+      let patter = new RegExp(/^1\s*[3456789]\s*(\d\s*){9}$/);
+      if (value == "" && value == undefined && !value) {
+        console.log(11111)
+        return callback('');
+      }  else if(value != undefined && value != ""){
+        console.log(22222)
+        return callback();
+      }else if (!patter.test(value)) {
+        console.log(33333)
+        return callback('');
+      }
+    };
     return {
       row: [],
       flag: false,
@@ -825,37 +840,37 @@
       // 琛ㄥ崟鏍¢獙
       rules: {
         userName: [
-          { required: true, message: "", trigger: "blur" },
+          { required: true, validator: checkPhoneNum,  trigger: "blur" },
           {
             min: 2,
             max: 20,
-            message: "",
+            validator: checkPhoneNum, 
             trigger: "blur",
           },
         ],
         nickName: [
-          { required: true, message: "", trigger: "blur" },
+          { required: true, validator: checkPhoneNum,  trigger: "blur" },
         ],
         password: [
-          { required: true, message: "", trigger: "blur" },
+          { required: true, validator: checkPhoneNum,  trigger: "blur" },
           {
             min: 5,
             max: 20,
-            message: "",
+            validator: checkPhoneNum, 
             trigger: "blur",
           },
         ],
         email: [
           {
             type: "email",
-            message: "",
+            validator: checkPhoneNum, 
             trigger: ["blur", "change"],
           },
         ],
         phonenumber: [
           {
             pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
-            message: "",
+            validator: checkPhoneNum, 
             trigger: "blur",
           },
         ],
@@ -932,6 +947,7 @@
     getlistHosp() {
       listHosp(this.queryParams).then((response) => {
         this.hospList = response.rows;
+
         this.total = response.total;
       });
     },
@@ -1047,6 +1063,12 @@
       this.title = "鐢ㄦ埛淇℃伅缁存姢";
       this.getPostList();
       this.getlistHosp();
+      getInfo(this.queryParams).then((response) => {
+        this.form.hospId = response.user.hospId;
+        if (this.form.hospId) {
+          this.sendhospName()
+        }
+      });
       // getUser().then((response) => {
       //   this.postOptions = response.posts;
       //   this.roleOptions = response.roles;
@@ -1068,6 +1090,7 @@
       this.title = "鐢ㄦ埛淇℃伅缁存姢";
       this.open = true;
       this.form = row;
+      this.form.hospId = Number(row.hospId)
       // listUser(this.addDateRange(this.queryParams, this.dateRange)).then(
       //   (response) => {
       //     response.rows.forEach((item, index) => {
@@ -1090,6 +1113,9 @@
       this.getlistHosp();
       this.reset();
       this.form = row;
+      if (this.form.hospId) {
+        this.sendhospName()
+      }
       // this.form.userInfo.id = null;
       // if(this.form.userInfo != null){
       //   this.forms = this.form.userInfo;
@@ -1151,7 +1177,7 @@
             this.dialogVisible1 = false;
           }
         })
-      }else{
+      } else {
         this.$modal.msgError("鐢ㄦ埛鍚嶅瘑鐮佷笉鑳戒负绌�");
       }
 
diff --git a/src/views/system/user/profile/resetPwd.vue b/src/views/system/user/profile/resetPwd.vue
index f1455b8..7e069d2 100644
--- a/src/views/system/user/profile/resetPwd.vue
+++ b/src/views/system/user/profile/resetPwd.vue
@@ -28,6 +28,17 @@
         callback();
       }
     };
+    let checkPhoneNum = (rule, value, callback) => {
+         console.log( value)
+      let patter = new RegExp(/^1\s*[3456789]\s*(\d\s*){9}$/);
+      if (value == "" && value == undefined && !value) {
+        return callback('');
+      }  else if(value != undefined && value != ""){
+        return callback();
+      }else if (!patter.test(value)) {
+        return callback('');
+      }
+    };
     return {
       user: {
         oldPassword: undefined,
@@ -37,14 +48,14 @@
       // 琛ㄥ崟鏍¢獙
       rules: {
         oldPassword: [
-          { required: true, message: "", trigger: "blur" }
+          { required: true, validator: checkPhoneNum,  trigger: "blur" }
         ],
         newPassword: [
-          { required: true, message: "", trigger: "blur" },
-          { min: 6, max: 20, message: "", trigger: "blur" }
+          { required: true, validator: checkPhoneNum,  trigger: "blur" },
+          { min: 6, max: 20, validator: checkPhoneNum,  trigger: "blur" }
         ],
         confirmPassword: [
-          { required: true, message: "", trigger: "blur" },
+          { required: true, validator: checkPhoneNum,  trigger: "blur" },
           { required: true, validator: equalToPassword, trigger: "blur" }
         ]
       }
diff --git a/src/views/system/user/profile/userInfo.vue b/src/views/system/user/profile/userInfo.vue
index a68e386..9692bdb 100644
--- a/src/views/system/user/profile/userInfo.vue
+++ b/src/views/system/user/profile/userInfo.vue
@@ -32,25 +32,36 @@
     }
   },
   data() {
+    let checkPhoneNum = (rule, value, callback) => {
+         console.log( value)
+      let patter = new RegExp(/^1\s*[3456789]\s*(\d\s*){9}$/);
+      if (value == "" && value == undefined && !value) {
+        return callback('');
+      }  else if(value != undefined && value != ""){
+        return callback();
+      }else if (!patter.test(value)) {
+        return callback('');
+      }
+    };
     return {
       // 琛ㄥ崟鏍¢獙
       rules: {
         nickName: [
-          { required: true, message: "", trigger: "blur" }
+          { required: true, validator: checkPhoneNum,  trigger: "blur" }
         ],
         email: [
-          { required: true, message: "", trigger: "blur" },
+          { required: true, validator: checkPhoneNum,  trigger: "blur" },
           {
             type: "email",
-            message: "",
+            validator: checkPhoneNum, 
             trigger: ["blur", "change"]
           }
         ],
         phonenumber: [
-          { required: true, message: "", trigger: "blur" },
+          { required: true, validator: checkPhoneNum,  trigger: "blur" },
           {
             pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
-            message: "",
+            validator: checkPhoneNum, 
             trigger: "blur"
           }
         ]
diff --git a/src/views/system/userinfo/index.vue b/src/views/system/userinfo/index.vue
index d994a4c..5d5c6b3 100644
--- a/src/views/system/userinfo/index.vue
+++ b/src/views/system/userinfo/index.vue
@@ -1066,6 +1066,17 @@
   name: "Userinfo",
   dicts: ['dict_user_bianzhi', 'dict_user_marry', 'dict_user_sort', 'sys_yes_no', 'dict_user_manage', 'dict_user_study', 'sys_user_sex', 'dict_user_orgtype', 'dict_user_national', 'dict_user_cardtype', 'dict_user_degree', 'dict_user_work', 'dict_data_status', 'dict_user_healthy', 'dict_political'],
   data() {
+    let checkPhoneNum = (rule, value, callback) => {
+         console.log( value)
+      let patter = new RegExp(/^1\s*[3456789]\s*(\d\s*){9}$/);
+      if (value == "" && value == undefined && !value) {
+        return callback('');
+      }  else if(value != undefined && value != ""){
+        return callback();
+      }else if (!patter.test(value)) {
+        return callback('');
+      }
+    };
     return {
       // 閬僵灞�
       loading: true,
@@ -1114,25 +1125,25 @@
       // 琛ㄥ崟鏍¢獙
       rules: {
         userId: [
-          { required: true, message: "", trigger: "blur" }
+          { required: true, validator: checkPhoneNum,  trigger: "blur" }
         ],
         hospId: [
-          { required: true, message: "", trigger: "blur" }
+          { required: true, validator: checkPhoneNum,  trigger: "blur" }
         ],
         hospName: [
-          { required: true, message: "", trigger: "blur" }
+          { required: true, validator: checkPhoneNum,  trigger: "blur" }
         ],
         orgType: [
-          { required: true, message: "", trigger: "change" }
+          { required: true, validator: checkPhoneNum,  trigger: "change" }
         ],
         staffName: [
-          { required: true, message: "", trigger: "blur" }
+          { required: true, validator: checkPhoneNum,  trigger: "blur" }
         ],
         createBy: [
-          { required: true, message: "", trigger: "blur" }
+          { required: true, validator: checkPhoneNum,  trigger: "blur" }
         ],
         createTime: [
-          { required: true, message: "", trigger: "blur" }
+          { required: true, validator: checkPhoneNum,  trigger: "blur" }
         ],
       }
     };
diff --git a/src/views/system/ypdm/index.vue b/src/views/system/ypdm/index.vue
index 003c118..b002436 100644
--- a/src/views/system/ypdm/index.vue
+++ b/src/views/system/ypdm/index.vue
@@ -829,6 +829,17 @@
   name: "Ypdm",
   dicts: ['dict_grade'],
   data() {
+    let checkPhoneNum = (rule, value, callback) => {
+         console.log( value)
+      let patter = new RegExp(/^1\s*[3456789]\s*(\d\s*){9}$/);
+      if (value == "" && value == undefined && !value) {
+        return callback('');
+      }  else if(value != undefined && value != ""){
+        return callback();
+      }else if (!patter.test(value)) {
+        return callback('');
+      }
+    };
     return {
         hospList: [],
          options: [{
@@ -910,42 +921,42 @@
         ypId: [
           {
             required: true,
-            message: "",
+            validator: checkPhoneNum, 
             trigger: "blur",
           },
         ],
         ypCode: [
           {
             required: true,
-            message: "",
+            validator: checkPhoneNum, 
             trigger: "blur",
           },
         ],
         ypName: [
           {
             required: true,
-            message: "",
+            validator: checkPhoneNum, 
             trigger: "blur",
           },
         ],
         largeUnit: [
           {
             required: true,
-            message: "",
+            validator: checkPhoneNum, 
             trigger: "blur",
           },
         ],
         isCharge: [
           {
             required: true,
-            message: "",
+            validator: checkPhoneNum, 
             trigger: "blur",
           },
         ],
         deleted: [
           {
             required: true,
-            message: "",
+            validator: checkPhoneNum, 
             trigger: "blur",
           },
         ],
diff --git a/src/views/team/reporting/index.vue b/src/views/team/reporting/index.vue
index a342a8d..88e3663 100644
--- a/src/views/team/reporting/index.vue
+++ b/src/views/team/reporting/index.vue
@@ -214,6 +214,17 @@
 import { listComp } from "@/api/system/comp";
 export default {
   data() {
+    let checkPhoneNum = (rule, value, callback) => {
+         console.log( value)
+      let patter = new RegExp(/^1\s*[3456789]\s*(\d\s*){9}$/);
+      if (value == "" && value == undefined && !value) {
+        return callback('');
+      }  else if(value != undefined && value != ""){
+        return callback();
+      }else if (!patter.test(value)) {
+        return callback('');
+      }
+    };
     return {
       firmId: "",
       firmDeptId: "",
@@ -279,14 +290,14 @@
         compId: [
           {
             required: true,
-            message: "",
+            validator: checkPhoneNum, 
             trigger: "blur",
           },
         ],
         dwDeptId: [
           {
             required: true,
-            message: "",
+            validator: checkPhoneNum, 
             trigger: "blur",
           },
         ],
diff --git a/src/views/team/reportresults/index.vue b/src/views/team/reportresults/index.vue
index 2665cb0..d341afd 100644
--- a/src/views/team/reportresults/index.vue
+++ b/src/views/team/reportresults/index.vue
@@ -112,6 +112,17 @@
     name: "Tijian",
 
     data() {
+        let checkPhoneNum = (rule, value, callback) => {
+         console.log( value)
+      let patter = new RegExp(/^1\s*[3456789]\s*(\d\s*){9}$/);
+      if (value == "" && value == undefined && !value) {
+        return callback('');
+      }  else if(value != undefined && value != ""){
+        return callback();
+      }else if (!patter.test(value)) {
+        return callback('');
+      }
+    };
         const generateData = _ => {
             const data = [];
             for (let i = 1; i <= 15; i++) {
@@ -186,13 +197,13 @@
             // 琛ㄥ崟鏍¢獙
             rules: {
                 drugManufacturerId: [
-                    { required: true, message: "", trigger: "change" },
+                    { required: true, validator: checkPhoneNum,  trigger: "change" },
                 ],
                 reservationTime: [
-                    { required: true, message: "", trigger: "blur" },
+                    { required: true, validator: checkPhoneNum,  trigger: "blur" },
                 ],
                 dwDeptName: [
-                    { required: true, message: "", trigger: "change" },
+                    { required: true, validator: checkPhoneNum,  trigger: "change" },
                 ],
             },
         };
diff --git a/src/views/team/teams/index.vue b/src/views/team/teams/index.vue
index 84e24ef..e8b90c4 100644
--- a/src/views/team/teams/index.vue
+++ b/src/views/team/teams/index.vue
@@ -189,6 +189,17 @@
         "tj_status"
     ],
     data() {
+        let checkPhoneNum = (rule, value, callback) => {
+         console.log( value)
+      let patter = new RegExp(/^1\s*[3456789]\s*(\d\s*){9}$/);
+      if (value == "" && value == undefined && !value) {
+        return callback('');
+      }  else if(value != undefined && value != ""){
+        return callback();
+      }else if (!patter.test(value)) {
+        return callback('');
+      }
+    };
         return {
             datalist: [],
             value: [],
@@ -269,16 +280,16 @@
             // 琛ㄥ崟鏍¢獙
             rules: {
                 firmId: [
-                    { required: true, message: "", trigger: "change" },
+                    { required: true, validator: checkPhoneNum,  trigger: "change" },
                 ],
                 beginTime: [
-                    { required: true, message: "", trigger: "blur" },
+                    { required: true, validator: checkPhoneNum,  trigger: "blur" },
                 ],
                 dwDeptId: [
-                    { required: true, message: "", trigger: "change" },
+                    { required: true, validator: checkPhoneNum,  trigger: "change" },
                 ],
                 groupId: [
-                    { required: true, message: "", trigger: "change" },
+                    { required: true, validator: checkPhoneNum,  trigger: "change" },
                 ],
             },
         };
diff --git a/src/views/tool/gen/basicInfoForm.vue b/src/views/tool/gen/basicInfoForm.vue
index 1a4c756..6b0c057 100644
--- a/src/views/tool/gen/basicInfoForm.vue
+++ b/src/views/tool/gen/basicInfoForm.vue
@@ -39,19 +39,30 @@
     }
   },
   data() {
+    let checkPhoneNum = (rule, value, callback) => {
+         console.log( value)
+      let patter = new RegExp(/^1\s*[3456789]\s*(\d\s*){9}$/);
+      if (value == "" && value == undefined && !value) {
+        return callback('');
+      }  else if(value != undefined && value != ""){
+        return callback();
+      }else if (!patter.test(value)) {
+        return callback('');
+      }
+    };
     return {
       rules: {
         tableName: [
-          { required: true, message: "", trigger: "blur" }
+          { required: true, validator: checkPhoneNum,  trigger: "blur" }
         ],
         tableComment: [
-          { required: true, message: "", trigger: "blur" }
+          { required: true, validator: checkPhoneNum,  trigger: "blur" }
         ],
         className: [
-          { required: true, message: "", trigger: "blur" }
+          { required: true, validator: checkPhoneNum,  trigger: "blur" }
         ],
         functionAuthor: [
-          { required: true, message: "", trigger: "blur" }
+          { required: true, validator: checkPhoneNum,  trigger: "blur" }
         ]
       }
     };
diff --git a/src/views/tool/gen/genInfoForm.vue b/src/views/tool/gen/genInfoForm.vue
index 49561fb..bb9a15f 100644
--- a/src/views/tool/gen/genInfoForm.vue
+++ b/src/views/tool/gen/genInfoForm.vue
@@ -234,23 +234,34 @@
     },
   },
   data() {
+    let checkPhoneNum = (rule, value, callback) => {
+         console.log( value)
+      let patter = new RegExp(/^1\s*[3456789]\s*(\d\s*){9}$/);
+      if (value == "" && value == undefined && !value) {
+        return callback('');
+      }  else if(value != undefined && value != ""){
+        return callback();
+      }else if (!patter.test(value)) {
+        return callback('');
+      }
+    };
     return {
       subColumns: [],
       rules: {
         tplCategory: [
-          { required: true, message: "", trigger: "blur" }
+          { required: true, validator: checkPhoneNum,  trigger: "blur" }
         ],
         packageName: [
-          { required: true, message: "", trigger: "blur" }
+          { required: true, validator: checkPhoneNum,  trigger: "blur" }
         ],
         moduleName: [
-          { required: true, message: "", trigger: "blur" }
+          { required: true, validator: checkPhoneNum,  trigger: "blur" }
         ],
         businessName: [
-          { required: true, message: "", trigger: "blur" }
+          { required: true, validator: checkPhoneNum,  trigger: "blur" }
         ],
         functionName: [
-          { required: true, message: "", trigger: "blur" }
+          { required: true, validator: checkPhoneNum,  trigger: "blur" }
         ],
       }
     };
diff --git a/vue.config.js b/vue.config.js
index 1e38aa5..6c2da31 100644
--- a/vue.config.js
+++ b/vue.config.js
@@ -36,9 +36,9 @@
       // detail: https://cli.vuejs.org/config/#devserver-proxy
       [process.env.VUE_APP_BASE_API]: {
         //target: `https://ltpeis.xaltjdkj.cn:5501/prod-api/getInfo`,
-        // target: `http://192.168.0.104:5011`,
+        target: `http://192.168.0.104:5011`,
         // // target: `http://192.168.0.99:8080/ltkj-admin`,
-        target: `https://ltpeis.xaltjdkj.cn:5011/ltkj-admin`,
+        // target: `https://ltpeis.xaltjdkj.cn:5011/ltkj-admin`,
         changeOrigin: true,
         pathRewrite: {
           ['^' + process.env.VUE_APP_BASE_API]: ''

--
Gitblit v1.8.0