press-next
Version:
Vue3 组件库,支持 Composition API
54 lines (42 loc) • 1.16 kB
text/typescript
interface ChildInfoOrSiteInfo {
general_reward_desc?: string;
}
function getPic(rewardText: string) {
try {
if (rewardText) {
const pics = JSON.parse(decodeURIComponent(rewardText));
if (pics && pics.length > 1) {
return pics[1].pic;
}
if (pics && pics.length > 0) {
return pics[0].pic;
}
}
} catch (e) {
//
}
}
function getPrizeStr(childInfo: ChildInfoOrSiteInfo, siteInfo: ChildInfoOrSiteInfo) {
let pic = '';
pic = getPic(childInfo?.general_reward_desc || '');
if (pic) {
return childInfo.general_reward_desc;
}
pic = getPic(siteInfo?.general_reward_desc || '');
if (pic) {
return siteInfo.general_reward_desc;
}
return '';
}
export function getChildShowPrizeList(childInfo: ChildInfoOrSiteInfo, siteInfo: ChildInfoOrSiteInfo) {
const prizeStr = getPrizeStr(childInfo, siteInfo) || '';
let newList: Array<{
pic?: string;
}> = [];
try {
newList = JSON.parse(decodeURIComponent(prizeStr));
} catch (e) {}
const list = newList.filter(item => !!item.pic);
return list;
}
export const getPrizeListFromChildOrSite = getChildShowPrizeList;