qymljy 3 лет назад
Родитель
Сommit
91b66f025d

+ 14 - 10
src/Form/publicCustomer/add.vue

@@ -143,6 +143,16 @@
                 </el-popover>
               </el-form-item>
             </el-col>
+            <el-col :span="24">
+              <el-form-item label="省市县:" >
+                <el-cascader
+                    style="width: 100%"
+                    v-model="value"
+                    :options="basicData.data().areaData"
+                    @change="cascaderChange" clearable>
+                </el-cascader>
+              </el-form-item>
+            </el-col>
             <el-col :span="24">
               <el-form-item label="详细地址:" prop="address">
                 <el-input v-model="form.address" placeholder="详细地址"></el-input>
@@ -180,16 +190,6 @@
                 <el-input v-model="form.phonenumber" placeholder="联系电话"></el-input>
               </el-form-item>
             </el-col>-->
-            <el-col :span="24">
-              <el-form-item label="省市县:" >
-                <el-cascader
-                    style="width: 100%"
-                    v-model="value"
-                    :options="basicData.data().areaData"
-                    @change="cascaderChange" clearable>
-                </el-cascader>
-              </el-form-item>
-            </el-col>
             <el-col :span="24">
               <el-form-item label="公海池:" prop="sa_customerpoolid">
                 <el-select v-model="form.sa_customerpoolid" placeholder="请选择公海池" size="small">
