对接后端 hgmjapi.mfcg.me: - 接口解密 key 更新为 resKey360 - 登录 sysType 使用原生 getDevType(后端已放开 pc/android) - 修正榜单接口路径 /vid/rangking → /vid/ranking,方法改为 GET Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
40 lines
1.4 KiB
TypeScript
40 lines
1.4 KiB
TypeScript
import { getAdItem } from '@/utils/getConfig';
|
|
interface Advparams {
|
|
originArray: Array<any>; // 原数据数组
|
|
insertNum: number; // 每隔insertNum个元素插入一次
|
|
pageSize: number; // 当前页码
|
|
pageNumber: number; // 当前页
|
|
advNum: number; // 当前广告下标
|
|
}
|
|
export default function insertAdv(obj: Advparams) {
|
|
const { originArray, insertNum, pageSize, pageNumber, advNum } = obj;
|
|
if (!originArray || originArray.length === 0) {
|
|
return [];
|
|
}
|
|
let newArr = originArray;
|
|
const updateArray = [];
|
|
let advIndex = 0;
|
|
|
|
for (let i = 0; i < originArray.length; i++) {
|
|
let index = pageSize * (pageNumber - 1) + i;
|
|
// 默认数据
|
|
updateArray.push(originArray[i]);
|
|
// // 每隔insertNum个元素插入一次
|
|
if (getAdItem(advNum) && getAdItem(advNum).length> 0 && (index + 1) % insertNum === 0) {
|
|
// 如果当前位置没有广告,重置0
|
|
if (!getAdItem(advNum)[advIndex]) {
|
|
advIndex = 0;
|
|
}
|
|
const advList = getAdItem(advNum) || [];
|
|
// 当前页广告条数
|
|
const currentPageAdvCout = Math.floor((index + 1) / insertNum);
|
|
const advIdx = (currentPageAdvCout - 1) % advList.length;
|
|
// 插入广告
|
|
// isAdv 字段表示是广告
|
|
updateArray.push(Object.assign({}, getAdItem(advNum)[advIdx], { isAdv: true }));
|
|
advIndex++;
|
|
}
|
|
}
|
|
return updateArray;
|
|
}
|