Переглянути джерело

联系人新增座机、传真,查重功能调整

qymljy 3 роки тому
батько
коміт
0a5fe1f193
32 змінених файлів з 1153 додано та 304 видалено
  1. 1 1
      src/Form/projectChange/add.vue
  2. 1 1
      src/Form/projectChange/edit.vue
  3. 4 4
      src/Form/publicCustomer/add.vue
  4. 1 1
      src/Form/publicCustomer/edit.vue
  5. 4 4
      src/Form/salerPrivatecustomer/add.vue
  6. 1 1
      src/Form/salerPrivatecustomer/edit.vue
  7. 1 1
      src/HDrpManagement/projectChange/modules/detail.vue
  8. 54 7
      src/HDrpManagement/projectChange/modules/modules/contacts/components/add.vue
  9. 82 13
      src/HDrpManagement/projectChange/modules/modules/contacts/components/edit.vue
  10. 1 1
      src/HDrpManagement/publicCustomer/modules/detail.vue
  11. 48 11
      src/HDrpManagement/publicCustomer/modules/detail/contacts/modules/add.vue
  12. 52 15
      src/HDrpManagement/publicCustomer/modules/detail/contacts/modules/edit.vue
  13. 146 88
      src/HManagement/addressList/mycontact/modules/addContact.vue
  14. 173 0
      src/HManagement/addressList/mycontact/modules/addContactCopy.vue
  15. 2 0
      src/HManagement/addressList/mycontact/modules/detail.vue
  16. 145 86
      src/HManagement/addressList/mycontact/modules/edit.vue
  17. 168 0
      src/HManagement/addressList/mycontact/modules/editCopy.vue
  18. 24 12
      src/HManagement/siteManage/securityConfig/modules/customerCheckRule.vue
  19. 22 10
      src/HManagement/siteManage/securityConfig/modules/projectCheckRule.vue
  20. 1 1
      src/SDrpManagement/salerPrivatecustomer/detail/customerDetail.vue
  21. 48 11
      src/SDrpManagement/salerPrivatecustomer/detail/modules/contacts/modules/add.vue
  22. 50 12
      src/SDrpManagement/salerPrivatecustomer/detail/modules/contacts/modules/edit.vue
  23. 1 1
      src/SManagement/orderclue_detail/components/changeCustomer.vue
  24. 1 1
      src/SManagement/orderclue_detail/components/changeProject.vue
  25. 15 1
      src/components/duplicatesCheck/competitorCheck.vue
  26. 16 2
      src/components/duplicatesCheck/customerChangeCheck.vue
  27. 25 5
      src/components/duplicatesCheck/customerCheck.vue
  28. 16 2
      src/components/duplicatesCheck/projectChangeCheck.vue
  29. 16 2
      src/components/duplicatesCheck/projectCheck.vue
  30. 27 6
      src/components/duplicatesCheck/publicCustomerCheck.vue
  31. 5 3
      src/components/duplicatesData/duplicatesCustomer.vue
  32. 2 1
      vue.config.js

+ 1 - 1
src/Form/projectChange/add.vue

@@ -321,7 +321,7 @@ export default {
       this.$refs.form.validate((valid) => {
         if (!valid) return false
         this.$refs.check.creatShow = true
-        this.$refs.check.listData()
+        this.$refs.check.queryRule()
       })
     },
     onSubmit(){

+ 1 - 1
src/Form/projectChange/edit.vue

@@ -326,7 +326,7 @@ export default {
         if (!valid) return false
         this.$refs.check.creatShow = true
         this.$refs.check.buttonTitle = '确定保存'
-        this.$refs.check.listData()
+        this.$refs.check.queryRule()
       })
     },
     onSubmit(){

+ 4 - 4
src/Form/publicCustomer/add.vue

@@ -327,13 +327,13 @@ export default {
           { required: true, message: '请选择公海池', trigger: 'blur'}
         ],
         contact: [
-          { required: true, message: '请输入法人', trigger: 'change,blur' },
+          { required: true, message: '请输入法人', trigger: 'blur' },
         ],
         telephone: [
-          { required: true, message: '请输入联系电话', trigger: 'change,blur' },
+          { required: true, message: '请输入联系电话', trigger: 'blur' },
         ],
         province: [
-          { required: true, message: '请选择省市县', trigger: 'change,blur' },
+          { required: true, message: '请选择省市县', trigger: 'change' },
         ],
       },
       customerParam:{
@@ -425,7 +425,7 @@ export default {
       this.$refs.form.validate((valid) => {
         if (!valid) return false
         this.$refs.check.creatShow = true
-        this.$refs.check.listData()
+        this.$refs.check.queryRule()
       })
     },
     onSubmit(){

+ 1 - 1
src/Form/publicCustomer/edit.vue

@@ -444,7 +444,7 @@ export default {
         if (!valid) return false
         this.$refs.check.creatShow = true
         this.$refs.check.buttonTitle = '确定保存'
-        this.$refs.check.listData()
+        this.$refs.check.queryRule()
       })
     },
     onSubmit(){

+ 4 - 4
src/Form/salerPrivatecustomer/add.vue

@@ -337,13 +337,13 @@ export default {
           { required: true, message: '还未选择客户类型', trigger: 'change' },
         ],
         contact: [
-          { required: true, message: '请输入法人', trigger: 'change,blur' },
+          { required: true, message: '请输入法人', trigger: 'blur' },
         ],
         telephone: [
-          { required: true, message: '请输入联系电话', trigger: 'change,blur' },
+          { required: true, message: '请输入联系电话', trigger: 'blur' },
         ],
         province: [
-          { required: true, message: '请选择省市县', trigger: 'change,blur' },
+          { required: true, message: '请选择省市县', trigger: 'blur' },
         ],
       },
       customerParam:{
@@ -449,7 +449,7 @@ export default {
      this.$refs.form.validate((valid) => {
        if (!valid) return false
        this.$refs.check.creatShow = true
-       this.$refs.check.listData()
+       this.$refs.check.queryRule()
      })
     },
     onClose () {

+ 1 - 1
src/Form/salerPrivatecustomer/edit.vue

@@ -399,7 +399,7 @@ export default {
         if (!valid) return false
         this.$refs.check.creatShow = true
         this.$refs.check.buttonTitle = '确定保存'
-        this.$refs.check.listData()
+        this.$refs.check.queryRule()
       })
     },
     onSubmit(){

+ 1 - 1
src/HDrpManagement/projectChange/modules/detail.vue

@@ -19,7 +19,7 @@
       <!-- 此区域提供了自定义操作按钮 -->
       <putPeople class="inline-16" @putSuccess="putSuccess" v-if="flagTag !== ''" :rowData="mainData" :flagTag="flagTag" :disabled="mainData.disabled"/>
       <recovery class="inline-16" v-if="tool.checkAuth($route.name,'recovery')  && mainData.status === '已失败'" :rowData="mainData" :disabled="mainData.disabled" @onRecovery="onSuccess"></recovery>
-      <duplicatesProject class="inline-16" :data="mainData" v-if="tagFlag && tool.checkAuth($route.name,'queryDuplicates') "></duplicatesProject>
+      <duplicatesProject class="inline-16" :data="mainData" v-if="tool.checkAuth($route.name,'queryDuplicates') "></duplicatesProject>
       <finish class="inline-16" v-if="tool.checkAuth($route.name,'finish')  && mainData.status === '跟进中'" :disabled="mainData.disabled" @onFinish="onSuccess"></finish>
       <Del class="inline-16" :id="mainData.sa_projectid" :nameId="20221020144302" :rowData="mainData" nameKey="sa_projectids" v-if="tool.checkAuth($route.name,'toVoid') " :disabled="mainData.disabled" @deleteSuccess="deleteSuccess"/>
     </div>

+ 54 - 7
src/HDrpManagement/projectChange/modules/modules/contacts/components/add.vue

@@ -159,8 +159,24 @@
               </el-form-item>
             </el-col>
             <el-col :span="24">
-              <el-form-item  label="手机号:" prop="phonenumber">
-                <el-input   autosize v-model="form.phonenumber" placeholder="请输入手机号码"></el-input>
+              <el-form-item>
+                <el-radio v-model="form.isTelephone" label="0">手机号</el-radio>
+                <el-radio v-model="form.isTelephone" label="1">座机电话</el-radio>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24" v-if="form.isTelephone == '1'">
+              <el-form-item label="电话:" prop="telephone" >
+                <el-input v-model="form.areaCode" style="width: 25%" autocomplete="on" placeholder="请填写区号"></el-input>
+                <span style="color: #999999">——</span>
+                <el-input v-model="form.telephone" style="width: 68%" autocomplete="on" placeholder="请填写座机电话"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24"  >
+              <el-form-item v-if="form.isTelephone == '0'" label="手机号:" prop="phonenumber" :rules="[
+              { required: true, message: '手机号码不能为空'},
+              { pattern:/^1[3-9][0-9]\d{8}$/, message: '请输入正确手机号码',trigger: 'blur' }
+            ]">
+                <el-input v-model="form.phonenumber" autocomplete="on" placeholder="请填写手机号码"></el-input>
               </el-form-item>
             </el-col>
             <el-col :span="24">
@@ -170,6 +186,11 @@
                 <el-input   autosize v-model="form.email" placeholder="请输入邮箱"></el-input>
               </el-form-item>
             </el-col>
+            <el-col :span="24">
+              <el-form-item  label="传真:" >
+                <el-input  autosize v-model="form.fax" placeholder="请输入传真" ></el-input>
+              </el-form-item>
+            </el-col>
             <el-col :span="24">
               <el-form-item  label="单位:" prop="enterprisename">
                 <el-popover
@@ -287,6 +308,24 @@ export default {
         callback();
       }
     };
