Skip to content

Commit 2d65c2a

Browse files
YunaiVgitee-org
authored andcommitted
!96 fix: 获取FreePublic出错&分页溢出
Merge pull request !96 from dhb52/N/A
2 parents df57191 + 365915e commit 2d65c2a

File tree

1 file changed

+122
-117
lines changed
  • src/views/mp/components/wx-material-select

1 file changed

+122
-117
lines changed

src/views/mp/components/wx-material-select/main.vue

Lines changed: 122 additions & 117 deletions
Original file line numberDiff line numberDiff line change
@@ -5,127 +5,130 @@
55
① 移除 avue 组件,使用 ElementUI 原生组件
66
-->
77
<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>
11315
<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" />
11618
</el-button>
11719
</el-row>
11820
</div>
11921
</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="ep: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+
/>
120131
</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-
/>
129132
</div>
130133
</template>
131134

@@ -173,7 +176,7 @@ export default defineComponent({
173176
const newsTypeRef = ref(props.newsType)
174177
175178
const selectMaterialFun = (item) => {
176-
ctx.emit('selectMaterial', item)
179+
ctx.emit('select-material', item)
177180
}
178181
/** 搜索按钮操作 */
179182
const handleQuery = () => {
@@ -203,9 +206,10 @@ export default defineComponent({
203206
total.value = data.total
204207
loading.value = false
205208
}
209+
206210
const getFreePublishPageFun = async () => {
207211
let data = await getFreePublishPage(queryParams)
208-
data.list.foreach((item) => {
212+
data.list.forEach((item) => {
209213
const newsItem = item.content.newsItem
210214
newsItem.forEach((article) => {
211215
article.picUrl = article.thumbUrl
@@ -232,6 +236,7 @@ export default defineComponent({
232236
onMounted(async () => {
233237
getPage()
234238
})
239+
235240
return {
236241
handleQuery,
237242
dateFormatter,

0 commit comments

Comments
 (0)