Browse Source

客户详情

魏熙美 5 years ago
parent
commit
2163fefa81
3 changed files with 71 additions and 31 deletions
  1. 5
    1
      src/config/api.js
  2. 13
    2
      src/store/modules/customer.js
  3. 53
    28
      src/views/customer/customerDetails.vue

+ 5
- 1
src/config/api.js View File

174
       method:'get',
174
       method:'get',
175
       url: `${commPrefix}/customer/recommend/:id`
175
       url: `${commPrefix}/customer/recommend/:id`
176
     },
176
     },
177
+    getCustomerDetail: {
178
+      method: `get`,
179
+      url: `${commPrefix}/customer/recommend/get/:id`
180
+    },
177
     taPointsRecords: { // 积分列表
181
     taPointsRecords: { // 积分列表
178
       method: `get`,
182
       method: `get`,
179
       url: `${commPrefix}/taPointsRecords/:id`
183
       url: `${commPrefix}/taPointsRecords/:id`
180
-    }
184
+    },
181
   },
185
   },
182
   goods:{
186
   goods:{
183
     list:{
187
     list:{

+ 13
- 2
src/store/modules/customer.js View File

95
           reject(message)
95
           reject(message)
96
         })
96
         })
97
       })
97
       })
98
-    }
99
-
98
+    },
99
+    getCustomerDetail({ commit }, payload) { // 查询客户详情
100
+      return new Promise((resolve, reject) => {
101
+        request({
102
+          ...apis.recommendCustomer.getCustomerDetail,
103
+          urlData: { id: payload.customerId}
104
+        }).then((data) => {
105
+          resolve(data)
106
+        }).catch(({ message }) => {
107
+          reject(message)
108
+        })
109
+    })
110
+}
100
     
111
     
101
   }
112
   }
102
 }
113
 }

+ 53
- 28
src/views/customer/customerDetails.vue View File

5
         <div class="grid-content">
5
         <div class="grid-content">
6
           <p class="title">置业顾问信息</p>
6
           <p class="title">置业顾问信息</p>
7
           <img class="touxiang" src="http://img1.imgtn.bdimg.com/it/u=1022041283,4133755956&fm=26&gp=0.jpg" alt="">
7
           <img class="touxiang" src="http://img1.imgtn.bdimg.com/it/u=1022041283,4133755956&fm=26&gp=0.jpg" alt="">
8
-          <p class="name">曹玉文</p>
9
-          <p class="phone">13706842514</p>
8
+          <p class="name">{{  customerDetail.consultant === null ? '' :  customerDetail.consultant.name }}</p>
9
+          <p class="phone">{{ customerDetail.consultant === null ? '' :  customerDetail.consultant.phone }}</p>
10
           <div class="info">
10
           <div class="info">
11
-            <p>部门:营销部</p>
12
-            <p>岗位:置业经理</p>
13
-            <p>公司:南京知与行网络科技有限公司</p>
11
+            <p>部门:{{ customerDetail.consultant === null ? '' :  customerDetail.consultant.department }}</p>
12
+            <p>岗位:{{ customerDetail.consultant === null ? '' :  customerDetail.consultant.post }}</p>
13
+            <p>公司:{{ customerDetail.consultant === null ? '' :  customerDetail.consultant.company }}</p>
14
           </div>
14
           </div>
15
-          <p class="project">所属项目:香颂.蔚澜半岛</p>
15
+          <p class="project">所属项目:
16
+            <span v-if="customerDetail.consultant === null"></span>
17
+            <span v-else v-for="(item, index) in customerDetail.consultant.projects" :key="index">{{ item }}</span>
18
+          </p>
16
         </div>
19
         </div>
17
       </el-col>
20
       </el-col>
18
       <el-col :span="15">
21
       <el-col :span="15">
21
           <div style="display:flex">
24
           <div style="display:flex">
22
             <img class="touxiang" src="http://img1.imgtn.bdimg.com/it/u=1022041283,4133755956&fm=26&gp=0.jpg" alt="">
25
             <img class="touxiang" src="http://img1.imgtn.bdimg.com/it/u=1022041283,4133755956&fm=26&gp=0.jpg" alt="">
23
             <div style="width:100%">
26
             <div style="width:100%">
24
-              <p class="info-box">用户名称:<span>曹建芳</span></p>
25
-              <p class="info-box">国家:<span>中国</span></p>
26
-              <p class="info-box">手机号:<span>184521462130</span></p>
27
-              <p class="info-box">省份:<span>江苏</span></p>
27
+              <p class="info-box">用户名称:<span>{{ customerDetail.name }}</span></p>
28
+              <p class="info-box">国家:<span>{{ customerDetail.country }}</span></p>
29
+              <p class="info-box">手机号:<span>{{ customerDetail.phone }}</span></p>
30
+              <p class="info-box">省份:<span>{{ customerDetail.province }}</span></p>
28
             </div>       
31
             </div>       
29
           </div>
32
           </div>
30
           <div class="other-info">
33
           <div class="other-info">
31
-              <p class="info-box">访问时长:<span>20分30秒 在线</span></p>
32
-              <p class="info-box">城市:<span>苏州</span></p>
33
-              <p class="info-box">访问次数:<span>20次</span></p>
34
+              <p class="info-box">访问时长:<span>{{ customerDetail.duration / 60 }} 分钟</span></p>
35
+              <p class="info-box">城市:<span>{{ customerDetail.city }}</span></p>
36
+              <p class="info-box">访问次数:<span>{{ customerDetail.visitTimes }}</span></p>
34
               <p class="info-box">来访渠道:<span>活动分享</span></p>
