qymljy 2 年之前
父节点
当前提交
88f2d522f4

+ 93 - 0
src/HManagement/addressList/addressBook/detail/index.vue

@@ -0,0 +1,93 @@
+<template>
+  <basicDetails
+      ref="details"
+      :titleText="mainData.name"
+      :editData="mainData"
+      :mainAreaData="mainAreaData"
+      idname="sys_phonebookid"
+      :pageChange="true"
+      :tabs="['详细信息','关联客户','关联项目']"
+      >
+    <div slot="slot0" >
+      <detailed :detailData="mainData"></detailed>
+    </div>
+    <div slot="slot1">
+      <customerData :data="mainData"></customerData>
+    </div>
+    <div slot="slot2">
+      <projectData :data="mainData"></projectData>
+    </div>
+  </basicDetails>
+</template>
+
+<script>
+import detailed from '../modules/detailsData'
+import customerData from '../modules/customerData'
+import projectData from '../modules/projectData'
+export default {
+  name: "index",
+  components:{detailed,customerData,projectData},
+  data(){
+    return {
+      mainData: {
+        disabled:false,
+      },
+      mainAreaData:'',
+    }
+  },
+  methods:{
+    async queryMainData(){
+      const res = await this.$api.requested({
+        "id": "20220914135203",
+        "content": {
+          "sys_phonebookid": this.$route.query.id,
+          "sa_project_contactsid": this.$route.query.sa_project_contactsid,
+          "contactsid":this.$route.query.contactsid
+        },
+      })
+      console.log(res.data,'res返回数据')
+      this.mainData = Object.assign({},this.mainData,res.data)
+      this.changeDataStructure()
+    },
+    changeDataStructure () {
+      this.mainAreaData = [
+        {
+          label:'姓名',
+          value: this.mainData.name
+        },
+        {
+          label:'联系方式',
+          value: this.mainData.phonenumber
+        },
+        {
+          label:'单位',
+          value: this.mainData.company
+        },
+        {
+          label:'部门',
+          value: this.mainData.depname
+        },
+        {
+          label:'职位',
+          value: this.mainData.position
+        },
+        {
+          label:'群组',
+          value: this.mainData.groupname
+        },
+        {
+          label:'负责人',
+          value: this.mainData.leader
+        }
+      ]
+    }
+  },
+  mounted() {
+    this.queryMainData()
+  }
+}
+</script>
+
+<style scoped>
+
+</style>

+ 32 - 7
src/HManagement/addressList/addressBook/index.vue

@@ -16,28 +16,40 @@
         </div>
       </template>
       <template v-slot:tbList="scope">
-        <div v-if="scope.data.column.columnname === 'status'">
-          <span style="color:#52c41a" v-if="scope.data.column.data[[scope.data.column.columnname]] == '跟进中'">{{scope.data.column.data[[scope.data.column.columnname]]}}</span>
-          <span style="color:#fa8c16" v-else-if="scope.data.column.data[[scope.data.column.columnname]] == '已成交'">{{scope.data.column.data[[scope.data.column.columnname]]}}</span>
-          <span style="color:#999999" v-else-if="scope.data.column.data[[scope.data.column.columnname]] == '已失败'">{{scope.data.column.data[[scope.data.column.columnname]]}}</span>
-          <span style="color:#999999" v-else-if="scope.data.column.data[[scope.data.column.columnname]] == '已结案'">{{scope.data.column.data[[scope.data.column.columnname]]}}</span>
+        <div v-if="scope.data.column.columnname === 'tag1'">
+          <div v-if="scope.data.column.data.tag1.length > 0">
+            <el-tag v-for="tag in scope.data.column.data.tag1" :key="tag.index" :type="tag==='支持者'?'warning':tag==='反对者'?'danger':''" size="mini" style="margin:0 5px 0 0">
+              {{tag}}
+            </el-tag>
+          </div>
+          <div v-else>--</div>
+        </div>
+        <div v-else-if="scope.data.column.columnname === 'isCustomers'">
+          <div>{{scope.data.column.data.sa_customersid?scope.data.column.data.sa_customersid === 0?'否':'是':'否'}}</div>
+        </div>
+        <div v-else-if="scope.data.column.columnname === 'isProject'">
+          <div>{{scope.data.column.data.sa_projectid?scope.data.column.data.sa_projectid === 0?'否':'是':'否'}}</div>
         </div>
         <div v-else>
           {{scope.data.column.data[[scope.data.column.columnname]]?scope.data.column.data[[scope.data.column.columnname]]:'--'}}
         </div>
       </template>
