浏览代码

mp:增加发送【图文】消息

YunaiV 2 年之前
父节点
当前提交
9f7b646f6c

+ 10 - 0
yudao-ui-admin/src/api/mp/draft.js

@@ -0,0 +1,10 @@
+import request from '@/utils/request'
+
+// 获得公众号草稿分页
+export function getDraftPage(query) {
+  return request({
+    url: '/mp/draft/page',
+    method: 'get',
+    params: query
+  })
+}

+ 18 - 19
yudao-ui-admin/src/views/mp/components/wx-material-select/main.vue

@@ -103,7 +103,8 @@
   import WxVoicePlayer from '@/views/mp/components/wx-voice-play/main.vue';
   import WxVideoPlayer from '@/views/mp/components/wx-video-play/main.vue';
   import { getMaterialPage } from "@/api/mp/material";
-  import {getFreePublishPage} from "@/api/mp/freePublish";
+  import { getFreePublishPage } from "@/api/mp/freePublish";
+  import {getDraftPage} from "@/api/mp/draft";
 
   export default {
     name: "wxMaterialSelect",
@@ -136,8 +137,6 @@
           pageSize: 10,
           accountId: this.objData.accountId,
         },
-        // tableOptionVoice: tableOptionVoice,
-        // tableOptionVideo: tableOptionVideo,
       }
     },
     created() {
@@ -152,22 +151,7 @@
         if (this.objData.type === 'news' && this.newsType === '1') { // 【图文】+ 【已发布】
           this.getFreePublishPage();
         } else if (this.objData.type === 'news' && this.newsType === '2') { // 【图文】+ 【草稿】
-          getPageNewsDraft(Object.assign({
-            current: page.currentPage,
-            size: page.pageSize,
-            appId:this.appId,
-          }, params)).then(response => {
-            let tableData = response.data.items
-            tableData.forEach(item => {
-              item.mediaId = item.mediaId
-              item.content.articles = item.content.newsItem
-            })
-            this.list = tableData
-            this.page.total = response.data.totalCount
-            this.page.currentPage = page.currentPage
-            this.page.pageSize = page.pageSize
-            this.loading = false
-          })
+          this.getDraftPage();
         } else { // 【素材】
           this.getMaterialPage();
         }
@@ -197,6 +181,21 @@
         }).finally(() => {
           this.loading = false
         })
+      },
+      getDraftPage() {
+        getDraftPage((this.queryParams)).then(response => {
+          // 将 thumbUrl 转成 picUrl,保证 wx-news 组件可以预览封面
+          response.data.list.forEach(item => {
+            const newsItem = item.content.newsItem;
+            newsItem.forEach(article => {
+              article.picUrl = article.thumbUrl;
+            })
+          })
+          this.list = response.data.list
+          this.total = response.data.total
+        }).finally(() => {
+          this.loading = false
+        })
       }
     }
   };

+ 7 - 1
yudao-ui-admin/src/views/mp/message/index.vue

@@ -93,6 +93,9 @@
             <wx-music :title="scope.row.title" :description="scope.row.description" :thumb-media-url="scope.row.thumbMediaUrl"
                       :music-url="scope.row.musicUrl" :hq-music-url="scope.row.hqMusicUrl" />
           </div>
+          <div v-else-if="scope.row.type === 'news'">
+            <wx-news :articles="scope.row.articles" />
+          </div>
           <div v-else>
             <el-tag type="danger" size="mini">未知消息类型</el-tag>
           </div>
@@ -100,6 +103,7 @@
       </el-table-column>
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
         <template slot-scope="scope">
+          <!-- TODO 芋艿:增加消息按钮 -->
 <!--          <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"-->
 <!--                     v-hasPermi="['mp:message:update']">修改-->
 <!--          </el-button>-->
@@ -124,6 +128,7 @@ import WxVoicePlayer from '@/views/mp/components/wx-voice-play/main.vue';
 import WxMsg from '@/views/mp/components/wx-msg/main.vue';
 import WxLocation from '@/views/mp/components/wx-location/main.vue';
 import WxMusic from '@/views/mp/components/wx-music/main.vue';
+import WxNews from '@/views/mp/components/wx-news/main.vue';
 
 export default {
   name: "WxFansMsg",
@@ -132,7 +137,8 @@ export default {
     WxVoicePlayer,
     WxMsg,
     WxLocation,
-    WxMusic
+    WxMusic,
+    WxNews
   },
   data() {
     return {