Browse Source

feat: 入群配置调整

zhengxy 11 months ago
parent
commit
24224b9f58

+ 0 - 3
project/src/components/Home.vue

2
   <div>
2
   <div>
3
     <div class="dataInfoBox" v-loading="data_loading">
3
     <div class="dataInfoBox" v-loading="data_loading">
4
       <div class="dataItem" v-for="(item,index) in custTotal" :key="index+'datainfo'">
4
       <div class="dataItem" v-for="(item,index) in custTotal" :key="index+'datainfo'">
5
-        <!-- <div class="dataItemIcon" :style="`background:${item.bg_color};color:${item.color}`">
6
-          <i class="el-icon-s-custom"></i>
7
-        </div> -->
8
         <img class="dataItemIcon" :src="item.img" alt="">
5
         <img class="dataItemIcon" :src="item.img" alt="">
9
         <p class="dataName">{{item.name}}</p>
6
         <p class="dataName">{{item.name}}</p>
10
         <div class="data">{{item.wordBreakNameValue||item.wordBreakNameValue==0?$formatNum(item.wordBreakNameValue):'-'}}</div>
7
         <div class="data">{{item.wordBreakNameValue||item.wordBreakNameValue==0?$formatNum(item.wordBreakNameValue):'-'}}</div>

+ 0 - 1
project/src/components/assembly/cancelSendListDialog.vue

30
       </div>
30
       </div>
31
     </div>
31
     </div>
32
     <div slot="footer" class="dialog-footer">
32
     <div slot="footer" class="dialog-footer">
33
-      <!-- <el-button size="mini" @click="handleCancel">关 闭</el-button> -->
34
     </div>
33
     </div>
35
   </el-dialog>
34
   </el-dialog>
36
 </template>
35
 </template>

+ 0 - 6
project/src/components/assembly/editCon.vue

132
           <div class="warning_hint f12" style="margin-left:0" v-if="$getStrBytes(link.url) > 2048"> <i
132
           <div class="warning_hint f12" style="margin-left:0" v-if="$getStrBytes(link.url) > 2048"> <i
133
               class="el-icon-warning-outline"></i> 链接地址,最多2048个字节,已超出!</div>
133
               class="el-icon-warning-outline"></i> 链接地址,最多2048个字节,已超出!</div>
134
         </div>
134
         </div>
135
-        <!-- <el-input class="input" size="small" placeholder="请输入链接地址" v-model="link.url" clearable></el-input> -->
136
       </div>
135
       </div>
137
       <div class="lineItem">
136
       <div class="lineItem">
138
         <label>图文封面:</label>
137
         <label>图文封面:</label>
161
           <div class="warning_hint f12" style="margin-left:0" v-if="$getStrBytes(link.desc) > 512"> <i
160
           <div class="warning_hint f12" style="margin-left:0" v-if="$getStrBytes(link.desc) > 512"> <i
162
               class="el-icon-warning-outline"></i> 消息描述,最多512个字节,已超出!</div>
161
               class="el-icon-warning-outline"></i> 消息描述,最多512个字节,已超出!</div>
163
         </div>
162
         </div>
164
-        <!-- <el-input class="input" size="small" placeholder="请输入消息描述" v-model="link.desc" clearable></el-input> -->
165
       </div>
163
       </div>
166
       <div class="buttons">
164
       <div class="buttons">
167
         <el-button type="primary" plain size="mini" @click="linkVisible = false">取消</el-button>
165
         <el-button type="primary" plain size="mini" @click="linkVisible = false">取消</el-button>
187
             <div class="warning_hint f12" style="margin-left:0" v-if="$getStrBytes(miniprogram.title) > 64"> <i
185
             <div class="warning_hint f12" style="margin-left:0" v-if="$getStrBytes(miniprogram.title) > 64"> <i
188
                 class="el-icon-warning-outline"></i> 小程序标题,最多64个字节,已超出!</div>
186
                 class="el-icon-warning-outline"></i> 小程序标题,最多64个字节,已超出!</div>
189
           </div>
187
           </div>
190
-          <!-- <el-input class="input" size="small" placeholder="请输入小程序标题" v-model="miniprogram.title" clearable></el-input> -->
191
         </div>
188
         </div>
192
         <div class="lineItem">
189
         <div class="lineItem">
193
           <label><em>*</em>小程序:</label>
190
           <label><em>*</em>小程序:</label>
194
           <div style="flex:1">
191
           <div style="flex:1">
195
-            <!-- <el-input class="input" size="small" placeholder="请输入小程序appID" v-model="miniprogram.appid" clearable /> -->
196
             <div class="select-w">
192
             <div class="select-w">
197
               <el-select v-model="miniprogram.appid" size="small" placeholder="请选择小程序" clearable filterable>
193
               <el-select v-model="miniprogram.appid" size="small" placeholder="请选择小程序" clearable filterable>
198
                 <el-option v-for="item in miniProOptions" :key="item.app_id" :label="item.app_name + ' - ' + item.platform_name" :value="item.app_id" />
194
                 <el-option v-for="item in miniProOptions" :key="item.app_id" :label="item.app_name + ' - ' + item.platform_name" :value="item.app_id" />
237
               <span class="uploadImgHint" style="margin:0">在封面中心添加"播放按钮"素材。</span>
233
               <span class="uploadImgHint" style="margin:0">在封面中心添加"播放按钮"素材。</span>
238
             </div>
234
             </div>
239
           </div>
235
           </div>
240
-
241
-          <!-- <el-button type="primary" plain size="mini">裁剪</el-button> -->
242
         </div>
236
         </div>
243
         <p class="uploadImgHint" style="margin-left:20px;">*仅支持PNG及JPG,封面显示图片宽高比为5:4,且文件大小不得超过10M。</p>
237
         <p class="uploadImgHint" style="margin-left:20px;">*仅支持PNG及JPG,封面显示图片宽高比为5:4,且文件大小不得超过10M。</p>
244
         <div class="buttons">
238
         <div class="buttons">

+ 0 - 17
project/src/components/assembly/screen/channel.vue

2
   <div class="common-screen-item">
2
   <div class="common-screen-item">
3
     <label class="common-screen-label" v-if="title && title != ''"
