充值页
2
main.js
|
|
@ -29,7 +29,7 @@ export function createApp() {
|
||||||
app.config.globalProperties.$system = plus.os.name;
|
app.config.globalProperties.$system = plus.os.name;
|
||||||
// #endif
|
// #endif
|
||||||
app.config.globalProperties.$systemInfo = systemInfo
|
app.config.globalProperties.$systemInfo = systemInfo
|
||||||
uni.setStorageSync('version', '1.0.6.sp4')
|
uni.setStorageSync('version', '1.0.6.sp5')
|
||||||
app.config.globalProperties.$version = uni.getStorageSync('version')
|
app.config.globalProperties.$version = uni.getStorageSync('version')
|
||||||
app.use(globalMethods);
|
app.use(globalMethods);
|
||||||
return {
|
return {
|
||||||
|
|
|
||||||
|
|
@ -12,10 +12,10 @@
|
||||||
|
|
||||||
</view>
|
</view>
|
||||||
<view class="rectangle_22292" style="position: fixed;left:0;top:0;overflow: hidden;"
|
<view class="rectangle_22292" style="position: fixed;left:0;top:0;overflow: hidden;"
|
||||||
:style="{background:(data.info.avatar?`rgba(0,0,0,0)`:'linear-gradient(180deg, #bdbec3 0%, #a0a2af 100%)')
|
:style="{background:(data.info.avatar&&data.headerHeight!='206'?`rgba(0,0,0,0)`:'linear-gradient(180deg, #bdbec3 0%, #a0a2af 100%)')
|
||||||
, height:data.headerHeight+'px'}">
|
, height:data.headerHeight+'px'}">
|
||||||
<view v-if="data.info.avatar" style="height:400rpx;"></view>
|
<view v-if="data.info.avatar" style="height:400rpx;"></view>
|
||||||
<image v-if="data.info.avatar" :src="data.info.avatar" mode="aspectFill"
|
<image v-if="data.info.avatar&&data.headerHeight!='206'" :src="data.info.avatar" mode="aspectFill"
|
||||||
style="width:100%;position: absolute;bottom: 0;left: 0;z-index:0;" :style="{height:data.headerHeight+'px'}"></image>
|
style="width:100%;position: absolute;bottom: 0;left: 0;z-index:0;" :style="{height:data.headerHeight+'px'}"></image>
|
||||||
<view class="status" :style="{height:$systemInfo.statusBarHeight+'px'}"> </view>
|
<view class="status" :style="{height:$systemInfo.statusBarHeight+'px'}"> </view>
|
||||||
<view class="flexcontainer" @click="openEditModalDetail()">
|
<view class="flexcontainer" @click="openEditModalDetail()">
|
||||||
|
|
@ -27,10 +27,10 @@
|
||||||
{{data.info.name.substring(0,1)}}
|
{{data.info.name.substring(0,1)}}
|
||||||
</view>
|
</view>
|
||||||
<image v-else class="group_47577" :src="data.info.avatar||'/static/image/call/iosAvatar.png'"
|
<image v-else class="group_47577" :src="data.info.avatar||'/static/image/call/iosAvatar.png'"
|
||||||
:style="{opacity:data.info.avatar?0:1,transform: `scale(${data.avatarScale}) translateY(${data.avatarY}px)`}" />
|
:style="{opacity:data.info.avatar?(data.headerHeight=='206'?1:0):1,transform: `scale(${data.avatarScale}) translateY(${data.avatarY}px)`}" />
|
||||||
</view>
|
</view>
|
||||||
<text class="text_1" v-if="!data.info.avatar" :style="{opacity:data.scale}"> {{data.info.address}} </text>
|
<text class="text_1" v-if="!data.info.avatar" :style="{opacity:data.scale}"> {{data.info.address}} </text>
|
||||||
<text class="text_2" :style="{transform: `scale(${data.info.avatar?1:data.textScale}) translateY(${data.text2Y}px)`}">{{data.info.name||formatString(data.info.phone)}} </text>
|
<text class="text_2" :style="{transform: `scale(${data.textScale}) translateY(${data.text2Y}px)`}">{{data.info.name||formatString(data.info.phone)}} </text>
|
||||||
|
|
||||||
<view class="flexcontainer_1" :style="{transform: `translateY(${data.contentY}px)`}">
|
<view class="flexcontainer_1" :style="{transform: `translateY(${data.contentY}px)`}">
|
||||||
<view class="group_48123" :style="{'background-color': `rgba(128,131,146,${data.info.avatar?0.5:1})`}">
|
<view class="group_48123" :style="{'background-color': `rgba(128,131,146,${data.info.avatar?0.5:1})`}">
|
||||||
|
|
@ -784,15 +784,15 @@
|
||||||
const y = e.scrollTop;
|
const y = e.scrollTop;
|
||||||
const max = 200;
|
const max = 200;
|
||||||
let p = Math.min(y / max, 1);
|
let p = Math.min(y / max, 1);
|
||||||
data.contentY = -p * (data.info.avatar?70:90);
|
data.contentY = -p * (data.info.avatar?65:90);
|
||||||
data.avatarY = -p * 0;
|
data.avatarY = -p * 0;
|
||||||
data.text2Y = -p * (data.info.avatar?70:130);
|
data.text2Y = -p * (data.info.avatar?75:130);
|
||||||
data.avatarScale = 1 - p * 0.55; // 1 → 0.6 textScale
|
data.avatarScale = 1 - p * 0.55; // 1 → 0.6 textScale
|
||||||
data.textScale = 1 - p * 0.5; // 1 → 0.6
|
data.textScale = 1 - p * 0.5; // 1 → 0.6
|
||||||
|
|
||||||
data.scale = 1 - p * 1; // 1 → 0.6
|
data.scale = 1 - p * 1; // 1 → 0.6
|
||||||
console.log(data.avatarScale )
|
|
||||||
data.headerHeight=Math.max(206,(data.info.avatar?519:325) - y);
|
data.headerHeight=Math.max(206,(data.info.avatar?519:325) - y);
|
||||||
|
console.log(data.headerHeight )
|
||||||
}else{
|
}else{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -36,8 +36,7 @@
|
||||||
</view>
|
</view>
|
||||||
<view class="vipList">
|
<view class="vipList">
|
||||||
<template v-for="(item, index) in data.benefitList" :key="index">
|
<template v-for="(item, index) in data.benefitList" :key="index">
|
||||||
<view class="item"
|
<view class="item" v-if="data.goods.features == 'common' || (data.goods.features != 'common' && index < 10)">
|
||||||
v-if="data.goods.features == 'common' || (data.goods.features != 'common' && index < 10)">
|
|
||||||
<image :src="item.url"></image>
|
<image :src="item.url"></image>
|
||||||
<text>{{ item.name }}</text>
|
<text>{{ item.name }}</text>
|
||||||
</view>
|
</view>
|
||||||
|
|
@ -113,8 +112,8 @@
|
||||||
|
|
||||||
<view class="footer-container">
|
<view class="footer-container">
|
||||||
<view class="payment-method-box">
|
<view class="payment-method-box">
|
||||||
<view class="wx-pay payment-method" v-for="(item, index) in data.payList"
|
<view class="wx-pay payment-method" v-for="(item, index) in data.payList" @click="onSelectPayment(item.type)"
|
||||||
@click="onSelectPayment(item.type)" :key="index">
|
:key="index">
|
||||||
<image class="img-select"
|
<image class="img-select"
|
||||||
:src="paymentMethod == item.type ? '/static/image/recharge/selected.png' : '/static/image/recharge/unselected.png'">
|
:src="paymentMethod == item.type ? '/static/image/recharge/selected.png' : '/static/image/recharge/unselected.png'">
|
||||||
</image>
|
</image>
|
||||||
|
|
@ -131,8 +130,7 @@
|
||||||
<view class="text">
|
<view class="text">
|
||||||
合计
|
合计
|
||||||
<text>¥</text>
|
<text>¥</text>
|
||||||
<countUp :num="$toFiexd(data.price, 2)" height="24" style="margin-top: -6px;" color="red"
|
<countUp :num="$toFiexd(data.price, 2)" height="24" style="margin-top: -6px;" color="red" fontSize='24'>
|
||||||
fontSize='24'>
|
|
||||||
</countUp>
|
</countUp>
|
||||||
已优惠¥{{ $toFiexd(data.coupon, 0) }}
|
已优惠¥{{ $toFiexd(data.coupon, 0) }}
|
||||||
</view>
|
</view>
|
||||||
|
|
@ -183,8 +181,7 @@
|
||||||
</scroll-view>
|
</scroll-view>
|
||||||
</view>
|
</view>
|
||||||
<view class="couponButton" @click="submitActivity">
|
<view class="couponButton" @click="submitActivity">
|
||||||
<c-lottie ref="cLottieRef" src='/static/lottie/couponButton.json' width="305px"
|
<c-lottie ref="cLottieRef" src='/static/lottie/couponButton.json' width="305px" height='86px'></c-lottie>
|
||||||
height='86px'></c-lottie>
|
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</transition>
|
</transition>
|
||||||
|
|
@ -235,8 +232,7 @@
|
||||||
<view>
|
<view>
|
||||||
<view class="item" v-for="(item, index) in data.myActivity" :key="index"
|
<view class="item" v-for="(item, index) in data.myActivity" :key="index"
|
||||||
@click="(data.goods.price < (Number(item.threshold) / 100) && item.threshold != '') || !item.isStatus ? '' : setActiveId(item)">
|
@click="(data.goods.price < (Number(item.threshold) / 100) && item.threshold != '') || !item.isStatus ? '' : setActiveId(item)">
|
||||||
<view class="left"
|
<view class="left" :class="{ left2: data.goods.price < (Number(item.threshold) / 100) || !item.isStatus }">
|
||||||
:class="{ left2: data.goods.price < (Number(item.threshold) / 100) || !item.isStatus }">
|
|
||||||
<view class="money">
|
<view class="money">
|
||||||
<text v-if="item.coupon_type_name != '折扣券'">¥</text>
|
<text v-if="item.coupon_type_name != '折扣券'">¥</text>
|
||||||
<text class="moneys">{{ item.coupon_type_name != '折扣券' ? (Number(item.coupon_value) /
|
<text class="moneys">{{ item.coupon_type_name != '折扣券' ? (Number(item.coupon_value) /
|
||||||
|
|
@ -254,8 +250,8 @@
|
||||||
<image
|
<image
|
||||||
v-if="(data.goods.price < (Number(item.threshold) / 100) && item.threshold != '') || !item.isStatus"
|
v-if="(data.goods.price < (Number(item.threshold) / 100) && item.threshold != '') || !item.isStatus"
|
||||||
class="checkedImg" src="/static/image/recharge/checked1.png" mode=""></image>
|
class="checkedImg" src="/static/image/recharge/checked1.png" mode=""></image>
|
||||||
<image v-else-if="data.active_ids == item.id" class="checkedImg"
|
<image v-else-if="data.active_ids == item.id" class="checkedImg" src="/static/image/recharge/checked3.png"
|
||||||
src="/static/image/recharge/checked3.png" mode=""></image>
|
mode=""></image>
|
||||||
<image v-else class="checkedImg" src="/static/image/recharge/checked2.png" mode=""></image>
|
<image v-else class="checkedImg" src="/static/image/recharge/checked2.png" mode=""></image>
|
||||||
</view>
|
</view>
|
||||||
<view class="jjdq" v-if="isToday(item.expire_times)">
|
<view class="jjdq" v-if="isToday(item.expire_times)">
|
||||||
|
|
@ -527,6 +523,12 @@ onLoad(async (option) => {
|
||||||
item.url = item.url.replace('/static/image/recharge/',
|
item.url = item.url.replace('/static/image/recharge/',
|
||||||
'/static/image/recharge/51/')
|
'/static/image/recharge/51/')
|
||||||
})
|
})
|
||||||
|
} else if (themeConfig?.theme == '0606') {
|
||||||
|
data.banner = '/static/image/recharge/66/bannar.png'
|
||||||
|
// data.benefitList.forEach(item => {
|
||||||
|
// item.url = item.url.replace('/static/image/recharge/',
|
||||||
|
// '/static/image/recharge/66/')
|
||||||
|
// })
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
let pages = getCurrentPages();
|
let pages = getCurrentPages();
|
||||||
|
|
@ -1064,8 +1066,7 @@ async function onSelect(items, index) {
|
||||||
if (list.length != 0) {
|
if (list.length != 0) {
|
||||||
let listData = list.map(cell => {
|
let listData = list.map(cell => {
|
||||||
return {
|
return {
|
||||||
image: cell == 'weixin' ? '/static/image/recharge/wxpay.png' :
|
image: cell == 'weixin' ? '/static/image/recharge/wxpay.png' : '/static/image/recharge/alipay.png',
|
||||||
'/static/image/recharge/alipay.png',
|
|
||||||
name: cell == 'weixin' ? '微信支付' : '支付宝支付',
|
name: cell == 'weixin' ? '微信支付' : '支付宝支付',
|
||||||
type: cell == 'weixin' ? 'wxpay' : 'alipay'
|
type: cell == 'weixin' ? 'wxpay' : 'alipay'
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -7,17 +7,20 @@
|
||||||
</liu-drag-button>
|
</liu-drag-button>
|
||||||
</view>
|
</view>
|
||||||
<view class="flexcontainer">
|
<view class="flexcontainer">
|
||||||
|
|
||||||
<view class="group_48184" @click="openEditDialog">
|
<view class="group_48184" @click="openEditDialog">
|
||||||
<view :style="{height:$systemInfo.statusBarHeight*2+96+'rpx'}" style="position: relative;width: 100%;">
|
<view :style="{height:$systemInfo.statusBarHeight*2+96+'rpx'}" style="position: relative;width: 100%;">
|
||||||
|
|
||||||
|
</view>
|
||||||
|
<view class="headerBox">
|
||||||
|
<view :style="{height:$systemInfo.statusBarHeight*2+'rpx'}" style="position: relative;width: 100%;">
|
||||||
|
|
||||||
</view>
|
</view>
|
||||||
<view class="header" >
|
<view class="header" >
|
||||||
<image @click="back" src="/static/image/nav-bar/back-black.png" mode=""></image>
|
<image @click="back" src="/static/image/nav-bar/back-black.png" mode=""></image>
|
||||||
<text class="text_1">借记卡详情</text>
|
<text class="text_1">借记卡详情</text>
|
||||||
<text class="imgXl"></text>
|
<text class="imgXl"></text>
|
||||||
</view>
|
</view>
|
||||||
|
</view>
|
||||||
<view class="rectangle_23309">
|
<view class="rectangle_23309">
|
||||||
<view class="flexcontainer_1">
|
<view class="flexcontainer_1">
|
||||||
<image class="group_13998" src="/static/image/other/bank/nyyh/eyes.png" />
|
<image class="group_13998" src="/static/image/other/bank/nyyh/eyes.png" />
|
||||||
|
|
@ -141,11 +144,13 @@
|
||||||
</view>
|
</view>
|
||||||
<view class="formItem">
|
<view class="formItem">
|
||||||
<text>可用余额</text>
|
<text>可用余额</text>
|
||||||
<input :value="editDialog.data.availableBalance" @input="(e) => onNumberInput('availableBalance', e.detail.value)" placeholder="如: 0.00" />
|
<input :value="editDialog.data.availableBalance"
|
||||||
|
@input="(e) => onNumberInput('availableBalance', e.detail.value)" placeholder="如: 0.00" />
|
||||||
</view>
|
</view>
|
||||||
<view class="formItem">
|
<view class="formItem">
|
||||||
<text>账户余额</text>
|
<text>账户余额</text>
|
||||||
<input :value="editDialog.data.accountBalance" @input="(e) => onNumberInput('accountBalance', e.detail.value)" placeholder="如: 0.00" />
|
<input :value="editDialog.data.accountBalance"
|
||||||
|
@input="(e) => onNumberInput('accountBalance', e.detail.value)" placeholder="如: 0.00" />
|
||||||
</view>
|
</view>
|
||||||
<view class="formItem">
|
<view class="formItem">
|
||||||
<text>钞汇标志</text>
|
<text>钞汇标志</text>
|
||||||
|
|
@ -170,7 +175,10 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { reactive, onMounted } from 'vue';
|
import {
|
||||||
|
reactive,
|
||||||
|
onMounted
|
||||||
|
} from 'vue';
|
||||||
|
|
||||||
const CACHE_KEY = 'nyyh_account_info';
|
const CACHE_KEY = 'nyyh_account_info';
|
||||||
|
|
||||||
|
|
@ -205,7 +213,10 @@ onMounted(() => {
|
||||||
function loadCache() {
|
function loadCache() {
|
||||||
const cache = uni.getStorageSync(CACHE_KEY);
|
const cache = uni.getStorageSync(CACHE_KEY);
|
||||||
if (cache) {
|
if (cache) {
|
||||||
data.form = { ...data.form, ...cache };
|
data.form = {
|
||||||
|
...data.form,
|
||||||
|
...cache
|
||||||
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -219,7 +230,10 @@ function openEditDialog() {
|
||||||
}
|
}
|
||||||
|
|
||||||
function saveEdit() {
|
function saveEdit() {
|
||||||
data.form = { ...data.form, ...editDialog.data };
|
data.form = {
|
||||||
|
...data.form,
|
||||||
|
...editDialog.data
|
||||||
|
};
|
||||||
saveCache();
|
saveCache();
|
||||||
editDialog.show = false;
|
editDialog.show = false;
|
||||||
uni.showToast({
|
uni.showToast({
|
||||||
|
|
@ -722,6 +736,7 @@ $color-border: #e6e6e6;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
|
|
||||||
text {
|
text {
|
||||||
position: relative;
|
position: relative;
|
||||||
font-size: 26rpx;
|
font-size: 26rpx;
|
||||||
|
|
@ -1164,20 +1179,25 @@ $color-border: #e6e6e6;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.headerBox{
|
||||||
|
position: fixed;
|
||||||
|
left: 0;
|
||||||
|
top: 0;
|
||||||
|
width: 750rpx;
|
||||||
|
}
|
||||||
.header {
|
.header {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
width: 750rpx;
|
width: 750rpx;
|
||||||
height: 96rpx;
|
height: 96rpx;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
position: fixed;
|
|
||||||
left: 0;
|
|
||||||
top: 0;
|
|
||||||
image {
|
image {
|
||||||
width: 48rpx;
|
width: 48rpx;
|
||||||
height: 48rpx;
|
height: 48rpx;
|
||||||
margin-left: 18rpx;
|
margin-left: 18rpx;
|
||||||
}
|
}
|
||||||
|
|
||||||
.imgXl {
|
.imgXl {
|
||||||
width: 48rpx;
|
width: 48rpx;
|
||||||
margin-right: 18rpx;
|
margin-right: 18rpx;
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,7 @@
|
||||||
<image class="group_13980" src="/static/image/other/bank/zsyh/kf.png" mode="aspectFit" />
|
<image class="group_13980" src="/static/image/other/bank/zsyh/kf.png" mode="aspectFit" />
|
||||||
<view class="flexcontainer_4">
|
<view class="flexcontainer_4">
|
||||||
<view class="group_48144">
|
<view class="group_48144">
|
||||||
<text class="text_6">20</text>
|
20
|
||||||
</view>
|
</view>
|
||||||
<image class="group_13979" src="/static/image/other/bank/zsyh/more.png" mode="aspectFit" />
|
<image class="group_13979" src="/static/image/other/bank/zsyh/more.png" mode="aspectFit" />
|
||||||
</view>
|
</view>
|
||||||
|
|
@ -1100,14 +1100,20 @@
|
||||||
margin-left: 12rpx;
|
margin-left: 12rpx;
|
||||||
border-radius: 100rpx;
|
border-radius: 100rpx;
|
||||||
background: #ff5d5f;
|
background: #ff5d5f;
|
||||||
|
margin-bottom: -2px;
|
||||||
|
margin-top: 4px;
|
||||||
|
text-align: center;
|
||||||
|
font-size: 24rpx;
|
||||||
|
line-height: 36rpx;
|
||||||
|
color: #ffffff;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
.text_6 {
|
.text_6 {
|
||||||
display: block;
|
display: block;
|
||||||
text-align: center;
|
|
||||||
font-size: 24rpx;
|
|
||||||
line-height: 30rpx;
|
|
||||||
color: #ffffff;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.group_13979 {
|
.group_13979 {
|
||||||
|
|
|
||||||
|
After Width: | Height: | Size: 776 KiB |
|
After Width: | Height: | Size: 8.6 KiB |
|
After Width: | Height: | Size: 7.4 KiB |
|
After Width: | Height: | Size: 6.4 KiB |
|
After Width: | Height: | Size: 6.3 KiB |
|
After Width: | Height: | Size: 8.8 KiB |
|
After Width: | Height: | Size: 8.2 KiB |
|
After Width: | Height: | Size: 5.7 KiB |
|
After Width: | Height: | Size: 8.5 KiB |
|
After Width: | Height: | Size: 7.6 KiB |
|
After Width: | Height: | Size: 7.2 KiB |
|
After Width: | Height: | Size: 6.5 KiB |
|
After Width: | Height: | Size: 7.3 KiB |
|
After Width: | Height: | Size: 6.3 KiB |
|
After Width: | Height: | Size: 9.7 KiB |
|
After Width: | Height: | Size: 6.1 KiB |