+    var telephone = (rule,value,callback) =>{
+      if (this.form.areaCode === ''){
+        callback(new Error('区号不能为空'))
+      } else if (this.form.telephone === ''){
+        callback(new Error('座机号码不能为空'))
+      } else if (this.form.telephone !== '') {
+        if (this.form.telephone.length > 8){
+          callback(new Error('座机号码不合法,不得大于8位'))
+        }else if (this.form.telephone.length < 8) {
+          callback(new Error('座机号码不合法,不得小于8位'))
+        }else {
+          callback();
+        }
+      }
+      else {
+        callback();
+      }
+    }
     return {
       dialogFormVisible:false,
       visible:false,
@@ -311,18 +350,23 @@ export default {
         remarks: "",
         sys_phonebookid:'',
         ownerid: this.$route.query.id,
-        ownertable: "sa_project"
+        ownertable: "sa_project",
+        isTelephone:'0',
+        areaCode:'',
       },
       rules:{
         name: [
           { required: true, message: '姓名不能为空', trigger: 'blur,change' },
         ],
-        phonenumber: [
-          { required: true, validator: validateMobilePhone, trigger: 'blur' },
-        ],
+        // phonenumber: [
+        //   { required: true, validator: validateMobilePhone, trigger: 'blur' },
+        // ],
         enterprisename: [
           { required: true, message: '单位不能为空', trigger: 'blur,change' },
-        ]
+        ],
+        telephone:[
+          { required: true, validator: telephone, trigger: 'change' }
+        ],
       },
       enterpriseContact:{
         param:{
@@ -411,6 +455,9 @@ export default {
       this.form.sa_projectid = this.data.sa_projectid
       this.$refs['form'].validate(async (valid) => {
         if (!valid) return false
+        if (this.form.isTelephone == '1'){
+          this.form.phonenumber = this.form.areaCode + "-" + this.form.telephone
+        }
         const res = await this.$api.requested({
           "id": 20221219135502,
           "content": this.form

+ 82 - 13
src/HDrpManagement/projectChange/modules/modules/contacts/components/edit.vue

@@ -159,8 +159,24 @@
               </el-form-item>
             </el-col>
             <el-col :span="24">
-              <el-form-item  label="手机号:" prop="phonenumber">
-                <el-input   autosize v-model="form.phonenumber" placeholder="请输入手机号码"></el-input>
+              <el-form-item>
+                <el-radio v-model="form.isTelephone" label="0">手机号</el-radio>
+                <el-radio v-model="form.isTelephone" label="1">座机电话</el-radio>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24" v-if="form.isTelephone == '1'">
+              <el-form-item label="电话:" prop="telephone" >
+                <el-input v-model="form.areaCode" style="width: 25%" autocomplete="on" placeholder="请填写区号"></el-input>
+                <span style="color: #999999">——</span>
+                <el-input v-model="form.telephone" style="width: 68%" autocomplete="on" placeholder="请填写座机电话"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24"  >
+              <el-form-item v-if="form.isTelephone == '0'" label="手机号:" prop="phonenumber" :rules="[
+              { required: true, message: '手机号码不能为空'},
+              { pattern:/^1[3-9][0-9]\d{8}$/, message: '请输入正确手机号码',trigger: 'blur' }
+            ]">
+                <el-input v-model="form.phonenumber" autocomplete="on" placeholder="请填写手机号码"></el-input>
               </el-form-item>
             </el-col>
             <el-col :span="24">
@@ -170,6 +186,11 @@
                 <el-input   autosize v-model="form.email" placeholder="请输入邮箱"></el-input>
               </el-form-item>
             </el-col>
+            <el-col :span="24">
+              <el-form-item  label="传真:" >
+                <el-input  autosize v-model="form.fax" placeholder="请输入传真" ></el-input>
+              </el-form-item>
+            </el-col>
             <el-col :span="24">
               <el-form-item  label="单位:" prop="enterprisename">
                 <el-popover
@@ -329,6 +350,24 @@ export default {
         callback();
       }
     };
+    var telephone = (rule,value,callback) =>{
+      if (this.form.areaCode === ''){
+        callback(new Error('区号不能为空'))
+      } else if (this.form.telephone === ''){
+        callback(new Error('座机号码不能为空'))
+      } else if (this.form.telephone !== '') {
+        if (this.form.telephone.length > 8){
+          callback(new Error('座机号码不合法,不得大于8位'))
+        }else if (this.form.telephone.length < 8) {
+          callback(new Error('座机号码不合法,不得小于8位'))
+        }else {
+          callback();
+        }
+      }
+      else {
+        callback();
+      }
+    }
     return {
       dialogFormVisible:false,
       visible:false,
@@ -352,18 +391,23 @@ export default {
         remarks: "",
         sys_phonebookid:'',
         ownerid: this.$route.query.id,
-        ownertable: "sa_project"
+        ownertable: "sa_project",
+        isTelephone:'0',
+        areaCode:'',
       },
       rules:{
         name: [
           { required: true, message: '姓名不能为空', trigger: 'blur,change' },
         ],
-        phonenumber: [
-          { required: true, validator: validateMobilePhone, trigger: 'blur' },
-        ],
+        // phonenumber: [
+        //   { required: true, validator: validateMobilePhone, trigger: 'blur' },
+        // ],
         enterprisename: [
           { required: true, message: '单位不能为空', trigger: 'blur,change' },
-        ]
+        ],
+        telephone:[
+          { required: true, validator: telephone, trigger: 'change' }
+        ],
       },
       enterpriseContact:{
         param:{
@@ -444,23 +488,46 @@ export default {
       this.myCustomersList()
       this.enterpriseContactList()
       this.myContactList()
-      console.log(this.data,"联系人")
       this.form = Object.assign({},this.form,this.data)
-      console.log(this.form,"编辑联系人信息")
+      this.form.areaCode = this.data.telephone.substring(0,this.form.telephone.indexOf('-'))
+      this.form.telephone = this.data.telephone.substring(this.form.areaCode.length+1)
     },
     onSubmit(){
-      console.log(this.form,"添加联系人")
       /*this.form.sa_projectid = this.data.sa_projectid*/
       this.$refs['form'].validate(async (valid) => {
         if (!valid) return false
+        if (this.form.isTelephone == '1'){
+          this.form.phonenumber = this.form.areaCode + "-" + this.form.telephone
+        }
         const res = await this.$api.requested({
           "id": 20221219135502,
           "content": this.form
         })
         this.tool.showMessage(res,()=>{
           this.$emit("editSuccess")
-          this.$refs['form'].resetFields()
-          this.form = {}
+          this.$refs.form.resetFields()
+          this.form = {
+            contactsid: 0, //0表示新增,大于0表示选择的联系人
+            sa_projectid: 1, //项目id
+            sys_enterpriseid: 1, //关联的企业id
+            enterprisename:'',
+            name: "",
+            sex: "",
+            depname: "",
+            position: "",
+            isleader: 1,
+            birthday : "",
+            phonenumber: "",
+            email: "",
+            province: "",
+            city: "",
+            county: "",
+            address: "",
+            remarks: "",
+            sys_phonebookid:'',
+            isTelephone:'0',
+            areaCode:'',
+          }
           this.dialogFormVisible = false
         })
       })
@@ -598,7 +665,9 @@ export default {
         county: "",
         address: "",
         remarks: "",
-        sys_phonebookid:''
+        sys_phonebookid:'',
+        isTelephone:'0',
+        areaCode:'',
       }
       this.dialogFormVisible = false
     },

+ 1 - 1
src/HDrpManagement/publicCustomer/modules/detail.vue

@@ -25,7 +25,7 @@
         <div class="inline-16" v-if="tool.checkAuth($route.name,'distribution') && length === 0">
           <distribution  :data="mainData"  @setSuccess="onSuccess"></distribution>
         </div>
-        <duplicatesCustomer class="inline-16" v-if="tagFlag && tool.checkAuth($route.name,'queryDuplicates')" :data="mainData"></duplicatesCustomer>
+        <duplicatesCustomer class="inline-16" v-if="tool.checkAuth($route.name,'queryDuplicates')" :data="mainData"></duplicatesCustomer>
 <!--        <div class="inline-16" v-if="tool.checkAuth($route.name,'toVoid')">
           <to_void  :id="mainData.sa_customersid"  @toVoidSuccess="onSuccess"></to_void>
         </div>-->

+ 48 - 11
src/HDrpManagement/publicCustomer/modules/detail/contacts/modules/add.vue

@@ -159,8 +159,24 @@
               </el-form-item>
             </el-col>
             <el-col :span="24">
-              <el-form-item  label="手机号:" prop="phonenumber">
-                <el-input  autosize v-model="form.phonenumber" placeholder="请输入手机号码"></el-input>
+              <el-form-item>
+                <el-radio v-model="form.isTelephone" label="0">手机号</el-radio>
+                <el-radio v-model="form.isTelephone" label="1">座机电话</el-radio>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24" v-if="form.isTelephone == '1'">
+              <el-form-item label="电话:" prop="telephone" >
+                <el-input v-model="form.areaCode" style="width: 25%" autocomplete="on" placeholder="请填写区号"></el-input>
+                <span style="color: #999999">——</span>
+                <el-input v-model="form.telephone" style="width: 68%" autocomplete="on" placeholder="请填写座机电话"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24"  >
+              <el-form-item v-if="form.isTelephone == '0'" label="手机号:" prop="phonenumber" :rules="[
+              { required: true, message: '手机号码不能为空'},
+              { pattern:/^1[3-9][0-9]\d{8}$/, message: '请输入正确手机号码',trigger: 'blur' }
+            ]">
+                <el-input v-model="form.phonenumber" autocomplete="on" placeholder="请填写手机号码"></el-input>
               </el-form-item>
             </el-col>
             <el-col :span="24">
@@ -170,11 +186,6 @@
                 <el-input   autosize v-model="form.email" placeholder="请输入邮箱"></el-input>
               </el-form-item>
             </el-col>
-            <el-col :span="24">
-              <el-form-item  label="电话:" >
-                <el-input  autosize v-model="form.telephone" placeholder="请输入电话" ></el-input>
-              </el-form-item>
-            </el-col>
             <el-col :span="24">
               <el-form-item  label="传真:" >
                 <el-input  autosize v-model="form.fax" placeholder="请输入传真" ></el-input>
@@ -252,6 +263,24 @@ export default {
         callback();
       }
     };
+    var telephone = (rule,value,callback) =>{
+      if (this.form.areaCode === ''){
+        callback(new Error('区号不能为空'))
+      } else if (this.form.telephone === ''){
+        callback(new Error('座机号码不能为空'))
+      } else if (this.form.telephone !== '') {
+        if (this.form.telephone.length > 8){
+          callback(new Error('座机号码不合法,不得大于8位'))
+        }else if (this.form.telephone.length < 8) {
+          callback(new Error('座机号码不合法,不得小于8位'))
+        }else {
+          callback();
+        }
+      }
+      else {
+        callback();
+      }
+    }
     return {
       dialogFormVisible:false,
       visible:false,
@@ -278,15 +307,20 @@ export default {
         telephone:'',
         fax:'',
         ownerid: 1,
-        ownertable: "sa_customers"
+        ownertable: "sa_customers",
+        isTelephone:'0',
+        areaCode:'',
       },
       rules:{
         name: [
           { required: true, message: '姓名不能为空', trigger: 'blur,change' },
         ],
-        phonenumber: [
-          { required: true, validator: validateMobilePhone, trigger: 'blur' },
-        ]
+        // phonenumber: [
+        //   { required: true, validator: validateMobilePhone, trigger: 'blur' },
+        // ],
+        telephone:[
+          { required: true, validator: telephone, trigger: 'change' }
+        ],
       },
       enterpriseContact:{
         param:{
@@ -335,6 +369,9 @@ export default {
     onSubmit(){
       this.$refs['form'].validate(async (valid) => {
         if (!valid) return false
+        if (this.form.isTelephone == '1'){
+          this.form.phonenumber = this.form.areaCode + "-" + this.form.telephone
+        }
         const res = await this.$api.requested({
           "id": "20221018141802",
           "content": this.form

+ 52 - 15
src/HDrpManagement/publicCustomer/modules/detail/contacts/modules/edit.vue

@@ -155,9 +155,25 @@
                 </el-popover>
               </el-form-item>
             </el-col>
-            <el-col :span="20">
-              <el-form-item  label="手机号:" prop="phonenumber">
-                <el-input  autosize v-model="form.phonenumber" placeholder="请输入手机号码"></el-input>
+            <el-col :span="24">
+              <el-form-item>
+                <el-radio v-model="form.isTelephone" label="0">手机号</el-radio>
+                <el-radio v-model="form.isTelephone" label="1">座机电话</el-radio>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24" v-if="form.isTelephone == '1'">
+              <el-form-item label="电话:" prop="telephone" >
+                <el-input v-model="form.areaCode" style="width: 25%" autocomplete="on" placeholder="请填写区号"></el-input>
+                <span style="color: #999999">——</span>
+                <el-input v-model="form.telephone" style="width: 68%" autocomplete="on" placeholder="请填写座机电话"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24"  >
+              <el-form-item v-if="form.isTelephone == '0'" label="手机号:" prop="phonenumber" :rules="[
+              { required: true, message: '手机号码不能为空'},
+              { pattern:/^1[3-9][0-9]\d{8}$/, message: '请输入正确手机号码',trigger: 'blur' }
+            ]">
+                <el-input v-model="form.phonenumber" autocomplete="on" placeholder="请填写手机号码"></el-input>
               </el-form-item>
             </el-col>
             <el-col :span="20">
@@ -167,11 +183,6 @@
                 <el-input   autosize v-model="form.email" placeholder="请输入邮箱"></el-input>
               </el-form-item>
             </el-col>
-            <el-col :span="24">
-              <el-form-item  label="电话:" >
-                <el-input  autosize v-model="form.telephone" placeholder="请输入电话" ></el-input>
-              </el-form-item>
-            </el-col>
             <el-col :span="24">
               <el-form-item  label="传真:" >
                 <el-input  autosize v-model="form.fax" placeholder="请输入传真" ></el-input>
@@ -249,6 +260,24 @@ export default {
         callback();
       }
     };
+    var telephone = (rule,value,callback) =>{
+      if (this.form.areaCode === ''){
+        callback(new Error('区号不能为空'))
+      } else if (this.form.telephone === ''){
+        callback(new Error('座机号码不能为空'))
+      } else if (this.form.telephone !== '') {
+        if (this.form.telephone.length > 8){
+          callback(new Error('座机号码不合法,不得大于8位'))
+        }else if (this.form.telephone.length < 8) {
+          callback(new Error('座机号码不合法,不得小于8位'))
+        }else {
+          callback();
+        }
+      }
+      else {
+        callback();
+      }
+    }
     return {
       dialogFormVisible:false,
       visible:false,
@@ -275,15 +304,20 @@ export default {
         telephone:'',
         fax:'',
         ownerid: 1,
-        ownertable: "sa_customers"
+        ownertable: "sa_customers",
+        isTelephone:'0',
+        areaCode:'',
       },
       rules:{
         name: [
           { required: true, message: '姓名不能为空', trigger: 'blur,change' },
         ],
-        phonenumber: [
-          { required: true, validator: validateMobilePhone, trigger: 'blur' },
-        ]
+        // phonenumber: [
+        //   { required: true, validator: validateMobilePhone, trigger: 'blur' },
+        // ],
+        telephone:[
+          { required: true, validator: telephone, trigger: 'change' }
+        ],
       },
       enterpriseContact:{
         param:{
@@ -326,14 +360,17 @@ export default {
       this.enterpriseContactList()
       this.myContactList()
       this.form = Object.assign({},this.form,this.data)
-      console.log(this.$route.query.id)
       this.form.ownerid = this.$route.query.id
-      console.log(this.form)
+      this.form.areaCode = this.data.telephone.substring(0,this.form.telephone.indexOf('-'))
+      this.form.telephone = this.data.telephone.substring(this.form.areaCode.length+1)
     },
     onSubmit(){
-      console.log(this.form)
+
       this.$refs['form'].validate(async (valid) => {
         if (!valid) return false
+        if (this.form.isTelephone == '1'){
+          this.form.phonenumber = this.form.areaCode + "-" + this.form.telephone
+        }
         const res = await this.$api.requested({
           "id": "20221018141802",
           "content": this.form

+ 146 - 88
src/HManagement/addressList/mycontact/modules/addContact.vue

@@ -1,100 +1,124 @@
 <template>
   <div>
     <el-button type="primary" size="mini" icon="el-icon-plus" @click="onShow(dialogFormVisible = true)">新建联系人</el-button>
-    <el-dialog title="新建联系人" append-to-body :visible.sync="dialogFormVisible" width="50%">
-      <el-row :gutter="20">
-        <el-form :model="form" ref="form" label-position="right" label-width="80px" size="small">
-          <el-col :span="12">
-            <el-form-item label="姓名" prop="name" :rules="[
+    <el-drawer title="新建联系人" append-to-body :visible.sync="dialogFormVisible" size="664px" @close="onClose">
+      <div class="drawer__panel">
+        <el-row :gutter="20">
+          <el-form :model="form" ref="form" :rules="rules" label-position="right" label-width="80px" size="small">
+            <el-col :span="24">
+              <el-form-item label="姓名:" prop="name" :rules="[
               { required: true, message: '联系人姓名不能为空'},
             ]">
-              <el-input v-model="form.name" autocomplete="on" placeholder="输入联系人姓名"></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="性别">
-              <el-select v-model="form.sex" style="width:100%">
-                <el-option v-for="item in sys_options" :key="item.index" :value="item.value" :label="item.value"></el-option>
-              </el-select>
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="手机号码" prop="phonenumber" :rules="[
+                <el-input v-model="form.name" autocomplete="on" placeholder="请填写企业名称"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item>
+                <el-radio v-model="form.isTelephone" label="0">手机号</el-radio>
+                <el-radio v-model="form.isTelephone" label="1">座机电话</el-radio>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24" v-if="form.isTelephone == '1'">
+              <el-form-item label="电话:" prop="telephone" >
+                <el-input v-model="form.areaCode" style="width: 25%" autocomplete="on" placeholder="请填写区号"></el-input>
+                <span style="color: #999999">——</span>
+                <el-input v-model="form.telephone" style="width: 68%" autocomplete="on" placeholder="请填写座机电话"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24"  >
+              <el-form-item v-if="form.isTelephone == '0'" label="手机号:" prop="phonenumber" :rules="[
               { required: true, message: '手机号码不能为空'},
               { pattern:/^1[3-9][0-9]\d{8}$/, message: '请输入正确手机号码',trigger: 'blur' }
             ]">
-              <el-input v-model="form.phonenumber" autocomplete="on" placeholder="输入联系人手机号码"></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="生日">
-              <el-date-picker
-                style="width:100%"
-                v-model="form.birthday"
-                value-format="yyyy-MM-dd"
-                type="date"
-                placeholder="选择日期">
-              </el-date-picker>
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="邮箱" prop="email" :rules="[
+                <el-input v-model="form.phonenumber" autocomplete="on" placeholder="请填写手机号码"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="邮箱:" prop="email" :rules="[
               { pattern:/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/, message: '请输入正确邮箱',trigger: 'blur' }
             ]">
-              <el-input v-model="form.email" autocomplete="on" placeholder="输入联系人邮箱"></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="家庭住址">
-              <el-input v-model="form.homeaddress" autocomplete="on" placeholder="输入联系人家庭住址"></el-input>
-            </el-form-item>
-          </el-col>
-          <!-- <el-col :span="12">
-            <el-form-item label="微信">
-              <el-input v-model="form.wechat" autocomplete="on" placeholder="输入联系人微信"></el-input>
-            </el-form-item>
-          </el-col> -->
-          <el-col :span="12">
-            <el-form-item label="单位">
-              <el-input v-model="form.company" autocomplete="on" placeholder="输入联系人单位"></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="部门">
-              <el-input v-model="form.depname" autocomplete="on" placeholder="输入联系人部门"></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="职位">
-              <el-input v-model="form.position" autocomplete="on" placeholder="输入联系人职位"></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="标签">
-              <el-select v-model="tags" style="width:100%" multiple>
-                <el-option v-for="item in tagList" :key="item.index" :value="item.tag" :label="item.tag"></el-option>
-              </el-select>
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="群组">
-              <el-select v-model="form.sys_phonebookgroupid" style="width:100%">
-                <el-option v-for="item in group" :key="item.index" :value="item.sys_phonebookgroupid" :label="item.groupname"></el-option>
-              </el-select>
-            </el-form-item>
-          </el-col>
-          <el-col :span="24">
-            <el-form-item label="备注">
-              <el-input v-model="form.remarks" autocomplete="on" placeholder="输入联系人备注"></el-input>
-            </el-form-item>
-          </el-col>
-        </el-form>
-      </el-row>
-      <div slot="footer" class="dialog-footer">
-        <el-button size="small" style="width:120px" @click="dialogFormVisible = false">取 消</el-button>
+                <el-input v-model="form.email" autocomplete="on" placeholder="请填写邮箱"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="传真:" prop="fax">
+                <el-input v-model="form.fax" autocomplete="on" placeholder="请填写传真"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="单位:" prop="company">
+                <el-input v-model="form.company" autocomplete="on" placeholder="请填写单位"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="部门:" prop="depname">
+                <el-input v-model="form.depname" autocomplete="on" placeholder="请填写部门"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="职位:" prop="position">
+                <el-input v-model="form.position" autocomplete="on" placeholder="请填写职位"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="性别:" prop="sex">
+                <el-radio v-model="form.sex" label="男">男</el-radio>
+                <el-radio v-model="form.sex" label="女">女</el-radio>
+              </el-form-item>
+            </el-col>
+
+            <el-col :span="24">
+              <el-form-item label="生日" prop="birthday">
+                <el-date-picker
+                    style="width:100%"
+                    v-model="form.birthday"
+                    value-format="yyyy-MM-dd"
+                    type="date"
+                    placeholder="选择日期">
+                </el-date-picker>
+              </el-form-item>
+            </el-col>
+
+            <el-col :span="24">
+              <el-form-item label="家庭住址" prop="homeaddress">
+                <el-input v-model="form.homeaddress" autocomplete="on" placeholder="请填写家庭住址"></el-input>
+              </el-form-item>
+            </el-col>
+            <!-- <el-col :span="12">
+              <el-form-item label="微信">
+                <el-input v-model="form.wechat" autocomplete="on" placeholder="输入联系人微信"></el-input>
+              </el-form-item>
+            </el-col> -->
+
+            <el-col :span="24">
+              <el-form-item label="群组" prop="sys_phonebookgroupid">
+                <el-select v-model="form.sys_phonebookgroupid" style="width:100%">
+                  <el-option v-for="item in group" :key="item.index" :value="item.sys_phonebookgroupid" :label="item.groupname"></el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="标签" prop="tags">
+                <el-select v-model="tags" style="width:100%" multiple>
+                  <el-option v-for="item in tagList" :key="item.index" :value="item.tag" :label="item.tag"></el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+
+            <el-col :span="24">
+              <el-form-item label="备注" prop="remarks">
+                <el-input v-model="form.remarks" autocomplete="on" placeholder="输入联系人备注"></el-input>
+              </el-form-item>
+            </el-col>
+          </el-form>
+        </el-row>
+      </div>
+
+      <div class="fixed__btn__panel">
+        <el-button size="small" style="width:120px" @click="onClose">取 消</el-button>
         <el-button size="small" style="width:120px" type="primary" @click="addGroup()">确 定</el-button>
       </div>
-    </el-dialog>
+    </el-drawer>
   </div>
 </template>
 
@@ -104,6 +128,24 @@ import {mapGetters} from 'vuex'
 export default {
   props:['group','tagList'],
   data () {
+    var telephone = (rule,value,callback) =>{
+      if (this.form.areaCode === ''){
+        callback(new Error('区号不能为空'))
+      } else if (this.form.telephone === ''){
+        callback(new Error('座机号码不能为空'))
+      } else if (this.form.telephone !== '') {
+        if (this.form.telephone.length > 8){
+          callback(new Error('座机号码不合法,不得大于8位'))
+        }else if (this.form.telephone.length < 8) {
+          callback(new Error('座机号码不合法,不得小于8位'))
+        }else {
+          callback();
+        }
+      }
+      else {
+        callback();
+      }
+    }
     return {
       dialogFormVisible:false,
       form:{
@@ -119,9 +161,18 @@ export default {
         "birthday": '',
         "homeaddress": "",
         "remarks": "",
-        "tag": []
+        "tag": [],
+        "isTelephone":'0',
+        "fax":"",
+        "areaCode":'',
+        "telephone":''
       },
-      tags:[]
+      tags:[],
+      rules:{
+        telephone:[
+          { required: true, validator: telephone, trigger: 'change' }
+        ],
+      }
     }
   },
   watch: {
@@ -140,9 +191,11 @@ export default {
     addGroup () {
       this.$refs['form'].validate(async (valid) => {
         if (!valid) return false;
+        if (this.form.isTelephone == '1'){
+          this.form.phonenumber = this.form.areaCode + "-" + this.form.telephone
+        }
         const res = await this.$api.requested({
           "id": "20220831164503",
-          "version":1,
           "content": this.form
         })
         this.tool.showMessage(res,async()=>{
@@ -155,10 +208,15 @@ export default {
             }
           })
           this.dialogFormVisible = false
+          this.$refs.form.resetFields()
           this.$emit('onAddSuccess')
         })
       });
     },
+    onClose(){
+      this.dialogFormVisible = false
+      this.$refs.form.resetFields()
+    }
   },
   mounted () {
     this.$store.dispatch('optiontypeselect','sex')

+ 173 - 0
src/HManagement/addressList/mycontact/modules/addContactCopy.vue

@@ -0,0 +1,173 @@
+<template>
+  <div>
+    <el-button type="primary" size="mini" icon="el-icon-plus" @click="onShow(dialogFormVisible = true)">新建联系人</el-button>
+    <el-dialog title="新建联系人" append-to-body :visible.sync="dialogFormVisible" width="50%">
+      <el-row :gutter="20">
+        <el-form :model="form" ref="form" label-position="right" label-width="80px" size="small">
+          <el-col :span="12">
+            <el-form-item label="姓名" prop="name" :rules="[
+              { required: true, message: '联系人姓名不能为空'},
+            ]">
+              <el-input v-model="form.name" autocomplete="on" placeholder="输入联系人姓名"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="性别">
+              <el-select v-model="form.sex" style="width:100%">
+                <el-option v-for="item in sys_options" :key="item.index" :value="item.value" :label="item.value"></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="手机号码" prop="phonenumber" :rules="[
+              { required: true, message: '手机号码不能为空'},
+              { pattern:/^1[3-9][0-9]\d{8}$/, message: '请输入正确手机号码',trigger: 'blur' }
+            ]">
+              <el-input v-model="form.phonenumber" autocomplete="on" placeholder="输入联系人手机号码"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="生日">
+              <el-date-picker
+                style="width:100%"
+                v-model="form.birthday"
+                value-format="yyyy-MM-dd"
+                type="date"
+                placeholder="选择日期">
+              </el-date-picker>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="邮箱" prop="email" :rules="[
+              { pattern:/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/, message: '请输入正确邮箱',trigger: 'blur' }
+            ]">
+              <el-input v-model="form.email" autocomplete="on" placeholder="输入联系人邮箱"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="家庭住址">
+              <el-input v-model="form.homeaddress" autocomplete="on" placeholder="输入联系人家庭住址"></el-input>
+            </el-form-item>
+          </el-col>
+          <!-- <el-col :span="12">
+            <el-form-item label="微信">
+              <el-input v-model="form.wechat" autocomplete="on" placeholder="输入联系人微信"></el-input>
+            </el-form-item>
+          </el-col> -->
+          <el-col :span="12">
+            <el-form-item label="单位">
+              <el-input v-model="form.company" autocomplete="on" placeholder="输入联系人单位"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="部门">
+              <el-input v-model="form.depname" autocomplete="on" placeholder="输入联系人部门"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="职位">
+              <el-input v-model="form.position" autocomplete="on" placeholder="输入联系人职位"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="标签">
+              <el-select v-model="tags" style="width:100%" multiple>
+                <el-option v-for="item in tagList" :key="item.index" :value="item.tag" :label="item.tag"></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="群组">
+              <el-select v-model="form.sys_phonebookgroupid" style="width:100%">
+                <el-option v-for="item in group" :key="item.index" :value="item.sys_phonebookgroupid" :label="item.groupname"></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="24">
+            <el-form-item label="备注">
+              <el-input v-model="form.remarks" autocomplete="on" placeholder="输入联系人备注"></el-input>
+            </el-form-item>
+          </el-col>
+        </el-form>
+      </el-row>
+      <div slot="footer" class="dialog-footer">
+        <el-button size="small" style="width:120px" @click="dialogFormVisible = false">取 消</el-button>
+        <el-button size="small" style="width:120px" type="primary" @click="addGroup()">确 定</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import {mapGetters} from 'vuex'
+
+export default {
+  props:['group','tagList'],
+  data () {
+    return {
+      dialogFormVisible:false,
+      form:{
+        "sys_phonebookid":0,     //sys_phonebookid<=0时 为新增
+        "sys_phonebookgroupid":"",
+        "name": "",
+        "phonenumber": "",
+        "company": "",
+        "depname": "",
+        "position": "",
+        "email": "",
+        "sex": "男",
+        "birthday": '',
+        "homeaddress": "",
+        "remarks": "",
+        "tag": []
+      },
+      tags:[]
+    }
+  },
+  watch: {
+    dialogFormVisible (val) {
+     !val && this.$refs.form.resetFields();this.tags=[]
+    }
+  },
+  computed:{
+    ...mapGetters({
+      sys_options:'sys_options'
+    })
+  },
+  methods:{
+    onShow () {
+    },
+    addGroup () {
+      this.$refs['form'].validate(async (valid) => {
+        if (!valid) return false;
+        const res = await this.$api.requested({
+          "id": "20220831164503",
+          "version":1,
+          "content": this.form
+        })
+        this.tool.showMessage(res,async()=>{
+          let res2 = await this.$api.requested({
+            "id": 20220929090901,
+            "content": {
+                "ownertable":"sys_phonebook",
+                "ownerid":res.data.sys_phonebookid,
+                "datatag": this.tags
+            }
+          })
+          this.dialogFormVisible = false
+          this.$emit('onAddSuccess')
+        })
+      });
+    },
+  },
+  mounted () {
+    this.$store.dispatch('optiontypeselect','sex')
+  }
+}
+
+</script>
+<style scoped>
+/deep/.el-dialog__body {
+  padding-bottom: 0;
+}
+</style>

+ 2 - 0
src/HManagement/addressList/mycontact/modules/detail.vue

@@ -19,7 +19,9 @@
       <el-descriptions title="个人信息" :column="1">
         <el-descriptions-item label="姓名">{{activeContactsData.name}}</el-descriptions-item>
         <el-descriptions-item label="手机号">{{activeContactsData.phonenumber}}</el-descriptions-item>
+        <el-descriptions-item label="座机电话">{{activeContactsData.telephone}}</el-descriptions-item>
         <el-descriptions-item label="邮箱">{{activeContactsData.email}}</el-descriptions-item>
+        <el-descriptions-item label="传真">{{activeContactsData.fax}}</el-descriptions-item>
         <!-- <el-descriptions-item label="微信">{{activeContactsData.wechat}}</el-descriptions-item> -->
         <el-descriptions-item label="性别">{{activeContactsData.sex}}</el-descriptions-item>
         <el-descriptions-item label="单位">{{activeContactsData.company}}</el-descriptions-item>

+ 145 - 86
src/HManagement/addressList/mycontact/modules/edit.vue

@@ -1,100 +1,124 @@
 <template>
   <div class="inline-16">
     <el-button type="text" size="small" icon="el-icon-edit" @click="onShow(dialogFormVisible = true)" style="color:#333">编 辑</el-button>
-    <el-dialog title="编辑联系人" append-to-body :visible.sync="dialogFormVisible" width="50%">
-      <el-row :gutter="20">
-        <el-form :model="form" ref="form" label-position="right" label-width="80px" size="small">
-          <el-col :span="12">
-            <el-form-item label="姓名" prop="name" :rules="[
+    <el-drawer title="新建联系人" append-to-body :visible.sync="dialogFormVisible" size="664px">
+      <div class="drawer__panel">
+        <el-row :gutter="20">
+          <el-form :model="form" ref="form" :rules="rules" label-position="right" label-width="80px" size="small">
+            <el-col :span="24">
+              <el-form-item label="姓名:" prop="name" :rules="[
               { required: true, message: '联系人姓名不能为空'},
             ]">
-              <el-input v-model="form.name" autocomplete="on" placeholder="输入联系人姓名"></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="性别">
-              <el-select v-model="form.sex" style="width:100%">
-                <el-option v-for="item in sys_options" :key="item.index" :value="item.value" :label="item.value"></el-option>
-              </el-select>
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="手机号码" prop="phonenumber" :rules="[
+                <el-input v-model="form.name" autocomplete="on" placeholder="请填写企业名称"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item>
+                <el-radio v-model="form.isTelephone" label="0">手机号</el-radio>
+                <el-radio v-model="form.isTelephone" label="1">座机电话</el-radio>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24" v-if="form.isTelephone == '1'">
+              <el-form-item label="电话:" prop="telephone" >
+                <el-input v-model="form.areaCode" style="width: 25%" autocomplete="on" placeholder="请填写区号"></el-input>
+                <span style="color: #999999">——</span>
+                <el-input v-model="form.telephone" style="width: 68%" autocomplete="on" placeholder="请填写座机电话"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24"  >
+              <el-form-item v-if="form.isTelephone == '0'" label="手机号:" prop="phonenumber" :rules="[
               { required: true, message: '手机号码不能为空'},
               { pattern:/^1[3-9][0-9]\d{8}$/, message: '请输入正确手机号码',trigger: 'blur' }
             ]">
-              <el-input v-model="form.phonenumber" autocomplete="on" placeholder="输入联系人手机号码"></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="生日">
-              <el-date-picker
-                style="width:100%"
-                v-model="form.birthday"
-                value-format="yyyy-MM-dd"
-                type="date"
-                placeholder="选择日期">
-              </el-date-picker>
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="邮箱" prop="email" :rules="[
+                <el-input v-model="form.phonenumber" autocomplete="on" placeholder="请填写手机号码"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="邮箱:" prop="email" :rules="[
               { pattern:/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/, message: '请输入正确邮箱',trigger: 'blur' }
             ]">
-              <el-input v-model="form.email" autocomplete="on" placeholder="输入联系人邮箱"></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="家庭住址">
-              <el-input v-model="form.homeaddress" autocomplete="on" placeholder="输入联系人家庭住址"></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="微信">
-              <el-input v-model="form.wechat" autocomplete="on" placeholder="输入联系人微信"></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="单位">
-              <el-input v-model="form.company" autocomplete="on" placeholder="输入联系人单位"></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="部门">
-              <el-input v-model="form.depname" autocomplete="on" placeholder="输入联系人部门"></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="职位">
-              <el-input v-model="form.position" autocomplete="on" placeholder="输入联系人职位"></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="标签">
-              <el-select v-model="form.tag" style="width:100%" multiple>
-                <el-option v-for="item in tagList" :key="item.index" :value="item.tag" :label="item.tag"></el-option>
-              </el-select>
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="群组">
-              <el-select v-model="form.sys_phonebookgroupid" style="width:100%">
-                <el-option v-for="item in group" :key="item.index" :value="item.sys_phonebookgroupid" :label="item.groupname"></el-option>
-              </el-select>
-            </el-form-item>
-          </el-col>
-          <el-col :span="24">
-            <el-form-item label="备注">
-              <el-input v-model="form.remarks" autocomplete="on" placeholder="输入联系人备注"></el-input>
-            </el-form-item>
-          </el-col>
-        </el-form>
-      </el-row>
-      <div slot="footer" class="dialog-footer">
+                <el-input v-model="form.email" autocomplete="on" placeholder="请填写邮箱"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="传真:" prop="fax">
+                <el-input v-model="form.fax" autocomplete="on" placeholder="请填写传真"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="单位:" prop="company">
+                <el-input v-model="form.company" autocomplete="on" placeholder="请填写单位"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="部门:" prop="depname">
+                <el-input v-model="form.depname" autocomplete="on" placeholder="请填写部门"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="职位:" prop="position">
+                <el-input v-model="form.position" autocomplete="on" placeholder="请填写职位"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="性别:" prop="sex">
+                <el-radio v-model="form.sex" label="男">男</el-radio>
+                <el-radio v-model="form.sex" label="女">女</el-radio>
+              </el-form-item>
+            </el-col>
+
+            <el-col :span="24">
+              <el-form-item label="生日" prop="birthday">
+                <el-date-picker
+                    style="width:100%"
+                    v-model="form.birthday"
+                    value-format="yyyy-MM-dd"
+                    type="date"
+                    placeholder="选择日期">
+                </el-date-picker>
+              </el-form-item>
+            </el-col>
+
+            <el-col :span="24">
+              <el-form-item label="家庭住址" prop="homeaddress">
+                <el-input v-model="form.homeaddress" autocomplete="on" placeholder="请填写家庭住址"></el-input>
+              </el-form-item>
+            </el-col>
+            <!-- <el-col :span="12">
+              <el-form-item label="微信">
+                <el-input v-model="form.wechat" autocomplete="on" placeholder="输入联系人微信"></el-input>
+              </el-form-item>
+            </el-col> -->
+
+            <el-col :span="24">
+              <el-form-item label="群组" prop="sys_phonebookgroupid">
+                <el-select v-model="form.sys_phonebookgroupid" style="width:100%">
+                  <el-option v-for="item in group" :key="item.index" :value="item.sys_phonebookgroupid" :label="item.groupname"></el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="标签" prop="tags">
+                <el-select v-model="tags" style="width:100%" multiple>
+                  <el-option v-for="item in tagList" :key="item.index" :value="item.tag" :label="item.tag"></el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+
+            <el-col :span="24">
+              <el-form-item label="备注" prop="remarks">
+                <el-input v-model="form.remarks" autocomplete="on" placeholder="输入联系人备注"></el-input>
+              </el-form-item>
+            </el-col>
+          </el-form>
+        </el-row>
+      </div>
+
+      <div class="fixed__btn__panel">
         <el-button size="small" style="width:120px" @click="dialogFormVisible = false">取 消</el-button>
         <el-button size="small" style="width:120px" type="primary" @click="addGroup()">确 定</el-button>
       </div>
-    </el-dialog>
+    </el-drawer>
   </div>
 </template>
 
@@ -104,11 +128,30 @@ import {mapGetters} from 'vuex'
 export default {
   props:['group','data','tagList'],
   data () {
+    var telephone = (rule,value,callback) =>{
+      if (this.form.areaCode === ''){
+        callback(new Error('区号不能为空'))
+      } else if (this.form.telephone === ''){
+        callback(new Error('座机号码不能为空'))
+      } else if (this.form.telephone !== '') {
+        if (this.form.telephone.length > 8){
+          callback(new Error('座机号码不合法,不得大于8位'))
+        }else if (this.form.telephone.length < 8) {
+          callback(new Error('座机号码不合法,不得小于8位'))
+        }else {
+          callback();
+        }
+      }
+      else {
+        callback();
+      }
+    }
     return {
       dialogFormVisible:false,
       form:{
         "sys_phonebookid":0,     //sys_phonebookid<=0时 为新增
         "sys_phonebookgroupid":null,
+        "isTelephone":'0',
         "name": "",
         "phonenumber": "",
         "company": "",
@@ -119,9 +162,16 @@ export default {
         "birthday": "",
         "homeaddress": "",
         "remarks": "",
-        "tag": []
+        "tag": [],
+        "areaCode":'',
+        "telephone":''
       },
-      tags:[]
+      tags:[],
+      rules:{
+        telephone:[
+          { required: true, validator: telephone, trigger: 'change' }
+        ],
+      }
     }
   },
   computed:{
@@ -131,13 +181,22 @@ export default {
   },
   methods:{
     onShow () {
+      console.log(this.data.data,'data')
       this.form = Object.assign({},this.form,this.data.data)
+      console.log(this.form,'form')
+      this.form.areaCode = this.data.data.telephone.substring(0,this.form.telephone.indexOf('-'))
+      this.form.telephone = this.data.data.telephone.substring(this.form.areaCode.length+1)
+      console.log(this.form.areaCode)
+      console.log(this.form.telephone)
     },
     addGroup () {
       this.$refs['form'].validate(async (valid) => {
         if (!valid)  return false;
         this.tags = this.form.tag
         this.form.tag = []
+        if (this.form.isTelephone == '1'){
+          this.form.phonenumber = this.form.areaCode + "-" + this.form.telephone
+        }
         const res = await this.$api.requested({
           "id": "20220831164503",
           "version":1,

+ 168 - 0
src/HManagement/addressList/mycontact/modules/editCopy.vue

@@ -0,0 +1,168 @@
+<template>
+  <div class="inline-16">
+    <el-button type="text" size="small" icon="el-icon-edit" @click="onShow(dialogFormVisible = true)" style="color:#333">编 辑</el-button>
+    <el-dialog title="编辑联系人" append-to-body :visible.sync="dialogFormVisible" width="50%">
+      <el-row :gutter="20">
+        <el-form :model="form" ref="form" label-position="right" label-width="80px" size="small">
+          <el-col :span="12">
+            <el-form-item label="姓名" prop="name" :rules="[
+              { required: true, message: '联系人姓名不能为空'},
+            ]">
+              <el-input v-model="form.name" autocomplete="on" placeholder="输入联系人姓名"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="性别">
+              <el-select v-model="form.sex" style="width:100%">
+                <el-option v-for="item in sys_options" :key="item.index" :value="item.value" :label="item.value"></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="手机号码" prop="phonenumber" :rules="[
+              { required: true, message: '手机号码不能为空'},
+              { pattern:/^1[3-9][0-9]\d{8}$/, message: '请输入正确手机号码',trigger: 'blur' }
+            ]">
+              <el-input v-model="form.phonenumber" autocomplete="on" placeholder="输入联系人手机号码"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="生日">
+              <el-date-picker
+                style="width:100%"
+                v-model="form.birthday"
+                value-format="yyyy-MM-dd"
+                type="date"
+                placeholder="选择日期">
+              </el-date-picker>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="邮箱" prop="email" :rules="[
+              { pattern:/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/, message: '请输入正确邮箱',trigger: 'blur' }
+            ]">
+              <el-input v-model="form.email" autocomplete="on" placeholder="输入联系人邮箱"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="家庭住址">
+              <el-input v-model="form.homeaddress" autocomplete="on" placeholder="输入联系人家庭住址"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="微信">
+              <el-input v-model="form.wechat" autocomplete="on" placeholder="输入联系人微信"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="单位">
+              <el-input v-model="form.company" autocomplete="on" placeholder="输入联系人单位"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="部门">
+              <el-input v-model="form.depname" autocomplete="on" placeholder="输入联系人部门"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="职位">
+              <el-input v-model="form.position" autocomplete="on" placeholder="输入联系人职位"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="标签">
+              <el-select v-model="form.tag" style="width:100%" multiple>
+                <el-option v-for="item in tagList" :key="item.index" :value="item.tag" :label="item.tag"></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="群组">
+              <el-select v-model="form.sys_phonebookgroupid" style="width:100%">
+                <el-option v-for="item in group" :key="item.index" :value="item.sys_phonebookgroupid" :label="item.groupname"></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="24">
+            <el-form-item label="备注">
+              <el-input v-model="form.remarks" autocomplete="on" placeholder="输入联系人备注"></el-input>
+            </el-form-item>
+          </el-col>
+        </el-form>
+      </el-row>
+      <div slot="footer" class="dialog-footer">
+        <el-button size="small" style="width:120px" @click="dialogFormVisible = false">取 消</el-button>
+        <el-button size="small" style="width:120px" type="primary" @click="addGroup()">确 定</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import {mapGetters} from 'vuex'
+
+export default {
+  props:['group','data','tagList'],
+  data () {
+    return {
+      dialogFormVisible:false,
+      form:{
+        "sys_phonebookid":0,     //sys_phonebookid<=0时 为新增
+        "sys_phonebookgroupid":null,
+        "name": "",
+        "phonenumber": "",
+        "company": "",
+        "depname": "",
+        "position": "",
+        "email": "",
+        "sex": "男",
+        "birthday": "",
+        "homeaddress": "",
+        "remarks": "",
+        "tag": []
+      },
+      tags:[]
+    }
+  },
+  computed:{
+    ...mapGetters({
+      sys_options:'sys_options'
+    })
+  },
+  methods:{
+    onShow () {
+      this.form = Object.assign({},this.form,this.data.data)
+    },
+    addGroup () {
+      this.$refs['form'].validate(async (valid) => {
+        if (!valid)  return false;
+        this.tags = this.form.tag
+        this.form.tag = []
+        const res = await this.$api.requested({
+          "id": "20220831164503",
+          "version":1,
+          "content": this.form
+        })
+        this.tool.showMessage(res,async()=>{
+          let res2 = await this.$api.requested({
+            "id": 20220929090901,
+            "content": {
+                "ownertable":"sys_phonebook",
+                "ownerid":res.data.sys_phonebookid,
+                "datatag": this.tags
+            }
+          })
+          this.$emit('onEditSuccess',this.form)
+          this.dialogFormVisible = false
+        })
+      });
+    }
+  },
+  mounted () {
+    this.$store.dispatch('optiontypeselect','sex')
+  }
+}
+
+</script>
+<style>
+</style>

+ 24 - 12
src/HManagement/siteManage/securityConfig/modules/customerCheckRule.vue

@@ -23,7 +23,7 @@
             </el-select>
           </div>
           <div style="width: 100px;" class="inline-16" >
-            <el-select v-model="relation" placeholder="请选择" style="width: 100%"  size="mini">
+            <el-select v-model="factor1" placeholder="请选择" style="width: 100%"  size="mini">
               <el-option
                   v-for="item in relations"
                   :key="item.value"
@@ -53,7 +53,7 @@
             </el-select>
           </div>
           <div style="width: 100px;" class="inline-16" >
-            <el-select v-model="relation" placeholder="请选择" style="width: 100%"  size="mini">
+            <el-select v-model="factor2" placeholder="请选择" style="width: 100%"  size="mini">
               <el-option
                   v-for="item in relations"
                   :key="item.value"
@@ -83,7 +83,7 @@
             </el-select>
           </div>
           <div style="width: 100px;" class="inline-16" >
-            <el-select v-model="relation" placeholder="请选择" style="width: 100%"  size="mini">
+            <el-select v-model="factor3" placeholder="请选择" style="width: 100%"  size="mini">
               <el-option
                   v-for="item in relations"
                   :key="item.value"
@@ -115,10 +115,19 @@ export default {
       fields1: [],
       fields2: [],
       fields3: [],
-      relations: [{
-        value:'并且',
-        label: '并且'
-      }],
+      factor1:'',
+      factor2:'',
+      factor3:'',
+      relations: [
+        {
+          value:'and',
+          label: '并且'
+        },
+        {
+          value:'or',
+          label: '或者'
+        }
+      ],
       relation:''
     }
   },
@@ -136,9 +145,9 @@ export default {
         "content": {
           "pageNumber": 1,
           "pageSize": 50,
-          "typename": "tablecolumnselect",
+          "typename": "viewcolumnselect",
           "parameter": {
-            "table_name": "sa_customers"
+            "table_name": "v_customers_check"
           }
         }
       })
@@ -150,11 +159,11 @@ export default {
         "content": {
           "custcheckrule": {
             "fields1": this.fields1,
-            "factor1": "and",
+            "factor1": this.factor1,
             "fields2":this.fields2,
-            "factor2": "and",
+            "factor2": this.factor2,
             "fields3":this.fields3,
-            "factor3": "and"
+            "factor3": this.factor3
           }
         },
       })
@@ -181,6 +190,9 @@ export default {
       this.fields1 = res.data.custcheckrule.fields1
       this.fields2 = res.data.custcheckrule.fields2
       this.fields3 = res.data.custcheckrule.fields3
+      this.factor1 = res.data.custcheckrule.factor1
+      this.factor2 = res.data.custcheckrule.factor2
+      this.factor3 = res.data.custcheckrule.factor3
     }
   }
 }

+ 22 - 10
src/HManagement/siteManage/securityConfig/modules/projectCheckRule.vue

@@ -23,7 +23,7 @@
             </el-select>
           </div>
           <div style="width: 100px;" class="inline-16" >
-            <el-select v-model="relation" placeholder="请选择" style="width: 100%"  size="mini">
+            <el-select v-model="factor1" placeholder="请选择" style="width: 100%"  size="mini">
               <el-option
                   v-for="item in relations"
                   :key="item.value"
@@ -53,7 +53,7 @@
             </el-select>
           </div>
           <div style="width: 100px;" class="inline-16" >
-            <el-select v-model="relation" placeholder="请选择" style="width: 100%"  size="mini">
+            <el-select v-model="factor2" placeholder="请选择" style="width: 100%"  size="mini">
               <el-option
                   v-for="item in relations"
                   :key="item.value"
@@ -83,7 +83,7 @@
             </el-select>
           </div>
           <div style="width: 100px;" class="inline-16" >
-            <el-select v-model="relation" placeholder="请选择" style="width: 100%"  size="mini">
+            <el-select v-model="factor3" placeholder="请选择" style="width: 100%"  size="mini">
               <el-option
                   v-for="item in relations"
                   :key="item.value"
@@ -194,10 +194,19 @@ export default {
       fields1: [],
       fields2: [],
       fields3: [],
-      relations: [{
-        value:'并且',
-        label: '并且'
-      }],
+      factor1:'并且',
+      factor2:'并且',
+      factor3:'并且',
+      relations: [
+        {
+          value:'and',
+          label: '并且'
+        },
+        {
+          value:'or',
+          label: '或者'
+        }
+      ],
       relation:''
     }
   },
@@ -229,11 +238,11 @@ export default {
         "content": {
           "projectcheckrule": {
             "fields1": this.fields1,
-            "factor1": "and",
+            "factor1": this.factor1,
             "fields2":this.fields2,
-            "factor2": "and",
+            "factor2": this.factor2,
             "fields3":this.fields3,
-            "factor3": "and"
+            "factor3": this.factor3
           },
           "projectprotectionperiod":this.projectprotectionperiod
         },
@@ -262,6 +271,9 @@ export default {
       this.fields1 = res.data.projectcheckrule.fields1
       this.fields2 = res.data.projectcheckrule.fields2
       this.fields3 = res.data.projectcheckrule.fields3
+      this.factor1 = res.data.projectcheckrule.factor1
+      this.factor2 = res.data.projectcheckrule.factor2
+      this.factor3 = res.data.projectcheckrule.factor3
       this.projectprotectionperiod= res.data.projectprotectionperiod
     }
   }

+ 1 - 1
src/SDrpManagement/salerPrivatecustomer/detail/customerDetail.vue

@@ -23,7 +23,7 @@
         <statusChange class="inline-16" v-if="tool.checkAuth($route.name,'statusChange')" :disabled="mainData.disabled" :id="mainData.sa_customersid"  @statusChangeSuccess="statusChangeSuccess"></statusChange>
         <share class="inline-16" v-if="tool.checkAuth($route.name,'share') && mainData.sourcepoolname === ''" :disabled="mainData.disabled" :id="mainData.sa_customersid" @onshow="onSuccess" @shareSuccess="onSuccess"></share>
         <toBack class="inline-16" v-if="tool.checkAuth($route.name,'back') && mainData.sa_customerpoolid_source !== 0" :disabled="mainData.disabled" :data="mainData" @backSuccess="onSuccess"></toBack>
-        <duplicatesCustomer class="inline-16" v-if="tagFlag && tool.checkAuth($route.name,'queryDuplicates')" :data="mainData"></duplicatesCustomer>
+        <duplicatesCustomer class="inline-16" v-if="tool.checkAuth($route.name,'queryDuplicates')" :data="mainData"></duplicatesCustomer>
         <to_void class="inline-16" v-if="tool.checkAuth($route.name,'toVoid')" :id="mainData.sa_customersid" :disabled="mainData.disabled" @onshow="onSuccess" @toVoidSuccess="onSuccess"></to_void>
         <recovery class="inline-16" v-if="tool.checkAuth($route.name,'recovery') && mainData.sa_customerpoolid_source !== 0 " :data="mainData" @onshow="onSuccess" @backSuccess="onSuccess"></recovery>
 

+ 48 - 11
src/SDrpManagement/salerPrivatecustomer/detail/modules/contacts/modules/add.vue

@@ -159,8 +159,24 @@
               </el-form-item>
             </el-col>
             <el-col :span="24">
-              <el-form-item  label="手机号:" prop="phonenumber">
-                <el-input   autosize v-model="form.phonenumber" placeholder="请输入手机号码"></el-input>
+              <el-form-item>
+                <el-radio v-model="form.isTelephone" label="0">手机号</el-radio>
+                <el-radio v-model="form.isTelephone" label="1">座机电话</el-radio>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24" v-if="form.isTelephone == '1'">
+              <el-form-item label="电话:" prop="telephone" >
+                <el-input v-model="form.areaCode" style="width: 25%" autocomplete="on" placeholder="请填写区号"></el-input>
+                <span style="color: #999999">——</span>
+                <el-input v-model="form.telephone" style="width: 68%" autocomplete="on" placeholder="请填写座机电话"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24"  >
+              <el-form-item v-if="form.isTelephone == '0'" label="手机号:" prop="phonenumber" :rules="[
+              { required: true, message: '手机号码不能为空'},
+              { pattern:/^1[3-9][0-9]\d{8}$/, message: '请输入正确手机号码',trigger: 'blur' }
+            ]">
+                <el-input v-model="form.phonenumber" autocomplete="on" placeholder="请填写手机号码"></el-input>
               </el-form-item>
             </el-col>
             <el-col :span="24">
@@ -170,11 +186,6 @@
                 <el-input   autosize v-model="form.email" placeholder="请输入邮箱"></el-input>
               </el-form-item>
             </el-col>
-            <el-col :span="24">
-              <el-form-item  label="电话:" >
-                <el-input  autosize v-model="form.telephone" placeholder="请输入电话" ></el-input>
-              </el-form-item>
-            </el-col>
             <el-col :span="24">
               <el-form-item  label="传真:" >
                 <el-input  autosize v-model="form.fax" placeholder="请输入传真" ></el-input>
@@ -252,6 +263,24 @@ export default {
         callback();
       }
     };
+    var telephone = (rule,value,callback) =>{
+      if (this.form.areaCode === ''){
+        callback(new Error('区号不能为空'))
+      } else if (this.form.telephone === ''){
+        callback(new Error('座机号码不能为空'))
+      } else if (this.form.telephone !== '') {
+        if (this.form.telephone.length > 8){
+          callback(new Error('座机号码不合法,不得大于8位'))
+        }else if (this.form.telephone.length < 8) {
+          callback(new Error('座机号码不合法,不得小于8位'))
+        }else {
+          callback();
+        }
+      }
+      else {
+        callback();
+      }
+    }
     return {
       dialogFormVisible:false,
       visible:false,
@@ -278,15 +307,20 @@ export default {
         telephone:'',
         fax:'',
         ownerid: this.$route.query.id,
-        ownertable: "sa_customers"
+        ownertable: "sa_customers",
+        isTelephone:'0',
+        areaCode:'',
       },
       rules:{
         name: [
           { required: true, message: '姓名不能为空', trigger: 'blur,change' },
         ],
-        phonenumber: [
-          { required: true, validator: validateMobilePhone, trigger: 'blur' },
-        ]
+        // phonenumber: [
+        //   { required: true, validator: validateMobilePhone, trigger: 'blur' },
+        // ]
+        telephone:[
+          { required: true, validator: telephone, trigger: 'change' }
+        ],
       },
       enterpriseContact:{
         param:{
@@ -335,6 +369,9 @@ export default {
       console.log(this.form)
       this.$refs['form'].validate(async (valid) => {
         if (!valid) return false
+        if (this.form.isTelephone == '1'){
+          this.form.phonenumber = this.form.areaCode + "-" + this.form.telephone
+        }
         const res = await this.$api.requested({
           "id": "20221018141802",
           "content": this.form

+ 50 - 12
src/SDrpManagement/salerPrivatecustomer/detail/modules/contacts/modules/edit.vue

@@ -156,8 +156,24 @@
               </el-form-item>
             </el-col>
             <el-col :span="24">
-              <el-form-item  label="手机号:" prop="phonenumber">
-                <el-input  autosize v-model="form.phonenumber" placeholder="请输入手机号码"></el-input>
+              <el-form-item>
+                <el-radio v-model="form.isTelephone" label="0">手机号</el-radio>
+                <el-radio v-model="form.isTelephone" label="1">座机电话</el-radio>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24" v-if="form.isTelephone == '1'">
+              <el-form-item label="电话:" prop="telephone" >
+                <el-input v-model="form.areaCode" style="width: 25%" autocomplete="on" placeholder="请填写区号"></el-input>
+                <span style="color: #999999">——</span>
+                <el-input v-model="form.telephone" style="width: 68%" autocomplete="on" placeholder="请填写座机电话"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24"  >
+              <el-form-item v-if="form.isTelephone == '0'" label="手机号:" prop="phonenumber" :rules="[
+              { required: true, message: '手机号码不能为空'},
+              { pattern:/^1[3-9][0-9]\d{8}$/, message: '请输入正确手机号码',trigger: 'blur' }
+            ]">
+                <el-input v-model="form.phonenumber" autocomplete="on" placeholder="请填写手机号码"></el-input>
               </el-form-item>
             </el-col>
             <el-col :span="24">
@@ -167,11 +183,6 @@
                 <el-input   autosize v-model="form.email" placeholder="请输入邮箱"></el-input>
               </el-form-item>
             </el-col>
-            <el-col :span="24">
-              <el-form-item  label="电话:" >
-                <el-input  autosize v-model="form.telephone" placeholder="请输入电话" ></el-input>
-              </el-form-item>
-            </el-col>
             <el-col :span="24">
               <el-form-item  label="传真:" >
                 <el-input  autosize v-model="form.fax" placeholder="请输入传真" ></el-input>
@@ -249,6 +260,24 @@ export default {
         callback();
       }
     };
+    var telephone = (rule,value,callback) =>{
+      if (this.form.areaCode === ''){
+        callback(new Error('区号不能为空'))
+      } else if (this.form.telephone === ''){
+        callback(new Error('座机号码不能为空'))
+      } else if (this.form.telephone !== '') {
+        if (this.form.telephone.length > 8){
+          callback(new Error('座机号码不合法,不得大于8位'))
+        }else if (this.form.telephone.length < 8) {
+          callback(new Error('座机号码不合法,不得小于8位'))
+        }else {
+          callback();
+        }
+      }
+      else {
+        callback();
+      }
+    }
     return {
       dialogFormVisible:false,
       visible:false,
@@ -275,15 +304,20 @@ export default {
         telephone:'',
         fax:'',
         ownerid: this.$route.query.id,
-        ownertable: "sa_customers"
+        ownertable: "sa_customers",
+        isTelephone:'0',
+        areaCode:'',
       },
       rules:{
         name: [
           { required: true, message: '姓名不能为空', trigger: 'blur,change' },
         ],
-        phonenumber: [
-          { required: true, validator: validateMobilePhone, trigger: 'blur' },
-        ]
+        // phonenumber: [
+        //   { required: true, validator: validateMobilePhone, trigger: 'blur' },
+        // ],
+        telephone:[
+          { required: true, validator: telephone, trigger: 'change' }
+        ],
       },
       enterpriseContact:{
         param:{
@@ -326,13 +360,17 @@ export default {
       this.enterpriseContactList()
       this.myContactList()
       this.form = Object.assign({},this.form,this.data)
-      console.log(this.form)
+      this.form.areaCode = this.data.telephone.substring(0,this.form.telephone.indexOf('-'))
+      this.form.telephone = this.data.telephone.substring(this.form.areaCode.length+1)
 
     },
     onSubmit(){
 
       this.$refs['form'].validate(async (valid) => {
         if (!valid) return false
+        if (this.form.isTelephone == '1'){
+          this.form.phonenumber = this.form.areaCode + "-" + this.form.telephone
+        }
         const res = await this.$api.requested({
           "id": "20221018141802",
           "content": this.form

+ 1 - 1
src/SManagement/orderclue_detail/components/changeCustomer.vue

@@ -320,7 +320,7 @@ export default {
       this.$refs.form.validate((valid) => {
         if (!valid) return false
         this.$refs.check.creatShow = true
-        this.$refs.check.listData()
+        this.$refs.check.queryRule()
       })
     },
     async setTag(id){

+ 1 - 1
src/SManagement/orderclue_detail/components/changeProject.vue

@@ -348,7 +348,7 @@ export default {
       this.$refs.form.validate((valid) => {
         if (!valid) return false
         this.$refs.check.creatShow = true
-        this.$refs.check.listData()
+        this.$refs.check.queryRule()
       })
     },
     onSubmit(){

+ 15 - 1
src/components/duplicatesCheck/competitorCheck.vue

@@ -49,7 +49,10 @@ export default {
           "sa_competitorid":"",
           "enterprisename":"",
         },
-      }
+      },
+      fields1:[],
+      fields2:[],
+      fields3:[],
     }
   },
   methods:{
@@ -174,6 +177,17 @@ export default {
        this.setTag(id,resTagData)
      }
     },
+    /*查询规则*/
+    async queryRule(){
+      const res = await this.$api.requested({
+        "id": "20230410090502",
+        "content": {},
+      })
+      this.fields1 = res.data.custcheckrule.fields1
+      this.fields2 = res.data.custcheckrule.fields2
+      this.fields3 = res.data.custcheckrule.fields3
+      this.listData()
+    }
   },
   created() {
     this.tablecols = this.tool.tabelCol(this.$route.name).duplicatesCompetitorTable.tablecols

+ 16 - 2
src/components/duplicatesCheck/customerChangeCheck.vue

@@ -1,6 +1,6 @@
 <template>
   <div>
-    <el-button size="small" type="primary" @click="listData" class="inline-16 normal-btn-width">查 重</el-button>
+    <el-button size="small" type="primary" @click="queryRule" class="inline-16 normal-btn-width">查 重</el-button>
     <el-dialog title="重复客户" :visible.sync="dialogTableVisible" append-to-body width="1000px">
       <tableLayout :layout="tablecols"   :data="list" :opwidth="200" height="calc(100vh - 550px)" :width="true" :custom="true">
         <template v-slot:customcol="scope">
@@ -64,7 +64,10 @@ export default {
           "taxno":'',
           "address":''
         },
-      }
+      },
+      fields1:[],
+      fields2:[],
+      fields3:[],
     }
   },
   methods:{
@@ -152,6 +155,17 @@ export default {
       this.param.content.pageNumber = val
       this.listData()
     },
+    /*查询规则*/
+    async queryRule(){
+      const res = await this.$api.requested({
+        "id": "20230410090502",
+        "content": {},
+      })
+      this.fields1 = res.data.custcheckrule.fields1
+      this.fields2 = res.data.custcheckrule.fields2
+      this.fields3 = res.data.custcheckrule.fields3
+      this.listData()
+    }
   },
   created() {
     this.tablecols = this.tool.tabelCol(this.$route.name).duplicatesCustomerTable.tablecols

+ 25 - 5
src/components/duplicatesCheck/customerCheck.vue

@@ -1,6 +1,6 @@
 <template>
   <div>
-    <el-button size="small" type="primary" @click="listData" class="inline-16 normal-btn-width">查 重</el-button>
+    <el-button size="small" type="primary" @click="queryRule" class="inline-16 normal-btn-width">查 重</el-button>
     <el-dialog title="重复客户" :visible.sync="dialogTableVisible" append-to-body width="1000px">
       <tableLayout :layout="tablecols"   :data="list" :opwidth="200" height="calc(100vh - 550px)" :width="true" :custom="true">
         <template v-slot:customcol="scope">
@@ -64,15 +64,24 @@ export default {
           "taxno":'',
           "address":''
         },
-      }
+      },
+      fields1:[],
+      fields2:[],
+      fields3:[],
     }
   },
   methods:{
     async listData(){
       this.param.content.sa_customersid = this.data.sa_customersid || 0
-      this.param.content.enterprisename = this.data.enterprisename
-      this.param.content.taxno = this.data.taxno
-      this.param.content.address = this.data.address
+      this.fields1.forEach(item=>{
+        this.param.content[item] = this.data[item] || ""
+      })
+      this.fields2.forEach(item=>{
+        this.param.content[item] = this.data[item] || ""
+      })
+      this.fields3.forEach(item=>{
+        this.param.content[item] = this.data[item] || ""
+      })
       const res = await this.$api.requested(this.param)
       if (res.total > 0){
         this.list = res.data
@@ -193,6 +202,17 @@ export default {
       this.param.content.pageNumber = val
       this.listData()
     },
+    /*查询规则*/
+    async queryRule(){
+      const res = await this.$api.requested({
+        "id": "20230410090502",
+        "content": {},
+      })
+      this.fields1 = res.data.custcheckrule.fields1
+      this.fields2 = res.data.custcheckrule.fields2
+      this.fields3 = res.data.custcheckrule.fields3
+      this.listData()
+    }
   },
   created() {
     this.tablecols = this.tool.tabelCol(this.$route.name).duplicatesCustomerTable.tablecols

+ 16 - 2
src/components/duplicatesCheck/projectChangeCheck.vue

@@ -1,6 +1,6 @@
 <template>
   <div>
-    <el-button size="small" type="primary" @click="listData" class="inline-16 normal-btn-width">查 重</el-button>
+    <el-button size="small" type="primary" @click="queryRule" class="inline-16 normal-btn-width">查 重</el-button>
     <el-dialog title="重复客户" :visible.sync="dialogTableVisible" append-to-body width="1000px">
       <tableLayout :layout="tablecols"   :data="list" :opwidth="200" height="calc(100vh - 550px)" :width="true" :custom="true">
         <template v-slot:customcol="scope">
@@ -63,7 +63,10 @@ export default {
           "projectname":"",
           "address":""
         },
-      }
+      },
+      fields1:[],
+      fields2:[],
+      fields3:[],
     }
   },
   methods:{
@@ -186,6 +189,17 @@ export default {
       this.param.content.pageNumber = val
       this.listData()
     },
+    /*查询规则*/
+    async queryRule(){
+      const res = await this.$api.requested({
+        "id": "20230410090502",
+        "content": {},
+      })
+      this.fields1 = res.data.custcheckrule.fields1
+      this.fields2 = res.data.custcheckrule.fields2
+      this.fields3 = res.data.custcheckrule.fields3
+      this.listData()
+    }
   },
   created() {
     this.tablecols = this.tool.tabelCol(this.$route.name).duplicatesProjectTable.tablecols

+ 16 - 2
src/components/duplicatesCheck/projectCheck.vue

@@ -1,6 +1,6 @@
 <template>
   <div>
-    <el-button size="small" type="primary" @click="listData" class="inline-16 normal-btn-width">查 重</el-button>
+    <el-button size="small" type="primary" @click="queryRule" class="inline-16 normal-btn-width">查 重</el-button>
     <el-dialog title="重复项目" :visible.sync="dialogTableVisible" append-to-body width="1000px">
       <tableLayout :layout="tablecols"   :data="list" :opwidth="200" height="calc(100vh - 550px)" :width="true" :custom="true">
         <template v-slot:customcol="scope">
@@ -63,7 +63,10 @@ export default {
           "projectname":"",
           "address":""
         },
-      }
+      },
+      fields1:[],
+      fields2:[],
+      fields3:[],
     }
   },
   methods:{
@@ -227,6 +230,17 @@ export default {
        this.setTag(id,resTagData)
      }
     },
+    /*查询规则*/
+    async queryRule(){
+      const res = await this.$api.requested({
+        "id": "20230410090502",
+        "content": {},
+      })
+      this.fields1 = res.data.custcheckrule.fields1
+      this.fields2 = res.data.custcheckrule.fields2
+      this.fields3 = res.data.custcheckrule.fields3
+      this.listData()
+    }
   },
   created() {
     this.tablecols = this.tool.tabelCol(this.$route.name).duplicatesProjectTable.tablecols

+ 27 - 6
src/components/duplicatesCheck/publicCustomerCheck.vue

@@ -1,6 +1,6 @@
 <template>
   <div>
-    <el-button size="small" type="primary" @click="listData" class="inline-16 normal-btn-width">查 重</el-button>
+    <el-button size="small" type="primary" @click="queryRule" class="inline-16 normal-btn-width">查 重</el-button>
     <el-dialog title="重复客户" :visible.sync="dialogTableVisible" append-to-body width="1000px">
       <tableLayout :layout="tablecols"   :data="list" :opwidth="200" height="calc(100vh - 550px)" :width="true" :custom="true">
         <template v-slot:customcol="scope">
@@ -44,10 +44,11 @@
 <script>
 export default {
   name: "customerCheck",
-  props:["data",'creatShow'],
+  props:["data",],
   data(){
     return {
       dialogTableVisible:false,
+      creatShow:false,
       list:[],
       tablecols:[],
       total:0,
@@ -63,15 +64,24 @@ export default {
           "taxno":'',
           "address":''
         },
-      }
+      },
+      fields1:[],
+      fields2:[],
+      fields3:[],
     }
   },
   methods:{
     async listData(){
       this.param.content.sa_customersid = this.data.sa_customersid || 0
-      this.param.content.enterprisename = this.data.enterprisename
-      this.param.content.taxno = this.data.taxno
-      this.param.content.address = this.data.address
+      this.fields1.forEach(item=>{
+        this.param.content[item] = this.data[item] || ""
+      })
+      this.fields2.forEach(item=>{
+        this.param.content[item] = this.data[item] || ""
+      })
+      this.fields3.forEach(item=>{
+        this.param.content[item] = this.data[item] || ""
+      })
       const res = await this.$api.requested(this.param)
       if (res.total > 0){
         this.list = res.data
@@ -190,6 +200,17 @@ export default {
         this.setTag(id,resTagData)
       }
     },
+    /*查询规则*/
+    async queryRule(){
+      const res = await this.$api.requested({
+        "id": "20230410090502",
+        "content": {},
+      })
+      this.fields1 = res.data.custcheckrule.fields1
+      this.fields2 = res.data.custcheckrule.fields2
+      this.fields3 = res.data.custcheckrule.fields3
+      this.listData()
+    }
   },
   created() {
     this.tablecols = this.tool.tabelCol(this.$route.name).duplicatesCustomerTable.tablecols

+ 5 - 3
src/components/duplicatesData/duplicatesCustomer.vue

@@ -77,10 +77,12 @@ export default {
         this.param.content[item] = this.data[item] || ""
       })
       this.param.content.sa_customersid = this.data.sa_customersid
-      this.param.content.enterprisename = this.data.enterprisename
-      this.param.content.taxno = this.data.taxno
-      this.param.content.address = this.data.address
+      console.log(this.param)
+      // this.param.content.enterprisename = this.data.enterprisename
+      // this.param.content.taxno = this.data.taxno
+      // this.param.content.address = this.data.address
       const res = await this.$api.requested(this.param)
+      console.log(res,'res')
       this.list = res.data
       this.total = res.total
       this.currentPage = res.pageNumber

+ 2 - 1
vue.config.js

@@ -15,7 +15,8 @@ module.exports = {
       proxy: {
         '/apis': {
           target: 'http://61.164.207.46:8000',  // target host*/
-          // target: 'http://192.168.3.9:8090',  // target host*!
+          // target: 'http://192.168.3.9:8080',  // target host*!
+          // target: 'http://192.168.3.13:8080/',  // target host*/
           // target: 'https://oms.idcgroup.com.cn:8079/',  // target host
           // target: 'localhost:8080',  // target host
           ws: true,  // proxy websockets