|
|
|
@ -1,140 +1,71 @@ |
|
|
|
<template> |
|
|
|
<view class="upgrade-page"> |
|
|
|
<!-- 顶部区域 --> |
|
|
|
<view class="header"> |
|
|
|
<!-- 顶部导航栏 --> |
|
|
|
<view class="nav-bar"> |
|
|
|
<!-- 顶部导航栏 --> |
|
|
|
<view class="nav-bar" :style="{height: navBarTotalHeight + 'px', paddingTop: statusBarHeight + 'px'}"> |
|
|
|
<view class="nav-bar-inner"> |
|
|
|
<view class="back-icon" @tap="navigateBack"> |
|
|
|
<uni-icons type="left" size="20"></uni-icons> |
|
|
|
<uni-icons type="left" size="22" color="#222" /> |
|
|
|
</view> |
|
|
|
<view class="title">回收侠·推客联盟</view> |
|
|
|
</view> |
|
|
|
|
|
|
|
<!-- 特点标签 --> |
|
|
|
<view class="feature-tags"> |
|
|
|
<view class="tag"> |
|
|
|
<text class="iconfont check">✓</text> |
|
|
|
<text>收益高</text> |
|
|
|
</view> |
|
|
|
<view class="tag"> |
|
|
|
<text class="iconfont check">✓</text> |
|
|
|
<text>品类全</text> |
|
|
|
</view> |
|
|
|
<view class="tag"> |
|
|
|
<text class="iconfont check">✓</text> |
|
|
|
<text>到账快</text> |
|
|
|
</view> |
|
|
|
<view class="tag"> |
|
|
|
<text class="iconfont check">✓</text> |
|
|
|
<text>城市多</text> |
|
|
|
<view class="nav-bar-title">回收侠·推客联盟</view> |
|
|
|
<view class="nav-bar-right"> |
|
|
|
<uni-icons type="more-filled" size="22" color="#222" /> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
|
|
|
|
<!-- 主要内容区域 --> |
|
|
|
<view class="content"> |
|
|
|
<view class="page-header"> |
|
|
|
<text class="title">升级推广官</text> |
|
|
|
<view class="contact-service" @tap="contactService"> |
|
|
|
<text class="icon">🎧</text> |
|
|
|
<text>联系客服</text> |
|
|
|
</view> |
|
|
|
<!-- 打钩标签区 --> |
|
|
|
<view class="feature-tags" :style="{marginTop: navBarTotalHeight + 'px'}"> |
|
|
|
<view class="tag" v-for="(t, i) in featureTags" :key="i"> |
|
|
|
<text class="check">✓</text> |
|
|
|
<text class="text">{{t}}</text> |
|
|
|
</view> |
|
|
|
|
|
|
|
<view class="subtitle">升级推广官需支付 [X] 元费用</view> |
|
|
|
|
|
|
|
<!-- 表单区域 --> |
|
|
|
<view class="form"> |
|
|
|
<!-- 姓名输入 --> |
|
|
|
</view> |
|
|
|
<!-- 主内容区 --> |
|
|
|
<view class="main-content"> |
|
|
|
<view class="upgrade-card"> |
|
|
|
<view class="upgrade-title-row"> |
|
|
|
<text class="upgrade-title">申请推广官</text> |
|
|
|
<view class="contact-service" @tap="contactService"> |
|
|
|
<uni-icons type="headphones" size="22" color="#df8155" /> |
|
|
|
<text class="contact-text">联系客服</text> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
<!-- 表单区 --> |
|
|
|
<view class="form-item"> |
|
|
|
<text class="label">姓名</text> |
|
|
|
<input |
|
|
|
class="input" |
|
|
|
type="text" |
|
|
|
placeholder="请输入" |
|
|
|
placeholder-class="placeholder" |
|
|
|
v-model="formData.name" |
|
|
|
/> |
|
|
|
<input class="input" type="text" placeholder="请输入" v-model="formData.name" /> |
|
|
|
</view> |
|
|
|
|
|
|
|
<!-- 电话输入 --> |
|
|
|
<view class="form-item"> |
|
|
|
<text class="label">电话</text> |
|
|
|
<input |
|
|
|
class="input" |
|
|
|
type="number" |
|
|
|
placeholder="请输入" |
|
|
|
placeholder-class="placeholder" |
|
|
|
v-model="formData.phone" |
|
|
|
/> |
|
|
|
</view> |
|
|
|
|
|
|
|
<!-- 职业选择 --> |
|
|
|
<view class="form-item" @tap="showPicker('occupation')"> |
|
|
|
<text class="label">职业</text> |
|
|
|
<view class="picker-value"> |
|
|
|
<text :class="{'placeholder': !formData.occupation}"> |
|
|
|
{{formData.occupation || '请选择'}} |
|
|
|
</text> |
|
|
|
<text class="iconfont arrow">></text> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
|
|
|
|
<!-- 年龄选择 --> |
|
|
|
<view class="form-item" @tap="showPicker('age')"> |
|
|
|
<text class="label">年龄</text> |
|
|
|
<view class="picker-value"> |
|
|
|
<text :class="{'placeholder': !formData.age}"> |
|
|
|
{{formData.age || '请选择'}} |
|
|
|
</text> |
|
|
|
<text class="iconfont arrow">></text> |
|
|
|
</view> |
|
|
|
<input class="input" type="number" placeholder="请输入" v-model="formData.phone" /> |
|
|
|
</view> |
|
|
|
|
|
|
|
<!-- 推广时间选择 --> |
|
|
|
<view class="form-item" @tap="showPicker('promotionTime')"> |
|
|
|
<text class="label">每日可花推广时间</text> |
|
|
|
<view class="picker-value"> |
|
|
|
<text :class="{'placeholder': !formData.promotionTime}"> |
|
|
|
{{formData.promotionTime || '请选择'}} |
|
|
|
</text> |
|
|
|
<text class="iconfont arrow">></text> |
|
|
|
<text :class="{'placeholder': !formData.promotionTime}">{{formData.promotionTime || '请选择'}}</text> |
|
|
|
<uni-icons type="right" size="18" color="#bbb" /> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
|
|
|
|
<!-- 说明文字 --> |
|
|
|
<view class="description"> |
|
|
|
"支付费用后,您将成为更高等级的推广官,享受更高额度的佣金及相关权益,包括但不限于优先推广资源、专属培训课程、一对一业务指导等" |
|
|
|
<view class="desc-text"> |
|
|
|
"支付费用后,您将成为更高等级的推广官,享受更高额度的佣金及相关权益,包括但不限于优先推广资源、专属培训课程、一对一业务指导等"。 |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
|
|
|
|
<!-- 底部按钮 --> |
|
|
|
<!-- 底部按钮区 --> |
|
|
|
<view class="bottom-btns"> |
|
|
|
<button class="submit-btn" @tap="submitForm">提交</button> |
|
|
|
<button class="btn gray">升级推广官</button> |
|
|
|
<button class="btn green" @tap="submitForm">提交</button> |
|
|
|
</view> |
|
|
|
|
|
|
|
<!-- 选择器弹窗 --> |
|
|
|
<view class="picker-popup" v-if="showPickerPopup"> |
|
|
|
<view class="popup-mask" @tap="hidePicker"></view> |
|
|
|
<view class="popup-content"> |
|
|
|
<view class="popup-header"> |
|
|
|
<text class="reset">重置</text> |
|
|
|
<text class="title">{{pickerTitle}}</text> |
|
|
|
<text class="reset" @tap="resetPicker">重置</text> |
|
|
|
<text class="title">每日可花推广时间</text> |
|
|
|
</view> |
|
|
|
<picker-view |
|
|
|
class="picker-view" |
|
|
|
:value="[currentPickerIndex]" |
|
|
|
@change="onPickerChange" |
|
|
|
:indicator-style="indicatorStyle" |
|
|
|
> |
|
|
|
<picker-view class="picker-view" :value="[currentPickerIndex]" @change="onPickerChange" :indicator-style="indicatorStyle"> |
|
|
|
<picker-view-column> |
|
|
|
<view |
|
|
|
class="picker-item" |
|
|
|
v-for="(item, index) in currentPickerOptions" |
|
|
|
:key="index" |
|
|
|
:class="{'selected-item': index === currentPickerIndex}" |
|
|
|
>{{item}}</view> |
|
|
|
<view class="picker-item" v-for="(item, index) in pickerOptions" :key="index" :class="{'selected-item': index === currentPickerIndex}">{{item}}</view> |
|
|
|
</picker-view-column> |
|
|
|
</picker-view> |
|
|
|
<button class="confirm-btn" @tap="confirmPicker">确认</button> |
|
|
|
@ -144,55 +75,46 @@ |
|
|
|
</template> |
|
|
|
|
|
|
|
<script> |
|
|
|
import pullRefreshMixin from '@/mixins/pullRefreshMixin.js' |
|
|
|
|
|
|
|
export default { |
|
|
|
mixins: [pullRefreshMixin], |
|
|
|
data() { |
|
|
|
return { |
|
|
|
statusBarHeight: 0, |
|
|
|
navBarHeight: 44, |
|
|
|
navBarTotalHeight: 44, |
|
|
|
featureTags: ['收益高', '品类全', '到账快', '城市多'], |
|
|
|
formData: { |
|
|
|
name: '', |
|
|
|
phone: '', |
|
|
|
occupation: '', |
|
|
|
age: '', |
|
|
|
promotionTime: '' |
|
|
|
}, |
|
|
|
showPickerPopup: false, |
|
|
|
currentPickerType: '', |
|
|
|
currentPickerIndex: 0, |
|
|
|
indicatorStyle: 'height: 88rpx; border: none;', |
|
|
|
pickerOptions: { |
|
|
|
occupation: ['产品摄影师', '外呼专员', '宝妈', '导购员', '产品经理'], |
|
|
|
age: ['28岁', '29岁', '30岁', '31岁', '32岁'], |
|
|
|
promotionTime: ['2小时', '3小时', '4小时', '5小时', '6小时'] |
|
|
|
} |
|
|
|
pickerOptions: ['2小时', '3小时', '4小时', '5小时', '6小时'] |
|
|
|
} |
|
|
|
}, |
|
|
|
computed: { |
|
|
|
pickerTitle() { |
|
|
|
const titles = { |
|
|
|
occupation: '职业', |
|
|
|
age: '年龄', |
|
|
|
promotionTime: '每日可花推广时间' |
|
|
|
} |
|
|
|
return titles[this.currentPickerType] || '' |
|
|
|
}, |
|
|
|
currentPickerOptions() { |
|
|
|
return this.pickerOptions[this.currentPickerType] || [] |
|
|
|
} |
|
|
|
onLoad() { |
|
|
|
const sysInfo = uni.getSystemInfoSync() |
|
|
|
this.statusBarHeight = sysInfo.statusBarHeight |
|
|
|
this.navBarHeight = 44 |
|
|
|
this.navBarTotalHeight = this.statusBarHeight + this.navBarHeight |
|
|
|
}, |
|
|
|
methods: { |
|
|
|
async onRefresh() { |
|
|
|
// 模拟刷新数据 |
|
|
|
await new Promise(resolve => setTimeout(resolve, 1000)) |
|
|
|
this.stopPullRefresh() |
|
|
|
}, |
|
|
|
navigateBack() { |
|
|
|
uni.navigateBack() |
|
|
|
}, |
|
|
|
contactService() { |
|
|
|
uni.showToast({ |
|
|
|
title: '正在连接客服...', |
|
|
|
icon: 'none' |
|
|
|
}) |
|
|
|
uni.navigateTo({ url: '/pages/subcomponent/admin_faq' }) |
|
|
|
}, |
|
|
|
showPicker(type) { |
|
|
|
this.currentPickerType = type |
|
|
|
const currentValue = this.formData[this.currentPickerType] |
|
|
|
this.currentPickerIndex = this.currentPickerOptions.indexOf(currentValue) |
|
|
|
if (this.currentPickerIndex === -1) this.currentPickerIndex = 0 |
|
|
|
showPicker() { |
|
|
|
this.showPickerPopup = true |
|
|
|
}, |
|
|
|
hidePicker() { |
|
|
|
@ -203,16 +125,14 @@ export default { |
|
|
|
this.currentPickerIndex = index |
|
|
|
}, |
|
|
|
confirmPicker() { |
|
|
|
const selectedValue = this.currentPickerOptions[this.currentPickerIndex] |
|
|
|
this.formData[this.currentPickerType] = selectedValue |
|
|
|
this.formData.promotionTime = this.pickerOptions[this.currentPickerIndex] |
|
|
|
this.hidePicker() |
|
|
|
}, |
|
|
|
resetPicker() { |
|
|
|
this.currentPickerIndex = 0 |
|
|
|
}, |
|
|
|
submitForm() { |
|
|
|
console.log('提交表单数据:', this.formData) |
|
|
|
uni.showToast({ |
|
|
|
title: '提交成功', |
|
|
|
icon: 'success' |
|
|
|
}) |
|
|
|
uni.showToast({ title: '提交成功', icon: 'success' }) |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
@ -221,214 +141,218 @@ export default { |
|
|
|
<style lang="scss" scoped> |
|
|
|
.upgrade-page { |
|
|
|
min-height: 100vh; |
|
|
|
background: linear-gradient(to right,#9be48f,#42dfc2); |
|
|
|
padding-bottom: calc(env(safe-area-inset-bottom) + 100rpx); |
|
|
|
background: linear-gradient(180deg, #eaffe6 0%, #fff 30%); |
|
|
|
padding-bottom: calc(env(safe-area-inset-bottom) + 120rpx); |
|
|
|
} |
|
|
|
|
|
|
|
.header { |
|
|
|
background: linear-gradient(to right,#9be48f,#42dfc2); |
|
|
|
padding: 0 30rpx; |
|
|
|
padding-bottom: 20rpx; |
|
|
|
|
|
|
|
.nav-bar { |
|
|
|
.nav-bar { |
|
|
|
position: fixed; |
|
|
|
top: 0; |
|
|
|
left: 0; |
|
|
|
right: 0; |
|
|
|
z-index: 1000; |
|
|
|
width: 100vw; |
|
|
|
background: linear-gradient(to right, #b2f08d 0%, #39e9d2 100%); |
|
|
|
box-shadow: 0 2rpx 12rpx rgba(0,0,0,0.03); |
|
|
|
.nav-bar-inner { |
|
|
|
display: flex; |
|
|
|
align-items: center; |
|
|
|
// justify-content: space-between; |
|
|
|
height: 88rpx; |
|
|
|
padding-top: var(--status-bar-height); |
|
|
|
|
|
|
|
.title { |
|
|
|
font-family: DingTalk JinBuTi; |
|
|
|
font-weight: 400; |
|
|
|
font-style: italic; |
|
|
|
font-size: 50rpx; |
|
|
|
line-height: 100%; |
|
|
|
letter-spacing: 0%; |
|
|
|
vertical-align: bottom; |
|
|
|
color: #333; |
|
|
|
margin-left: 10%; |
|
|
|
} |
|
|
|
|
|
|
|
.back-icon, .more-icon { |
|
|
|
width: 88rpx; |
|
|
|
height: 88rpx; |
|
|
|
display: flex; |
|
|
|
align-items: center; |
|
|
|
justify-content: center; |
|
|
|
|
|
|
|
.iconfont { |
|
|
|
font-size: 40rpx; |
|
|
|
color: #333; |
|
|
|
} |
|
|
|
} |
|
|
|
height: 44px; |
|
|
|
width: 100vw; |
|
|
|
position: relative; |
|
|
|
} |
|
|
|
.back-icon, .nav-bar-right { |
|
|
|
width: 44px; |
|
|
|
height: 44px; |
|
|
|
display: flex; |
|
|
|
align-items: center; |
|
|
|
justify-content: center; |
|
|
|
position: absolute; |
|
|
|
top: 0; |
|
|
|
} |
|
|
|
.back-icon { left: 0; } |
|
|
|
.nav-bar-right { right: 0; } |
|
|
|
.nav-bar-title { |
|
|
|
flex: 1; |
|
|
|
text-align: center; |
|
|
|
font-size: 36rpx; |
|
|
|
font-weight: bold; |
|
|
|
color: #222; |
|
|
|
letter-spacing: 2rpx; |
|
|
|
line-height: 44px; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
.feature-tags { |
|
|
|
.feature-tags { |
|
|
|
position: relative; |
|
|
|
z-index: 1; |
|
|
|
margin: 0 32rpx; |
|
|
|
margin-top: 0; |
|
|
|
margin-bottom: 0; |
|
|
|
background: linear-gradient(to right, #b2f08d 0%, #39e9d2 100%); |
|
|
|
border-radius: 32rpx; |
|
|
|
box-shadow: 0 4rpx 24rpx rgba(60, 167, 250, 0.08); |
|
|
|
padding: 0 24rpx; |
|
|
|
height: 80rpx; |
|
|
|
display: flex; |
|
|
|
justify-content: space-between; |
|
|
|
align-items: center; |
|
|
|
.tag { |
|
|
|
flex: 1; |
|
|
|
display: flex; |
|
|
|
justify-content: space-between; |
|
|
|
width: 90%; |
|
|
|
margin: 0 auto; |
|
|
|
margin-top: 10rpx; |
|
|
|
border: 1px solid rgba(0, 0, 0, 0.3); |
|
|
|
border-radius: 20rpx; |
|
|
|
background: linear-gradient(to right,#9be48f,#42dfc2); |
|
|
|
.tag { |
|
|
|
// background: rgba(255, 255, 255, 0.8); |
|
|
|
border-radius: 30rpx; |
|
|
|
padding: 12rpx 24rpx; |
|
|
|
align-items: center; |
|
|
|
justify-content: center; |
|
|
|
.check { |
|
|
|
width: 36rpx; |
|
|
|
height: 36rpx; |
|
|
|
background: #fff; |
|
|
|
border-radius: 50%; |
|
|
|
display: flex; |
|
|
|
align-items: center; |
|
|
|
|
|
|
|
.check { |
|
|
|
color: #4CAF50; |
|
|
|
margin-right: 8rpx; |
|
|
|
font-size: 24rpx; |
|
|
|
} |
|
|
|
|
|
|
|
text { |
|
|
|
font-size: 24rpx; |
|
|
|
color: #333; |
|
|
|
} |
|
|
|
justify-content: center; |
|
|
|
font-size: 28rpx; |
|
|
|
color: #13ac47; |
|
|
|
font-weight: bold; |
|
|
|
margin-right: 10rpx; |
|
|
|
box-shadow: 0 2rpx 8rpx rgba(0,0,0,0.08); |
|
|
|
} |
|
|
|
.text { |
|
|
|
color: #fff; |
|
|
|
font-size: 28rpx; |
|
|
|
font-weight: bold; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
.content { |
|
|
|
padding: 40rpx 30rpx; |
|
|
|
background: linear-gradient(to bottom,#eaffe6,6%,#fcfffb); |
|
|
|
border-radius: 40rpx 40rpx 0 0; |
|
|
|
margin-top: 20rpx; |
|
|
|
.main-content { |
|
|
|
margin-top: -48rpx; |
|
|
|
padding-top: 88rpx; |
|
|
|
background: linear-gradient(180deg, #eaffe6 0%, #fff 30%); |
|
|
|
min-height: 100vh; |
|
|
|
width: 100vw; |
|
|
|
box-sizing: border-box; |
|
|
|
position: relative; |
|
|
|
z-index: 11; |
|
|
|
border-radius: 40rpx 40rpx 0 0; |
|
|
|
overflow: hidden; |
|
|
|
display: flex; |
|
|
|
flex-direction: column; |
|
|
|
align-items: center; |
|
|
|
} |
|
|
|
|
|
|
|
.page-header { |
|
|
|
.upgrade-card { |
|
|
|
width: 92vw; |
|
|
|
max-width: 700rpx; |
|
|
|
margin: 40rpx auto 0 auto; |
|
|
|
background: #fff; |
|
|
|
border-radius: 32rpx; |
|
|
|
box-shadow: 0 8rpx 32rpx rgba(60, 167, 250, 0.08); |
|
|
|
padding: 40rpx 32rpx 32rpx 32rpx; |
|
|
|
display: flex; |
|
|
|
flex-direction: column; |
|
|
|
align-items: stretch; |
|
|
|
.upgrade-title-row { |
|
|
|
display: flex; |
|
|
|
justify-content: space-between; |
|
|
|
align-items: center; |
|
|
|
margin-bottom: 60rpx; |
|
|
|
|
|
|
|
.title { |
|
|
|
font-size: 40rpx; |
|
|
|
margin-bottom: 32rpx; |
|
|
|
.upgrade-title { |
|
|
|
font-size: 32rpx; |
|
|
|
font-weight: bold; |
|
|
|
color: #333; |
|
|
|
color: #222; |
|
|
|
} |
|
|
|
|
|
|
|
.contact-service { |
|
|
|
display: flex; |
|
|
|
align-items: center; |
|
|
|
padding: 12rpx 24rpx; |
|
|
|
border-radius: 10rpx; |
|
|
|
padding: 4rpx 12rpx; |
|
|
|
border-radius: 12rpx; |
|
|
|
border: 2rpx solid #df8155; |
|
|
|
background: #fff0d2; |
|
|
|
.icon { |
|
|
|
margin-right: 8rpx; |
|
|
|
font-size: 28rpx; |
|
|
|
.contact-text { |
|
|
|
color: #df8155; |
|
|
|
font-size: 22rpx; |
|
|
|
margin-left: 4rpx; |
|
|
|
} |
|
|
|
|
|
|
|
text { |
|
|
|
font-size: 26rpx; |
|
|
|
color: #da7143; |
|
|
|
uni-icons { |
|
|
|
font-size: 20rpx !important; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
.subtitle { |
|
|
|
font-size: 28rpx; |
|
|
|
color: #666; |
|
|
|
margin-bottom: 40rpx; |
|
|
|
} |
|
|
|
|
|
|
|
.form { |
|
|
|
.form-item { |
|
|
|
margin-bottom: 40rpx; |
|
|
|
|
|
|
|
.label { |
|
|
|
font-family: PingFang SC; |
|
|
|
font-weight: 400; |
|
|
|
font-size: 13px; |
|
|
|
line-height: 140%; |
|
|
|
letter-spacing: 0%; |
|
|
|
color: #343534; |
|
|
|
font-weight: normal; |
|
|
|
margin-bottom: 16rpx; |
|
|
|
display: block; |
|
|
|
} |
|
|
|
|
|
|
|
.input { |
|
|
|
width: 100%; |
|
|
|
height: 88rpx; |
|
|
|
background: transparent; |
|
|
|
padding: 0; |
|
|
|
.form-item { |
|
|
|
margin-bottom: 32rpx; |
|
|
|
.label { |
|
|
|
font-size: 28rpx; |
|
|
|
color: #222; |
|
|
|
margin-bottom: 12rpx; |
|
|
|
display: block; |
|
|
|
} |
|
|
|
.input { |
|
|
|
width: 100%; |
|
|
|
height: 72rpx; |
|
|
|
background: transparent; |
|
|
|
padding: 0; |
|
|
|
font-size: 30rpx; |
|
|
|
border: none; |
|
|
|
border-bottom: 1rpx solid #eee; |
|
|
|
&::placeholder { |
|
|
|
color: #bbb; |
|
|
|
font-size: 30rpx; |
|
|
|
border: none; |
|
|
|
border-bottom: 1rpx solid rgba(0, 0, 0, 0.08); |
|
|
|
|
|
|
|
&::placeholder { |
|
|
|
color: rgba(153, 153, 153, 0.35); |
|
|
|
font-size: 30rpx; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
.picker-value { |
|
|
|
width: 100%; |
|
|
|
height: 88rpx; |
|
|
|
background: transparent; |
|
|
|
padding: 0; |
|
|
|
display: flex; |
|
|
|
align-items: center; |
|
|
|
justify-content: space-between; |
|
|
|
border: none; |
|
|
|
border-bottom: 1rpx solid rgba(0, 0, 0, 0.08); |
|
|
|
|
|
|
|
text { |
|
|
|
font-size: 30rpx; |
|
|
|
color: #333; |
|
|
|
|
|
|
|
&.placeholder { |
|
|
|
color: rgba(153, 153, 153, 0.35); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
.arrow { |
|
|
|
color: #999; |
|
|
|
font-size: 24rpx; |
|
|
|
transform: rotate(90deg); |
|
|
|
opacity: 0.5; |
|
|
|
} |
|
|
|
} |
|
|
|
.picker-value { |
|
|
|
width: 100%; |
|
|
|
height: 72rpx; |
|
|
|
display: flex; |
|
|
|
align-items: center; |
|
|
|
justify-content: space-between; |
|
|
|
border-bottom: 1rpx solid #eee; |
|
|
|
.placeholder { |
|
|
|
color: #bbb; |
|
|
|
} |
|
|
|
text { |
|
|
|
font-size: 30rpx; |
|
|
|
color: #222; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
.description { |
|
|
|
.desc-text { |
|
|
|
font-size: 26rpx; |
|
|
|
color: #666; |
|
|
|
line-height: 1.6; |
|
|
|
padding: 30rpx; |
|
|
|
margin-top: 40rpx; |
|
|
|
margin-top: 32rpx; |
|
|
|
text-align: center; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
.bottom-btns { |
|
|
|
position: fixed; |
|
|
|
bottom: 0; |
|
|
|
left: 0; |
|
|
|
right: 0; |
|
|
|
padding: 20rpx 30rpx; |
|
|
|
padding-bottom: calc(20rpx + env(safe-area-inset-bottom)); |
|
|
|
background: rgba(255, 255, 255, 0.9); |
|
|
|
backdrop-filter: blur(10px); |
|
|
|
|
|
|
|
.submit-btn { |
|
|
|
width: 100%; |
|
|
|
bottom: 0; |
|
|
|
display: flex; |
|
|
|
justify-content: space-between; |
|
|
|
padding: 24rpx 32rpx calc(env(safe-area-inset-bottom) + 24rpx) 32rpx; |
|
|
|
background: #fff; |
|
|
|
z-index: 100; |
|
|
|
.btn { |
|
|
|
flex: 1; |
|
|
|
height: 88rpx; |
|
|
|
line-height: 88rpx; |
|
|
|
text-align: center; |
|
|
|
border-radius: 44rpx; |
|
|
|
font-size: 32rpx; |
|
|
|
background: linear-gradient(90deg, #91dba5, #7ed4a6); |
|
|
|
color: #fff; |
|
|
|
font-weight: bold; |
|
|
|
margin: 0 12rpx; |
|
|
|
border: none; |
|
|
|
box-shadow: 0 4rpx 12rpx rgba(0, 0, 0, 0.1); |
|
|
|
box-shadow: none; |
|
|
|
&.gray { |
|
|
|
background: linear-gradient(180deg, #f8f8f8 0%, #f2f4f6 100%); |
|
|
|
color: #222; |
|
|
|
border: 2rpx solid #e5e5e5; |
|
|
|
} |
|
|
|
&.green { |
|
|
|
background: linear-gradient(90deg, #b2f08d, #39e9d2); |
|
|
|
color: #222; |
|
|
|
border: none; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
@ -439,7 +363,6 @@ export default { |
|
|
|
right: 0; |
|
|
|
bottom: 0; |
|
|
|
z-index: 999; |
|
|
|
|
|
|
|
.popup-mask { |
|
|
|
position: absolute; |
|
|
|
top: 0; |
|
|
|
@ -448,7 +371,6 @@ export default { |
|
|
|
bottom: 0; |
|
|
|
background: rgba(0, 0, 0, 0.6); |
|
|
|
} |
|
|
|
|
|
|
|
.popup-content { |
|
|
|
position: absolute; |
|
|
|
left: 0; |
|
|
|
@ -457,7 +379,6 @@ export default { |
|
|
|
background: #fff; |
|
|
|
border-radius: 24rpx 24rpx 0 0; |
|
|
|
padding-bottom: calc(env(safe-area-inset-bottom) + 40rpx); |
|
|
|
|
|
|
|
.popup-header { |
|
|
|
display: flex; |
|
|
|
align-items: center; |
|
|
|
@ -465,13 +386,11 @@ export default { |
|
|
|
position: relative; |
|
|
|
justify-content: center; |
|
|
|
border-bottom: 1rpx solid #f5f5f5; |
|
|
|
|
|
|
|
.title { |
|
|
|
font-size: 32rpx; |
|
|
|
color: #333; |
|
|
|
font-weight: normal; |
|
|
|
} |
|
|
|
|
|
|
|
.reset { |
|
|
|
position: absolute; |
|
|
|
left: 30rpx; |
|
|
|
@ -479,12 +398,10 @@ export default { |
|
|
|
color: #666; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
.picker-view { |
|
|
|
width: 100%; |
|
|
|
height: 440rpx; |
|
|
|
background: #fff; |
|
|
|
|
|
|
|
.picker-item { |
|
|
|
height: 88rpx; |
|
|
|
line-height: 88rpx; |
|
|
|
@ -494,7 +411,6 @@ export default { |
|
|
|
font-weight: normal; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
.confirm-btn { |
|
|
|
margin: 30rpx; |
|
|
|
height: 88rpx; |
|
|
|
@ -507,36 +423,4 @@ export default { |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
::v-deep .uni-picker-view-indicator { |
|
|
|
height: 88rpx !important; |
|
|
|
background-color: rgba(245, 245, 245, 0.3); |
|
|
|
} |
|
|
|
|
|
|
|
::v-deep .uni-picker-view-mask { |
|
|
|
background-image: linear-gradient(180deg, rgba(255, 255, 255, 0.9), rgba(255, 255, 255, 0.4)), |
|
|
|
linear-gradient(0deg, rgba(255, 255, 255, 0.9), rgba(255, 255, 255, 0.4)); |
|
|
|
} |
|
|
|
|
|
|
|
::v-deep .uni-picker-view-content { |
|
|
|
.picker-item { |
|
|
|
transition: all 0.2s; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
::v-deep .uni-picker-view-indicator::after, |
|
|
|
::v-deep .uni-picker-view-indicator::before { |
|
|
|
display: none; |
|
|
|
} |
|
|
|
|
|
|
|
::v-deep .selected-item { |
|
|
|
font-size: 34rpx !important; |
|
|
|
color: #333 !important; |
|
|
|
font-weight: 600 !important; |
|
|
|
} |
|
|
|
|
|
|
|
::v-deep .placeholder { |
|
|
|
color: rgba(153, 153, 153, 0.35) !important; |
|
|
|
font-size: 30rpx; |
|
|
|
} |
|
|
|
</style> |