@@ -319,6 +319,10 @@ export default {
         this.form.enterprisename = val.companyName
         this.form.address = val.address
         this.form.taxno = val.taxNum
+        this.value = [val.regProvince,val.regCity,val.regArea]
+        this.form.province = val.regProvince
+        this.form.city = val.regCity
+        this.form.county = val.regArea
       }).catch(() => {
         this.$message({
           type: 'info',

+ 22 - 21
src/Form/publicCustomer/edit.vue

@@ -82,6 +82,16 @@
                 </el-select>
               </el-form-item>
             </el-col>
+            <el-col :span="24">
+              <el-form-item label="省市县:" prop="province">
+                <el-cascader
+                    style="width: 100%"
+                    v-model="form.value"
+                    :options="basicData.data().areaData"
+                    @change="cascaderChange" clearable>
+                </el-cascader>
+              </el-form-item>
+            </el-col>
             <el-col :span="24">
               <el-form-item label="详细地址:" prop="address">
                 <el-input v-model="form.address" placeholder="详细地址"></el-input>
@@ -112,23 +122,6 @@
                 <el-input v-model="form.phonenumber" placeholder="联系电话"></el-input>
               </el-form-item>
             </el-col>
-            <el-col :span="24">
-              <el-form-item label="省市县:" prop="province">
-<!--                <el-cascader
-                  size="small"
-                  v-model="form.province"
-                  :options="arealist()"
-                  @change="cascaderChange"
-                  ref="cascader">
-                </el-cascader>-->
-                <el-cascader
-                    style="width: 100%"
-                    v-model="form.value"
-                    :options="basicData.data().areaData"
-                    @change="cascaderChange" clearable>
-                </el-cascader>
-              </el-form-item>
-            </el-col>
             <el-col :span="24">
               <el-form-item label="公海池:" prop="sa_customerpoolid">
                 <el-select v-model="form.sa_customerpoolid" placeholder="请选择公海池" size="small">
@@ -216,12 +209,15 @@ export default {
   methods:{
     editBtn () {
       this.dialogFormVisible = true
-      let arr = ['province','city','county']
+     /* let arr = ['province','city','county']
       arr.forEach(e=>{
         this.data[e] !== '' ?this.form.value.push(this.data[e]):''
-      })
+      })*/
      /* this.form = Object.assign({},this.form,this.data)*/
+      console.log(this.form)
       this.form = Object.assign({},this.form,this.data)
+      console.log(this.form)
+      this.form.value = [this.form.province,this.form.city,this.form.county]
 
     },
     /*工商查询*/
@@ -245,6 +241,11 @@ export default {
         this.form.enterprisename = val.companyName
         this.form.address = val.address
         this.form.taxno = val.taxNum
+        this.form.value = [val.regProvince,val.regCity,val.regArea]
+        this.form.province = val.regProvince
+        this.form.city = val.regCity
+        this.form.county = val.regArea
+        console.log(this.form)
       }).catch(() => {
         this.$message({
           type: 'info',
@@ -308,11 +309,11 @@ export default {
     onSubmit(){
       this.$refs['form'].validate(async (valid) => {
         if (!valid) return false
-        if (this.form.province) {
+        /*if (this.form.province) {
           this.form.city = this.form.province[1]
           this.form.county = this.form.province[2]
           this.form.province = this.form.province[0]
-        }
+        }*/
         const res = await this.$api.requested({
           "id": "20221010164302",
           "version":1,

+ 4 - 2
src/HDrpManagement/projectChange/modules/modules/productSet/add.vue

@@ -1,8 +1,8 @@
 <template>
   <div>
-    <el-button size="small" type="primary" @click="onShow" >新 建</el-button>
+    <el-button size="small" type="primary" @click="onShow" >添 加</el-button>
     <el-drawer
-        title="新建产品配置单"
+        title="添加产品配置单"
         :visible.sync="dialogFormVisible"
         size="80%"
         direction="rtl"
@@ -109,6 +109,7 @@
             </el-table-column>
             <el-table-column
                 prop="num"
+                fixed="right"
                 label="数量"
                 width="150">
               <template slot-scope="scope">
@@ -117,6 +118,7 @@
             </el-table-column>
             <el-table-column
                 prop="totalPrice"
+                fixed="right"
                 label="金额"
                 width="150">
               <template slot-scope="scope">

+ 2 - 2
src/HDrpManagement/publicCustomer/modules/detail/contacts/list.vue

@@ -14,12 +14,12 @@
         </el-input>
       </div>
     </div>
-    <tableLayout :layout="tablecols" :data="list" :opwidth="200" :custom="true"  :height="tableHieght" >
+    <tableLayout :layout="tablecols" :data="list" :opwidth="200" :custom="true"  :height="tableHieght" fixedName="operation">
       <template v-slot:customcol="scope">
         <p>{{scope.column.data[scope.column.columnname]}}</p>
       </template>
       <template v-slot:opreation="scope">
-        <edit v-if="tool.checkAuth($route.name,'update')" :data="scope.data" @updateSuccess="onSuccess"></edit>
+        <edit v-if="tool.checkAuth($route.name,'update')" :data="scope.data" :enterprisename="data.enterprisename"  @updateSuccess="onSuccess"></edit>
         <toVoid v-if="tool.checkAuth($route.name,'toVoid')" :data="scope.data" @toVoidSuccess="onSuccess"></toVoid>
       </template>
     </tableLayout>

+ 264 - 46
src/HDrpManagement/publicCustomer/modules/detail/contacts/modules/add.vue

@@ -1,10 +1,10 @@
 <template>
   <div>
-    <el-button size="small" type="primary" @click="onshow">新增联系人</el-button>
+    <el-button size="small" type="primary" @click="onshow">新</el-button>
     <el-drawer
-        title=" 新建联系人"
+        title="新建联系人"
         :visible.sync="dialogFormVisible"
-        size="25%"
+        size="600px"
         direction="rtl"
         append-to-body
         :show-close="false"
@@ -14,7 +14,148 @@
           <el-form :model="form" :rules="rules"  ref="form"  size="mini" label-position="right" label-width="75px">
             <el-col :span="24">
               <el-form-item  label="姓名:" prop="name">
-                <el-input  autosize v-model="form.name" placeholder="请输入姓名"></el-input>
+                <el-popover
+                    placement="bottom-start"
+                    width="900"
+                    v-model="enterpriseContact.show"
+                    trigger="click">
+                  <el-tabs type="border-card" @tab-click="changeTab">
+                    <el-tab-pane label="企业联系人">
+                      <el-table
+                          border
+                          :data="enterpriseContact.listData"
+                          @row-click="enterpriseContactSelect"
+                          :header-cell-style="{background:'#EEEEEE',color:'#333'}"
+                          size="mini">
+                        <el-table-column width="80" label="姓名">
+                          <template slot-scope="scope">
+                            <span >{{ scope.row.name?scope.row.name:'--' }}</span>
+                          </template>
+                        </el-table-column>
+                        <el-table-column width="120" label="手机号">
+                          <template slot-scope="scope">
+                            <span >{{ scope.row.phonenumber?scope.row.phonenumber:'--' }}</span>
+                          </template>
+                        </el-table-column>
+                        <el-table-column width="200"  label="邮箱">
+                          <template slot-scope="scope">
+                            <span >{{ scope.row.email?scope.row.email:'--' }}</span>
+                          </template>
+                        </el-table-column>
+                        <el-table-column width="120"  label="部门">
+                          <template slot-scope="scope">
+                            <span >{{ scope.row.position?scope.row.position:'--' }}</span>
+                          </template>
+                        </el-table-column>
+                        <el-table-column width="120"  label="职位">
+                          <template slot-scope="scope">
+                            <span >{{ scope.row.depname?scope.row.depname:'--' }}</span>
+                          </template>
+                        </el-table-column>
+                        <el-table-column width="80"  label="性别">
+                          <template slot-scope="scope">
+                            <span >{{ scope.row.sex?scope.row.sex:'--' }}</span>
+                          </template>
+                        </el-table-column>
+                        <el-table-column width="120"  label="生日">
+                          <template slot-scope="scope">
+                            <span >{{ scope.row.birthday?scope.row.birthday:'--' }}</span>
+                          </template>
+                        </el-table-column>
+                        <el-table-column width="300"  label="家庭住址">
+                          <template slot-scope="scope">
+                            <span >{{ scope.row.address?scope.row.address:'--' }}</span>
+                          </template>
+                        </el-table-column>
+                        <el-table-column width="200"  label="备注">
+                          <template slot-scope="scope">
+                            <span >{{ scope.row.remarks?scope.row.remarks:'--' }}</span>
+                          </template>
+                        </el-table-column>
+                      </el-table>
+                      <div style="display:flex;align-items:center;flex-direction:row-reverse;justify-content:space-between">
+                        <div class="container normal-panel" style="text-align:right">
+                          <el-pagination
+                              background
+                              @size-change="handleSizeChangeEnterprise"
+                              @current-change="handleCurrentChangeEnterprise"
+                              :current-page="enterpriseContact.currentPage"
+                              :page-sizes="[20, 50, 100, 200]"
+                              layout="total,sizes, prev, pager, next, jumper"
+                              :total="enterpriseContact.total">
+                          </el-pagination>
+                        </div>
+                        <slot name="footerLeft"></slot>
+                      </div>
+                    </el-tab-pane>
+                    <el-tab-pane label="我的联系人" >
+                      <el-table
+                          border
+                          :data="myContacts.listData"
+                          @row-click="myContactSelect"
+                          :header-cell-style="{background:'#EEEEEE',color:'#333'}"
+                          size="mini">
+                        <el-table-column width="80" label="姓名">
+                          <template slot-scope="scope">
+                            <span >{{ scope.row.name?scope.row.name:'--' }}</span>
+                          </template>
+                        </el-table-column>
+                        <el-table-column width="120" label="手机号">
+                          <template slot-scope="scope">
+                            <span >{{ scope.row.phonenumber?scope.row.phonenumber:'--' }}</span>
+                          </template>
+                        </el-table-column>
+                        <el-table-column width="200"  label="邮箱">
+                          <template slot-scope="scope">
+                            <span >{{ scope.row.email?scope.row.email:'--' }}</span>
+                          </template>
+                        </el-table-column>
+                        <el-table-column width="120"  label="部门">
+                          <template slot-scope="scope">
+                            <span >{{ scope.row.position?scope.row.position:'--' }}</span>
+                          </template>
+                        </el-table-column><el-table-column width="120"  label="职位">
+                        <template slot-scope="scope">
+                          <span >{{ scope.row.depname?scope.row.depname:'--' }}</span>
+                        </template>
+                      </el-table-column><el-table-column width="80"  label="性别">
+                        <template slot-scope="scope">
+                          <span >{{ scope.row.sex?scope.row.sex:'--' }}</span>
+                        </template>
+                      </el-table-column><el-table-column width="120"  label="生日">
+                        <template slot-scope="scope">
+                          <span >{{ scope.row.birthday?scope.row.birthday:'--' }}</span>
+                        </template>
+                      </el-table-column>
+                        <el-table-column width="300"  label="家庭住址">
+                          <template slot-scope="scope">
+                            <span >{{ scope.row.address?scope.row.address:'--' }}</span>
+                          </template>
+                        </el-table-column>
+                        <el-table-column width="200"  label="备注">
+                          <template slot-scope="scope">
+                            <span >{{ scope.row.remarks?scope.row.remarks:'--' }}</span>
+                          </template>
+                        </el-table-column>
+                      </el-table>
+                      <div style="display:flex;align-items:center;flex-direction:row-reverse;justify-content:space-between">
+                        <div class="container normal-panel" style="text-align:right">
+                          <el-pagination
+                              background
+                              @size-change="handleSizeChangeMy"
+                              @current-change="handleCurrentChangeMy"
+                              :current-page="myContacts.currentPage"
+                              :page-sizes="[20, 50, 100, 200]"
+                              layout="total,sizes, prev, pager, next, jumper"
+                              :total="myContacts.total">
+                          </el-pagination>
+                        </div>
+                        <slot name="footerLeft"></slot>
+                      </div>
+                    </el-tab-pane>
+                  </el-tabs>
+                  <el-input  slot="reference"  autosize v-model="form.name" placeholder="请输入姓名" @input="searchData"></el-input>
+                </el-popover>
               </el-form-item>
             </el-col>
             <el-col :span="24">
@@ -29,6 +170,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.enterprisename" placeholder="请输入单位" disabled></el-input>
+              </el-form-item>
+            </el-col>
             <el-col :span="24">
               <el-form-item  label="部门:" >
                 <el-input  autosize v-model="form.depname" placeholder="请输入部门"></el-input>
@@ -117,21 +263,57 @@ export default {
         county: "",
         workaddress: 0,
         isdefault: 1,
-        isprimary: 1
+        isprimary: 1,
+        sys_phonebookid:''
       },
       rules:{
         name: [
-          { required: true, message: '姓名不能为空', trigger: 'blur' },
+          { required: true, message: '姓名不能为空', trigger: 'blur,change' },
         ],
         phonenumber: [
           { required: true, validator: validateMobilePhone, trigger: 'blur' },
         ]
       },
+      enterpriseContact:{
+        param:{
+          "content": {
+            "sys_enterpriseid": '',
+            "pageNumber": 1,
+            "pageSize": 10,
+            "where": {
+              "condition": ""
+            }
+          },
+          "id": 20221219193002,
+        },
+        listData:[],
+        total:0,
+        currentPage:0,
+        show:false
+      },
+      myContacts:{
+        param:{
+          "id": 20221219161202,
+          "content": {
+            "pageNumber": 1,
+            "pageSize": 20,
+            "where": {
+              "condition": ""
+            }
+          }
+        },
+        listData:[],
+        total:0,
+        currentPage:0,
+        show:false
+      }
     }
   },
   methods:{
     onshow(){
       this.dialogFormVisible = true
+      this.enterpriseContactList()
+      this.myContactList()
       this.form.sys_enterpriseid = this.data.sys_enterpriseid
       this.form.enterprisename = this.data.enterprisename
     },
@@ -145,52 +327,88 @@ export default {
         this.tool.showMessage(res,()=>{
           this.$emit("insertSuccess")
           this.$refs['form'].resetFields()
-          this.form = {
-            contactsid: 0,
-            sys_enterpriseid: "",
-            name: "",
-            sex: "",
-            depname: "",
-            position: "",
-            birthday: "",
-            phonenumber: "",
-            email: "",
-            address: "",
-            remarks: "",
-            enterprisename:'',
-            province: "",
-            city: "",
-            county: "",
-            workaddress: 0,
-            isdefault: 1,
-            isprimary: 1
-          }
+          this.form = {}
           this.dialogFormVisible = false
         })
       })
     },
+    searchData(){
+      this.changeTab()
+    },
+    changeTab(){
+      this.enterpriseContactList()
+      this.myContactList()
+    },
+    /*企业联系人*/
+    async enterpriseContactList(){
+      this.enterpriseContact.param.content.where.condition = this.form.name
+      this.enterpriseContact.param.content.sys_enterpriseid = this.data.sys_enterpriseid
+      const res = await this.$api.requested(this.enterpriseContact.param)
+      this.enterpriseContact.listData = res.data
+      this.enterpriseContact.total = res.total
+      this.enterpriseContact.currentPage = res.pageNumber
+    },
+    /*选择企业联系人*/
+    enterpriseContactSelect(val){
+      this.form.name = val.name
+      this.form.phonenumber = val.phonenumber
+      this.form.email = val.email
+      this.form.position = val.position
+      this.form.depname = val.depname
+      this.form.sex = val.sex
+      this.form.birthday = val.birthday
+      this.form.address = val.address
+      this.form.remarks = val.remarks
+      this.enterpriseContact.show = false
+    },
+    handleSizeChangeEnterprise(val) {
+      // console.log(`每页 ${val} 条`);
+      this.enterpriseContact.param.content.pageSize = val
+      this.enterpriseContactList()
+    },
+    handleCurrentChangeEnterprise(val) {
+      // console.log(`当前页: ${val}`);
+      this.enterpriseContact.param.content.pageNumber = val
+      this.enterpriseContactList()
+    },
+    /*我的联系人*/
+    async myContactList(){
+      this.myContacts.param.content.where.condition = this.form.name
+      this.myContacts.param.content.sys_enterpriseid = this.data.sys_enterpriseid
+      const res = await this.$api.requested(this.myContacts.param)
+      console.log(res,"我的联系人")
+      this.myContacts.listData = res.data
+      this.myContacts.total = res.total
+      this.myContacts.currentPage = res.pageNumber
+    },
+    /*选择我的联系人*/
+    myContactSelect(val){
+      console.log(val,"选择的联系人")
+      this.form.name = val.name
+      this.form.phonenumber = val.phonenumber
+      this.form.email = val.email
+      this.form.position = val.position
+      this.form.depname = val.depname
+      this.form.sex = val.sex
+      this.form.birthday = val.birthday
+      this.form.address = val.address
+      this.form.remarks = val.remarks
+      this.form.sys_phonebookid = val.sys_phonebookid
+      this.enterpriseContact.show = false
+    },
+    handleSizeChangeMy(val) {
+      // console.log(`每页 ${val} 条`);
+      this.enterpriseContact.param.content.pageSize = val
+      this.enterpriseContactList()
+    },
+    handleCurrentChangeMy(val) {
+      // console.log(`当前页: ${val}`);
+      this.enterpriseContact.param.content.pageNumber = val
+      this.enterpriseContactList()
+    },
     onClose(){
       this.$refs['form'].resetFields()
-      this.form = {
-        contactsid: 0,
-        sys_enterpriseid: "",
-        name: "",
-        sex: "",
-        depname: "",
-        position: "",
-        birthday: "",
-        phonenumber: "",
-        email: "",
-        address: "",
-        remarks: "",
-        enterprisename:'',
-        province: "",
-        city: "",
-        county: "",
-        workaddress: 0,
-        isdefault: 1,
-        isprimary: 1
-      }
+      this.form = {}
       this.dialogFormVisible = false
     }
   }

+ 259 - 7
src/HDrpManagement/publicCustomer/modules/detail/contacts/modules/edit.vue

@@ -4,7 +4,7 @@
     <el-drawer
         title="编辑联系人"
         :visible.sync="dialogFormVisible"
-        size="25%"
+        size="600px"
         direction="rtl"
         append-to-body
         :show-close="false"
@@ -14,7 +14,145 @@
           <el-form :model="form" :rules="rules"  ref="form"  size="mini" label-position="right" label-width="75px">
             <el-col :span="20">
               <el-form-item  label="姓名:" prop="name">
-                <el-input  autosize v-model="form.name" placeholder="请输入姓名"></el-input>
+                <el-popover
+                    placement="bottom-start"
+                    width="900"
+                    v-model="enterpriseContact.show"
+                    trigger="click">
+                  <el-tabs type="border-card" @tab-click="changeTab">
+                    <el-tab-pane label="企业联系人">
+                      <el-table
+                          border
+                          :data="enterpriseContact.listData"
+                          @row-click="enterpriseContactSelect"
+                          :header-cell-style="{background:'#EEEEEE',color:'#333'}"
+                          size="mini">
+                        <el-table-column width="80" label="姓名">
+                          <template slot-scope="scope">
+                            <span >{{ scope.row.name?scope.row.name:'--' }}</span>
+                          </template>
+                        </el-table-column>
+                        <el-table-column width="120" label="手机号">
+                          <template slot-scope="scope">
+                            <span >{{ scope.row.phonenumber?scope.row.phonenumber:'--' }}</span>
+                          </template>
+                        </el-table-column>
+                        <el-table-column width="200"  label="邮箱">
+                          <template slot-scope="scope">
+                            <span >{{ scope.row.email?scope.row.email:'--' }}</span>
+                          </template>
+                        </el-table-column>
+                        <el-table-column width="120"  label="部门">
+                          <template slot-scope="scope">
+                            <span >{{ scope.row.position?scope.row.position:'--' }}</span>
+                          </template>
+                        </el-table-column><el-table-column width="120"  label="职位">
+                        <template slot-scope="scope">
+                          <span >{{ scope.row.depname?scope.row.depname:'--' }}</span>
+                        </template>
+                      </el-table-column><el-table-column width="80"  label="性别">
+                        <template slot-scope="scope">
+                          <span >{{ scope.row.sex?scope.row.sex:'--' }}</span>
+                        </template>
+                      </el-table-column><el-table-column width="120"  label="生日">
+                        <template slot-scope="scope">
+                          <span >{{ scope.row.birthday?scope.row.birthday:'--' }}</span>
+                        </template>
+                      </el-table-column>
+                        <el-table-column width="300"  label="家庭住址">
+                          <template slot-scope="scope">
+                            <span >{{ scope.row.address?scope.row.address:'--' }}</span>
+                          </template>
+                        </el-table-column>
+                        <el-table-column width="200"  label="备注">
+                          <template slot-scope="scope">
+                            <span >{{ scope.row.remarks?scope.row.remarks:'--' }}</span>
+                          </template>
+                        </el-table-column>
+                      </el-table>
+                      <div style="display:flex;align-items:center;flex-direction:row-reverse;justify-content:space-between">
+                        <div class="container normal-panel" style="text-align:right">
+                          <el-pagination
+                              background
+                              @size-change="handleSizeChangeEnterprise"
+                              @current-change="handleCurrentChangeEnterprise"
+                              :current-page="enterpriseContact.currentPage"
+                              :page-sizes="[20, 50, 100, 200]"
+                              layout="total,sizes, prev, pager, next, jumper"
+                              :total="enterpriseContact.total">
+                          </el-pagination>
+                        </div>
+                        <slot name="footerLeft"></slot>
+                      </div>
+                    </el-tab-pane>
+                    <el-tab-pane label="我的联系人" >
+                      <el-table
+                          border
+                          :data="myContacts.listData"
+                          @row-click="myContactSelect"
+                          :header-cell-style="{background:'#EEEEEE',color:'#333'}"
+                          size="mini">
+                        <el-table-column width="80" label="姓名">
+                          <template slot-scope="scope">
+                            <span >{{ scope.row.name?scope.row.name:'--' }}</span>
+                          </template>
+                        </el-table-column>
+                        <el-table-column width="120" label="手机号">
+                          <template slot-scope="scope">
+                            <span >{{ scope.row.phonenumber?scope.row.phonenumber:'--' }}</span>
+                          </template>
+                        </el-table-column>
+                        <el-table-column width="200"  label="邮箱">
+                          <template slot-scope="scope">
+                            <span >{{ scope.row.email?scope.row.email:'--' }}</span>
+                          </template>
+                        </el-table-column>
+                        <el-table-column width="120"  label="部门">
+                          <template slot-scope="scope">
+                            <span >{{ scope.row.position?scope.row.position:'--' }}</span>
+                          </template>
+                        </el-table-column><el-table-column width="120"  label="职位">
+                        <template slot-scope="scope">
+                          <span >{{ scope.row.depname?scope.row.depname:'--' }}</span>
+                        </template>
+                      </el-table-column><el-table-column width="80"  label="性别">
+                        <template slot-scope="scope">
+                          <span >{{ scope.row.sex?scope.row.sex:'--' }}</span>
+                        </template>
+                      </el-table-column><el-table-column width="120"  label="生日">
+                        <template slot-scope="scope">
+                          <span >{{ scope.row.birthday?scope.row.birthday:'--' }}</span>
+                        </template>
+                      </el-table-column>
+                        <el-table-column width="300"  label="家庭住址">
+                          <template slot-scope="scope">
+                            <span >{{ scope.row.address?scope.row.address:'--' }}</span>
+                          </template>
+                        </el-table-column>
+                        <el-table-column width="200"  label="备注">
+                          <template slot-scope="scope">
+                            <span >{{ scope.row.remarks?scope.row.remarks:'--' }}</span>
+                          </template>
+                        </el-table-column>
+                      </el-table>
+                      <div style="display:flex;align-items:center;flex-direction:row-reverse;justify-content:space-between">
+                        <div class="container normal-panel" style="text-align:right">
+                          <el-pagination
+                              background
+                              @size-change="handleSizeChangeMy"
+                              @current-change="handleCurrentChangeMy"
+                              :current-page="myContacts.currentPage"
+                              :page-sizes="[20, 50, 100, 200]"
+                              layout="total,sizes, prev, pager, next, jumper"
+                              :total="myContacts.total">
+                          </el-pagination>
+                        </div>
+                        <slot name="footerLeft"></slot>
+                      </div>
+                    </el-tab-pane>
+                  </el-tabs>
+                  <el-input  slot="reference"  autosize v-model="form.name" placeholder="请输入姓名" @input="searchData"></el-input>
+                </el-popover>
               </el-form-item>
             </el-col>
             <el-col :span="20">
@@ -29,6 +167,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="enterprisename" placeholder="请输入单位" disabled></el-input>
+              </el-form-item>
+            </el-col>
             <el-col :span="20">
               <el-form-item  label="部门:" >
                 <el-input  autosize v-model="form.depname" placeholder="请输入部门"></el-input>
@@ -81,7 +224,7 @@
 <script>
 export default {
   name: "edit",
-  props:["data"],
+  props:["data","enterprisename"],
   data(){
     var validateMobilePhone = (rule, value, callback) => {
       if (value === '') {
@@ -117,23 +260,58 @@ export default {
         county: "",
         workaddress: 0,
         isdefault: 1,
-        isprimary: 1
+        isprimary: 1,
+        sys_phonebookid:''
       },
       rules:{
         name: [
-          { required: true, message: '姓名不能为空', trigger: 'blur' },
+          { required: true, message: '姓名不能为空', trigger: 'blur,change' },
         ],
         phonenumber: [
           { required: true, validator: validateMobilePhone, trigger: 'blur' },
         ]
       },
+      enterpriseContact:{
+        param:{
+          "content": {
+            "sys_enterpriseid": '',
+            "pageNumber": 1,
+            "pageSize": 10,
+            "where": {
+              "condition": ""
+            }
+          },
+          "id": 20221219193002,
+        },
+        listData:[],
+        total:0,
+        currentPage:0,
+        show:false
+      },
+      myContacts:{
+        param:{
+          "id": 20221219161202,
+          "content": {
+            "pageNumber": 1,
+            "pageSize": 20,
+            "where": {
+              "condition": ""
+            }
+          }
+        },
+        listData:[],
+        total:0,
+        currentPage:0,
+        show:false
+      }
     }
   },
   methods:{
     onshow(){
       this.dialogFormVisible = true
-
-      this.form = this.data
+      this.enterpriseContactList()
+      this.myContactList()
+      this.form = Object.assign({},this.form,this.data)
 
     },
     onSubmit(){
@@ -151,6 +329,80 @@ export default {
         })
       })
     },
+    searchData(){
+      this.changeTab()
+    },
+    changeTab(){
+      this.enterpriseContactList()
+      this.myContactList()
+    },
+    /*企业联系人*/
+    async enterpriseContactList(){
+      this.enterpriseContact.param.content.where.condition = this.form.name
+      this.enterpriseContact.param.content.sys_enterpriseid = this.data.sys_enterpriseid
+      const res = await this.$api.requested(this.enterpriseContact.param)
+      this.enterpriseContact.listData = res.data
+      this.enterpriseContact.total = res.total
+      this.enterpriseContact.currentPage = res.pageNumber
+    },
+    /*选择企业联系人*/
+    enterpriseContactSelect(val){
+      this.form.name = val.name
+      this.form.phonenumber = val.phonenumber
+      this.form.email = val.email
+      this.form.position = val.position
+      this.form.depname = val.depname
+      this.form.sex = val.sex
+      this.form.birthday = val.birthday
+      this.form.address = val.address
+      this.form.remarks = val.remarks
+      this.enterpriseContact.show = false
+    },
+    handleSizeChangeEnterprise(val) {
+      // console.log(`每页 ${val} 条`);
+      this.enterpriseContact.param.content.pageSize = val
+      this.enterpriseContactList()
+    },
+    handleCurrentChangeEnterprise(val) {
+      // console.log(`当前页: ${val}`);
+      this.enterpriseContact.param.content.pageNumber = val
+      this.enterpriseContactList()
+    },
+    /*我的联系人*/
+    async myContactList(){
+      this.myContacts.param.content.where.condition = this.form.name
+      this.myContacts.param.content.sys_enterpriseid = this.data.sys_enterpriseid
+      const res = await this.$api.requested(this.myContacts.param)
+      console.log(res,"我的联系人")
+      this.myContacts.listData = res.data
+      this.myContacts.total = res.total
+      this.myContacts.currentPage = res.pageNumber
+    },
+    /*选择我的联系人*/
+    myContactSelect(val){
+      console.log(val,"选择的联系人")
+      this.form.name = val.name
+      this.form.phonenumber = val.phonenumber
+      this.form.email = val.email
+      this.form.position = val.position
+      this.form.depname = val.depname
+      this.form.sex = val.sex
+      this.form.birthday = val.birthday
+      this.form.address = val.address
+      this.form.remarks = val.remarks
+      this.form.sys_phonebookid = val.sys_phonebookid
+      this.enterpriseContact.show = false
+    },
+    handleSizeChangeMy(val) {
+      // console.log(`每页 ${val} 条`);
+      this.enterpriseContact.param.content.pageSize = val
+      this.enterpriseContactList()
+    },
+    handleCurrentChangeMy(val) {
+      // console.log(`当前页: ${val}`);
+      this.enterpriseContact.param.content.pageNumber = val
+      this.enterpriseContactList()
+    },
   }
 }
 </script>

+ 11 - 41
src/HDrpManagement/publicCustomer/modules/detail/contacts/modules/toVoid.vue

@@ -1,35 +1,10 @@
 <template>
   <div class="inline-16">
     <el-popconfirm
-        title="确定要作废该联系人嘛?"
+        title="确定要删除该联系人嘛?"
         @confirm="toVoidRow()">
-      <el-button slot="reference" size="small" type="text">作 废</el-button>
+      <el-button slot="reference" size="small" type="text">删 除</el-button>
     </el-popconfirm>
-    <el-dialog
-        :visible.sync="dialogToVoidVisible"
-        append-to-body
-        width="20%"
-        @close="dialogToVoidVisible = false"
-    >
-      <div slot="title" style="font-size: 15px">
-        作废联系人
-      </div>
-      <div>
-        <el-row :gutter="20">
-          <el-form :model="form" :rules="rules"  ref="form"  size="mini" label-position="right" label-width="90px">
-            <el-col :span="20">
-              <el-form-item  label="作废原因:" prop="deletereason">
-                <el-input type="textarea"  autosize v-model="form.deletereason" placeholder="请输入作废原因"></el-input>
-              </el-form-item>
-            </el-col>
-          </el-form>
-        </el-row>
-      </div>
-      <div class="dialog-footer">
-        <el-button size="small" @click="dialogToVoidVisible = false" class="normal-btn-width">取 消</el-button>
-        <el-button size="small" type="primary" @click="onSubmit"   class="normal-btn-width btn-primary">确 定</el-button>
-      </div>
-    </el-dialog>
   </div>
 </template>
 
@@ -39,7 +14,6 @@ export default {
   props:["data"],
   data(){
     return {
-      dialogToVoidVisible:false,
       form:{
         "contactsid": '',
         "sys_enterpriseid": '',
@@ -54,22 +28,18 @@ export default {
   },
   methods:{
     toVoidRow(){
-      this.dialogToVoidVisible = true
       this.form.sys_enterpriseid = this.data.sys_enterpriseid
       this.form.contactsid = this.data.contactsid
+      this.onSubmit()
     },
-    onSubmit(){
-      this.$refs['form'].validate(async (valid) => {
-        if (!valid) return false
-        const res = await this.$api.requested({
-          "id": "20221018145502",
-          "content": this.form
-        })
-        this.tool.showMessage(res,()=>{
-          this.$emit("toVoidSuccess")
-          this.$refs['form'].resetFields()
-          this.dialogToVoidVisible = false
-        })
+    async onSubmit(){
+      const res = await this.$api.requested({
+        "id": "20221018145502",
+        "content": this.form
+      })
+      this.tool.showMessage(res,()=>{
+        this.$emit("toVoidSuccess")
+        this.$refs['form'].resetFields()
       })
     }
   }

+ 2 - 3
src/HManagement/marketing2/saler/area/detail/index.vue

@@ -20,7 +20,7 @@
         
       </div>
       <div slot="slot0" >
-        <detailed ref="detailed"></detailed>
+        <detailed :detailData="mainData"></detailed>
       </div>
     </basicDetails>
   </div>
@@ -48,7 +48,6 @@ export default {
       this.mainData = res.data
       this.$refs['details'].param.content.sa_saleareaid = this.mainData.sa_saleareaid
       this.changeDataStructure()
-      this.$refs.detailed.detailedList(this.mainData)
     },
     // 监听切换数据,上一页,下一页
     pageChange (id,rowindex) {
@@ -86,7 +85,7 @@ export default {
           value:this.mainData.reporthrname
         },
         {
-          label:'最低权折扣(%)',
+          label:'最低权折扣(%)',
           value:this.mainData.discountrate*100
         }
       ]

+ 3 - 9
src/HManagement/marketing2/saler/area/detail/modules/detailedData.vue

@@ -10,6 +10,7 @@
         <el-descriptions-item label="邮箱">{{ detailData.email?detailData.email:"--" }}</el-descriptions-item>
         <el-descriptions-item label="负责区域">{{ detailData.areaname?detailData.areaname:"--" }}</el-descriptions-item>
         <el-descriptions-item label="汇报对象">{{ detailData.reporthrname?detailData.reporthrname:"--" }}</el-descriptions-item>
+        <el-descriptions-item label="最低授权折扣(%)" >{{ detailData.discountrate?detailData.discountrate*100:"--" }}</el-descriptions-item>
       </el-descriptions>
     </div>
 
@@ -28,9 +29,10 @@
 <script>
 export default {
   name: "detailedData",
+  props:["detailData"],
   data(){
     return {
-      detailData:[]
+
     }
   },
   mounted() {
@@ -38,14 +40,6 @@ export default {
     this.systemData(this.data)*/
   },
   methods:{
-    detailedList(data){
-      console.log("输出")
-      console.log(data)
-      this.detailData = data
-      /*this.sa_customersid = data.sa_customersid
-      this.basicData(data.sa_customersid)
-      this.systemData(data.sa_customersid)*/
-    }
   }
 }
 </script>

+ 2 - 2
src/SDrpManagement/salerPrivatecustomer/detail/modules/contacts/list.vue

@@ -13,12 +13,12 @@
         <i slot="prefix" class="el-icon-search" @click="queryClick()"></i>
       </el-input>
     </div>
-    <tableLayout :layout="tablecols" :data="list" :opwidth="200" :custom="true"  :height="tableHieght" >
+    <tableLayout :layout="tablecols" :data="list" :opwidth="200" :custom="true"  :height="tableHieght" fixedName="operation">
       <template v-slot:customcol="scope">
         <p>{{scope.column.data[scope.column.columnname]}}</p>
       </template>
       <template v-slot:opreation="scope">
-        <edit v-if="tool.checkAuth($route.name,'update')" :data="scope.data" @updateSuccess="onSuccess"></edit>
+        <edit v-if="tool.checkAuth($route.name,'update')" :data="scope.data" :enterprisename="data.enterprisename" @updateSuccess="onSuccess"></edit>
         <toVoid v-if="tool.checkAuth($route.name,'toVoid')" :data="scope.data" @toVoidSuccess="onSuccess"></toVoid>
       </template>
     </tableLayout>

+ 236 - 59
src/SDrpManagement/salerPrivatecustomer/detail/modules/contacts/modules/add.vue

@@ -2,7 +2,7 @@
   <div>
     <el-button size="small" type="primary" @click="onshow">新 建</el-button>
     <el-drawer
-        title=" 新建联系人"
+        title="新建联系人"
         :visible.sync="dialogFormVisible"
         size="600px"
         direction="rtl"
@@ -16,37 +16,151 @@
               <el-form-item  label="姓名:" prop="name">
                 <el-popover
                     placement="bottom-start"
-                    width="700"
+                    width="900"
+                    v-model="enterpriseContact.show"
                     trigger="click">
-                  <el-tabs type="border-card">
+                  <el-tabs type="border-card" @tab-click="changeTab">
                     <el-tab-pane label="企业联系人">
-                      <el-table :data="businessData" @row-click="businessSelect" :header-cell-style="{background:'#EEEEEE',color:'#333'}" size="mini">
-                        <el-table-column width="260" label="客户名称">
+                      <el-table
+                          border
+                          :data="enterpriseContact.listData"
+                          @row-click="enterpriseContactSelect"
+                          :header-cell-style="{background:'#EEEEEE',color:'#333'}"
+                          size="mini">
+                        <el-table-column width="80" label="姓名">
                           <template slot-scope="scope">
-                            <span style="margin-left: 10px">{{ scope.row.companyName?scope.row.companyName:'--' }}</span>
+                            <span >{{ scope.row.name?scope.row.name:'--' }}</span>
                           </template>
                         </el-table-column>
-                        <el-table-column  label="客户地址">
+                        <el-table-column width="120" label="手机号">
                           <template slot-scope="scope">
-                            <span style="margin-left: 10px">{{ scope.row.address?scope.row.address:'--' }}</span>
+                            <span >{{ scope.row.phonenumber?scope.row.phonenumber:'--' }}</span>
                           </template>
                         </el-table-column>
-                        <el-table-column width="200"  label="客户税号">
+                        <el-table-column width="200"  label="邮箱">
                           <template slot-scope="scope">
-                            <span style="margin-left: 10px">{{ scope.row.taxNum?scope.row.taxNum:'--' }}</span>
+                            <span >{{ scope.row.email?scope.row.email:'--' }}</span>
+                          </template>
+                        </el-table-column>
+                        <el-table-column width="120"  label="部门">
+                          <template slot-scope="scope">
+                            <span >{{ scope.row.position?scope.row.position:'--' }}</span>
+                          </template>
+                        </el-table-column>
+                        <el-table-column width="120"  label="职位">
+                        <template slot-scope="scope">
+                          <span >{{ scope.row.depname?scope.row.depname:'--' }}</span>
+                        </template>
+                        </el-table-column>
+                        <el-table-column width="80"  label="性别">
+                          <template slot-scope="scope">
+                            <span >{{ scope.row.sex?scope.row.sex:'--' }}</span>
+                          </template>
+                        </el-table-column>
+                        <el-table-column width="120"  label="生日">
+                          <template slot-scope="scope">
+                            <span >{{ scope.row.birthday?scope.row.birthday:'--' }}</span>
+                          </template>
+                        </el-table-column>
+                        <el-table-column width="300"  label="家庭住址">
+                          <template slot-scope="scope">
+                            <span >{{ scope.row.address?scope.row.address:'--' }}</span>
+                          </template>
+                        </el-table-column>
+                        <el-table-column width="200"  label="备注">
+                          <template slot-scope="scope">
+                            <span >{{ scope.row.remarks?scope.row.remarks:'--' }}</span>
                           </template>
                         </el-table-column>
                       </el-table>
+                      <div style="display:flex;align-items:center;flex-direction:row-reverse;justify-content:space-between">
+                        <div class="container normal-panel" style="text-align:right">
+                          <el-pagination
+                              background
+                              @size-change="handleSizeChangeEnterprise"
+                              @current-change="handleCurrentChangeEnterprise"
+                              :current-page="enterpriseContact.currentPage"
+                              :page-sizes="[20, 50, 100, 200]"
+                              layout="total,sizes, prev, pager, next, jumper"
+                              :total="enterpriseContact.total">
+                          </el-pagination>
+                        </div>
+                        <slot name="footerLeft"></slot>
+                      </div>
+                    </el-tab-pane>
+                    <el-tab-pane label="我的联系人" >
+                        <el-table
+                            border
+                            :data="myContacts.listData"
+                            @row-click="myContactSelect"
+                            :header-cell-style="{background:'#EEEEEE',color:'#333'}"
+                            size="mini">
+                          <el-table-column width="80" label="姓名">
+                            <template slot-scope="scope">
+                              <span >{{ scope.row.name?scope.row.name:'--' }}</span>
+                            </template>
+                          </el-table-column>
+                          <el-table-column width="120" label="手机号">
+                            <template slot-scope="scope">
+                              <span >{{ scope.row.phonenumber?scope.row.phonenumber:'--' }}</span>
+                            </template>
+                          </el-table-column>
+                          <el-table-column width="200"  label="邮箱">
+                            <template slot-scope="scope">
+                              <span >{{ scope.row.email?scope.row.email:'--' }}</span>
+                            </template>
+                          </el-table-column>
+                          <el-table-column width="120"  label="部门">
+                            <template slot-scope="scope">
+                              <span >{{ scope.row.position?scope.row.position:'--' }}</span>
+                            </template>
+                          </el-table-column><el-table-column width="120"  label="职位">
+                          <template slot-scope="scope">
+                            <span >{{ scope.row.depname?scope.row.depname:'--' }}</span>
+                          </template>
+                        </el-table-column><el-table-column width="80"  label="性别">
+                          <template slot-scope="scope">
+                            <span >{{ scope.row.sex?scope.row.sex:'--' }}</span>
+                          </template>
+                        </el-table-column><el-table-column width="120"  label="生日">
+                          <template slot-scope="scope">
+                            <span >{{ scope.row.birthday?scope.row.birthday:'--' }}</span>
+                          </template>
+                        </el-table-column>
+                          <el-table-column width="300"  label="家庭住址">
+                            <template slot-scope="scope">
+                              <span >{{ scope.row.address?scope.row.address:'--' }}</span>
+                            </template>
+                          </el-table-column>
+                          <el-table-column width="200"  label="备注">
+                            <template slot-scope="scope">
+                              <span >{{ scope.row.remarks?scope.row.remarks:'--' }}</span>
+                            </template>
+                          </el-table-column>
+                        </el-table>
+                        <div style="display:flex;align-items:center;flex-direction:row-reverse;justify-content:space-between">
+                          <div class="container normal-panel" style="text-align:right">
+                            <el-pagination
+                                background
+                                @size-change="handleSizeChangeMy"
+                                @current-change="handleCurrentChangeMy"
+                                :current-page="myContacts.currentPage"
+                                :page-sizes="[20, 50, 100, 200]"
+                                layout="total,sizes, prev, pager, next, jumper"
+                                :total="myContacts.total">
+                            </el-pagination>
+                          </div>
+                          <slot name="footerLeft"></slot>
+                        </div>
                     </el-tab-pane>
-                    <el-tab-pane label="我的联系人">我的联系人</el-tab-pane>
                   </el-tabs>
-                  <el-input slot="reference"  autosize v-model="form.name" placeholder="请输入姓名"></el-input>
+                  <el-input  slot="reference"  autosize v-model="form.name" placeholder="请输入姓名" @input="searchData"></el-input>
                 </el-popover>
               </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-input   autosize v-model="form.phonenumber" placeholder="请输入手机号码"></el-input>
               </el-form-item>
             </el-col>
             <el-col :span="24">
@@ -149,11 +263,12 @@ export default {
         county: "",
         workaddress: 0,
         isdefault: 1,
-        isprimary: 1
+        isprimary: 1,
+        sys_phonebookid:''
       },
       rules:{
         name: [
-          { required: true, message: '姓名不能为空', trigger: 'blur' },
+          { required: true, message: '姓名不能为空', trigger: 'blur,change' },
         ],
         phonenumber: [
           { required: true, validator: validateMobilePhone, trigger: 'blur' },
@@ -161,18 +276,44 @@ export default {
       },
       enterpriseContact:{
         param:{
-
+          "content": {
+            "sys_enterpriseid": '',
+            "pageNumber": 1,
+            "pageSize": 10,
+            "where": {
+              "condition": ""
+            }
+          },
+          "id": 20221219193002,
+        },
+        listData:[],
+        total:0,
+        currentPage:0,
+        show:false
+      },
+      myContacts:{
+        param:{
+          "id": 20221219161202,
+          "content": {
+            "pageNumber": 1,
+            "pageSize": 20,
+            "where": {
+              "condition": ""
+            }
+          }
         },
-        list:[],
+        listData:[],
         total:0,
         currentPage:0,
+        show:false
       }
     }
   },
   methods:{
     onshow(){
       this.dialogFormVisible = true
-
+      this.enterpriseContactList()
+      this.myContactList()
       this.form.sys_enterpriseid = this.data.sys_enterpriseid
       this.form.enterprisename = this.data.enterprisename
     },
@@ -187,54 +328,90 @@ export default {
         this.tool.showMessage(res,()=>{
           this.$emit("insertSuccess")
           this.$refs['form'].resetFields()
-          this.form = {
-            contactsid: 0,
-            sys_enterpriseid: "",
-            name: "",
-            sex: "",
-            depname: "",
-            position: "",
-            birthday: "",
-            phonenumber: "",
-            email: "",
-            address: "",
-            remarks: "",
-            enterprisename:'',
-            province: "",
-            city: "",
-            county: "",
-            workaddress: 0,
-            isdefault: 1,
-            isprimary: 1
-          }
+          this.form = {}
           this.dialogFormVisible = false
         })
       })
     },
+    searchData(){
+      this.changeTab()
+    },
+    changeTab(){
+      this.enterpriseContactList()
+      this.myContactList()
+    },
+    /*企业联系人*/
+    async enterpriseContactList(){
+      this.enterpriseContact.param.content.where.condition = this.form.name
+      this.enterpriseContact.param.content.sys_enterpriseid = this.data.sys_enterpriseid
+      const res = await this.$api.requested(this.enterpriseContact.param)
+      this.enterpriseContact.listData = res.data
+      this.enterpriseContact.total = res.total
+      this.enterpriseContact.currentPage = res.pageNumber
+    },
+    /*选择企业联系人*/
+    enterpriseContactSelect(val){
+      this.form.name = val.name
+      this.form.phonenumber = val.phonenumber
+      this.form.email = val.email
+      this.form.position = val.position
+      this.form.depname = val.depname
+      this.form.sex = val.sex
+      this.form.birthday = val.birthday
+      this.form.address = val.address
+      this.form.remarks = val.remarks
+      this.enterpriseContact.show = false
+    },
+    handleSizeChangeEnterprise(val) {
+      // console.log(`每页 ${val} 条`);
+      this.enterpriseContact.param.content.pageSize = val
+      this.enterpriseContactList()
+    },
+    handleCurrentChangeEnterprise(val) {
+      // console.log(`当前页: ${val}`);
+      this.enterpriseContact.param.content.pageNumber = val
+      this.enterpriseContactList()
+    },
+    /*我的联系人*/
+    async myContactList(){
+      this.myContacts.param.content.where.condition = this.form.name
+      this.myContacts.param.content.sys_enterpriseid = this.data.sys_enterpriseid
+      const res = await this.$api.requested(this.myContacts.param)
+      console.log(res,"我的联系人")
+      this.myContacts.listData = res.data
+      this.myContacts.total = res.total
+      this.myContacts.currentPage = res.pageNumber
+    },
+    /*选择我的联系人*/
+    myContactSelect(val){
+      console.log(val,"选择的联系人")
+      this.form.name = val.name
+      this.form.phonenumber = val.phonenumber
+      this.form.email = val.email
+      this.form.position = val.position
+      this.form.depname = val.depname
+      this.form.sex = val.sex
+      this.form.birthday = val.birthday
+      this.form.address = val.address
+      this.form.remarks = val.remarks
+      this.form.sys_phonebookid = val.sys_phonebookid
+      this.enterpriseContact.show = false
+    },
+    handleSizeChangeMy(val) {
+      // console.log(`每页 ${val} 条`);
+      this.enterpriseContact.param.content.pageSize = val
+      this.enterpriseContactList()
+    },
+    handleCurrentChangeMy(val) {
+      // console.log(`当前页: ${val}`);
+      this.enterpriseContact.param.content.pageNumber = val
+      this.enterpriseContactList()
+    },
     onClose(){
       this.$refs['form'].resetFields()
-      this.form = {
-        contactsid: 0,
-        sys_enterpriseid: "",
-        name: "",
-        sex: "",
-        depname: "",
-        position: "",
-        birthday: "",
-        phonenumber: "",
-        email: "",
-        address: "",
-        remarks: "",
-        enterprisename:'',
-        province: "",
-        city: "",
-        county: "",
-        workaddress: 0,
-        isdefault: 1,
-        isprimary: 1
-      }
+      this.form = {}
       this.dialogFormVisible = false
-    }
+    },
   }
 }
 </script>

+ 255 - 7
src/SDrpManagement/salerPrivatecustomer/detail/modules/contacts/modules/edit.vue

@@ -14,7 +14,145 @@
           <el-form :model="form" :rules="rules"  ref="form"  size="mini" label-position="right" label-width="75px">
             <el-col :span="24">
               <el-form-item  label="姓名:" prop="name">
-                <el-input  autosize v-model="form.name" placeholder="请输入姓名"></el-input>
+                <el-popover
+                    placement="bottom-start"
+                    width="900"
+                    v-model="enterpriseContact.show"
+                    trigger="click">
+                  <el-tabs type="border-card" @tab-click="changeTab">
+                    <el-tab-pane label="企业联系人">
+                      <el-table
+                          border
+                          :data="enterpriseContact.listData"
+                          @row-click="enterpriseContactSelect"
+                          :header-cell-style="{background:'#EEEEEE',color:'#333'}"
+                          size="mini">
+                        <el-table-column width="80" label="姓名">
+                          <template slot-scope="scope">
+                            <span >{{ scope.row.name?scope.row.name:'--' }}</span>
+                          </template>
+                        </el-table-column>
+                        <el-table-column width="120" label="手机号">
+                          <template slot-scope="scope">
+                            <span >{{ scope.row.phonenumber?scope.row.phonenumber:'--' }}</span>
+                          </template>
+                        </el-table-column>
+                        <el-table-column width="200"  label="邮箱">
+                          <template slot-scope="scope">
+                            <span >{{ scope.row.email?scope.row.email:'--' }}</span>
+                          </template>
+                        </el-table-column>
+                        <el-table-column width="120"  label="部门">
+                          <template slot-scope="scope">
+                            <span >{{ scope.row.position?scope.row.position:'--' }}</span>
+                          </template>
+                        </el-table-column><el-table-column width="120"  label="职位">
+                        <template slot-scope="scope">
+                          <span >{{ scope.row.depname?scope.row.depname:'--' }}</span>
+                        </template>
+                      </el-table-column><el-table-column width="80"  label="性别">
+                        <template slot-scope="scope">
+                          <span >{{ scope.row.sex?scope.row.sex:'--' }}</span>
+                        </template>
+                      </el-table-column><el-table-column width="120"  label="生日">
+                        <template slot-scope="scope">
+                          <span >{{ scope.row.birthday?scope.row.birthday:'--' }}</span>
+                        </template>
+                      </el-table-column>
+                        <el-table-column width="300"  label="家庭住址">
+                          <template slot-scope="scope">
+                            <span >{{ scope.row.address?scope.row.address:'--' }}</span>
+                          </template>
+                        </el-table-column>
+                        <el-table-column width="200"  label="备注">
+                          <template slot-scope="scope">
+                            <span >{{ scope.row.remarks?scope.row.remarks:'--' }}</span>
+                          </template>
+                        </el-table-column>
+                      </el-table>
+                      <div style="display:flex;align-items:center;flex-direction:row-reverse;justify-content:space-between">
+                        <div class="container normal-panel" style="text-align:right">
+                          <el-pagination
+                              background
+                              @size-change="handleSizeChangeEnterprise"
+                              @current-change="handleCurrentChangeEnterprise"
+                              :current-page="enterpriseContact.currentPage"
+                              :page-sizes="[20, 50, 100, 200]"
+                              layout="total,sizes, prev, pager, next, jumper"
+                              :total="enterpriseContact.total">
+                          </el-pagination>
+                        </div>
+                        <slot name="footerLeft"></slot>
+                      </div>
+                    </el-tab-pane>
+                    <el-tab-pane label="我的联系人" >
+                      <el-table
+                          border
+                          :data="myContacts.listData"
+                          @row-click="myContactSelect"
+                          :header-cell-style="{background:'#EEEEEE',color:'#333'}"
+                          size="mini">
+                        <el-table-column width="80" label="姓名">
+                          <template slot-scope="scope">
+                            <span >{{ scope.row.name?scope.row.name:'--' }}</span>
+                          </template>
+                        </el-table-column>
+                        <el-table-column width="120" label="手机号">
+                          <template slot-scope="scope">
+                            <span >{{ scope.row.phonenumber?scope.row.phonenumber:'--' }}</span>
+                          </template>
+                        </el-table-column>
+                        <el-table-column width="200"  label="邮箱">
+                          <template slot-scope="scope">
+                            <span >{{ scope.row.email?scope.row.email:'--' }}</span>
+                          </template>
+                        </el-table-column>
+                        <el-table-column width="120"  label="部门">
+                          <template slot-scope="scope">
+                            <span >{{ scope.row.position?scope.row.position:'--' }}</span>
+                          </template>
+                        </el-table-column><el-table-column width="120"  label="职位">
+                        <template slot-scope="scope">
+                          <span >{{ scope.row.depname?scope.row.depname:'--' }}</span>
+                        </template>
+                      </el-table-column><el-table-column width="80"  label="性别">
+                        <template slot-scope="scope">
+                          <span >{{ scope.row.sex?scope.row.sex:'--' }}</span>
+                        </template>
+                      </el-table-column><el-table-column width="120"  label="生日">
+                        <template slot-scope="scope">
+                          <span >{{ scope.row.birthday?scope.row.birthday:'--' }}</span>
+                        </template>
+                      </el-table-column>
+                        <el-table-column width="300"  label="家庭住址">
+                          <template slot-scope="scope">
+                            <span >{{ scope.row.address?scope.row.address:'--' }}</span>
+                          </template>
+                        </el-table-column>
+                        <el-table-column width="200"  label="备注">
+                          <template slot-scope="scope">
+                            <span >{{ scope.row.remarks?scope.row.remarks:'--' }}</span>
+                          </template>
+                        </el-table-column>
+                      </el-table>
+                      <div style="display:flex;align-items:center;flex-direction:row-reverse;justify-content:space-between">
+                        <div class="container normal-panel" style="text-align:right">
+                          <el-pagination
+                              background
+                              @size-change="handleSizeChangeMy"
+                              @current-change="handleCurrentChangeMy"
+                              :current-page="myContacts.currentPage"
+                              :page-sizes="[20, 50, 100, 200]"
+                              layout="total,sizes, prev, pager, next, jumper"
+                              :total="myContacts.total">
+                          </el-pagination>
+                        </div>
+                        <slot name="footerLeft"></slot>
+                      </div>
+                    </el-tab-pane>
+                  </el-tabs>
+                  <el-input  slot="reference"  autosize v-model="form.name" placeholder="请输入姓名" @input="searchData"></el-input>
+                </el-popover>
               </el-form-item>
             </el-col>
             <el-col :span="24">
@@ -31,7 +169,7 @@
             </el-col>
             <el-col :span="24">
               <el-form-item  label="单位:" >
-                <el-input  autosize v-model="form.enterprisename" placeholder="请输入单位" disabled></el-input>
+                <el-input  autosize v-model="enterprisename" placeholder="请输入单位" disabled></el-input>
               </el-form-item>
             </el-col>
             <el-col :span="24">
@@ -86,7 +224,7 @@
 <script>
 export default {
   name: "edit",
-  props:["data"],
+  props:["data","enterprisename"],
   data(){
     var validateMobilePhone = (rule, value, callback) => {
       if (value === '') {
@@ -122,23 +260,59 @@ export default {
         county: "",
         workaddress: 0,
         isdefault: 1,
-        isprimary: 1
+        isprimary: 1,
+        sys_phonebookid:''
       },
       rules:{
         name: [
-          { required: true, message: '姓名不能为空', trigger: 'blur' },
+          { required: true, message: '姓名不能为空', trigger: 'blur,change' },
         ],
         phonenumber: [
           { required: true, validator: validateMobilePhone, trigger: 'blur' },
         ]
       },
+      enterpriseContact:{
+        param:{
+          "content": {
+            "sys_enterpriseid": '',
+            "pageNumber": 1,
+            "pageSize": 10,
+            "where": {
+              "condition": ""
+            }
+          },
+          "id": 20221219193002,
+        },
+        listData:[],
+        total:0,
+        currentPage:0,
+        show:false
+      },
+      myContacts:{
+        param:{
+          "id": 20221219161202,
+          "content": {
+            "pageNumber": 1,
+            "pageSize": 20,
+            "where": {
+              "condition": ""
+            }
+          }
+        },
+        listData:[],
+        total:0,
+        currentPage:0,
+        show:false
+      }
     }
   },
   methods:{
     onshow(){
       this.dialogFormVisible = true
-
-      this.form = this.data
+      this.enterpriseContactList()
+      this.myContactList()
+      this.form = Object.assign({},this.form,this.data)
+      console.log(this.form)
 
     },
     onSubmit(){
@@ -156,6 +330,80 @@ export default {
         })
       })
     },
+    searchData(){
+      this.changeTab()
+    },
+    changeTab(){
+      this.enterpriseContactList()
+      this.myContactList()
+    },
+    /*企业联系人*/
+    async enterpriseContactList(){
+      this.enterpriseContact.param.content.where.condition = this.form.name
+      this.enterpriseContact.param.content.sys_enterpriseid = this.data.sys_enterpriseid
+      const res = await this.$api.requested(this.enterpriseContact.param)
+      this.enterpriseContact.listData = res.data
+      this.enterpriseContact.total = res.total
+      this.enterpriseContact.currentPage = res.pageNumber
+    },
+    /*选择企业联系人*/
+    enterpriseContactSelect(val){
+      this.form.name = val.name
+      this.form.phonenumber = val.phonenumber
+      this.form.email = val.email
+      this.form.position = val.position
+      this.form.depname = val.depname
+      this.form.sex = val.sex
+      this.form.birthday = val.birthday
+      this.form.address = val.address
+      this.form.remarks = val.remarks
+      this.enterpriseContact.show = false
+    },
+    handleSizeChangeEnterprise(val) {
+      // console.log(`每页 ${val} 条`);
+      this.enterpriseContact.param.content.pageSize = val
+      this.enterpriseContactList()
+    },
+    handleCurrentChangeEnterprise(val) {
+      // console.log(`当前页: ${val}`);
+      this.enterpriseContact.param.content.pageNumber = val
+      this.enterpriseContactList()
+    },
+    /*我的联系人*/
+    async myContactList(){
+      this.myContacts.param.content.where.condition = this.form.name
+      this.myContacts.param.content.sys_enterpriseid = this.data.sys_enterpriseid
+      const res = await this.$api.requested(this.myContacts.param)
+      console.log(res,"我的联系人")
+      this.myContacts.listData = res.data
+      this.myContacts.total = res.total
+      this.myContacts.currentPage = res.pageNumber
+    },
+    /*选择我的联系人*/
+    myContactSelect(val){
+      console.log(val,"选择的联系人")
+      this.form.name = val.name
+      this.form.phonenumber = val.phonenumber
+      this.form.email = val.email
+      this.form.position = val.position
+      this.form.depname = val.depname
+      this.form.sex = val.sex
+      this.form.birthday = val.birthday
+      this.form.address = val.address
+      this.form.remarks = val.remarks
+      this.form.sys_phonebookid = val.sys_phonebookid
+      this.enterpriseContact.show = false
+    },
+    handleSizeChangeMy(val) {
+      // console.log(`每页 ${val} 条`);
+      this.enterpriseContact.param.content.pageSize = val
+      this.enterpriseContactList()
+    },
+    handleCurrentChangeMy(val) {
+      // console.log(`当前页: ${val}`);
+      this.enterpriseContact.param.content.pageNumber = val
+      this.enterpriseContactList()
+    },
   }
 }
 </script>

+ 12 - 41
src/SDrpManagement/salerPrivatecustomer/detail/modules/contacts/modules/toVoid.vue

@@ -1,35 +1,10 @@
 <template>
   <div class="inline-16">
     <el-popconfirm
-        title="确定要作废该联系人嘛?"
+        title="确定要删除该联系人嘛?"
         @confirm="toVoidRow()">
-      <el-button slot="reference" size="small" type="text">作 废</el-button>
+      <el-button slot="reference" size="small" type="text">删 除</el-button>
     </el-popconfirm>
-    <el-dialog
-        :visible.sync="dialogToVoidVisible"
-        append-to-body
-        width="25%"
-        @close="dialogToVoidVisible = false"
-    >
-      <div slot="title" style="font-size: 15px">
-        作废联系人
-      </div>
-      <div>
-        <el-row :gutter="20">
-          <el-form :model="form" :rules="rules"  ref="form"  size="mini" label-position="right" label-width="90px">
-            <el-col :span="20">
-              <el-form-item  label="作废原因:" prop="deletereason">
-                <el-input type="textarea"  autosize v-model="form.deletereason" placeholder="请输入作废原因"></el-input>
-              </el-form-item>
-            </el-col>
-          </el-form>
-        </el-row>
-      </div>
-      <div class="dialog-footer">
-        <el-button size="small" @click="dialogToVoidVisible = false" class="normal-btn-width">取 消</el-button>
-        <el-button size="small" type="primary" @click="onSubmit"   class="normal-btn-width btn-primary">确 定</el-button>
-      </div>
-    </el-dialog>
   </div>
 </template>
 
@@ -39,7 +14,6 @@ export default {
   props:["data"],
   data(){
     return {
-      dialogToVoidVisible:false,
       form:{
         "contactsid": '',
         "sys_enterpriseid": '',
@@ -54,23 +28,20 @@ export default {
   },
   methods:{
     toVoidRow(){
-      this.dialogToVoidVisible = true
       this.form.sys_enterpriseid = this.data.sys_enterpriseid
       this.form.contactsid = this.data.contactsid
+      this.onSubmit()
     },
-    onSubmit(){
-      this.$refs['form'].validate(async (valid) => {
-        if (!valid) return false
-        const res = await this.$api.requested({
-          "id": "20221018145502",
-          "content": this.form
-        })
-        this.tool.showMessage(res,()=>{
-          this.$emit("toVoidSuccess")
-          this.$refs['form'].resetFields()
-          this.dialogToVoidVisible = false
-        })
+    async onSubmit(){
+      const res = await this.$api.requested({
+        "id": "20221018145502",
+        "content": this.form
       })
+      this.tool.showMessage(res,()=>{
+        this.$emit("toVoidSuccess")
+        this.$refs['form'].resetFields()
+      })
+
     }
   }
 }