3
     <label class="common-screen-label" v-if="title && title != ''"
4
       :style="labelWidth ? 'width:auto;padding-left:30px' : ''">{{ title }}</label>
4
       :style="labelWidth ? 'width:auto;padding-left:30px' : ''">{{ title }}</label>
5
-    <!-- <div :style="width ? 'width:' + width : ''"
6
-      :class="['common-screen-self-box', 'common-input-select', (valueCon && valueCon.val) && clearable ? 'common-input-select-hover' : '']">
7
-      <div :class="['common-screen-self-con', (!valueCon || !valueCon.val) ? 'common-screen-self-placeholder' : '']">
8
-        <div class="common-screen-self-con-div">
9
-          <span>{{ valueCon && valueCon.val ? valueCon.val : (placeholder || placeholderVal || '请选择') }}</span>
10
-        </div>
11
-        <i class="el-icon-circle-close other-icon" @click.stop="clear"></i>
12
-      </div>
13
-      <div class="common-screen-self-icon">
14
-        <i class="el-icon-arrow-down"></i>
15
-      </div>
16
-      <el-select v-model="value" class="common-screen-opacity-0" placeholder="请选择" @change="change">
17
-        <el-option v-for="item in options" :key="item.key" :label="item.val" :value="item.key">
18
-        </el-option>
19
-      </el-select>
20
-    </div> -->
21
-
22
     <el-select
5
     <el-select
23
       class="select-cls"
6
       class="select-cls"
24
       v-model="value"
7
       v-model="value"

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

3
     <label class="common-screen-label" v-if="title && title != ''" :style="labelWidth ? 'width:' + labelWidth : ''">{{
3
     <label class="common-screen-label" v-if="title && title != ''" :style="labelWidth ? 'width:' + labelWidth : ''">{{
4
         title
4
         title
5
     }}</label>
5
     }}</label>
6
-    <!-- trigger="manual" || trigger="click" -->
7
     <el-popover append-to-body placement="bottom" trigger="manual" v-model="visible" :disabled="disabled">
6
     <el-popover append-to-body placement="bottom" trigger="manual" v-model="visible" :disabled="disabled">
8
       <div
7
       <div
9
         :style="width ? 'width:' + width : ''"
8
         :style="width ? 'width:' + width : ''"

+ 0 - 30
project/src/components/assembly/screen/customerServiceCorpV3.vue

11
           <div class="common-screen-self-con-div">
11
           <div class="common-screen-self-con-div">
12
             <span v-if="!final_result||final_result.length==0">{{placeholder || '请选择'}}</span>
12
             <span v-if="!final_result||final_result.length==0">{{placeholder || '请选择'}}</span>
13
             <template v-else>
13
             <template v-else>
14
-              <!-- <span v-for="(item,index) in final_result" :key="index">{{item.name}}{{index==final_result.length-1?'':','}}</span> -->
15
               <span v-for="(item,idx) in rtSelectedCorpList" :key="item.corpid + '-' + idx">{{item.corp_name}}{{idx==rtSelectedCorpList.length-1?'':','}}</span>
14
               <span v-for="(item,idx) in rtSelectedCorpList" :key="item.corpid + '-' + idx">{{item.corp_name}}{{idx==rtSelectedCorpList.length-1?'':','}}</span>
16
               <span v-if="rtSelectedCorpList.length && rtSelectedUserList.length">,</span>
15
               <span v-if="rtSelectedCorpList.length && rtSelectedUserList.length">,</span>
17
               <span v-for="(item,index) in rtSelectedUserList" :key="item.corpid + '-' + index">{{item.user_name}}{{index==rtSelectedUserList.length-1?'':','}}</span>
16
               <span v-for="(item,index) in rtSelectedUserList" :key="item.corpid + '-' + index">{{item.user_name}}{{index==rtSelectedUserList.length-1?'':','}}</span>
70
             <div class="result_num">已选择<span>{{rtSelectedCorpList&&rtSelectedCorpList.length}}</span>个主体和<span>{{rtSelectedUserList&&rtSelectedUserList.length}}</span>名{{source == 'chatGroup' ? '群主' : '成员'}}</div>
69
             <div class="result_num">已选择<span>{{rtSelectedCorpList&&rtSelectedCorpList.length}}</span>个主体和<span>{{rtSelectedUserList&&rtSelectedUserList.length}}</span>名{{source == 'chatGroup' ? '群主' : '成员'}}</div>
71
           </div>
70
           </div>
72
           <div class="member_result self-scrollbar-3">
71
           <div class="member_result self-scrollbar-3">
73
-
74
-            <!-- <div v-for='(corp, corpIdx) in selectedCorpList' :key="corp.corpid">
75
-              <div class="corp-wrap">
76
-                <div class="corp-info">
77
-                  <i class="el-icon-s-cooperation c-46a7ff"></i>
78
-                  <span>{{corp.corp_name}}</span>
79
-                </div>
80
-                <i class="el-icon-close pointer" @click="onClickDelSelectedCorp(corp)"></i>
81
-              </div>
82
-
83
-              <div class="memberItem" v-for="(item,index) in corp.user_list" :key="item.user_id">
84
-                <div class="flex" style="flex:1">
85
-                  <img class="memberImg" :src="item.avatar" alt="">
86
-                  <div class="memberInfo">
87
-                    <div class="name">
88
-                      {{item.user_name}}
89
-                      <span :class="['status-tag', item.is_active == 0 ? 'disabled' : '']">{{ item.is_active == 1 ? '已激活' : '未激活' }}</span>
90
-                    </div>
91
-                    <div class="other">部门:{{item.corp_name}}</div>
92
-                    <div v-if="item.active_desc === '即将过期'" class="other">
93
-                      <span>{{ item.active_desc }}</span>
94
-                      <span v-if="item.expire_time">({{ item.expire_time.slice(0, 10) }})</span>
95
-                    </div>
96
-                  </div>
97
-                </div>
98
-                <i class="el-icon-close" style="margin-left:10px" @click="closeUser(item)"></i>
99
-              </div>
100
-            </div> -->
101
-
102
             <!-- S 全选企微数据 -->
72
             <!-- S 全选企微数据 -->
