feat: free-publish
							parent
							
								
									fe0dea63a7
								
							
						
					
					
						commit
						784a8b50ff
					
				|  | @ -1,3 +1,138 @@ | |||
| <template> | ||||
|   <div>开发中</div> | ||||
|   <PageWrapper :class="prefixCls" title="公众号图文"> | ||||
|     <template #headerContent> | ||||
|       请选择公众号 | ||||
|       <div :class="`${prefixCls}__link`"> | ||||
|         <Select :value="queryParams.accountId" style="width: 200px" @change="getList"> | ||||
|           <SelectOption v-for="item in accounts" :label="item.name" :value="parseInt(item.id)" :key="parseInt(item.id)" /> | ||||
|         </Select> | ||||
|         <!-- <a><Icon icon="bx:bx-paper-plane" color="#1890ff" /><span>开始</span></a> | ||||
|         <a><Icon icon="carbon:warning" color="#1890ff" /><span>简介</span></a> | ||||
|         <a><Icon icon="ion:document-text-outline" color="#1890ff" /><span>文档</span></a> --> | ||||
|       </div> | ||||
|     </template> | ||||
| 
 | ||||
|     <div :class="`${prefixCls}__content`"> | ||||
|       <List :grid="{ gutter: 16, xs: 1, sm: 2, md: 4, lg: 4, xl: 6, xxl: 3, xxxl: 2 }" :data-source="cardList"> | ||||
|         <template v-for="item in cardList" :key="item.title"> | ||||
|           <ListItem> | ||||
|             <Card :hoverable="true" :class="`${prefixCls}__card`"> | ||||
|               <List> | ||||
|                 <template v-for="(article, index) in item.content.newsItem" :key="index"> | ||||
|                   <ListItem> | ||||
|                     <Image :src="article.picUrl" :key="index" /> | ||||
|                     <div :class="`${prefixCls}__card-title`"> | ||||
|                       {{ article.title }} | ||||
|                     </div> | ||||
|                     <div :class="`${prefixCls}__card-detail`"></div> | ||||
|                   </ListItem> | ||||
|                 </template> | ||||
|               </List> | ||||
|               <!-- <div :class="`${prefixCls}__card-title`"> | ||||
|                 <Icon class="icon" v-if="item.icon" :icon="item.icon" :color="item.color" /> | ||||
|                 {{ item.title }} | ||||
|               </div> | ||||
|               <div :class="`${prefixCls}__card-detail`"> 基于Vue Next, TypeScript, Ant Design Vue实现的一套完整的企业级后台管理系统 </div> --> | ||||
|             </Card> | ||||
|           </ListItem> | ||||
|         </template> | ||||
|       </List> | ||||
|       <Pagination showLessItems size="small" :pageSize="queryParams.queryParamsSize" :total="queryParams.total" @change="getList" /> | ||||
|     </div> | ||||
|   </PageWrapper> | ||||
| </template> | ||||
| <script lang="ts" setup> | ||||
| // import Icon from '@/components/Icon' | ||||
| import { PageWrapper } from '@/components/Page' | ||||
| import { Card, List, Image, Select, Pagination } from 'ant-design-vue' | ||||
| import { useDesign } from '@/hooks/web/useDesign' | ||||
| import { ref, reactive, onMounted } from 'vue' | ||||
| import { getSimpleAccounts } from '@/api/mp/account' | ||||
| import { useMessage } from '@/hooks/web/useMessage' | ||||
| import { getFreePublishPage } from '@/api/mp/freePublish' | ||||
| 
 | ||||
| const ListItem = List.Item | ||||
| const SelectOption = Select.Option | ||||
| 
 | ||||
| const { prefixCls } = useDesign('list-card') | ||||
| const { createMessage } = useMessage() | ||||
| 
 | ||||
| const cardList = ref<any[]>([]) | ||||
| 
 | ||||
| const accounts = ref() | ||||
| 
 | ||||
| const queryParams = reactive({ | ||||
|   accountId: null, | ||||
|   total: 0, | ||||
|   currentPage: 1, | ||||
|   queryParamsSize: 20 | ||||
| }) | ||||
| 
 | ||||
| async function init() { | ||||
|   const res = await getSimpleAccounts() | ||||
|   accounts.value = res | ||||
|   if (accounts.value.length > 0) { | ||||
|     queryParams.accountId = accounts.value[0].id | ||||
|   } | ||||
|   await getList() | ||||
| } | ||||
| 
 | ||||
| async function getList() { | ||||
|   if (!queryParams.accountId) { | ||||
|     createMessage.error('未选中公众号,无法查询已发表图文!') | ||||
|     return false | ||||
|   } | ||||
|   const res = await getFreePublishPage(queryParams) | ||||
|   cardList.value = res.list | ||||
|   queryParams.total = res.total | ||||
| } | ||||
| 
 | ||||
| onMounted(async () => { | ||||
|   await init() | ||||
| }) | ||||
| </script> | ||||
| <style lang="less" scoped> | ||||
| .list-card { | ||||
|   &__link { | ||||
|     margin-top: 10px; | ||||
|     font-size: 14px; | ||||
| 
 | ||||
|     a { | ||||
|       margin-right: 30px; | ||||
|     } | ||||
| 
 | ||||
|     span { | ||||
|       margin-left: 5px; | ||||
|     } | ||||
|   } | ||||
| 
 | ||||
|   &__card { | ||||
|     width: 100%; | ||||
|     margin-bottom: -8px; | ||||
| 
 | ||||
|     .ant-card-body { | ||||
|       padding: 16px; | ||||
|     } | ||||
| 
 | ||||
|     &-title { | ||||
|       margin-bottom: 5px; | ||||
|       font-size: 16px; | ||||
|       font-weight: 500; | ||||
|       color: @text-color; | ||||
| 
 | ||||
|       .icon { | ||||
|         margin-top: -5px; | ||||
|         margin-right: 10px; | ||||
|         font-size: 38px !important; | ||||
|       } | ||||
|     } | ||||
| 
 | ||||
|     &-detail { | ||||
|       padding-top: 10px; | ||||
|       padding-left: 30px; | ||||
|       font-size: 14px; | ||||
|       color: @text-color-secondary; | ||||
|     } | ||||
|   } | ||||
| } | ||||
| </style> | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 xingyu
						xingyu