Selaa lähdekoodia

通讯录暂存

qymljy 1 vuosi sitten
vanhempi
commit
b05b426a44

+ 44 - 8
src/HManagement/addressList/addressBook/detail/index.vue

@@ -1,6 +1,6 @@
 <template>
   <basicDetails
-      ref="details"
+      ref="detailsRef"
       :titleText="mainData.name"
       :editData="mainData"
       :mainAreaData="mainAreaData"
@@ -10,7 +10,7 @@
       :tabs="['详细信息','关联客户','关联项目']"
       >
     <template slot="customOperation">
-
+      <edit :data="mainData" :group="group" :tagList="tagList"></edit>
     </template>
     <div slot="slot0" >
       <detailed :detailData="mainData"></detailed>
@@ -28,16 +28,29 @@
 import detailed from '../modules/detailsData'
 import customerData from '../modules/customerData'
 import projectData from '../modules/projectData'
-
+import edit from '../modules/edit'
 export default {
   name: "index",
-  components:{detailed,customerData,projectData},
+  components:{detailed,customerData,projectData,edit},
   data(){
     return {
       mainData: {
         disabled:false,
       },
       mainAreaData:'',
+      groupParam:{
+        "id": "20220831164303",
+        "content": {
+          "nocache":true,
+          "where":{
+            "condition":"",
+            "groupname":"",
+            "tag":[]
+          }
+        }
+      },
+      group:[],
+      tagList:[]
     }
   },
   methods:{
@@ -54,11 +67,11 @@ export default {
       this.mainData = Object.assign({},this.mainData,res.data)
       console.log(res.data.groupname,'groupname')
       if (res.data.groupname == '客户联系人'){
-        this.$refs.details.$refs.group.queryGroupNew('sys_enterprise_contacts',res.data.sys_enterpriseid)
+        this.$refs.detailsRef.$refs.group.queryGroupNew('sys_enterprise_contacts',res.data.contactsid)
       }else if (res.data.groupname == '项目联系人'){
-        this.$refs.details.$refs.group.queryGroupNew('sa_project_contacts',res.data.sa_projectid)
+        this.$refs.detailsRef.$refs.group.queryGroupNew('sa_project_contacts',res.data.sa_project_contactsid)
       }else {
-        this.$refs.details.$refs.group.queryGroup()
+        this.$refs.detailsRef.$refs.group.queryGroup()
       }
       this.changeDataStructure()
     },
@@ -93,9 +106,32 @@ export default {
           value: this.mainData.leader
         }
       ]
-    }
+    },
+    async groupList(){
+      const res = await this.$api.requested(this.groupParam)
+      let k = 0
+      for (var i=0;i<res.data.length;i++){
+        if (res.data[i].groupname !== '项目联系人' && res.data[i].groupname !== '客户联系人' ){
+          this.group[k] = res.data[i]
+          k++
+        }
+      }
+      console.log(this.group,'groupList')
+    },
+    async getTagList () {
+      let res = await this.$api.requested({
+        "id": 20220929085401,
+        "content": {
+          "ownertable":"sys_phonebook",
+          "ownerid":102
+        }
+      })
+      this.tagList = res.data.option
+    },
   },
   mounted() {
+    this.groupList()
+    this.getTagList()
     this.queryMainData()
   }
 }

+ 13 - 2
src/HManagement/addressList/addressBook/index.vue

@@ -53,7 +53,7 @@
       </template>
       <template #tableLeft style="padding: 0">
         <div style="margin: 0;padding: 0;min-width: 320px;max-width: 320px;">
-          <myGroup @clickGroup="clickGroup"></myGroup>
+          <myGroup ref="groupRef" @clickGroup="clickGroup" @groupList="groupList"></myGroup>
         </div>
       </template>
       <template v-slot:tbList="scope">
@@ -214,7 +214,8 @@ export default {
       this.listData()
     },
     onAddSuccess () {
-      this.listData()
+      /*this.listData()*/
+      this.$refs.groupRef.listData()
     },
     hasDisabledTag (item) {
       let arr = []
@@ -247,6 +248,16 @@ export default {
       }
       this.listData(this.tabName)
     }*/
