Browse Source

Merge branch 'master' into feature/231008

zhengxy 1 year ago
parent
commit
85cf172794
31 changed files with 942 additions and 28 deletions
  1. 1 1
      index.html
  2. 4 0
      project/src/assets/config/interface_api.js
  3. 5 1
      project/src/components/assembly/screen/customerService.vue
  4. 7 2
      project/src/components/assembly/screen/serviceSingle.vue
  5. 218 0
      project/src/components/manage/InviteIntoGroup/customerShare/index.vue
  6. 297 0
      project/src/components/manage/InviteIntoGroup/customerShare/shareConfigDrawer.vue
  7. 12 5
      project/src/components/manage/InviteIntoGroup/index.vue
  8. 1 1
      project/src/router/allRouter.js
  9. 1 0
      static/css/app.888acafeed100b436b2e69ff4a2ab4ae.css
  10. 2 2
      static/js/0.d2067d12c69991d3ca92.js
  11. 1 0
      static/js/17.e037536f207ffbe32d30.js
  12. 1 0
      static/js/21.188315507a422f2d016c.js
  13. 1 1
      static/js/21.ffd296fec38bb062c746.js
  14. 1 1
      static/js/22.5d953e2f7675d5ada2a7.js
  15. 1 1
      static/js/23.673c926113755580c757.js
  16. 1 1
      static/js/24.a432e09c48f5176f5e45.js
  17. 1 1
      static/js/25.ef68247f0cdba7fd156c.js
  18. 1 1
      static/js/26.d428891a2f15ae1e4de2.js
  19. 1 1
      static/js/27.709d109a3872088a9ca8.js
  20. 1 1
      static/js/28.8dc9417c02a492b507f4.js
  21. 1 1
      static/js/29.eb4aa94e50b0126eac52.js
  22. 1 1
      static/js/30.6606708c35f349286f57.js
  23. 1 1
      static/js/31.53e7426de9af8c4cdc6b.js
  24. 1 1
      static/js/32.6d3272ba1e76cf0319f7.js
  25. 1 1
      static/js/33.b939fc8fffcd44032a69.js
  26. 1 1
      static/js/34.58212aa41b5695370d64.js
  27. 0 1
      static/js/35.d1da52c87e8bacb55f59.js
  28. 8 0
      static/js/app.6cb32606a5e1480cc392.js
  29. 360 0
      static/js/app.d8e0192c46a2b7f7a8a8.js
  30. 5 1
      static/js/manifest.46fbde6d5f20969ad66e.js
  31. 5 0
      static/js/manifest.805d37cfafe411ca3b05.js

+ 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.0439661a8dbf594408866f20aeed2a93.css rel=stylesheet></head><body><div id=app></div><script type=text/javascript src=./static/js/manifest.46fbde6d5f20969ad66e.js></script><script type=text/javascript src=./static/js/app.6cb32606a5e1480cc392.js></script></body></html>
10
+      })();</script><link href=./static/css/app.888acafeed100b436b2e69ff4a2ab4ae.css rel=stylesheet></head><body><div id=app></div><script type=text/javascript src=./static/js/manifest.805d37cfafe411ca3b05.js></script><script type=text/javascript src=./static/js/app.d8e0192c46a2b7f7a8a8.js></script></body></html>

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

@@ -479,6 +479,10 @@ var api = {
479 479
   authority_bindUser: '/api/admin/corpBindMultipleUser', // 授权管理 - 批量分配账号
480 480
   authority_getBindUser: '/api/admin/getCorpBindUserList', // 授权管理 - 获取已分配结果
481 481
 
482
+  customerShare_configList: '/api/customerShare/configList', // 客户共享 - 配置列表
483
+  customerShare_changeStatus: '/api/customerShare/changeStatus', // 客户共享 - 配置状态
484
+  customerShare_setConfig: '/api/customerShare/setConfig', // 客户共享 - 创建配置
485
+
482 486
 };
483 487
 
484 488
 export { api };

+ 5 - 1
project/src/components/assembly/screen/customerService.vue

@@ -19,7 +19,7 @@
19 19
         <div :class="['common-screen-self-con',
