瀏覽代碼

feat: 投手数据 - 新增"3/7天倍率"&"使用客服"

zhengxy 1 年之前
父節點
當前提交
79df352df2

+ 6 - 2
project/src/components/assembly/screen/colPopover.vue

@@ -10,7 +10,7 @@
10 10
     <template v-else>
11 11
       <el-popover
12 12
         placement="top-start"
13
-        width="200"
13
+        :width="width || 200"
14 14
         trigger="hover">
15 15
         <div v-for="(item, i) in list" :key="i">
16 16
           {{ item }}
@@ -37,7 +37,11 @@ export default {
37 37
     maxLength: { // 最多显示的条数 超出显示省略号
38 38
       type: Number,
39 39
       default: () => 5,
40
-    }
40
+    },
41
+    width: { // popover 宽度
42
+      type: Number,
43
+      default: () => 200
44
+    },
41 45
   },
42 46
 
43 47
 }

+ 41 - 2
project/src/components/dataBoard/throwPerson/throwPersonPuton.vue

@@ -50,7 +50,7 @@
50 50
         </div>
51 51
       </div>
52 52
     </div>
53
-    <ux-grid class="uxGridBox" ref="plxTable" :border="false" @row-click="() => { return }"
53
+    <ux-grid class="throwPersonPuton-list" ref="plxTable" :border="false" @row-click="() => { return }"
54 54
       :header-cell-style="headerColor" :height="height" show-footer-overflow="tooltip" show-overflow="tooltip"
55 55
       size="mini">
56 56
       <ux-table-column v-for="item in desCol" :key="item.prop" :resizable="true" :field="item.prop" :title="item.label"
@@ -68,6 +68,16 @@
68 68
         </template>
69 69
         <template v-slot="{ row }">
70 70
           <span v-if="item.prop === 'account_name'" :class="sort_field == item.prop ? 'sortFieldStyle' : ''">{{ row[item.prop] }}</span>
71
+
72
+          <!-- S 使用客服 -->
73
+          <div v-else-if="item.prop === 'user_list_show'">
74
+            <template v-if="row['user_list_show'] && row['user_list_show'].length">
75
+              <colPopover :list="row['user_list_show']" :maxLength="4" :width="280" />
76
+            </template>
77
+            <span v-else> - </span>
78
+          </div>
79
+          <!-- E 使用客服 -->
80
+
71 81
           <span v-else :class="sort_field == item.prop ? 'sortFieldStyle' : ''">{{ row[item.prop] || row[item.prop] == 0 ? $formatNum(row[item.prop]) : '-' }}</span>
72 82
         </template>
73 83
       </ux-table-column>
@@ -82,8 +92,10 @@
82 92
 <script>
83 93
 import datePicker from '@/components/assembly/screen/datePicker.vue'
84 94
 import selfChannel from '@/components/assembly/screen/channel.vue'
95
+import colPopover from '@/components/assembly/screen/colPopover.vue'
96
+
85 97
 export default {
86
-  components: { datePicker, selfChannel },
98
+  components: { datePicker, selfChannel, colPopover },
87 99
   data () {
88 100
     return {
89 101
       dataLoading: false,
@@ -151,6 +163,7 @@ export default {
151 163
         { prop: "playletTitle", label: "剧集", min_width: 160, fixed: 'left' },
152 164
         { prop: "official_account_name", label: "公众号", min_width: 160 },
153 165
         { prop: "account_name", label: "投放账号", min_width: 160 },
166
+        { prop: "user_list_show", label: "使用客服", min_width: 260 },
154 167
         { prop: "user_name", label: "投手", min_width: 160 },
155 168
         { prop: "start_date", label: "开始日期", min_width: 160 },
156 169
         { prop: "end_date", label: "截止日期", min_width: 160 },
@@ -162,6 +175,8 @@ export default {
162 175
         { prop: "first_day_roi", label: "首日ROI", notes: '首日ROI=当日新用户充值之和/累计消耗' },
163 176
         { prop: "profile", label: "总毛利额", notes: '总毛利额=累计充值-累计消耗' },
164 177
         { prop: "recall_rate", label: "回本率%", notes: '回本率=累计充值/累计消耗' },
178
+        { prop: "three_days_rate", label: "3天倍率" },
179
+        { prop: "seven_days_rate", label: "7天倍率" },
165 180
       ],
166 181
       height: '',
167 182
       tagType: 2,
@@ -285,6 +300,15 @@ export default {
285 300
         var res = res.data
286 301
         this.loading = false
287 302
         if (res && res.errno == 0) {
303
+
304
+          res.rst.data.forEach(row => {
305
+            if (row.user_list && Array.isArray(row.user_list) && row.user_list.length) { // 使用客服
306
+              row.user_list_show = row.user_list.map(u => `${u.user_name}(${u.corp_name})`)
307
+            } else if (!row.user_list || !Array.isArray(row.user_list) || !row.user_list.length) {
308
+              row.user_list_show = []
309
+            }
310
+          })
311
+
288 312
           if (type == 'export') {
289 313
             this.exportEvent(res.rst.data)
290 314
           } else {
@@ -372,6 +396,21 @@ export default {
372 396
   }
373 397
 }
374 398
 </script>
399
+
400
+<style lang="scss">
401
+.throwPersonPuton-list {
402
+  .elx-table.elx-editable.size--mini .elx-body--column,
403
+  .elx-table.size--mini .elx-body--column.col--ellipsis,
404
+  .elx-table.size--mini .elx-footer--column.col--ellipsis {
405
+    height: 120px !important;
406
+  }
407
+  .elx-table.size--mini .elx-body--column.col--ellipsis>.elx-cell,
408
+  .elx-table.size--mini .elx-footer--column.col--ellipsis>.elx-cell {
409
+    max-height: initial !important;
410
+  }
411
+}
412
+</style>
413
+
375 414
 <style lang="scss" scoped>
376 415
 /deep/ .common-screen-label {
377 416
   flex-shrink: 0;