{"version":3,"file":"mediaIndex-26839989.js","sources":["../../../../../src/logic/media/recommend.ts","../../../../../src/components/layout/rank/recommend-media/index.vue","../../../../../src/components/layout/rank/hot-article/index.client.vue","../../../../../src/logic/media/utils.ts","../../../../../src/pages/article/hooks/mediaIndex.ts"],"sourcesContent":["import { isFunction } from '@qcwp/utils'\r\nimport type { UnwrapRef } from 'vue'\r\nimport type { OmitPageParam, PaginationOption } from '@qcwp/common'\r\nimport type { MediaUserRecommendParams, MediaUserRecommendResponse } from '~~/src/server/modules/media/type'\r\nimport { getMediaUserRecommend } from '~~/src/server/modules/media'\r\n\r\n/**\r\n * 获取推荐媒体\r\n * @params MediaUserRecommendParams\r\n * queryType: 1=推荐关注,2=媒体推荐,3=相关网评号\r\n */\r\nexport function LogicMediaRecommend(option?: PaginationOption & { format?: (data: MediaUserRecommendResponse[]) => T[] }) {\r\n const rawData = ref([])\r\n const formatData = ref([])\r\n const pagination = usePaginationNuxt(option)\r\n\r\n async function getData(params: MediaUserRecommendParams) {\r\n return getMediaUserRecommend(params)\r\n }\r\n /**\r\n * 更新分页数据和列表数据\r\n */\r\n function updatePageData(data: MediaUserRecommendResponse[], index?: number) {\r\n rawData.value.push(...(data || []))\r\n const format = option?.format\r\n if (format && isFunction(format))\r\n formatData.value.push(...format(data) as UnwrapRef)\r\n else\r\n formatData.value.push(...(data) as UnwrapRef)\r\n }\r\n async function clientHandler(params: OmitPageParam) {\r\n const { list } = await pagination.loadPaginationData(getData, params) || {}\r\n if (list)\r\n updatePageData(list)\r\n }\r\n async function serverHandler(params: OmitPageParam) {\r\n const asyncData = await pagination.loadPaginationAsyncData(`MEDIA_${qs.stringify(params)}`, getData, params)\r\n if (!asyncData)\r\n return\r\n const { data } = useNuxtAsyncHandle(asyncData) || {}\r\n data && updatePageData(data.list || [])\r\n }\r\n\r\n return {\r\n rawData,\r\n formatData,\r\n pagination,\r\n clientHandler,\r\n serverHandler,\r\n }\r\n}\r\n","\r\n\r\n\r\n\r\n","\r\n\r\n\r\n","export function spliceFansCount(fansTotal?: number, thirdPaasFansCount?: number) {\r\n fansTotal = !isNaN(Number(fansTotal)) ? fansTotal : 0\r\n thirdPaasFansCount = !isNaN(Number(thirdPaasFansCount)) ? thirdPaasFansCount : 0\r\n return (fansTotal ?? 0) + (thirdPaasFansCount ?? 0)\r\n}\r\n","import { isArray } from '@qcwp/utils'\r\nimport type { OmitPageParam } from '@qcwp/common'\r\nimport { USER_TYPE } from '@qcwp/common'\r\nimport { ArticleRecomLocationEnum, BannerShowLocation } from '~~/src/server/modules/article/type'\r\nimport { spliceFansCount } from '~~/src/logic/media/utils'\r\nimport type { MediaUserRecommend, MediaUserRecommendParams, MediaUserRecommendResponse } from '~~/src/server/modules/media/type'\r\nimport { LogicSwiper } from '~~/src/logic/swiper'\r\nimport { LogicRecommend } from '~~/src/logic/rank/recommend'\r\nimport { LogicMediaRecommend } from '~~/src/logic/media/recommend'\r\n\r\nexport function useMediaIndexPage() {\r\n const params = {\r\n mediaType: `${USER_TYPE.DEALER},${USER_TYPE.INDIVIDUAL},${USER_TYPE.INSTITUTIONAL}`,\r\n }\r\n // 轮播数据\r\n const SWIPER_PARAMS = { bannerShowLocation: BannerShowLocation.MEDIA_HOME, pageNum: 1, pageSize: 8 }\r\n const { swiperList, serverInitHandler: swiperServerInitHandler } = LogicSwiper()\r\n // 轮播右侧推荐资讯\r\n const SWIPER_RIGHT_PARAMS = { pageNum: 1, pageSize: 10, articleRecomLocation: ArticleRecomLocationEnum.MEDIA_HOME }\r\n const { list: rightSiderRecommendArticles, serverInitHandler: rightRecommendServerInitHandler } = LogicRecommend()\r\n // 推荐关注\r\n const {\r\n mediaRecommendRefresh: mediaRecommendAttentionRefresh,\r\n mediaRecommendAttentionStatusChange,\r\n params: getMediaUserRecommendAttentionParams,\r\n clientHandler: getMediaUserRecommendAttentionData,\r\n serverHandler: mediaUserRecommendServerInitHandler,\r\n currentData: mediaUserRecommendAttention,\r\n } = useMediaUserRecommendComponent()\r\n\r\n async function initHandle() {\r\n const promise = [\r\n swiperServerInitHandler(SWIPER_PARAMS),\r\n rightRecommendServerInitHandler(SWIPER_RIGHT_PARAMS),\r\n mediaUserRecommendServerInitHandler(getMediaUserRecommendAttentionParams),\r\n ]\r\n try {\r\n await Promise.all(promise)\r\n }\r\n catch (e) {}\r\n }\r\n\r\n return {\r\n params,\r\n // swiper\r\n swiperList,\r\n // swiper rightSider推荐资讯\r\n rightSiderRecommendArticles,\r\n // 推荐关注\r\n mediaRecommendAttentionRefresh,\r\n mediaRecommendAttentionStatusChange,\r\n getMediaUserRecommendAttentionData,\r\n mediaUserRecommendAttention,\r\n\r\n initHandle,\r\n }\r\n}\r\n\r\nexport function useMediaUserRecommendComponent() {\r\n const currentPage = ref(0)\r\n const PAGE_SIZE = 4\r\n const format = mediaUserRecommendComponentFormat\r\n const { pagination, formatData, clientHandler, serverHandler } = LogicMediaRecommend({ pageNum: 1, pageSize: PAGE_SIZE, format })\r\n const params: OmitPageParam = { queryType: 1 }\r\n\r\n const currentData = computed(() => formatData.value.slice(currentPage.value * PAGE_SIZE, (currentPage.value + 1) * PAGE_SIZE))\r\n async function mediaRecommendRefresh() {\r\n if (currentPage.value >= pagination.pagination.pageCount - 1) {\r\n currentPage.value = 0\r\n }\r\n else {\r\n await clientHandler(params)\r\n currentPage.value = currentPage.value + 1\r\n }\r\n }\r\n function mediaRecommendAttentionStatusChange(index: number, _status?: boolean) {\r\n index = index + currentPage.value * PAGE_SIZE\r\n if (formatData.value.length >= index + 1) {\r\n formatData.value[index].focus = !formatData.value[index].focus\r\n formatData.value[index].fansTotal = formatData.value[index].fansTotal + (formatData.value[index].focus ? 1 : -1)\r\n }\r\n }\r\n\r\n return {\r\n mediaRecommendRefresh,\r\n mediaRecommendAttentionStatusChange,\r\n params,\r\n format,\r\n formatData,\r\n currentData,\r\n clientHandler,\r\n serverHandler,\r\n }\r\n}\r\n\r\nexport function mediaUserRecommendComponentFormat(data: MediaUserRecommendResponse[]): MediaUserRecommend[] {\r\n if (isArray(data) && data.length) {\r\n const newData: MediaUserRecommend[] = data.map(v => ({\r\n articleTotal: v.articleTotal ?? 0,\r\n fansTotal: spliceFansCount(v.fansTotal, v.thirdPaasFansCount),\r\n focus: v.focus,\r\n id: v.id,\r\n mediaAvatar: v.mediaAvatar || '',\r\n mediaIntro: v.mediaIntro || '',\r\n mediaName: v.mediaName || '',\r\n mediaType: v.mediaType,\r\n mediaGrade: v.mediaGrade || '0',\r\n }))\r\n return newData\r\n }\r\n return []\r\n}\r\n"],"names":["LogicMediaRecommend","option","rawData","ref","formatData","pagination","usePaginationNuxt","getData","params","getMediaUserRecommend","updatePageData","data","index","format","isFunction","clientHandler","list","serverHandler","asyncData","qs","useNuxtAsyncHandle","getMediaUserRecommendData","mediaUserRecommend","props","userMediaAttentionHandle","focusMediaUserId","status","LogicUserMediaAttention","__temp","__restore","_withAsyncContext","hotArticleApi","spliceFansCount","fansTotal","thirdPaasFansCount","useMediaIndexPage","USER_TYPE","SWIPER_PARAMS","BannerShowLocation","swiperList","swiperServerInitHandler","LogicSwiper","SWIPER_RIGHT_PARAMS","ArticleRecomLocationEnum","rightSiderRecommendArticles","rightRecommendServerInitHandler","LogicRecommend","mediaRecommendAttentionRefresh","mediaRecommendAttentionStatusChange","getMediaUserRecommendAttentionParams","getMediaUserRecommendAttentionData","mediaUserRecommendServerInitHandler","mediaUserRecommendAttention","useMediaUserRecommendComponent","initHandle","promise","currentPage","PAGE_SIZE","mediaUserRecommendComponentFormat","currentData","computed","mediaRecommendRefresh","_status","isArray","v"],"mappings":"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"}