103
             <div v-for='(corp, corpIdx) in rtSelectedCorpList' :key="corp.corpid">
73
             <div v-for='(corp, corpIdx) in rtSelectedCorpList' :key="corp.corpid">
104
               <div class="corp-wrap">
74
               <div class="corp-wrap">

+ 0 - 12
project/src/components/channelCode/createChannelCode.vue

169
           </span>
169
           </span>
170
         </el-dialog>
170
         </el-dialog>
171
       </div>
171
       </div>
172
-
173
-<!--      <addLimit v-if="add_limit&&detialFlag"-->
174
-<!--                :user_id_list="user_id_list"-->
175
-<!--                :afferentVal="afferent_limit"-->
176
-<!--                :afferent_warn_val="warn_user"-->
177
-<!--                @deleUserId="(val)=>{deleUserId(val)}"-->
178
-<!--                @getTableData="(val)=>{afferent_limit=val}"-->
179
-<!--                @getVal="(val)=>{warn_user=val}"></addLimit>-->
180
-
181
       <div class="line" style="margin-top:20px"></div>
172
       <div class="line" style="margin-top:20px"></div>
182
       <div style="margin-top: 20px">
173
       <div style="margin-top: 20px">
183
-<!--        <el-button type="primary" @click="newCode_click">{{$route.query.id ? ($route.query.type =='copy' ? '复制' : '编辑') : '新建'}}活码</el-button>-->
184
         <el-button type="primary" @click="newCode_click">保存</el-button>
174
         <el-button type="primary" @click="newCode_click">保存</el-button>
185
       </div>
175
       </div>
186
     </div>
176
     </div>
196
 
186
 
197
 <script>
187
 <script>
198
 import dialogGroup from './dialogGroup.vue'
188
 import dialogGroup from './dialogGroup.vue'
199
-// import addLimit from './addLimit.vue'
200
 import customerNote from './customerNote.vue'
189
 import customerNote from './customerNote.vue'
201
 import selfCustomerservice from '@/components/assembly/screen/customerService.vue'
190
 import selfCustomerservice from '@/components/assembly/screen/customerService.vue'
202
 import enterpriseTag from '@/components/assembly/screen/enterpriseTagFC.vue'
191
 import enterpriseTag from '@/components/assembly/screen/enterpriseTagFC.vue'
211
     enterpriseTag,
200
     enterpriseTag,
212
     editCon,
201
     editCon,
213
     welcomEdit,
202
     welcomEdit,
214
-    // addLimit,
215
     customerNote,
203
     customerNote,
216
     customerServiceCorp
204
     customerServiceCorp
217
   },
205
   },

+ 0 - 1
project/src/components/channelCode/publicTable.vue

1
 <template>
1
 <template>
2
   <div>
2
   <div>
3
-  <!-- table -->
4
     <el-table v-loading="loading" ref="multipleTable"
3
     <el-table v-loading="loading" ref="multipleTable"
5
               border
4
               border
6
               :height="height"
5
               :height="height"

+ 0 - 1
project/src/components/customManage/customerTransfer.vue

129
       </el-table-column>
129
       </el-table-column>
130
       <el-table-column prop="createtime" min-width="160" label="添加时间" show-overflow-tooltip align="center">
130
       <el-table-column prop="createtime" min-width="160" label="添加时间" show-overflow-tooltip align="center">
131
       </el-table-column>
131
       </el-table-column>
132
-      <!-- <el-table-column prop="address" width="160" label="上次对话时间" show-overflow-tooltip align="center"></el-table-column> -->
133
       <el-table-column width="140" label="添加渠道" show-overflow-tooltip align="center">
132
       <el-table-column width="140" label="添加渠道" show-overflow-tooltip align="center">
134
         <template slot-scope="scope">
133
         <template slot-scope="scope">
135
           <div>{{ scope.row.add_way }}</div>
134
           <div>{{ scope.row.add_way }}</div>

+ 0 - 1
project/src/components/customManage/manage.vue

135
         </template>
135
         </template>
136
       </el-table-column>
136
       </el-table-column>
137
       <el-table-column prop="createtime" min-width="160" label="添加时间" show-overflow-tooltip align="center"></el-table-column>
137
       <el-table-column prop="createtime" min-width="160" label="添加时间" show-overflow-tooltip align="center"></el-table-column>
138
-      <!-- <el-table-column prop="address" width="160" label="上次对话时间" show-overflow-tooltip align="center"></el-table-column> -->
139
       <el-table-column label="添加渠道" min-width="140" show-overflow-tooltip align="center">
138
       <el-table-column label="添加渠道" min-width="140" show-overflow-tooltip align="center">
140
         <template slot-scope="scope">
139
         <template slot-scope="scope">
141
           <div>{{scope.row.add_way}}</div>
140
           <div>{{scope.row.add_way}}</div>

+ 0 - 2
project/src/components/customManage/transferRecord.vue

34
     <!-- table -->
34
     <!-- table -->
35
     <el-table ref="multipleTable" :height='height' :data="tableData" tooltip-effect="dark" style="width: 100%">
35
     <el-table ref="multipleTable" :height='height' :data="tableData" tooltip-effect="dark" style="width: 100%">
36
       <el-table-column prop="customer_name" label="客户名称" show-overflow-tooltip align="center"></el-table-column>
36
       <el-table-column prop="customer_name" label="客户名称" show-overflow-tooltip align="center"></el-table-column>
37
-      <!-- <el-table-column prop="takeover_username" label="接替员工" show-overflow-tooltip align="center"></el-table-column> -->
38
-
39
       <el-table-column label="转接状态" align="center" min-width="100">
37
       <el-table-column label="转接状态" align="center" min-width="100">
40
         <template slot-scope="scope">
38
         <template slot-scope="scope">
41
           <template v-if="scope.row.status == -1">
39
           <template v-if="scope.row.status == -1">

+ 0 - 6
project/src/components/customOperate/createFriendsCircle.vue

8
         <i class="el-icon-close pointer" @click="$emit('close')"></i>
8
         <i class="el-icon-close pointer" @click="$emit('close')"></i>
9
       </div>
9
       </div>
10
     </div>
10
     </div>
