|
|
@@ -0,0 +1,771 @@
|
|
|
+import { ref, reactive, computed, onMounted, onUnmounted } from 'vue'
|
|
|
+import { useI18n } from 'vue-i18n'
|
|
|
+import {activityApi} from '@/service/activity'
|
|
|
+import {customApi} from '@/service/custom'
|
|
|
+import Config from '@/config/index'
|
|
|
+import type { ActivityState, PagerInfo, AccountInfo } from '../types/activity'
|
|
|
+
|
|
|
+const { Code, Host80 } = Config
|
|
|
+
|
|
|
+// 国家列表
|
|
|
+const countries = [
|
|
|
+ "DZ", "AO", "BJ", "BW", "BF", "CM", "CG", "CD", "CI", "DJ", "EG", "ET", "GA", "GM", "GH", "GN", "KE",
|
|
|
+ "MG", "MW", "ML", "MR", "MA", "MZ", "NA", "NE", "NG", "RW", "SN", "SL", "SO", "ZA", "SS", "SD", "TZ",
|
|
|
+ "TG", "TN", "UG", "ZM", "ZW", "LS", "BH", "IR", "IQ", "IL", "JO", "KW", "LB", "OM", "PS", "QA", "SA",
|
|
|
+ "SY", "TR", "AE", "YE", "AR", "BO", "BR", "CL", "CO", "EC", "GY", "PY", "PE", "SR", "UY", "VE", "BZ",
|
|
|
+ "CR", "SV", "GT", "HN", "NI", "PA", "AU", "CA", "AL", "AD", "AM", "AT", "AZ", "BY", "BE", "BA", "BG",
|
|
|
+ "HR", "CY", "CZ", "DK", "EE", "FI", "FR", "GE", "DE", "GR", "HU", "IS", "IE", "IT", "XK", "LV", "LI",
|
|
|
+ "LT", "LU", "MT", "MD", "MC", "ME", "NL", "MK", "NO", "PL", "PT", "RO", "RU", "SM", "RS", "SK", "SI",
|
|
|
+ "ES", "SE", "CH", "UA", "VA"
|
|
|
+]
|
|
|
+
|
|
|
+export function useActivityData() {
|
|
|
+ const { t, locale } = useI18n()
|
|
|
+
|
|
|
+ // ==================== 用户信息 ====================
|
|
|
+ const userInfo = computed(() => {
|
|
|
+ try {
|
|
|
+ return JSON.parse(uni.getStorageSync('user') || '{}')
|
|
|
+ } catch {
|
|
|
+ return { customInfo: {} }
|
|
|
+ }
|
|
|
+ })
|
|
|
+
|
|
|
+ const country = computed(() => userInfo.value.customInfo?.country || '')
|
|
|
+ const myCid = computed(() => userInfo.value.customInfo?.cId || '')
|
|
|
+
|
|
|
+ // ==================== 加载状态 ====================
|
|
|
+ const pictLoading = ref(false)
|
|
|
+ const flag = ref(false)
|
|
|
+
|
|
|
+ // ==================== 活动数据 ====================
|
|
|
+ const tableData = ref<any[]>([])
|
|
|
+ const tableDataGive = ref<any[]>([])
|
|
|
+ const singleData = ref<any>({})
|
|
|
+
|
|
|
+ // 分页
|
|
|
+ const pagerInfo = ref<PagerInfo>({
|
|
|
+ row: 10,
|
|
|
+ current: 1,
|
|
|
+ pageTotal: 0,
|
|
|
+ rowTotal: 0
|
|
|
+ })
|
|
|
+
|
|
|
+ // 账户列表
|
|
|
+ const loginOptions = ref<AccountInfo[]>([])
|
|
|
+ const loginOptions1 = ref<AccountInfo[]>([])
|
|
|
+
|
|
|
+ // ==================== 活动特定状态 ====================
|
|
|
+ const activityState = reactive<ActivityState>({
|
|
|
+ tableDataNewYear24Flag: false,
|
|
|
+ tableDataNewYear24: {},
|
|
|
+ choujiaClose: false,
|
|
|
+ tableDataNoWorriesFlag: false,
|
|
|
+ tableDataNoWorries: false,
|
|
|
+ isRealizationNoWorries: 0,
|
|
|
+ standard: true,
|
|
|
+ tableData2Flag: false,
|
|
|
+ tableData2: false,
|
|
|
+ isTransform: 0,
|
|
|
+ isRealization: 0,
|
|
|
+ tableDataCptFlag: false,
|
|
|
+ tableDataCpt: {},
|
|
|
+ tableData3FlagJYB: false,
|
|
|
+ tableData3JYB: {},
|
|
|
+ isRealizationJxJYB: 0,
|
|
|
+ tableData3Flag: false,
|
|
|
+ tableData3: {},
|
|
|
+ isRealizationJx: 0,
|
|
|
+ tableData3FlagVip: false,
|
|
|
+ tableData3Vip: {},
|
|
|
+ isRealizationJxVip: 0,
|
|
|
+ tableData4Flag: false,
|
|
|
+ tableData4: {},
|
|
|
+ tableData4TwoFlag: false,
|
|
|
+ tableData4Two: {},
|
|
|
+ monthlyGive: false,
|
|
|
+ surplusGive: false,
|
|
|
+ newTask: false,
|
|
|
+ newTaskList: { endTime: '', tradeVolume: '', raffleNumber: '' },
|
|
|
+ LuckyDrawsNumber: '0',
|
|
|
+ isCountDown: '',
|
|
|
+ isCashBack: false,
|
|
|
+ anshiClose: true,
|
|
|
+ limitedStatus: null,
|
|
|
+ activityShowsInfo: null,
|
|
|
+ country: country.value,
|
|
|
+ lang: locale.value,
|
|
|
+ isGuoQin: false,
|
|
|
+ isSupportedCountry: false
|
|
|
+ })
|
|
|
+
|
|
|
+ // 交易大赛参数
|
|
|
+ const tableDataCptFlagCode = ref('')
|
|
|
+
|
|
|
+ // 新年庆典数据
|
|
|
+ const NewYear24DataBalance = ref('')
|
|
|
+ const NewYear24Data = ref({ balance: 0, income: 0 })
|
|
|
+
|
|
|
+ // 定时器
|
|
|
+ const interval = ref<any>(null)
|
|
|
+
|
|
|
+ // ==================== 计算属性 ====================
|
|
|
+ // 是否支持的国家
|
|
|
+ const isSupportedCountry = computed(() => {
|
|
|
+ return countries.includes(country.value)
|
|
|
+ })
|
|
|
+
|
|
|
+ // 国庆节判断
|
|
|
+ const isGuoQin = computed(() => {
|
|
|
+ const startTime1 = '2024/10/01 00:00:00'
|
|
|
+ const endTime1 = '2024/10/07 23:59:59'
|
|
|
+ const timezone = 8
|
|
|
+ const offset_GMT = new Date().getTimezoneOffset()
|
|
|
+ const nowDate = new Date().getTime()
|
|
|
+ const now = new Date(nowDate + offset_GMT * 60 * 1000 + timezone * 60 * 60 * 1000).getTime()
|
|
|
+ const end = new Date(endTime1).getTime()
|
|
|
+ const start = new Date(startTime1).getTime()
|
|
|
+ return now > start && now < end
|
|
|
+ })
|
|
|
+
|
|
|
+ // ==================== 工具函数 ====================
|
|
|
+ // 获取当前时间(带时区)
|
|
|
+ const getCurrentTime = (timezone: number = 2) => {
|
|
|
+ const offset_GMT = new Date().getTimezoneOffset()
|
|
|
+ const nowDate = new Date().getTime()
|
|
|
+ return new Date(nowDate + offset_GMT * 60 * 1000 + timezone * 60 * 60 * 1000)
|
|
|
+ }
|
|
|
+
|
|
|
+ // 时间补0
|
|
|
+ const getzero = (time: number) => {
|
|
|
+ return time > 9 ? time : '0' + time
|
|
|
+ }
|
|
|
+
|
|
|
+ // 时间格式转换
|
|
|
+ const timeConvert = (val: string) => {
|
|
|
+ if (!val) return ''
|
|
|
+ const datetime = new Date(val.replace(/-/g, '/'))
|
|
|
+ const year = datetime.getFullYear()
|
|
|
+ let month: any = datetime.getMonth() + 1
|
|
|
+ let date: any = datetime.getDate()
|
|
|
+ if (month < 10) month = '0' + month
|
|
|
+ if (date < 10) date = '0' + date
|
|
|
+ return year + '年' + month + '月' + date + '日'
|
|
|
+ }
|
|
|
+
|
|
|
+ // 货币符号
|
|
|
+ const groupCurrency = (type: string) => {
|
|
|
+ const map: Record<string, string> = {
|
|
|
+ 'GBP': ': £',
|
|
|
+ 'USD': ': $',
|
|
|
+ 'EUR': ': €',
|
|
|
+ 'USC': ': ¢'
|
|
|
+ }
|
|
|
+ return map[type] || ': $'
|
|
|
+ }
|
|
|
+
|
|
|
+ // 账户类型名称
|
|
|
+ const groupTypeName = (type: string) => {
|
|
|
+ const map: Record<string, string> = {
|
|
|
+ '1': 'AccountType.ClassicAccount',
|
|
|
+ '2': 'AccountType.SeniorAccount',
|
|
|
+ '3': 'AccountType.AgencyAccount',
|
|
|
+ '5': 'AccountType.SpeedAccount',
|
|
|
+ '6': 'AccountType.SpeedAccount',
|
|
|
+ '7': 'AccountType.StandardAccount',
|
|
|
+ '8': 'AccountType.CentAccount'
|
|
|
+ }
|
|
|
+ return map[type] ? t(map[type]) : ''
|
|
|
+ }
|
|
|
+
|
|
|
+ // 判断活动是否在有效期内
|
|
|
+ const overdue = (startTime: string, endTime: string) => {
|
|
|
+ if (!startTime || !endTime) return false
|
|
|
+ const startTime1 = startTime.replace(/-/g, '/').split(' ')[0]
|
|
|
+ const endTime1 = endTime.replace(/-/g, '/').split(' ')[0]
|
|
|
+ const now = getCurrentTime(2).getTime()
|
|
|
+ const start = new Date(startTime1).getTime()
|
|
|
+ const end = new Date(endTime1).getTime()
|
|
|
+ return start < now && now < end
|
|
|
+ }
|
|
|
+
|
|
|
+ // 判断匠鑫活动是否报名结束
|
|
|
+ const timeExpireJx = (endTime: string) => {
|
|
|
+ if (!endTime) return false
|
|
|
+ const endTime1 = endTime.replace(/-/g, '/').split(' ')[0]
|
|
|
+ const now = getCurrentTime(2).getTime()
|
|
|
+ const end = new Date(endTime1).getTime()
|
|
|
+ return now < end
|
|
|
+ }
|
|
|
+
|
|
|
+ // 判断是否在9月30日之后
|
|
|
+ const isAfterSeptember30 = () => {
|
|
|
+ return true // 根据实际需求修改
|
|
|
+ }
|
|
|
+
|
|
|
+ // ==================== API 请求函数 ====================
|
|
|
+ // 获取账户信息
|
|
|
+ const getDateList = async () => {
|
|
|
+ try {
|
|
|
+ const res = await customApi.DropdownlusActivityOptions({ platform: '' })
|
|
|
+ if (res.code == Code.StatusOK) {
|
|
|
+ loginOptions1.value = res.data
|
|
|
+ } else {
|
|
|
+ uni.showToast({ title: res.msg, icon: 'none' })
|
|
|
+ }
|
|
|
+ } catch (error) {
|
|
|
+ console.error('获取账户信息失败', error)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 获取活动列表
|
|
|
+ const searchFunc = async (page: number = 1) => {
|
|
|
+ if (flag.value) return
|
|
|
+ flag.value = true
|
|
|
+ pictLoading.value = true
|
|
|
+
|
|
|
+ try {
|
|
|
+ const res = await activityApi.ActivityExtensionIist({
|
|
|
+ hot: '',
|
|
|
+ tag: 1,
|
|
|
+ lang: ['cn', 'zhHant'].includes(locale.value) ? 'cn' : 'en',
|
|
|
+ page: {
|
|
|
+ current: page,
|
|
|
+ row: pagerInfo.value.row
|
|
|
+ }
|
|
|
+ })
|
|
|
+
|
|
|
+ if (res.code == Code.StatusOK) {
|
|
|
+ tableData.value = res.data
|
|
|
+ pagerInfo.value.rowTotal = res.page.rowTotal
|
|
|
+ pagerInfo.value.pageTotal = res.page.pageTotal
|
|
|
+ } else {
|
|
|
+ uni.showToast({ title: res.msg, icon: 'none' })
|
|
|
+ }
|
|
|
+ } catch (error) {
|
|
|
+ console.error('获取活动列表失败', error)
|
|
|
+ } finally {
|
|
|
+ pictLoading.value = false
|
|
|
+ flag.value = false
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 获取赠送活动列表
|
|
|
+ const searchFunc1 = async () => {
|
|
|
+ pictLoading.value = true
|
|
|
+ try {
|
|
|
+ const res = await activityApi.ActivityExtensionGiveList({
|
|
|
+ page: {
|
|
|
+ current: pagerInfo.value.current,
|
|
|
+ row: pagerInfo.value.row
|
|
|
+ }
|
|
|
+ })
|
|
|
+ if (res.code == Code.StatusOK) {
|
|
|
+ tableDataGive.value = res.data
|
|
|
+ pagerInfo.value.rowTotal = res.page.rowTotal
|
|
|
+ pagerInfo.value.pageTotal = res.page.pageTotal
|
|
|
+ } else {
|
|
|
+ uni.showToast({ title: res.msg, icon: 'none' })
|
|
|
+ }
|
|
|
+ } catch (error) {
|
|
|
+ console.error('获取赠送活动列表失败', error)
|
|
|
+ } finally {
|
|
|
+ pictLoading.value = false
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 获取单个活动详情
|
|
|
+ const getSingle = async (id: string) => {
|
|
|
+ try {
|
|
|
+ const res = await activityApi.ActivitySingle({ id })
|
|
|
+ if (res.code == Code.StatusOK) {
|
|
|
+ singleData.value = res.data
|
|
|
+ } else {
|
|
|
+ uni.showToast({ title: res.msg, icon: 'none' })
|
|
|
+ }
|
|
|
+ } catch (error) {
|
|
|
+ console.error('获取活动详情失败', error)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 获取赠送活动详情
|
|
|
+ const getSingle1 = async (id: string) => {
|
|
|
+ try {
|
|
|
+ const res = await activityApi.ActivityExtensionGiveSingle({ id })
|
|
|
+ if (res.code == Code.StatusOK) {
|
|
|
+ singleData.value = res.data
|
|
|
+ } else {
|
|
|
+ uni.showToast({ title: res.msg, icon: 'none' })
|
|
|
+ }
|
|
|
+ } catch (error) {
|
|
|
+ console.error('获取赠送活动详情失败', error)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 2023迎新活动数据
|
|
|
+ const Activity23HundredInfo = async () => {
|
|
|
+ try {
|
|
|
+ const res = await activityApi.Activity23HundredInfo({})
|
|
|
+ if (res.code == Code.StatusOK) {
|
|
|
+ activityState.tableData2 = res.data
|
|
|
+ if (typeof activityState.tableData2 == 'object') {
|
|
|
+ activityState.tableData2Flag = true
|
|
|
+ const nowTime = getCurrentTime(2).getTime()
|
|
|
+ const startTime = new Date(activityState.tableData2.activityStartTime.replace(/-/g, '/')).getTime()
|
|
|
+ const endTime = new Date(activityState.tableData2.activityEndTime.replace(/-/g, '/')).getTime()
|
|
|
+
|
|
|
+ if (nowTime < endTime && nowTime > startTime) {
|
|
|
+ if (activityState.tableData2.status == 2 && activityState.tableData2.activityStatus == 0) {
|
|
|
+ activityState.isTransform = 1
|
|
|
+ } else if (activityState.tableData2.status == 2 &&
|
|
|
+ (activityState.tableData2.activityStatus == 1 ||
|
|
|
+ (activityState.tableData2.balanceStatus != 2 && activityState.tableData2.creditStatus != 2))) {
|
|
|
+ activityState.isTransform = 2
|
|
|
+ } else if (activityState.tableData2.status == 2 && activityState.tableData2.activityStatus == 3) {
|
|
|
+ activityState.isTransform = 2
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ activityState.isTransform = 2
|
|
|
+ }
|
|
|
+
|
|
|
+ if (activityState.tableData2.status == 2 && activityState.tableData2.activityStatus == 2) {
|
|
|
+ activityState.isTransform = null
|
|
|
+ if (activityState.tableData2.realizationStatus == 0) {
|
|
|
+ activityState.isRealization = 1
|
|
|
+ } else if (activityState.tableData2.realizationStatus == 1 ||
|
|
|
+ (activityState.tableData2.realizationCreditStatus != 2 && activityState.tableData2.realizationBalanceStatus != 2)) {
|
|
|
+ activityState.isRealization = 2
|
|
|
+ } else if (activityState.tableData2.realizationStatus == 3) {
|
|
|
+ activityState.isRealization = 2
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ activityState.isRealization = null
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if (activityState.tableData2) {
|
|
|
+ activityState.tableData2Flag = true
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ uni.showToast({ title: res.msg, icon: 'none' })
|
|
|
+ activityState.tableData2 = true
|
|
|
+ }
|
|
|
+ } catch (error) {
|
|
|
+ console.error('获取2023迎新活动数据失败', error)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 2023匠鑫活动数据
|
|
|
+ const Activity23JiangxinInfo = async () => {
|
|
|
+ try {
|
|
|
+ const res = await activityApi.Activity23JiangxinInfo({})
|
|
|
+ if (res.code == Code.StatusOK) {
|
|
|
+ activityState.tableData3 = res.data
|
|
|
+ if (activityState.tableData3.show == 1) {
|
|
|
+ activityState.tableData3Flag = true
|
|
|
+ } else if (activityState.tableData3.show == 0) {
|
|
|
+ activityState.tableData3Flag = false
|
|
|
+ } else if (!activityState.tableData3.show) {
|
|
|
+ activityState.tableData3Flag = true
|
|
|
+ const nowTime = getCurrentTime(2).getTime()
|
|
|
+ const endTime = activityState.tableData3.activityEndTime
|
|
|
+ ? new Date(activityState.tableData3.activityEndTime.replace(/-/g, '/')).getTime()
|
|
|
+ : null
|
|
|
+ if (activityState.tableData3.status == 2 && activityState.tableData3.realizationStatus == 0 && endTime && nowTime > endTime) {
|
|
|
+ activityState.isRealizationJx = 1
|
|
|
+ } else {
|
|
|
+ activityState.isRealizationJx = 2
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ uni.showToast({ title: res.msg, icon: 'none' })
|
|
|
+ }
|
|
|
+ } catch (error) {
|
|
|
+ console.error('获取2023匠鑫活动数据失败', error)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 2023匠鑫活动数据Vip
|
|
|
+ const Activity23JiangxinInfoVip = async () => {
|
|
|
+ try {
|
|
|
+ const res = await activityApi.Activity23JiangxinInfoVip({})
|
|
|
+ if (res.code == Code.StatusOK) {
|
|
|
+ activityState.tableData3Vip = res.data
|
|
|
+ if (activityState.tableData3Vip.show == 1) {
|
|
|
+ activityState.tableData3FlagVip = true
|
|
|
+ } else if (activityState.tableData3Vip.show == 0) {
|
|
|
+ activityState.tableData3FlagVip = false
|
|
|
+ } else if (!activityState.tableData3Vip.show) {
|
|
|
+ activityState.tableData3FlagVip = true
|
|
|
+ const nowTime = getCurrentTime(2).getTime()
|
|
|
+ const endTime = activityState.tableData3Vip.activityEndTime
|
|
|
+ ? new Date(activityState.tableData3Vip.activityEndTime.replace(/-/g, '/')).getTime()
|
|
|
+ : null
|
|
|
+ if (activityState.tableData3Vip.status == 2 && activityState.tableData3Vip.realizationStatus == 0 && endTime && nowTime > endTime) {
|
|
|
+ activityState.isRealizationJxVip = 1
|
|
|
+ } else {
|
|
|
+ activityState.isRealizationJxVip = 2
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ uni.showToast({ title: res.msg, icon: 'none' })
|
|
|
+ }
|
|
|
+ } catch (error) {
|
|
|
+ console.error('获取2023匠鑫活动数据Vip失败', error)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 2023年中赠金活动数据-10
|
|
|
+ const Activity24nianzhongInfo = async () => {
|
|
|
+ try {
|
|
|
+ const res = await activityApi.Activity23nianzhongInfo({})
|
|
|
+ if (res.code == Code.StatusOK) {
|
|
|
+ activityState.tableData4 = res.data
|
|
|
+ if (activityState.tableData4.show == 1) {
|
|
|
+ activityState.tableData4Flag = true
|
|
|
+ } else if (activityState.tableData4.show == 0) {
|
|
|
+ activityState.tableData4Flag = false
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ uni.showToast({ title: res.msg, icon: 'none' })
|
|
|
+ }
|
|
|
+ } catch (error) {
|
|
|
+ console.error('获取年中赠金活动数据失败', error)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 2023年中赠金活动数据-20
|
|
|
+ const Activity24nianzhongTwoInfo = async () => {
|
|
|
+ try {
|
|
|
+ const res = await activityApi.Activity23nianzhongTwoInfo({})
|
|
|
+ if (res.code == Code.StatusOK) {
|
|
|
+ activityState.tableData4Two = res.data
|
|
|
+ if (activityState.tableData4Two.show == 1) {
|
|
|
+ activityState.tableData4TwoFlag = true
|
|
|
+ } else if (activityState.tableData4Two.show == 0) {
|
|
|
+ activityState.tableData4TwoFlag = false
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ uni.showToast({ title: res.msg, icon: 'none' })
|
|
|
+ }
|
|
|
+ } catch (error) {
|
|
|
+ console.error('获取年中赠金活动数据-20失败', error)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 交易大赛数据-参数
|
|
|
+ const GetActivityCptCode = async () => {
|
|
|
+ try {
|
|
|
+ const res = await activityApi.ActivityCptinfoGetCode({})
|
|
|
+ if (res.code == Code.StatusOK) {
|
|
|
+ tableDataCptFlagCode.value = res.data.code
|
|
|
+ if (tableDataCptFlagCode.value) {
|
|
|
+ await ActivityCptInfo(tableDataCptFlagCode.value)
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ uni.showToast({ title: res.msg, icon: 'none' })
|
|
|
+ }
|
|
|
+ } catch (error) {
|
|
|
+ console.error('获取交易大赛参数失败', error)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 交易大赛数据
|
|
|
+ const ActivityCptInfo = async (code: string) => {
|
|
|
+ try {
|
|
|
+ const res = await activityApi.ActivityCptinfoCode({ infoCode: code })
|
|
|
+ if (res.code == Code.StatusOK) {
|
|
|
+ activityState.tableDataCpt = res.data
|
|
|
+ activityState.tableDataCptFlag = !!activityState.tableDataCpt
|
|
|
+ } else {
|
|
|
+ uni.showToast({ title: res.msg, icon: 'none' })
|
|
|
+ }
|
|
|
+ } catch (error) {
|
|
|
+ console.error('获取交易大赛数据失败', error)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 24精英杯活动
|
|
|
+ const Activity24JYBInfoVip = async () => {
|
|
|
+ try {
|
|
|
+ const res = await activityApi.Activity24JYBInfoVip({})
|
|
|
+ if (res.code == Code.StatusOK) {
|
|
|
+ activityState.tableData3JYB = res.data
|
|
|
+ if (activityState.tableData3JYB.show == 1) {
|
|
|
+ activityState.tableData3FlagJYB = true
|
|
|
+ } else if (activityState.tableData3JYB.show == 0) {
|
|
|
+ activityState.tableData3FlagJYB = false
|
|
|
+ } else if (!activityState.tableData3JYB.show) {
|
|
|
+ activityState.tableData3FlagJYB = true
|
|
|
+ const nowTime = getCurrentTime(2).getTime()
|
|
|
+ const endTime = activityState.tableData3JYB.activityEndTime
|
|
|
+ ? new Date(activityState.tableData3JYB.activityEndTime.replace(/-/g, '/')).getTime()
|
|
|
+ : null
|
|
|
+ if (activityState.tableData3JYB.status == 2 && activityState.tableData3JYB.realizationStatus == 0 && endTime && nowTime > endTime) {
|
|
|
+ activityState.isRealizationJxJYB = 1
|
|
|
+ } else {
|
|
|
+ activityState.isRealizationJxJYB = 2
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ uni.showToast({ title: res.msg, icon: 'none' })
|
|
|
+ }
|
|
|
+ } catch (error) {
|
|
|
+ console.error('获取24精英杯活动数据失败', error)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 24无忧交易
|
|
|
+ const ActivityNoWorriesInfo = async () => {
|
|
|
+ try {
|
|
|
+ const res = await activityApi.ActivityNoWorriesInfo({})
|
|
|
+ if (res.code == Code.StatusOK) {
|
|
|
+ activityState.tableDataNoWorries = res.data
|
|
|
+ if (typeof activityState.tableDataNoWorries == 'object') {
|
|
|
+ activityState.tableDataNoWorriesFlag = true
|
|
|
+ const nowTime = getCurrentTime(2).getTime()
|
|
|
+ const startTime = new Date(activityState.tableDataNoWorries.compensateTime.replace(/-/g, '/')).getTime()
|
|
|
+ const endTime = new Date(activityState.tableDataNoWorries.revokeTime.replace(/-/g, '/')).getTime()
|
|
|
+
|
|
|
+ if (nowTime < endTime && nowTime > startTime &&
|
|
|
+ (activityState.tableDataNoWorries.status == 0 || activityState.tableDataNoWorries.status == 3) &&
|
|
|
+ activityState.tableDataNoWorries.compensateStatus == 2 &&
|
|
|
+ activityState.tableDataNoWorries.activityStatus == 1) {
|
|
|
+ activityState.isRealizationNoWorries = 1
|
|
|
+ } else {
|
|
|
+ activityState.isRealizationNoWorries = null
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if (activityState.tableDataNoWorries) {
|
|
|
+ activityState.tableDataNoWorriesFlag = true
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ uni.showToast({ title: res.msg, icon: 'none' })
|
|
|
+ }
|
|
|
+ } catch (error) {
|
|
|
+ console.error('获取无忧交易数据失败', error)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // CWG 现金嘉年华-新任务
|
|
|
+ const ActivitYdepositRaffleAim = async () => {
|
|
|
+ try {
|
|
|
+ const res = await activityApi.ActivitYdepositRaffleAim({})
|
|
|
+ if (res.code == Code.StatusOK) {
|
|
|
+ activityState.newTask = !!res.data
|
|
|
+ if (res.data) {
|
|
|
+ activityState.newTaskList = res.data
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ uni.showToast({ title: res.msg, icon: 'none' })
|
|
|
+ }
|
|
|
+ } catch (error) {
|
|
|
+ console.error('获取新任务数据失败', error)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // CWG 现金嘉年华-抽奖次数
|
|
|
+ const ActivitYdepositRaffleinfo = async () => {
|
|
|
+ try {
|
|
|
+ const res = await activityApi.ActivitYdepositRaffleinfo({})
|
|
|
+ if (res.code == Code.StatusOK) {
|
|
|
+ activityState.LuckyDrawsNumber = res.data?.raffleResidueNumber || '0'
|
|
|
+ } else {
|
|
|
+ uni.showToast({ title: res.msg, icon: 'none' })
|
|
|
+ }
|
|
|
+ } catch (error) {
|
|
|
+ console.error('获取抽奖次数失败', error)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 抽奖活动是否到期
|
|
|
+ const isRaffleOpen = () => {
|
|
|
+ const endTime1 = '2025/9/30 23:59:59'
|
|
|
+ const startTime1 = '2025/7/1 00:00:00'
|
|
|
+ const now = getCurrentTime(2).getTime()
|
|
|
+ const end = new Date(endTime1).getTime()
|
|
|
+ const start = new Date(startTime1).getTime()
|
|
|
+
|
|
|
+ if (now < end && start < now) {
|
|
|
+ activityState.choujiaClose = true
|
|
|
+ ActivitYdepositRaffleAim()
|
|
|
+ ActivitYdepositRaffleinfo()
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 新年庆典是否到期
|
|
|
+ const isNewYear24Open = () => {
|
|
|
+ const endTime1 = '2025/3/31 23:59:59'
|
|
|
+ const startTime1 = '2025/1/1 00:00:00'
|
|
|
+ const now = getCurrentTime(2).getTime()
|
|
|
+ const end = new Date(endTime1).getTime()
|
|
|
+ const start = new Date(startTime1).getTime()
|
|
|
+
|
|
|
+ if (now < end && start < now) {
|
|
|
+ ActivityNewYear24()
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 新年庆典数据
|
|
|
+ const ActivityNewYear24 = async () => {
|
|
|
+ try {
|
|
|
+ const res = await activityApi.ActivityNewYear24({})
|
|
|
+ if (res.code == Code.StatusOK) {
|
|
|
+ activityState.tableDataNewYear24 = res.data
|
|
|
+ activityState.tableDataNewYear24Flag = !!activityState.tableDataNewYear24
|
|
|
+ } else {
|
|
|
+ uni.showToast({ title: res.msg, icon: 'none' })
|
|
|
+ }
|
|
|
+ } catch (error) {
|
|
|
+ console.error('获取新年庆典数据失败', error)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 限时活动
|
|
|
+ const ActivityRequiteInfo = async () => {
|
|
|
+ try {
|
|
|
+ const res = await activityApi.ActivityRequiteInfo({})
|
|
|
+ if (res.code == Code.StatusOK) {
|
|
|
+ activityState.limitedStatus = res.data
|
|
|
+ } else {
|
|
|
+ uni.showToast({ title: res.msg, icon: 'none' })
|
|
|
+ }
|
|
|
+ } catch (error) {
|
|
|
+ console.error('获取限时活动数据失败', error)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 获取活动显示信息
|
|
|
+ const getActivityShowsInfo = async () => {
|
|
|
+ try {
|
|
|
+ const res = await activityApi.ActivityShowsInfo()
|
|
|
+ if (res.code == Code.StatusOK) {
|
|
|
+ activityState.activityShowsInfo = res.data
|
|
|
+ activityState.surplusGive = res.data.surplusGive || false
|
|
|
+ activityState.monthlyGive = res.data.monthlyGive || false
|
|
|
+ } else {
|
|
|
+ uni.showToast({ title: res.msg, icon: 'none' })
|
|
|
+ activityState.surplusGive = false
|
|
|
+ activityState.monthlyGive = false
|
|
|
+ }
|
|
|
+ } catch (error) {
|
|
|
+ console.error('获取活动显示信息失败', error)
|
|
|
+ activityState.surplusGive = false
|
|
|
+ activityState.monthlyGive = false
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 20赠金是否到期
|
|
|
+ const is20Open = () => {
|
|
|
+ const endTime1 = '2023/04/30 23:59:59'
|
|
|
+ const now = getCurrentTime(2).getTime()
|
|
|
+ const end = new Date(endTime1).getTime()
|
|
|
+ if (now > end) {
|
|
|
+ activityState.anshiClose = false
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 20赠金活动数据
|
|
|
+ const getActivityPercentageGiveInfo = async () => {
|
|
|
+ try {
|
|
|
+ const res = await activityApi.ActivityPercentageGiveInfo({})
|
|
|
+ if (res.code == Code.StatusOK) {
|
|
|
+ // 处理20赠金活动数据
|
|
|
+ console.log('20赠金活动数据', res.data)
|
|
|
+ }
|
|
|
+ } catch (error) {
|
|
|
+ console.error('获取20赠金活动数据失败', error)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 刷新所有活动数据
|
|
|
+ const refreshAllActivities = () => {
|
|
|
+ is20Open()
|
|
|
+ searchFunc()
|
|
|
+ searchFunc1()
|
|
|
+ Activity23HundredInfo()
|
|
|
+ Activity23JiangxinInfoVip()
|
|
|
+ Activity24nianzhongInfo()
|
|
|
+ Activity24nianzhongTwoInfo()
|
|
|
+ GetActivityCptCode()
|
|
|
+ Activity24JYBInfoVip()
|
|
|
+ ActivityNoWorriesInfo()
|
|
|
+ isRaffleOpen()
|
|
|
+ isNewYear24Open()
|
|
|
+ ActivityRequiteInfo()
|
|
|
+ getActivityShowsInfo()
|
|
|
+ }
|
|
|
+
|
|
|
+ // 分页处理
|
|
|
+ const handlePageChange = (page: number) => {
|
|
|
+ pagerInfo.value.current = page
|
|
|
+ searchFunc(page)
|
|
|
+ searchFunc1()
|
|
|
+ }
|
|
|
+
|
|
|
+ // 清理定时器
|
|
|
+ onUnmounted(() => {
|
|
|
+ if (interval.value) {
|
|
|
+ clearInterval(interval.value)
|
|
|
+ }
|
|
|
+ })
|
|
|
+
|
|
|
+ return {
|
|
|
+ // 状态
|
|
|
+ pictLoading,
|
|
|
+ flag,
|
|
|
+ tableData,
|
|
|
+ tableDataGive,
|
|
|
+ singleData,
|
|
|
+ pagerInfo,
|
|
|
+ loginOptions,
|
|
|
+ loginOptions1,
|
|
|
+ activityState,
|
|
|
+ tableDataCptFlagCode,
|
|
|
+ NewYear24DataBalance,
|
|
|
+ NewYear24Data,
|
|
|
+
|
|
|
+ // 计算属性
|
|
|
+ country,
|
|
|
+ myCid,
|
|
|
+ isSupportedCountry,
|
|
|
+ isGuoQin,
|
|
|
+
|
|
|
+ // 工具函数
|
|
|
+ getCurrentTime,
|
|
|
+ getzero,
|
|
|
+ timeConvert,
|
|
|
+ groupCurrency,
|
|
|
+ groupTypeName,
|
|
|
+ overdue,
|
|
|
+ timeExpireJx,
|
|
|
+ isAfterSeptember30,
|
|
|
+
|
|
|
+ // API函数
|
|
|
+ getDateList,
|
|
|
+ searchFunc,
|
|
|
+ searchFunc1,
|
|
|
+ getSingle,
|
|
|
+ getSingle1,
|
|
|
+ Activity23HundredInfo,
|
|
|
+ Activity23JiangxinInfo,
|
|
|
+ Activity23JiangxinInfoVip,
|
|
|
+ Activity24nianzhongInfo,
|
|
|
+ Activity24nianzhongTwoInfo,
|
|
|
+ GetActivityCptCode,
|
|
|
+ ActivityCptInfo,
|
|
|
+ Activity24JYBInfoVip,
|
|
|
+ ActivityNoWorriesInfo,
|
|
|
+ ActivitYdepositRaffleAim,
|
|
|
+ ActivitYdepositRaffleinfo,
|
|
|
+ isRaffleOpen,
|
|
|
+ isNewYear24Open,
|
|
|
+ ActivityNewYear24,
|
|
|
+ ActivityRequiteInfo,
|
|
|
+ getActivityShowsInfo,
|
|
|
+ getActivityPercentageGiveInfo,
|
|
|
+ refreshAllActivities,
|
|
|
+ handlePageChange
|
|
|
+ }
|
|
|
+}
|