还原代码
This commit is contained in:
parent
13549bb040
commit
321a95b395
|
|
@ -51,11 +51,6 @@ export default {
|
|||
* @returns
|
||||
*/
|
||||
removeTrailingZeros(numStr) {
|
||||
// 判断传入参数是否为字符串,如果不是则转为字符串
|
||||
if (typeof numStr !== 'string') {
|
||||
numStr = String(numStr);
|
||||
}
|
||||
|
||||
if (numStr.includes('.')) {
|
||||
numStr = numStr.replace(/0+$/, ''); // 移除末尾的零
|
||||
if (numStr.endsWith('.')) {
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ import RequestManager from '@/common/request.js'
|
|||
let configData = null;
|
||||
let isLoading = false;
|
||||
let loadPromise = null;
|
||||
const wx_version = "104";
|
||||
const wx_version = "103";
|
||||
const defaultConfig = {
|
||||
"good_type": [{ "value": 0, "sort_order": 0, "is_show": 1, "name": "全部", "pay_wechat": 1, "pay_balance": 1, "pay_currency": 1, "pay_currency2": 1, "pay_coupon": 1, "is_deduction": 1 }, { "value": 1, "sort_order": 1, "is_show": 0, "name": "一番赏", "pay_wechat": 1, "pay_balance": 1, "pay_currency": 1, "pay_currency2": 1, "pay_coupon": 1, "is_deduction": 1 }, { "value": 2, "sort_order": 2, "is_show": 1, "name": "无限赏", "pay_wechat": 1, "pay_balance": 1, "pay_currency": 1, "pay_currency2": 1, "pay_coupon": 1, "is_deduction": 1 }, { "value": 3, "sort_order": 3, "is_show": 0, "name": "擂台赏", "pay_wechat": 1, "pay_balance": 1, "pay_currency": 1, "pay_currency2": 1, "pay_coupon": 1, "is_deduction": 1 }, { "value": 5, "sort_order": 4, "is_show": 0, "name": "积分赏", "pay_wechat": 0, "pay_balance": 0, "pay_currency": 0, "pay_currency2": 1, "pay_coupon": 1, "is_deduction": 0 }, { "value": 6, "sort_order": 5, "is_show": 1, "name": "限时活动", "pay_wechat": 1, "pay_balance": 1, "pay_currency": 1, "pay_currency2": 1, "pay_coupon": 1, "is_deduction": 1 }, { "value": 8, "sort_order": 6, "is_show": 1, "name": "领主赏", "pay_wechat": 1, "pay_balance": 1, "pay_currency": 1, "pay_currency2": 1, "pay_coupon": 1, "is_deduction": 1 }, { "value": 9, "sort_order": 7, "is_show": 0, "name": "连击赏", "pay_wechat": 1, "pay_balance": 1, "pay_currency": 1, "pay_currency2": 1, "pay_coupon": 1, "is_deduction": 1 }, { "value": 10, "sort_order": 8, "is_show": 0, "name": "商城赏", "pay_wechat": 1, "pay_balance": 0, "pay_currency": 0, "pay_currency2": 1, "pay_coupon": 0, "is_deduction": 0 }, { "value": 11, "sort_order": 9, "is_show": 0, "name": "自制赏", "pay_wechat": 1, "pay_balance": 1, "pay_currency": 1, "pay_currency2": 1, "pay_coupon": 1, "is_deduction": 1 }, { "value": 15, "sort_order": 15, "is_show": 0, "name": "福利屋", "pay_wechat": 1, "pay_balance": 1, "pay_currency": 0, "pay_currency2": 0, "pay_coupon": 0, "is_deduction": 0 }, { "value": 16, "sort_order": 16, "is_show": 1, "name": "翻倍赏", "pay_wechat": 1, "pay_balance": 1, "pay_currency": 1, "pay_currency2": 1, "pay_coupon": 1, "is_deduction": 1 }, { "value": 17, "sort_order": 17, "is_show": 0, "name": "外卖盒子", "pay_wechat": 1, "pay_balance": 1, "pay_currency": 0, "pay_currency2": 0, "pay_coupon": 0, "is_deduction": 0 }],
|
||||
"app_setting": {
|
||||
|
|
@ -147,17 +147,8 @@ class ConfigManager {
|
|||
static getGoodType() {
|
||||
let goodType = this.get('good_type');
|
||||
if (goodType != null) {
|
||||
if (this.GetVersion()) {
|
||||
return goodType.filter(item => item.is_show === 1 && (item.value === 2||item.value === 0)).map(item => {
|
||||
return {
|
||||
id: item.value,
|
||||
title: item.name
|
||||
}
|
||||
});
|
||||
}
|
||||
// goodType数组过滤,只保留is_show=1的项目
|
||||
return goodType.filter(item => item.is_show === 1).map(item => {
|
||||
console.log(item);
|
||||
|
||||
return {
|
||||
id: item.value,
|
||||
title: item.name
|
||||
|
|
|
|||
213
package/index/coupon-center.vue
Normal file
213
package/index/coupon-center.vue
Normal file
|
|
@ -0,0 +1,213 @@
|
|||
<!--
|
||||
* @Date: 2024-01-17 11:00:11
|
||||
* @LastEditTime: 2024-01-17 17:28:11
|
||||
* @Description: content
|
||||
-->
|
||||
<template>
|
||||
<view class="content">
|
||||
<uni-nav-bar
|
||||
left-icon="left"
|
||||
title="领券中心"
|
||||
color="#fff"
|
||||
backgroundColor="transparent"
|
||||
:fixed="true"
|
||||
:statusBar="true"
|
||||
:border="false"
|
||||
@clickLeft="$c.back"
|
||||
></uni-nav-bar>
|
||||
|
||||
<mescroll-body
|
||||
ref="mescrollRef"
|
||||
@init="mescrollInit"
|
||||
@down="downCallback"
|
||||
@up="getList"
|
||||
:down="downOption"
|
||||
:up="upOption"
|
||||
>
|
||||
<view
|
||||
class="list-item common_bg"
|
||||
v-for="(item, i) in listData"
|
||||
:key="i"
|
||||
:style="{
|
||||
backgroundImage: ``
|
||||
}"
|
||||
:class="{
|
||||
dis: item.is_find == 1
|
||||
}"
|
||||
>
|
||||
<view class="money">
|
||||
¥
|
||||
<text>{{ item.price }}</text>
|
||||
</view>
|
||||
|
||||
<view class="info">
|
||||
<view class="title">{{ item.title }}</view>
|
||||
|
||||
<view class="time">领取后有效期{{ item.effective_day }}天</view>
|
||||
</view>
|
||||
|
||||
<view
|
||||
v-if="item.is_find != 1"
|
||||
class="btn"
|
||||
@click="$c.noDouble(getCoupon, item)"
|
||||
>
|
||||
立即领取
|
||||
</view>
|
||||
|
||||
<view v-else class="btn">已领取</view>
|
||||
</view>
|
||||
</mescroll-body>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
// 下拉刷新的配置(可选, 绝大部分情况无需配置)
|
||||
downOption: {
|
||||
auto: false
|
||||
},
|
||||
// 上拉加载的配置(可选, 绝大部分情况无需配置)
|
||||
upOption: {
|
||||
auto: true,
|
||||
page: {
|
||||
size: 10 // 每页数据的数量,默认10
|
||||
}
|
||||
},
|
||||
listData: [],
|
||||
optData: ''
|
||||
}
|
||||
},
|
||||
|
||||
onLoad(options) {
|
||||
this.optData = options
|
||||
},
|
||||
|
||||
methods: {
|
||||
getCoupon(item) {
|
||||
this.req({
|
||||
url: 't_coupon_ling',
|
||||
data: {
|
||||
coupon_id: item.id
|
||||
},
|
||||
success: res => {
|
||||
if (res.status == 1) {
|
||||
this.$c.toast({
|
||||
title: res.msg,
|
||||
duration: 500,
|
||||
success: () => {
|
||||
this.mescroll.resetUpScroll()
|
||||
this.mescroll.scrollTo(0, 0)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
/**
|
||||
* @description: 获取列表
|
||||
* @param {*} num
|
||||
* @param {*} size
|
||||
* @return {*}
|
||||
*/
|
||||
getList({ num, size }) {
|
||||
this.req({
|
||||
url: 't_coupon_list',
|
||||
data: {
|
||||
page: num,
|
||||
coupon_id: this.optData.coupon_id
|
||||
},
|
||||
Loading: true,
|
||||
success: res => {
|
||||
if (res.status == 1) {
|
||||
if (num == 1) {
|
||||
this.listData = []
|
||||
}
|
||||
|
||||
this.listData = this.listData.concat(res.data.list)
|
||||
this.mescroll.endByPage(res.data.list.length, res.data.last_page)
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.content {
|
||||
padding: 0 0 30rpx;
|
||||
|
||||
.list-item {
|
||||
width: 710rpx;
|
||||
box-sizing: border-box;
|
||||
padding: 40rpx 30rpx 40rpx 10rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin: 0 auto 20rpx;
|
||||
|
||||
.money {
|
||||
width: 160rpx;
|
||||
text-align: center;
|
||||
// background: #f00;
|
||||
|
||||
font-size: 26rpx;
|
||||
font-family: Source Han Sans CN;
|
||||
font-weight: 400;
|
||||
color: #ffffff;
|
||||
|
||||
text {
|
||||
font-size: 42rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.info {
|
||||
flex: 1;
|
||||
padding-left: 20rpx;
|
||||
|
||||
.title {
|
||||
font-size: 32rpx;
|
||||
font-family: Source Han Sans CN;
|
||||
font-weight: 400;
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
.time {
|
||||
margin-top: 20rpx;
|
||||
|
||||
font-size: 24rpx;
|
||||
font-family: Source Han Sans CN;
|
||||
font-weight: 400;
|
||||
color: #dddddd;
|
||||
}
|
||||
}
|
||||
|
||||
.btn {
|
||||
width: 130rpx;
|
||||
height: 50rpx;
|
||||
background: linear-gradient(90deg, #2dcbff 0%, #ff95fb 100%);
|
||||
border-radius: 25rpx;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
|
||||
font-size: 28rpx;
|
||||
font-family: Source Han Sans CN;
|
||||
font-weight: 400;
|
||||
color: #222222;
|
||||
}
|
||||
|
||||
&.dis {
|
||||
filter: grayscale(1);
|
||||
|
||||
.btn {
|
||||
color: #ccc;
|
||||
background: none;
|
||||
border: 1px solid #ccc;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
1941
package/index/leitai.vue
Normal file
1941
package/index/leitai.vue
Normal file
File diff suppressed because it is too large
Load Diff
2186
package/index/lian-ji.vue
Normal file
2186
package/index/lian-ji.vue
Normal file
File diff suppressed because it is too large
Load Diff
312
package/index/sign.vue
Normal file
312
package/index/sign.vue
Normal file
|
|
@ -0,0 +1,312 @@
|
|||
<!--
|
||||
* @Date: 2023-11-14 10:09:45
|
||||
* @LastEditTime: 2023-12-08 16:50:43
|
||||
* @Description: content
|
||||
-->
|
||||
<template>
|
||||
<view class="content">
|
||||
<uni-nav-bar title="签到任务" color="#000000" left-icon="left" backgroundColor="transparent" :border="false"
|
||||
:statusBar="true" :fixed="true" @clickLeft="$c.back()"></uni-nav-bar>
|
||||
|
||||
<view class="" style="width: 686rpx; height: 328rpx; background-color: #D8D8D8; border-radius: 16rpx; margin: 56rpx auto 0;">
|
||||
|
||||
</view>
|
||||
|
||||
<view class="page-hd">
|
||||
<view class="title">签到任务</view>
|
||||
|
||||
<view class="icon" @click="$refs.rulePop.getRule(16, '签到规则')">
|
||||
<image :src="$img('/static/img/info.png')" lazy-load></image>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view v-if="signData" class="sign-box common_bg" :style="{
|
||||
backgroundImage: `url(${$img('/static/img/1_sign_bg.png')})`
|
||||
}">
|
||||
<template v-for="(item, i) in signData.sign_info">
|
||||
<view v-if="i < 6" class="sign-item" :key="i" :class="{
|
||||
act: i + 1 <= signData.days
|
||||
}">
|
||||
<view class="day">{{ i + 1 }}天</view>
|
||||
|
||||
<view class="icon">
|
||||
<!-- <image
|
||||
v-if="i + 1 <= signData.days"
|
||||
:src="$img('/static/img/1_coin.png')"
|
||||
lazy-load
|
||||
></image> -->
|
||||
|
||||
<image src="/static/common/signImg.png" lazy-load></image>
|
||||
</view>
|
||||
|
||||
<view class="num">{{ item }}{{$config.getAppSetting('currency1_name')}}</view>
|
||||
</view>
|
||||
|
||||
<view v-else class="sign-item large" :key="i" :class="{
|
||||
act: i + 1 <= signData.days
|
||||
}">
|
||||
<view class="item-l column justify-center">
|
||||
<view class="day">第七天</view>
|
||||
|
||||
<view class="num">{{ item }}{{$config.getAppSetting('currency1_name')}}</view>
|
||||
</view>
|
||||
<view class="icon relative">
|
||||
<image src="/static/common/signImg.png" lazy-load></image>
|
||||
<image src="/static/common/signImg.png" lazy-load></image>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
</view>
|
||||
|
||||
<view class="sign-btn" :class="!is_sign ? 'signYes' : 'signNo'" @click="doSign">
|
||||
<template v-if="!is_sign">立即签到</template>
|
||||
<template v-else>已签到</template>
|
||||
</view>
|
||||
|
||||
<uni-popup ref="sucPop" type="center" mask-background-color="rgba(0,0,0,0.8)">
|
||||
<view v-if="sucData" class="suc-pop common_bg center" :style="{
|
||||
backgroundImage: `url(${$img('/static/img/signBg.png')})`
|
||||
|
||||
}">
|
||||
<image class="coin-img" :src="$img('/static/img/signJinbi.png')" mode=""></image>
|
||||
<view class="coin-num">恭喜获得 {{ sucData.num }} {{$config.getAppSetting('currency1_name')}}</view>
|
||||
<view class="close icon" @click="$refs.sucPop.close()">
|
||||
<image :src="$img('/static/img/zdl.png')" lazy-load></image>
|
||||
</view>
|
||||
</view>
|
||||
</uni-popup>
|
||||
|
||||
<rule-pop ref="rulePop"></rule-pop>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
signData: [],
|
||||
sucData: '',
|
||||
is_sign: 0
|
||||
}
|
||||
},
|
||||
|
||||
onLoad(options) {
|
||||
this.getData()
|
||||
},
|
||||
methods: {
|
||||
doSign() {
|
||||
this.req({
|
||||
url: 'sign_add',
|
||||
data: {},
|
||||
success: res => {
|
||||
if (res.status == 1) {
|
||||
this.sucData = res.data
|
||||
|
||||
this.$refs.sucPop.open()
|
||||
|
||||
this.getData()
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
getData() {
|
||||
this.req({
|
||||
url: 'sign',
|
||||
data: {},
|
||||
success: res => {
|
||||
if (res.status == 1) {
|
||||
this.signData = res.data.sign
|
||||
this.is_sign = res.data.sign.is_sign
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.content {
|
||||
min-height: 100vh;
|
||||
box-sizing: border-box;
|
||||
padding: 1rpx 0 40rpx;
|
||||
|
||||
.page-hd {
|
||||
padding: 20rpx 30rpx 0;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
|
||||
.title {
|
||||
font-size: 60rpx;
|
||||
font-family: YouSheBiaoTiHei;
|
||||
font-weight: 400;
|
||||
color: #ffffff;
|
||||
text-shadow: 0rpx 0rpx 12rpx rgba(255, 135, 58, 0.8);
|
||||
}
|
||||
|
||||
.icon {
|
||||
width: 40rpx;
|
||||
height: 40rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.sign-box {
|
||||
width: 710rpx;
|
||||
box-sizing: border-box;
|
||||
padding: 30rpx 40rpx 40rpx;
|
||||
margin: 30rpx auto 0;
|
||||
display: flex;
|
||||
flex-flow: row wrap;
|
||||
justify-content: space-between;
|
||||
|
||||
.sign-item {
|
||||
width: 150rpx;
|
||||
height: 165rpx;
|
||||
background: #ff873a;
|
||||
border-radius: 20rpx;
|
||||
display: flex;
|
||||
flex-flow: column nowrap;
|
||||
justify-content: space-evenly;
|
||||
align-items: center;
|
||||
margin-top: 10rpx;
|
||||
border: 2rpx solid #FFFFFF;
|
||||
|
||||
.day {
|
||||
font-size: 24rpx;
|
||||
font-family: Source Han Sans CN;
|
||||
font-weight: 400;
|
||||
color: #dddddd;
|
||||
}
|
||||
|
||||
.icon {
|
||||
width: 50rpx;
|
||||
height: 50rpx;
|
||||
}
|
||||
|
||||
.num {
|
||||
font-size: 20rpx;
|
||||
font-family: Source Han Sans CN;
|
||||
font-weight: 400;
|
||||
color: #FFFFFF;
|
||||
}
|
||||
|
||||
&.act {
|
||||
position: relative;
|
||||
|
||||
&::after {
|
||||
content: '已签';
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
font-family: Alimama ShuHeiTi;
|
||||
font-weight: 700;
|
||||
font-size: 28rpx;
|
||||
color: #FFFFFF;
|
||||
background: rgba(0, 0, 0, 0.4);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
}
|
||||
|
||||
&.large {
|
||||
width: 310rpx;
|
||||
height: 165rpx;
|
||||
flex-flow: row nowrap;
|
||||
justify-content: space-around;
|
||||
align-items: center;
|
||||
|
||||
.item-l {
|
||||
height: 120rpx;
|
||||
display: flex;
|
||||
flex-flow: column nowrap;
|
||||
align-items: center;
|
||||
|
||||
.num {
|
||||
margin-top: 20rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.icon {
|
||||
width: 120rpx;
|
||||
height: 100rpx;
|
||||
|
||||
>image:nth-child(1) {
|
||||
width: 34rpx;
|
||||
height: 34rpx;
|
||||
position: absolute;
|
||||
left: 10rpx;
|
||||
bottom: 10rpx;
|
||||
transform: rotate(-28deg);
|
||||
}
|
||||
|
||||
>image:nth-child(2) {
|
||||
width: 72rpx;
|
||||
height: 72rpx;
|
||||
position: absolute;
|
||||
top: 10rpx;
|
||||
right: 10rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.sign-btn {
|
||||
margin: 40rpx auto 0;
|
||||
width: 400rpx;
|
||||
height: 122rpx;
|
||||
border-radius: 40rpx;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
font-size: 32rpx;
|
||||
font-family: Source Han Sans CN;
|
||||
font-weight: 400;
|
||||
background: url($imgurl+'common/jixuchou.png') no-repeat 0 0 / 100% 100%;
|
||||
}
|
||||
|
||||
.signYes {
|
||||
color: #FFFFFF;
|
||||
}
|
||||
|
||||
.signNo {
|
||||
color: #FFFFFF;
|
||||
filter: grayscale(100%);
|
||||
}
|
||||
|
||||
.suc-pop {
|
||||
width: 100vw;
|
||||
height: 642rpx;
|
||||
position: relative;
|
||||
display: flex;
|
||||
flex-flow: column nowrap;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
|
||||
|
||||
.coin-img {
|
||||
width: 345rpx;
|
||||
height: 345rpx;
|
||||
}
|
||||
|
||||
.coin-num {
|
||||
font-size: 32rpx;
|
||||
font-family: Source Han Sans CN;
|
||||
font-weight: 400;
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
.close {
|
||||
width: 378rpx;
|
||||
height: 80rpx;
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
bottom: 40rpx;
|
||||
transform: translate(-50%, 200%);
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
399
package/mine/collect.vue
Normal file
399
package/mine/collect.vue
Normal file
|
|
@ -0,0 +1,399 @@
|
|||
<template>
|
||||
<view class="content">
|
||||
<uni-nav-bar
|
||||
left-icon="left"
|
||||
title="我的收藏"
|
||||
color="#000000"
|
||||
backgroundColor="transparent"
|
||||
:fixed="true"
|
||||
:statusBar="true"
|
||||
:border="false"
|
||||
@clickLeft="$c.back"
|
||||
></uni-nav-bar>
|
||||
|
||||
<!-- 顶部标签栏 -->
|
||||
<scroll-view class="tab" scroll-x>
|
||||
<view
|
||||
class="tab-item"
|
||||
v-for="(item, i) in tabList"
|
||||
:key="i"
|
||||
:class="{ active: tabCur === i }"
|
||||
@click="tabChange(i)"
|
||||
>
|
||||
{{ item.title }}
|
||||
</view>
|
||||
</scroll-view>
|
||||
|
||||
<!-- 列表区域 -->
|
||||
<mescroll-body
|
||||
ref="mescrollRef"
|
||||
@init="mescrollInit"
|
||||
@down="downCallback"
|
||||
@up="getList"
|
||||
:down="downOption"
|
||||
:up="upOption"
|
||||
>
|
||||
<view class="list" v-if="listData.length > 0">
|
||||
<view
|
||||
class="list-item"
|
||||
v-for="(item, i) in listData"
|
||||
:key="i"
|
||||
@click="toDetail(item)"
|
||||
>
|
||||
<view class="pic">
|
||||
<image
|
||||
class="pic-img"
|
||||
:src="item.imgurl"
|
||||
mode="aspectFill"
|
||||
lazy-load
|
||||
></image>
|
||||
</view>
|
||||
<view
|
||||
class="tag"
|
||||
:style="{ backgroundImage: `url(${$img1('common/label1.png')})` }"
|
||||
>
|
||||
<text>{{ tabList[tabCur].title }}</text>
|
||||
</view>
|
||||
<view class="title ellipsis">{{ item.goods_title }}</view>
|
||||
|
||||
<view class="price-box">
|
||||
<view class="price">
|
||||
¥<text>{{ item.goods_price }}</text>
|
||||
</view>
|
||||
<view v-if="item.stock" class="stock">
|
||||
<view class="stock-num"
|
||||
>{{ item.surplus_stock }}/{{ item.stock }}</view
|
||||
>
|
||||
<image
|
||||
class="stock-icon"
|
||||
:src="$img1('index/box.png')"
|
||||
lazy-load
|
||||
></image>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<!-- 空状态 -->
|
||||
<view class="empty-state" v-if="listData.length === 0 && !isLoading">
|
||||
<image
|
||||
class="empty-image"
|
||||
:src="$img1('common/empty.png')"
|
||||
mode="aspectFit"
|
||||
></image>
|
||||
<text class="empty-text">暂无收藏内容</text>
|
||||
</view>
|
||||
</mescroll-body>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
// 下拉刷新配置
|
||||
downOption: {
|
||||
auto: false,
|
||||
},
|
||||
// 上拉加载配置
|
||||
upOption: {
|
||||
auto: true,
|
||||
page: {
|
||||
size: 10, // 每页数据数量
|
||||
},
|
||||
noMoreSize: 5, // 如果列表已无数据,可设置列表的总数量要大于等于5条才显示无更多数据
|
||||
empty: {
|
||||
use: false, // 使用自定义的空状态
|
||||
},
|
||||
},
|
||||
tabList: [], // 标签列表
|
||||
tabCur: 0, // 当前选中标签索引
|
||||
listData: [], // 列表数据
|
||||
isLoading: true, // 是否正在加载
|
||||
};
|
||||
},
|
||||
|
||||
created() {
|
||||
// 获取商品类型列表
|
||||
this.initTabList();
|
||||
},
|
||||
|
||||
methods: {
|
||||
/**
|
||||
* 初始化标签列表
|
||||
*/
|
||||
initTabList() {
|
||||
const tabList = this.$config.getGoodType();
|
||||
// 过滤掉id为0的选项
|
||||
this.tabList = tabList.filter((item) => item.id !== 0);
|
||||
},
|
||||
|
||||
/**
|
||||
* 初始化mescroll对象
|
||||
* @param {Object} mescroll mescroll实例
|
||||
*/
|
||||
mescrollInit(mescroll) {
|
||||
this.mescroll = mescroll;
|
||||
},
|
||||
|
||||
/**
|
||||
* 下拉刷新回调
|
||||
*/
|
||||
downCallback() {
|
||||
this.mescroll.resetUpScroll();
|
||||
},
|
||||
|
||||
/**
|
||||
* 跳转到详情页
|
||||
* @param {Object} item 商品项
|
||||
*/
|
||||
toDetail(item) {
|
||||
let url = "/pages/shouye/detail";
|
||||
|
||||
// 根据商品类型跳转到不同详情页
|
||||
if (item.type === 2 || item.type === 8) {
|
||||
url = "/pages/shouye/detail_wuxian";
|
||||
} else if (item.type === 9) {
|
||||
url = "/package/index/lian-ji";
|
||||
}
|
||||
|
||||
this.$c.to({
|
||||
url,
|
||||
query: {
|
||||
goods_id: item.goods_id,
|
||||
type_text: this.tabList[this.tabCur].title,
|
||||
},
|
||||
});
|
||||
},
|
||||
|
||||
/**
|
||||
* 切换标签
|
||||
* @param {Number} index 标签索引
|
||||
*/
|
||||
tabChange(index) {
|
||||
if (this.tabCur === index) return;
|
||||
|
||||
this.tabCur = index;
|
||||
this.listData = [];
|
||||
this.isLoading = true;
|
||||
|
||||
// 重置列表并滚动到顶部
|
||||
this.mescroll.resetUpScroll();
|
||||
this.mescroll.scrollTo(0, 0);
|
||||
},
|
||||
|
||||
/**
|
||||
* 获取收藏列表数据
|
||||
* @param {Object} params 分页参数
|
||||
*/
|
||||
getList({ num, size }) {
|
||||
this.isLoading = true;
|
||||
|
||||
// 使用Promise方式调用API
|
||||
this.$request
|
||||
.post("listCollect", {
|
||||
page: num,
|
||||
type: this.tabList[this.tabCur].id,
|
||||
})
|
||||
.then((res) => {
|
||||
this.isLoading = false;
|
||||
|
||||
if (res.status === 1) {
|
||||
// 第一页时清空数据
|
||||
if (num === 1) {
|
||||
this.listData = [];
|
||||
}
|
||||
|
||||
// 追加数据
|
||||
this.listData = this.listData.concat(res.data.data || []);
|
||||
|
||||
// 更新分页状态
|
||||
this.mescroll.endByPage(
|
||||
res.data.data ? res.data.data.length : 0,
|
||||
res.data.last_page || 1
|
||||
);
|
||||
} else {
|
||||
this.mescroll.endErr();
|
||||
uni.showToast({
|
||||
title: res.msg || "加载失败",
|
||||
icon: "none",
|
||||
});
|
||||
}
|
||||
})
|
||||
.catch((err) => {
|
||||
this.isLoading = false;
|
||||
this.mescroll.endErr();
|
||||
uni.showToast({
|
||||
title: "网络请求失败",
|
||||
icon: "none",
|
||||
});
|
||||
console.error(err);
|
||||
});
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.content {
|
||||
background-color: #f7f7f7;
|
||||
min-height: 100vh;
|
||||
|
||||
// 顶部标签栏
|
||||
.tab {
|
||||
white-space: nowrap;
|
||||
padding: 15rpx 0;
|
||||
|
||||
.tab-item {
|
||||
width: 88rpx;
|
||||
height: 40rpx;
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
margin-left: 30rpx;
|
||||
background-color: #ffffff;
|
||||
font-size: 20rpx;
|
||||
border-radius: 8rpx;
|
||||
color: #333333;
|
||||
transition: all 0.2s;
|
||||
|
||||
&:last-child {
|
||||
margin-right: 30rpx;
|
||||
}
|
||||
|
||||
&.active {
|
||||
background-color: #e6f791;
|
||||
font-weight: 500;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 商品列表
|
||||
.list {
|
||||
padding: 15rpx 30rpx 30rpx;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
justify-content: space-between;
|
||||
|
||||
.list-item {
|
||||
width: 330rpx;
|
||||
height: 487rpx;
|
||||
margin-top: 30rpx;
|
||||
position: relative;
|
||||
background-color: #ffffff;
|
||||
border-radius: 16rpx;
|
||||
overflow: hidden;
|
||||
box-shadow: 0 2rpx 12rpx rgba(0, 0, 0, 0.05);
|
||||
|
||||
.pic {
|
||||
width: 100%;
|
||||
height: 332rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
background-color: #f5f5f5;
|
||||
border-radius: 16rpx 16rpx 0 0;
|
||||
overflow: hidden;
|
||||
|
||||
.pic-img {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
border-radius: 16rpx 16rpx 0 0;
|
||||
}
|
||||
}
|
||||
|
||||
.tag {
|
||||
position: absolute;
|
||||
z-index: 1;
|
||||
top: 12rpx;
|
||||
left: 12rpx;
|
||||
width: 68rpx;
|
||||
height: 32rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
background-size: 100% 100%;
|
||||
|
||||
text {
|
||||
font-size: 14rpx;
|
||||
color: #ffffff;
|
||||
}
|
||||
}
|
||||
|
||||
.title {
|
||||
padding: 20rpx 20rpx 0;
|
||||
font-size: 20rpx;
|
||||
color: #333333;
|
||||
line-height: 1.4;
|
||||
height: 56rpx;
|
||||
}
|
||||
|
||||
.price-box {
|
||||
padding: 20rpx 20rpx 10rpx;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
|
||||
.price {
|
||||
font-size: 16rpx;
|
||||
color: #333333;
|
||||
|
||||
text {
|
||||
font-size: 24rpx;
|
||||
font-weight: 500;
|
||||
}
|
||||
}
|
||||
|
||||
.stock {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
.stock-num {
|
||||
font-size: 24rpx;
|
||||
color: #cccccc;
|
||||
}
|
||||
|
||||
.stock-icon {
|
||||
width: 26rpx;
|
||||
height: 26rpx;
|
||||
margin-left: 6rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 空状态
|
||||
.empty-state {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
padding: 100rpx 0;
|
||||
|
||||
.empty-image {
|
||||
width: 200rpx;
|
||||
height: 200rpx;
|
||||
margin-bottom: 20rpx;
|
||||
}
|
||||
|
||||
.empty-text {
|
||||
font-size: 28rpx;
|
||||
color: #999;
|
||||
}
|
||||
}
|
||||
|
||||
// 公共类
|
||||
.ellipsis {
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
display: -webkit-box;
|
||||
-webkit-line-clamp: 2;
|
||||
-webkit-box-orient: vertical;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
540
package/mine/coupon-detail.vue
Normal file
540
package/mine/coupon-detail.vue
Normal file
|
|
@ -0,0 +1,540 @@
|
|||
<!--
|
||||
* @Date: 2023-11-18 13:43:19
|
||||
* @LastEditTime: 2024-01-10 14:38:52
|
||||
* @Description: content
|
||||
-->
|
||||
<template>
|
||||
<view class="content">
|
||||
<uni-nav-bar title="欧气券详情" color="#fff" left-icon="left" backgroundColor="transparent" :border="false"
|
||||
:statusBar="true" :fixed="true" @clickLeft="$c.back"></uni-nav-bar>
|
||||
|
||||
<view v-if="pageData" class="coupon-item">
|
||||
<view class="coin">
|
||||
<image :src="pageData.level_img" lazy-load></image>
|
||||
</view>
|
||||
|
||||
<view class="info">
|
||||
<view class="title">{{ pageData.level_text }}</view>
|
||||
|
||||
<view class="num">需要{{ pageData.kl_num2 }}个参与者</view>
|
||||
</view>
|
||||
|
||||
<view v-if="true" class="share-ing">
|
||||
<view class="share-num">
|
||||
<text>
|
||||
{{ pageData.yl_count == pageData.kl_num2 ? '已结束' : '分享中' }}
|
||||
</text>
|
||||
|
||||
{{ pageData.yl_count }}/{{ pageData.kl_num2 }}
|
||||
</view>
|
||||
|
||||
<view class="progress">
|
||||
<cmd-progress :percent="(pageData.yl_count / pageData.kl_num2) * 100" :show-info="false"
|
||||
stroke-color="linear-gradient(90deg, #8036EB 0%, #E830E7 100%);"
|
||||
:strokeWidth="5"></cmd-progress>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view v-else class="share-end">已结束</view>
|
||||
</view>
|
||||
|
||||
<view v-if="pageData" class="hd-card">
|
||||
<view class="title">您参与的{{ pageData.level_text }}共获得</view>
|
||||
|
||||
<view class="num">
|
||||
<view class="icon">
|
||||
<image :src="$img('/static/img/signJinbi.png')" lazy-load></image>
|
||||
</view>
|
||||
|
||||
{{ pageData.yl_integral_count }}
|
||||
</view>
|
||||
|
||||
<view class="join">
|
||||
<template v-if="pageData.yl_count < pageData.kl_num2">
|
||||
只要再邀请{{
|
||||
pageData.kl_num2 * 1 - pageData.yl_count * 1
|
||||
}}位参与者就能开券
|
||||
</template>
|
||||
|
||||
<template v-else>已全部领取</template>
|
||||
</view>
|
||||
|
||||
<view class="share-btn realative">
|
||||
<button class="hide" open-type="share"></button>
|
||||
|
||||
分享好友
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view v-if="pageData" class="leader">
|
||||
<view class="avatar">
|
||||
<image :src="pageData.share_user_headimg" lazy-load></image>
|
||||
</view>
|
||||
|
||||
<view class="info">
|
||||
<view class="name hang1">
|
||||
{{ pageData.share_user_nickname }}
|
||||
</view>
|
||||
|
||||
<view class="time">{{ pageData.share_time }}</view>
|
||||
</view>
|
||||
|
||||
<view class="money-status">
|
||||
<view class="money">{{ pageData.own2 }}</view>
|
||||
|
||||
<view class="status">已领取</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view v-if="pageData" class="join-list">
|
||||
<view class="list-hd">
|
||||
<view class="title">参与列表</view>
|
||||
|
||||
<view class="num">
|
||||
已参与
|
||||
|
||||
<text>{{ pageData.yl_count }}/{{ pageData.kl_num2 }}</text>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="list-item" v-for="(item, i) in pageData.yl_list" :key="i">
|
||||
<!-- <view v-if="item.lucky_king == 1" class="win">手气最佳</view> -->
|
||||
|
||||
<view class="avatar">
|
||||
<image :src="item.headimg" lazy-load></image>
|
||||
</view>
|
||||
|
||||
<view class="info">
|
||||
<view class="name hang1">
|
||||
{{ item.nickname }}
|
||||
</view>
|
||||
|
||||
<view class="time">{{ item.addtime }}</view>
|
||||
</view>
|
||||
|
||||
<view class="money-status">
|
||||
<view class="money">{{ item.l_num }}</view>
|
||||
|
||||
<view class="status">已领取</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
optData: '',
|
||||
pageData: ''
|
||||
}
|
||||
},
|
||||
|
||||
onShareAppMessage(e) {
|
||||
const userInfo = uni.getStorageSync('userinfo')
|
||||
|
||||
return {
|
||||
title: `快来领取${userInfo.nickname}分享的${this.pageData.num}赏币的${this.pageData.level_text}`,
|
||||
imageUrl: this.pageData.level_img,
|
||||
path: '/pages/user/index' +
|
||||
this.$c.qs({
|
||||
ou_coupon_id: this.pageData.id
|
||||
})
|
||||
}
|
||||
},
|
||||
|
||||
onLoad(options) {
|
||||
this.optData = options
|
||||
|
||||
this.getData()
|
||||
},
|
||||
|
||||
methods: {
|
||||
getData() {
|
||||
this.req({
|
||||
url: 'coupon_detail',
|
||||
data: {
|
||||
coupon_id: this.optData.id
|
||||
},
|
||||
success: res => {
|
||||
if (res.status == 1) {
|
||||
this.pageData = res.data
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.content {
|
||||
padding-bottom: 30rpx;
|
||||
|
||||
.coupon-item {
|
||||
width: 710rpx;
|
||||
height: 186rpx;
|
||||
box-sizing: border-box;
|
||||
padding-left: 30rpx;
|
||||
padding-right: 40rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin: 20rpx auto 0;
|
||||
position: relative;
|
||||
background: #18112D;
|
||||
border-radius: 10rpx;
|
||||
|
||||
.coin {
|
||||
width: 150rpx;
|
||||
height: 120rpx;
|
||||
|
||||
image {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
.info {
|
||||
flex: 1;
|
||||
padding-left: 30rpx;
|
||||
|
||||
.title {
|
||||
font-size: 32rpx;
|
||||
font-family: Source Han Sans CN;
|
||||
font-weight: 400;
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
.num {
|
||||
margin-top: 10rpx;
|
||||
|
||||
font-size: 24rpx;
|
||||
font-family: Source Han Sans CN;
|
||||
font-weight: 400;
|
||||
color: #dddddd;
|
||||
}
|
||||
}
|
||||
|
||||
.share-ing {
|
||||
display: flex;
|
||||
flex-flow: column nowrap;
|
||||
align-items: center;
|
||||
|
||||
.share-num {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
font-size: 24rpx;
|
||||
font-family: Source Han Sans CN;
|
||||
font-weight: 400;
|
||||
color: #ffffff;
|
||||
|
||||
text {
|
||||
font-size: 24rpx;
|
||||
font-family: Source Han Sans CN;
|
||||
font-weight: 400;
|
||||
color: #ffffff;
|
||||
|
||||
background: linear-gradient(0deg,
|
||||
#6adeff 0%,
|
||||
#7ab5ff 50%,
|
||||
#ff7feb 100%);
|
||||
background-clip: text;
|
||||
}
|
||||
}
|
||||
|
||||
.progress {
|
||||
width: 150rpx;
|
||||
margin-top: 10rpx;
|
||||
|
||||
/deep/.cmd-progress-inner {
|
||||
background-color: rgba(255, 255, 255, 0.2);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.share-end {
|
||||
padding-right: 20rpx;
|
||||
|
||||
font-size: 24rpx;
|
||||
font-family: Source Han Sans CN;
|
||||
font-weight: 400;
|
||||
color: #dddddd;
|
||||
}
|
||||
}
|
||||
|
||||
.hd-card {
|
||||
margin: 20rpx auto 0;
|
||||
width: 710rpx;
|
||||
height: 270rpx;
|
||||
display: flex;
|
||||
flex-flow: column nowrap;
|
||||
align-items: flex-start;
|
||||
justify-content: center;
|
||||
box-sizing: border-box;
|
||||
padding: 0 50rpx;
|
||||
position: relative;
|
||||
background: url($imgurl+'img/2_money_card_bg.png') no-repeat 0 0 / 100% 100%;
|
||||
|
||||
.title {
|
||||
font-size: 28rpx;
|
||||
font-family: Source Han Sans CN;
|
||||
font-weight: 400;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.num {
|
||||
min-width: 270rpx;
|
||||
box-sizing: border-box;
|
||||
// padding: 0 20rpx;
|
||||
height: 60rpx;
|
||||
// background: linear-gradient(
|
||||
// 90deg,
|
||||
// rgba(208, 209, 255, 0.2) 0%,
|
||||
// rgba(255, 255, 255, 0) 100%
|
||||
// );
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin: 20rpx 0;
|
||||
|
||||
.icon {
|
||||
width: 40rpx;
|
||||
height: 40rpx;
|
||||
margin-right: 10rpx;
|
||||
}
|
||||
|
||||
font-size: 36rpx;
|
||||
font-family: Source Han Sans CN;
|
||||
font-weight: 400;
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
.join {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
// .icon {
|
||||
// width: 28rpx;
|
||||
// height: 28rpx;
|
||||
// margin-right: 10rpx;
|
||||
// }
|
||||
|
||||
font-size: 24rpx;
|
||||
font-family: Source Han Sans CN;
|
||||
font-weight: 400;
|
||||
color: #dddddd;
|
||||
|
||||
// text {
|
||||
// color: #d0d1ff;
|
||||
// }
|
||||
}
|
||||
|
||||
.share-btn {
|
||||
position: absolute;
|
||||
right: 40rpx;
|
||||
top: 50%;
|
||||
transform: translateY(-50%);
|
||||
width: 180rpx;
|
||||
height: 70rpx;
|
||||
background: linear-gradient(90deg, #8036EB 0%, #E830E7 100%);
|
||||
border-radius: 35rpx;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
|
||||
font-size: 28rpx;
|
||||
font-family: Source Han Sans CN;
|
||||
font-weight: 400;
|
||||
color: #ffffff;
|
||||
}
|
||||
}
|
||||
|
||||
.leader {
|
||||
margin: 20rpx auto 0;
|
||||
width: 690rpx;
|
||||
box-sizing: border-box;
|
||||
padding: 30rpx 30rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
box-shadow: 0rpx 0rpx 20rpx 0rpx rgba(159, 114, 255, 0.5);
|
||||
border: 1px solid #9331D4;
|
||||
|
||||
.avatar {
|
||||
width: 80rpx;
|
||||
height: 80rpx;
|
||||
background: #9d9d9d;
|
||||
border: 1px solid #cccccc;
|
||||
border-radius: 50%;
|
||||
overflow: hidden;
|
||||
|
||||
image {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
.info {
|
||||
width: 300rpx;
|
||||
padding-left: 20rpx;
|
||||
|
||||
.name {
|
||||
font-size: 28rpx;
|
||||
font-family: Source Han Sans CN;
|
||||
font-weight: 400;
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
.time {
|
||||
font-size: 24rpx;
|
||||
font-family: Source Han Sans CN;
|
||||
font-weight: 400;
|
||||
color: #dddddd;
|
||||
}
|
||||
}
|
||||
|
||||
.money-status {
|
||||
flex: 1;
|
||||
display: flex;
|
||||
flex-flow: column nowrap;
|
||||
align-items: flex-end;
|
||||
|
||||
.money {
|
||||
font-size: 28rpx;
|
||||
font-family: Source Han Sans CN;
|
||||
font-weight: 400;
|
||||
color: #08F6BB;
|
||||
}
|
||||
|
||||
.status {
|
||||
margin-top: 10rpx;
|
||||
|
||||
font-size: 24rpx;
|
||||
font-family: Source Han Sans CN;
|
||||
font-weight: 400;
|
||||
color: #dddddd;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.join-list {
|
||||
width: 690rpx;
|
||||
margin: 30rpx auto 0;
|
||||
box-sizing: border-box;
|
||||
border: 1px solid rgba(208, 209, 255, 0.2);
|
||||
background: #18112D;
|
||||
padding: 0 30rpx 10rpx;
|
||||
|
||||
.list-hd {
|
||||
padding: 30rpx 0;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
|
||||
font-size: 28rpx;
|
||||
font-family: Source Han Sans CN;
|
||||
font-weight: 400;
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
.num {
|
||||
font-size: 28rpx;
|
||||
font-family: Source Han Sans CN;
|
||||
font-weight: 400;
|
||||
color: #ffffff;
|
||||
|
||||
text {
|
||||
color: #08F6BB;
|
||||
}
|
||||
}
|
||||
|
||||
.list-item {
|
||||
margin-bottom: 20rpx;
|
||||
box-sizing: border-box;
|
||||
padding: 20rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
background: rgba(208, 209, 255, 0.1);
|
||||
border-radius: 10rpx;
|
||||
position: relative;
|
||||
|
||||
.win {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
z-index: 1;
|
||||
padding: 0 10rpx;
|
||||
height: 34rpx;
|
||||
background: linear-gradient(90deg,
|
||||
#6adeff 0%,
|
||||
#7ab5ff 50%,
|
||||
#ff7feb 100%);
|
||||
border-radius: 4rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
font-size: 22rpx;
|
||||
font-family: Source Han Sans CN;
|
||||
font-weight: 400;
|
||||
color: #222222;
|
||||
}
|
||||
|
||||
.avatar {
|
||||
width: 80rpx;
|
||||
height: 80rpx;
|
||||
background: #9d9d9d;
|
||||
border: 1px solid #cccccc;
|
||||
border-radius: 50%;
|
||||
overflow: hidden;
|
||||
|
||||
image {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
.info {
|
||||
width: 300rpx;
|
||||
padding-left: 20rpx;
|
||||
|
||||
.name {
|
||||
font-size: 28rpx;
|
||||
font-family: Source Han Sans CN;
|
||||
font-weight: 400;
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
.time {
|
||||
font-size: 24rpx;
|
||||
font-family: Source Han Sans CN;
|
||||
font-weight: 400;
|
||||
color: #dddddd;
|
||||
}
|
||||
}
|
||||
|
||||
.money-status {
|
||||
flex: 1;
|
||||
display: flex;
|
||||
flex-flow: column nowrap;
|
||||
align-items: flex-end;
|
||||
|
||||
.money {
|
||||
font-size: 28rpx;
|
||||
font-family: Source Han Sans CN;
|
||||
font-weight: 400;
|
||||
color: #08F6BB;
|
||||
}
|
||||
|
||||
.status {
|
||||
margin-top: 10rpx;
|
||||
|
||||
font-size: 24rpx;
|
||||
font-family: Source Han Sans CN;
|
||||
font-weight: 400;
|
||||
color: #dddddd;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
899
package/mine/equity.vue
Normal file
899
package/mine/equity.vue
Normal file
|
|
@ -0,0 +1,899 @@
|
|||
<!--
|
||||
* @Date: 2023-11-17 15:19:49
|
||||
* @LastEditTime: 2023-12-02 17:20:01
|
||||
* @Description: content
|
||||
-->
|
||||
<template>
|
||||
<view class="content">
|
||||
<uni-nav-bar left-icon="left" title="权益中心" color="#000000" backgroundColor="transparent" :fixed="true"
|
||||
:statusBar="true" :border="false" @clickLeft="$c.back"></uni-nav-bar>
|
||||
<view class="">
|
||||
<view v-if="pageData" class="user-card br20">
|
||||
<!-- <view class="avatar">
|
||||
<image :src="pageData.user_img" lazy-load mode="aspectFill"></image>
|
||||
</view> -->
|
||||
<view class="lv">LV.{{ pageData.quan_yi_level.level }}</view>
|
||||
|
||||
<view class="rule-btn" @click="toRule">
|
||||
<uni-icons type="info-filled" color="#8A8A8A"></uni-icons>
|
||||
</view>
|
||||
|
||||
|
||||
<view class="" style="position: absolute; top: 90rpx; left: 32rpx;">
|
||||
<view class="need">
|
||||
<template v-if="pageData.quan_yi_level.cha >= 0">
|
||||
差{{ pageData.quan_yi_level.cha }}欧气值升级
|
||||
</template>
|
||||
<template v-else-if="pageData.quan_yi_level.cha == -1">已满级</template>
|
||||
</view>
|
||||
<view class="progress-buy">
|
||||
<view class="progress">
|
||||
<cmd-progress :percent="pageData.quan_yi_level.jindu" :show-info="false"
|
||||
stroke-color="#FF862D;" :strokeWidth="5"></cmd-progress>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="buy" @click="$c.to({ type: 3, url: '/pages/shouye/index' })">
|
||||
<text>去购买</text>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
|
||||
<view v-if="pageData" class="prize-card">
|
||||
|
||||
<view class="mask flex">
|
||||
<view class="prize-item1" :key="-1">
|
||||
<view class=""></view>
|
||||
|
||||
<view class="center" style="color: #333333; font-size: 24rpx;">
|
||||
普通奖励
|
||||
</view>
|
||||
|
||||
<view class="center" style="color: #333333; font-size: 24rpx;">
|
||||
高级奖励
|
||||
</view>
|
||||
<view class="get-btn">
|
||||
|
||||
</view>
|
||||
</view>
|
||||
<scroll-view class="prize-list" scroll-x :scroll-into-view="curLvId">
|
||||
<view class="prize-item" v-for="(item, i) in pageData.level_list" :key="i"
|
||||
:id="`prize-item${item.level}`">
|
||||
<view class="lv">{{ item.level }}级</view>
|
||||
|
||||
<view class="prize center" @click="preview(item)">
|
||||
<image :src="$img1('my/quan.png')" mode="aspectFit"></image>
|
||||
</view>
|
||||
|
||||
<view class="prize center" @click="preview(item)" style="background: #FFFFFF;">
|
||||
<image :src="$img1('my/liwu.png')" mode="aspectFit"></image>
|
||||
</view>
|
||||
<view v-if="item.is_ling == 1 && item.pu_jiang.length>0" class="get-btn center"
|
||||
@click="doReceive(item)">
|
||||
领取
|
||||
</view>
|
||||
</view>
|
||||
</scroll-view>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
</view>
|
||||
|
||||
|
||||
<view class="task">
|
||||
<view class="task-tab center">
|
||||
<view class="task-tab-item align-end" v-for="(item, i) in tabList" :key="i" :class="{
|
||||
act: tabCur == i
|
||||
}" @click="tabChange(i)">
|
||||
<!-- <image v-if="i == 0" :src="$img1('index/ljLeft.png')"></image> -->
|
||||
<text class="center">{{ item.title }}</text>
|
||||
<!-- <image v-if="i == 1" :src="$img1('index/ljRight.png')"></image> -->
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="task-item" v-for="(item, i) in taskList" :key="i">
|
||||
<view class="task-l">
|
||||
<view class="title">{{ item.title }}<text
|
||||
class="ml10">({{ item.ywc_count }}/{{ item.number }})</text></view>
|
||||
|
||||
<view class="num">欧气值
|
||||
<text>+{{ item.z_number }}</text>
|
||||
</view>
|
||||
|
||||
<!-- <view class="progress">
|
||||
<view class="progress-inner">
|
||||
<cmd-progress :percent="item.percentage" :show-info="false" stroke-color="#B07AF3;"
|
||||
:strokeWidth="8"></cmd-progress>
|
||||
</view>
|
||||
</view> -->
|
||||
</view>
|
||||
|
||||
<view class="task-r">
|
||||
<view v-if="item.is_complete == 0" class="btn act" @click="toPage(item.id)">
|
||||
<text>去完成</text>
|
||||
</view>
|
||||
|
||||
<view v-if="item.is_complete == 1" class="btn" style="background-color: #333333; color: #D8FD24;"
|
||||
@click="completeTask(item)">
|
||||
<text>待领取</text>
|
||||
</view>
|
||||
|
||||
<view v-if="item.is_complete == 2" class="btn dis">
|
||||
<text>已领取</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<uni-popup ref="detailPop" type="center" mask-background-color="rgba(0,0,0,0.9)">
|
||||
<view v-if="previewData" class="detail-pop">
|
||||
|
||||
<view class="title">
|
||||
{{ previewData.level }}级普通奖励
|
||||
</view>
|
||||
<view class="prize-desc">
|
||||
<view>只有等级达到了当前等级,方可领取下方奖励哦~</view>
|
||||
|
||||
<view>每一级奖励只可领取一次,领取后请在有效期内使用!</view>
|
||||
</view>
|
||||
<scroll-view class="jiang-list" scroll-x>
|
||||
<view class="jiang-item" v-for="(item, i) in previewData.pu_jiang" :key="i">
|
||||
<view class="pic">
|
||||
<image :src="$img1('my/quan.png')" mode="aspectFit"></image>
|
||||
|
||||
<!-- <view v-if="item.z_num" class="num">×{{ item.z_num }}</view> -->
|
||||
</view>
|
||||
|
||||
<view class="item-title hang1">{{ item.title }}</view>
|
||||
</view>
|
||||
</scroll-view>
|
||||
<view class="border" v-if="previewData.gao_jiang.length>0"></view>
|
||||
<template v-if="previewData.gao_jiang.length>0">
|
||||
<view class="title" style="color: #F5C783;">
|
||||
<text>{{ previewData.level }}级高级奖励</text>
|
||||
</view>
|
||||
<view class="prize-desc">
|
||||
<view>完成任务后您将从以下奖品中随机获得一件</view>
|
||||
</view>
|
||||
|
||||
<scroll-view class="jiang-list" scroll-x>
|
||||
<view class="jiang-item" v-for="(item, i) in previewData.gao_jiang" :key="i">
|
||||
<view class="pic">
|
||||
<image :src="item.imgurl" lazy-load></image>
|
||||
|
||||
<!-- <view v-if="item.z_num" class="num">×{{ item.z_num }}</view> -->
|
||||
</view>
|
||||
<view class="item-title hang1">{{ item.title }}</view>
|
||||
</view>
|
||||
</scroll-view>
|
||||
</template>
|
||||
|
||||
</view>
|
||||
<view class="close icon" @click="$refs.detailPop.close()">
|
||||
<image :src="$img('/static/common/close.png')" lazy-load></image>
|
||||
</view>
|
||||
</uni-popup>
|
||||
|
||||
<uni-popup ref="resPop" type="center" mask-background-color="rgba(0,0,0,0.8)">
|
||||
<view class="res-pop common_bg column center">
|
||||
<view class="res-pop-hd"></view>
|
||||
<view class="res-pop-main justify-evenly align-center">
|
||||
<view class="column align-center" v-for="(item, i) in prizeRes" :key="i">
|
||||
<view class="ziti">
|
||||
<text v-if="i==0">普通奖励</text>
|
||||
<text v-if="i==1" style="color: #F4C783;">高级奖励</text>
|
||||
</view>
|
||||
<image :src="i==1?$img1('my/liwu.png'):$img1('my/quan.png')" mode="aspectFit"></image>
|
||||
<text class="mt10">{{item.title}}</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="res-pop-ft mt20 center">
|
||||
<view class="ft-btn common_bg justify-center align-center" :style="{
|
||||
backgroundImage: `url(${$img1('common/jixuchou.png')})`
|
||||
}" @click="$refs.resPop.close()">
|
||||
<text>确定</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</uni-popup>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
tabList: [{
|
||||
id: 1,
|
||||
title: '每日任务'
|
||||
},
|
||||
{
|
||||
id: 2,
|
||||
title: '每周任务'
|
||||
}
|
||||
],
|
||||
tabCur: 0,
|
||||
pageData: '',
|
||||
taskList: [],
|
||||
curLvId: '',
|
||||
previewData: '',
|
||||
prizeRes: ''
|
||||
}
|
||||
},
|
||||
|
||||
onLoad(options) {
|
||||
// this.getUserInfo()
|
||||
this.getData()
|
||||
this.tabChange(this.tabCur)
|
||||
},
|
||||
|
||||
onReady() {
|
||||
// this.$refs.detailPop.open()
|
||||
// this.$refs.resPop.open()
|
||||
},
|
||||
|
||||
methods: {
|
||||
toRule() {
|
||||
uni.setStorageSync('_qy_rule', this.pageData.danye_list)
|
||||
|
||||
this.$c.to({
|
||||
url: '/package/mine/qy-rule'
|
||||
})
|
||||
},
|
||||
|
||||
preview(item) {
|
||||
this.previewData = item
|
||||
this.$refs.detailPop.open()
|
||||
},
|
||||
|
||||
doReceive(item) {
|
||||
this.req({
|
||||
url: 'quan_yi_ling',
|
||||
data: {
|
||||
id: item.id
|
||||
},
|
||||
success: res => {
|
||||
if (res.status == 1) {
|
||||
this.prizeRes = res.data
|
||||
|
||||
this.$refs.resPop.open()
|
||||
|
||||
this.getData()
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
completeTask(item) {
|
||||
this.req({
|
||||
url: 'ling_task',
|
||||
data: {
|
||||
task_list_id: item.id
|
||||
},
|
||||
success: res => {
|
||||
if (res.status == 1) {
|
||||
this.$c.toast({
|
||||
title: res.msg,
|
||||
duration: 500,
|
||||
success: () => {
|
||||
this.getData()
|
||||
this.tabChange(this.tabCur)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
getTask() {
|
||||
this.req({
|
||||
url: 'task_list',
|
||||
data: {
|
||||
type: this.tabList[this.tabCur].id
|
||||
},
|
||||
success: res => {
|
||||
if (res.status == 1) {
|
||||
this.taskList = res.data.task_list
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
getData() {
|
||||
this.req({
|
||||
url: 'quan_yi',
|
||||
data: {},
|
||||
Loading: true,
|
||||
success: res => {
|
||||
if (res.status == 1) {
|
||||
this.curLvId = `prize-item${res.data.quan_yi_level.level}`
|
||||
|
||||
this.pageData = res.data
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
getUserInfo() {
|
||||
this.req({
|
||||
url: 'user',
|
||||
data: {},
|
||||
Loading: true,
|
||||
success: res => {
|
||||
if (res.status == 1) {
|
||||
this.userInfo = res.data.userinfo
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
tabChange(i) {
|
||||
this.tabCur = i
|
||||
|
||||
this.getTask()
|
||||
},
|
||||
|
||||
//跳转页面
|
||||
toPage(id) {
|
||||
if (id == 1) {
|
||||
this.$c.to({
|
||||
url: '/pages/user/tui-guang'
|
||||
})
|
||||
} else {
|
||||
this.$c.to({
|
||||
type: 3,
|
||||
url: '/pages/shouye/index'
|
||||
})
|
||||
}
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.content {
|
||||
padding: 30rpx;
|
||||
background-color: #F7F7F7;
|
||||
min-height: 100vh;
|
||||
|
||||
.user-card {
|
||||
margin: 40rpx auto 0;
|
||||
width: 686rpx;
|
||||
height: 150rpx;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
padding: 38rpx 40rpx 48rpx 52rpx;
|
||||
background: #FFFFFF;
|
||||
|
||||
.avatar {
|
||||
width: 100rpx;
|
||||
height: 100rpx;
|
||||
background: #9d9d9d;
|
||||
border: 1px solid #cccccc;
|
||||
border-radius: 50%;
|
||||
overflow: hidden;
|
||||
|
||||
image {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
.lv {
|
||||
position: absolute;
|
||||
left: 32rpx;
|
||||
top: 24rpx;
|
||||
font-weight: 700;
|
||||
font-size: 48rpx;
|
||||
color: #333333;
|
||||
}
|
||||
|
||||
.need {
|
||||
margin-top: 10rpx;
|
||||
font-size: 16rpx;
|
||||
font-weight: 400;
|
||||
color: #4C4C4C;
|
||||
}
|
||||
|
||||
.progress-buy {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
margin-top: 8rpx;
|
||||
|
||||
.progress {
|
||||
width: 430rpx;
|
||||
height: 14rpx;
|
||||
|
||||
/deep/.cmd-progress-inner {
|
||||
background: #CCCCCC;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.buy {
|
||||
position: absolute;
|
||||
top: 48rpx;
|
||||
right: 32rpx;
|
||||
width: 150rpx;
|
||||
height: 60rpx;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
background: #333333;
|
||||
border-radius: 16rpx;
|
||||
|
||||
text {
|
||||
font-size: 20rpx;
|
||||
color: #CDEF27;
|
||||
}
|
||||
}
|
||||
|
||||
.rule-btn {
|
||||
position: absolute;
|
||||
left: 142rpx;
|
||||
top: 36rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
font-size: 28rpx;
|
||||
font-weight: 400;
|
||||
color: #ffffff;
|
||||
}
|
||||
}
|
||||
|
||||
.common_bg {}
|
||||
|
||||
.prize-card {
|
||||
margin: 20rpx auto 0;
|
||||
width: 686rpx;
|
||||
box-sizing: border-box;
|
||||
display: flex;
|
||||
background-color: #FFFFFF;
|
||||
border-radius: 16rpx;
|
||||
|
||||
.mask {
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
.prize-list {
|
||||
white-space: nowrap;
|
||||
width: calc(100% - 140rpx);
|
||||
border-radius: 20rpx;
|
||||
height: 460rpx;
|
||||
margin-top: -3rpx;
|
||||
}
|
||||
|
||||
.prize-item1 {
|
||||
display: inline-flex;
|
||||
flex-direction: column;
|
||||
width: 140rpx;
|
||||
height: 100%;
|
||||
box-sizing: border-box;
|
||||
|
||||
>view:nth-child(1) {
|
||||
width: 100%;
|
||||
height: 46rpx;
|
||||
line-height: 46rpx;
|
||||
text-align: center;
|
||||
font-size: 24rpx;
|
||||
font-weight: 400;
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
>view:nth-child(2) {
|
||||
width: 100%;
|
||||
height: 154rpx;
|
||||
font-weight: 400;
|
||||
font-size: 36rpx;
|
||||
color: #FFFFFF;
|
||||
}
|
||||
|
||||
>view:nth-child(3) {
|
||||
width: 100%;
|
||||
height: 152rpx;
|
||||
font-weight: 400;
|
||||
font-size: 36rpx;
|
||||
color: #F4E1CF;
|
||||
}
|
||||
}
|
||||
|
||||
.prize-item {
|
||||
display: inline-flex;
|
||||
flex-flow: column;
|
||||
align-items: center;
|
||||
width: 144rpx;
|
||||
height: 100%;
|
||||
box-sizing: border-box;
|
||||
// background-color: #FFFFFF;
|
||||
|
||||
.lv {
|
||||
width: 100%;
|
||||
height: 46rpx;
|
||||
line-height: 46rpx;
|
||||
text-align: center;
|
||||
font-size: 24rpx;
|
||||
font-weight: 400;
|
||||
color: #4C4C4C;
|
||||
}
|
||||
|
||||
.prize {
|
||||
background: #FFFFFF;
|
||||
width: 144rpx;
|
||||
height: 154rpx;
|
||||
|
||||
image {
|
||||
width: 86rpx;
|
||||
height: 86rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.get-btn {
|
||||
margin-top: 30rpx;
|
||||
width: 104rpx;
|
||||
height: 56rpx;
|
||||
background: url($imgurl+'common/jixuchou.png') no-repeat 0 0 / 100% 100%;
|
||||
font-weight: 400;
|
||||
font-size: 24rpx;
|
||||
color: #333333;
|
||||
}
|
||||
|
||||
&.out {
|
||||
.prize {
|
||||
background: none;
|
||||
|
||||
image {
|
||||
width: 80rpx;
|
||||
height: 80rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.line {
|
||||
background: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.task {
|
||||
margin: 30rpx auto 0;
|
||||
width: 690rpx;
|
||||
background: #FFFFFF;
|
||||
box-sizing: border-box;
|
||||
padding: 0 30rpx 20rpx;
|
||||
border-radius: 16rpx;
|
||||
|
||||
.task-tab {
|
||||
padding: 30rpx 0;
|
||||
|
||||
.task-tab-item {
|
||||
position: relative;
|
||||
font-weight: 400;
|
||||
font-size: 24rpx;
|
||||
color: #8A8A8A;
|
||||
|
||||
>text {
|
||||
width: 140rpx;
|
||||
height: 60rpx;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
>image {
|
||||
width: 39rpx;
|
||||
height: 42rpx;
|
||||
}
|
||||
|
||||
&.act {
|
||||
font-weight: 400;
|
||||
color: #333333;
|
||||
|
||||
&::before {
|
||||
content: '';
|
||||
display: block;
|
||||
width: 32rpx;
|
||||
height: 4rpx;
|
||||
background: #333333;
|
||||
border-radius: 30rpx;
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
bottom: 4rpx;
|
||||
transform: translateX(-50%);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.task-item {
|
||||
padding: 20rpx 0;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
|
||||
.task-l {
|
||||
.title {
|
||||
font-size: 24rpx;
|
||||
font-weight: 400;
|
||||
color: #333333;
|
||||
}
|
||||
|
||||
.num {
|
||||
margin: 20rpx 0 4rpx;
|
||||
font-size: 20rpx;
|
||||
font-weight: 400;
|
||||
color: #8A8A8A;
|
||||
|
||||
}
|
||||
|
||||
.progress {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
font-size: 24rpx;
|
||||
font-weight: 400;
|
||||
color: #cccccc;
|
||||
|
||||
.progress-inner {
|
||||
width: 300rpx;
|
||||
margin-right: 6rpx;
|
||||
|
||||
/deep/.cmd-progress-inner {
|
||||
background: #F0F0F0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.task-r {
|
||||
flex: 1;
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
padding-left: 30rpx;
|
||||
|
||||
.btn {
|
||||
width: 128rpx;
|
||||
height: 60rpx;
|
||||
border-radius: 56rpx;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
font-size: 24rpx;
|
||||
background: rgba(10, 6, 15, 0);
|
||||
border-radius: 16rpx;
|
||||
|
||||
&.act {
|
||||
background: #E6F791;
|
||||
border: 0;
|
||||
|
||||
text {
|
||||
font-weight: 400;
|
||||
color: #333333;
|
||||
}
|
||||
}
|
||||
|
||||
&.dis {
|
||||
background: #D1D1D1;
|
||||
|
||||
text {
|
||||
color: #999999;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.close {
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
transform: translateX(-50%);
|
||||
bottom: -86rpx;
|
||||
width: 48rpx;
|
||||
height: 48rpx;
|
||||
}
|
||||
|
||||
.detail-pop {
|
||||
width: 650rpx;
|
||||
display: flex;
|
||||
flex-flow: column nowrap;
|
||||
align-items: center;
|
||||
position: relative;
|
||||
box-sizing: border-box;
|
||||
padding: 1rpx 30rpx 30rpx;
|
||||
background: #FFFFFF;
|
||||
border-radius: 30rpx;
|
||||
|
||||
|
||||
|
||||
.icon {}
|
||||
|
||||
.title {
|
||||
margin-top: 50rpx;
|
||||
width: 380rpx;
|
||||
height: 60rpx;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
font-weight: 600;
|
||||
font-size: 28rpx;
|
||||
color: #333333;
|
||||
|
||||
|
||||
&.act {
|
||||
text {
|
||||
font-size: 32rpx;
|
||||
font-weight: 400;
|
||||
color: transparent;
|
||||
|
||||
background: linear-gradient(90deg,
|
||||
#6adeff 0%,
|
||||
#7ab5ff 50%,
|
||||
#ff7feb 100%);
|
||||
background-clip: text;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.common_bg {}
|
||||
|
||||
.prize-desc {
|
||||
margin-top: 40rpx;
|
||||
text-align: center;
|
||||
font-size: 20rpx;
|
||||
font-weight: 500;
|
||||
color: #8A8A8A;
|
||||
|
||||
view+view {
|
||||
margin-top: 10rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.jiang-list {
|
||||
width: auto;
|
||||
max-width: 100%;
|
||||
white-space: nowrap;
|
||||
margin-top: 40rpx;
|
||||
// width: 500rpx;
|
||||
|
||||
.jiang-item {
|
||||
width: 150rpx;
|
||||
display: inline-block;
|
||||
margin-left: 30rpx;
|
||||
|
||||
&:first-child {
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
.pic {
|
||||
width: 100%;
|
||||
height: 150rpx;
|
||||
background: #FFF1AF;
|
||||
border-radius: 10rpx;
|
||||
box-sizing: border-box;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
|
||||
image {
|
||||
width: 110rpx;
|
||||
height: 110rpx;
|
||||
}
|
||||
|
||||
.num {
|
||||
padding: 0 14rpx;
|
||||
height: 32rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
background: linear-gradient(90deg, #729fdb 0%, #d0dbff 100%);
|
||||
position: absolute;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
z-index: 1;
|
||||
border-radius: 0 10rpx 0 10rpx;
|
||||
|
||||
font-size: 20rpx;
|
||||
font-weight: 400;
|
||||
color: #222222;
|
||||
}
|
||||
}
|
||||
|
||||
.item-title {
|
||||
width: 100%;
|
||||
margin-top: 10rpx;
|
||||
text-align: center;
|
||||
font-size: 20rpx;
|
||||
font-weight: 400;
|
||||
color: #333333;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.border {
|
||||
margin-top: 40rpx;
|
||||
|
||||
width: 570rpx;
|
||||
height: 1rpx;
|
||||
background: #666666;
|
||||
}
|
||||
|
||||
.detail-list {
|
||||
margin-top: 30rpx;
|
||||
width: 580rpx;
|
||||
max-height: 400rpx;
|
||||
|
||||
.list-content {
|
||||
display: flex;
|
||||
flex-flow: row wrap;
|
||||
justify-content: space-evenly;
|
||||
|
||||
.list-item {
|
||||
width: 150rpx;
|
||||
height: 150rpx;
|
||||
background: #111111;
|
||||
border: 1px solid #666666;
|
||||
border-radius: 10rpx;
|
||||
overflow: hidden;
|
||||
margin: 0 0 30rpx;
|
||||
|
||||
image {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.res-pop {
|
||||
width: 100%;
|
||||
height: 100vh;
|
||||
position: relative;
|
||||
|
||||
.res-pop-hd {
|
||||
width: 380rpx;
|
||||
height: 104rpx;
|
||||
background: url($imgurl+'common/gxhd.png') no-repeat 0 0 / 100% 100%;
|
||||
}
|
||||
|
||||
&-main {
|
||||
width: 660rpx;
|
||||
height: 430rpx;
|
||||
margin: 40rpx 0 0;
|
||||
box-sizing: border-box;
|
||||
background: #FFFFFF;
|
||||
border-radius: 16rpx;
|
||||
|
||||
>view {
|
||||
>view {
|
||||
font-weight: 400;
|
||||
font-size: 36rpx;
|
||||
color: #333333;
|
||||
}
|
||||
|
||||
>image {
|
||||
width: 130rpx;
|
||||
height: 130rpx;
|
||||
}
|
||||
|
||||
>text {
|
||||
font-weight: 400;
|
||||
font-size: 24rpx;
|
||||
color: #333333;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&-ft {
|
||||
width: 750rpx;
|
||||
margin-top: 40rpx;
|
||||
|
||||
.ft-btn {
|
||||
width: 220rpx;
|
||||
height: 72rpx;
|
||||
font-weight: 400;
|
||||
font-size: 24rpx;
|
||||
color: #333333;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
114
package/mine/qy-rule.vue
Normal file
114
package/mine/qy-rule.vue
Normal file
|
|
@ -0,0 +1,114 @@
|
|||
<!--
|
||||
* @Date: 2023-11-17 17:44:17
|
||||
* @LastEditTime: 2023-11-30 13:48:41
|
||||
* @Description: content
|
||||
-->
|
||||
<template>
|
||||
<view class="content">
|
||||
<view class="navLeft align-center" :style="{top:$sys().statusBarHeight+'px'}" @tap="$c.back(1)">
|
||||
<uni-icons type="left" color="#000000"></uni-icons>
|
||||
<!-- <view class="">权益说明</view> -->
|
||||
</view>
|
||||
<view class="column center header">
|
||||
|
||||
</view>
|
||||
<view class="rule-list">
|
||||
<view class="rule-item common_bg" v-for="(item, i) in listData" :key="i">
|
||||
<view class="rule-title hang1 relative">{{ item.title }}</view>
|
||||
<scroll-view class="rule-content" scroll-y>
|
||||
<view v-html="item.content"></view>
|
||||
</scroll-view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
listData: []
|
||||
}
|
||||
},
|
||||
|
||||
onLoad(options) {
|
||||
this.listData = uni.getStorageSync('_qy_rule')
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.navLeft {
|
||||
position: fixed;
|
||||
left: 30rpx;
|
||||
z-index: 100;
|
||||
height: 44px;
|
||||
|
||||
>view {
|
||||
font-weight: 400;
|
||||
font-size: 50rpx;
|
||||
color: #FFFFFF;
|
||||
}
|
||||
}
|
||||
|
||||
.header {
|
||||
width: 750rpx;
|
||||
height: 380rpx;
|
||||
background: url($imgurl+'my/qysm.png');
|
||||
background-size: cover;
|
||||
background-position: center;
|
||||
|
||||
>text:nth-child(1) {
|
||||
font-weight: 400;
|
||||
font-size: 72rpx;
|
||||
color: #FFFFFF;
|
||||
}
|
||||
|
||||
>text:nth-child(2) {
|
||||
font-weight: 400;
|
||||
font-size: 24rpx;
|
||||
color: #FFFFFF;
|
||||
}
|
||||
}
|
||||
|
||||
.content {
|
||||
min-height: 100vh;
|
||||
background: #FFFFFF;
|
||||
|
||||
.rule-list {
|
||||
padding: 0 30rpx 30rpx;
|
||||
|
||||
.rule-item {
|
||||
height: 460rpx;
|
||||
margin-top: 30rpx;
|
||||
background: #FCF8DB;
|
||||
border-radius: 20rpx;
|
||||
|
||||
.rule-title {
|
||||
padding: 50rpx 40rpx 30rpx;
|
||||
// text-align: center;
|
||||
font-weight: 500;
|
||||
font-size: 28rpx;
|
||||
color: #EE871F;
|
||||
|
||||
|
||||
}
|
||||
|
||||
.rule-content {
|
||||
// background: #f00;
|
||||
height: 300rpx;
|
||||
padding: 0 40rpx;
|
||||
font-size: 24rpx;
|
||||
font-weight: 400;
|
||||
color: #333333;
|
||||
line-height: 48rpx;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.common_bg {}
|
||||
}
|
||||
|
||||
.common_bg {}
|
||||
</style>
|
||||
146
package/mine/skill-card.vue
Normal file
146
package/mine/skill-card.vue
Normal file
|
|
@ -0,0 +1,146 @@
|
|||
<!--
|
||||
* @Date: 2023-11-17 11:44:58
|
||||
* @LastEditTime: 2023-11-30 18:08:33
|
||||
* @Description: content
|
||||
-->
|
||||
<template>
|
||||
<view class="content">
|
||||
<uni-nav-bar
|
||||
left-icon="left"
|
||||
title="道具卡"
|
||||
color="#fff"
|
||||
backgroundColor="transparent"
|
||||
:fixed="true"
|
||||
:statusBar="true"
|
||||
:border="false"
|
||||
@clickLeft="$c.back"
|
||||
></uni-nav-bar>
|
||||
|
||||
<mescroll-body
|
||||
ref="mescrollRef"
|
||||
@init="mescrollInit"
|
||||
@down="downCallback"
|
||||
@up="getList"
|
||||
:down="downOption"
|
||||
:up="upOption"
|
||||
>
|
||||
<view
|
||||
class="card-item"
|
||||
v-for="(item, i) in listData"
|
||||
:key="i">
|
||||
<view class="icon">
|
||||
<image src="/static/common/cardIcon.png"></image>
|
||||
</view>
|
||||
<view class="card-r">
|
||||
<view class="title">{{item.title}}</view>
|
||||
<view class="desc">抽赏时可选择重新抽赏</view>
|
||||
</view>
|
||||
<view class="card-num">×1</view>
|
||||
</view>
|
||||
</mescroll-body>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
// 下拉刷新的配置(可选, 绝大部分情况无需配置)
|
||||
downOption: {
|
||||
auto: false
|
||||
},
|
||||
// 上拉加载的配置(可选, 绝大部分情况无需配置)
|
||||
upOption: {
|
||||
auto: true,
|
||||
page: {
|
||||
size: 10 // 每页数据的数量,默认10
|
||||
}
|
||||
},
|
||||
listData: []
|
||||
}
|
||||
},
|
||||
|
||||
methods: {
|
||||
/**
|
||||
* @description: 获取列表
|
||||
* @param {*} num
|
||||
* @param {*} size
|
||||
* @return {*}
|
||||
*/
|
||||
getList({ num, size }) {
|
||||
this.req({
|
||||
url: 'item_card_list',
|
||||
data: {
|
||||
page: num
|
||||
},
|
||||
|
||||
success: res => {
|
||||
if (res.status == 1) {
|
||||
if (num == 1) {
|
||||
this.listData = []
|
||||
}
|
||||
|
||||
this.listData = this.listData.concat(res.data.list)
|
||||
this.mescroll.endByPage(res.data.list.length, res.data.last_page)
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.content {
|
||||
padding: 0 0 30rpx;
|
||||
|
||||
.card-item {
|
||||
width: 710rpx;
|
||||
margin: 20rpx auto 0;
|
||||
box-sizing: border-box;
|
||||
padding: 30rpx 40rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
background: #3B3941;
|
||||
|
||||
.icon {
|
||||
width: 100rpx;
|
||||
height: 58rpx;
|
||||
}
|
||||
|
||||
.card-r {
|
||||
width: 300rpx;
|
||||
box-sizing: border-box;
|
||||
margin-left: 30rpx;
|
||||
|
||||
.title {
|
||||
font-weight: bold;
|
||||
font-size: 40rpx;
|
||||
color: #B07AF3;
|
||||
}
|
||||
|
||||
.desc {
|
||||
margin-top: 10rpx;
|
||||
word-wrap: break-word;
|
||||
word-break: break-all;
|
||||
|
||||
font-size: 26rpx;
|
||||
font-family: Source Han Sans CN;
|
||||
font-weight: 400;
|
||||
color: #dddddd;
|
||||
}
|
||||
}
|
||||
|
||||
.card-num {
|
||||
flex: 1;
|
||||
text-align: right;
|
||||
font-size: 36rpx;
|
||||
font-family: YouSheBiaoTiHei;
|
||||
font-weight: 400;
|
||||
color: #ffffff;
|
||||
}
|
||||
}
|
||||
.common_bg {
|
||||
}
|
||||
}
|
||||
</style>
|
||||
622
package/mine/ti-qu.vue
Normal file
622
package/mine/ti-qu.vue
Normal file
|
|
@ -0,0 +1,622 @@
|
|||
<!--
|
||||
* @Date: 2023-12-20 17:33:04
|
||||
* @LastEditTime: 2024-01-17 11:30:11
|
||||
* @Description: content
|
||||
-->
|
||||
<template>
|
||||
<view class="content">
|
||||
<uni-nav-bar
|
||||
title="提取记录"
|
||||
color="#fff"
|
||||
leftIcon="left"
|
||||
backgroundColor="transparent"
|
||||
:border="false"
|
||||
:statusBar="true"
|
||||
:fixed="true"
|
||||
@clickLeft="$c.back()"
|
||||
></uni-nav-bar>
|
||||
|
||||
<mescroll-body
|
||||
ref="mescrollRef"
|
||||
@init="mescrollInit"
|
||||
@down="downCallback"
|
||||
@up="getList"
|
||||
:down="downOption"
|
||||
:up="upOption"
|
||||
>
|
||||
<!-- <view class="row">
|
||||
<view class="left">
|
||||
<view class="title-color">提取金额</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="input-box">
|
||||
<input v-model.number="money" placeholder="输入提取金额" />
|
||||
</view>
|
||||
|
||||
<view class="tip">
|
||||
荷包金额剩余: {{ userInfo.money2 }}元
|
||||
<text @click="doAll">全部提出</text>
|
||||
</view>
|
||||
|
||||
<view class="row">
|
||||
<view class="left">
|
||||
<view class="title-color">提取方式</view>
|
||||
</view>
|
||||
|
||||
<view class="right">
|
||||
<view
|
||||
class="type"
|
||||
v-for="(item, i) in tiType"
|
||||
:key="i"
|
||||
@click="changeTiType(i)"
|
||||
>
|
||||
<view class="check icon">
|
||||
<image
|
||||
v-if="tiTypeCur == i"
|
||||
:src="$img('/static/img/check1_act.png')"
|
||||
lazy-load
|
||||
></image>
|
||||
|
||||
<image
|
||||
v-else
|
||||
:src="$img('/static/img/check1.png')"
|
||||
lazy-load
|
||||
></image>
|
||||
</view>
|
||||
|
||||
{{ item.title }}
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<template v-if="tiType[tiTypeCur].id == 2">
|
||||
<view class="input-box">
|
||||
<view class="label">姓名:</view>
|
||||
|
||||
<input v-model="name" placeholder="请输入姓名" />
|
||||
</view>
|
||||
|
||||
<view class="input-box">
|
||||
<view class="label">账号:</view>
|
||||
|
||||
<input v-model="account" placeholder="请输入账号" />
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<template v-if="tiType[tiTypeCur].id == 3">
|
||||
<view class="input-box">
|
||||
<view class="label">开户行:</view>
|
||||
|
||||
<input v-model="bank" placeholder="请输入开户行" />
|
||||
</view>
|
||||
|
||||
<view class="input-box">
|
||||
<view class="label">姓名:</view>
|
||||
|
||||
<input v-model="name" placeholder="请输入姓名" />
|
||||
</view>
|
||||
|
||||
<view class="input-box">
|
||||
<view class="label">账号:</view>
|
||||
|
||||
<input v-model="account" placeholder="请输入账号" />
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<view v-if="pageData" class="tip">
|
||||
<text>{{ pageData.withdraw_money }}</text>
|
||||
起提,每笔手续费需付
|
||||
<text>{{ pageData.withdraw_money_sxf }}</text>
|
||||
荷包金额,当日最高可提取
|
||||
<text>{{ pageData.max_money }}</text>
|
||||
</view>
|
||||
|
||||
<view @click="isAgree = !isAgree" class="agree">
|
||||
<view class="icon">
|
||||
<image
|
||||
v-if="isAgree"
|
||||
:src="$img1('common/check_act.png')"
|
||||
lazy-load
|
||||
></image>
|
||||
|
||||
<image v-else :src="$img1('common/check.png')" lazy-load></image>
|
||||
</view>
|
||||
|
||||
<view class="agree-r">
|
||||
我已阅读并同意
|
||||
<text @click.stop="$c.to({ url: '/pages/guize/guize?type=4' })">
|
||||
《用户协议》
|
||||
</text>
|
||||
和
|
||||
<text @click.stop="$c.to({ url: '/pages/guize/guize?type=5' })">
|
||||
《隐私政策》
|
||||
</text>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="submit" @click="$c.noDouble(doSubmit)">立即提取</view>
|
||||
|
||||
<view class="row">
|
||||
<view class="left">
|
||||
<view class="title-color">提取记录</view>
|
||||
</view>
|
||||
</view> -->
|
||||
|
||||
<view class="log">
|
||||
<view class="log-item" v-for="(item, i) in listData" :key="i">
|
||||
<view class="item-l">
|
||||
<view class="title">
|
||||
{{ item.status_text }}
|
||||
|
||||
<text v-if="item.reason">({{ item.reason }})</text>
|
||||
</view>
|
||||
|
||||
<view class="time">{{ item.addtime }}</view>
|
||||
</view>
|
||||
|
||||
<view class="item-money">{{ item.tal_money }}元</view>
|
||||
</view>
|
||||
</view>
|
||||
</mescroll-body>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
// 下拉刷新的配置(可选, 绝大部分情况无需配置)
|
||||
downOption: {
|
||||
auto: false
|
||||
},
|
||||
// 上拉加载的配置(可选, 绝大部分情况无需配置)
|
||||
upOption: {
|
||||
auto: true,
|
||||
page: {
|
||||
size: 15 // 每页数据的数量,默认10
|
||||
}
|
||||
},
|
||||
|
||||
money: '',
|
||||
qrCode: '',
|
||||
name: '',
|
||||
account: '',
|
||||
bank: '',
|
||||
|
||||
listData: [],
|
||||
userInfo: uni.getStorageSync('userinfo'),
|
||||
qrCodePath: '',
|
||||
tiType: [
|
||||
{
|
||||
id: 2,
|
||||
title: '支付宝'
|
||||
},
|
||||
{
|
||||
id: 3,
|
||||
title: '银行卡'
|
||||
}
|
||||
],
|
||||
tiTypeCur: 0,
|
||||
pageData: '',
|
||||
lastTi: {},
|
||||
isAgree: false
|
||||
}
|
||||
},
|
||||
|
||||
onShow() {
|
||||
this.getUserInfo()
|
||||
},
|
||||
|
||||
methods: {
|
||||
changeTiType(i) {
|
||||
this.tiTypeCur = i
|
||||
|
||||
const curId = this.tiType[i].id
|
||||
const target = this.lastTi[curId]
|
||||
|
||||
if (target) {
|
||||
this.name = target.name
|
||||
this.account = target.number
|
||||
this.bank = target.bank
|
||||
} else {
|
||||
this.name = ''
|
||||
this.account = ''
|
||||
}
|
||||
},
|
||||
|
||||
downCallback() {
|
||||
this.money = ''
|
||||
|
||||
this.mescroll.resetUpScroll()
|
||||
this.mescroll.scrollTo(0, 0)
|
||||
this.getUserInfo()
|
||||
},
|
||||
|
||||
/**
|
||||
* @description: 获取列表
|
||||
* @param {*} num
|
||||
* @param {*} size
|
||||
* @return {*}
|
||||
*/
|
||||
getList({ num, size }) {
|
||||
this.req({
|
||||
url: 'withdraw_log',
|
||||
data: {
|
||||
page: num
|
||||
},
|
||||
Loading: true,
|
||||
success: res => {
|
||||
if (res.status == 1) {
|
||||
if (num == 1) {
|
||||
this.listData = []
|
||||
}
|
||||
|
||||
this.pageData = res.data
|
||||
this.listData = this.listData.concat(res.data.list)
|
||||
this.mescroll.endByPage(res.data.list.length, res.data.last_page)
|
||||
|
||||
let lastTi = {}
|
||||
if (res.data.zhifubao)
|
||||
lastTi[res.data.zhifubao.type] = res.data.zhifubao
|
||||
if (res.data.yinhangka)
|
||||
lastTi[res.data.yinhangka.type] = res.data.yinhangka
|
||||
|
||||
this.lastTi = lastTi
|
||||
|
||||
this.changeTiType(this.tiTypeCur)
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
doSubmit() {
|
||||
if (!this.money) {
|
||||
this.$c.toast({
|
||||
title: '请输入金额'
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
if (!this.name) {
|
||||
this.$c.toast({
|
||||
title: '姓名不能为空'
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
if (!this.account) {
|
||||
this.$c.toast({
|
||||
title: '账号不能为空'
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
if (this.tiType[this.tiTypeCur].id == 3) {
|
||||
if (!this.bank) {
|
||||
this.$c.toast({
|
||||
title: '开户行不能为空'
|
||||
})
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
if (!this.isAgree) {
|
||||
return this.$c.toast({
|
||||
title: '请阅读并同意《用户协议》和《隐私政策》'
|
||||
})
|
||||
}
|
||||
|
||||
this.req({
|
||||
url: 'withdraw',
|
||||
data: {
|
||||
money: this.money,
|
||||
type: this.tiType[this.tiTypeCur].id,
|
||||
name: this.name,
|
||||
number: this.account,
|
||||
bank: this.bank
|
||||
},
|
||||
success: res => {
|
||||
if (res.status == 1) {
|
||||
this.$c.toast({
|
||||
title: res.msg,
|
||||
duration: 1500,
|
||||
success: () => {
|
||||
this.getUserInfo()
|
||||
|
||||
this.downCallback()
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
upImg() {
|
||||
let that = this
|
||||
|
||||
uni.chooseImage({
|
||||
sizeType: ['original', 'compressed'],
|
||||
sourceType: ['album', 'camera'],
|
||||
count: 1,
|
||||
success: ({ tempFilePaths, tempFiles }) => {
|
||||
uni.uploadFile({
|
||||
url: that.siteBaseUrl + 'picture',
|
||||
filePath: tempFilePaths[0],
|
||||
name: 'file',
|
||||
success: e => {
|
||||
let res = JSON.parse(e.data)
|
||||
if (res.status == 1) {
|
||||
this.qrCode = res.data.imgurl
|
||||
this.qrCodePath = res.data.path
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
fail: error => {}
|
||||
})
|
||||
},
|
||||
|
||||
doAll() {
|
||||
this.money = this.userInfo.money2 * 1
|
||||
},
|
||||
|
||||
getUserInfo() {
|
||||
this.req({
|
||||
url: 'user',
|
||||
data: {},
|
||||
success: res => {
|
||||
if (res.status == 1) {
|
||||
this.userInfo = res.data.userinfo
|
||||
|
||||
uni.setStorageSync('userinfo', res.data.userinfo)
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.content {
|
||||
padding: 0 30rpx 30rpx;
|
||||
|
||||
.row {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
margin-top: 30rpx;
|
||||
|
||||
.left {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
font-size: 28rpx;
|
||||
font-family: Source Han Sans CN;
|
||||
font-weight: 400;
|
||||
color: #ffffff;
|
||||
|
||||
.title-color {
|
||||
font-size: 32rpx;
|
||||
font-family: Source Han Sans CN;
|
||||
font-weight: 400;
|
||||
color: #FFFFFF;
|
||||
}
|
||||
|
||||
.desc {
|
||||
font-size: 26rpx;
|
||||
font-family: Source Han Sans CN;
|
||||
font-weight: 400;
|
||||
color: #dddddd;
|
||||
}
|
||||
}
|
||||
|
||||
.right {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
font-size: 24rpx;
|
||||
font-family: Source Han Sans CN;
|
||||
font-weight: 400;
|
||||
color: #ffffff;
|
||||
|
||||
.to-rule {
|
||||
font-size: 24rpx;
|
||||
font-family: Source Han Sans CN;
|
||||
font-weight: 400;
|
||||
color: #d0d1ff;
|
||||
}
|
||||
|
||||
.right-icon {
|
||||
width: 32rpx;
|
||||
height: 32rpx;
|
||||
}
|
||||
|
||||
.type {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
.check {
|
||||
width: 40rpx;
|
||||
height: 32rpx;
|
||||
margin-right: 10rpx;
|
||||
}
|
||||
|
||||
font-size: 28rpx;
|
||||
font-family: Source Han Sans CN;
|
||||
font-weight: 400;
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
.type + .type {
|
||||
margin-left: 40rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.input-box {
|
||||
margin-top: 30rpx;
|
||||
height: 80rpx;
|
||||
border: 1px solid #d0d1ff;
|
||||
box-sizing: border-box;
|
||||
padding: 0 20rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
.label {
|
||||
padding: 0 20rpx;
|
||||
// border-right: 1rpx solid #ccc;
|
||||
|
||||
font-size: 28rpx;
|
||||
font-family: Source Han Sans CN;
|
||||
font-weight: 400;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
input {
|
||||
flex: 1;
|
||||
|
||||
font-size: 28rpx;
|
||||
font-family: Source Han Sans CN;
|
||||
font-weight: 400;
|
||||
color: #fff;
|
||||
}
|
||||
}
|
||||
|
||||
.tip {
|
||||
margin-top: 10rpx;
|
||||
|
||||
font-size: 24rpx;
|
||||
font-family: Source Han Sans CN;
|
||||
font-weight: 400;
|
||||
color: #dddddd;
|
||||
|
||||
text {
|
||||
padding: 0 10rpx;
|
||||
|
||||
color: #d0d1ff;
|
||||
}
|
||||
}
|
||||
|
||||
.pic {
|
||||
margin-top: 30rpx;
|
||||
width: 200rpx;
|
||||
height: 200rpx;
|
||||
border-radius: 20rpx;
|
||||
border: 1rpx solid #d0d1ff;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
overflow: hidden;
|
||||
|
||||
.up {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
position: relative;
|
||||
|
||||
&::before,
|
||||
&::after {
|
||||
content: '';
|
||||
width: 4rpx;
|
||||
height: 40rpx;
|
||||
background: #d0d1ff;
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
top: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
}
|
||||
|
||||
&::after {
|
||||
transform: translate(-50%, -50%) rotate(90deg);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.agree {
|
||||
display: flex;
|
||||
padding: 40rpx 0 0;
|
||||
|
||||
.icon {
|
||||
width: 32rpx;
|
||||
height: 32rpx;
|
||||
}
|
||||
|
||||
.agree-r {
|
||||
flex: 1;
|
||||
word-wrap: break-word;
|
||||
word-break: break-all;
|
||||
padding-left: 20rpx;
|
||||
line-height: 32rpx;
|
||||
|
||||
font-size: 26rpx;
|
||||
color: #9d9d9d;
|
||||
|
||||
text {
|
||||
color: #d0d1ff;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.submit {
|
||||
margin: 30rpx 0 0;
|
||||
|
||||
width: 100%;
|
||||
height: 80rpx;
|
||||
background: linear-gradient(90deg, #2dcbff 0%, #ff95fb 100%);
|
||||
border-radius: 40rpx;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
|
||||
font-size: 32rpx;
|
||||
font-family: Source Han Sans CN;
|
||||
font-weight: 400;
|
||||
color: #222222;
|
||||
}
|
||||
|
||||
.log {
|
||||
padding: 1rpx 10rpx 0;
|
||||
|
||||
.log-item {
|
||||
padding: 30rpx 0;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
border-bottom: 1rpx solid #333;
|
||||
|
||||
.item-l {
|
||||
flex: 1;
|
||||
padding-right: 30rpx;
|
||||
|
||||
.title {
|
||||
font-size: 28rpx;
|
||||
font-family: Source Han Sans CN;
|
||||
font-weight: 400;
|
||||
color: #ffffff;
|
||||
|
||||
text {
|
||||
font-size: 24rpx;
|
||||
padding-left: 20rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.time {
|
||||
margin-top: 6rpx;
|
||||
|
||||
font-size: 25rpx;
|
||||
font-family: Source Han Sans CN;
|
||||
font-weight: 400;
|
||||
color: #cccccc;
|
||||
}
|
||||
}
|
||||
|
||||
.item-money {
|
||||
font-size: 32rpx;
|
||||
font-family: Source Han Sans CN;
|
||||
font-weight: 400;
|
||||
color: #ffffff;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
267
pages.json
267
pages.json
|
|
@ -7,8 +7,7 @@
|
|||
"^detail-preview-popup$": "@/components/detail-preview-popup/detail-preview-popup.vue",
|
||||
"^banner$": "@/components/banner/banner.vue"
|
||||
},
|
||||
"pages": [
|
||||
{
|
||||
"pages": [{
|
||||
"path": "pages/shouye/index",
|
||||
"style": {
|
||||
"navigationStyle": "custom",
|
||||
|
|
@ -46,6 +45,14 @@
|
|||
"navigationBarTextStyle": "black"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/shouye/wxl",
|
||||
"style": {
|
||||
"navigationBarTitleText": "无限令",
|
||||
"navigationBarBackgroundColor": "#222222",
|
||||
"navigationBarTextStyle": "black"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/shouye/huanxiang",
|
||||
"style": {
|
||||
|
|
@ -144,6 +151,7 @@
|
|||
"navigationStyle": "custom"
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"path": "pages/user/vip",
|
||||
"style": {
|
||||
|
|
@ -152,6 +160,15 @@
|
|||
"navigationBarTextStyle": "black"
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"path": "pages/guize/guize",
|
||||
"style": {
|
||||
"navigationBarBackgroundColor": "#FFFFFF",
|
||||
"navigationBarTitleText": "",
|
||||
"navigationBarTextStyle": "black"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/user/my_coupon",
|
||||
"style": {
|
||||
|
|
@ -186,6 +203,14 @@
|
|||
"navigationBarTextStyle": "black"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/sangdai/hegui",
|
||||
"style": {
|
||||
"navigationBarTextStyle": "black",
|
||||
"navigationStyle": "custom",
|
||||
"disableSwipeBack": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/sangdai/sangdai",
|
||||
"style": {
|
||||
|
|
@ -210,6 +235,7 @@
|
|||
"navigationBarTextStyle": "black"
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"path": "pages/user/change",
|
||||
"style": {
|
||||
|
|
@ -218,6 +244,43 @@
|
|||
"navigationBarTextStyle": "black"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/DrawCard/index",
|
||||
"style": {
|
||||
"navigationBarTextStyle": "black",
|
||||
"navigationStyle": "custom"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/DrawCard/cardDetail",
|
||||
"style": {
|
||||
"navigationBarTextStyle": "black",
|
||||
"navigationStyle": "custom"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/DrawCard/tujian",
|
||||
"style": {
|
||||
"navigationBarBackgroundColor": "#222222",
|
||||
"navigationBarTitleText": "图鉴",
|
||||
"navigationBarTextStyle": "black"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/chouka/ka",
|
||||
"style": {
|
||||
"navigationBarTextStyle": "black",
|
||||
"navigationStyle": "custom"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/chouka/kace",
|
||||
"style": {
|
||||
"navigationBarBackgroundColor": "#222222",
|
||||
"navigationBarTitleText": "卡册",
|
||||
"navigationBarTextStyle": "black"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/chouka/detail",
|
||||
"style": {
|
||||
|
|
@ -232,6 +295,22 @@
|
|||
"navigationStyle": "custom"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/zizhi/index",
|
||||
"style": {
|
||||
"navigationBarTextStyle": "black",
|
||||
"navigationBarTitleText": "自制赏",
|
||||
"navigationBarBackgroundColor": "#222222"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/zizhi/detail",
|
||||
"style": {
|
||||
"navigationBarTextStyle": "black",
|
||||
"navigationBarTitleText": "龙珠手办店",
|
||||
"navigationBarBackgroundColor": "#222222"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/infinite/index",
|
||||
"style": {
|
||||
|
|
@ -240,6 +319,62 @@
|
|||
"navigationBarBackgroundColor": "#222222"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/infinite/UnlimitedOrder",
|
||||
"style": {
|
||||
"navigationBarTextStyle": "black",
|
||||
"navigationBarTitleText": "魔晶令",
|
||||
"navigationBarBackgroundColor": "#222222",
|
||||
"navigationStyle": "custom"
|
||||
}
|
||||
},
|
||||
// {
|
||||
// "path": "pages/shop/index",
|
||||
// "style": {
|
||||
// "navigationStyle": "custom",
|
||||
// "transparentTitle": "none"
|
||||
// }
|
||||
// },
|
||||
// {
|
||||
// "path": "pages/shop/list",
|
||||
// "style": {
|
||||
// "navigationBarTitleText": "",
|
||||
// "navigationBarBackgroundColor": "#000000",
|
||||
// "navigationBarTextStyle": "white"
|
||||
// }
|
||||
// },
|
||||
// {
|
||||
// "path": "pages/shop/detail",
|
||||
// "style": {
|
||||
// "navigationBarTitleText": "商品详请",
|
||||
// "navigationBarBackgroundColor": "#000000",
|
||||
// "navigationBarTextStyle": "white"
|
||||
// }
|
||||
// },
|
||||
// {
|
||||
// "path": "pages/shop/shop_order",
|
||||
// "style": {
|
||||
// "navigationBarTitleText": "我的订单",
|
||||
// "navigationBarBackgroundColor": "#000000",
|
||||
// "navigationBarTextStyle": "white"
|
||||
// }
|
||||
// },
|
||||
// {
|
||||
// "path": "pages/shop/order_detail",
|
||||
// "style": {
|
||||
// "navigationBarTitleText": "订单详情",
|
||||
// "navigationBarBackgroundColor": "#000000",
|
||||
// "navigationBarTextStyle": "white"
|
||||
// }
|
||||
// },
|
||||
// {
|
||||
// "path": "pages/shop/wuliu_detail",
|
||||
// "style": {
|
||||
// "navigationBarTitleText": "物流详情",
|
||||
// "navigationBarBackgroundColor": "#000000",
|
||||
// "navigationBarTextStyle": "white"
|
||||
// }
|
||||
// },
|
||||
{
|
||||
"path": "pages/mall/index",
|
||||
"style": {
|
||||
|
|
@ -248,6 +383,23 @@
|
|||
"navigationStyle": "custom"
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"path": "pages/fuli/fuli",
|
||||
"style": {
|
||||
"navigationBarTitleText": "",
|
||||
"enablePullDownRefresh": false,
|
||||
"navigationStyle": "custom"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/fuli/fuli-detail",
|
||||
"style": {
|
||||
"navigationBarTitleText": "",
|
||||
"enablePullDownRefresh": false,
|
||||
"navigationStyle": "custom"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/user/coupon",
|
||||
"style": {
|
||||
|
|
@ -270,6 +422,7 @@
|
|||
"navigationBarTitleText": "绑定手机号"
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"path": "pages/shouye/yaoqing_ranking",
|
||||
"style": {
|
||||
|
|
@ -301,53 +454,118 @@
|
|||
"style": {
|
||||
"navigationStyle": "custom"
|
||||
}
|
||||
},
|
||||
{
|
||||
}, {
|
||||
"path": "pages/shouye/dada_ranking",
|
||||
"style": {
|
||||
"navigationStyle": "custom"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/infinite/reward_records",
|
||||
"style": {
|
||||
"path" : "pages/infinite/reward_records",
|
||||
"style" :
|
||||
{
|
||||
"navigationStyle": "custom"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/shouye/danye",
|
||||
"style": {
|
||||
"path" : "pages/shouye/danye",
|
||||
"style" :
|
||||
{
|
||||
"navigationStyle": "custom"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/other/prize_draw",
|
||||
"style": {
|
||||
"path" : "pages/other/prize_draw",
|
||||
"style" :
|
||||
{
|
||||
"navigationStyle": "custom"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/other/order_list",
|
||||
"style": {
|
||||
"path" : "pages/other/order_list",
|
||||
"style" :
|
||||
{
|
||||
"navigationStyle": "custom"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/other/order_info",
|
||||
"style": {
|
||||
"path" : "pages/other/order_info",
|
||||
"style" :
|
||||
{
|
||||
"navigationStyle": "custom"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/guize/guize",
|
||||
"style": {
|
||||
"navigationBarBackgroundColor": "#FFFFFF",
|
||||
"navigationBarTitleText": "",
|
||||
"navigationBarTextStyle": "black"
|
||||
}
|
||||
}
|
||||
],
|
||||
"subPackages": [],
|
||||
"subPackages": [{
|
||||
"root": "package/index",
|
||||
"pages": [{
|
||||
"path": "sign",
|
||||
"style": {
|
||||
"navigationStyle": "custom"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "lian-ji",
|
||||
"style": {
|
||||
"navigationStyle": "custom"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "coupon-center",
|
||||
"style": {
|
||||
"navigationStyle": "custom"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "leitai",
|
||||
"style": {
|
||||
"navigationBarTitleText": "擂台赏",
|
||||
"navigationStyle": "custom"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"root": "package/mine",
|
||||
"pages": [{
|
||||
"path": "collect",
|
||||
"style": {
|
||||
"navigationStyle": "custom"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "skill-card",
|
||||
"style": {
|
||||
"navigationStyle": "custom"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "equity",
|
||||
"style": {
|
||||
"navigationStyle": "custom"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "qy-rule",
|
||||
"style": {
|
||||
"navigationStyle": "custom"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "coupon-detail",
|
||||
"style": {
|
||||
"navigationStyle": "custom"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "ti-qu",
|
||||
"style": {
|
||||
"navigationStyle": "custom"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"globalStyle": {
|
||||
"navigationBarTextStyle": "black",
|
||||
"navigationBarTitleText": "友达赏",
|
||||
|
|
@ -362,8 +580,7 @@
|
|||
"borderStyle": "black",
|
||||
"backgroundColor": "#FFFFFF",
|
||||
"iconWidth": "48rpx",
|
||||
"list": [
|
||||
{
|
||||
"list": [{
|
||||
"pagePath": "pages/shouye/index",
|
||||
"iconPath": "static/tabbar/m1.png",
|
||||
"selectedIconPath": "static/tabbar/s1.png",
|
||||
|
|
|
|||
2478
pages/fuli/fuli-detail.vue
Normal file
2478
pages/fuli/fuli-detail.vue
Normal file
File diff suppressed because it is too large
Load Diff
408
pages/fuli/fuli.vue
Normal file
408
pages/fuli/fuli.vue
Normal file
|
|
@ -0,0 +1,408 @@
|
|||
<!--
|
||||
* @Date: 2023-06-15 10:25:08
|
||||
* @LastEditTime: 2023-12-01 18:56:35
|
||||
* @Description: content
|
||||
-->
|
||||
<template>
|
||||
<view class="content">
|
||||
<!-- <view class="page-hd">
|
||||
<view class="hd-l">
|
||||
当前剩余
|
||||
<text>{{ hasNum }}</text>
|
||||
张抽赏券
|
||||
</view>
|
||||
|
||||
<view
|
||||
@click="getDanye(10)"
|
||||
class="hd-r common_bg"
|
||||
:style="{
|
||||
'background-image': `url(${$img('/static/img/fu_cssm.png')})`
|
||||
}"
|
||||
></view>
|
||||
</view> -->
|
||||
|
||||
<view
|
||||
class="hd-card common_bg"
|
||||
:style="{
|
||||
backgroundImage: `url(${$img('/static/img/1_flmh.png')})`
|
||||
}"
|
||||
>
|
||||
<view class="rule" @click="$refs.rulePop.getRule(12, '说明')">说明</view>
|
||||
</view>
|
||||
|
||||
<mescroll-body
|
||||
ref="mescrollRef"
|
||||
@init="mescrollInit"
|
||||
:down="downOption"
|
||||
@down="downCallback"
|
||||
@up="upCallback"
|
||||
>
|
||||
<view
|
||||
@click="toDetail(item)"
|
||||
v-for="(item, i) in listData"
|
||||
:key="i"
|
||||
class="list-item"
|
||||
>
|
||||
<image class="pic" :src="item.imgurl" mode="scaleToFill" />
|
||||
|
||||
<view class="item-ft">
|
||||
<view class="ft-l">抽赏仅需{{ item.need_draw_num }}张抽赏券</view>
|
||||
|
||||
<view class="ft-r">马上抽</view>
|
||||
</view>
|
||||
|
||||
<view class="lt-tag">
|
||||
<image :src="$img('/static/img/1_yqflmh.png')" lazy-load></image>
|
||||
</view>
|
||||
</view>
|
||||
</mescroll-body>
|
||||
|
||||
<view
|
||||
class="invite-fixed common_bg"
|
||||
:style="{
|
||||
'background-image': `url(${$img('/static/img/1_yqhy.png')})`
|
||||
}"
|
||||
>
|
||||
<button class="hide" open-type="share"></button>
|
||||
</view>
|
||||
|
||||
<uni-popup ref="invitePop" type="center">
|
||||
<view v-if="inviteData" class="invite-pop">
|
||||
<image
|
||||
class="invite-hd"
|
||||
:src="inviteData.share_image"
|
||||
mode="scaleToFill"
|
||||
/>
|
||||
|
||||
<view
|
||||
@click="savePic"
|
||||
class="invite-save common_bg"
|
||||
:style="{
|
||||
'background-image': `url(${$img('/static/img/fuli_bchb.png')})`
|
||||
}"
|
||||
></view>
|
||||
|
||||
<image
|
||||
@click="close('invitePop')"
|
||||
class="invite-close"
|
||||
:src="$img('/static/icon/close.png')"
|
||||
mode="scaleToFill"
|
||||
/>
|
||||
</view>
|
||||
</uni-popup>
|
||||
|
||||
<rule-pop ref="rulePop"></rule-pop>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
// 下拉刷新的配置(可选, 绝大部分情况无需配置)
|
||||
downOption: {
|
||||
auto: false
|
||||
},
|
||||
// 上拉加载的配置(可选, 绝大部分情况无需配置)
|
||||
upOption: {
|
||||
page: {
|
||||
size: 15 // 每页数据的数量,默认10
|
||||
}
|
||||
},
|
||||
listData: [],
|
||||
hasNum: 0,
|
||||
canReload: false,
|
||||
inviteData: ''
|
||||
}
|
||||
},
|
||||
|
||||
onShareAppMessage(e) {
|
||||
console.log(e)
|
||||
return {
|
||||
title: '点击领取赏券吧~',
|
||||
imageUrl: e.target.dataset.img,
|
||||
path: '/pages/shouye/index?pid=' + uni.getStorageSync('userinfo').ID
|
||||
}
|
||||
},
|
||||
|
||||
onReady() {
|
||||
// this.open('invitePop')
|
||||
},
|
||||
|
||||
onShow() {
|
||||
this.canReload && this.mescroll.resetUpScroll()
|
||||
this.canReload && this.mescroll.scrollTo(0, 0)
|
||||
this.canReload = true
|
||||
},
|
||||
|
||||
methods: {
|
||||
savePic() {
|
||||
uni.showLoading({
|
||||
title: '正在保存',
|
||||
mask: true
|
||||
})
|
||||
|
||||
uni.getImageInfo({
|
||||
src: this.inviteData.share_image,
|
||||
success: ({ width, height, path, orientation, type }) => {
|
||||
uni.saveImageToPhotosAlbum({
|
||||
filePath: path,
|
||||
success: result => {
|
||||
uni.showToast({
|
||||
title: '保存成功',
|
||||
icon: 'success'
|
||||
})
|
||||
},
|
||||
fail: error => {
|
||||
console.log('err')
|
||||
},
|
||||
complete: res => {
|
||||
uni.hideLoading()
|
||||
}
|
||||
})
|
||||
},
|
||||
fail: error => {
|
||||
uni.hideLoading()
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
getInvitePic() {
|
||||
this.req({
|
||||
url: 'invitation',
|
||||
data: {},
|
||||
success: res => {
|
||||
if (res.status == 1) {
|
||||
this.inviteData = res.data
|
||||
|
||||
this.open('invitePop')
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
upCallback({ num, size }) {
|
||||
this.req({
|
||||
url: 'goods',
|
||||
data: {
|
||||
page: num,
|
||||
type: 7
|
||||
},
|
||||
success: res => {
|
||||
if (res.status == 1) {
|
||||
this.hasNum = res.data.draw_num
|
||||
|
||||
if (num == 1) {
|
||||
this.listData = []
|
||||
}
|
||||
|
||||
this.listData = this.listData.concat(res.data.data)
|
||||
this.mescroll.endByPage(res.data.data.length, res.data.last_page)
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
toDetail(item) {
|
||||
uni.navigateTo({ url: `/pages/fuli/fuli-detail?id=${item.id}` })
|
||||
},
|
||||
|
||||
close(e) {
|
||||
this.$refs[e].close()
|
||||
},
|
||||
|
||||
open(e) {
|
||||
this.$refs[e].open()
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.content {
|
||||
padding-bottom: 40rpx;
|
||||
min-height: 100vh;
|
||||
box-sizing: border-box;
|
||||
background-color: #000;
|
||||
|
||||
// .page-hd {
|
||||
// display: flex;
|
||||
// justify-content: space-between;
|
||||
// align-items: center;
|
||||
// padding: 10rpx 30rpx;
|
||||
|
||||
// .hd-l {
|
||||
// font-size: 28rpx;
|
||||
// font-family: Source Han Sans CN;
|
||||
// font-weight: 400;
|
||||
// color: #ffffff;
|
||||
|
||||
// text {
|
||||
// color: #00fff3;
|
||||
// }
|
||||
// }
|
||||
|
||||
// .hd-r {
|
||||
// width: 170rpx;
|
||||
// height: 59rpx;
|
||||
// }
|
||||
// .common_bg {
|
||||
// }
|
||||
// }
|
||||
|
||||
.hd-card {
|
||||
width: 100%;
|
||||
height: 388rpx;
|
||||
position: relative;
|
||||
|
||||
.rule {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 200rpx;
|
||||
width: 120rpx;
|
||||
height: 50rpx;
|
||||
background: rgba(255, 255, 255, 0.3);
|
||||
border-radius: 25rpx 0rpx 0rpx 25rpx;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
z-index: 10;
|
||||
|
||||
font-size: 26rpx;
|
||||
font-family: Source Han Sans CN;
|
||||
font-weight: 400;
|
||||
color: #ffffff;
|
||||
}
|
||||
}
|
||||
|
||||
.list-item {
|
||||
margin: 20rpx auto 0;
|
||||
width: 690rpx;
|
||||
box-sizing: border-box;
|
||||
background: #000000;
|
||||
border: 1px solid #4a4951;
|
||||
border-radius: 10rpx;
|
||||
position: relative;
|
||||
|
||||
.pic {
|
||||
width: 100%;
|
||||
height: 386rpx;
|
||||
border-radius: 10rpx;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.item-ft {
|
||||
height: 100rpx;
|
||||
padding: 0 20rpx;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
|
||||
.ft-l {
|
||||
font-size: 26rpx;
|
||||
font-family: Source Han Sans CN;
|
||||
font-weight: 400;
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
.ft-r {
|
||||
width: 150rpx;
|
||||
height: 60rpx;
|
||||
background: linear-gradient(90deg, #2dcbff 0%, #ff95fb 100%);
|
||||
border-radius: 30rpx;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
|
||||
font-size: 28rpx;
|
||||
font-family: Source Han Sans CN;
|
||||
font-weight: 400;
|
||||
color: #222222;
|
||||
}
|
||||
.common_bg {
|
||||
}
|
||||
}
|
||||
|
||||
.lt-tag {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
z-index: 1;
|
||||
width: 340rpx;
|
||||
height: 48rpx;
|
||||
|
||||
image {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.invite-fixed {
|
||||
position: fixed;
|
||||
right: 10rpx;
|
||||
bottom: 300rpx;
|
||||
width: 126rpx;
|
||||
height: 130rpx;
|
||||
z-index: 10;
|
||||
}
|
||||
|
||||
.invite-pop {
|
||||
display: flex;
|
||||
flex-flow: column nowrap;
|
||||
align-items: center;
|
||||
|
||||
.invite-hd {
|
||||
width: 607rpx;
|
||||
height: 799rpx;
|
||||
}
|
||||
|
||||
.invite-save {
|
||||
width: 246rpx;
|
||||
height: 84rpx;
|
||||
}
|
||||
|
||||
.invite-close {
|
||||
width: 50rpx;
|
||||
height: 50rpx;
|
||||
margin-top: 30rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.popGm {
|
||||
width: 607rpx;
|
||||
// height: 904rpx;
|
||||
padding-top: 70rpx;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
|
||||
.pop_title {
|
||||
font-size: 36rpx;
|
||||
font-family: zihun152hao-jijiachaojihei;
|
||||
font-weight: 400;
|
||||
color: #ffffff;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.pop_con {
|
||||
padding: 30rpx 40rpx 50rpx;
|
||||
box-sizing: border-box;
|
||||
|
||||
font-size: 28rpx;
|
||||
font-family: PingFang SC;
|
||||
font-weight: 500;
|
||||
color: #ffffff;
|
||||
line-height: 42rpx;
|
||||
}
|
||||
|
||||
.close {
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
bottom: 0;
|
||||
transform: translate(-50%, 100%);
|
||||
width: 50rpx;
|
||||
height: 50rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
@ -69,7 +69,6 @@
|
|||
if (e.type == 16) {
|
||||
title = '签到规则'
|
||||
}
|
||||
|
||||
this.title = title
|
||||
uni.setNavigationBarTitle({
|
||||
title: title
|
||||
|
|
|
|||
446
pages/infinite/UnlimitedOrder.vue
Normal file
446
pages/infinite/UnlimitedOrder.vue
Normal file
|
|
@ -0,0 +1,446 @@
|
|||
<template>
|
||||
<view class="content">
|
||||
<!-- <view class="fixed">
|
||||
<view class="status_bar" :style="'height:'+BarHeight+'px'"></view>
|
||||
<image src="../../static/mine/back.png" mode="" class="header-left-title" @click="back()"></image>
|
||||
</view> -->
|
||||
<uni-nav-bar
|
||||
left-icon="left"
|
||||
title="魔晶令"
|
||||
color="#fff"
|
||||
backgroundColor="transparent"
|
||||
:fixed="true"
|
||||
:statusBar="true"
|
||||
:border="false"
|
||||
@clickLeft="back"
|
||||
></uni-nav-bar>
|
||||
|
||||
<view class="money-rule">
|
||||
<view class="money">当前累计消费:{{ datas.money }}</view>
|
||||
|
||||
<view @click="$refs.show.open()" class="rule">
|
||||
<image class="icon" :src="$img('/static/icon/info.png')"></image>
|
||||
|
||||
魔晶令规则
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="date-area">
|
||||
{{ datas.time }}
|
||||
</view>
|
||||
|
||||
<!-- <view class="topbox">
|
||||
<view class="" style="display: flex; justify-content: space-between">
|
||||
<view class="">
|
||||
<image
|
||||
@click="$refs.show.open()"
|
||||
class="wugz"
|
||||
:src="z_imgPath + 'wugz.png'"
|
||||
mode=""
|
||||
></image>
|
||||
</view>
|
||||
<view class="time">{{ datas.time }}</view>
|
||||
</view>
|
||||
<view
|
||||
class="flex_center"
|
||||
style="display: flex; justify-content: space-between"
|
||||
>
|
||||
<view class="leiji">
|
||||
当前累计消费:
|
||||
<text style="color: #1ff7f0">{{ datas.money }}</text>
|
||||
</view>
|
||||
<image :src="z_imgPath+'yijian.png'" class="btns" @click="ling"></image>
|
||||
<view
|
||||
class="btns"
|
||||
:style="
|
||||
'background: url(' +
|
||||
z_imgPath +
|
||||
'yijian.png' +
|
||||
') no-repeat 0 0 / 100% 100%;'
|
||||
"
|
||||
@click="ling"
|
||||
>
|
||||
一键领取
|
||||
</view>
|
||||
</view>
|
||||
</view> -->
|
||||
|
||||
<view
|
||||
class="items common_bg"
|
||||
v-for="(item, index) in lists"
|
||||
:style="{
|
||||
'background-image': `url(${$img('/static/img/ling_list_border.png')})`
|
||||
}"
|
||||
>
|
||||
<view class="flex_center" style="display: flex; justify-content: start">
|
||||
<!-- <view class="jingbi">¥</view> -->
|
||||
<view class="leixiao">累计消费满{{ item.give_money }}即可抽取赏品</view>
|
||||
</view>
|
||||
<view class="heiline"></view>
|
||||
<scroll-view scroll-x class="list-wrap">
|
||||
<view class="imgbox" v-for="a in item.give_list">
|
||||
<image class="spimg" :src="a.imgurl" mode="aspectFill"></image>
|
||||
<view class="zhaozi" v-if="item.give_is == 1">
|
||||
<image class="lq" :src="z_imgPath + 'zhaozi.png'" mode=""></image>
|
||||
</view>
|
||||
<view class="btext hang1">{{ a.title }}</view>
|
||||
</view>
|
||||
</scroll-view>
|
||||
</view>
|
||||
<uni-popup ref="show" type="center">
|
||||
<view
|
||||
class="pop common_bg"
|
||||
:style="{
|
||||
'background-image': `url(${$img('/static/img/yf_rule_pop_bg.png')})`
|
||||
}"
|
||||
>
|
||||
<view class="pop_title">规则</view>
|
||||
<view class="pop_con">
|
||||
<scroll-view scroll-y="true" style="height: 600rpx">
|
||||
<view v-html="guize"></view>
|
||||
</scroll-view>
|
||||
</view>
|
||||
|
||||
<image
|
||||
@click="$refs.show.close()"
|
||||
class="close"
|
||||
:src="$img('/static/icon/close.png')"
|
||||
></image>
|
||||
</view>
|
||||
</uni-popup>
|
||||
|
||||
<view class="bt-fixed">
|
||||
<view
|
||||
@click="ling"
|
||||
class="bt-btn common_bg"
|
||||
:style="{
|
||||
'background-image': `url(${$img('/static/img/ling_yjlq.png')})`
|
||||
}"
|
||||
></view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
z_imgPath: this.$z_img2 + 'wuxian/',
|
||||
lists: '',
|
||||
datas: '',
|
||||
show: false,
|
||||
guize: '',
|
||||
BarHeight: ''
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
back() {
|
||||
uni.navigateBack()
|
||||
},
|
||||
|
||||
ling() {
|
||||
let that = this
|
||||
that.req({
|
||||
url: 'infinite_give_goods',
|
||||
data: {},
|
||||
success(res) {
|
||||
uni.showToast({
|
||||
title: res.msg,
|
||||
icon: 'none'
|
||||
})
|
||||
|
||||
if (res.status == 1) {
|
||||
setTimeout(() => {
|
||||
that.getData()
|
||||
}, 500)
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
getData() {
|
||||
let that = this
|
||||
that.req({
|
||||
url: 'infinite_give_list',
|
||||
data: {},
|
||||
success(res) {
|
||||
that.lists = res.data.data
|
||||
that.datas = res.data.other_data
|
||||
}
|
||||
})
|
||||
},
|
||||
back() {
|
||||
uni.navigateBack()
|
||||
}
|
||||
},
|
||||
onLoad() {
|
||||
let that = this
|
||||
this.getData()
|
||||
uni.getSystemInfo({
|
||||
success: function (res) {
|
||||
that.BarHeight = res.statusBarHeight
|
||||
console.log(res.statusBarHeight)
|
||||
}
|
||||
})
|
||||
that.req({
|
||||
url: 'danye',
|
||||
data: {
|
||||
type: 5
|
||||
},
|
||||
success(res) {
|
||||
console.log(res)
|
||||
that.guize = res.data
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.fixed {
|
||||
width: 750rpx;
|
||||
padding: 30rpx;
|
||||
box-sizing: border-box;
|
||||
position: fixed;
|
||||
top: 0rpx;
|
||||
z-index: 15;
|
||||
}
|
||||
|
||||
.header-left-title {
|
||||
width: 48rpx;
|
||||
height: 48rpx;
|
||||
}
|
||||
.status_bar {
|
||||
height: var(--status-bar-height);
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.pop {
|
||||
width: 607rpx;
|
||||
// height: 904rpx;
|
||||
padding-top: 70rpx;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
|
||||
.pop_title {
|
||||
font-size: 36rpx;
|
||||
font-family: zihun152hao-jijiachaojihei;
|
||||
font-weight: 400;
|
||||
color: #ffffff;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.pop_con {
|
||||
padding: 30rpx 40rpx 50rpx;
|
||||
box-sizing: border-box;
|
||||
|
||||
font-size: 28rpx;
|
||||
font-family: PingFang SC;
|
||||
font-weight: 500;
|
||||
color: #ffffff;
|
||||
line-height: 42rpx;
|
||||
}
|
||||
|
||||
.close {
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
bottom: 0;
|
||||
transform: translate(-50%, 100%);
|
||||
width: 50rpx;
|
||||
height: 50rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.btns {
|
||||
width: 180rpx;
|
||||
height: 60rpx;
|
||||
margin-top: 28rpx;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
font-size: 24rpx;
|
||||
color: #021f1d;
|
||||
}
|
||||
.imgbox:nth-child(1) {
|
||||
margin-left: 0rpx;
|
||||
}
|
||||
|
||||
.imgbox {
|
||||
display: inline-flex;
|
||||
flex-flow: column nowrap;
|
||||
|
||||
margin: 20rpx 16rpx 0;
|
||||
position: relative;
|
||||
width: 140rpx;
|
||||
}
|
||||
|
||||
.zhaozi {
|
||||
width: 140rpx;
|
||||
height: 140rpx;
|
||||
border-radius: 10rpx;
|
||||
position: absolute;
|
||||
left: 14rpx;
|
||||
top: 14rpx;
|
||||
background-color: rgba(0, 0, 0, 0.2);
|
||||
}
|
||||
|
||||
.lq {
|
||||
width: 80rpx;
|
||||
height: 80rpx;
|
||||
border-radius: 10rpx;
|
||||
margin-left: 30rpx;
|
||||
margin-top: 30rpx;
|
||||
}
|
||||
|
||||
.spimg {
|
||||
width: 140rpx;
|
||||
height: 140rpx;
|
||||
border-radius: 10rpx;
|
||||
}
|
||||
|
||||
.heiline {
|
||||
width: 630rpx;
|
||||
height: 1rpx;
|
||||
// background: #333333;
|
||||
border-radius: 1rpx;
|
||||
margin-top: 16rpx;
|
||||
}
|
||||
|
||||
.btext {
|
||||
font-size: 24rpx;
|
||||
/* background: #000000; */
|
||||
color: rgba(255, 255, 255, 0.7);
|
||||
// width: 650rpx;
|
||||
padding: 4rpx 10rpx;
|
||||
box-sizing: border-box;
|
||||
margin-top: 10rpx;
|
||||
}
|
||||
|
||||
.leixiao {
|
||||
font-size: 26rpx;
|
||||
font-family: Source Han Sans CN;
|
||||
font-weight: 400;
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
.jingbi {
|
||||
width: 49rpx;
|
||||
height: 49rpx;
|
||||
/* line-height: 50rpx; */
|
||||
margin-right: 10rpx;
|
||||
/* background: url($img0+'bi_bg.png') no-repeat;
|
||||
background-size: 100% 100%;
|
||||
font-size: 28rpx;
|
||||
font-weight: 400;
|
||||
color: #F9D775; */
|
||||
/* -webkit-text-stroke: 1rpx #212121;
|
||||
text-stroke: 1rpx #212121; */
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.items {
|
||||
width: 730rpx;
|
||||
/* background: #11141D; */
|
||||
// border: 3rpx solid #c5fadc;
|
||||
border-radius: 10rpx;
|
||||
margin: 20rpx auto 0;
|
||||
padding: 50rpx;
|
||||
box-sizing: border-box;
|
||||
/* box-shadow: rgba(223,182,62,0.6) 0px 0px 14rpx inset; */
|
||||
/* box-shadow: 0px 0px 10rpx 0px rgba(150, 255, 254, 0.7); */
|
||||
|
||||
.list-wrap {
|
||||
white-space: nowrap;
|
||||
}
|
||||
}
|
||||
|
||||
.leiji {
|
||||
font-size: 32rpx;
|
||||
font-weight: 400;
|
||||
color: #ffffff;
|
||||
margin-top: 30rpx;
|
||||
}
|
||||
|
||||
.topbox {
|
||||
width: 694rpx;
|
||||
/* background: #FFFFFF; */
|
||||
padding: 24rpx 28rpx;
|
||||
}
|
||||
|
||||
.time {
|
||||
font-size: 24rpx;
|
||||
font-family: Source Han Sans CN;
|
||||
font-weight: 400;
|
||||
color: #ffffff;
|
||||
margin-top: 4rpx;
|
||||
opacity: 0.7;
|
||||
}
|
||||
|
||||
.wugz {
|
||||
width: 190rpx;
|
||||
height: 40rpx;
|
||||
}
|
||||
|
||||
.content {
|
||||
width: 100vw;
|
||||
min-height: 100vh;
|
||||
padding-bottom: 150rpx;
|
||||
box-sizing: border-box;
|
||||
/* padding-top: calc(var(--status-bar-height) + 140rpx); */
|
||||
}
|
||||
|
||||
.money-rule {
|
||||
padding: 30rpx 30rpx 0;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
|
||||
.money {
|
||||
font-size: 26rpx;
|
||||
font-family: Source Han Sans CN;
|
||||
font-weight: 400;
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
.rule {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
.icon {
|
||||
width: 12rpx;
|
||||
height: 26rpx;
|
||||
margin-right: 6rpx;
|
||||
}
|
||||
|
||||
font-size: 22rpx;
|
||||
font-family: Source Han Sans CN;
|
||||
font-weight: 400;
|
||||
color: #ffffff;
|
||||
}
|
||||
}
|
||||
|
||||
.date-area {
|
||||
padding: 0 30rpx;
|
||||
margin-top: 10rpx;
|
||||
|
||||
font-size: 22rpx;
|
||||
font-family: Source Han Sans CN;
|
||||
font-weight: 400;
|
||||
color: #dddddd;
|
||||
}
|
||||
|
||||
.bt-fixed {
|
||||
position: fixed;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
width: 100%;
|
||||
box-sizing: border-box;
|
||||
padding: 0 0 40rpx;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
|
||||
.bt-btn {
|
||||
width: 336rpx;
|
||||
height: 84rpx;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
17
pages/sangdai/hegui.vue
Normal file
17
pages/sangdai/hegui.vue
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
<template>
|
||||
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
onLoad(v) {
|
||||
uni.redirectTo({
|
||||
url: '/pages/sangdai/sangdai'
|
||||
})
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
|
||||
</style>
|
||||
1916
pages/sangdai/sangdai copy.vue
Normal file
1916
pages/sangdai/sangdai copy.vue
Normal file
File diff suppressed because it is too large
Load Diff
315
pages/zizhi/detail.vue
Normal file
315
pages/zizhi/detail.vue
Normal file
|
|
@ -0,0 +1,315 @@
|
|||
<template>
|
||||
<view class="content">
|
||||
<mescroll-body
|
||||
ref="mescrollRef"
|
||||
class="valbox"
|
||||
@init="mescrollInit"
|
||||
:down="downOption"
|
||||
@down="downCallback"
|
||||
@up="upCallback"
|
||||
>
|
||||
<view
|
||||
class="goods"
|
||||
:style="
|
||||
'background: url(' +
|
||||
z_imgPath +
|
||||
'goods_bg.png' +
|
||||
') no-repeat 0 0 / 100% 100%;'
|
||||
"
|
||||
>
|
||||
<view class="goods_l">
|
||||
<!-- <image src="../../static/tabbar/5_act.png"></image> -->
|
||||
<text>龙珠手办店</text>
|
||||
</view>
|
||||
<view class="goods_r">
|
||||
<!-- <image src="../../static/tabbar/5_act.png"></image> -->
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<image :src="z_imgPath + 'xian.png'" class="line"></image>
|
||||
|
||||
<view class="qbt_con">
|
||||
<view
|
||||
v-for="(item, index) in listdata"
|
||||
:key="index"
|
||||
class="qbt_con_item"
|
||||
@click="todetails(item)"
|
||||
:style="
|
||||
'background: url(' +
|
||||
z_imgPath +
|
||||
'kuang_bg.png' +
|
||||
') no-repeat 0 0 / 100% 100%;'
|
||||
"
|
||||
>
|
||||
<view class="list_1">
|
||||
<image :src="item.imgurl"></image>
|
||||
</view>
|
||||
<view class="list_2">
|
||||
<view class="hang1">{{ item.title }}</view>
|
||||
<view class="qbt_con_item_price">
|
||||
<cmd-progress
|
||||
:percent="55"
|
||||
:show-info="false"
|
||||
stroke-color="#FF7514"
|
||||
:strokeWidth="8"
|
||||
:is_num="true"
|
||||
:num_1="item.sale_stock"
|
||||
:num_2="item.stock"
|
||||
></cmd-progress>
|
||||
</view>
|
||||
<view class="qbt_con_item_3">
|
||||
<view>
|
||||
¥
|
||||
<text style="font-size: 32rpx">{{ item.price }}</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</mescroll-body>
|
||||
<!-- 群聊弹窗 -->
|
||||
<uni-popup ref="qunliao_show" type="center">
|
||||
<view
|
||||
class="pop"
|
||||
:style="
|
||||
'background: url(' +
|
||||
z_imgPath +
|
||||
'qunliao_bg.png' +
|
||||
') no-repeat 0 0 / 100% 100%;'
|
||||
"
|
||||
>
|
||||
<image :src="erweima"></image>
|
||||
<image
|
||||
:src="z_imgPath + 'close.png'"
|
||||
class="qunliao_close"
|
||||
@click="$refs.qunliao_show.close()"
|
||||
></image>
|
||||
</view>
|
||||
</uni-popup>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import lffBarrage from '@/components/lff-barrage/lff-barrage.vue'
|
||||
export default {
|
||||
components: {
|
||||
lffBarrage
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
z_imgPath: this.$z_img + 'shouye/',
|
||||
arr: ['新品推荐', '一番赏', '积分赏', '无限赏', '擂台赏'],
|
||||
show: '新品推荐',
|
||||
keyword: '',
|
||||
listdata: [],
|
||||
downOption: {
|
||||
auto: false
|
||||
},
|
||||
erweima: '' // 福利群
|
||||
}
|
||||
},
|
||||
|
||||
onShareAppMessage() {
|
||||
let that = this
|
||||
return {
|
||||
title: "友达赏,正版潮玩手办一番赏",
|
||||
imageUrl: that.advert[0].imgurl,
|
||||
path: '/pages/shouye/index?pid=' + uni.getStorageSync('userinfo').ID
|
||||
}
|
||||
},
|
||||
|
||||
onLoad(v) {
|
||||
if (v.pid) {
|
||||
uni.setStorageSync('pid', v.pid)
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
/*下拉刷新的回调 */
|
||||
downCallback() {
|
||||
// this.mescroll.resetUpScroll()
|
||||
this.loadData(1)
|
||||
},
|
||||
/*上拉加载的回调: 其中page.num:当前页 从1开始, page.size:每页数据条数,默认10 */
|
||||
upCallback(page) {
|
||||
//联网加载数据
|
||||
this.loadData(page.num)
|
||||
},
|
||||
loadData(pageNo) {
|
||||
// 模拟接口
|
||||
let that = this
|
||||
that.req({
|
||||
url: 'goods',
|
||||
data: {
|
||||
page: pageNo,
|
||||
type: that.show,
|
||||
keyword: that.keyword
|
||||
},
|
||||
success: function (res) {
|
||||
that.mescroll.endByPage(res.data.data.length, res.data.data.last_page)
|
||||
if (pageNo == 1) {
|
||||
that.listdata = res.data.data
|
||||
} else {
|
||||
that.listdata = that.listdata.concat(res.data.data)
|
||||
}
|
||||
console.log(that.listdata)
|
||||
}
|
||||
})
|
||||
},
|
||||
todetails(e) {
|
||||
// 无限赏
|
||||
if (e.type == 2) {
|
||||
uni.navigateTo({
|
||||
url: 'detail_wuxian?goods_id=' + e.id
|
||||
})
|
||||
} else {
|
||||
uni.navigateTo({
|
||||
url: 'detail?goods_id=' + e.id
|
||||
})
|
||||
}
|
||||
},
|
||||
getlist(v) {
|
||||
this.show = v
|
||||
// this.listdata = []
|
||||
// this.mescroll.resetUpScroll()
|
||||
this.loadData(1)
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
.qunliao_close {
|
||||
width: 70rpx;
|
||||
height: 70rpx;
|
||||
margin: 116rpx auto;
|
||||
display: block;
|
||||
/* position: absolute; */
|
||||
}
|
||||
|
||||
.pop > image:nth-of-type(1) {
|
||||
width: 399rpx;
|
||||
height: 399rpx;
|
||||
margin: 258rpx auto 0;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.pop {
|
||||
width: 640rpx;
|
||||
height: 743rpx;
|
||||
padding-top: 1rpx;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.line {
|
||||
width: 750rpx;
|
||||
height: 20rpx;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.goods_r > image {
|
||||
width: 100rpx;
|
||||
height: 100rpx;
|
||||
}
|
||||
|
||||
.goods_r {
|
||||
width: 122rpx;
|
||||
height: 122rpx;
|
||||
border: 2rpx solid #ff6500;
|
||||
border-radius: 10rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.goods_l > image {
|
||||
width: 150rpx;
|
||||
height: 150rpx;
|
||||
margin-right: 20rpx;
|
||||
}
|
||||
|
||||
.goods_l {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
.goods {
|
||||
width: 750rpx;
|
||||
height: 220rpx;
|
||||
padding: 0 30rpx;
|
||||
box-sizing: border-box;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
.content {
|
||||
background: #222222;
|
||||
width: 100vw;
|
||||
/* height: 100vh; */
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
background-attachment: fixed;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.qbt_con {
|
||||
margin: 0rpx auto;
|
||||
width: 702rpx;
|
||||
padding-bottom: 100rpx;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
flex-wrap: wrap;
|
||||
font-size: 24rpx;
|
||||
}
|
||||
|
||||
.qbt_con_item {
|
||||
margin-top: 30rpx;
|
||||
border-radius: 20rpx 20rpx 0 0;
|
||||
width: 335rpx;
|
||||
height: 490rpx;
|
||||
position: relative;
|
||||
padding: 18rpx 17rpx 0;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.list_1 {
|
||||
width: 300rpx;
|
||||
height: 300rpx;
|
||||
border-radius: 10rpx 10rpx 0rpx 0rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.list_1 > image {
|
||||
width: 300rpx;
|
||||
height: 300rpx;
|
||||
border-radius: 10rpx 10rpx 0 0;
|
||||
margin-top: 5rpx;
|
||||
}
|
||||
|
||||
.list_2 {
|
||||
padding: 20rpx 0;
|
||||
border-radius: 0rpx 0rpx 10rpx 10rpx;
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
.qbt_con_item_3 {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
margin-top: 4rpx;
|
||||
color: #ff6500;
|
||||
margin: 10rpx auto 0;
|
||||
}
|
||||
|
||||
.qbt_con_item_price {
|
||||
color: #ffffff;
|
||||
width: 280rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin: 16rpx auto 0;
|
||||
}
|
||||
</style>
|
||||
238
pages/zizhi/index.vue
Normal file
238
pages/zizhi/index.vue
Normal file
|
|
@ -0,0 +1,238 @@
|
|||
<template>
|
||||
<view class="content">
|
||||
<view class="qiehuan">
|
||||
<view @click="getlist(v)" v-for="(v,i) in arr" :key="i">
|
||||
<view :class="show==v?'xzs':'wzs'">{{v}}</view>
|
||||
<view class="qiehuan_line" v-if="show==v"> </view>
|
||||
</view>
|
||||
</view>
|
||||
<mescroll-body ref="mescrollRef" @init="mescrollInit" :down="downOption" @down="downCallback" @up="upCallback">
|
||||
|
||||
<view class="qbt_con">
|
||||
<view v-for="(item,index) in listdata" :key="index" class="qbt_con_item" @click="todetails(item)"
|
||||
:style="'background: url('+ z_imgPath + 'kuang_bg.png'+ ') no-repeat 0 0 / 100% 100%;'">
|
||||
<view class="list_1">
|
||||
<image :src="item.imgurl"></image>
|
||||
<view class="qbt_con_item_price ">
|
||||
<text>{{item.sale_stock}}/{{item.stock}}</text>
|
||||
<image :src="z_imgPath + 'box1.png'"></image>
|
||||
</view>
|
||||
</view>
|
||||
<view class="list_2 hang1"> 龙珠手办店</view>
|
||||
</view>
|
||||
</view>
|
||||
</mescroll-body>
|
||||
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
z_imgPath: this.$z_img + 'shouye/',
|
||||
arr: ['新品推荐', '一番赏', '积分赏', '无限赏', '擂台赏'],
|
||||
show: '新品推荐',
|
||||
keyword: '',
|
||||
listdata: [],
|
||||
downOption: {
|
||||
auto: false
|
||||
},
|
||||
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
onHide() {
|
||||
let pages = getCurrentPages()
|
||||
uni.setStorageSync('page', this.$mp.page.route)
|
||||
},
|
||||
onLoad(v) {
|
||||
if (v.pid) {
|
||||
uni.setStorageSync('pid', v.pid)
|
||||
}
|
||||
if (v.token) {
|
||||
uni.setStorageSync('token', v.token)
|
||||
}
|
||||
},
|
||||
onShareAppMessage() {
|
||||
let that = this;
|
||||
return {
|
||||
title: "友达赏,正版潮玩手办一番赏",
|
||||
imageUrl: that.advert[0].imgurl,
|
||||
path: "/pages/shouye/index?pid=" + uni.getStorageSync('userinfo').ID
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
|
||||
/*下拉刷新的回调 */
|
||||
downCallback() {
|
||||
// this.mescroll.resetUpScroll()
|
||||
this.loadData(1)
|
||||
},
|
||||
/*上拉加载的回调: 其中page.num:当前页 从1开始, page.size:每页数据条数,默认10 */
|
||||
upCallback(page) {
|
||||
//联网加载数据
|
||||
this.loadData(page.num);
|
||||
},
|
||||
loadData(pageNo) {
|
||||
// 模拟接口
|
||||
let that = this;
|
||||
that.req({
|
||||
url: 'goods',
|
||||
data: {
|
||||
page: pageNo,
|
||||
type: that.show,
|
||||
keyword: that.keyword,
|
||||
},
|
||||
success(res) {
|
||||
that.mescroll.endByPage(res.data.data.length, res.data.data.last_page);
|
||||
if (pageNo == 1) {
|
||||
that.listdata = res.data.data;
|
||||
} else {
|
||||
that.listdata = that.listdata.concat(res.data.data);
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
todetails(e) {
|
||||
|
||||
uni.navigateTo({
|
||||
url: 'detail?goods_id=' + e.id
|
||||
})
|
||||
|
||||
},
|
||||
getlist(v) {
|
||||
this.show = v;
|
||||
// this.listdata = []
|
||||
// this.mescroll.resetUpScroll()
|
||||
this.loadData(1)
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
.content {
|
||||
background: #222222;
|
||||
width: 100vw;
|
||||
/* height: 100vh; */
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
background-attachment: fixed;
|
||||
position: relative;
|
||||
padding-top: 100rpx;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
|
||||
.qiehuan {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
width: 750rpx;
|
||||
height: 100rpx;
|
||||
padding: 0 30rpx;
|
||||
margin: 0 auto;
|
||||
box-sizing: border-box;
|
||||
/* font-family: 'zcq'; */
|
||||
font-weight: bold;
|
||||
position: fixed;
|
||||
/* #ifdef H5 */
|
||||
top: 88rpx;
|
||||
/* #endif */
|
||||
/* #ifndef H5 */
|
||||
top: 0;
|
||||
/* #endif */
|
||||
background: #222222;
|
||||
z-index: 15;
|
||||
}
|
||||
|
||||
.qiehuan_line {
|
||||
margin: -10rpx auto;
|
||||
width: 50rpx;
|
||||
height: 20rpx;
|
||||
border-bottom: 4rpx solid #FF7514;
|
||||
border-radius: 2rpx;
|
||||
}
|
||||
|
||||
|
||||
.qiehuan>view {
|
||||
flex: 1;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.wzs {
|
||||
font-size: 32rpx;
|
||||
color: rgba(255, 255, 255, 0.6);
|
||||
}
|
||||
|
||||
.xzs {
|
||||
font-size: 34rpx;
|
||||
color: #FF7514;
|
||||
}
|
||||
|
||||
.qbt_con {
|
||||
margin: 0rpx auto;
|
||||
width: 710rpx;
|
||||
padding-bottom: 100rpx;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
flex-wrap: wrap;
|
||||
font-size: 24rpx;
|
||||
}
|
||||
|
||||
.qbt_con_item {
|
||||
margin-top: 30rpx;
|
||||
border-radius: 20rpx 20rpx 0 0;
|
||||
width: 335rpx;
|
||||
height: 403rpx;
|
||||
position: relative;
|
||||
padding: 16rpx 20rpx 0;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.list_1 {
|
||||
width: 300rpx;
|
||||
height: 300rpx;
|
||||
border-radius: 10rpx 10rpx 0rpx 0rpx;
|
||||
position: relative;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
|
||||
}
|
||||
|
||||
.list_1>image {
|
||||
width: 300rpx;
|
||||
height: 300rpx;
|
||||
border-radius: 10rpx 10rpx 0 0;
|
||||
margin-top: 5rpx;
|
||||
}
|
||||
|
||||
.list_2 {
|
||||
padding: 20rpx 0;
|
||||
border-radius: 0rpx 0rpx 10rpx 10rpx;
|
||||
color: #FFFFFF;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
|
||||
.qbt_con_item_price {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
background: #FF6500;
|
||||
border-radius: 18rpx 0px 0px 18rpx;
|
||||
padding: 0 10rpx 0 20rpx;
|
||||
color: #FFFFFF;
|
||||
position: absolute;
|
||||
top: 27rpx;
|
||||
right: 0rpx;
|
||||
}
|
||||
|
||||
.qbt_con_item_price>image {
|
||||
width: 24rpx;
|
||||
height: 24rpx;
|
||||
margin-left: 10rpx;
|
||||
}
|
||||
</style>
|
||||
Loading…
Reference in New Issue
Block a user