11
-    <!-- <div class="backBox" @click="$router.go(-1)">
12
-      <div class="back">
13
-        <i class="el-icon-back"></i>
14
-        <span>返回</span>
15
-      </div>
16
-    </div> -->
17
     <div v-if="!loading" class="bg-ffffff" style="padding: 15px 30px;">
11
     <div v-if="!loading" class="bg-ffffff" style="padding: 15px 30px;">
18
       <h3 class="bigTitle">
12
       <h3 class="bigTitle">
19
         朋友圈类型
13
         朋友圈类型

+ 0 - 10
project/src/components/customOperate/createMassMsg.vue

8
         <i class="el-icon-close pointer" @click="$emit('close')" />
8
         <i class="el-icon-close pointer" @click="$emit('close')" />
9
       </div>
9
       </div>
10
     </div>
10
     </div>
11
-    <!-- <div class="backBox" @click="$router.go(-1)">
12
-      <div class="back">
13
-        <i class="el-icon-back" />
14
-        <span>返回</span>
15
-      </div>
16
-    </div> -->
17
     <div v-if="!loading" class="bg-ffffff" style="padding: 15px 30px;">
11
     <div v-if="!loading" class="bg-ffffff" style="padding: 15px 30px;">
18
       <h3 class="bigTitle">基础信息
12
       <h3 class="bigTitle">基础信息
19
         <template v-if="rule_id && !is_copy">
13
         <template v-if="rule_id && !is_copy">
81
                 <el-checkbox label="2">女性</el-checkbox>
75
                 <el-checkbox label="2">女性</el-checkbox>
82
                 <el-checkbox label="0">未知性别</el-checkbox>
76
                 <el-checkbox label="0">未知性别</el-checkbox>
83
               </el-checkbox-group>
77
               </el-checkbox-group>
84
-              <!-- <el-radio v-model="gender" :disabled="!editFlag" :label="3" @change="changeEvent">全部性别</el-radio>
85
-              <el-radio v-model="gender" :disabled="!editFlag" :label="1" @change="changeEvent">仅男性粉丝</el-radio>
86
-              <el-radio v-model="gender" :disabled="!editFlag" :label="2" @change="changeEvent">仅女性粉丝</el-radio>
87
-              <el-radio v-model="gender" :disabled="!editFlag" :label="0" @change="changeEvent">未知性别</el-radio> -->
88
             </div>
78
             </div>
89
             <div class="screeningItem">
79
             <div class="screeningItem">
90
               <label>付费情况:</label>
80
               <label>付费情况:</label>

+ 0 - 1
project/src/components/customOperate/friendsCircle/QWdetial.vue

77
           <div class="small_title">共{{info.publish_list[sendMember[acIdx].memListKey].length}}名成员</div>
77
           <div class="small_title">共{{info.publish_list[sendMember[acIdx].memListKey].length}}名成员</div>
78
           <div class="memBox">
78
           <div class="memBox">
79
             <div class="memBox_item" v-for="(item,index) in info.publish_list[sendMember[acIdx].memListKey]" :key="index">
79
             <div class="memBox_item" v-for="(item,index) in info.publish_list[sendMember[acIdx].memListKey]" :key="index">
80
-              <!-- <img :src="item.avatar" alt=""> -->
81
               <img src="@/assets/img/self_head.png">
80
               <img src="@/assets/img/self_head.png">
82
               <div>
81
               <div>
83
                 <div class="name">{{item.sender}}</div>
82
                 <div class="name">{{item.sender}}</div>

+ 0 - 2
project/src/components/customOperate/friendsCircle/QWfc.vue

36
               </template>
36
               </template>
37
               <template v-else-if="scope.row.attachments[0].msgtype == 'video'">
37
               <template v-else-if="scope.row.attachments[0].msgtype == 'video'">
38
                 <div class="flex-align-center">
38
                 <div class="flex-align-center">
39
-                  <!-- <video :src="scope.row.attachments[0].video.pic_url" style="width: 60px;height: 100px;margin-right: 6px"  /> -->
40
                   <div class="flex-column flex-align-jus-center" style="margin-right:6px;" @click="onClickShowVideo(scope.row.attachments[0].video.pic_url)">
39
                   <div class="flex-column flex-align-jus-center" style="margin-right:6px;" @click="onClickShowVideo(scope.row.attachments[0].video.pic_url)">
41
                     <img src="@/assets/img/video_bg.svg" style="width:60px;height:60px;" class="pointer" />
40
                     <img src="@/assets/img/video_bg.svg" style="width:60px;height:60px;" class="pointer" />
42
                     <el-button v-if="scope.row.attachments[0].video.pic_url" type="text" size="mini">查看视频</el-button>
41
                     <el-button v-if="scope.row.attachments[0].video.pic_url" type="text" size="mini">查看视频</el-button>
88
                 <img :src="scope.row.attachments[0].image.pic_url" alt="" style="width: 60px;height:100%;">
87
                 <img :src="scope.row.attachments[0].image.pic_url" alt="" style="width: 60px;height:100%;">
89
               </template>
88
               </template>
90
               <template v-else-if="scope.row.attachments[0].msgtype == 'video'">
89
               <template v-else-if="scope.row.attachments[0].msgtype == 'video'">
91
-                <!-- <video :src="scope.row.attachments[0].video.pic_url" style="width: 60px;height: 100px;"></video> -->
92
                 <div class="flex-column flex-align-jus-center" style="width:60px;" @click="onClickShowVideo(scope.row.attachments[0].video.pic_url)">
90
                 <div class="flex-column flex-align-jus-center" style="width:60px;" @click="onClickShowVideo(scope.row.attachments[0].video.pic_url)">
93
                   <img src="@/assets/img/video_bg.svg" style="width:60px;height:60px;" class="pointer" />
91
                   <img src="@/assets/img/video_bg.svg" style="width:60px;height:60px;" class="pointer" />
94
                   <el-button v-if="scope.row.attachments[0].video.pic_url" type="text" size="mini">查看视频</el-button>
92
                   <el-button v-if="scope.row.attachments[0].video.pic_url" type="text" size="mini">查看视频</el-button>

+ 1 - 6
project/src/components/customOperate/massMsgDetail/dataTranslate.vue

