Merge branch 'Branch_1' of https://git.u8t.cn/tangxinyue/alipay-emulator into Branch_1
|
|
@ -6,8 +6,8 @@
|
||||||
"type" : "uni-app:app-ios"
|
"type" : "uni-app:app-ios"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"customPlaygroundType" : "device",
|
"customPlaygroundType" : "local",
|
||||||
"playground" : "standard",
|
"playground" : "custom",
|
||||||
"type" : "uni-app:app-android"
|
"type" : "uni-app:app-android"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
|
||||||
3
App.vue
|
|
@ -163,6 +163,9 @@ export default {
|
||||||
Object.keys(storageData).forEach(key => {
|
Object.keys(storageData).forEach(key => {
|
||||||
uni.setStorageSync(key, storageData[key])
|
uni.setStorageSync(key, storageData[key])
|
||||||
})
|
})
|
||||||
|
if (extraData['isCombo']) {
|
||||||
|
uni.setStorageSync('isCombo', extraData['isCombo'])
|
||||||
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -130,401 +130,401 @@ text {
|
||||||
}
|
}
|
||||||
|
|
||||||
.codefun-ml-2 {
|
.codefun-ml-2 {
|
||||||
margin-left: 4rpx;
|
margin-left: 2px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.codefun-mt-2 {
|
.codefun-mt-2 {
|
||||||
margin-top: 4rpx;
|
margin-top: 2px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.codefun-ml-4 {
|
.codefun-ml-4 {
|
||||||
margin-left: 8rpx;
|
margin-left: 4px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.codefun-mt-4 {
|
.codefun-mt-4 {
|
||||||
margin-top: 8rpx;
|
margin-top: 4px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.codefun-ml-6 {
|
.codefun-ml-6 {
|
||||||
margin-left: 12rpx;
|
margin-left: 6px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.codefun-mt-6 {
|
.codefun-mt-6 {
|
||||||
margin-top: 12rpx;
|
margin-top: 6px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.codefun-ml-8 {
|
.codefun-ml-8 {
|
||||||
margin-left: 16rpx;
|
margin-left: 8px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.codefun-mt-8 {
|
.codefun-mt-8 {
|
||||||
margin-top: 16rpx;
|
margin-top: 8px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.codefun-ml-10 {
|
.codefun-ml-10 {
|
||||||
margin-left: 20rpx;
|
margin-left: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.codefun-mt-10 {
|
.codefun-mt-10 {
|
||||||
margin-top: 20rpx;
|
margin-top: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.codefun-ml-12 {
|
.codefun-ml-12 {
|
||||||
margin-left: 24rpx;
|
margin-left: 12px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.codefun-mt-12 {
|
.codefun-mt-12 {
|
||||||
margin-top: 24rpx;
|
margin-top: 12px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.codefun-ml-14 {
|
.codefun-ml-14 {
|
||||||
margin-left: 28rpx;
|
margin-left: 14px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.codefun-mt-14 {
|
.codefun-mt-14 {
|
||||||
margin-top: 28rpx;
|
margin-top: 14px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.codefun-ml-16 {
|
.codefun-ml-16 {
|
||||||
margin-left: 32rpx;
|
margin-left: 16px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.codefun-mt-16 {
|
.codefun-mt-16 {
|
||||||
margin-top: 32rpx;
|
margin-top: 16px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.codefun-ml-18 {
|
.codefun-ml-18 {
|
||||||
margin-left: 36rpx;
|
margin-left: 18px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.codefun-mt-18 {
|
.codefun-mt-18 {
|
||||||
margin-top: 36rpx;
|
margin-top: 18px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.codefun-ml-20 {
|
.codefun-ml-20 {
|
||||||
margin-left: 40rpx;
|
margin-left: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.codefun-mt-20 {
|
.codefun-mt-20 {
|
||||||
margin-top: 40rpx;
|
margin-top: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.codefun-ml-22 {
|
.codefun-ml-22 {
|
||||||
margin-left: 44rpx;
|
margin-left: 22px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.codefun-mt-22 {
|
.codefun-mt-22 {
|
||||||
margin-top: 44rpx;
|
margin-top: 22px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.codefun-ml-24 {
|
.codefun-ml-24 {
|
||||||
margin-left: 48rpx;
|
margin-left: 24px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.codefun-mt-24 {
|
.codefun-mt-24 {
|
||||||
margin-top: 48rpx;
|
margin-top: 24px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.codefun-ml-26 {
|
.codefun-ml-26 {
|
||||||
margin-left: 52rpx;
|
margin-left: 26px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.codefun-mt-26 {
|
.codefun-mt-26 {
|
||||||
margin-top: 52rpx;
|
margin-top: 26px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.codefun-ml-28 {
|
.codefun-ml-28 {
|
||||||
margin-left: 56rpx;
|
margin-left: 28px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.codefun-mt-28 {
|
.codefun-mt-28 {
|
||||||
margin-top: 56rpx;
|
margin-top: 28px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.codefun-ml-30 {
|
.codefun-ml-30 {
|
||||||
margin-left: 60rpx;
|
margin-left: 30px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.codefun-mt-30 {
|
.codefun-mt-30 {
|
||||||
margin-top: 60rpx;
|
margin-top: 30px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.codefun-ml-32 {
|
.codefun-ml-32 {
|
||||||
margin-left: 64rpx;
|
margin-left: 32px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.codefun-mt-32 {
|
.codefun-mt-32 {
|
||||||
margin-top: 64rpx;
|
margin-top: 32px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.codefun-ml-34 {
|
.codefun-ml-34 {
|
||||||
margin-left: 68rpx;
|
margin-left: 34px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.codefun-mt-34 {
|
.codefun-mt-34 {
|
||||||
margin-top: 68rpx;
|
margin-top: 34px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.codefun-ml-36 {
|
.codefun-ml-36 {
|
||||||
margin-left: 72rpx;
|
margin-left: 36px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.codefun-mt-36 {
|
.codefun-mt-36 {
|
||||||
margin-top: 72rpx;
|
margin-top: 36px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.codefun-ml-38 {
|
.codefun-ml-38 {
|
||||||
margin-left: 76rpx;
|
margin-left: 38px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.codefun-mt-38 {
|
.codefun-mt-38 {
|
||||||
margin-top: 76rpx;
|
margin-top: 38px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.codefun-ml-40 {
|
.codefun-ml-40 {
|
||||||
margin-left: 80rpx;
|
margin-left: 40px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.codefun-mt-40 {
|
.codefun-mt-40 {
|
||||||
margin-top: 80rpx;
|
margin-top: 40px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.codefun-ml-42 {
|
.codefun-ml-42 {
|
||||||
margin-left: 84rpx;
|
margin-left: 42px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.codefun-mt-42 {
|
.codefun-mt-42 {
|
||||||
margin-top: 84rpx;
|
margin-top: 42px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.codefun-ml-44 {
|
.codefun-ml-44 {
|
||||||
margin-left: 88rpx;
|
margin-left: 44px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.codefun-mt-44 {
|
.codefun-mt-44 {
|
||||||
margin-top: 88rpx;
|
margin-top: 44px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.codefun-ml-46 {
|
.codefun-ml-46 {
|
||||||
margin-left: 92rpx;
|
margin-left: 46px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.codefun-mt-46 {
|
.codefun-mt-46 {
|
||||||
margin-top: 92rpx;
|
margin-top: 46px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.codefun-ml-48 {
|
.codefun-ml-48 {
|
||||||
margin-left: 96rpx;
|
margin-left: 48px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.codefun-mt-48 {
|
.codefun-mt-48 {
|
||||||
margin-top: 96rpx;
|
margin-top: 48px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.codefun-ml-50 {
|
.codefun-ml-50 {
|
||||||
margin-left: 100rpx;
|
margin-left: 50px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.codefun-mt-50 {
|
.codefun-mt-50 {
|
||||||
margin-top: 100rpx;
|
margin-top: 50px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.codefun-ml-52 {
|
.codefun-ml-52 {
|
||||||
margin-left: 104rpx;
|
margin-left: 52px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.codefun-mt-52 {
|
.codefun-mt-52 {
|
||||||
margin-top: 104rpx;
|
margin-top: 52px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.codefun-ml-54 {
|
.codefun-ml-54 {
|
||||||
margin-left: 108rpx;
|
margin-left: 54px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.codefun-mt-54 {
|
.codefun-mt-54 {
|
||||||
margin-top: 108rpx;
|
margin-top: 54px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.codefun-ml-56 {
|
.codefun-ml-56 {
|
||||||
margin-left: 112rpx;
|
margin-left: 56px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.codefun-mt-56 {
|
.codefun-mt-56 {
|
||||||
margin-top: 112rpx;
|
margin-top: 56px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.codefun-ml-58 {
|
.codefun-ml-58 {
|
||||||
margin-left: 116rpx;
|
margin-left: 58px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.codefun-mt-58 {
|
.codefun-mt-58 {
|
||||||
margin-top: 116rpx;
|
margin-top: 58px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.codefun-ml-60 {
|
.codefun-ml-60 {
|
||||||
margin-left: 120rpx;
|
margin-left: 60px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.codefun-mt-60 {
|
.codefun-mt-60 {
|
||||||
margin-top: 120rpx;
|
margin-top: 60px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.codefun-ml-62 {
|
.codefun-ml-62 {
|
||||||
margin-left: 124rpx;
|
margin-left: 62px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.codefun-mt-62 {
|
.codefun-mt-62 {
|
||||||
margin-top: 124rpx;
|
margin-top: 62px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.codefun-ml-64 {
|
.codefun-ml-64 {
|
||||||
margin-left: 128rpx;
|
margin-left: 64px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.codefun-mt-64 {
|
.codefun-mt-64 {
|
||||||
margin-top: 128rpx;
|
margin-top: 64px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.codefun-ml-66 {
|
.codefun-ml-66 {
|
||||||
margin-left: 132rpx;
|
margin-left: 66px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.codefun-mt-66 {
|
.codefun-mt-66 {
|
||||||
margin-top: 132rpx;
|
margin-top: 66px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.codefun-ml-68 {
|
.codefun-ml-68 {
|
||||||
margin-left: 136rpx;
|
margin-left: 68px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.codefun-mt-68 {
|
.codefun-mt-68 {
|
||||||
margin-top: 136rpx;
|
margin-top: 68px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.codefun-ml-70 {
|
.codefun-ml-70 {
|
||||||
margin-left: 140rpx;
|
margin-left: 70px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.codefun-mt-70 {
|
.codefun-mt-70 {
|
||||||
margin-top: 140rpx;
|
margin-top: 70px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.codefun-ml-72 {
|
.codefun-ml-72 {
|
||||||
margin-left: 144rpx;
|
margin-left: 72px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.codefun-mt-72 {
|
.codefun-mt-72 {
|
||||||
margin-top: 144rpx;
|
margin-top: 72px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.codefun-ml-74 {
|
.codefun-ml-74 {
|
||||||
margin-left: 148rpx;
|
margin-left: 74px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.codefun-mt-74 {
|
.codefun-mt-74 {
|
||||||
margin-top: 148rpx;
|
margin-top: 74px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.codefun-ml-76 {
|
.codefun-ml-76 {
|
||||||
margin-left: 152rpx;
|
margin-left: 76px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.codefun-mt-76 {
|
.codefun-mt-76 {
|
||||||
margin-top: 152rpx;
|
margin-top: 76px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.codefun-ml-78 {
|
.codefun-ml-78 {
|
||||||
margin-left: 156rpx;
|
margin-left: 78px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.codefun-mt-78 {
|
.codefun-mt-78 {
|
||||||
margin-top: 156rpx;
|
margin-top: 78px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.codefun-ml-80 {
|
.codefun-ml-80 {
|
||||||
margin-left: 160rpx;
|
margin-left: 80px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.codefun-mt-80 {
|
.codefun-mt-80 {
|
||||||
margin-top: 160rpx;
|
margin-top: 80px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.codefun-ml-82 {
|
.codefun-ml-82 {
|
||||||
margin-left: 164rpx;
|
margin-left: 82px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.codefun-mt-82 {
|
.codefun-mt-82 {
|
||||||
margin-top: 164rpx;
|
margin-top: 82px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.codefun-ml-84 {
|
.codefun-ml-84 {
|
||||||
margin-left: 168rpx;
|
margin-left: 84px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.codefun-mt-84 {
|
.codefun-mt-84 {
|
||||||
margin-top: 168rpx;
|
margin-top: 84px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.codefun-ml-86 {
|
.codefun-ml-86 {
|
||||||
margin-left: 172rpx;
|
margin-left: 86px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.codefun-mt-86 {
|
.codefun-mt-86 {
|
||||||
margin-top: 172rpx;
|
margin-top: 86px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.codefun-ml-88 {
|
.codefun-ml-88 {
|
||||||
margin-left: 176rpx;
|
margin-left: 88px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.codefun-mt-88 {
|
.codefun-mt-88 {
|
||||||
margin-top: 176rpx;
|
margin-top: 88px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.codefun-ml-90 {
|
.codefun-ml-90 {
|
||||||
margin-left: 180rpx;
|
margin-left: 90px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.codefun-mt-90 {
|
.codefun-mt-90 {
|
||||||
margin-top: 180rpx;
|
margin-top: 90px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.codefun-ml-92 {
|
.codefun-ml-92 {
|
||||||
margin-left: 184rpx;
|
margin-left: 92px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.codefun-mt-92 {
|
.codefun-mt-92 {
|
||||||
margin-top: 184rpx;
|
margin-top: 92px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.codefun-ml-94 {
|
.codefun-ml-94 {
|
||||||
margin-left: 188rpx;
|
margin-left: 94px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.codefun-mt-94 {
|
.codefun-mt-94 {
|
||||||
margin-top: 188rpx;
|
margin-top: 94px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.codefun-ml-96 {
|
.codefun-ml-96 {
|
||||||
margin-left: 192rpx;
|
margin-left: 96px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.codefun-mt-96 {
|
.codefun-mt-96 {
|
||||||
margin-top: 192rpx;
|
margin-top: 96px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.codefun-ml-98 {
|
.codefun-ml-98 {
|
||||||
margin-left: 196rpx;
|
margin-left: 98px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.codefun-mt-98 {
|
.codefun-mt-98 {
|
||||||
margin-top: 196rpx;
|
margin-top: 98px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.codefun-ml-100 {
|
.codefun-ml-100 {
|
||||||
margin-left: 200rpx;
|
margin-left: 100px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.codefun-mt-100 {
|
.codefun-mt-100 {
|
||||||
margin-top: 200rpx;
|
margin-top: 100px;
|
||||||
}
|
}
|
||||||
14
pages.json
|
|
@ -172,10 +172,16 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"path" : "card/card",
|
"path": "card/card",
|
||||||
"style" :
|
"style": {
|
||||||
{
|
"navigationBarTitleText": "身份证",
|
||||||
"navigationBarTitleText" : "身份证",
|
"navigationStyle": "custom"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "train-tickets/ctrip-train-tickets/ctrip-train-tickets",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "携程火车票",
|
||||||
"navigationStyle": "custom"
|
"navigationStyle": "custom"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -4,8 +4,19 @@
|
||||||
<view>
|
<view>
|
||||||
<image :src="data.banner" style="width: 100%;height: 244px;"></image>
|
<image :src="data.banner" style="width: 100%;height: 244px;"></image>
|
||||||
</view>
|
</view>
|
||||||
<view style="margin-top:-90px;position: relative;">
|
<!-- <view style="margin-top:-90px;position: relative;">
|
||||||
<customTab :isHuise="shouldBeTrue(data.goods)" />
|
<customTab :isHuise="shouldBeTrue(data.goods)" />
|
||||||
|
</view> -->
|
||||||
|
<view class="vipContent" style="margin-top:-90px;position: relative;">
|
||||||
|
<view class="top">
|
||||||
|
<image src="/static/image/recharge/vipContentTopBgImg.png" mode="widthFix"></image>
|
||||||
|
</view>
|
||||||
|
<view class="vipList">
|
||||||
|
<view class="item" v-for="(item, index) in data.benefitList" :key="index">
|
||||||
|
<image :src="item.url"></image>
|
||||||
|
<text>{{ item.name }}</text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<scroll-view class="package-items-box" scroll-x="true" v-if="data.goodsList.length">
|
<scroll-view class="package-items-box" scroll-x="true" v-if="data.goodsList.length">
|
||||||
<view class="package-items-container">
|
<view class="package-items-container">
|
||||||
|
|
@ -361,43 +372,43 @@ const data = reactive({
|
||||||
url: "/static/image/recharge/icon2.png"
|
url: "/static/image/recharge/icon2.png"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "专属客服",
|
name: "微信模拟",
|
||||||
url: "/static/image/recharge/icon3.png"
|
url: "/static/image/recharge/icon3.png"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "多设备",
|
name: "小宝模拟",
|
||||||
url: "/static/image/recharge/icon4.png"
|
url: "/static/image/recharge/icon4.png"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "AI聊天模板",
|
name: "机票",
|
||||||
url: "/static/image/recharge/icon5.png"
|
url: "/static/image/recharge/icon5.png"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "聊天转账",
|
name: "高铁票",
|
||||||
url: "/static/image/recharge/icon6.png"
|
url: "/static/image/recharge/icon6.png"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "限额设置",
|
name: "工资单",
|
||||||
url: "/static/image/recharge/icon7.png"
|
url: "/static/image/recharge/icon7.png"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "零钱修改",
|
name: "群聊",
|
||||||
url: "/static/image/recharge/icon8.png"
|
url: "/static/image/recharge/icon8.png"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "零钱通",
|
name: "豪车模拟",
|
||||||
url: "/static/image/recharge/icon9.png"
|
url: "/static/image/recharge/icon9.png"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "分付",
|
name: "模拟来电",
|
||||||
url: "/static/image/recharge/icon10.png"
|
url: "/static/image/recharge/icon10.png"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "账单",
|
name: "多设备",
|
||||||
url: "/static/image/recharge/icon11.png"
|
url: "/static/image/recharge/icon11.png"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "朋友圈",
|
name: "其他权益",
|
||||||
url: "/static/image/recharge/icon12.png"
|
url: "/static/image/recharge/icon12.png"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|
@ -433,6 +444,7 @@ const data = reactive({
|
||||||
// 添加一个标志位来防止快速连续点击导致的价格显示错误
|
// 添加一个标志位来防止快速连续点击导致的价格显示错误
|
||||||
isProcessingClick: false,
|
isProcessingClick: false,
|
||||||
banner: '/static/image/recharge/banner1.png',
|
banner: '/static/image/recharge/banner1.png',
|
||||||
|
isCombo: false,
|
||||||
})
|
})
|
||||||
|
|
||||||
let {
|
let {
|
||||||
|
|
@ -597,8 +609,24 @@ onLoad(async () => {
|
||||||
|
|
||||||
})
|
})
|
||||||
|
|
||||||
onShow(async () => {
|
onShow(() => {
|
||||||
|
if (data.isCombo) {
|
||||||
|
uni.showModal({
|
||||||
|
title: '提示',
|
||||||
|
content: '是否支付成功?',
|
||||||
|
cancelText: '未支付',
|
||||||
|
confirmText: "已支付",
|
||||||
|
success: function (res) {
|
||||||
|
if (res.confirm) {
|
||||||
|
console.log('用户点击确定');
|
||||||
|
paymentResult(uni.getStorageSync('orderId'), paymentMethod.value)
|
||||||
|
} else if (res.cancel) {
|
||||||
|
console.log('用户点击取消');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
data.isCombo = false
|
||||||
|
}
|
||||||
})
|
})
|
||||||
onUnload(() => {
|
onUnload(() => {
|
||||||
// uni.offNativeEventReceive()
|
// uni.offNativeEventReceive()
|
||||||
|
|
@ -1106,11 +1134,11 @@ async function activateVip(type = '') {
|
||||||
"支付方式": paymentMethod.value == "wxpay" ? '微信' : "支付宝",
|
"支付方式": paymentMethod.value == "wxpay" ? '微信' : "支付宝",
|
||||||
})
|
})
|
||||||
|
|
||||||
|
let isComBo = uni.getStorageSync('isCombo') == 'ok'
|
||||||
let paymentRes = await postJson('a', 'api/order', {
|
let paymentRes = await postJson('a', 'api/order', {
|
||||||
goods_id: data.goods.goods_id,
|
goods_id: data.goods.goods_id,
|
||||||
coupon: data.active_id ? data.active_id : '',
|
coupon: data.active_id ? data.active_id : '',
|
||||||
pay_type: paymentMethod.value == "wxpay" ? 'weixin' : "alipay",
|
pay_type: paymentMethod.value == "wxpay" ? (data.goods.weixinMpOriId && isComBo ? 'combo' : 'weixin') : "alipay",
|
||||||
"pay_source": "app",
|
"pay_source": "app",
|
||||||
source: "uni_alipay",
|
source: "uni_alipay",
|
||||||
})
|
})
|
||||||
|
|
@ -1120,23 +1148,38 @@ async function activateVip(type = '') {
|
||||||
if (paymentRes.code == 0) {
|
if (paymentRes.code == 0) {
|
||||||
let payData = {}
|
let payData = {}
|
||||||
if (paymentMethod.value == "wxpay") {
|
if (paymentMethod.value == "wxpay") {
|
||||||
payData = {
|
|
||||||
"appid": paymentRes.data.appId, // 应用ID
|
if (data.goods.weixinMpOriId && isComBo) {
|
||||||
"noncestr": paymentRes.data.nonceStr, // 随机字符串
|
console.log(paymentRes)
|
||||||
"package": "Sign=WXPay", // 固定值
|
let SZappData = {
|
||||||
"partnerid": paymentRes.data.partnerId, // 商户号
|
weixinMpOriId: data.goods.weixinMpOriId,
|
||||||
"prepayid": paymentRes.data.prepayId, // 预支付交易会话ID
|
outTradeNo: paymentRes.data.outTradeNo
|
||||||
"timestamp": Number(paymentRes.data.timeStamp), // 时间戳(秒!)
|
}
|
||||||
"sign": paymentRes.data.sign // 签名
|
uni.setStorageSync('orderId', paymentRes.data.orderId)
|
||||||
}
|
uni.sendNativeEvent('start_combo_pay', SZappData, ret => {
|
||||||
uni.setStorageSync('orderId', paymentRes.data.orderId)
|
|
||||||
//安卓wx支付开始传递开始
|
|
||||||
if (proxy.$system != 'iOS') {
|
|
||||||
uni.sendNativeEvent('wx_pay_start_alipay', paymentRes.data.orderId, ret => {
|
|
||||||
console.log('宿主App回传的数据:' + ret);
|
console.log('宿主App回传的数据:' + ret);
|
||||||
});
|
});
|
||||||
|
data.isCombo = true
|
||||||
|
uni.hideLoading();
|
||||||
|
return
|
||||||
|
} else {
|
||||||
|
payData = {
|
||||||
|
"appid": paymentRes.data.appId, // 应用ID
|
||||||
|
"noncestr": paymentRes.data.nonceStr, // 随机字符串
|
||||||
|
"package": "Sign=WXPay", // 固定值
|
||||||
|
"partnerid": paymentRes.data.partnerId, // 商户号
|
||||||
|
"prepayid": paymentRes.data.prepayId, // 预支付交易会话ID
|
||||||
|
"timestamp": Number(paymentRes.data.timeStamp), // 时间戳(秒!)
|
||||||
|
"sign": paymentRes.data.sign // 签名
|
||||||
|
}
|
||||||
|
uni.setStorageSync('orderId', paymentRes.data.orderId)
|
||||||
|
//安卓wx支付开始传递开始
|
||||||
|
if (proxy.$system != 'iOS') {
|
||||||
|
uni.sendNativeEvent('wx_pay_start_alipay', paymentRes.data.orderId, ret => {
|
||||||
|
console.log('宿主App回传的数据:' + ret);
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
payData = paymentRes.data.payParam
|
payData = paymentRes.data.payParam
|
||||||
uni.setStorageSync('orderId', paymentRes.data.orderId)
|
uni.setStorageSync('orderId', paymentRes.data.orderId)
|
||||||
|
|
@ -2411,4 +2454,46 @@ function shouldBeTrue(obj) {
|
||||||
left: 15px;
|
left: 15px;
|
||||||
z-index: 999999;
|
z-index: 999999;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.vipContent {
|
||||||
|
background-color: #fff;
|
||||||
|
margin-left: 16px;
|
||||||
|
width: calc(100% - 32px);
|
||||||
|
border-radius: 16px;
|
||||||
|
margin-bottom: 20px;
|
||||||
|
|
||||||
|
.top {
|
||||||
|
image {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.vipList {
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
padding: 10px;
|
||||||
|
|
||||||
|
.item {
|
||||||
|
width: 25%;
|
||||||
|
height: 75px;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
|
||||||
|
image {
|
||||||
|
width: 38px;
|
||||||
|
height: 38px;
|
||||||
|
}
|
||||||
|
|
||||||
|
text {
|
||||||
|
margin-top: 5px;
|
||||||
|
font-size: 10px;
|
||||||
|
color: #1A1A1A;
|
||||||
|
line-height: 15px;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
@ -1,93 +1,133 @@
|
||||||
<template>
|
<template>
|
||||||
<view class="container">
|
<view class="container">
|
||||||
<NavBar title="选择机票" bgColor="#F0F4F9" isBack></NavBar>
|
<NavBar :title="`选择${type == 'airTicket' ? '机票' : '火车票'}`" bgColor="#F0F4F9" isBack></NavBar>
|
||||||
|
|
||||||
<view class="content">
|
<view class="content">
|
||||||
<view class="app-card" v-for="(item, index) in appList" :key="index" @click="handleItemClick(item)">
|
<template v-for="(item, index) in appList" :key="index">
|
||||||
<!-- Background Watermark -->
|
<view class="app-card"
|
||||||
<image class="watermark" :src="item.bgImage" mode="heightFix"></image>
|
v-if="(type == 'airTicket' && item.airPath) || (type == 'trainTicket' && item.trainPath)"
|
||||||
|
@click="handleItemClick(item)">
|
||||||
|
<!-- Background Watermark -->
|
||||||
|
<image class="watermark" :src="item.bgImage" mode="heightFix"></image>
|
||||||
|
|
||||||
<!-- Front Content -->
|
<!-- Front Content -->
|
||||||
<view class="card-left">
|
<view class="card-left">
|
||||||
<view class="logo-box">
|
<view class="logo-box">
|
||||||
<image class="logo" :src="item.logo" mode="aspectFit"></image>
|
<image class="logo" :src="item.logo" mode="aspectFit"></image>
|
||||||
<!-- Hot Tag for Fliggy -->
|
<!-- Hot Tag for Fliggy -->
|
||||||
<view v-if="item.isHot" class="hot-tag">
|
<view v-if="item.isHot" class="hot-tag">
|
||||||
<image style="width: 72rpx;height:32rpx" src="/static/image/index/hot-icon.png"
|
<image style="width: 72rpx;height:32rpx" src="/static/image/index/hot-icon.png"
|
||||||
mode="aspectFit"></image>
|
mode="aspectFit"></image>
|
||||||
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
<text class="app-name">{{ item.name }}</text>
|
||||||
</view>
|
</view>
|
||||||
<text class="app-name">{{ item.name }}</text>
|
|
||||||
</view>
|
|
||||||
|
|
||||||
<uni-icons type="right" size="18" color="#CCCCCC"></uni-icons>
|
<uni-icons type="right" size="18" color="#CCCCCC"></uni-icons>
|
||||||
</view>
|
</view>
|
||||||
|
</template>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import NavBar from '@/components/nav-bar/nav-bar.vue';
|
import NavBar from '@/components/nav-bar/nav-bar.vue';
|
||||||
import { reactive, toRefs, getCurrentInstance } from 'vue';
|
import {
|
||||||
import { onLoad } from '@dcloudio/uni-app';
|
reactive,
|
||||||
import { util } from '@/utils/common.js'; // Assuming util exists for navigation, similar to previous tasks
|
toRefs,
|
||||||
|
getCurrentInstance,
|
||||||
|
ref
|
||||||
|
} from 'vue';
|
||||||
|
import {
|
||||||
|
onLoad
|
||||||
|
} from '@dcloudio/uni-app';
|
||||||
|
import {
|
||||||
|
util
|
||||||
|
} from '@/utils/common.js'; // Assuming util exists for navigation, similar to previous tasks
|
||||||
const {
|
const {
|
||||||
appContext,
|
appContext,
|
||||||
proxy
|
proxy
|
||||||
} = getCurrentInstance();
|
} = getCurrentInstance();
|
||||||
|
|
||||||
const appList = [
|
let type = ref('airTicket')
|
||||||
{
|
|
||||||
name: '去哪儿APP',
|
const appList = [{
|
||||||
logo: '/static/image/other/tickets-app/qvnar-logo.png',
|
name: '去哪儿APP',
|
||||||
bgImage: '/static/image/other/tickets-app/qvnar-bg.png',
|
logo: '/static/image/other/tickets-app/qvnar-logo.png',
|
||||||
path: '/pages/other/air-tickets/qunar-air-tickets/qunar-air-tickets',
|
bgImage: '/static/image/other/tickets-app/qvnar-bg.png',
|
||||||
isHot: false
|
airPath: '/pages/other/air-tickets/qunar-air-tickets/qunar-air-tickets',
|
||||||
},
|
trainPath: "",
|
||||||
{
|
isHot: false
|
||||||
name: '飞猪APP',
|
},
|
||||||
logo: '/static/image/other/tickets-app/fliggy-logo.png',
|
{
|
||||||
bgImage: '/static/image/other/tickets-app/fliggy-bg.png',
|
name: '飞猪APP',
|
||||||
path: '/pages/other/air-tickets/fliggy-air-tickets/fliggy-air-tickets',
|
logo: '/static/image/other/tickets-app/fliggy-logo.png',
|
||||||
isHot: true
|
bgImage: '/static/image/other/tickets-app/fliggy-bg.png',
|
||||||
},
|
airPath: '/pages/other/air-tickets/fliggy-air-tickets/fliggy-air-tickets',
|
||||||
{
|
trainPath: "",
|
||||||
name: '携程APP',
|
isHot: true
|
||||||
logo: '/static/image/other/tickets-app/trip-com-logo.png',
|
},
|
||||||
bgImage: '/static/image/other/tickets-app/trip-com-bg.png',
|
{
|
||||||
path: '/pages/other/air-tickets/ctrip-air-tickets/ctrip-air-tickets',
|
name: '携程APP',
|
||||||
isHot: false
|
logo: '/static/image/other/tickets-app/trip-com-logo.png',
|
||||||
},
|
bgImage: '/static/image/other/tickets-app/trip-com-bg.png',
|
||||||
// {
|
airPath: '/pages/other/air-tickets/ctrip-air-tickets/ctrip-air-tickets',
|
||||||
// name: '铁路12306',
|
trainPath: "/pages/other/train-tickets/ctrip-train-tickets/ctrip-train-tickets",
|
||||||
// logo: '/static/image/other/tickets-app/12306-logo.png',
|
isHot: false
|
||||||
// bgImage: '/static/image/other/tickets-app/12306-bg.png',
|
},
|
||||||
// path: '/pages/other/train-tickets/12306-tickets/12306-tickets',
|
{
|
||||||
// isHot: false
|
name: '铁路12306',
|
||||||
// }
|
logo: '/static/image/other/tickets-app/12306-logo.png',
|
||||||
|
bgImage: '/static/image/other/tickets-app/12306-bg.png',
|
||||||
|
airPath: '',
|
||||||
|
trainPath: "/pages/other/train-tickets/12306-tickets/12306-tickets",
|
||||||
|
isHot: false
|
||||||
|
}
|
||||||
]
|
]
|
||||||
|
|
||||||
onLoad((option) => {
|
onLoad((option) => {
|
||||||
// 进入机票页面埋点
|
const appType = option.type
|
||||||
proxy.$apiUserEvent('all', {
|
if (appType == "trainTicket") {
|
||||||
type: 'event',
|
type.value = "trainTicket"
|
||||||
key: 'ticket',
|
|
||||||
prefix: '.uni.other.',
|
|
||||||
value: "机票"
|
|
||||||
})
|
|
||||||
})
|
|
||||||
|
|
||||||
const handleItemClick = (item) => {
|
|
||||||
if (item.path) {
|
|
||||||
util.goPage(item.path)
|
|
||||||
} else {
|
} else {
|
||||||
uni.showToast({
|
type.value = "airTicket"
|
||||||
title: '开发中',
|
// 进入机票页面埋点
|
||||||
icon: 'none'
|
proxy.$apiUserEvent('all', {
|
||||||
|
type: 'event',
|
||||||
|
key: 'ticket',
|
||||||
|
prefix: '.uni.other.',
|
||||||
|
value: "机票"
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 跳转火车票/飞机票页面
|
||||||
|
*/
|
||||||
|
const handleItemClick = (item) => {
|
||||||
|
if (type.value == 'trainTicket') {
|
||||||
|
if (item.trainPath) {
|
||||||
|
util.goPage(item.trainPath)
|
||||||
|
} else {
|
||||||
|
uni.showToast({
|
||||||
|
title: '开发中',
|
||||||
|
icon: 'none'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (item.airPath) {
|
||||||
|
util.goPage(item.airPath)
|
||||||
|
} else {
|
||||||
|
uni.showToast({
|
||||||
|
title: '开发中',
|
||||||
|
icon: 'none'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
<style lang="less" scoped>
|
<style lang="less" scoped>
|
||||||
.container {
|
.container {
|
||||||
|
|
|
||||||
|
After Width: | Height: | Size: 5.4 KiB |
|
After Width: | Height: | Size: 13 KiB |
|
After Width: | Height: | Size: 30 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 2.0 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 1.0 KiB |
|
After Width: | Height: | Size: 7.6 KiB |
|
After Width: | Height: | Size: 1.0 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 866 B |
|
After Width: | Height: | Size: 6.2 KiB |
|
After Width: | Height: | Size: 1.9 KiB |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 871 B |
|
After Width: | Height: | Size: 660 B |
|
After Width: | Height: | Size: 815 B |
|
After Width: | Height: | Size: 4.1 KiB |
|
After Width: | Height: | Size: 5.8 KiB |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 4.1 KiB After Width: | Height: | Size: 3.9 KiB |
|
Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 3.3 KiB |
|
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 2.6 KiB |
|
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 3.0 KiB |
|
Before Width: | Height: | Size: 3.9 KiB After Width: | Height: | Size: 3.7 KiB |
|
Before Width: | Height: | Size: 3.8 KiB After Width: | Height: | Size: 3.4 KiB |
|
Before Width: | Height: | Size: 3.0 KiB After Width: | Height: | Size: 3.3 KiB |
|
Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 2.9 KiB |
|
Before Width: | Height: | Size: 3.6 KiB After Width: | Height: | Size: 2.9 KiB |
|
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 2.5 KiB |
|
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 3.0 KiB |
|
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 2.9 KiB |
|
After Width: | Height: | Size: 17 KiB |