20 20
         !final_result || final_result.length == 0 ? 'common-screen-self-placeholder' : '']">
21 21
           <div class="common-screen-self-con-div">
22
-            <span v-if="!final_result || final_result.length == 0">请选择{{ source == 'chatGroup' ? '群主' : '成员' }}</span>
22
+            <span v-if="!final_result || final_result.length == 0">{{ placeholder || ('请选择' + (source == 'chatGroup' ? '群主' : '成员')) }}</span>
23 23
             <template v-else>
24 24
               <span
25 25
                 v-for="(item, index) in final_result"
@@ -152,6 +152,10 @@ export default {
152 152
       type: String,
153 153
       default: '',
154 154
     },
155
+    placeholder: {
156
+      type: String,
157
+      default: () => ''
158
+    },
155 159
   },
156 160
   watch: {
157 161
     reset () {

+ 7 - 2
project/src/components/assembly/screen/serviceSingle.vue

@@ -15,7 +15,7 @@
15 15
         <i class="el-icon-arrow-down"></i>
16 16
       </div>
17 17
     </div>
18
-    <el-dialog title="" :visible.sync="visible" :close-on-click-modal="false" width="400px" append-to-body center top="15vh">
18
+    <el-dialog title="" :visible.sync="visible" :close-on-click-modal="false" :show-close="false" width="400px" append-to-body center top="15vh">
19 19
       <div v-loading="loading">
20 20
         <div class="propoverItem">
21 21
           <self-input :reset='resetFlag' :hasLabel="false" width="90%" style="margin-top:0" @inputChange='(val)=>{input_keyword = val;init("userSearch")}'></self-input>
@@ -53,7 +53,7 @@
53 53
           </div>
54 54
         </div>
55 55
         <div class="buttons">
56
-          <el-button type="primary" plain size="mini" @click="visible = false">取消</el-button>
56
+          <el-button type="primary" plain size="mini" @click="onClickCancel">取消</el-button>
57 57
           <el-button type="primary" size="mini" @click="defineEvent">确定</el-button>
58 58
         </div>
59 59
       </div>
@@ -119,6 +119,7 @@ export default {
119 119
   },
120 120
   methods: {
121 121
     handleInitList() {
122
+      console.log('handleInitList => ', )
122 123
       if (this.userList.length == 0) {
123 124
         this.init()
124 125
       } else {
@@ -197,6 +198,10 @@ export default {
197 198
 
198 199
       this.selectUserId = user_id
199 200
     },
201
+    onClickCancel() {
202
+      this.selectUserId = this.afferent_userId || ''
203
+      this.visible = false
204
+    },
200 205
   }
201 206
 }
202 207
 </script>

+ 218 - 0
project/src/components/manage/InviteIntoGroup/customerShare/index.vue

@@ -0,0 +1,218 @@
1
+<template>
2
+  <div v-loading="loading" class="customerShare-wrap">
3
+    <div class="screenBox">
4
+      <div class="filter-wrap">
5
+        <!-- 待共享客服 -->
6
+        <serviceSingle title="待共享客服" placeholder="请选择" @customerDefine="onChangeUser" />
7
+      </div>
8
+      <el-button type="primary" size="mini" @click="onClickCreateBtn">新建客户共享配置</el-button>
9
+    </div>
10
+    <el-table :height="height" :data="list" tooltip-effect="dark" style="width: 100%;margin-top:10px">
11
+      <el-table-column label="配置标题" prop="title" min-width="200" align="center" fixed="left" />
12
+      <el-table-column label="待共享的客服名称" prop="handover_user" min-width="200" align="center" />
13
+      <el-table-column label="接收客户的客服名称" prop="takeover_users_name" min-width="200" align="center" />
14
+      <el-table-column label="配置状态" align="center" min-width="120">
15
+        <template slot-scope="{ row }">
16
+          <el-switch v-if="row.status !== ''"  v-model="row.status" :active-value="1" :inactive-value="0" disabled @click.native="onClickStatus(row)" />
17
+          <div v-else> - </div>
18
+        </template>
19
+      </el-table-column>
20
+      <el-table-column label="操作" min-width="160" align="center" fixed="right">
21
+        <template slot-scope="{ row }">
22
+          <span class="btn c-00b38a" @click="onClickEditBtn(row)">编辑</span>
23
+        </template>
24
+      </el-table-column>
25
+    </el-table>
26
+    <div class="pagination" v-show="pagination.total > 0">
27
+      <el-pagination background :current-page="pagination.page" @current-change="handleCurrentChange" layout="prev, pager, next" :page-count="Number(pagination.pages)" />
28
+    </div>
29
+
30
+    <!-- S 创建续期任务 -->
31
+    <shareConfigDrawer
32
+      v-model="shareConfigDrawerVisible"
33
+      :configInfo="currentConfigInfo"
34
+      @confirm="onConfirmConfig"
35
+      @cancel="onCancelConfig"
36
+    />
37
+    <!-- E 创建续期任务 -->
38
+  </div>
39
+</template>
40
+
41
+<script>
42
+import serviceSingle from '@/components/assembly/screen/serviceSingle.vue'
43
+import shareConfigDrawer from './shareConfigDrawer.vue'
44
+
45
+export default {
46
+  name: 'customerShare',
47
+  components: {
48
+    serviceSingle,
49
+    shareConfigDrawer,
50
+  },
51
+  data () {
52
+    return {
53
+      height: '',
54
+      loading: false,
55
+      pagination: {
56
+        page: 1,
57
+        page_size: 20,
58
+        pages: 0,
59
+        total: 0,
60
+      },
61
+      filter: {
62
+        user_id: '',
63
+      },
64
+      list: [],
65
+
66
+      shareConfigDrawerVisible: false,
67
+      currentConfigInfo: {},
68
+    }
69
+  },
70
+  created () {
71
+    this.height = document.documentElement.clientHeight - 200
72
+    this.handleGetList()
73
+  },
74
+  methods: {
75
+    // 获取列表数据
76
+    async handleGetList() {
77
+      try {
78
+        this.loading = true
79
+        const url = `${this.URL.BASEURL}${this.URL.customerShare_configList}`
80
+        const params = {
81
+          page: this.pagination.page,
82
+          page_size: this.pagination.page_size,
83
+          user_id: this.filter.user_id,
84
+        }
85
+        const { data: res = {} } = await this.$axios.get(url, { params })
86
+        if (res && res.errno == 0 && Array.isArray(res.rst.data)) {
87
+          this.list = res.rst.data;
88
+          this.pagination.total = res.rst.pageInfo.total;
89
+          this.pagination.pages = res.rst.pageInfo.pages;
90
+        } else if (res.errno != 4002) {
91
+          this.$message.warning(res.err)
92
+          this.list = [];
93
+          this.pagination.total = 0;
94
+          this.pagination.pages = 0;
95
+        }
96
+      } catch (error) {
97
+        console.log(error)
98
+        this.list = [];
99
+        this.pagination.total = 0;
100
+        this.pagination.pages = 0;
101
+      } finally {
102
+        this.loading = false
103
+      }
104
+    },
105
+    onChangeUser(val) {
106
+      this.filter.user_id = val ? val.user_id : ''
107
+      this.pagination.page = 1
108
+      this.handleGetList()
109
+    },
110
+    // 监听当前页数变化
111
+    handleCurrentChange(currentPage) {
112
+      this.pagination.page = currentPage
113
+      this.handleGetList()
114
+    },
115
+    // 监听点击切换"状态"
116
+    async onClickStatus(row) {
117
+      try {
118
+        await this.$confirm(`确定${row.status == 0 ? '启用' : '禁用'}【${row.title}】?`, '提示', {
119
+          confirmButtonText: '确定',
120
+          cancelButtonText: '取消',
121
+          type: 'warning'
122
+        })
123
+        this.handleChangeStatus(row)
124
+      } catch (error) {
125
+        console.log(error)
126
+      }
127
+    },
128
+    // 执行“切换状态”
129
+    async handleChangeStatus({ corpid, user_id, status }) {
130
+      try {
131
+        this.loading = true
132
+        const url = `${this.URL.BASEURL}${this.URL.customerShare_changeStatus}`
133
+        const params = {
134
+          corpid,
135
+          user_id,
136
+          status: status == 1 ? 0 : 1,
137
+        }
138
+        const { data: res = {} } = await this.$axios.get(url, { params })
139
+        if (res && res.errno == 0) {
140
+          this.$message.success('操作成功')
141
+          this.handleGetList()
142
+        } else if (res.errno != 4002) {
143
+          this.$message.warning(res.err)
144
+        }
145
+      } catch (error) {
146
+        console.log(error)
147
+      } finally {
148
+        this.loading = false
149
+      }
150
+    },
151
+
152
+
153
+    // 监听点击“新建客户共享配置”
154
+    onClickCreateBtn() {
155
+      this.currentConfigInfo = {}
156
+      this.shareConfigDrawerVisible = true
157
+    },
158
+    onClickEditBtn(row) {
159
+      this.currentConfigInfo = {...row}
160
+      this.shareConfigDrawerVisible = true
161
+    },
162
+    onConfirmConfig({ isEdit }) {
163
+      this.shareConfigDrawerVisible = false
164
+      !isEdit && (this.pagination.page = 1)
165
+      this.handleGetList()
166
+    },
167
+    onCancelConfig() {
168
+      this.shareConfigDrawerVisible = false
169
+    },
170
+  },
171
+}
172
+</script>
173
+
174
+<style lang="scss" scoped>
175
+@import "@/style/list.scss";
176
+.customerShare-wrap {
177
+  /deep/ .el-switch.is-disabled .el-switch__core {
178
+    cursor: pointer;
179
+  }
180
+  /deep/ .el-switch.is-disabled {
181
+    opacity: 1;
182
+  }
183
+  .screenBox {
184
+    background: #fff;
185
+    padding: 5px 20px;
186
+    display: flex;
187
+    justify-content: space-between;
188
+    align-items: center;
189
+    .filter-wrap {
190
+      flex: 1;
191
+      display: flex;
192
+      flex-wrap: wrap;
193
+    }
194
+  }
195
+  .btn {
196
+    cursor: pointer;
197
+    margin-right: 4px;
198
+    &:last-child {
199
+      margin-right: 0;
200
+    }
201
+  }
202
+  .lableBox_dad {
203
+    display: flex;
204
+    align-items: center;
205
+    justify-content: center;
206
+    flex-wrap: wrap;
207
+
208
+    .lableBox {
209
+      font-size: 12px;
210
+      background-color: #f0f0f0;
211
+      padding: 4px 8px;
212
+      margin-top: 5px;
213
+      margin-right: 4px;
214
+      border-radius: 4px;
215
+    }
216
+  }
217
+}
218
+</style>

+ 297 - 0
project/src/components/manage/InviteIntoGroup/customerShare/shareConfigDrawer.vue

@@ -0,0 +1,297 @@
1
+<template>
2
+  <el-drawer
3
+    :visible.sync="visible"
4
+    :close-on-press-escape="false"
5
+    :wrapperClosable="false"
6
+    :withHeader="false"
7
+    size="800px">
8
+    <div class="content-wrap" v-loading="loading">
9
+      <div class="self_drawer_title">
10
+        <div class="flex">
11
+          {{ title }}
12
+        </div>
13
+        <div class="flex-align-center">
14
+          <i class="el-icon-close pointer" @click="handleCloseDrawer" />
15
+        </div>
16
+      </div>
17
+
18
+      <div class="form-wrap" v-loading="loading">
19
+        <div class="form-item">
20
+          <span class="lable required">配置标题</span>
21
+          <el-input placeholder="请输入配置标题" v-model.trim="form.title" clearable size="small" />
22
+        </div>
23
+
24
+        <div class="form-item">
25
+          <span class="lable required">待共享的客服</span>
26
+          <serviceSingle v-if="isShowService" title="" width="400px" placeholder="请选择待共享的客服" :reset="reset" :afferent_userId="form.user_id" @customerDefine="onChangeUser" />
27
+        </div>
28
+
29
+        <div class="form-item">
30
+          <span class="lable required">接收客户的客服</span>
31
+          <selfCustomerservice v-if="isShowService" title="" width="400px" placeholder="请选择接受客户的客服" :reset="reset" :afferent_users="form.takeover_users" @customerDefine="onChangeTakeoverUsers" />
32
+        </div>
33
+      </div>
34
+
35
+      <div class="button_box">
36
+        <button class="button" @click="onClickSave">保存配置</button>
37
+      </div>
38
+    </div>
39
+  </el-drawer>
40
+</template>
41
+
42
+<script>
43
+import serviceSingle from '@/components/assembly/screen/serviceSingle.vue'
44
+import selfCustomerservice from '@/components/assembly/screen/customerService.vue'
45
+
46
+export default {
47
+  components: {
48
+    serviceSingle,
49
+    selfCustomerservice,
50
+  },
51
+  props: {
52
+    // 控制弹框是否显示
53
+    value: {
54
+      type: Boolean,
55
+      default: () => false
56
+    },
57
+    configInfo: {
58
+      type: Object,
59
+      default: () => ({})
60
+    },
61
+  },
62
+  data() {
63
+    return {
64
+      loading: false,
65
+      reset: false,
66
+      isShowService: true,
67
+      form: {
68
+        title: '',
69
+        user_id: '',
70
+        takeover_users: [],
71
+      },
72
+    }
73
+  },
74
+  computed: {
75
+    isEdit() {
76
+      return !!this.configInfo.user_id
77
+    },
78
+    title() {
79
+      return this.isEdit ? `编辑客户共享配置` : `新建客户共享配置`
80
+    },
81
+    visible: {
82
+      get() {
83
+        return this.value
84
+      },
85
+      set(isShow) {
86
+        this.$emit('input', isShow)
87
+      },
88
+    },
89
+
90
+  },
91
+  watch: {
92
+    async visible(isShow) {
93
+      if (isShow) {
94
+        this.isEdit && this.handleGetDetail()
95
+      } else {
96
+        this.handleClearForm()
97
+      }
98
+    },
99
+  },
100
+  methods: {
101
+    handleCloseDrawer() {
102
+      this.visible = false
103
+    },
104
+    // 获取详情
105
+    async handleGetDetail() {
106
+      this.isShowService = false
107
+      await this.$nextTick()
108
+      const { title, user_id, takeover_users } = this.configInfo
109
+      this.form.title = title
110
+      this.form.user_id = user_id
111
+      this.form.takeover_users = takeover_users.split(',')
112
+      this.isShowService = true
113
+    },
114
+    async onClickSave() {
115
+      try {
116
+        // 表单校验
117
+        await this.handleFormValidate()
118
+        // 提交表单
119
+        this.handleSubmitForm()
120
+      } catch (error) {
121
+        console.log(error)
122
+      }
123
+    },
124
+    handleFormValidate() {
125
+      const { title, user_id, takeover_users } = this.form
126
+      return new Promise((resolve, reject) => {
127
+        if (!title) {
128
+          this.$message.warning('请输入配置标题')
129
+          reject('表单校验未通过')
130
+        } else if (!user_id) {
131
+          this.$message.warning('请选择待共享的客服')
132
+          reject('表单校验未通过')
133
+        } else if (!takeover_users || !takeover_users.length) {
134
+          this.$message.warning('请选择接收客户的客服')
135
+          reject('表单校验未通过')
136
+        } else {
137
+          resolve('表单校验通过')
138
+        }
139
+      })
140
+    },
141
+    async handleSubmitForm() {
142
+      try {
143
+        this.loading = true
144
+        const url = `${this.URL.BASEURL}${this.URL.customerShare_setConfig}`
145
+        const params = {
146
+          title: this.form.title,
147
+          user_id: this.form.user_id,
148
+          takeover_users: this.form.takeover_users.join(',')
149
+        }
150
+        const { data: res = {} } = await this.$axios.post(url, params)
151
+        if (res && res.errno == 0) {
152
+          this.$message.success('保存成功')
153
+          this.handleClearForm()
154
+          this.$emit('confirm', { isEdit: this.isEdit })
155
+        } else if (res.errno != 4002) {
156
+          this.$message.warning(res.err || '保存失败')
157
+        }
158
+      } catch (error) {
159
+        console.log(error)
160
+      } finally {
161
+        this.loading = false
162
+      }
163
+    },
164
+    async handleClearForm() {
165
+      this.reset = !this.reset
166
+      this.form.title = ''
167
+      this.form.user_id = ''
168
+      this.form.takeover_users = []
169
+      this.isShowService = false
170
+      await this.$nextTick()
171
+      this.isShowService = true
172
+    },
173
+    onChangeUser(val) {
174
+      console.log('onChangeUser => ', val)
175
+      this.form.user_id = val ? val.user_id : ''
176
+    },
177
+    onChangeTakeoverUsers(val) {
178
+      console.log('onChangeTakeoverUsers => val ', val)
179
+      this.form.takeover_users = val
180
+    },
181
+  },
182
+};
183
+</script>
184
+
185
+<style lang="scss" scoped>
186
+.content-wrap {
187
+  .form-wrap {
188
+    padding: 30px;
189
+    .form-item {
190
+      display: flex;
191
+      align-items: center;
192
+      margin-top: 40px;
193
+      &.flex-start {
194
+        align-items: flex-start;
195
+      }
196
+      &:first-child {
197
+        margin-top: 0;
198
+      }
199
+      .lable {
200
+        flex-shrink: 0;
201
+        width: 120px;
202
+        color: #333;
203
+        font-size: 14px;
204
+        line-height: 28px;
205
+
206
+        &.required {
207
+          position: relative;
208
+          &::before {
209
+            position: absolute;
210
+            left: -8px;
211
+            top: 0;
212
+            content: "*";
213
+            color: #f56c6c;
214
+          }
215
+        }
216
+      }
217
+      .el-input {
218
+        width: 400px;
219
+        /deep/ &.is-disabled .el-input__inner {
220
+          background-color: #F5F7FA;
221
+          border-color: #DCDFE6;
222
+          color: #606266;
223
+          cursor: not-allowed;
224
+        }
225
+      }
226
+      .el-select {
227
+        width: 260px;
228
+      }
229
+      .account-wrap {
230
+        .account-item-wrap {
231
+          margin-top: 35px;
232
+          &:first-child {
233
+            margin-top: 0;
234
+          }
235
+          .corp-wrap {
236
+            display: flex;
237
+            align-items: center;
238
+            .user-select {
239
+              margin-left: 10px;
240
+            }
241
+            .icon-btn {
242
+              font-size: 17px;
243
+              cursor: pointer;
244
+              margin-left: 10px;
245
+              &.el-icon-delete {
246
+                color:#f56c6c;
247
+              }
248
+              &.el-icon-circle-plus-outline {
249
+                color: #00b38a;
250
+              }
251
+            }
252
+
253
+          }
254
+          .user-wrap {
255
+            box-sizing: border-box;
256
+            width: 533px;
257
+            background-color: rgb(247, 247, 247);
258
+            margin-top: 10px;
259
+            padding: 10px 10px 0 10px;
260
+            display: flex;
261
+            align-items: center;
262
+            flex-wrap: wrap;
263
+            .user-item-wrap {
264
+              position: relative;
265
+              margin: 0 14px 10px 0;
266
+              .err-icon {
267
+                position: absolute;
268
+                top: -5px;
269
+                right: -5px;
270
+                color: #c1c1c1;
271
+                font-size: 15px;
272
+                font-weight: 500;
273
+              }
274
+            }
275
+          }
276
+        }
277
+      }
278
+    }
279
+  }
280
+  .button_box {
281
+    margin: 100px 134px;
282
+    display: flex;
283
+    align-items: center;
284
+  }
285
+
286
+  .button {
287
+    width: 178px;
288
+    height: 40px;
289
+    background: #00b38a;
290
+    border-radius: 5px;
291
+    color: #ffffff;
292
+    font-size: 14px;
293
+    border: none;
294
+    margin-right: 10px;
295
+  }
296
+}
297
+</style>

+ 12 - 5
project/src/components/manage/InviteIntoGroup/index.vue

@@ -2,24 +2,31 @@
2 2
   <div>
3 3
     <div class="topTagBox flex" style="min-width: 1200px;" id="customerAnalysis">
4 4
       <div class="left flex-align-center">
5
-        <div :class="['tagItem',tagType==1?'tagItem_active':'']" @click="changeType(1);">邀请入群配置</div>
6 5
         <div :class="['tagItem',tagType==2?'tagItem_active':'']" @click="changeType(2);">安卓设备绑定</div>
6
+        <div :class="['tagItem',tagType==1?'tagItem_active':'']" @click="changeType(1);">邀请入群配置</div>
7
+        <div :class="['tagItem',tagType==3?'tagItem_active':'']" @click="changeType(3);">客户共享配置</div>
7 8
       </div>
8 9
     </div>
9
-    <inviteRuleList v-if="tagType==1" />
10 10
     <deviceBind v-if="tagType==2" />
11
+    <inviteRuleList v-if="tagType==1" />
12
+    <customerShare v-if="tagType==3" />
11 13
   </div>
12 14
 </template>
13 15
 
14 16
 <script>
15 17
 import inviteRuleList from './inviteRuleList.vue'
16 18
 import deviceBind from './deviceBind/index.vue'
19
+import customerShare from './customerShare/index.vue'
17 20
 export default {
18
-  name: "smartPushV3",
19
-  components: { inviteRuleList, deviceBind, },
21
+  name: "InviteIntoGroup",
22
+  components: {
23
+    inviteRuleList,
24
+    deviceBind,
25
+    customerShare,
26
+  },
20 27
   data() {
21 28
     return {
22
-      tagType: this.$route.query.tag || 1,
29
+      tagType: this.$route.query.tag || 2,
23 30
     }
24 31
   },
25 32
   methods:{

+ 1 - 1
project/src/router/allRouter.js

@@ -1011,7 +1011,7 @@ export var allRouter = [
1011 1011
         meta: {
1012 1012
           keepAlive: false,
1013 1013
           isLogin: true,
1014
-          title: '邀请入群配置'
1014
+          title: '安卓工具配置'
1015 1015
         }
1016 1016
       },
1017 1017
     ]

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


File diff suppressed because it is too large
+ 2 - 2
static/js/0.d2067d12c69991d3ca92.js


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


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


File diff suppressed because it is too large
+ 1 - 1
static/js/21.ffd296fec38bb062c746.js


File diff suppressed because it is too large
+ 1 - 1
static/js/22.5d953e2f7675d5ada2a7.js


File diff suppressed because it is too large
+ 1 - 1
static/js/23.673c926113755580c757.js


File diff suppressed because it is too large
+ 1 - 1
static/js/24.a432e09c48f5176f5e45.js


File diff suppressed because it is too large
+ 1 - 1
static/js/25.ef68247f0cdba7fd156c.js


File diff suppressed because it is too large
+ 1 - 1
static/js/26.d428891a2f15ae1e4de2.js


File diff suppressed because it is too large
+ 1 - 1
static/js/27.709d109a3872088a9ca8.js


File diff suppressed because it is too large
+ 1 - 1
static/js/28.8dc9417c02a492b507f4.js


File diff suppressed because it is too large
+ 1 - 1
static/js/29.eb4aa94e50b0126eac52.js


File diff suppressed because it is too large
+ 1 - 1
static/js/30.6606708c35f349286f57.js


File diff suppressed because it is too large
+ 1 - 1
static/js/31.53e7426de9af8c4cdc6b.js


File diff suppressed because it is too large
+ 1 - 1
static/js/32.6d3272ba1e76cf0319f7.js


File diff suppressed because it is too large
+ 1 - 1
static/js/33.b939fc8fffcd44032a69.js


File diff suppressed because it is too large
+ 1 - 1
static/js/34.58212aa41b5695370d64.js


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


File diff suppressed because it is too large
+ 8 - 0
static/js/app.6cb32606a5e1480cc392.js


File diff suppressed because it is too large
+ 360 - 0
static/js/app.d8e0192c46a2b7f7a8a8.js


File diff suppressed because it is too large
+ 5 - 1
static/js/manifest.46fbde6d5f20969ad66e.js


File diff suppressed because it is too large
+ 5 - 0
static/js/manifest.805d37cfafe411ca3b05.js