27
       <div class="member_total">
27
       <div class="member_total">
28
         <div class="member_total_item">
28
         <div class="member_total_item">
29
           <div class="num">{{dataInfo.receive_fail_with_limit||dataInfo.receive_fail_with_limit==0?$formatNum(dataInfo.receive_fail_with_limit):'-'}}<span>人</span></div>
29
           <div class="num">{{dataInfo.receive_fail_with_limit||dataInfo.receive_fail_with_limit==0?$formatNum(dataInfo.receive_fail_with_limit):'-'}}<span>人</span></div>
30
-          <div class="txt flex-align-jus-center">客户接收已达上限
31
-            <!-- <el-tooltip placement="top">
32
-              <div slot="content">每位客户每天可以接收1条群发消息,不限企业发布的群发和个人发布的群发。<br />如果超出则发送不成功,记为客户接收已达上限</div>
33
-              <div><i class="el-icon-question c-999"></i></div>
34
-            </el-tooltip> -->
35
-          </div>
30
+          <div class="txt flex-align-jus-center">客户接收已达上限</div>
36
         </div>
31
         </div>
37
         <div class="splitLine_small"></div>
32
         <div class="splitLine_small"></div>
38
         <div class="member_total_item">
33
         <div class="member_total_item">

+ 0 - 1
project/src/components/customOperate/sideTool/smartRadar/publicTable.vue

8
       <div class="flex-align-center" style="flex-wrap: wrap">
8
       <div class="flex-align-center" style="flex-wrap: wrap">
9
         <self-input :reset="reset" :hasLabel="false" label_name="搜索客户" @inputChange='(val)=>{customer_name = val;source_init()}'></self-input>
9
         <self-input :reset="reset" :hasLabel="false" label_name="搜索客户" @inputChange='(val)=>{customer_name = val;source_init()}'></self-input>
10
         <div class="flex" style="margin: 0 10px">
10
         <div class="flex" style="margin: 0 10px">
11
-<!--          <div class="f14 c-666" style="flex-shrink: 0;margin-right: 6px;width: 80px;text-align: right;">选择渠道</div>-->
12
           <el-select v-model="channel" size="small" clearable placeholder="请选择渠道" @change="source_init()" style="width: 200px">
11
           <el-select v-model="channel" size="small" clearable placeholder="请选择渠道" @change="source_init()" style="width: 200px">
13
             <el-option
12
             <el-option
14
               v-for="(item,index) in channelList"
13
               v-for="(item,index) in channelList"

+ 0 - 1
project/src/components/customOperate/welcom_message.vue

358
         }else{
358
         }else{
359
           item.weeks = ''
359
           item.weeks = ''
360
         }
360
         }
361
-        // item.weeks = item.weeks.join(',');
362
 
361
 
363
         // S 坑:部分浏览器不支持 replaceAll 方法
362
         // S 坑:部分浏览器不支持 replaceAll 方法
