@@ -50,49 +50,12 @@ SOFTWARE.
50
50
</el-col >
51
51
<right-toolbar :showSearch.sync =" showSearch" @queryTable =" getList" />
52
52
</el-row >
53
- <!-- 列表 -->
53
+ <!-- tab 项 -->
54
54
<el-tab-pane name =" 1" >
55
55
<span slot =" label" ><i class =" el-icon-star-off" ></i > 关注时回复</span >
56
- <el-table v-loading =" loading" :data =" list" >
57
- <el-table-column label =" 回复消息类型" align =" center" prop =" responseMessageType" />
58
- <el-table-column label =" 创建时间" align =" center" prop =" createTime" width =" 180" >
59
- <template slot-scope="scope">
60
- <span >{{ parseTime(scope.row.createTime) }}</span >
61
- </template >
62
- </el-table-column >
63
- <el-table-column label =" 操作" align =" center" class-name =" small-padding fixed-width" >
64
- <template slot-scope="scope">
65
- <el-button size =" mini" type =" text" icon =" el-icon-edit" @click =" handleUpdate(scope.row)"
66
- v-hasPermi =" ['mp:auto-reply:update']" >修改
67
- </el-button >
68
- <el-button size =" mini" type =" text" icon =" el-icon-delete" @click =" handleDelete(scope.row)"
69
- v-hasPermi =" ['mp:auto-reply:delete']" >删除
70
- </el-button >
71
- </template >
72
- </el-table-column >
73
- </el-table >
74
56
</el-tab-pane >
75
57
<el-tab-pane name =" 2" >
76
58
<span slot =" label" ><i class =" el-icon-chat-line-round" ></i > 消息回复</span >
77
- <el-table v-loading =" loading" :data =" list" >
78
- <el-table-column label =" 请求消息类型" align =" center" prop =" requestMessageType" />
79
- <el-table-column label =" 回复消息类型" align =" center" prop =" responseMessageType" />
80
- <el-table-column label =" 创建时间" align =" center" prop =" createTime" width =" 180" >
81
- <template slot-scope="scope">
82
- <span >{{ parseTime(scope.row.createTime) }}</span >
83
- </template >
84
- </el-table-column >
85
- <el-table-column label =" 操作" align =" center" class-name =" small-padding fixed-width" >
86
- <template slot-scope="scope">
87
- <el-button size =" mini" type =" text" icon =" el-icon-edit" @click =" handleUpdate(scope.row)"
88
- v-hasPermi =" ['mp:auto-reply:update']" >修改
89
- </el-button >
90
- <el-button size =" mini" type =" text" icon =" el-icon-delete" @click =" handleDelete(scope.row)"
91
- v-hasPermi =" ['mp:auto-reply:delete']" >删除
92
- </el-button >
93
- </template >
94
- </el-table-column >
95
- </el-table >
96
59
</el-tab-pane >
97
60
<el-tab-pane name =" 3" >
98
61
<span slot =" label" ><i class =" el-icon-news" ></i > 关键词回复</span >
@@ -101,13 +64,42 @@ SOFTWARE.
101
64
102
65
<!-- 列表 -->
103
66
<el-table v-loading =" loading" :data =" list" >
104
- <el-table-column label =" 关键词" align =" center" prop =" requestKeyword" />
105
- <el-table-column label =" 匹配类型" align =" center" prop =" requestMatch" >
67
+ <el-table-column label =" 请求消息类型" align =" center" prop =" requestMessageType" v-if =" type === '2'" />
68
+ <el-table-column label =" 关键词" align =" center" prop =" requestKeyword" v-if =" type === '3'" />
69
+ <el-table-column label =" 匹配类型" align =" center" prop =" requestMatch" v-if =" type === '3'" >
106
70
<template v-slot =" scope " >
107
71
<dict-tag :type =" DICT_TYPE.MP_AUTO_REPLY_REQUEST_MATCH" :value =" scope.row.requestMatch" />
108
72
</template >
109
73
</el-table-column >
110
- <el-table-column label =" 回复消息类型" align =" center" prop =" responseMessageType" />
74
+ <el-table-column label =" 回复消息类型" align =" center" >
75
+ <template v-slot =" scope " >
76
+ <dict-tag :type =" DICT_TYPE.MP_MESSAGE_TYPE" :value =" scope.row.responseMessageType" />
77
+ </template >
78
+ </el-table-column >
79
+ <el-table-column label =" 回复内容" align =" center" >
80
+ <template slot-scope="scope">
81
+ <div v-if =" scope.row.responseMessageType === 'text'" >{{ scope.row.responseContent }}</div >
82
+ <div v-else-if =" scope.row.responseMessageType === 'voice'" >
83
+ <wx-voice-player :url =" scope.row.responseMediaUrl" />
84
+ </div >
85
+ <div v-else-if =" scope.row.responseMessageType === 'image'" >
86
+ <a target =" _blank" :href =" scope.row.responseMediaUrl" >
87
+ <img :src =" scope.row.responseMediaUrl" style =" width : 100px " >
88
+ </a >
89
+ </div >
90
+ <div v-else-if =" scope.row.responseMessageType === 'video' || scope.row.responseMessageType === 'shortvideo'" >
91
+ <wx-video-player :url =" scope.row.responseMediaUrl" style =" margin-top : 10px " />
92
+ </div >
93
+ <div v-else-if =" scope.row.responseMessageType === 'news'" >
94
+ <wx-news :articles =" scope.row.responseArticles" />
95
+ </div >
96
+ <div v-else-if =" scope.row.responseMessageType === 'music'" >
97
+ <wx-music :title =" scope.row.responseTitle" :description =" scope.row.responseDescription"
98
+ :thumb-media-url =" scope.row.responseThumbMediaUrl"
99
+ :music-url =" scope.row.responseMusicUrl" :hq-music-url =" scope.row.responseHqMusicUrl" />
100
+ </div >
101
+ </template >
102
+ </el-table-column >
111
103
<el-table-column label =" 创建时间" align =" center" prop =" createTime" width =" 180" >
112
104
<template slot-scope="scope">
113
105
<span >{{ parseTime(scope.row.createTime) }}</span >
@@ -130,9 +122,9 @@ SOFTWARE.
130
122
<el-form ref =" form" :model =" form" :rules =" rules" label-width =" 80px" >
131
123
<el-form-item label =" 消息类型" prop =" requestMessageType" v-if =" type === '2'" >
132
124
<el-select v-model =" form.requestMessageType" placeholder =" 请选择" >
133
- <el-option v-for =" item in dictData.get('wx_req_type') " :key = " item.value " :label = " item.label "
134
- :value = " item .value" :disabled = " item.disabled " v-if = " item .value !== 'event' " >
135
- </ el-option >
125
+ <el-option v-for =" dict in this.getDictDatas(DICT_TYPE.MP_MESSAGE_TYPE) "
126
+ :key = " dict .value" :label = " dict.label " :value = " dict .value"
127
+ v-if = " requestMessageTypes.includes(dict.value) " / >
136
128
</el-select >
137
129
</el-form-item >
138
130
<el-form-item label =" 匹配类型" prop =" requestMatch" v-if =" type === '3'" >
@@ -157,19 +149,33 @@ SOFTWARE.
157
149
</template >
158
150
159
151
<script >
152
+ import WxVideoPlayer from ' @/views/mp/components/wx-video-play/main.vue' ;
153
+ import WxVoicePlayer from ' @/views/mp/components/wx-voice-play/main.vue' ;
154
+ import WxMsg from ' @/views/mp/components/wx-msg/main.vue' ;
155
+ import WxLocation from ' @/views/mp/components/wx-location/main.vue' ;
156
+ import WxMusic from ' @/views/mp/components/wx-music/main.vue' ;
157
+ import WxNews from ' @/views/mp/components/wx-news/main.vue' ;
160
158
import WxReplySelect from ' @/views/mp/components/wx-reply/main.vue'
161
159
import { getSimpleAccounts } from " @/api/mp/account" ;
162
160
import { createAutoReply , deleteAutoReply , getAutoReply , getAutoReplyPage , updateAutoReply } from " @/api/mp/autoReply" ;
163
161
164
162
export default {
165
163
name: ' mpAutoReply' ,
166
164
components: {
165
+ WxVideoPlayer,
166
+ WxVoicePlayer,
167
+ WxMsg,
168
+ WxLocation,
169
+ WxMusic,
170
+ WxNews,
167
171
WxReplySelect
168
172
},
169
173
data () {
170
174
return {
171
175
// tab 类型(1、关注时回复;2、消息回复;3、关键词回复)
172
176
type: ' 3' ,
177
+ // 允许选择的请求消息类型
178
+ requestMessageTypes: [' text' , ' image' , ' voice' , ' video' , ' shortvideo' , ' location' , ' link' ],
173
179
// 遮罩层
174
180
loading: true ,
175
181
// 显示搜索条件
@@ -202,8 +208,6 @@ export default {
202
208
},
203
209
hackResetWxReplySelect: false , // 重置 WxReplySelect 组件,解决无法清除的问题
204
210
205
- dictData: new Map (),
206
-
207
211
// 公众号账号列表
208
212
accounts: []
209
213
}
@@ -218,33 +222,6 @@ export default {
218
222
// 加载数据
219
223
this .getList ();
220
224
})
221
-
222
- // TODO 芋艿:字典数据,一起搞
223
- this .dictData .set (' wx_req_type' ,[{
224
- value: ' text' ,
225
- label: ' 文本'
226
- },{
227
- value: ' image' ,
228
- label: ' 图片'
229
- },{
230
- value: ' voice' ,
231
- label: ' 语音'
232
- },{
233
- value: ' video' ,
234
- label: ' 视频'
235
- },{
236
- value: ' shortvideo' ,
237
- label: ' 小视频'
238
- },{
239
- value: ' location' ,
240
- label: ' 地理位置'
241
- },{
242
- value: ' link' ,
243
- label: ' 链接消息'
244
- },{
245
- value: ' event' ,
246
- label: ' 事件推送'
247
- }])
248
225
},
249
226
methods: {
250
227
/** 查询列表 */
@@ -295,7 +272,8 @@ export default {
295
272
this .open = true
296
273
this .title = ' 新增自动回复' ;
297
274
this .objData = {
298
- type : ' text'
275
+ type : ' text' ,
276
+ accountId: this .queryParams .accountId ,
299
277
}
300
278
},
301
279
/** 修改按钮操作 */
0 commit comments