| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- import {
- APP_FIRST_PACK,
- APP_FIRST_PACK_VISIBLE,
- APP_PAYMENT_ORDER,
- APP_PAY_ORDER_LIST,
- APP_RECHARGE_CONFIG,
- APP_WEEKLY_PASS,
- } from '@scripts/api';
- import { success } from '@scripts/api/ApiHelper';
- import { ApiEnvelope, Http } from '@scripts/request';
- import {
- IFirstPack,
- IFirstPackVisible,
- IGoodsConfig,
- IPaymentOrder,
- IPaymentOrderRequest,
- IPayOrderItem,
- IPayOrderPageData,
- IRechargeConfigData,
- } from './data';
- function formatGoods(list: IGoodsConfig[], callbackfn?: (item: IGoodsConfig, index: number) => void) {
- list.forEach((goods, index) => {
- goods.gears = JSON.parse(goods.gear);
- goods.cp = Number(goods.cp);
- goods.cp_reward = Number(goods.cp_reward);
- goods.cp_reward_display_percent = Number(goods.cp_reward_display_percent);
- goods.gc = Number(goods.gc);
- goods.gc_reward = Number(goods.gc_reward);
- goods.gc_reward_display_percent = Number(goods.gc_reward_display_percent);
- goods.gc_vip_reward = Number(goods.gc_vip_reward);
- goods.gc_vip_reward_display_percent = Number(goods.gc_vip_reward_display_percent);
- goods.sc = Number(goods.sc);
- goods.sc_reward = Number(goods.sc_reward);
- goods.sc_reward_display_percent = Number(goods.sc_reward_display_percent);
- callbackfn && callbackfn(goods, index);
- })
- return list;
- }
- class PayStore {
- private _config: IGoodsConfig[] = [];
- private _payOrderList: IPayOrderItem[] = [];
- private _firstPackVisible = false;
- public get config() { return this._config; }
- public get payOrderList() { return this._payOrderList; }
- public get firstPackVisible() { return this._firstPackVisible; }
- async reqRechargeConfig() {
- const res = await Http.call<IRechargeConfigData>(APP_RECHARGE_CONFIG);
- if (success(res) && res.data) {
- let icon_id = 1;
- const goods_list = Array.isArray(res.data.list) ? res.data.list : [];
- this._config = formatGoods(goods_list, goods => {
- goods.icon_id = icon_id;
- icon_id++;
- })
- return true
- }
- return false;
- }
- async reqPaymentOrder(params: IPaymentOrderRequest): Promise<boolean> {
- const res = await Http.call<Record<string, unknown>>(APP_PAYMENT_ORDER, params as any);
- if (success(res) && res.data && !Array.isArray(res.data)) {
- return true;
- }
- return false;
- }
- async reqPayOrderList(page = 1, pageSize = 10) {
- const res = await Http.call<IPayOrderPageData>(APP_PAY_ORDER_LIST, { page, pageSize });
- if (success(res) && res.data) {
- this._payOrderList = Array.isArray(res.data.data) ? res.data.data : [];
- return true;
- }
- return false;
- }
- /** 首冲入口是否可见 */
- async reqFirstPackVisible() {
- const res = await Http.call<IFirstPackVisible>(APP_FIRST_PACK_VISIBLE);
- if (success(res)) {
- this._firstPackVisible = res.data.show;
- return res.data.show;
- }
- return false;
- }
- async reqFirstPackInfo() {
- const res = await Http.call<IFirstPack>(APP_FIRST_PACK);
- if (success(res)) {
- formatGoods(res.data.list);
- }
- return res;
- }
- async reqWeeklyPass() {
- const res = await Http.call(APP_WEEKLY_PASS);
- }
- clear() {
- this._payOrderList = [];
- }
- }
- export const payStore = new PayStore();
|