364
         if (String.prototype.replaceAll) {
363
         if (String.prototype.replaceAll) {

+ 0 - 3
project/src/components/dataBoard/adqAccount/list.vue

20
         <el-popover placement="bottom" width="600" trigger="click">
20
         <el-popover placement="bottom" width="600" trigger="click">
21
           <div class="gzh_why_box">
21
           <div class="gzh_why_box">
22
             <div class="self-hint" style="border:none">
22
             <div class="self-hint" style="border:none">
23
-              <!-- <i class="el-icon-message-solid"></i> -->
24
               <div>
23
               <div>
25
                 <p class="fbolder f15" style="margin-bottom:8px">为什么要进行ADQ账号授权?</p>
24
                 <p class="fbolder f15" style="margin-bottom:8px">为什么要进行ADQ账号授权?</p>
26
                 <p>授权成功的账号,数据看板才可以提供数据回传和广告数据日报数据,为了获得更好的数据服务,请完成账号授权!</p>
25
                 <p>授权成功的账号,数据看板才可以提供数据回传和广告数据日报数据,为了获得更好的数据服务,请完成账号授权!</p>
36
     <!-- ADQ账号列表 -->
35
     <!-- ADQ账号列表 -->
37
     <el-table ref="multipleTable" :height="height" :data="gzhData" tooltip-effect="dark" style="width: 100%" @selection-change="handleSelectionChange" row-key="account_id">
36
     <el-table ref="multipleTable" :height="height" :data="gzhData" tooltip-effect="dark" style="width: 100%" @selection-change="handleSelectionChange" row-key="account_id">
38
       <el-table-column type="selection" reserve-selection :selectable="checkSelectable" width="55" align="center"></el-table-column>
37
       <el-table-column type="selection" reserve-selection :selectable="checkSelectable" width="55" align="center"></el-table-column>
39
-      <!-- <el-table-column prop="account_name" min-width="160" label="公众号" show-overflow-tooltip align="center" fixed="left"></el-table-column> -->
40
-      <!-- <el-table-column prop="channel" min-width="140" label="渠道编号" show-overflow-tooltip align="center"></el-table-column> -->
41
       <el-table-column prop="account_id" min-width="160" label="ADQ投放账号ID" show-overflow-tooltip align="center"></el-table-column>
38
       <el-table-column prop="account_id" min-width="160" label="ADQ投放账号ID" show-overflow-tooltip align="center"></el-table-column>
42
       <el-table-column prop="user_action_set_id" min-width="160" label="数据源ID" show-overflow-tooltip align="center"></el-table-column>
39
       <el-table-column prop="user_action_set_id" min-width="160" label="数据源ID" show-overflow-tooltip align="center"></el-table-column>
43
       <el-table-column prop="create_time" min-width="180" label="授权时间" show-overflow-tooltip align="center"></el-table-column>
40
       <el-table-column prop="create_time" min-width="180" label="授权时间" show-overflow-tooltip align="center"></el-table-column>

+ 0 - 1
project/src/components/dataBoard/chatGroupData.vue

22
           <el-button size="mini" plain @click="resetEvent">重置</el-button>
22
           <el-button size="mini" plain @click="resetEvent">重置</el-button>
23
         </div>
23
         </div>
24
       </div>
24
       </div>
25
-      <!-- <div class="reset" @click="resetEvent">重置</div> -->
26
       <el-button v-if="isCanExport" class="export-btn" type="primary" size="mini" @click="onClickExport">导出Excel</el-button>
25
       <el-button v-if="isCanExport" class="export-btn" type="primary" size="mini" @click="onClickExport">导出Excel</el-button>
27
     </div>
26
     </div>
28
     <div class="dataInfoBox" v-loading="dataLoading">
27
     <div class="dataInfoBox" v-loading="dataLoading">

+ 0 - 6
project/src/components/loginPage.vue

7
       <div class="head-top">
7
       <div class="head-top">
8
           <div class="head-left">
8
           <div class="head-left">
9
             <div class="logo_con">
9
             <div class="logo_con">
10
-              <!-- <img src="@/assets/img/login_img/logo.png" class="small_logo" alt=""> -->
11
-              <!-- <span>猎羽</span> -->
12
               <img src="@/assets/img/login_img/logo_2023.png" class="small_logo_2023">
10
               <img src="@/assets/img/login_img/logo_2023.png" class="small_logo_2023">
13
             </div>
11
             </div>
14
             <img class="head-left-logo" src="@/assets/img/login_img/logo-box.png" alt=""></div>
12
             <img class="head-left-logo" src="@/assets/img/login_img/logo-box.png" alt=""></div>
72
     <div class="toast_container">
70
     <div class="toast_container">
73
       <i class="el-icon-circle-close closeMask" @click="mask_flag=false"></i>
71
       <i class="el-icon-circle-close closeMask" @click="mask_flag=false"></i>
74
       <div class="bcg_box">
72
       <div class="bcg_box">
75
-        <!-- <div class="loginBox_title">
76
-          <img src="@/assets/img/cs_logo.png" alt="">
77
-          <span>猎羽</span>
78
-        </div> -->
79
         <img class="bcg_img" src="@/assets/img/login_box.png" alt="">
73
         <img class="bcg_img" src="@/assets/img/login_box.png" alt="">
80
       </div>
74
       </div>
81
 
75
 

+ 41 - 52
project/src/components/manage/InviteIntoGroup/createData.vue

116
         </div>
116
         </div>
117
         <p style="font-size:13px;line-height:30px;color:#f9a527;margin-left:10px">*持续邀请入群任务仅可新增不可编辑</p>
117
         <p style="font-size:13px;line-height:30px;color:#f9a527;margin-left:10px">*持续邀请入群任务仅可新增不可编辑</p>
118
       </div>
118
       </div>
119
-      <div v-show="continuously_attract_groups == 1" class="regulations">
120
-        <label>
121
-          <em>*</em>
122
-          单日拉群上限
123
-          <el-tooltip content="结合客户续拉功能使用,拉群上限 * 客户群人数上限(不设置默认为40)= 每日续拉的客户数" placement="top">
124
-            <div><i class="el-icon-question"></i></div>
125
-          </el-tooltip>
126
-        </label>
127
-        <el-input placeholder="请输入单日拉群上限" :disabled="!editFlag" style="width:300px" v-model.trim="upper_limit" clearable size="small" @input="onInputUpperLimit" />
119
+      <div v-show="continuously_attract_groups == 1" class="screeningCustomers" style="margin-left: 125px;padding:0 15px 20px;">
120
+        <div v-show="continuously_attract_groups == 1" class="regulations">
121
+          <label>
122
+            <em>*</em>
123
+            单日拉群上限
124
+            <el-tooltip content="结合客户续拉功能使用,拉群上限 * 客户群人数上限(不设置默认为40)= 每日续拉的客户数" placement="top">
125
+              <div><i class="el-icon-question"></i></div>
126
+            </el-tooltip>
127
+          </label>
128
+          <el-input placeholder="请输入单日拉群上限" :disabled="!editFlag" style="width:300px" v-model.trim="upper_limit" clearable size="small" @input="onInputUpperLimit" />
129
+        </div>
128
       </div>
130
       </div>
131
+
129
       <!-- E 客户续拉 -->
132
       <!-- E 客户续拉 -->
130
 
133
 
131
       <!-- 拉群模式 -->
134
       <!-- 拉群模式 -->
147
         </el-radio-group>
150
         </el-radio-group>
148
       </div>
151
       </div>
149
 
152
 
150
-      <!-- S 客户补拉(拉群模式为“当前客服群聊”时可编辑) -->
151
-      <div v-show="main_msg_data.owner_type == 1" class="regulations" style="align-items: center">
153
+      <!-- S 客户补拉 -->
154
+      <div class="regulations" style="align-items: center">
152
         <label>
155
         <label>
153
           客户补拉
156
           客户补拉
154
         </label>
157
         </label>
164
           />
167
           />
165
         </div>
168
         </div>
166
       </div>
169
       </div>
167
-      <div v-show="supplementary_invite == 1" class="regulations">
168
-        <label>
169
-          <em>*</em>
170
-          补拉入群周期
171
-        </label>
172
-        <el-input placeholder="请输入补拉周期" :disabled="!editFlag" style="width:300px" v-model.trim="supplementary_invite_cycle" clearable size="small" @input="onInputSupplementaryInviteCycle">
173
-          <template slot="append">天</template>
174
-        </el-input>
175
-      </div>
176
-      <div class="regulations" v-show="supplementary_invite == 1">
177
-        <label><em>*</em>补拉时间点</label>
178
-        <div class="send-time-item">
179
-          <div class="timeNums-wrap">
180
-            <div class="timeNums" v-for="(item, idx) in supplementary_invite_time" :key="idx">
181
-              <el-time-picker v-model="supplementary_invite_time[idx]" size="mini" placeholder="请选择" value-format="HH:mm" format="HH:mm" :clearable="false" />
182
-              <i v-if="idx !== 0" class="el-icon-error" @click="onClickDelSupplementaryInviteTime(idx)" />
170
+      <div v-show="supplementary_invite == 1" class="screeningCustomers" style="margin-left: 125px;padding:0 15px 20px;">
171
+        <div class="regulations">
172
+          <label>
173
+            <em>*</em>
174
+            补拉入群周期
175
+          </label>
176
+          <el-input placeholder="请输入补拉周期" :disabled="!editFlag" style="width:300px" v-model.trim="supplementary_invite_cycle" clearable size="small" @input="onInputSupplementaryInviteCycle">
177
+            <template slot="append">天</template>
178
+          </el-input>
179
+        </div>
180
+        <div class="regulations">
181
+          <label><em>*</em>补拉时间点</label>
182
+          <div class="send-time-item">
183
+            <div class="timeNums-wrap">
184
+              <div class="timeNums" v-for="(item, idx) in supplementary_invite_time" :key="idx">
185
+                <el-time-picker v-model="supplementary_invite_time[idx]" size="mini" placeholder="请选择" value-format="HH:mm" format="HH:mm" :clearable="false" />
186
+                <i v-if="idx !== 0" class="el-icon-error" @click="onClickDelSupplementaryInviteTime(idx)" />
187
+              </div>
183
             </div>
188
             </div>
189
+            <span class="add-btn" @click="onClickAddSupplementaryInviteTime"><i class="el-icon-circle-plus-outline" />新增时间点</span>
184
           </div>
190
           </div>
185
-          <span class="add-btn" @click="onClickAddSupplementaryInviteTime"><i class="el-icon-circle-plus-outline" />新增时间点</span>
186
         </div>
191
         </div>
187
       </div>
192
       </div>
188
       <!-- E 客户补拉 -->
193
       <!-- E 客户补拉 -->
193
         <label><em>*</em>选择群聊:</label>
198
         <label><em>*</em>选择群聊:</label>
194
         <chatGroupOptions ref="chatGroupOptionsMain" width="300px" :isHasRoomId="true" :isOnJobUser="true" :chatListResult="main_msg_data.chat_group_config" @change="onChangeGlobalChatGroup" />
199
         <chatGroupOptions ref="chatGroupOptionsMain" width="300px" :isHasRoomId="true" :isOnJobUser="true" :chatListResult="main_msg_data.chat_group_config" @change="onChangeGlobalChatGroup" />
195
       </div>
200
       </div>
196
-      <!-- 进群方式 -->
197
-      <!-- <div class="regulations" style="margin-top: 20px;">
198
-        <label>进群方式:</label>
199
-        <el-radio-group v-model="main_msg_data.join_type">
200
-          <el-radio :label="1">顺序进群</el-radio>
201
-          <el-radio :label="2">随机进群</el-radio>
202
-        </el-radio-group>
203
-      </div> -->
201
+
204
       <!-- 群管理 -->
202
       <!-- 群管理 -->
205
       <div class="regulations" style="align-items: center">
203
       <div class="regulations" style="align-items: center">
206
         <label>渠道群管理:</label>
204
         <label>渠道群管理:</label>
347
       user_id_list: [],
345
       user_id_list: [],
348
       main_msg_data: {
346
       main_msg_data: {
349
         owner_type: 2, // 拉群模式 2其他客服群聊 1当前客服群聊
347
         owner_type: 2, // 拉群模式 2其他客服群聊 1当前客服群聊
350
-        // join_type: 1, // 进群方式 1:顺序进群 2:随机进群
351
         chat_group_config: [],
348
         chat_group_config: [],
352
         is_limit:0
349
         is_limit:0
353
       },
350
       },
524
             tag_type: this.afferent_tag_obj.tag
521
             tag_type: this.afferent_tag_obj.tag
525
           }
522
           }
