5
5
① 移除 avue 组件,使用 ElementUI 原生组件
6
6
-->
7
7
<template >
8
- <!-- 类型:图片 -->
9
- <div v-if =" objData.type === 'image'" >
10
- <div class =" waterfall" v-loading =" loading" >
11
- <div class =" waterfall-item" v-for =" item in list" :key =" item.mediaId" >
12
- <img class =" material-img" :src =" item.url" />
13
- <p class =" item-name" >{{ item.name }}</p >
14
- <el-row class =" ope-row" >
15
- <el-button type =" success" @click =" selectMaterialFun(item)"
16
- >选择
17
- <i class =" el-icon-circle-check el-icon--right" ></i >
18
- </el-button >
19
- </el-row >
20
- </div >
21
- </div >
22
- <!-- 分页组件 -->
23
- <pagination
24
- v-show =" total > 0"
25
- :total =" total"
26
- v-model:page =" queryParams.pageNo"
27
- v-model:limit =" queryParams.pageSize"
28
- @pagination =" getMaterialPageFun"
29
- />
30
- </div >
31
- <!-- 类型:语音 -->
32
- <div v-else-if =" objData.type === 'voice'" >
33
- <!-- 列表 -->
34
- <el-table v-loading =" loading" :data =" list" >
35
- <el-table-column label =" 编号" align =" center" prop =" mediaId" />
36
- <el-table-column label =" 文件名" align =" center" prop =" name" />
37
- <el-table-column label =" 语音" align =" center" >
38
- <template #default =" scope " >
39
- <wx-voice-player :url =" scope.row.url" />
40
- </template >
41
- </el-table-column >
42
- <el-table-column label =" 上传时间" align =" center" prop =" createTime" width =" 180" >
43
- <template #default =" scope " >
44
- <span >{{ formatDate(scope.row.createTime) }}</span >
45
- </template >
46
- </el-table-column >
47
- <el-table-column
48
- label =" 操作"
49
- align =" center"
50
- fixed =" right"
51
- class-name =" small-padding fixed-width"
52
- >
53
- <template #default =" scope " >
54
- <el-button type =" text" icon =" el-icon-circle-plus" @click =" selectMaterialFun(scope.row)"
55
- >选择
56
- </el-button >
57
- </template >
58
- </el-table-column >
59
- </el-table >
60
- <!-- 分页组件 -->
61
- <pagination
62
- v-show =" total > 0"
63
- :total =" total"
64
- v-model:page =" queryParams.pageNo"
65
- v-model:limit =" queryParams.pageSize"
66
- @pagination =" getPage"
67
- />
68
- </div >
69
- <div v-else-if =" objData.type === 'video'" >
70
- <!-- 列表 -->
71
- <el-table v-loading =" loading" :data =" list" >
72
- <el-table-column label =" 编号" align =" center" prop =" mediaId" />
73
- <el-table-column label =" 文件名" align =" center" prop =" name" />
74
- <el-table-column label =" 标题" align =" center" prop =" title" />
75
- <el-table-column label =" 介绍" align =" center" prop =" introduction" />
76
- <el-table-column label =" 视频" align =" center" >
77
- <template #default =" scope " >
78
- <wx-video-player :url =" scope.row.url" />
79
- </template >
80
- </el-table-column >
81
- <el-table-column label =" 上传时间" align =" center" prop =" createTime" width =" 180" >
82
- <template #default =" scope " >
83
- <span >{{ formatDate(scope.row.createTime) }}</span >
84
- </template >
85
- </el-table-column >
86
- <el-table-column
87
- label =" 操作"
88
- align =" center"
89
- fixed =" right"
90
- class-name =" small-padding fixed-width"
91
- >
92
- <template #default =" scope " >
93
- <el-button type =" text" icon =" el-icon-circle-plus" @click =" selectMaterialFun(scope.row)"
94
- >选择
95
- </el-button >
96
- </template >
97
- </el-table-column >
98
- </el-table >
99
- <!-- 分页组件 -->
100
- <pagination
101
- v-show =" total > 0"
102
- :total =" total"
103
- v-model:page =" queryParams.pageNo"
104
- v-model:limit =" queryParams.pageSize"
105
- @pagination =" getMaterialPageFun"
106
- />
107
- </div >
108
- <div v-else-if =" objData.type === 'news'" >
109
- <div class =" waterfall" v-loading =" loading" >
110
- <div class =" waterfall-item" v-for =" item in list" :key =" item.mediaId" >
111
- <div v-if =" item.content && item.content.newsItem" >
112
- <wx-news :articles =" item.content.newsItem" />
8
+ <div class =" pb-30px" >
9
+ <!-- 类型:image -->
10
+ <div v-if =" objData.type === 'image'" >
11
+ <div class =" waterfall" v-loading =" loading" >
12
+ <div class =" waterfall-item" v-for =" item in list" :key =" item.mediaId" >
13
+ <img class =" material-img" :src =" item.url" />
14
+ <p class =" item-name" >{{ item.name }}</p >
113
15
<el-row class =" ope-row" >
114
- <el-button type =" success" @click =" selectMaterialFun(item)" >
115
- 选择< i class = " el-icon- circle-check el-icon--right " ></ i >
16
+ <el-button type =" success" @click =" selectMaterialFun(item)"
17
+ >选择 < Icon icon = " ep: circle-check" / >
116
18
</el-button >
117
19
</el-row >
118
20
</div >
119
21
</div >
22
+ <!-- 分页组件 -->
23
+ <pagination
24
+ v-show =" total > 0"
25
+ :total =" total"
26
+ v-model:page =" queryParams.pageNo"
27
+ v-model:limit =" queryParams.pageSize"
28
+ @pagination =" getMaterialPageFun"
29
+ />
30
+ </div >
31
+ <!-- 类型:voice -->
32
+ <div v-else-if =" objData.type === 'voice'" >
33
+ <!-- 列表 -->
34
+ <el-table v-loading =" loading" :data =" list" >
35
+ <el-table-column label =" 编号" align =" center" prop =" mediaId" />
36
+ <el-table-column label =" 文件名" align =" center" prop =" name" />
37
+ <el-table-column label =" 语音" align =" center" >
38
+ <template #default =" scope " >
39
+ <WxVoicePlayer :url =" scope.row.url" />
40
+ </template >
41
+ </el-table-column >
42
+ <el-table-column label =" 上传时间" align =" center" prop =" createTime" width =" 180" >
43
+ <template #default =" scope " >
44
+ <span >{{ formatDate(scope.row.createTime) }}</span >
45
+ </template >
46
+ </el-table-column >
47
+ <el-table-column
48
+ label =" 操作"
49
+ align =" center"
50
+ fixed =" right"
51
+ class-name =" small-padding fixed-width"
52
+ >
53
+ <template #default =" scope " >
54
+ <el-button type =" text" @click =" selectMaterialFun(scope.row)"
55
+ >选择<Icon icon =" ep:plus" />
56
+ </el-button >
57
+ </template >
58
+ </el-table-column >
59
+ </el-table >
60
+ <!-- 分页组件 -->
61
+ <pagination
62
+ v-show =" total > 0"
63
+ :total =" total"
64
+ v-model:page =" queryParams.pageNo"
65
+ v-model:limit =" queryParams.pageSize"
66
+ @pagination =" getPage"
67
+ />
68
+ </div >
69
+ <!-- 类型:video -->
70
+ <div v-else-if =" objData.type === 'video'" >
71
+ <!-- 列表 -->
72
+ <el-table v-loading =" loading" :data =" list" >
73
+ <el-table-column label =" 编号" align =" center" prop =" mediaId" />
74
+ <el-table-column label =" 文件名" align =" center" prop =" name" />
75
+ <el-table-column label =" 标题" align =" center" prop =" title" />
76
+ <el-table-column label =" 介绍" align =" center" prop =" introduction" />
77
+ <el-table-column label =" 视频" align =" center" >
78
+ <template #default =" scope " >
79
+ <WxVideoPlayer :url =" scope.row.url" />
80
+ </template >
81
+ </el-table-column >
82
+ <el-table-column label =" 上传时间" align =" center" prop =" createTime" width =" 180" >
83
+ <template #default =" scope " >
84
+ <span >{{ formatDate(scope.row.createTime) }}</span >
85
+ </template >
86
+ </el-table-column >
87
+ <el-table-column
88
+ label =" 操作"
89
+ align =" center"
90
+ fixed =" right"
91
+ class-name =" small-padding fixed-width"
92
+ >
93
+ <template #default =" scope " >
94
+ <el-button type =" text" @click =" selectMaterialFun(scope.row)"
95
+ >选择<Icon icon =" akar-icons:circle-plus" />
96
+ </el-button >
97
+ </template >
98
+ </el-table-column >
99
+ </el-table >
100
+ <!-- 分页组件 -->
101
+ <pagination
102
+ v-show =" total > 0"
103
+ :total =" total"
104
+ v-model:page =" queryParams.pageNo"
105
+ v-model:limit =" queryParams.pageSize"
106
+ @pagination =" getMaterialPageFun"
107
+ />
108
+ </div >
109
+ <!-- 类型:news -->
110
+ <div v-else-if =" objData.type === 'news'" >
111
+ <div class =" waterfall" v-loading =" loading" >
112
+ <div class =" waterfall-item" v-for =" item in list" :key =" item.mediaId" >
113
+ <div v-if =" item.content && item.content.newsItem" >
114
+ <WxNews :articles =" item.content.newsItem" />
115
+ <el-row class =" ope-row" >
116
+ <el-button type =" success" @click =" selectMaterialFun(item)" >
117
+ 选择<Icon icon =" ep:circle-check" />
118
+ </el-button >
119
+ </el-row >
120
+ </div >
121
+ </div >
122
+ </div >
123
+ <!-- 分页组件 -->
124
+ <pagination
125
+ v-show =" total > 0"
126
+ :total =" total"
127
+ v-model:page =" queryParams.pageNo"
128
+ v-model:limit =" queryParams.pageSize"
129
+ @pagination =" getMaterialPageFun"
130
+ />
120
131
</div >
121
- <!-- 分页组件 -->
122
- <pagination
123
- v-show =" total > 0"
124
- :total =" total"
125
- v-model:page =" queryParams.pageNo"
126
- v-model:limit =" queryParams.pageSize"
127
- @pagination =" getMaterialPageFun"
128
- />
129
132
</div >
130
133
</template >
131
134
@@ -173,7 +176,7 @@ export default defineComponent({
173
176
const newsTypeRef = ref (props .newsType )
174
177
175
178
const selectMaterialFun = (item ) => {
176
- ctx .emit (' selectMaterial ' , item )
179
+ ctx .emit (' select-material ' , item )
177
180
}
178
181
/** 搜索按钮操作 */
179
182
const handleQuery = () => {
@@ -203,9 +206,10 @@ export default defineComponent({
203
206
total .value = data .total
204
207
loading .value = false
205
208
}
209
+
206
210
const getFreePublishPageFun = async () => {
207
211
let data = await getFreePublishPage (queryParams )
208
- data .list .foreach ((item ) => {
212
+ data .list .forEach ((item ) => {
209
213
const newsItem = item .content .newsItem
210
214
newsItem .forEach ((article ) => {
211
215
article .picUrl = article .thumbUrl
@@ -232,6 +236,7 @@ export default defineComponent({
232
236
onMounted (async () => {
233
237
getPage ()
234
238
})
239
+
235
240
return {
236
241
handleQuery ,
237
242
dateFormatter ,
0 commit comments