mirror of
https://gitee.com/niucloud-team/niucloud.git
synced 2025-12-12 18:02:47 +00:00
uni-app update
This commit is contained in:
parent
9d3d754ce1
commit
4281ac05f9
@ -4,12 +4,12 @@ import request from '@/utils/request'
|
||||
* 支付
|
||||
*/
|
||||
export function pay(data : AnyObject) {
|
||||
return request.post(`/pay`, data, { showErrorMessage: true })
|
||||
return request.post(`pay`, data, { showErrorMessage: true })
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取支付信息
|
||||
*/
|
||||
export function getPayInfo(outTradeNo : string) {
|
||||
return request.get(`/pay/info/${outTradeNo}`, {}, { showErrorMessage: true })
|
||||
return request.get(`pay/info/${outTradeNo}`, {}, { showErrorMessage: true })
|
||||
}
|
||||
@ -5,7 +5,7 @@
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { redirect } from '@/utils/common'
|
||||
import { redirect, diyRedirect, currRoute, getToken } from '@/utils/common'
|
||||
|
||||
const prop = defineProps({
|
||||
url: String,
|
||||
@ -22,8 +22,17 @@
|
||||
})
|
||||
|
||||
const toRedirect = () => {
|
||||
if (Object.keys(prop.data).length) {
|
||||
if (!prop.data.url) return;
|
||||
if (currRoute() == 'pages/member/index' && !getToken()) {
|
||||
useLogin().setLoginBack({ url: prop.data.url })
|
||||
return;
|
||||
}
|
||||
diyRedirect(prop.data);
|
||||
} else {
|
||||
redirect(prop)
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped></style>
|
||||
@ -5,9 +5,10 @@
|
||||
{{diyComponent.navTitle}}
|
||||
</div>
|
||||
<view v-if="diyComponent.layout == 'vertical'" class="graphic-nav">
|
||||
<view class="graphic-nav-item flex items-center justify-between py-[30rpx] px-[32rpx]"
|
||||
v-for=" (item, index) in diyComponent.list" :key="item.id"
|
||||
:class="[index == 0 ? 'border-t-0':'border-t']" @click="redirectTo(item.link)">
|
||||
<view class="graphic-nav-item" v-for=" (item, index) in diyComponent.list" :key="item.id">
|
||||
|
||||
<app-link :data="item.link" class="flex items-center justify-between py-[30rpx] px-[32rpx]"
|
||||
:class="[index == 0 ? 'border-t-0':'border-t']">
|
||||
|
||||
<view class="graphic-img relative flex items-center w-10 h-10 mr-[20rpx]"
|
||||
v-if="diyComponent.mode != 'text'"
|
||||
@ -28,6 +29,8 @@
|
||||
</text>
|
||||
<u-icon name="arrow-right" color="#CACACA"></u-icon>
|
||||
|
||||
</app-link>
|
||||
|
||||
</view>
|
||||
|
||||
</view>
|
||||
@ -38,18 +41,20 @@
|
||||
v-for="(numItem, numIndex) in Math.ceil(diyComponent.list.length / (diyComponent.pageCount * diyComponent.rowCount))">
|
||||
<!-- #ifdef MP-WEIXIN -->
|
||||
|
||||
<view class="graphic-nav-item flex flex-col items-center box-border py-2" :class="[diyComponent.mode]"
|
||||
v-for=" (item, index) in diyComponent.list" :key="item.id"
|
||||
<view class="graphic-nav-item" :class="[diyComponent.mode]" v-for=" (item, index) in diyComponent.list"
|
||||
:key="item.id"
|
||||
v-if="index >= [(numItem) * (diyComponent.pageCount * diyComponent.rowCount)] && index < [(numItem+1) * (diyComponent.pageCount * diyComponent.rowCount)]"
|
||||
:style="{ width: 100 / diyComponent.rowCount + '%' }" @click="redirectTo(item.link)">
|
||||
:style="{ width: 100 / diyComponent.rowCount + '%' }">
|
||||
<!-- #endif -->
|
||||
<!-- #ifdef H5 -->
|
||||
<view class="graphic-nav-item flex flex-col items-center box-border py-2"
|
||||
:class="[diyComponent.mode]" v-for=" (item, index) in diyComponent.list" :key="item.id"
|
||||
<view class="graphic-nav-item" :class="[diyComponent.mode]"
|
||||
v-for=" (item, index) in diyComponent.list" :key="item.id"
|
||||
v-if="index >= [(numItem - 1) * (diyComponent.pageCount * diyComponent.rowCount)] && index < [numItem * (diyComponent.pageCount * diyComponent.rowCount)]"
|
||||
:style="{ width: 100 / diyComponent.rowCount + '%' }" @click="redirectTo(item.link)">
|
||||
:style="{ width: 100 / diyComponent.rowCount + '%' }">
|
||||
<!-- #endif -->
|
||||
|
||||
<app-link :data="item.link" class="flex flex-col items-center box-border py-2">
|
||||
|
||||
<view class="graphic-img relative flex items-center justify-center w-10 h-10"
|
||||
v-if="diyComponent.mode != 'text'"
|
||||
:style="{ width: diyComponent.imageSize * 2 + 'rpx', height: diyComponent.imageSize * 2 + 'rpx' }">
|
||||
@ -71,6 +76,8 @@
|
||||
:style="{ fontSize: diyComponent.font.size * 2 + 'rpx', fontWeight: diyComponent.font.weight, color: diyComponent.font.color }">
|
||||
{{ item.title }}
|
||||
</text>
|
||||
</app-link>
|
||||
|
||||
</view>
|
||||
</swiper-item>
|
||||
</swiper>
|
||||
@ -81,10 +88,11 @@
|
||||
<view class="uni-scroll-view-content">
|
||||
<!-- #endif -->
|
||||
|
||||
<view class="graphic-nav-item flex flex-col items-center box-border py-2"
|
||||
:class="{'flex-shrink-0' : diyComponent.showStyle == 'singleSlide'}"
|
||||
<view class="graphic-nav-item" :class="{'flex-shrink-0' : diyComponent.showStyle == 'singleSlide'}"
|
||||
v-for="(item, index) in diyComponent.list" :key="item.id"
|
||||
:style="{ width: 100 / diyComponent.rowCount + '%' }" @click="redirectTo(item.link)">
|
||||
:style="{ width: 100 / diyComponent.rowCount + '%' }">
|
||||
|
||||
<app-link :data="item.link" class="flex flex-col items-center box-border py-2">
|
||||
<view class="graphic-img relative flex items-center justify-center w-10 h-10"
|
||||
v-if="diyComponent.mode != 'text'"
|
||||
:style="{ width: diyComponent.imageSize * 2 + 'rpx', height: diyComponent.imageSize * 2 + 'rpx' }">
|
||||
@ -104,6 +112,7 @@
|
||||
:style="{ fontSize: diyComponent.font.size * 2 + 'rpx', fontWeight: diyComponent.font.weight, color: diyComponent.font.color }">
|
||||
{{ item.title }}
|
||||
</text>
|
||||
</app-link>
|
||||
</view>
|
||||
|
||||
<!-- #ifdef MP -->
|
||||
|
||||
@ -1,18 +1,21 @@
|
||||
<template>
|
||||
<view class="image-ads" :style="warpCss">
|
||||
<view v-if="diyComponent.list.length == 1" class="leading-0 overflow-hidden"
|
||||
@click="diyRedirect(diyComponent.list[0].link)" :style="swiperWarpCss">
|
||||
<image :src="img(diyComponent.list[0].imageUrl)" :style="{height: diyComponent.list[0].height}"
|
||||
mode="widthFix" class="w-full" :show-menu-by-longpress="true"></image>
|
||||
<view v-if="diyComponent.list.length == 1" class="leading-0 overflow-hidden" :style="swiperWarpCss">
|
||||
<app-link :data="diyComponent.list[0].link">
|
||||
<image :src="img(diyComponent.list[0].imageUrl)" :style="{height: diyComponent.imageHeight}"
|
||||
mode="scaleToFill" class="w-full" :show-menu-by-longpress="true"></image>
|
||||
</app-link>
|
||||
</view>
|
||||
|
||||
<swiper v-else class="swiper" :style="{ height: swiperHeight }" autoplay="true" circular="true"
|
||||
<swiper v-else class="swiper" :style="{ height: diyComponent.imageHeight }" autoplay="true" circular="true"
|
||||
@change="swiperChange">
|
||||
<swiper-item class="swiper-item" v-for="(item) in diyComponent.list" :key="item.id"
|
||||
@click="diyRedirect(item.link)" :style="swiperWarpCss">
|
||||
<view class="item" :style="{height: item.height}">
|
||||
<image :src="img(item.imageUrl)" mode="scaleToFill" class="w-full h-full"></image>
|
||||
<swiper-item class="swiper-item" v-for="(item) in diyComponent.list" :key="item.id" :style="swiperWarpCss">
|
||||
<app-link :data="item.link">
|
||||
<view class="item" :style="{height: diyComponent.imageHeight}">
|
||||
<image :src="img(item.imageUrl)" mode="scaleToFill" class="w-full h-full"
|
||||
:show-menu-by-longpress="true"></image>
|
||||
</view>
|
||||
</app-link>
|
||||
</swiper-item>
|
||||
</swiper>
|
||||
</view>
|
||||
@ -21,7 +24,7 @@
|
||||
<script lang="ts" setup>
|
||||
// 图片广告
|
||||
import { ref, onMounted, watch, computed } from 'vue';
|
||||
import { img, diyRedirect } from '@/utils/common';
|
||||
import { img } from '@/utils/common';
|
||||
import useDiyStore from '@/stores/diy';
|
||||
|
||||
const props = defineProps(['component', 'index']);
|
||||
@ -56,31 +59,8 @@
|
||||
swiperIndex.value = e.detail.current;
|
||||
};
|
||||
|
||||
const swiperHeight = ref('');
|
||||
|
||||
const handleData = () => {
|
||||
let minHeight = 0;
|
||||
swiperHeight.value = '0rpx';
|
||||
|
||||
diyComponent.value.list.forEach((item, index) => {
|
||||
|
||||
uni.getSystemInfo({
|
||||
success: res => {
|
||||
var ratio = item.imgHeight / item.imgWidth;
|
||||
item.width = res.windowWidth;
|
||||
item.height = item.width * ratio;
|
||||
}
|
||||
});
|
||||
|
||||
// 获取最大高度 if (maxHeight == 0 || maxHeight < item.imgHeight) maxHeight = item.imgHeight;
|
||||
if (minHeight == 0 || minHeight > item.height) minHeight = item.height;
|
||||
});
|
||||
|
||||
diyComponent.value.list.forEach((item, index) => {
|
||||
item.height = minHeight * 2 + 'rpx';
|
||||
swiperHeight.value = minHeight * 2 + 'rpx';
|
||||
});
|
||||
|
||||
diyComponent.value.imageHeight = (diyComponent.value.imageHeight * 2) + 'rpx';
|
||||
};
|
||||
|
||||
onMounted(() => {
|
||||
|
||||
@ -1,8 +1,8 @@
|
||||
<template>
|
||||
<view class="diy-text" @click="redirect(diyComponent.link)" :style="warpCss">
|
||||
|
||||
<view class="diy-text" :style="warpCss">
|
||||
<view v-if="diyComponent.style == 'style-1'" class="p-[20rpx]">
|
||||
<view class="" :style="{
|
||||
<app-link :data="diyComponent.link">
|
||||
<view :style="{
|
||||
fontSize: diyComponent.fontSize * 2 + 'rpx',
|
||||
color: diyComponent.textColor,
|
||||
fontWeight: diyComponent.fontWeight,
|
||||
@ -10,8 +10,10 @@
|
||||
}">
|
||||
{{ diyComponent.text }}
|
||||
</view>
|
||||
</app-link>
|
||||
</view>
|
||||
<view v-if="diyComponent.style == 'style-2'" class="p-[20rpx] flex items-center">
|
||||
<app-link :data="diyComponent.link">
|
||||
<view class="max-w-[200rpx] truncate" :style="{
|
||||
fontSize: diyComponent.fontSize * 2 + 'rpx',
|
||||
color: diyComponent.textColor,
|
||||
@ -19,12 +21,16 @@
|
||||
}">
|
||||
{{ diyComponent.text }}
|
||||
</view>
|
||||
</app-link>
|
||||
<text class="ml-[16rpx] max-w-[300rpx] truncate" :style="{ color: diyComponent.subTitle.color,
|
||||
fontSize: diyComponent.subTitle.fontSize * 2 + 'rpx', }">{{ diyComponent.subTitle.text }}</text>
|
||||
<view class="ml-auto text-right flex items-center" v-if="diyComponent.more.isShow"
|
||||
:style="{ color: diyComponent.more.color }" @click.stop="redirect(diyComponent.more.link)">
|
||||
<view class="ml-auto text-right " v-if="diyComponent.more.isShow"
|
||||
:style="{ color: diyComponent.more.color }">
|
||||
|
||||
<app-link :data="diyComponent.more.link" class="flex items-center">
|
||||
<text class="max-w-[200rpx] truncate text-[24rpx] mr-[8rpx]">{{ diyComponent.more.text }}</text>
|
||||
<u-icon name="arrow-right" size="12" :style="{ color: diyComponent.more.color }"></u-icon>
|
||||
</app-link>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
import { nextTick } from 'vue'
|
||||
import { currRoute } from '@/utils/common'
|
||||
import { setDocumentTitle } from '@/utils/common'
|
||||
|
||||
class Language {
|
||||
private i18n: any
|
||||
@ -13,13 +13,19 @@ class Language {
|
||||
*
|
||||
* @param locale 设置语言
|
||||
*/
|
||||
public setI18nLanguage(locale: string) {
|
||||
public setI18nLanguage(locale: string, path: string) {
|
||||
if (this.i18n.mode === 'legacy') {
|
||||
this.i18n.global.locale = locale
|
||||
} else {
|
||||
this.i18n.global.locale = locale
|
||||
}
|
||||
uni.setLocale(locale)
|
||||
|
||||
// #ifdef H5
|
||||
if (process.env.NODE_ENV == 'production') {
|
||||
setDocumentTitle(path)
|
||||
}
|
||||
// #endif
|
||||
}
|
||||
|
||||
/**
|
||||
@ -33,17 +39,17 @@ class Language {
|
||||
const file = path == '/' ? 'pages.index.index' : path.replace('/', '').replaceAll('/', '.')
|
||||
// 是否已加载
|
||||
if (this.loadLocale.includes(`${locale}/${file}`)) {
|
||||
this.setI18nLanguage(locale)
|
||||
this.setI18nLanguage(locale, file)
|
||||
return nextTick()
|
||||
}
|
||||
this.loadLocale.push(`${locale}/${file}`)
|
||||
// 引入语言包文件
|
||||
const messages = await import(`./${locale}/${file}.json`)
|
||||
this.i18n.global.mergeLocaleMessage(locale, messages.default)
|
||||
this.setI18nLanguage(locale)
|
||||
this.setI18nLanguage(locale, path)
|
||||
return nextTick()
|
||||
} catch(e) {
|
||||
this.setI18nLanguage(locale)
|
||||
this.setI18nLanguage(locale, path)
|
||||
return nextTick()
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,20 +1,31 @@
|
||||
{
|
||||
// pages.json 中文标题
|
||||
"pages.index.index": "",
|
||||
"pages.index.close": "站点已关闭",
|
||||
"pages.index.nosite": "站点不存在",
|
||||
"pages.index.develop": "开发环境配置",
|
||||
"pages.index.diy": "",
|
||||
"pages.article.list": "资讯中心",
|
||||
"pages.article.detail": "文章详情",
|
||||
"pages.member.index": "",
|
||||
"pages.auth.agreement": "协议",
|
||||
"pages.auth.bind": "绑定手机号",
|
||||
"pages.auth.login": "登录",
|
||||
"pages.auth.register": "注册",
|
||||
"pages.auth.resetpwd": "找回密码",
|
||||
"pages.setting.index": "设置",
|
||||
"pages.auth.bind": "绑定手机号",
|
||||
"pages.member.personal": "个人资料",
|
||||
"pages.member.balance": "我的余额",
|
||||
"pages.member.detailed_account": "流水明细",
|
||||
"pages.member.account": "会员账户",
|
||||
"pages.member.account_edit": "编辑会员账户",
|
||||
"pages.member.apply_cash_out": "申请提现",
|
||||
"pages.member.balance": "我的余额",
|
||||
"pages.member.cash_out": "提现记录",
|
||||
"pages.member.cash_out_detail": "提现详情",
|
||||
"pages.index.close": "站点已关闭",
|
||||
"pages.index.nonexistence": "站点不存在"
|
||||
"pages.member.commission": "我的佣金",
|
||||
"pages.member.detailed_account": "流水明细",
|
||||
"pages.member.index": "",
|
||||
"pages.member.personal": "个人资料",
|
||||
"pages.member.recharge_record": "充值记录",
|
||||
"pages.member.recharge_record_detail": "充值详情",
|
||||
"pages.pay.browser": "支付",
|
||||
"pages.pay.result": "支付结果",
|
||||
"pages.setting.index": "设置",
|
||||
"pages.webview.index": ""
|
||||
}
|
||||
@ -45,5 +45,5 @@
|
||||
"myPoint": "我的积分",
|
||||
"customerService": "联系客服",
|
||||
"siteClose": "站点已关闭",
|
||||
"siteNonexistence": "站点不存在"
|
||||
"noSite": "站点不存在"
|
||||
}
|
||||
@ -1,12 +1,4 @@
|
||||
{
|
||||
"statusName": "当前状态",
|
||||
"cashOutNo": "交易号",
|
||||
"serviceMoney": "手续费",
|
||||
"createTime": "申请时间",
|
||||
"auditTime": "审核时间",
|
||||
"transferBank": "银行名称",
|
||||
"transferAccount": "收款账号",
|
||||
"refuseReason": "拒绝理由",
|
||||
"transferTypeName": "转账方式名称",
|
||||
"transferTime": "转账时间"
|
||||
"orderNo": "订单编号",
|
||||
"createTime": "创建时间"
|
||||
}
|
||||
@ -49,6 +49,9 @@
|
||||
desc: articleDetail.value.intro,
|
||||
url: articleDetail.value.image
|
||||
}
|
||||
uni.setNavigationBarTitle({
|
||||
title: articleDetail.value.title
|
||||
})
|
||||
setShare({
|
||||
wechat: {
|
||||
...share
|
||||
|
||||
16
uni-app/pages/index/nosite.vue
Normal file
16
uni-app/pages/index/nosite.vue
Normal file
@ -0,0 +1,16 @@
|
||||
<template>
|
||||
<view class="w-screen h-screen flex flex-col items-center justify-center">
|
||||
<u-empty
|
||||
:icon="img('static/resource/images/site/close.png')"
|
||||
:text="t('noSite')"
|
||||
>
|
||||
</u-empty>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { img } from '@/utils/common'
|
||||
import { t } from '@/locale'
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped></style>
|
||||
@ -1,14 +1,12 @@
|
||||
<template>
|
||||
<view class="member-record-list">
|
||||
<mescroll-body ref="mescrollRef" @init="mescrollInit" @down="downCallback" @up="getListFn" top="">
|
||||
<view v-for="(item,index) in list" :key="item.id" class="member-record-item" @click="toDetailFn(item)">
|
||||
<view class="name">{{item.from_type_name}}</view>
|
||||
<view class="desc" v-if="item.memo">{{item.memo}}</view>
|
||||
<view class="desc">{{item.create_time}}</view>
|
||||
<view class="money" :class="item.account_data > 0 ? 'text-active' : ''">
|
||||
{{ item.account_data > 0 ? '+' + item.account_data : item.account_data }}
|
||||
</view>
|
||||
|
||||
<view v-for="(order,index) in list" :key="order.order_id" class="member-record-item"
|
||||
@click="toDetailFn(order)">
|
||||
<view class="name">{{order.item[0].item_name}}</view>
|
||||
<view class="desc">{{order.create_time}}</view>
|
||||
<view class="money text-active">+{{ order.order_money }}</view>
|
||||
<view class="status" v-if="order.order_status_info">{{order.order_status_info.name}}</view>
|
||||
</view>
|
||||
|
||||
<mescroll-empty v-if="!list.length && loading" :option="{tip : t('emptyTip') }"></mescroll-empty>
|
||||
@ -23,10 +21,10 @@
|
||||
import MescrollEmpty from '@/components/mescroll/mescroll-empty/mescroll-empty.vue';
|
||||
import useMescroll from '@/components/mescroll/hooks/useMescroll.js';
|
||||
import { getRechargeList } from '@/api/member';
|
||||
import { redirect } from '@/utils/common'
|
||||
import { onPageScroll, onReachBottom, onLoad } from '@dcloudio/uni-app';
|
||||
const { mescrollInit, downCallback, getMescroll } = useMescroll(onPageScroll, onReachBottom);
|
||||
|
||||
|
||||
const list = ref<Array<any>>([]),
|
||||
loading = ref<boolean>(false),
|
||||
mescrollRef = ref(null);
|
||||
@ -69,7 +67,6 @@
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
const toDetailFn = (data) => {
|
||||
redirect({ url: '/pages/member/recharge_record_detail', param: { id: data.order_id } });
|
||||
}
|
||||
@ -77,4 +74,16 @@
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@import '@/styles/member_record_list.scss';
|
||||
|
||||
.member-record-list {
|
||||
.member-record-item {
|
||||
.desc {
|
||||
@apply leading-8 h-8;
|
||||
}
|
||||
|
||||
.status {
|
||||
@apply absolute right-3 top-11 text-sm;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@ -1,47 +1,22 @@
|
||||
<template>
|
||||
<view class="member-record-detail">
|
||||
<view class="member-record-detail" v-show="loading">
|
||||
<view class="money-wrap">
|
||||
<text>-{{ rechargeInfo.apply_money }}</text>
|
||||
<text>{{ rechargeInfo.status_name }}</text>
|
||||
<text>¥{{ rechargeInfo.order_money }}</text>
|
||||
<text v-if="rechargeInfo.order_status_info">{{rechargeInfo.order_status_info.name}}</text>
|
||||
</view>
|
||||
<!-- 状态0待审核1.待转账2已转账 -1拒绝' -->
|
||||
<view class="item">
|
||||
<view class="line-wrap">
|
||||
<text class="label">{{t('cashOutNo')}}</text>
|
||||
<text class="value">{{ rechargeInfo.cash_out_no }}</text>
|
||||
<view class="line-wrap" v-if="rechargeInfo.item">
|
||||
<text class="label">{{ rechargeInfo.item[0].item_name }}</text>
|
||||
<text class="value">¥{{ rechargeInfo.order_money }}</text>
|
||||
</view>
|
||||
<view class="line-wrap">
|
||||
<text class="label">{{t('serviceMoney')}}</text>
|
||||
<text class="value">¥{{ rechargeInfo.service_money }}</text>
|
||||
<text class="label">{{t('orderNo')}}</text>
|
||||
<text class="value">{{ rechargeInfo.order_no }}</text>
|
||||
</view>
|
||||
<view class="line-wrap">
|
||||
<text class="label">{{t('createTime')}}</text>
|
||||
<text class="value">{{ rechargeInfo.create_time }}</text>
|
||||
</view>
|
||||
<view class="line-wrap" v-if="rechargeInfo.status">
|
||||
<text class="label">{{t('auditTime')}}</text>
|
||||
<text class="value">{{ rechargeInfo.audit_time }}</text>
|
||||
</view>
|
||||
<view class="line-wrap" v-if="rechargeInfo.transfer_bank">
|
||||
<text class="label">{{t('transferBank')}}</text>
|
||||
<text class="value">{{ rechargeInfo.transfer_bank }}</text>
|
||||
</view>
|
||||
<view class="line-wrap">
|
||||
<text class="label">{{t('transferAccount')}}</text>
|
||||
<text class="value">{{ rechargeInfo.transfer_account }}</text>
|
||||
</view>
|
||||
<view class="line-wrap" v-if="rechargeInfo.status == -1 && rechargeInfo.refuse_reason">
|
||||
<text class="label">{{t('refuseReason')}}</text>
|
||||
<text class="value">{{ rechargeInfo.refuse_reason }}</text>
|
||||
</view>
|
||||
<view class="line-wrap" v-if="rechargeInfo.status == 2">
|
||||
<text class="label">{{t('transferTypeName')}}</text>
|
||||
<text class="value">{{ rechargeInfo.transfer_type_name }}</text>
|
||||
</view>
|
||||
<view class="line-wrap" v-if="rechargeInfo.status == 2">
|
||||
<text class="label">{{t('transferTime')}}</text>
|
||||
<text class="value">{{ rechargeInfo.transfer_time }}</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
@ -50,7 +25,6 @@
|
||||
import { reactive, ref } from 'vue'
|
||||
import { onLoad } from '@dcloudio/uni-app'
|
||||
import { t } from '@/locale'
|
||||
import { redirect, img } from '@/utils/common';
|
||||
import { getRechargeDetail } from '@/api/member';
|
||||
|
||||
let rechargeInfo = ref({});
|
||||
|
||||
@ -20,7 +20,7 @@ const useSystemStore = defineStore('system', {
|
||||
if (this.site.status == 3) redirect({ url: '/pages/index/close', mode: 'reLaunch' })
|
||||
})
|
||||
.catch((err) => {
|
||||
redirect({ url: '/pages/index/nonexistence', mode: 'reLaunch' })
|
||||
redirect({ url: '/pages/index/nosite', mode: 'reLaunch' })
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
@ -9,5 +9,9 @@ const loginBack = useLogin()
|
||||
*/
|
||||
export function checkNeedLogin(route: AnyObject){
|
||||
const pages = getNeedLoginPages()
|
||||
pages.includes(route.path) && !getToken() && loginBack.setLoginBack({ url: route.path, param: route.query || {} })
|
||||
if (pages.includes(route.path) && !getToken()) {
|
||||
setTimeout(() => {
|
||||
loginBack.setLoginBack({ url: route.path, param: route.query || {} })
|
||||
}, 100)
|
||||
}
|
||||
}
|
||||
@ -1,7 +1,8 @@
|
||||
import { getTabbarPages } from './pages'
|
||||
import useDiyStore from '@/stores/diy'
|
||||
import useMemberStore from '@/stores/member'
|
||||
import internal from 'stream'
|
||||
import pagesZh from '@/locale/zh-Hans.json'
|
||||
import pagesEn from '@/locale/en.json'
|
||||
|
||||
/**
|
||||
* 跳转页面
|
||||
@ -231,3 +232,20 @@ export function getSiteId(siteid : number) {
|
||||
return siteid
|
||||
// #endif
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置html标题
|
||||
* @param {Object} route
|
||||
*/
|
||||
export function setDocumentTitle(route: string) {
|
||||
if (process.env.NODE_ENV != 'production') return
|
||||
try {
|
||||
const locale: AnyObject = {
|
||||
'zh-Hans': pagesZh,
|
||||
'en': pagesEn
|
||||
}
|
||||
const key = route.replace('/', '').replaceAll('/', '.')
|
||||
locale[ uni.getLocale() ][key] && (document.title = locale[ uni.getLocale() ][key])
|
||||
} catch (e) {
|
||||
}
|
||||
}
|
||||
@ -1,6 +1,6 @@
|
||||
import { language } from '@/locale'
|
||||
import { checkNeedLogin } from '@/utils/auth'
|
||||
import { redirect, urlDeconstruction, getToken, getSiteId } from '@/utils/common'
|
||||
import { redirect, urlDeconstruction, getToken, getSiteId, setDocumentTitle } from '@/utils/common'
|
||||
import { memberLog } from '@/api/auth'
|
||||
|
||||
/**
|
||||
@ -23,6 +23,9 @@ export const redirectInterceptor = () => {
|
||||
if ((getSiteId(uni.getStorageSync('wap_site_id') || import.meta.env.VITE_SITE_ID) === '') && route.path != '/pages/index/develop') {
|
||||
redirect({ url: '/pages/index/develop', mode: 'reLaunch' })
|
||||
}
|
||||
} else {
|
||||
// 设置网站标题
|
||||
setDocumentTitle(route.path)
|
||||
}
|
||||
// #endif
|
||||
|
||||
@ -55,6 +58,9 @@ export const launchInterceptor = () => {
|
||||
uni.setStorageSync('develop_before_path', launch.path);
|
||||
redirect({ url: '/pages/index/develop', mode: 'reLaunch' })
|
||||
}
|
||||
} else {
|
||||
// 设置网站标题
|
||||
setDocumentTitle(launch.path)
|
||||
}
|
||||
// #endif
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user