526
 
523
 
527
-
528
           this.filter_type = res.rst.filter_type || 1
524
           this.filter_type = res.rst.filter_type || 1
529
           this.add_time_later = (res.rst.customer_filter && res.rst.filter_type == 1) ? res.rst.add_time_later : ''
525
           this.add_time_later = (res.rst.customer_filter && res.rst.filter_type == 1) ? res.rst.add_time_later : ''
530
           this.add_times = (res.rst.customer_filter && res.rst.filter_type == 2) ? [res.rst.add_time_st || '', res.rst.add_time_et || ''] : []
526
           this.add_times = (res.rst.customer_filter && res.rst.filter_type == 2) ? [res.rst.add_time_st || '', res.rst.add_time_et || ''] : []
543
             item.name = item.group_name
539
             item.name = item.group_name
544
           })
540
           })
545
           this.main_msg_data.is_limit = 1
541
           this.main_msg_data.is_limit = 1
546
-          //进群方式
547
-          // this.main_msg_data.join_type = res.rst.join_type
548
           //拉群模式
542
           //拉群模式
549
           this.main_msg_data.owner_type = res.rst.owner_type
543
           this.main_msg_data.owner_type = res.rst.owner_type
550
 
544
 
612
         return
606
         return
613
       }
607
       }
614
 
608
 