37
               <p class="info-box">来访渠道:<span>活动分享</span></p>
35
-              <p class="info-box">首次访问时间:<span>2019-07-23 12:23:49</span></p>
38
+              <p class="info-box">首次访问时间:<span>{{ formateDate(customerDetail.visitTime) }}</span></p>
36
           </div>
39
           </div>
37
           <p style="line-height:1.8">详细信息:</p>
40
           <p style="line-height:1.8">详细信息:</p>
38
           <div class="flex-box" style="display:flex;justify-content: space-between;">
41
           <div class="flex-box" style="display:flex;justify-content: space-between;">
39
-            <p>意向项目:<span>香颂.蔚澜半岛、碧桂园</span></p>
40
-            <p>需求类型:<span>高层</span></p>
41
-            <p>物业类型:<span>物业</span></p>
42
+            <p>意向项目:<span>{{ customerDetail.intention }}</span></p>
43
+            <p>需求类型:<span>{{ customerDetail.demandType }}</span></p>
44
+            <p>物业类型:<span>{{ customerDetail.realtyManageType }}</span></p>
42
           </div>
45
           </div>
43
           <div class="flex-box" style="display:flex;justify-content: space-between;">
46
           <div class="flex-box" style="display:flex;justify-content: space-between;">
44
-            <p>价格区间:<span>100-200万</span></p>
45
-            <p>预约到访时间:<span>2019-07-23 12:59:14</span></p>
46
-            <p>预约人数:<span>2</span></p>
47
+            <p>价格区间:<span>{{ customerDetail.priceRange }}</span></p>
48
+            <p>预约到访时间:<span>{{ formateDate(customerDetail.appointmentTime) }}</span></p>
49
+            <p>预约人数:<span>{{ customerDetail.visiteNum }}</span></p>
47
           </div>
50
           </div>
48
-          <p class="flex-box">客户说明:<span>客户说明展示处</span></p>
49
-          <p class="flex-box">客户描述:<span>客户描述展示处</span></p>
51
+          <p class="flex-box">客户说明:<span>{{ customerDetail.verifyRemark }}</span></p>
52
+          <p class="flex-box">客户描述:<span>{{ customerDetail.describe }}</span></p>
50
           
53
           
51
         </div>
54
         </div>
52
       </el-col>
55
       </el-col>
54
     <div class="access-records">
57
     <div class="access-records">
55
       <p class="title">访问记录</p>
58
       <p class="title">访问记录</p>
56
       <el-table
59
       <el-table
57
-      :data="tableData"
60
+      :data="customerDetail.visitRecords || []"
58
       class="table-box"
61
       class="table-box"
59
       style="width: 100%;">
62
       style="width: 100%;">
60
       <el-table-column
63
       <el-table-column
61
-        prop="name"
64
+        prop="event"
62
         label="访问事件">
65
         label="访问事件">
63
       </el-table-column>
66
       </el-table-column>
64
       <el-table-column
67
       <el-table-column
65
-        prop="date"
68
+        prop="visitTime"
66
         label="访问时间">
69
         label="访问时间">
70
+        <template slot-scope="scope">{{ formateDate(scope.row.visitTime) }}</template>
67
       </el-table-column>
71
       </el-table-column>
68
       <el-table-column
72
       <el-table-column
69
-        prop="time"
73
+        prop="visitDuration"
70
         label="停留时间">
74
         label="停留时间">
75
+        <template slot-scope="scope">{{ scope.row.visitDuration / 60 }}分钟</template>
71
       </el-table-column>
76
       </el-table-column>
72
     </el-table>
77
     </el-table>
73
     </div>
78
     </div>
76
 </template>
81
 </template>
77
 
82
 
78
 <script>
83
 <script>
79
-import { createNamespacedHelpers } from "vuex";
84
+import { createNamespacedHelpers } from "vuex"
85
+import dayjs from 'dayjs'
80
 
86
 
81
 export default {
87
 export default {
82
   data() {
88
   data() {
83
     return {
89
     return {
90
+      customerId: '',
91
+      customerDetail: '',
84
       tableData: [
92
       tableData: [
85
         {
93
         {
86
           date: "2016-05-02",
94
           date: "2016-05-02",
106
     };
114
     };
107
   },
115
   },
108
   computed: {},
116
   computed: {},
109
-  created() {}
117
+  methods: {
118
+    formateDate(dt) {
119
+      return !dt ? '' : dayjs(dt).format('YYYY-MM-DD HH:mm')
120
+    },
121
+    getCustomerDetail() {
122
+      let data = { customerId: this.customerId }
123
+      this.$store.dispatch('customer/getCustomerDetail',data).then((res) => {
124
+        this.customerDetail = res
125
+        console.log('customer/getCustomerDetail: ', this.customerDetail)
126
+      }).catch(() => {
127
+        console.log('customer/getCustomerDetail err')
128
+      })
129
+    }
130
+  },
131
+  created() {
132
+    this.customerId = this.$route.query.id
133
+    this.getCustomerDetail()
134
+  }
110
 };
135
 };
111
 </script>
136
 </script>
112
 <style lang="scss">
137
 <style lang="scss">