|
|
@@ -11,7 +11,7 @@
|
|
11
|
11
|
</view>
|
|
12
|
12
|
</view>
|
|
13
|
13
|
|
|
14
|
|
- <!-- 聊天记录/通话记录卡片 -->
|
|
|
14
|
+ <!-- 聊天记录/通话记录/跟进卡片 -->
|
|
15
|
15
|
<view class="card-wrap">
|
|
16
|
16
|
<view class="card-title">
|
|
17
|
17
|
<text :class="{ 'active': recordType === 'chat' }" @click="recordType = 'chat'">
|
|
|
@@ -21,6 +21,14 @@
|
|
21
|
21
|
<text :class="{ 'active': recordType === 'call' }" @click="recordType = 'call'">
|
|
22
|
22
|
通话记录
|
|
23
|
23
|
</text>
|
|
|
24
|
+ <text class="divider">|</text>
|
|
|
25
|
+ <text :class="{ 'active': recordType === 'frontendFollow' }" @click="recordType = 'frontendFollow'">
|
|
|
26
|
+ 前端跟进
|
|
|
27
|
+ </text>
|
|
|
28
|
+ <text class="divider">|</text>
|
|
|
29
|
+ <text :class="{ 'active': recordType === 'followRecord' }" @click="recordType = 'followRecord'">
|
|
|
30
|
+ 跟进记录
|
|
|
31
|
+ </text>
|
|
24
|
32
|
</view>
|
|
25
|
33
|
|
|
26
|
34
|
<!-- 聊天记录 -->
|
|
|
@@ -41,6 +49,12 @@
|
|
41
|
49
|
<sound-recorder v-for="item in soundRecordList" :key="item.fileName" :data="item"
|
|
42
|
50
|
@handleDelectThisSoundRecord="handleDeleteSoundRecord" />
|
|
43
|
51
|
</view>
|
|
|
52
|
+
|
|
|
53
|
+ <!-- 前端跟进 -->
|
|
|
54
|
+ <follow-card v-else-if="recordType === 'frontendFollow'" :clue-id="currentClueId" type="4" />
|
|
|
55
|
+
|
|
|
56
|
+ <!-- 跟进记录 -->
|
|
|
57
|
+ <follow-card v-else-if="recordType === 'followRecord'" :clue-id="currentClueId" type="5" />
|
|
44
|
58
|
</view>
|
|
45
|
59
|
|
|
46
|
60
|
<!-- 实物图卡片 -->
|
|
|
@@ -109,13 +123,15 @@
|
|
109
|
123
|
<script>
|
|
110
|
124
|
import PicComp from './PicComp.vue'
|
|
111
|
125
|
import soundRecorder from '@/components/soundRecorder/soundRecorder.vue'
|
|
|
126
|
+import FollowCard from './FollowCard.vue'
|
|
112
|
127
|
import imageUpload from '../utils/imageUpload.js'
|
|
113
|
128
|
|
|
114
|
129
|
export default {
|
|
115
|
130
|
name: 'PageOne',
|
|
116
|
131
|
components: {
|
|
117
|
132
|
PicComp,
|
|
118
|
|
- soundRecorder
|
|
|
133
|
+ soundRecorder,
|
|
|
134
|
+ FollowCard
|
|
119
|
135
|
},
|
|
120
|
136
|
props: {
|
|
121
|
137
|
orderDetail: {
|
|
|
@@ -133,12 +149,17 @@ export default {
|
|
133
|
149
|
},
|
|
134
|
150
|
data() {
|
|
135
|
151
|
return {
|
|
136
|
|
- recordType: 'chat', // 'chat' | 'call'
|
|
|
152
|
+ recordType: 'chat', // 'chat' | 'call' | 'frontendFollow' | 'followRecord'
|
|
137
|
153
|
chatRecordsList: [],
|
|
138
|
154
|
truePicList: [],
|
|
139
|
155
|
soundRecordList: []
|
|
140
|
156
|
}
|
|
141
|
157
|
},
|
|
|
158
|
+ computed: {
|
|
|
159
|
+ currentClueId() {
|
|
|
160
|
+ return (this.currentReceipt && this.currentReceipt.clueId) || (this.orderDetail && this.orderDetail.clueId) || ''
|
|
|
161
|
+ }
|
|
|
162
|
+ },
|
|
142
|
163
|
watch: {
|
|
143
|
164
|
currentReceipt: {
|
|
144
|
165
|
handler(newVal) {
|
|
|
@@ -408,14 +429,20 @@ export default {
|
|
408
|
429
|
}
|
|
409
|
430
|
|
|
410
|
431
|
.card-title {
|
|
411
|
|
- padding: 20rpx;
|
|
|
432
|
+ padding: 20rpx 15rpx;
|
|
412
|
433
|
border-bottom: 1rpx solid map-get($colors, border);
|
|
413
|
434
|
display: flex;
|
|
414
|
435
|
align-items: center;
|
|
|
436
|
+ white-space: nowrap;
|
|
|
437
|
+ overflow-x: auto;
|
|
|
438
|
+ -webkit-overflow-scrolling: touch;
|
|
415
|
439
|
|
|
416
|
440
|
text {
|
|
417
|
|
- padding: 0 10rpx;
|
|
|
441
|
+ padding: 0 6rpx;
|
|
418
|
442
|
cursor: pointer;
|
|
|
443
|
+ font-size: 26rpx;
|
|
|
444
|
+ white-space: nowrap;
|
|
|
445
|
+ flex-shrink: 0;
|
|
419
|
446
|
|
|
420
|
447
|
&.active {
|
|
421
|
448
|
color: map-get($colors, primary);
|
|
|
@@ -424,8 +451,10 @@ export default {
|
|
424
|
451
|
}
|
|
425
|
452
|
|
|
426
|
453
|
.divider {
|
|
427
|
|
- margin: 0 10rpx;
|
|
|
454
|
+ margin: 0 4rpx;
|
|
428
|
455
|
color: #ddd;
|
|
|
456
|
+ font-size: 24rpx;
|
|
|
457
|
+ flex-shrink: 0;
|
|
429
|
458
|
}
|
|
430
|
459
|
}
|
|
431
|
460
|
|