+    groupList(res){
+      let k = 0
+      for (var i=0;i<res.length;i++){
+        if (res[i].groupname !== '项目联系人' && res[i].groupname !== '客户联系人' ){
+          this.group[k] = res[i]
+          k++
+        }
+      }
+      console.log(this.group,'groupList')
+    }
   },
   mounted() {
     /*this.querytemplet()*/

+ 302 - 0
src/HManagement/addressList/addressBook/modules/edit.vue

@@ -0,0 +1,302 @@
+<template>
+  <div>
+    <el-button  size="small" type="primary"  @click="onShow" >编 辑</el-button>
+    <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="90px" 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="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: 'change' }
+            ]">
+                <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="wechatnum">
+                <el-input v-model="form.wechatnum" 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="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.groupname" style="width:100%" v-if="form.groupname == '客户联系人' || form.groupname == '项目联系人'" disabled>
+                  <el-option  :value="form.groupname" :label="form.groupname"></el-option>
+                </el-select>
+
+                <el-select v-model="form.sys_phonebookgroupid" style="width:100%" v-else>
+                  <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="form.tag" style="width:100%" multiple>
+                  <el-option v-for="item in tagsList" :key="item.index" :value="item" :label="item"></el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>-->
+            <el-col :span="24">
+              <el-form-item label="标签" prop="tags">
+                <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" :disabled="hasDisabledTag(item)"></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-drawer>
+  </div>
+</template>
+
+<script>
+import {mapGetters} from 'vuex'
+import {i18nGetResources} from "@wangeditor/editor";
+
+export default {
+  props:['data','tagList','allGroup','tagsList','group'],
+  data () {
+    var telephone = (rule,value,callback) =>{
+      if (this.form.areaCode === '' && this.form.telephone === ''){
+        callback(new Error('座机电话不能为空'))
+      } else {
+        var reg=/^0\d{2,3}-\d{7,8}$/
+        let telephone = this.form.areaCode + '-' + this.form.telephone
+        if (!reg.test(telephone)){
+          callback(new Error('请输入正确座机电话'))
+        }else {
+          callback();
+        }
+      }
+
+    }
+    return {
+      dialogFormVisible:false,
+      form:{
+        "sys_phonebookid":0,     //sys_phonebookid<=0时 为新增
+        "sys_phonebookgroupid":null,
+        "isTelephone":'0',
+        "name": "",
+        "phonenumber": "",
+        "company": "",
+        "depname": "",
+        "position": "",
+        "email": "",
+        "sex": "男",
+        "birthday": "",
+        "homeaddress": "",
+        "remarks": "",
+        "tag": [],
+        "areaCode":'',
+        "telephone":''
+      },
+      tags:[],
+      rules:{
+        telephone:[
+          { required: true, validator: telephone, trigger: 'change' }
+        ],
+      },
+    }
+  },
+  computed:{
+    ...mapGetters({
+      sys_options:'sys_options'
+    })
+  },
+  methods:{
+    onShow () {
+      this.dialogFormVisible = true
+      this.form = Object.assign({},this.form,this.data)
+      console.log(this.form,'form可编辑')
+      this.form.tag = this.data.tag1
+      if ((this.form.phonenumber.indexOf('-')) != '-1'){
+        this.form.isTelephone = '1'
+        this.form.areaCode = this.data.phonenumber.substring(0,this.form.phonenumber.indexOf('-'))
+        this.form.telephone = this.data.phonenumber.substring(this.form.areaCode.length+1)
+        this.form.phonenumber = ''
+      }else {
+        this.form.isTelephone = '0'
+        this.form.areaCode = ''
+        this.form.telephone = ''
+      }
+    },
+    addGroup () {
+      console.log(this.form,'form')
+      console.log(this.data,'data')
+      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
+        }
+        if (this.form.groupname === '客户联系人'){
+          const res = await this.$api.requested({
+            "id": "20221018141802",
+            "content": this.form
+          })
+          this.tool.showMessage(res,async()=>{
+            let res2 = await this.$api.requested({
+              "id": 20220929090901,
+              "content": {
+                "ownertable":"plm_unit",
+                "ownerid":this.data.contactsid,
+                "datatag": this.tags
+              }
+            })
+            this.$emit('onEditSuccess',this.form)
+            this.dialogFormVisible = false
+          })
+        }else if (this.form.groupname === '项目联系人'){
+
+          const res = await this.$api.requested({
+            "id": "20221018141802",
+            "content": this.form
+          })
+          this.tool.showMessage(res,async()=>{
+            let res2 = await this.$api.requested({
+              "id": 20220929090901,
+              "content": {
+                "ownertable":"sa_project_contacts",
+                "ownerid":this.data.sa_project_contactsid,
+                "datatag": this.tags
+              }
+            })
+            this.$emit('onEditSuccess',this.form)
+            this.dialogFormVisible = false
+          })
+        }else {
+          const res = await this.$api.requested({
+            "id": "20220831164503",
+            "content": this.form
+          })
+          this.tool.showMessage(res,async()=>{
+            let res2 = await this.$api.requested({
+              "id": 20220929090901,
+              "content": {
+                "ownertable":"sys_phonebook",
+                "ownerid":this.data.sys_phonebookid,
+                "datatag": this.tags
+              }
+            })
+            this.$emit('onEditSuccess',this.form)
+            this.dialogFormVisible = false
+          })
+        }
+
+      });
+    },
+    hasDisabledTag (item) {
+      let arr = []
+      let arr2 = []
+      arr = this.tagList.filter(item=>{
+        return this.tags.includes(item.tag)
+      })
+      arr.forEach(e=>{
+        arr2 = arr2.concat(e.mutextag)
+      })
+      arr2 = this.tags.length === 0?[]:arr2
+      let _isSame = arr2.some(tag=>item.tag === tag)
+      return _isSame
+    },
+
+  },
+  mounted () {
+    this.$store.dispatch('optiontypeselect','sex')
+  }
+}
+
+</script>
+<style>
+</style>

+ 2 - 0
src/HManagement/addressList/mycontact/index.vue

@@ -101,6 +101,8 @@ export default {
     async listData(){
       console.log(this.tag,'tag编辑结果')
       const res = await this.$api.requested(this.param)
+      console.log(res.data,'新增列表群组')
+      this.$emit('groupList',res.data)
       this.list = res.data
       this.$nextTick(()=>{
         this.$refs.grouplist.listData()

+ 4 - 1
src/HManagement/addressList/mycontact/modules/addContact.vue

@@ -1,6 +1,6 @@
 <template>
   <div>
-    <el-button type="primary" size="mini" icon="el-icon-plus" @click="onShow(dialogFormVisible = true)">新建联系人</el-button>
+    <el-button type="primary" size="mini" icon="el-icon-plus" @click="onShow">新建联系人</el-button>
     <el-drawer title="新建联系人" append-to-body :visible.sync="dialogFormVisible" size="664px" @close="onClose">
       <div class="drawer__panel">
         <el-row :gutter="20">
@@ -193,6 +193,9 @@ export default {
   },
   methods:{
     onShow () {
+      this.dialogFormVisible = true
+      console.log(this.tagList,'tagList')
+      console.log(this.group,'group')
     },
     addGroup () {
       this.$refs['form'].validate(async (valid) => {