特效
This commit is contained in:
parent
9bddcd2b9c
commit
6fa0681905
12
App.vue
12
App.vue
|
|
@ -136,6 +136,12 @@ export default {
|
|||
@import url("./common/common.css");
|
||||
@import url("/components/gaoyia-parse/parse.css");
|
||||
|
||||
uni-tabbar {
|
||||
display: block;
|
||||
box-sizing: border-box;
|
||||
width: 100%;
|
||||
z-index: 97!important;
|
||||
}
|
||||
/* 引入字体 */
|
||||
@font-face {
|
||||
font-family: "YouSheBiaoTiHei";
|
||||
|
|
@ -227,12 +233,12 @@ button.hide {
|
|||
}
|
||||
|
||||
/* 重写组件样式 */
|
||||
/deep/.uni-noticebar {
|
||||
::v-deep.uni-noticebar {
|
||||
padding: 0 !important;
|
||||
margin: 0 !important;
|
||||
}
|
||||
|
||||
/deep/.mescroll-upwarp {
|
||||
::v-deep.mescroll-upwarp {
|
||||
box-sizing: border-box;
|
||||
min-height: 55px;
|
||||
padding: 15px 0;
|
||||
|
|
@ -240,7 +246,7 @@ button.hide {
|
|||
clear: both;
|
||||
}
|
||||
|
||||
/deep/.cmd-progress-outer {
|
||||
::v-deep.cmd-progress-outer {
|
||||
line-height: 0;
|
||||
|
||||
.cmd-progress-bg {
|
||||
|
|
|
|||
|
|
@ -41,7 +41,7 @@ const testing = {
|
|||
|
||||
|
||||
// 根据环境变量选择对应配置
|
||||
let currentEnv = testing;//production_wz;
|
||||
let currentEnv = production;//production;//testing;//production_wz;
|
||||
|
||||
// 判断当前环境
|
||||
// #ifdef H5
|
||||
|
|
|
|||
|
|
@ -176,13 +176,28 @@ class BasePlatform {
|
|||
if (res.confirm) {
|
||||
uni.removeStorageSync('token');
|
||||
uni.removeStorageSync('userinfo');
|
||||
uni.switchTab({
|
||||
url: '/pages/user/index'
|
||||
});
|
||||
// window.location.href = window.location.href;
|
||||
// uni.switchTab({
|
||||
// url: '/pages/user/index'
|
||||
// });
|
||||
window.location.href = window.location.href;
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
/**
|
||||
* 开启调试
|
||||
*/
|
||||
startDeb() {
|
||||
|
||||
}
|
||||
/**
|
||||
* 关闭调试
|
||||
*/
|
||||
closeDeb() {
|
||||
|
||||
}
|
||||
getVersion() {
|
||||
return '1.0.0';
|
||||
}
|
||||
}
|
||||
export default BasePlatform;
|
||||
|
|
@ -1,4 +1,5 @@
|
|||
import BasePlatform from './BasePlatform';
|
||||
import eruda from 'eruda';
|
||||
|
||||
|
||||
function parseQueryString(queryString) {
|
||||
|
|
@ -24,9 +25,14 @@ class H5Platform extends BasePlatform {
|
|||
super();
|
||||
this.code = 'WEB_H5';
|
||||
this.env = 'h5';
|
||||
// 简单初始化
|
||||
let erudaInstance = uni.getStorageSync("erudaInstance");
|
||||
if (erudaInstance != null && erudaInstance != "") {
|
||||
this.startDeb();
|
||||
}
|
||||
// eruda.init();
|
||||
}
|
||||
getPayData(url, data) {
|
||||
|
||||
data['quitUrl'] = escape(window.location.href);
|
||||
data['returnUrl'] = escape(window.location.href);
|
||||
console.log('处理数据', data);
|
||||
|
|
@ -37,6 +43,12 @@ class H5Platform extends BasePlatform {
|
|||
|
||||
return new Promise((resolve) => {
|
||||
console.log(data);
|
||||
// 检查是否已存在同ID的表单,如果存在则先删除
|
||||
const existingForm = document.getElementById('alipaysubmit');
|
||||
if (existingForm) {
|
||||
existingForm.parentNode.removeChild(existingForm);
|
||||
}
|
||||
|
||||
// 创建一个临时div元素
|
||||
const tempDiv = document.createElement('div');
|
||||
// 将data作为HTML插入到div中(假设data是表单的HTML字符串)
|
||||
|
|
@ -114,6 +126,10 @@ class H5Platform extends BasePlatform {
|
|||
console.log("AppLaunch", options);
|
||||
if (options.query) {
|
||||
let query = options.query;
|
||||
if(query['version'] != null){
|
||||
uni.setStorageSync('version', query['version']);
|
||||
}
|
||||
// if(){}
|
||||
if (query['method'] != null && query['method'] == "alipay.trade.wap.pay.return" && query['out_trade_no'] != null) {
|
||||
//支付宝跳转过来的
|
||||
//重定向url
|
||||
|
|
@ -128,30 +144,11 @@ class H5Platform extends BasePlatform {
|
|||
let str = Object.entries(query)
|
||||
.map(([key, value]) => `${key}=${value}`)
|
||||
.join('&')
|
||||
|
||||
|
||||
url += "?" + str;
|
||||
console.log('支付成功,重定向页面。',url);
|
||||
console.log('支付成功,重定向页面。', url);
|
||||
window.location.href = url;
|
||||
}
|
||||
|
||||
// query['']
|
||||
// {
|
||||
// "goods_id": "1081",
|
||||
// "type_text": "%E6%97%A0%E9%99%90%E8%B5%8F",
|
||||
// "order_no": "MH_ZFAH5ZFB2025050449989950960",
|
||||
// "charset": "UTF-8",
|
||||
// "out_trade_no": "MH_ZFAH5ZFB2025050449989950960",
|
||||
// "method": "alipay.trade.wap.pay.return",
|
||||
// "total_amount": "0.01",
|
||||
// "sign": "JD2PDNDh2qTi/y4wiqtsyJSc5uPy1OgO5W7NaYRdc/ctHT85yVJP9fDVpJAIXRDj/xd8oWpT9a2BSrNfqIbZ0sT0Fa8ha15unfi9RX+jYEkKAa2Grz0rkcv3YOlMni9vThCRdmNPCzh0fKLCKFRBZiuxPIFW7qgoRxFkWvziR8dUi0GccleOSUV6Z3W+HG6b+Ru3fgZSRMm+8+d0UXrH5wi7KIgJja+ZbAnVYkh+4R7BjxS1zpUPMXNzej9fAFHO6UD8RBobYi1r6D3gYpKJaChVUJXaXkRqU/6ybgUbX7FsvviCYoEGUkukiq9HCaKZ/bfrD3TvoAicC4aXo6p7Dw==",
|
||||
// "trade_no": "2025050422001402751446415564",
|
||||
// "auth_app_id": "2021005141643914",
|
||||
// "version": "1.0",
|
||||
// "app_id": "2021005141643914",
|
||||
// "sign_type": "RSA2",
|
||||
// "seller_id": "2088170936712914",
|
||||
// "timestamp": "2025-05-04 01:41:48"
|
||||
// }
|
||||
}
|
||||
}
|
||||
getOrderNo() {
|
||||
|
|
@ -160,8 +157,8 @@ class H5Platform extends BasePlatform {
|
|||
let query = parseQueryString(window.location.search);
|
||||
if (query['method'] != null && query['method'] == "alipay.trade.wap.pay.return" && query['out_trade_no'] != null) {
|
||||
//表示还在支付请求中,还未开始重定向
|
||||
console.log('window.location.search',window.location.search);
|
||||
|
||||
console.log('window.location.search', window.location.search);
|
||||
|
||||
resolve(null);
|
||||
return;
|
||||
}
|
||||
|
|
@ -179,7 +176,7 @@ class H5Platform extends BasePlatform {
|
|||
getUserMenuList() {
|
||||
// 获取基础菜单列表
|
||||
const baseMenuList = super.getUserMenuList();
|
||||
|
||||
|
||||
// H5环境下可能需要修改某些菜单项的行为
|
||||
return baseMenuList.map(item => {
|
||||
// 示例:在H5环境下可能需要特殊处理某些菜单项
|
||||
|
|
@ -196,5 +193,27 @@ class H5Platform extends BasePlatform {
|
|||
return item;
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 开启调试
|
||||
*/
|
||||
startDeb() {
|
||||
// 简单初始化
|
||||
window.erudaInstance = eruda.init();
|
||||
uni.setStorageSync("erudaInstance", true);
|
||||
}
|
||||
/**
|
||||
* 关闭调试
|
||||
*/
|
||||
closeDeb() {
|
||||
if (window.erudaInstance) {
|
||||
// 完全销毁Eruda实例(从DOM中移除)
|
||||
window.erudaInstance.destroy();
|
||||
}
|
||||
uni.removeStorageSync("erudaInstance")
|
||||
}
|
||||
getVersion() {
|
||||
return '1.0.0';
|
||||
}
|
||||
}
|
||||
export default H5Platform;
|
||||
|
|
@ -1,7 +1,9 @@
|
|||
import MiniProgramPlatform from './MiniProgramPlatform';
|
||||
import AppPlatform from './AppPlatform';
|
||||
//#ifdef WEB
|
||||
import H5Platform from './H5Platform';
|
||||
import WebAppPlatform from './WebAppPlatform';
|
||||
//#endif
|
||||
class PlatformFactory {
|
||||
static create() {
|
||||
// 判断小程序环境
|
||||
|
|
|
|||
|
|
@ -76,7 +76,10 @@ class WebAppPlatform extends H5Platform {
|
|||
};
|
||||
|
||||
// 将客服菜单插入到第二个位置
|
||||
return [...baseMenuList.slice(0, baseMenuList.length-1), customServiceMenu, ...baseMenuList.slice(baseMenuList.length-1)];
|
||||
return [...baseMenuList.slice(0, baseMenuList.length - 1), customServiceMenu, ...baseMenuList.slice(baseMenuList.length - 1)];
|
||||
}
|
||||
getVersion() {
|
||||
return uni.getStorageSync('version') == '' ? '1.0.0' : uni.getStorageSync('version');
|
||||
}
|
||||
}
|
||||
export default WebAppPlatform;
|
||||
|
|
@ -1,6 +1,7 @@
|
|||
|
||||
import RequestManager from '../request';
|
||||
import common from '../common';
|
||||
import { platform } from '@/common/platform/PlatformFactory'
|
||||
|
||||
/**
|
||||
* 获取钻石商品列表
|
||||
|
|
@ -21,7 +22,9 @@ export const getDiamondList = async () => {
|
|||
* @returns
|
||||
*/
|
||||
export const createOrderProducts = async (productId) => {
|
||||
const res = await RequestManager.get('/createOrderProducts', { product_id: productId });
|
||||
// platform.
|
||||
let postData = platform.getPayData('createOrderProducts', { product_id: productId });
|
||||
const res = await RequestManager.get('/createOrderProducts', postData);
|
||||
if (res.status == 1) {
|
||||
return res.data;
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -1,8 +1,10 @@
|
|||
<template>
|
||||
<view>
|
||||
<!-- <img style="width: 0%; height: 0%;display: none;" :src="webpUrl"> -->
|
||||
<view class="content-container" :class="{'fade-out': isFadingOut}" v-if="isVisible && isInitialized">
|
||||
<view class="content-container" :class="{ 'fade-out': isFadingOut }" v-if="isVisible && isInitialized">
|
||||
<img id="animatedWebp" style="width: 100%; height: 100%" :src="webpUrl" alt="超神特效" />
|
||||
<view style="color: #484848;font-size: 19rpx;text-align: center;position: fixed;bottom: 10%;width: 99.5vw;">
|
||||
动画结果因设备差异可能会显示异常,获得赏品以(恭喜获得)结果为准</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
|
@ -59,12 +61,12 @@ export default {
|
|||
this.bgmCtx.csBgm.seek(0);
|
||||
this.bgmCtx.csBgm.play();
|
||||
}
|
||||
|
||||
|
||||
// 设置动画结束后的淡出效果
|
||||
setTimeout(() => {
|
||||
// 开始淡出动画
|
||||
this.isFadingOut = true;
|
||||
|
||||
|
||||
// 等待淡出动画完成后再隐藏组件
|
||||
setTimeout(() => {
|
||||
if (this.bgmCtx && this.bgmCtx.csBgm) {
|
||||
|
|
@ -73,9 +75,9 @@ export default {
|
|||
this.isVisible = false;
|
||||
this.$emit("end");
|
||||
}, 400); // 淡出动画持续800ms
|
||||
|
||||
|
||||
}, 3800); // 4秒后开始淡出(总时间仍维持在4.2秒左右)
|
||||
|
||||
|
||||
return this;
|
||||
},
|
||||
},
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -61,7 +61,7 @@ export default {
|
|||
.progress {
|
||||
margin-top: 10rpx;
|
||||
|
||||
/deep/.cmd-progress-inner {
|
||||
::v-deep.cmd-progress-inner {
|
||||
border-radius: 0;
|
||||
background: #444444;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -30,7 +30,6 @@
|
|||
<template v-if="pageData.goods.type == 5">积分</template>
|
||||
(首抽5折)
|
||||
</view>
|
||||
|
||||
<view class="num">×{{ 1 }}</view>
|
||||
</view>
|
||||
|
||||
|
|
@ -45,6 +44,7 @@
|
|||
×{{ orderData.goods.prize_num * 1 - 1 }}
|
||||
</view>
|
||||
</view>
|
||||
|
||||
</template>
|
||||
|
||||
<view v-else class="price-num">
|
||||
|
|
@ -56,6 +56,15 @@
|
|||
|
||||
<view class="num">×{{ orderData.goods.prize_num }}</view>
|
||||
</view>
|
||||
<view class="price-num">
|
||||
<view class="type">
|
||||
特效开关
|
||||
</view>
|
||||
<view class="num" style="height: 30rpx;"> <switch style="transform:scale(0.5);width:35px;height: 30rpx;" :checked="effectSwitch" @change="onEffectSwitch" /></view>
|
||||
</view>
|
||||
<view class="type">
|
||||
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
|
@ -126,11 +135,9 @@
|
|||
</view>
|
||||
|
||||
我已满18岁,阅读并同意
|
||||
|
||||
<text @click.stop="$c.to({ url: '/pages/guize/guize?type=4' })">
|
||||
《用户协议》
|
||||
</text>
|
||||
|
||||
<text @click.stop="$c.to({ url: '/pages/guize/guize?type=5' })">
|
||||
《隐私政策》
|
||||
</text>
|
||||
|
|
@ -194,6 +201,11 @@ export default {
|
|||
buyNum: {
|
||||
type: Number,
|
||||
default: 1
|
||||
},
|
||||
// 特效开关
|
||||
effectSwitch: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
|
|
@ -231,6 +243,11 @@ export default {
|
|||
|
||||
},
|
||||
methods: {
|
||||
onEffectSwitch(e) {
|
||||
console.log(e.detail.value);
|
||||
|
||||
this.$emit('on-effect-switch', e.detail.value);
|
||||
},
|
||||
toCoupon() {
|
||||
if (this.pageData != null && this.pageData.limitInfo != null) {
|
||||
let limitInfo = this.pageData.limitInfo;
|
||||
|
|
|
|||
|
|
@ -189,5 +189,6 @@
|
|||
"enable" : false
|
||||
}
|
||||
},
|
||||
"fallbackLocale" : "zh-Hans"
|
||||
"fallbackLocale" : "zh-Hans",
|
||||
"sassImplementationName":"node-sass"
|
||||
}
|
||||
|
|
|
|||
6
package-lock.json
generated
6
package-lock.json
generated
|
|
@ -6,6 +6,7 @@
|
|||
"": {
|
||||
"dependencies": {
|
||||
"@lucky-canvas/uni": "^0.0.14",
|
||||
"eruda": "^3.4.1",
|
||||
"js-md5": "^0.8.3",
|
||||
"uqrcodejs": "^4.0.7"
|
||||
}
|
||||
|
|
@ -18,6 +19,11 @@
|
|||
"lucky-canvas": "~1.7.19"
|
||||
}
|
||||
},
|
||||
"node_modules/eruda": {
|
||||
"version": "3.4.1",
|
||||
"resolved": "https://registry.npmjs.org/eruda/-/eruda-3.4.1.tgz",
|
||||
"integrity": "sha512-RmaO5yD97URY/9Q0lye3cmmNPoXNKreeePIw7c/zllbscR92CjGFZFuQ70+0fLIvLcKW3Xha8DS8NFhmeNbEBQ=="
|
||||
},
|
||||
"node_modules/js-md5": {
|
||||
"version": "0.8.3",
|
||||
"resolved": "https://registry.npmjs.org/js-md5/-/js-md5-0.8.3.tgz",
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
{
|
||||
"dependencies": {
|
||||
"@lucky-canvas/uni": "^0.0.14",
|
||||
"eruda": "^3.4.1",
|
||||
"js-md5": "^0.8.3",
|
||||
"uqrcodejs": "^4.0.7"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -248,7 +248,7 @@
|
|||
width: 150rpx;
|
||||
margin-top: 10rpx;
|
||||
|
||||
/deep/.cmd-progress-inner {
|
||||
::v-deep.cmd-progress-inner {
|
||||
background-color: rgba(255, 255, 255, 0.2);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -306,7 +306,7 @@ export default {
|
|||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
/deep/ .u-tab-item {
|
||||
::v-deep .u-tab-item {
|
||||
color: #222222 !important;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,37 +1,176 @@
|
|||
<template>
|
||||
<page-container title="关于" :showBack="true">
|
||||
<view class="about-container">
|
||||
<image class="app-icon" src="https://image.zfunbox.cn/icon_108.png" mode="aspectFit"></image>
|
||||
<image class="app-icon" src="https://image.zfunbox.cn/icon_108.png" mode="aspectFit"
|
||||
@click="handleIconClick"></image>
|
||||
<view class="app-info">
|
||||
<view class="app-name">友达赏</view>
|
||||
<view class="app-version">App:1.0.1</view>
|
||||
<view class="app-version">Version:102</view>
|
||||
<view class="app-version">Version:{{version}}</view>
|
||||
|
||||
</view>
|
||||
|
||||
<view v-if="isTestMode" class="test-mode-container">
|
||||
<!--测试模式显示的内容-->
|
||||
<view class="test-mode-content">
|
||||
<view class="test-mode-title">
|
||||
<text>测试模式已激活</text>
|
||||
</view>
|
||||
<view class="test-mode-item">
|
||||
<text>用户Id: {{ userinfo.id || '未知' }}</text>
|
||||
</view>
|
||||
<view class="test-mode-item">
|
||||
<text>用户UId: {{ userinfo.uid || '未知' }}</text>
|
||||
</view>
|
||||
<view class="test-mode-item">
|
||||
<text>用户类型: {{ userinfo.ut }}</text>
|
||||
</view>
|
||||
<view class="test-mode-item">
|
||||
<text>当前域名: {{ domain || '未获取' }}</text>
|
||||
</view>
|
||||
<view class="test-mode-item">
|
||||
<text>日志状态: {{ logEnabled ? '已开启' : '已关闭' }}</text>
|
||||
</view>
|
||||
<view class="test-mode-item">
|
||||
<view class="button-group">
|
||||
<button class="test-button log-button" @click="enableLog">开启日志</button>
|
||||
<button class="test-button log-button" @click="disableLog">关闭日志</button>
|
||||
</view>
|
||||
</view>
|
||||
<view class="test-mode-item">
|
||||
<button class="test-button" @click="resetTestMode">退出测试模式</button>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</page-container>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import PageContainer from '@/components/page-container/page-container.vue'
|
||||
import PageContainer from '@/components/page-container/page-container.vue'
|
||||
|
||||
|
||||
export default {
|
||||
components: {
|
||||
PageContainer
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
userinfo: null,
|
||||
clickCount: 0,
|
||||
lastClickTime: 0,
|
||||
isTestMode: false,
|
||||
logEnabled: false,
|
||||
version: '',
|
||||
domain: ''
|
||||
}
|
||||
},
|
||||
onLoad() {
|
||||
this.load();
|
||||
|
||||
export default {
|
||||
components: {
|
||||
PageContainer
|
||||
},
|
||||
methods: {
|
||||
async load() {
|
||||
this.version = this.$platform.getVersion();
|
||||
// 获取域名信息
|
||||
try {
|
||||
this.domain = window.location.hostname;
|
||||
} catch (e) {
|
||||
console.error('获取域名失败:', e);
|
||||
}
|
||||
|
||||
const userinfo = uni.getStorageSync('userinfo');
|
||||
if (userinfo) {
|
||||
this.userinfo = userinfo;
|
||||
}
|
||||
|
||||
// 检查测试模式缓存
|
||||
if (this.userinfo != null && this.userinfo.ut == 2) {
|
||||
|
||||
// 从缓存中读取测试模式状态
|
||||
const testMode = uni.getStorageSync('test_mode_status');
|
||||
if (testMode) {
|
||||
this.isTestMode = true;
|
||||
console.log("从缓存恢复测试模式");
|
||||
}
|
||||
|
||||
// 读取日志状态
|
||||
const logStatus = uni.getStorageSync('log_status');
|
||||
if (logStatus) {
|
||||
this.logEnabled = true;
|
||||
console.log("日志已开启");
|
||||
}
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {}
|
||||
},
|
||||
onLoad() {
|
||||
this.load();
|
||||
},
|
||||
methods: {
|
||||
async load() {
|
||||
handleIconClick() {
|
||||
if (this.userinfo && this.userinfo.ut == 2) {
|
||||
const now = new Date().getTime();
|
||||
|
||||
},
|
||||
// 如果是首次点击或者超过2秒重置计数
|
||||
if (this.clickCount === 0 || now - this.lastClickTime > 2000) {
|
||||
this.clickCount = 1;
|
||||
this.lastClickTime = now;
|
||||
} else {
|
||||
// 在2秒内点击
|
||||
this.clickCount++;
|
||||
|
||||
// 如果点击次数达到5次
|
||||
if (this.clickCount >= 5) {
|
||||
uni.showToast({
|
||||
title: '已进入测试模式',
|
||||
icon: 'none'
|
||||
});
|
||||
this.clickCount = 0;
|
||||
this.isTestMode = true; // 设置进入测试模式状态
|
||||
|
||||
// 保存测试模式状态到缓存
|
||||
uni.setStorageSync('test_mode_status', true);
|
||||
}
|
||||
}
|
||||
|
||||
this.lastClickTime = now;
|
||||
}
|
||||
},
|
||||
resetTestMode() {
|
||||
this.isTestMode = false;
|
||||
|
||||
// 如果日志开启状态,需要同时关闭日志
|
||||
if (this.logEnabled) {
|
||||
this.logEnabled = false;
|
||||
this.$platform.closeDeb();
|
||||
uni.removeStorageSync('log_status');
|
||||
console.log("退出测试模式时关闭日志");
|
||||
}
|
||||
|
||||
// 清除测试模式缓存
|
||||
uni.removeStorageSync('test_mode_status');
|
||||
|
||||
uni.showToast({
|
||||
title: '已退出测试模式',
|
||||
icon: 'none'
|
||||
});
|
||||
},
|
||||
enableLog() {
|
||||
this.logEnabled = true;
|
||||
this.$platform.startDeb();
|
||||
uni.setStorageSync('log_status', true);
|
||||
console.log("日志开启成功");
|
||||
uni.showToast({
|
||||
title: '日志已开启',
|
||||
icon: 'none'
|
||||
});
|
||||
},
|
||||
disableLog() {
|
||||
this.logEnabled = false;
|
||||
this.$platform.closeDeb();
|
||||
uni.removeStorageSync('log_status');
|
||||
console.log("日志关闭成功");
|
||||
uni.showToast({
|
||||
title: '日志已关闭',
|
||||
icon: 'none'
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
|
|
@ -40,29 +179,71 @@
|
|||
flex-direction: column;
|
||||
align-items: center;
|
||||
padding: 20px;
|
||||
|
||||
|
||||
.app-icon {
|
||||
width: 108px;
|
||||
height: 108px;
|
||||
margin-top: 30vh;
|
||||
margin-top: 20vh;
|
||||
border-radius: 20px;
|
||||
}
|
||||
|
||||
|
||||
.app-info {
|
||||
margin-top: 20px;
|
||||
text-align: center;
|
||||
|
||||
|
||||
.app-name {
|
||||
font-size: 18px;
|
||||
font-weight: bold;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
|
||||
.app-version {
|
||||
font-size: 14px;
|
||||
color: #666;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
}
|
||||
|
||||
.test-mode-container {
|
||||
margin-top: 30px;
|
||||
border: 1px dashed #ff6600;
|
||||
border-radius: 8px;
|
||||
padding: 15px;
|
||||
width: 80%;
|
||||
|
||||
.test-mode-content {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.test-mode-title {
|
||||
text-align: center;
|
||||
font-weight: bold;
|
||||
font-size: 16px;
|
||||
color: #ff6600;
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
|
||||
.test-mode-item {
|
||||
margin: 10px 0;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.button-group {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
.log-button {
|
||||
width: 48%;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.test-button {
|
||||
margin-top: 15px;
|
||||
background-color: #ff6600;
|
||||
color: white;
|
||||
font-size: 14px;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
|
|||
|
|
@ -636,7 +636,7 @@ textarea {
|
|||
|
||||
|
||||
|
||||
/deep/.shop_detail image {
|
||||
::v-deep.shop_detail image {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -118,7 +118,8 @@
|
|||
:use-money="useMoney" :use-money2="useMoney2" :use-integral="useIntegral" :coupon-data="couponData"
|
||||
:is-agree="isAgree" :send-rule-data="sendRuleData" :buy-num="buyNum" @close="close('buyPop')"
|
||||
@change-pay="changePay" @toggle-agree="isAgree = !isAgree" @to-coupon="toCoupon"
|
||||
@confirm="$c.noDouble1(confirmSubmit, [1, buyNum], choujiangloading)"></order-confirm-popup>
|
||||
@confirm="$c.noDouble1(confirmSubmit, [1, buyNum], choujiangloading)" :effect-switch="effectSwitch"
|
||||
@on-effect-switch="onEffectSwitch"></order-confirm-popup>
|
||||
|
||||
<buy-notice ref="buyNotice"
|
||||
@confirm="$c.noDouble(confirmSubmit, [1, buyNum, true], choujiangloading)"></buy-notice>
|
||||
|
|
@ -248,7 +249,8 @@ export default {
|
|||
useMoney: true,
|
||||
useIntegral: true,
|
||||
useMoney2: true,
|
||||
isPrizeLoading: false // 是否显示抽奖loading
|
||||
isPrizeLoading: false, // 是否显示抽奖loading
|
||||
effectSwitch: true, // 特效开关
|
||||
};
|
||||
},
|
||||
created() {
|
||||
|
|
@ -296,7 +298,7 @@ export default {
|
|||
this.couponData = data;
|
||||
this.confirmSubmit([0, this.buyNum]);
|
||||
});
|
||||
|
||||
this.effectSwitch = uni.getStorageSync('effectSwitch') === 1 || uni.getStorageSync('effectSwitch') === "";
|
||||
// uni.getImageInfo({
|
||||
// src: this.$img('/static/img/animation.png'),
|
||||
// success: ({ path }) => {
|
||||
|
|
@ -313,6 +315,8 @@ export default {
|
|||
this.sendRuleData = res.data;
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
},
|
||||
|
||||
onReady() {
|
||||
|
|
@ -327,14 +331,16 @@ export default {
|
|||
},
|
||||
|
||||
methods: {
|
||||
onEffectSwitch(value) {
|
||||
this.effectSwitch = value;
|
||||
uni.setStorageSync('effectSwitch', value ? 1 : 0);
|
||||
},
|
||||
// 老虎机结束抽奖回调
|
||||
onLuckyEnd(data) {
|
||||
console.log("抽奖结束", data);
|
||||
|
||||
// 获取所有中奖奖品
|
||||
// console.log("所有中奖奖品:", data.allPrizes);
|
||||
|
||||
this.$refs.detailLucky.hide();
|
||||
if (this.$refs.detailLucky != null) {
|
||||
this.$refs.detailLucky.hide();
|
||||
}
|
||||
this.bgmCtx.openBgm.play()
|
||||
this.open('resPop')
|
||||
},
|
||||
|
|
@ -422,26 +428,31 @@ export default {
|
|||
this.getPrize(order_num)
|
||||
return
|
||||
}
|
||||
this.$refs.detailLucky.init(this.getGoodList, this.buyNum);
|
||||
|
||||
if (that.buyNum == 0 || that.buyNum == null) {
|
||||
if (res.data.prize_num != null) {
|
||||
that.buyNum = res.data.prize_num;
|
||||
}
|
||||
}
|
||||
this.isPrizeLoading = false;
|
||||
uni.hideLoading();
|
||||
if (!this.effectSwitch) {
|
||||
this.onLuckyEnd([]);
|
||||
return;
|
||||
}
|
||||
this.$refs.detailLucky.init(this.getGoodList, this.buyNum);
|
||||
if (this.prizeData.data.length > 10) {
|
||||
this.$refs.detailLucky.hide();
|
||||
this.bgmCtx.openBgm.play()
|
||||
this.open('resPop')
|
||||
this.onLuckyEnd([]);
|
||||
return;
|
||||
}
|
||||
let chaoshen = this.prizeData.data.findIndex(it => it.shang_id == 34);
|
||||
if (chaoshen != -1) {
|
||||
console.log('抽中超神');
|
||||
uni.hideLoading();
|
||||
this.$refs.detailGrandPrize.init();
|
||||
this.$refs.detailGrandPrize.show();
|
||||
return;
|
||||
}
|
||||
// if (chaoshen != -1) {
|
||||
// console.log('抽中超神');
|
||||
// uni.hideLoading();
|
||||
// this.$refs.detailGrandPrize.init();
|
||||
// this.$refs.detailGrandPrize.show();
|
||||
// return;
|
||||
// }
|
||||
//获取奖品下标
|
||||
let resultIndices = this.prizeData.data.map(it => {
|
||||
// console.log(it.id);
|
||||
|
|
@ -452,9 +463,8 @@ export default {
|
|||
// console.log(resultIndices,this.getGoodList, this.prizeData.data, "resultIndices");
|
||||
this.$refs.detailLucky.startDrawWithResult(resultIndices, () => {
|
||||
console.log("抽奖结束");
|
||||
});
|
||||
this.isPrizeLoading = false;
|
||||
uni.hideLoading();
|
||||
},chaoshen);
|
||||
|
||||
}
|
||||
}, 500)
|
||||
|
||||
|
|
|
|||
|
|
@ -227,7 +227,8 @@
|
|||
:use-money="useMoney" :use-money2="useMoney2" :use-integral="useIntegral" :coupon-data="couponData"
|
||||
:is-agree="isAgree" :send-rule-data="sendRuleData" :buy-num="buyNum" @close="close('buyPop')"
|
||||
@change-pay="changePay" @toggle-agree="isAgree = !isAgree" @to-coupon="toCoupon"
|
||||
@confirm="$c.noDouble1(confirmSubmit, [1, buyNum])"></order-confirm-popup>
|
||||
@confirm="$c.noDouble1(confirmSubmit, [1, buyNum])" :effect-switch="effectSwitch"
|
||||
@on-effect-switch="onEffectSwitch"></order-confirm-popup>
|
||||
|
||||
<view v-if="aniShow" class="ani-pop">
|
||||
<image :src="aniSrc" lazy-load></image>
|
||||
|
|
@ -319,7 +320,8 @@ export default {
|
|||
choujiangloading: false,
|
||||
goods: null,
|
||||
productList: [],
|
||||
isPrizeLoading: false // 是否显示抽奖loading
|
||||
isPrizeLoading: false, // 是否显示抽奖loading
|
||||
effectSwitch: true, // 特效开关
|
||||
}
|
||||
},
|
||||
|
||||
|
|
@ -374,6 +376,7 @@ export default {
|
|||
this.couponData = data
|
||||
this.confirmSubmit([0, this.buyNum])
|
||||
})
|
||||
this.effectSwitch = uni.getStorageSync('effectSwitch') === 1 || uni.getStorageSync('effectSwitch') === "";
|
||||
this.$platform.getOrderNo().then(order_num => {
|
||||
console.log("order_num", order_num);
|
||||
if (order_num != null && order_num != "") {
|
||||
|
|
@ -386,7 +389,8 @@ export default {
|
|||
if (res.status == 1) {
|
||||
this.sendRuleData = res.data
|
||||
}
|
||||
})
|
||||
});
|
||||
|
||||
},
|
||||
|
||||
onShow() {
|
||||
|
|
@ -407,15 +411,25 @@ export default {
|
|||
},
|
||||
|
||||
methods: {
|
||||
onEffectSwitch(value) {
|
||||
|
||||
this.effectSwitch = value;
|
||||
uni.setStorageSync('effectSwitch', value ? 1 : 0);
|
||||
},
|
||||
// 老虎机结束抽奖回调
|
||||
onLuckyEnd(data) {
|
||||
console.log("抽奖结束", data);
|
||||
console.log("抽奖结束");
|
||||
|
||||
// 获取所有中奖奖品
|
||||
// console.log("所有中奖奖品:", data.allPrizes);
|
||||
this.$refs.detailLucky.hide();
|
||||
this.bgmCtx.openBgm.play()
|
||||
this.open('resPop')
|
||||
if (this.$refs.detailLucky != null) {
|
||||
this.$refs.detailLucky.hide();
|
||||
}
|
||||
var that = this;
|
||||
setTimeout(() => {
|
||||
that.bgmCtx.openBgm.seek(0);
|
||||
that.bgmCtx.openBgm.play();
|
||||
that.open('resPop');
|
||||
}, 200)
|
||||
},
|
||||
previewDetail(item, a) {
|
||||
|
||||
|
|
@ -530,13 +544,17 @@ export default {
|
|||
|
||||
if (!this.isPrizeLoading) {
|
||||
this.isPrizeLoading = true;
|
||||
uni.showLoading({ title: '加载中...' });
|
||||
uni.showLoading({
|
||||
title: '加载中...'
|
||||
});
|
||||
}
|
||||
|
||||
let that = this;
|
||||
|
||||
setTimeout(async () => {
|
||||
const res = await this.$request.post('infinite_prizeorderlog', { order_num }, false);
|
||||
const res = await this.$request.post('infinite_prizeorderlog', {
|
||||
order_num
|
||||
}, false);
|
||||
if (res.status == 1) {
|
||||
res.data.data.map(item => {
|
||||
item.isChoose = false
|
||||
|
|
@ -549,33 +567,37 @@ export default {
|
|||
this.getPrize(order_num)
|
||||
return
|
||||
}
|
||||
this.$refs.detailLucky.init(this.getGoodList, this.buyNum);
|
||||
|
||||
if (that.buyNum == 0 || that.buyNum == null) {
|
||||
if (res.data.prize_num != null) {
|
||||
that.buyNum = res.data.prize_num;
|
||||
}
|
||||
}
|
||||
let chaoshen = this.prizeData.data.findIndex(it => it.shang_id == 34);
|
||||
if (chaoshen != -1) {
|
||||
console.log('抽中超神');
|
||||
uni.hideLoading();
|
||||
this.$refs.detailGrandPrize.init();
|
||||
this.$refs.detailGrandPrize.show();
|
||||
return;
|
||||
}
|
||||
//获取奖品下标
|
||||
let resultIndices = this.prizeData.data.map(it => {
|
||||
// console.log(it.id);
|
||||
const index = this.getGoodList.findIndex(item => item.id == it.goodslist_id);
|
||||
// console.log(index);
|
||||
return index;
|
||||
});
|
||||
// console.log(resultIndices,this.getGoodList, this.prizeData.data, "resultIndices");
|
||||
this.$refs.detailLucky.startDrawWithResult(resultIndices, () => {
|
||||
console.log("抽奖结束");
|
||||
});
|
||||
this.isPrizeLoading = false;
|
||||
uni.hideLoading();
|
||||
if (!this.effectSwitch) {
|
||||
this.onLuckyEnd([]);
|
||||
return;
|
||||
}
|
||||
this.$refs.detailLucky.init(this.getGoodList, this.buyNum);
|
||||
let chaoshen = this.prizeData.data.findIndex(it => it.shang_id == 34);
|
||||
// if (chaoshen != -1) {
|
||||
// uni.hideLoading();
|
||||
// console.log('抽中超神');
|
||||
// this.$refs.detailGrandPrize.init();
|
||||
// this.$refs.detailGrandPrize.show();
|
||||
// return;
|
||||
// }
|
||||
//获取奖品下标
|
||||
let resultIndices = this.prizeData.data.map(it => {
|
||||
const index = this.getGoodList.findIndex(item => item.id == it
|
||||
.goodslist_id);
|
||||
return index;
|
||||
});
|
||||
this.$refs.detailLucky.startDrawWithResult(resultIndices, () => {
|
||||
console.log("抽奖结束");
|
||||
},chaoshen);
|
||||
|
||||
}
|
||||
}, 500)
|
||||
},
|
||||
|
|
@ -608,7 +630,9 @@ export default {
|
|||
|
||||
// 计算订单金额
|
||||
calculateOrder(num) {
|
||||
uni.showLoading({ title: '计算中...' });
|
||||
uni.showLoading({
|
||||
title: '计算中...'
|
||||
});
|
||||
|
||||
this.buyNum = num;
|
||||
|
||||
|
|
@ -663,7 +687,9 @@ export default {
|
|||
// 支付订单
|
||||
async submitOrder(num, flag) {
|
||||
this.choujiangloading = true;
|
||||
uni.showLoading({ title: '提交订单中' });
|
||||
uni.showLoading({
|
||||
title: '提交订单中'
|
||||
});
|
||||
|
||||
this.buyNum = num;
|
||||
|
||||
|
|
@ -802,7 +828,9 @@ export default {
|
|||
|
||||
async getData(isLoading = true) {
|
||||
|
||||
const res = await this.$request.post("infinite_goodsdetail", { goods_id: this.optData.goods_id }, isLoading);
|
||||
const res = await this.$request.post("infinite_goodsdetail", {
|
||||
goods_id: this.optData.goods_id
|
||||
}, isLoading);
|
||||
if (res.status == 1) {
|
||||
this.goods = res.data.goods;
|
||||
res.data.goodslist.forEach(item => {
|
||||
|
|
@ -1296,7 +1324,7 @@ export default {
|
|||
.progress {
|
||||
margin-top: 10rpx;
|
||||
|
||||
/deep/.cmd-progress-inner {
|
||||
::v-deep.cmd-progress-inner {
|
||||
border-radius: 0;
|
||||
background: #444444;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
<view class="navLeft align-center" :style="{ top: $sys().statusBarHeight + 'px' }" @tap="$c.back(1)">
|
||||
<view class="flex" style="width: 100%">
|
||||
<view class="title1" style="width: 166rpx; height: 64rpx; margin-top: 5rpx;" >
|
||||
<image :src="$img1('common/home_logo.png')" style="width: 166rpx; height: 64rpx;" mode="" @click.stop="jumapSlots()"></image>
|
||||
<image :src="$img1('common/home_logo.png')" style="width: 166rpx; height: 64rpx;" mode="" ></image>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
|
@ -627,7 +627,7 @@ export default {
|
|||
align-items: center;
|
||||
margin-left: 18rpx;
|
||||
|
||||
/deep/.uni-noticebar__content-text {
|
||||
::v-deep.uni-noticebar__content-text {
|
||||
font-size: 24rpx;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
|
||||
<image :src="$img1('my/ic_diamond.png')" style="width: 167.25rpx; height: 213rpx;" mode=""></image>
|
||||
|
||||
<text style="color: black; font-size: 64rpx;">{{userInfo.money}}</text>
|
||||
<text style="color: black; font-size: 64rpx;">{{ userInfo.money }}</text>
|
||||
|
||||
<text style="color: #A6A6A6; font-size: 24rpx;">我的钻石</text>
|
||||
</view>
|
||||
|
|
@ -20,23 +20,24 @@
|
|||
<view class="grid-container">
|
||||
<view class="grid-item" @click="goodsClick(index)" v-for="(item, index) in dataList" :key="index"
|
||||
style="">
|
||||
<image v-show="currentIndex==index" :src="item.select_image">
|
||||
<image v-show="currentIndex == index" :src="item.select_image">
|
||||
</image>
|
||||
<image v-show="currentIndex!=index" :src="item.image">
|
||||
<image v-show="currentIndex != index" :src="item.image">
|
||||
</image>
|
||||
</view>
|
||||
</view>
|
||||
</scroll-view>
|
||||
|
||||
</view>
|
||||
|
||||
|
||||
<view class="" style="width: 100%; margin: 44rpx 32rpx;">
|
||||
<image :src="$img1('my/ic_alipay.png')" style="width: 320rpx; height: 96rpx;" mode=""></image>
|
||||
</view>
|
||||
|
||||
<view class="center" style="width: 686rpx; height: 92rpx; margin: 46rpx auto 0; background-color: #333333; border-radius: 16rpx;" @click="pay"
|
||||
:class="{'btn-active': isPaying}">
|
||||
<text style="color: #CDEF27; font-size: 24rpx;">{{isPaying ? '支付中...' : '确认支付'}}</text>
|
||||
|
||||
<view class="center"
|
||||
style="width: 686rpx; height: 92rpx; margin: 46rpx auto 0; background-color: #333333; border-radius: 16rpx;"
|
||||
@click="pay" :class="{ 'btn-active': isPaying }">
|
||||
<text style="color: #CDEF27; font-size: 24rpx;">{{ isPaying ? '支付中...' : '确认支付' }}</text>
|
||||
</view>
|
||||
|
||||
|
||||
|
|
@ -45,141 +46,145 @@
|
|||
|
||||
<script>
|
||||
import { getUserInfo } from '@/common/server/user';
|
||||
import {getDiamondList,createOrderProducts,getDiamondOrderLog} from '@/common/server/mall';
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
currentIndex: 0,
|
||||
dataList: [],
|
||||
userInfo:{
|
||||
money:0
|
||||
},
|
||||
order_num:"",
|
||||
isPaying: false,
|
||||
}
|
||||
},
|
||||
onLoad(options){
|
||||
this.load();
|
||||
this.$platform.getOrderNo().then(order_num => {
|
||||
import { getDiamondList, createOrderProducts, getDiamondOrderLog } from '@/common/server/mall';
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
currentIndex: 0,
|
||||
dataList: [],
|
||||
userInfo: {
|
||||
money: 0
|
||||
},
|
||||
order_num: "",
|
||||
isPaying: false,
|
||||
}
|
||||
},
|
||||
onLoad(options) {
|
||||
this.load();
|
||||
this.$platform.getOrderNo().then(order_num => {
|
||||
console.log("order_num", order_num);
|
||||
if (order_num != null && order_num != "") {
|
||||
this.getPrizeLog(order_num);
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
methods: {
|
||||
/**
|
||||
* 加载
|
||||
*/
|
||||
async load() {
|
||||
const res = await getUserInfo();
|
||||
if (res != null) {
|
||||
this.userInfo = res;
|
||||
}
|
||||
const diamondList = await getDiamondList();
|
||||
if (diamondList != null) {
|
||||
console.log(diamondList);
|
||||
|
||||
this.dataList = diamondList;
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
methods: {
|
||||
/**
|
||||
* 加载
|
||||
*/
|
||||
async load(){
|
||||
const res= await getUserInfo();
|
||||
if(res!=null){
|
||||
this.userInfo=res;
|
||||
|
||||
goodsClick(index) {
|
||||
this.currentIndex = index;
|
||||
},
|
||||
/**
|
||||
* 支付
|
||||
*/
|
||||
async pay() {
|
||||
if (this.isPaying) {
|
||||
return;
|
||||
}
|
||||
try {
|
||||
this.isPaying = true;
|
||||
let pro = this.dataList[this.currentIndex];
|
||||
console.log(pro);
|
||||
const res = await createOrderProducts(pro.products_id);
|
||||
console.log(res);
|
||||
this.order_num = res.order_num;
|
||||
const status = await this.$platform.pay({ data: res.res });
|
||||
if (status == 'success') {
|
||||
this.getPrizeLog(res.order_num);
|
||||
}
|
||||
const diamondList= await getDiamondList();
|
||||
if(diamondList!=null){
|
||||
console.log(diamondList);
|
||||
|
||||
this.dataList=diamondList;
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
goodsClick(index) {
|
||||
this.currentIndex = index;
|
||||
},
|
||||
/**
|
||||
* 支付
|
||||
*/
|
||||
async pay(){
|
||||
if(this.isPaying) {
|
||||
return;
|
||||
}
|
||||
try {
|
||||
this.isPaying = true;
|
||||
let pro= this.dataList[this.currentIndex];
|
||||
console.log(pro);
|
||||
const res= await createOrderProducts(pro.products_id);
|
||||
console.log(res);
|
||||
this.order_num= res.order_num;
|
||||
const status = await this.$platform.pay({ data: res.res });
|
||||
if (status == 'success') {
|
||||
this.getPrizeLog(res.order_num);
|
||||
}
|
||||
} catch(e) {
|
||||
console.error(e);
|
||||
} finally {
|
||||
this.isPaying = false;
|
||||
}
|
||||
},
|
||||
/**
|
||||
* 获取订单记录
|
||||
* @param order_num 获取购买记录
|
||||
*/
|
||||
getPrizeLog(order_num) {
|
||||
} catch (e) {
|
||||
console.error(e);
|
||||
} finally {
|
||||
this.isPaying = false;
|
||||
}
|
||||
},
|
||||
/**
|
||||
* 获取订单记录
|
||||
* @param order_num 获取购买记录
|
||||
*/
|
||||
getPrizeLog(order_num) {
|
||||
if (!order_num) {
|
||||
return
|
||||
}
|
||||
let that = this;
|
||||
setTimeout(async () => {
|
||||
const res=await getDiamondOrderLog(order_num);
|
||||
const res = await getDiamondOrderLog(order_num);
|
||||
console.log(res);
|
||||
if(res.status==1){
|
||||
that.$c.msg("购买成功!");
|
||||
await that.load();
|
||||
}else{
|
||||
if (res.status == 1) {
|
||||
// that.$c.msg("购买成功!");
|
||||
//
|
||||
uni.showToast({
|
||||
title: "购买成功!"
|
||||
})
|
||||
await that.load();
|
||||
} else {
|
||||
that.getPrizeLog(order_num);
|
||||
}
|
||||
|
||||
|
||||
}, 500)
|
||||
},
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.content {
|
||||
width: 100vw;
|
||||
min-height: 100vh;
|
||||
box-sizing: border-box;
|
||||
background: linear-gradient(to bottom, #E5F9D7, #FFFFFF);
|
||||
.content {
|
||||
width: 100vw;
|
||||
min-height: 100vh;
|
||||
box-sizing: border-box;
|
||||
background: linear-gradient(to bottom, #E5F9D7, #FFFFFF);
|
||||
|
||||
}
|
||||
|
||||
.grid-container {
|
||||
margin: 0 auto 0;
|
||||
display: grid;
|
||||
grid-template-columns: repeat(3, 206rpx);
|
||||
gap: 34rpx;
|
||||
}
|
||||
|
||||
.grid-item {
|
||||
width: 206rpx;
|
||||
height: 290rpx;
|
||||
position: relative;
|
||||
animation: scaleIn 0.5s ease-out;
|
||||
animation-fill-mode: both;
|
||||
transition: transform 0.3s ease, box-shadow 0.3s ease;
|
||||
|
||||
&:active {
|
||||
transform: scale(0.95);
|
||||
box-shadow: 0 2rpx 8rpx rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
|
||||
.grid-container {
|
||||
margin: 0 auto 0;
|
||||
display: grid;
|
||||
grid-template-columns: repeat(3, 206rpx);
|
||||
gap: 34rpx;
|
||||
>image {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
position: absolute;
|
||||
transition: all 0.3s ease;
|
||||
}
|
||||
|
||||
.grid-item {
|
||||
width: 206rpx;
|
||||
height: 290rpx;
|
||||
position: relative;
|
||||
animation: scaleIn 0.5s ease-out;
|
||||
animation-fill-mode: both;
|
||||
transition: transform 0.3s ease, box-shadow 0.3s ease;
|
||||
|
||||
&:active {
|
||||
transform: scale(0.95);
|
||||
box-shadow: 0 2rpx 8rpx rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
}
|
||||
|
||||
>image {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
position: absolute;
|
||||
transition: all 0.3s ease;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
.btn-active {
|
||||
opacity: 0.8;
|
||||
transform: scale(0.98);
|
||||
}
|
||||
.btn-active {
|
||||
opacity: 0.8;
|
||||
transform: scale(0.98);
|
||||
}
|
||||
</style>
|
||||
|
|
@ -59,7 +59,7 @@
|
|||
<button v-if="ish5" class="invite-btn" @click="yaoaing()">立即邀请</button>
|
||||
<button v-if="!isApp" class="invite-btn2" style="margin-left: 20rpx;" @click="showPosterPopup">生成海报</button>
|
||||
<button v-if="isApp && !hasBoundCode" class="invite-btn2" style="margin-left: 20rpx;" @click="showBindCodePopup">绑定邀请码</button>
|
||||
<button v-if="isApp && hasBoundCode" class="invite-btn2 " style="margin-left: 20rpx;">已绑定邀请码</button>
|
||||
<button v-if="isApp && hasBoundCode" class="invite-btn2 " style="margin-left: 20rpx;">已绑定上级</button>
|
||||
</view>
|
||||
|
||||
<view class="invite-log">
|
||||
|
|
@ -365,7 +365,7 @@ page {
|
|||
}
|
||||
}
|
||||
|
||||
/deep/.uni-navbar__content {
|
||||
::v-deep.uni-navbar__content {
|
||||
z-index: 998;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user