+      <template v-slot:tbOpreation="scope">
+        <el-button size="text" @click="onGoto(scope.data.data)">详 情</el-button>
+      </template>
     </normalBook>
   </div>
 </template>
 
 <script>
 import normalBook from "@/components/normal-basic-layout/normalBook";
-import myGroup from '../mygroup/index';
+import myGroup from '../mycontact/modules/group';
 export default {
   name: "index",
   components:{normalBook,myGroup},
   data(){
     return {
+      tabIndex:"1",
       param:{
         "id": 20231220085804,
         "content": {
@@ -57,7 +69,20 @@ export default {
     async listData(){
       /*const res = await this.$api.requested(this.param)*/
       this.$refs.basicLayout.listData()
-    }
+    },
+    /*任务页面跳转*/
+    onGoto(row){
+      console.log(row,'row')
+      this.$store.dispatch('changeDetailDrawer',true)
+      this.$router.push({
+        path:'/phonebookDetail',
+        query:{
+          id:row.sys_phonebookid,
+          sa_project_contactsid:row.sa_project_contactsid,
+          contactsid:row.contactsid
+        }
+      })
+    },
   },
   mounted() {
     this.listData()

+ 94 - 0
src/HManagement/addressList/addressBook/modules/customerData.vue

@@ -0,0 +1,94 @@
+<template>
+  <div>
+    <tableNewLayout :layout="tablecols" :data="list" :opwidth="200" height="calc(100vh - 356px)" :width="true" :custom="true" fixedName="operation">
+      <template v-slot:customcol="scope">
+        <div v-if="scope.column.columnname === 'isleader'">
+          <span v-if="scope.column.data['leader'].length !== 0">已分配</span>
+          <span v-else>未分配</span>
+        </div>
+        <div v-else-if="scope.column.columnname === 'tag'">
+          <div v-for="item in scope.column.data.tag_sys" :key="item.index"  style="float: left;margin-left: 5px;margin-bottom: 5px">
+            <el-tag  color="#3874F6" size="mini" type="primary" effect="dark">
+              <span>{{item}}</span>
+            </el-tag>
+          </div>
+          <div v-for="item in scope.column.data.tag" :key="item.index"  style="float: left;margin-left: 5px;margin-bottom: 5px">
+            <el-tag color="#FA8C16" size="mini" type="warning" effect="dark">
+              <span>{{item}}</span>
+            </el-tag>
+          </div>
+        </div>
+        <div v-else-if="scope.column.columnname === 'industry'">
+          <span v-if="JSON.stringify(scope.column.data.industry) !== '[]' && scope.column.data.industry">
+            <div v-for="item in scope.column.data.industry" :key="item.index"  style="float: left;margin-left: 5px;margin-bottom: 5px">
+              <el-tag size="mini"  effect="dark">
+                <span>{{item}}</span>
+              </el-tag>
+            </div>
+          </span>
+          <div v-else>
+            {{'--'}}
+          </div>
+        </div>
+        <div v-else-if="scope.column.columnname === 'tradingstatus'">
+          <span style="color:#3874f6" v-if="scope.column.data[[scope.column.columnname]] == '未成交'">{{scope.column.data[[scope.column.columnname]]}}</span>
+          <span style="color:#fa8c16" v-else-if="scope.column.data[[scope.column.columnname]] == '已成交'">{{scope.column.data[[scope.column.columnname]]}}</span>
+          <span style="color:#333333" v-else-if="scope.column.data[[scope.column.columnname]] == '多次成交'">{{scope.column.data[[scope.column.columnname]]}}</span>
+        </div>
+        <div v-else-if="scope.column.columnname === 'status'">
+          <span style="color:#3874f6" v-if="scope.column.data[[scope.column.columnname]] == '潜在'">{{scope.column.data[[scope.column.columnname]]}}</span>
+          <span style="color:#52c41a" v-else-if="scope.column.data[[scope.column.columnname]] == '合作中'">{{scope.column.data[[scope.column.columnname]]}}</span>
+          <span style="color:#999999" v-else-if="scope.column.data[[scope.column.columnname]] == '已终止'">{{scope.column.data[[scope.column.columnname]]}}</span>
+        </div>
+        <div v-else-if="scope.column.columnname === 'leader'">
+          <span>{{scope.column.data['leader'][0]?scope.column.data['leader'][0].name:'--'}}</span>
+        </div>
+        <div v-else-if="scope.column.columnname === 'depname'">
+          <span>{{scope.column.data['leader'][0]?scope.column.data['leader'][0].depname?scope.column.data['leader'][0].depname:'--':'--'}}</span>
+        </div>
+        <div v-else>
+          {{scope.column.data[[scope.column.columnname]] || scope.column.columnname === 'operation'?scope.column.data[[scope.column.columnname]]:'--'}}
+        </div>
+      </template>
+    </tableNewLayout>
+  </div>
+</template>
+
+<script>
+export default {
+  name: "customerData",
+  props:["data"],
+  data(){
+    return {
+      tablecols:[],
+      list:[],
+      param:{
+        "id": 20231215134204,
+        "content": {
+          "sys_enterpriseid":'',
+          "pageNumber": 1,
+          "pageSize": 20,
+        }
+      }
+    }
+  },
+  methods:{
+    async listData(){
+      this.param.content.sys_enterpriseid = this.data.sys_enterpriseid
+      const res = await this.$api.requested(this.param)
+      this.list = res.data
+    }
+  },
+  mounted() {
+    this.listData()
+  },
+  created() {
+    console.log(this.tool.tabelCol(this.$route.name).customerTable.tablecols,'tablecols')
+    this.tablecols = this.tool.tabelCol(this.$route.name).customerTable.tablecols
+  }
+}
+</script>
+
+<style scoped>
+
+</style>

+ 47 - 0
src/HManagement/addressList/addressBook/modules/detailsData.vue

@@ -0,0 +1,47 @@
+<template>
+  <div>
+    <div class="normal-margin">
+      <el-descriptions :column="2" labelClassName="my-label" contentClassName="my-content" border>
+        <div slot="title" class="my-label__title">基本信息</div>
+        <el-descriptions-item  label="姓名">{{ detailData.name?detailData.name:"--" }}</el-descriptions-item>
+        <el-descriptions-item label="联系方式">{{ detailData.phonenumber?detailData.phonenumber:"--" }}</el-descriptions-item>
+        <el-descriptions-item label="性别">{{ detailData.sex?detailData.sex:"--"}}</el-descriptions-item>
+        <el-descriptions-item label="生日">{{ detailData.birthday?detailData.birthday:"--" }}</el-descriptions-item>
+        <el-descriptions-item label="家庭住址">{{ detailData.homeaddress?detailData.homeaddress:"--" }}</el-descriptions-item>
+        <el-descriptions-item label="微信">{{ detailData.wechatnum?detailData.wechatnum:"--" }}</el-descriptions-item>
+        <el-descriptions-item label="邮箱">{{ detailData.email?detailData.email:"--" }}</el-descriptions-item>
+        <el-descriptions-item label="传真">{{ detailData.fax?detailData.fax:"--" }}</el-descriptions-item>
+        <el-descriptions-item label="单位">{{ detailData.company?detailData.company:"--" }}</el-descriptions-item>
+        <el-descriptions-item label="部门">{{ detailData.depname?detailData.depname:"--" }}</el-descriptions-item>
+        <el-descriptions-item label="职位">{{ detailData.position?detailData.position:"--" }}</el-descriptions-item>
+        <el-descriptions-item label="群组">{{ detailData.groupname?detailData.groupname:"--" }}</el-descriptions-item>
+        <el-descriptions-item label="备注">{{ detailData.remarks?detailData.remarks:"--" }}</el-descriptions-item>
+        <el-descriptions-item label="负责人">{{ detailData.leader?detailData.leader:"--" }}</el-descriptions-item>
+      </el-descriptions>
+    </div>
+
+    <div>
+      <el-descriptions :column="2" labelClassName="my-label" contentClassName="my-content" border>
+        <div slot="title" class="my-label__title">单据信息</div>
+        <el-descriptions-item label="创建人">{{ detailData.createby?detailData.createby:"--" }}</el-descriptions-item>
+        <el-descriptions-item label="创建时间">{{ detailData.createdate?detailData.createdate:"--" }}</el-descriptions-item>
+        <el-descriptions-item label="最近编辑人">{{ detailData.changeby?detailData.changeby:"--" }}</el-descriptions-item>
+        <el-descriptions-item label="最近编辑时间">{{ detailData.changedate?detailData.changedate:"--" }}</el-descriptions-item>
+        <el-descriptions-item label="最近跟进人">{{ detailData.followupby?detailData.followupby:"--" }}</el-descriptions-item>
+        <el-descriptions-item label="最近跟进时间">{{ detailData.followupdate?detailData.followupdate:"--" }}</el-descriptions-item>
+        <el-descriptions-item label="转手次数">{{ detailData.leadernum?detailData.leadernum:"--" }}</el-descriptions-item>
+      </el-descriptions>
+    </div>
+  </div>
+</template>
+
+<script>
+export default {
+  name: "details",
+  props:["detailData"],
+}
+</script>
+
+<style scoped>
+
+</style>

+ 99 - 0
src/HManagement/addressList/addressBook/modules/projectData.vue

@@ -0,0 +1,99 @@
+<template>
+  <div>
+    <tableNewLayout :layout="tablecols" :data="list" :opwidth="200" height="calc(100vh - 356px)" :width="true" :custom="true" fixedName="operation">
+      <template v-slot:customcol="scope">
+        <div v-if="scope.column.columnname === 'status'">
+          <span style="color:#52c41a" v-if="scope.column.data[[scope.column.columnname]] == '跟进中'">{{scope.column.data[[scope.column.columnname]]}}</span>
+          <span style="color:#fa8c16" v-else-if="scope.column.data[[scope.column.columnname]] == '已成交'">{{scope.column.data[[scope.column.columnname]]}}</span>
+          <span style="color:#999999" v-else-if="scope.column.data[[scope.column.columnname]] == '已失败'">{{scope.column.data[[scope.column.columnname]]}}</span>
+          <span style="color:#999999" v-else-if="scope.column.data[[scope.column.columnname]] == '已结案'">{{scope.column.data[[scope.column.columnname]]}}</span>
+        </div>
+        <div v-else-if="scope.column.columnname === 'reportstatus'">
+          <span style="color:#3874f6" v-if="scope.column.data[[scope.column.columnname]] == '已报备'">{{scope.column.data[[scope.column.columnname]]}}</span>
+          <span style="color:#52c41a" v-else-if="scope.column.data[[scope.column.columnname]] == '报备中'">{{scope.column.data[[scope.column.columnname]]}}</span>
+          <span style="color:#999999" v-else-if="scope.column.data[[scope.column.columnname]] == '未报备'">{{scope.column.data[[scope.column.columnname]]}}</span>
+        </div>
+        <div v-else-if="scope.column.columnname === 'tag_sys'">
+          <div v-for="item in scope.column.data.tag_sys" :key="item.index"  style="float: left;margin-left: 5px;margin-bottom: 5px">
+            <el-tag  color="#3874F6" size="mini" type="primary" effect="dark">
+              <span>{{item}}</span>
+            </el-tag>
+          </div>
+          <div v-for="item in scope.column.data.tag" :key="item.index"  style="float: left;margin-left: 5px;margin-bottom: 5px">
+            <el-tag color="#FA8C16" size="mini" type="warning" effect="dark">
+              <span>{{item}}</span>
+            </el-tag>
+          </div>
+        </div>
+        <div v-else-if="scope.column.columnname === 'leader'">
+          {{scope.column.data.leader[0] && scope.column.data.leader[0].name}}
+        </div>
+        <div v-else-if="scope.column.columnname === 'projecttype'">
+          {{scope.column.data.projecttype + '-' + scope.column.data.projecttype_remarks}}
+        </div>
+        <div v-else-if="scope.column.columnname == 'totalinvestment'">
+          <span>{{scope.column.data[[scope.column.columnname]] ?tool.formatAmount(scope.column.data[[scope.column.columnname]],2):'--'}}</span>
+        </div>
+        <div v-else-if="scope.column.columnname == 'costofconstruction'">
+          <span>{{scope.column.data[[scope.column.columnname]] ?tool.formatAmount(scope.column.data[[scope.column.columnname]],2):'--'}}</span>
+        </div>
+        <div v-else-if="scope.column.columnname == 'budgetary'">
+          <span>{{scope.column.data[[scope.column.columnname]] ?tool.formatAmount(scope.column.data[[scope.column.columnname]],2):'--'}}</span>
+        </div>
+        <div v-else-if="scope.column.columnname == 'signamount_due'">
+          <span>{{scope.column.data[[scope.column.columnname]] ?tool.formatAmount(scope.column.data[[scope.column.columnname]],2):'--'}}</span>
+        </div>
+        <div v-else-if="scope.column.columnname == 'begdate_due'">
+          <span>{{scope.column.data[[scope.column.columnname]] ? scope.column.data[[scope.column.columnname]] !== 'NaN-NaN'?scope.column.data[[scope.column.columnname]]:'--' :'--'}}</span>
+        </div>
+        <div v-else-if="scope.column.columnname == 'enddate_due'">
+          <span>{{scope.column.data[[scope.column.columnname]] ? scope.column.data[[scope.column.columnname]] !== 'NaN-NaN'?scope.column.data[[scope.column.columnname]]:'--' :'--'}}</span>
+        </div>
+        <div v-else-if="scope.column.columnname == 'scale'">
+          <span>{{scope.column.data[[scope.column.columnname]]?scope.column.data[[scope.column.columnname]] + scope.column.data.unitname:'--'}}</span>
+        </div>
+        <div v-else>
+          {{scope.column.data[[scope.column.columnname]]?scope.column.data[[scope.column.columnname]]:'--'}}
+        </div>
+      </template>
+    </tableNewLayout>
+  </div>
+</template>
+
+<script>
+export default {
+  name: "projectData",
+  props:["data"],
+  data(){
+    return {
+      tablecols:[],
+      list:[],
+      param:{
+        "id": 20231215134304,
+        "content": {
+          "sa_projectid":'',
+          "pageNumber": 1,
+          "pageSize": 20,
+        }
+      }
+    }
+  },
+  methods:{
+    async listData(){
+      this.param.content.sa_projectid = this.data.sa_projectid
+      const res = await this.$api.requested(this.param)
+      this.list = res.data
+    }
+  },
+  mounted() {
+    this.listData()
+  },
+  created() {
+    this.tablecols = this.tool.tabelCol(this.$route.name).projectTable.tablecols
+  }
+}
+</script>
+
+<style scoped>
+
+</style>

+ 14 - 2
src/router/HManagement.js

@@ -2,6 +2,7 @@ import agentManage from '@/HManagement/marketing2/agent/index.vue'
 import agent_detail from '@/HManagement/marketing2/agent/details/index.vue'
 import EnterpriseArchives from '@/HManagement/EnterpriseArchives/index.vue'
 import EnterpriseArchivesDetail from '@/HManagement/EnterpriseArchives/modules/details.vue'
+import orderdetail from "@/HDrpManagement/orderManage/details";
 const HManagement = [
   {
     path: '/archives_adlist',
@@ -661,8 +662,19 @@ const HManagement = [
       ast_nav: true,
       keeproute: true
     },
-    /*component: () => import(/!* webpackChunkName: "about" *!/ '@/HManagement/addressList/addressBook/index')*/
-    component: () => import(/* webpackChunkName: "about" */ '@/HManagement/addressList/mycontact/index')
+    component: () => import(/* webpackChunkName: "about" */ '@/HManagement/addressList/addressBook/index'),
+    children:[
+      {
+        path: '/phonebookDetail',
+        name: 'phonebook',
+        meta: {
+          title: '通讯录详情',
+          ast_nav: true,
+        },
+        component: () => import(/* webpackChunkName: "about" */ '@/HManagement/addressList/addressBook/detail/index'),
+      },
+    ]
+    /*component: () => import(/!* webpackChunkName: "about" *!/ '@/HManagement/addressList/mycontact/index')*/
   },{
     path: '/phonebookGroup',
     name: 'phonebookGroup',