Bladeren bron

区分展示补单回传以及自动回传

shensong00 3 maanden geleden
bovenliggende
commit
3097e49628

+ 1 - 1
index.html

@@ -7,4 +7,4 @@
7 7
         hm.src = "https://hm.baidu.com/hm.js?d61b9e2caf4d46ccda7471b5385e2333";
8 8
         var s = document.getElementsByTagName("script")[0];
9 9
         s.parentNode.insertBefore(hm, s);
10
-      })();</script><link href=./static/css/app.ca009f070d0aad976e5e22c3ec99e374.css rel=stylesheet></head><body><div id=app></div><script type=text/javascript src=./static/js/manifest.2fb41d4db38039a29919.js></script><script type=text/javascript src=./static/js/app.01e94bcf40983c62e452.js></script></body></html>
10
+      })();</script><link href=./static/css/app.0e4451c01c962d84085deeefb29c12de.css rel=stylesheet></head><body><div id=app></div><script type=text/javascript src=./static/js/manifest.9a27d0411801e6eb4aba.js></script><script type=text/javascript src=./static/js/app.a422327706a6fd12c282.js></script></body></html>

+ 1 - 0
project/src/assets/config/interface_api.js

@@ -424,6 +424,7 @@ var api = {
424 424
   member_activeAccount: "/api/license/activeAccount", // 成员管理 - 分配许可
425 425
   member_transfer: "/api/license/transfer", // 成员管理 - 转移许可
426 426
   member_batchActiveAccount: "/api/license/batchActiveAccount", // 成员管理 - 批量分配许可
427
+  member_resetCustomerReceiveStatus: "/api/reset/canReceive",   // 成员管理 - 重置客户可接收消息状态
427 428
 
428 429
   transfer_customerAssignmentRecordList: "/api/customer/customerAssignmentRecordList", // 客户迁移 - 迁移记录
429 430
 

+ 106 - 0
project/src/components/manage/memberComp/resetReceiveDialog.vue

@@ -0,0 +1,106 @@
1
+<template>
2
+  <el-dialog
3
+    :visible.sync="dialogVisible"
4
+    :before-close="handleCancel"
5
+    class="assign-dialog"
6
+    title="重置客户消息接收状态"
7
+    width="450px"
8
+  >
9
+    <div class="form-wrap" v-loading="loading">
10
+      重置后该客服下所有客户状态均变更为【可接收消息】<br/><br/>
11
+      后续根据群发结果重新判断客户可接收消息状态。
12
+    </div>
13
+    <div slot="footer" class="dialog-footer">
14
+      <el-button size="mini" @click="handleCancel">取 消</el-button>
15
+      <el-button size="mini" type="primary" @click="handleConfirm">确 定</el-button>
16
+    </div>
17
+  </el-dialog>
18
+</template>
19
+
20
+<script>
21
+export default {
22
+  name: "resetReceiveDialog",
23
+  props: {
24
+    // 控制弹框是否显示
25
+    dialogVisible: {
26
+      type: Boolean,
27
+      default: () => false
28
+    },
29
+    // 成员信息
30
+    userInfo: {
31
+      type: Object,
32
+      default: () => ({
33
+        user_id: '',
34
+        name: '',
35
+      })
36
+    },
37
+  },
38
+  data() {
39
+    return {
40
+      loading: false,
41
+      form: {
42
+        corpid: '',
43
+        userid: '',
44
+      }
45
+    }
46
+  },
47
+  watch: {
48
+    dialogVisible(isShow) {
49
+      if (isShow) {
50
+        // 获取表单数据
51
+        this.handleGetFormData()
52
+      }
53
+    },
54
+  },
55
+  methods: {
56
+    // 获取弹框表单数据
57
+    handleGetFormData() { 
58
+      const { user_id = '' } = this.userInfo
59
+      this.form.user_id = user_id
60
+      console.log(this.form.userid)
61
+    },
62
+    // 清空弹框表单数据
63
+    handleClearFormData() {
64
+      this.form.user_id = ''
65
+    },
66
+    async handleConfirm() {
67
+      try {
68
+        const url = `${this.URL.BASEURL}${this.URL.member_resetCustomerReceiveStatus}`
69
+        const params = {
70
+          ...this.form,
71
+          corpid: this.$localSelfStore.getLocal('defaultCorp') && this.$localSelfStore.getLocal('defaultCorp') != 'undefined' ? JSON.parse(this.$localSelfStore.getLocal('defaultCorp')).corpid : '',
72
+        }
73
+        this.loading = true
74
+        const { data: res = {} } = await this.$axios.get(url, { params })
75
+        if (res && res.errno == 0) {
76
+          this.$message.success('操作成功')
77
+          this.handleClearFormData()
78
+          this.$emit('confirm')
79
+        } else if (res.errno != 4002) {
80
+          this.$message.warning(res.err || '操作失败')
81
+          this.handleCancel()
82
+        }
83
+      } catch (error) {
84
+        console.log('error => ', error)
85
+      } finally {
86
+        this.loading = false
87
+      }
88
+    },
89
+    handleCancel() {
90
+      this.handleClearFormData()
91
+      this.$emit('cancel')
92
+    },
93
+  },
94
+};
95
+</script>
96
+
97
+<style lang="scss" scoped>
98
+.assign-dialog {
99
+  .form-wrap {
100
+    padding: 0 10px;
101
+  }
102
+  .dialog-footer {
103
+    text-align: right;
104
+  }
105
+}
106
+</style>

+ 28 - 0
project/src/components/manage/memberManage.vue

@@ -163,6 +163,7 @@
163 163
                 <span v-if="scope.row.is_active == 1" class="c-00B38A pointer ml-3" @click="onClickTransfer(scope.row)">转移许可</span>
164 164
                 <span v-else class="c-00B38A pointer ml-3" @click="onClickAssign(scope.row)">分配许可</span>
165 165
               </template>
166
+              <span class="c-00B38A pointer ml-3" @click="resetReceiveStatus(scope.row)">客户消息接收状态重置</span>
166 167
             </template>
167 168
           </el-table-column>
168 169
 
@@ -256,6 +257,15 @@
256 257
       @confirm="handleAssignResultConfirm"
257 258
     />
258 259
     <!-- E 批量分配许可结果 - 弹框 -->
260
+
261
+    <!-- S 重置客户送达状态 - 弹框 -->
262
+    <resetReceiveDialog
263
+      :dialogVisible="resetReceiveDialogViwible"
264
+      :userInfo="currentTransferInfo"
265
+      @cancel="handleResetCancel"
266
+      @confirm="handleResetConfirm"
267
+    />
268
+    <!-- E 重置客户送达状态 - 弹框 -->
259 269
   </div>
260 270
 </template>
261 271
 
@@ -269,6 +279,7 @@ import batchAssign from './memberComp/batchAssign.vue'
269 279
 import assignDialog from './memberComp/assignDialog.vue'
270 280
 import transferDialog from './memberComp/transferDialog.vue'
271 281
 import assignResult from './memberComp/assignResult.vue'
282
+import resetReceiveDialog from './memberComp/resetReceiveDialog.vue'
272 283
 import { orderTypeOptions } from '@/assets/js/staticTypes'
273 284
 
274 285
 const orderTypeDesc = new Map([
@@ -288,6 +299,7 @@ export default {
288 299
     assignDialog,
289 300
     transferDialog,
290 301
     assignResult,
302
+    resetReceiveDialog,
291 303
   },
292 304
   data () {
293 305
     return {
@@ -324,6 +336,7 @@ export default {
324 336
       assignDialogVisible: false, // 控制“分配许可”弹框显示
325 337
       currentAssignInfo: {}, // 当前需要分配许可的成员信息
326 338
       transferDialogVisible: false, // 控制“转移许可”弹框显示
339
+      resetReceiveDialogViwible: false, // 控制“重置客服接收状态”弹框显示
327 340
       currentTransferInfo: {}, // 当前需要转移许可的成员信息
328 341
       assignResultVisible: false, // 控制“批量分配许可结果”弹框显示
329 342
       currentAssignResult: {}, // 当前分配结果信息
@@ -528,6 +541,10 @@ export default {
528 541
         console.log(error)
529 542
       }
530 543
     },
544
+    resetReceiveStatus(current) {
545
+      this.currentTransferInfo = {...current}
546
+      this.resetReceiveDialogViwible = true
547
+    },
531 548
     // 执行信息绑定 => 取消
532 549
     handleInfoBindCancel() {
533 550
       this.currentBindInfo = {}
@@ -635,6 +652,17 @@ export default {
635 652
       this.init(undefined, this.keyword)
636 653
       this.handleGetWaitForAssignNum()
637 654
     },
655
+    // 执行重置客户消息接收状态 => 取消
656
+    handleResetCancel() {
657
+      this.currentAssignInfo = {}
658
+      this.resetReceiveDialogViwible = false
659
+    },
660
+    // 执行重置客户消息接收状态 => 确定
661
+    handleResetConfirm() {
662
+      this.resetReceiveDialogViwible = false
663
+      this.init(undefined, this.keyword)
664
+      this.handleGetWaitForAssignNum()
665
+    },
638 666
 
639 667
     // 监听点击“转移许可”
640 668
     onClickTransfer(current) {

File diff suppressed because it is too large
+ 1 - 0
static/css/app.0e4451c01c962d84085deeefb29c12de.css


File diff suppressed because it is too large
+ 0 - 1
static/css/app.ca009f070d0aad976e5e22c3ec99e374.css


File diff suppressed because it is too large
+ 1 - 0
static/js/16.55c9cf7eba02d91d80f4.js


File diff suppressed because it is too large
+ 1 - 1
static/js/16.d1d8db77d66a716a2fd1.js


File diff suppressed because it is too large
+ 0 - 1
static/js/18.1986394a549164e3f40c.js


File diff suppressed because it is too large
+ 1 - 1
static/js/17.cd1fc6e56ddb83f78a9f.js


File diff suppressed because it is too large
+ 2 - 2
static/js/app.01e94bcf40983c62e452.js


File diff suppressed because it is too large
+ 1 - 1
static/js/manifest.2fb41d4db38039a29919.js