615
-      if (this.main_msg_data.owner_type == 1 && this.supplementary_invite == 1) { // 客户补拉开启判空
609
+      if (this.supplementary_invite == 1) { // 客户补拉开启判空
616
         if (!this.supplementary_invite_cycle) {
610
         if (!this.supplementary_invite_cycle) {
617
           this.$message.warning('请输入补拉入群周期(不能为0)')
611
           this.$message.warning('请输入补拉入群周期(不能为0)')
618
           return
612
           return
655
         users:this.user_id_list&&this.user_id_list.length>0 ? this.user_id_list.join(',') : '',
649
         users:this.user_id_list&&this.user_id_list.length>0 ? this.user_id_list.join(',') : '',
656
         invite_config:JSON.stringify(this.main_msg_data.chat_group_config),
650
         invite_config:JSON.stringify(this.main_msg_data.chat_group_config),
657
         owner_type:this.main_msg_data.owner_type,
651
         owner_type:this.main_msg_data.owner_type,
658
-        // join_type:this.main_msg_data.join_type,
659
         customer_filter: this.customer_filter,
652
         customer_filter: this.customer_filter,
660
         // S 自定义筛选参数
653
         // S 自定义筛选参数
661
         gender: this.gender && this.gender.length ? this.gender.join(',') : '',
654
         gender: this.gender && this.gender.length ? this.gender.join(',') : '',
671
         // E 自定义筛选参数
664
         // E 自定义筛选参数
672
         invite_type: this.invite_type,
665
         invite_type: this.invite_type,
673
         invite_time: this.invite_type == 2 ? JSON.stringify(this.invite_time_list) : '',
666
         invite_time: this.invite_type == 2 ? JSON.stringify(this.invite_time_list) : '',
674
-      }
675
 
667
 
676
-      // S 客户补拉参数
677
-      if (this.main_msg_data.owner_type == 1) {
678
-        params.supplementary_invite = this.supplementary_invite
679
-        params.supplementary_invite_cycle = this.supplementary_invite == 1 ? this.supplementary_invite_cycle : ''
680
-        params.supplementary_invite_time = this.supplementary_invite == 1 ? JSON.stringify(this.supplementary_invite_time) : ''
668
+        // S 客户补拉参数
669
+        supplementary_invite: this.supplementary_invite,
670
+        supplementary_invite_cycle: this.supplementary_invite == 1 ? this.supplementary_invite_cycle : '',
671
+        supplementary_invite_time: this.supplementary_invite == 1 ? JSON.stringify(this.supplementary_invite_time) : '',
672
+        // E 客户补拉参数
681
       }
673
       }
682
-      // E 客户补拉参数
683
 
674
 
684
       if (this.isEdit) {
675
       if (this.isEdit) {
685
         params.rule_id = this.rule_id
676
         params.rule_id = this.rule_id
764
     },
755
     },
765
 
756
 
766
     onInputUpperLimit(inputVal) {
757
     onInputUpperLimit(inputVal) {
767
-      // this.upper_limit = getIntegerNumber(inputVal)
768
       this.upper_limit = getNot0IntegerNumber(inputVal)
758
       this.upper_limit = getNot0IntegerNumber(inputVal)
769
     },
759
     },
770
 
760
 
771
     onInputSupplementaryInviteCycle(inputVal) {
761
     onInputSupplementaryInviteCycle(inputVal) {
772
-      // this.supplementary_invite_cycle = getIntegerNumber(inputVal)
773
       this.supplementary_invite_cycle = getNot0IntegerNumber(inputVal)
762
       this.supplementary_invite_cycle = getNot0IntegerNumber(inputVal)
774
     },
763
     },
775
 
764
 
790
 @import "./create.scss";
779
 @import "./create.scss";
791
 
780
 
792
 .listBox{
781
 .listBox{
793
-  margin-left: 90px;
782
+  margin-left: 115px;
794
   width: 730px;
783
   width: 730px;
795
   margin-top: 10px;
784
   margin-top: 10px;
796
   background-color: #fbfbfb;
785
   background-color: #fbfbfb;

+ 0 - 25
project/src/router/allRouter.js

1
-// import INDEX from '@/components/Index/index.vue'
2
-// import Home from '@/components/Home.vue'
3
-// import homeData from '@/components/HomeData.vue'
4
-
5
 const INDEX = () => import(/* webpackChunkName: 'INDEX' */'@/components/Index/index.vue')
1
 const INDEX = () => import(/* webpackChunkName: 'INDEX' */'@/components/Index/index.vue')
6
 const Home = () => import(/* webpackChunkName: 'Home' */'@/components/Home.vue')
2
 const Home = () => import(/* webpackChunkName: 'Home' */'@/components/Home.vue')
7
 const homeData = () => import(/* webpackChunkName: 'homeData' */'@/components/HomeData.vue')
3
 const homeData = () => import(/* webpackChunkName: 'homeData' */'@/components/HomeData.vue')
21
 const groupList = () => import(/* webpackChunkName: 'groupList' */ '@/components/customOperate/chatGroup/groupList.vue')
17
 const groupList = () => import(/* webpackChunkName: 'groupList' */ '@/components/customOperate/chatGroup/groupList.vue')
22
 const customerFriendsCircle = () => import(/* webpackChunkName: 'customerFriendsCircle' */ '@/components/customOperate/friendsCircle/index.vue')
18
 const customerFriendsCircle = () => import(/* webpackChunkName: 'customerFriendsCircle' */ '@/components/customOperate/friendsCircle/index.vue')
23
 const sideTool = () => import(/* webpackChunkName: 'sideTool' */ '@/components/customOperate/sideTool/index.vue')
19
 const sideTool = () => import(/* webpackChunkName: 'sideTool' */ '@/components/customOperate/sideTool/index.vue')
24
-// const createMassMsg = () => import(/* webpackChunkName: 'createMassMsg' */ '@/components/customOperate/createMassMsg.vue')
25
 const blackList = () => import(/* webpackChunkName: 'blackList' */ '@/components/customManage/blackList.vue')
20
 const blackList = () => import(/* webpackChunkName: 'blackList' */ '@/components/customManage/blackList.vue')
26
 const welcomeMsg = () => import(/* webpackChunkName: 'welcomeMsg' */ '@/components/customOperate/welcomeMsg.vue')
21
 const welcomeMsg = () => import(/* webpackChunkName: 'welcomeMsg' */ '@/components/customOperate/welcomeMsg.vue')
27
 const welcom_message = () => import(/* webpackChunkName: 'welcom_message' */ '@/components/customOperate/welcom_message.vue')
22
 const welcom_message = () => import(/* webpackChunkName: 'welcom_message' */ '@/components/customOperate/welcom_message.vue')
551
           title: '编辑欢迎语'
546
           title: '编辑欢迎语'
552
         }
547
         }
553
       },
548
       },
554
-      // {
555
-      //   path: 'createMassMsg',
556
-      //   name: 'createMassMsg',
557
-      //   component: createMassMsg,
558
-      //   meta: {
559
-      //     keepAlive: false,
560
-      //     isLogin: true,
561
-      //     title: '新建群发'
562
-      //   }
563
-      // },
564
-      // {
565
-      //   path: 'massMsg/:rule_id',
566
-      //   name: 'createMassMsg',
567
-      //   component: createMassMsg,
568
-      //   meta: {
569
-      //     keepAlive: false,
570
-      //     isLogin: true,
571
-      //     title: '群发详情'
572
-      //   }
573
-      // },
574
       {
549
       {
575
         path: 'operatorGroup',
550
         path: 'operatorGroup',
576
         name: 'operatorGroup',
551
         name: 'operatorGroup',