|
@@ -9,7 +9,7 @@
|
|
|
<view class="user-info">
|
|
<view class="user-info">
|
|
|
<AddressInfo v-if="addressSend.addressId" :address="addressSend" />
|
|
<AddressInfo v-if="addressSend.addressId" :address="addressSend" />
|
|
|
<view v-else class="create-btn" @click="handleAddAddress('sender')">新建寄件人</view>
|
|
<view v-else class="create-btn" @click="handleAddAddress('sender')">新建寄件人</view>
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
</view>
|
|
</view>
|
|
|
<view class="img-status-text right" @click="openAddressBook('sender')">
|
|
<view class="img-status-text right" @click="openAddressBook('sender')">
|
|
|
<image src="/static/img/create-order-address.png" mode="" class="address-image"></image>
|
|
<image src="/static/img/create-order-address.png" mode="" class="address-image"></image>
|
|
@@ -112,68 +112,85 @@
|
|
|
</view>
|
|
</view>
|
|
|
</view>
|
|
</view>
|
|
|
|
|
|
|
|
- <view class="pickup-title">增值服务</view>
|
|
|
|
|
|
|
+ <!-- 增值服务标题(带折叠箭头) -->
|
|
|
|
|
+ <view class="pickup-title" style="display: flex; justify-content: space-between; align-items: center;">
|
|
|
|
|
+ <text>增值服务</text>
|
|
|
|
|
+ <u-icon :name="showValueAdded ? 'arrow-up' : 'arrow-down'" size="18" color="#999" @click="showValueAdded = !showValueAdded"></u-icon>
|
|
|
|
|
+ </view>
|
|
|
|
|
|
|
|
- <!-- 增值服务卡片 -->
|
|
|
|
|
|
|
+ <!-- 增值服务卡片(折叠内容) -->
|
|
|
<view class="goods-card">
|
|
<view class="goods-card">
|
|
|
- <view class="goods-item" v-if="product === '1'">
|
|
|
|
|
- <view class="item-label">包装服务</view>
|
|
|
|
|
- <view class="item-control">
|
|
|
|
|
- <switch color="#007AFF" :checked="valueServices.isPack" @change="onPackagingChange" />
|
|
|
|
|
|
|
+ <block v-if="showValueAdded">
|
|
|
|
|
+ <!-- 展开状态:显示所有增值服务项 -->
|
|
|
|
|
+ <view class="goods-item" v-if="product === '1'">
|
|
|
|
|
+ <view class="item-label">包装服务</view>
|
|
|
|
|
+ <view class="item-control">
|
|
|
|
|
+ <switch color="#007AFF" :checked="valueServices.isPack" @change="onPackagingChange" />
|
|
|
|
|
+ </view>
|
|
|
</view>
|
|
</view>
|
|
|
- </view>
|
|
|
|
|
|
|
|
|
|
- <view class="goods-item">
|
|
|
|
|
- <view class="item-label">保价</view>
|
|
|
|
|
- <view class="item-control">
|
|
|
|
|
- <switch color="#007AFF" :checked="insuranceAmountChecked" @change="onInsuranceChange" />
|
|
|
|
|
|
|
+ <view class="goods-item">
|
|
|
|
|
+ <view class="item-label">保价</view>
|
|
|
|
|
+ <view class="item-control">
|
|
|
|
|
+ <switch color="#007AFF" :checked="insuranceAmountChecked" @change="onInsuranceChange" />
|
|
|
|
|
+ </view>
|
|
|
</view>
|
|
</view>
|
|
|
- </view>
|
|
|
|
|
|
|
|
|
|
- <view v-if="insuranceAmountChecked" class="goods-item">
|
|
|
|
|
- <view class="item-label">保价金额(元)</view>
|
|
|
|
|
- <view class="item-control">
|
|
|
|
|
- <input class="input-field" placeholder="请输入保价金额" placeholder-class="placeholder"
|
|
|
|
|
- v-model="insuranceAmount" type="digit" maxlength="10" @input="validateInsuranceAmount" />
|
|
|
|
|
|
|
+ <view v-if="insuranceAmountChecked" class="goods-item">
|
|
|
|
|
+ <view class="item-label">保价金额(元)</view>
|
|
|
|
|
+ <view class="item-control">
|
|
|
|
|
+ <input class="input-field" placeholder="请输入保价金额" placeholder-class="placeholder"
|
|
|
|
|
+ v-model="insuranceAmount" type="digit" maxlength="10" @input="validateInsuranceAmount" />
|
|
|
|
|
+ </view>
|
|
|
</view>
|
|
</view>
|
|
|
- </view>
|
|
|
|
|
|
|
|
|
|
- <!-- 超长超重(顺丰/京东) -->
|
|
|
|
|
- <!-- <view class="goods-item" v-if="product === '2'">
|
|
|
|
|
- <view class="item-label">超长超重</view>
|
|
|
|
|
- <view class="item-control">
|
|
|
|
|
- <switch color="#007AFF" :checked="valueServices.isOverLongWeight" @change="onOverweightChange" />
|
|
|
|
|
- </view>
|
|
|
|
|
- </view> -->
|
|
|
|
|
|
|
+ <!-- 超长超重(顺丰/京东) -->
|
|
|
|
|
+ <!-- <view class="goods-item" v-if="product === '2'">
|
|
|
|
|
+ <view class="item-label">超长超重</view>
|
|
|
|
|
+ <view class="item-control">
|
|
|
|
|
+ <switch color="#007AFF" :checked="valueServices.isOverLongWeight" @change="onOverweightChange" />
|
|
|
|
|
+ </view>
|
|
|
|
|
+ </view> -->
|
|
|
|
|
|
|
|
- <!-- 签单返还 -->
|
|
|
|
|
- <view class="goods-item" v-if="product === '1'">
|
|
|
|
|
- <view class="item-label">签单返还</view>
|
|
|
|
|
- <view class="item-control">
|
|
|
|
|
- <switch color="#007AFF" :checked="valueServices.isReceiptCollect" @change="onSignReturnChange" />
|
|
|
|
|
|
|
+ <!-- 签单返还 -->
|
|
|
|
|
+ <view class="goods-item" v-if="product === '1'">
|
|
|
|
|
+ <view class="item-label">签单返还</view>
|
|
|
|
|
+ <view class="item-control">
|
|
|
|
|
+ <switch color="#007AFF" :checked="valueServices.isReceiptCollect" @change="onSignReturnChange" />
|
|
|
|
|
+ </view>
|
|
|
</view>
|
|
</view>
|
|
|
- </view>
|
|
|
|
|
|
|
|
|
|
- <!-- 顺丰:签单返还类型选择 -->
|
|
|
|
|
- <view v-if="product === '2' && valueServices.isReceiptCollect" class="goods-item">
|
|
|
|
|
- <view class="item-label">返还类型</view>
|
|
|
|
|
- <view class="item-control">
|
|
|
|
|
- <picker :range="receiptReturnTypes" :range-key="'label'" @change="onReceiptReturnTypeChange"
|
|
|
|
|
- :value="receiptReturnTypeIndex">
|
|
|
|
|
- <view class="picker-text">{{ receiptReturnTypes[receiptReturnTypeIndex]?.label || '请选择返还类型' }}
|
|
|
|
|
- </view>
|
|
|
|
|
- </picker>
|
|
|
|
|
- <u-icon class="arrow" name='arrow-right' size="18"></u-icon>
|
|
|
|
|
|
|
+ <!-- 顺丰:签单返还类型选择 -->
|
|
|
|
|
+ <view v-if="product === '2' && valueServices.isReceiptCollect" class="goods-item">
|
|
|
|
|
+ <view class="item-label">返还类型</view>
|
|
|
|
|
+ <view class="item-control">
|
|
|
|
|
+ <picker :range="receiptReturnTypes" :range-key="'label'" @change="onReceiptReturnTypeChange"
|
|
|
|
|
+ :value="receiptReturnTypeIndex">
|
|
|
|
|
+ <view class="picker-text">{{ receiptReturnTypes[receiptReturnTypeIndex]?.label || '请选择返还类型' }}
|
|
|
|
|
+ </view>
|
|
|
|
|
+ </picker>
|
|
|
|
|
+ <u-icon class="arrow" name='arrow-right' size="18"></u-icon>
|
|
|
|
|
+ </view>
|
|
|
</view>
|
|
</view>
|
|
|
- </view>
|
|
|
|
|
|
|
|
|
|
- <!-- 打木架(仅顺丰) -->
|
|
|
|
|
- <!-- <view v-if="product === '2'" class="goods-item">
|
|
|
|
|
- <view class="item-label">打木架</view>
|
|
|
|
|
- <view class="item-control">
|
|
|
|
|
- <switch color="#007AFF" :checked="valueServices.isWoodenCrate" @change="onWoodenFrameChange" />
|
|
|
|
|
|
|
+ <!-- 打木架(仅顺丰) -->
|
|
|
|
|
+ <!-- <view v-if="product === '2'" class="goods-item">
|
|
|
|
|
+ <view class="item-label">打木架</view>
|
|
|
|
|
+ <view class="item-control">
|
|
|
|
|
+ <switch color="#007AFF" :checked="valueServices.isWoodenCrate" @change="onWoodenFrameChange" />
|
|
|
|
|
+ </view>
|
|
|
|
|
+ </view> -->
|
|
|
|
|
+ </block>
|
|
|
|
|
+ <block v-else>
|
|
|
|
|
+ <!-- 折叠状态:显示一个可点击的展开提示行 -->
|
|
|
|
|
+ <view class="goods-item" @click="showValueAdded = true">
|
|
|
|
|
+ <view class="item-label">增值服务</view>
|
|
|
|
|
+ <view class="item-control">
|
|
|
|
|
+ <text class="picker-text">点击展开</text>
|
|
|
|
|
+ <u-icon name="arrow-down" size="18" color="#999"></u-icon>
|
|
|
|
|
+ </view>
|
|
|
</view>
|
|
</view>
|
|
|
- </view> -->
|
|
|
|
|
|
|
+ </block>
|
|
|
</view>
|
|
</view>
|
|
|
|
|
|
|
|
<!-- 协议同意 -->
|
|
<!-- 协议同意 -->
|
|
@@ -187,9 +204,12 @@
|
|
|
</view>
|
|
</view>
|
|
|
</view>
|
|
</view>
|
|
|
|
|
|
|
|
- <!-- 下单按钮 -->
|
|
|
|
|
- <view class="submit-btn" :class="{ disabled: !agreed }" :disabled="!agreed" @click="submitOrder">
|
|
|
|
|
- 提交订单
|
|
|
|
|
|
|
+
|
|
|
|
|
+ <view class="add-btn-container">
|
|
|
|
|
+ <!-- 下单按钮 -->
|
|
|
|
|
+ <view class="submit-btn" :class="{ disabled: !agreed }" :disabled="!agreed" @click="submitOrder">
|
|
|
|
|
+ 提交订单
|
|
|
|
|
+ </view>
|
|
|
</view>
|
|
</view>
|
|
|
|
|
|
|
|
<!-- 安全区域占位 -->
|
|
<!-- 安全区域占位 -->
|
|
@@ -256,9 +276,12 @@
|
|
|
|
|
|
|
|
// ==================== 时间选择 ====================
|
|
// ==================== 时间选择 ====================
|
|
|
const showTimePicker = ref(false)
|
|
const showTimePicker = ref(false)
|
|
|
- const selectedTimeData = ref(null)
|
|
|
|
|
|
|
+ const selectedTimeData = ref({
|
|
|
|
|
+ startTime:undefined,
|
|
|
|
|
+ endTime:undefined
|
|
|
|
|
+ })
|
|
|
const selectedTimeLabel = computed(() => {
|
|
const selectedTimeLabel = computed(() => {
|
|
|
- if (!selectedTimeData.value) return '请选择时间'
|
|
|
|
|
|
|
+ if (!selectedTimeData.value.startTime) return '一小时内'
|
|
|
const {
|
|
const {
|
|
|
dateLabel,
|
|
dateLabel,
|
|
|
timeLabel,
|
|
timeLabel,
|
|
@@ -346,6 +369,9 @@
|
|
|
}
|
|
}
|
|
|
])
|
|
])
|
|
|
|
|
|
|
|
|
|
+ // ==================== 折叠控制 ====================
|
|
|
|
|
+ const showValueAdded = ref(false) // 默认折叠
|
|
|
|
|
+
|
|
|
// ==================== 协议 ====================
|
|
// ==================== 协议 ====================
|
|
|
const agreed = ref(true)
|
|
const agreed = ref(true)
|
|
|
|
|
|
|
@@ -514,71 +540,32 @@
|
|
|
});
|
|
});
|
|
|
return false
|
|
return false
|
|
|
}
|
|
}
|
|
|
- // // 寄件人信息完整性
|
|
|
|
|
- // if (!addressSend.value.contactName || !addressSend.value.contactPhone) {
|
|
|
|
|
- // uni.showToast({
|
|
|
|
|
- // title: '寄件人信息不完整',
|
|
|
|
|
- // icon: 'none'
|
|
|
|
|
- // });
|
|
|
|
|
- // return false
|
|
|
|
|
- // }
|
|
|
|
|
- // if (!/^1[3-9]\d{9}$/.test(addressSend.value.contactPhone)) {
|
|
|
|
|
- // uni.showToast({
|
|
|
|
|
- // title: '寄件人手机号格式错误',
|
|
|
|
|
- // icon: 'none'
|
|
|
|
|
- // });
|
|
|
|
|
- // return false
|
|
|
|
|
- // }
|
|
|
|
|
- // if (addressSend.value.contactName.length < 1 || addressSend.value.contactName.length > 20) {
|
|
|
|
|
- // uni.showToast({
|
|
|
|
|
- // title: '寄件人姓名长度1-20字符',
|
|
|
|
|
- // icon: 'none'
|
|
|
|
|
- // });
|
|
|
|
|
- // return false
|
|
|
|
|
- // }
|
|
|
|
|
- // if (!addressSend.value.detailedAddress) {
|
|
|
|
|
- // uni.showToast({
|
|
|
|
|
- // title: '请填写寄件人人详细地址',
|
|
|
|
|
- // icon: 'none'
|
|
|
|
|
- // });
|
|
|
|
|
- // return false
|
|
|
|
|
- // }
|
|
|
|
|
-
|
|
|
|
|
- // if (!addressReceive.value.contactName || !addressReceive.value.contactPhone) {
|
|
|
|
|
- // uni.showToast({
|
|
|
|
|
- // title: '收件人信息不完整',
|
|
|
|
|
- // icon: 'none'
|
|
|
|
|
- // });
|
|
|
|
|
- // return false
|
|
|
|
|
- // }
|
|
|
|
|
- // if (!/^1[3-9]\d{9}$/.test(addressReceive.value.contactPhone)) {
|
|
|
|
|
- // uni.showToast({
|
|
|
|
|
- // title: '收件人手机号格式错误',
|
|
|
|
|
- // icon: 'none'
|
|
|
|
|
- // });
|
|
|
|
|
- // return false
|
|
|
|
|
- // }
|
|
|
|
|
- // if (addressReceive.value.contactName.length < 1 || addressReceive.value.contactName.length > 20) {
|
|
|
|
|
- // uni.showToast({
|
|
|
|
|
- // title: '收件人姓名长度1-20字符',
|
|
|
|
|
- // icon: 'none'
|
|
|
|
|
- // });
|
|
|
|
|
- // return false
|
|
|
|
|
- // }
|
|
|
|
|
- // if (!addressReceive.value.detailedAddress) {
|
|
|
|
|
- // uni.showToast({
|
|
|
|
|
- // title: '请填写收件人详细地址',
|
|
|
|
|
- // icon: 'none'
|
|
|
|
|
- // });
|
|
|
|
|
- // return false
|
|
|
|
|
- // }
|
|
|
|
|
|
|
|
|
|
// 时间
|
|
// 时间
|
|
|
- if (!selectedTimeData.value) {
|
|
|
|
|
|
|
+ if (!selectedTimeData.value.startTime) {
|
|
|
|
|
+ // 这没有数据的时候 默认一个小时内 获取当前时间
|
|
|
|
|
+ selectedTimeData.value.startTime = twentyMinutesLater()
|
|
|
|
|
+ selectedTimeData.value.endTime = oneHourLater()
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if (isBeforeNineAM(selectedTimeData.value.startTime) || isAfterEightPM(selectedTimeData.value.startTime)) {
|
|
|
|
|
+ // 不在工作时间内
|
|
|
|
|
+ uni.showToast({
|
|
|
|
|
+ title: '请选择合适的寄件时间',
|
|
|
|
|
+ icon: 'none'
|
|
|
|
|
+ });
|
|
|
|
|
+ selectedTimeData.value.startTime = undefined
|
|
|
|
|
+ selectedTimeData.value.endTime = undefined
|
|
|
|
|
+ return false
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if (isAfterEightPM(selectedTimeData.value.endTime)) {
|
|
|
uni.showToast({
|
|
uni.showToast({
|
|
|
- title: '请选择期望上门时间',
|
|
|
|
|
|
|
+ title: '请选择合适的寄件时间',
|
|
|
icon: 'none'
|
|
icon: 'none'
|
|
|
});
|
|
});
|
|
|
|
|
+ selectedTimeData.value.startTime = undefined
|
|
|
|
|
+ selectedTimeData.value.endTime = undefined
|
|
|
return false
|
|
return false
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -670,6 +657,25 @@
|
|
|
return true
|
|
return true
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+
|
|
|
|
|
+ const oneHourLater = () => {
|
|
|
|
|
+ const now = new Date()
|
|
|
|
|
+ return now.getHours() + now.getMinutes() / 60 + 1
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ const twentyMinutesLater = () => {
|
|
|
|
|
+ const now = new Date()
|
|
|
|
|
+ now.setMinutes(now.getMinutes() + 1)
|
|
|
|
|
+ return now
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ function isBeforeNineAM(date) {
|
|
|
|
|
+ return date.getHours() < 9;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ function isAfterEightPM(date) {
|
|
|
|
|
+ return date.getHours() > 20 || (date.getHours() === 20 && date.getMinutes() > 0);
|
|
|
|
|
+ }
|
|
|
const isSubmit = ref(false)
|
|
const isSubmit = ref(false)
|
|
|
// ==================== 提交订单 ====================
|
|
// ==================== 提交订单 ====================
|
|
|
const submitOrder = async () => {
|
|
const submitOrder = async () => {
|
|
@@ -684,8 +690,7 @@
|
|
|
.value) : null,
|
|
.value) : null,
|
|
|
isReceiptCollect: product.value === '2' ?
|
|
isReceiptCollect: product.value === '2' ?
|
|
|
(valueServices.value.isReceiptCollect ? receiptReturnTypes.value[receiptReturnTypeIndex.value]
|
|
(valueServices.value.isReceiptCollect ? receiptReturnTypes.value[receiptReturnTypeIndex.value]
|
|
|
- ?.value : null) :
|
|
|
|
|
- (valueServices.value.isReceiptCollect ? true : null),
|
|
|
|
|
|
|
+ ?.value : null) : (valueServices.value.isReceiptCollect ? true : null),
|
|
|
isOverLongWeight: valueServices.value.isOverLongWeight || null,
|
|
isOverLongWeight: valueServices.value.isOverLongWeight || null,
|
|
|
isWoodenCrate: valueServices.value.isWoodenCrate || null
|
|
isWoodenCrate: valueServices.value.isWoodenCrate || null
|
|
|
}
|
|
}
|
|
@@ -723,7 +728,7 @@
|
|
|
|
|
|
|
|
uni.showLoading({
|
|
uni.showLoading({
|
|
|
title: '提交中...',
|
|
title: '提交中...',
|
|
|
- mask:true
|
|
|
|
|
|
|
+ mask: true
|
|
|
})
|
|
})
|
|
|
try {
|
|
try {
|
|
|
const res = await createOrder(orderData)
|
|
const res = await createOrder(orderData)
|
|
@@ -734,7 +739,7 @@
|
|
|
icon: 'success',
|
|
icon: 'success',
|
|
|
mask: true
|
|
mask: true
|
|
|
})
|
|
})
|
|
|
- uni.redirectTo({
|
|
|
|
|
|
|
+ uni.switchTab({
|
|
|
url: '/pages/order/index'
|
|
url: '/pages/order/index'
|
|
|
})
|
|
})
|
|
|
} else {
|
|
} else {
|
|
@@ -751,7 +756,7 @@
|
|
|
icon: 'none'
|
|
icon: 'none'
|
|
|
})
|
|
})
|
|
|
console.error('订单提交失败', error)
|
|
console.error('订单提交失败', error)
|
|
|
- } finally{
|
|
|
|
|
|
|
+ } finally {
|
|
|
// uni.hideLoading()
|
|
// uni.hideLoading()
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -790,7 +795,7 @@
|
|
|
saveAddressToStorage('receiverAddress', data.address)
|
|
saveAddressToStorage('receiverAddress', data.address)
|
|
|
}
|
|
}
|
|
|
})
|
|
})
|
|
|
- if(!addressSend.addressId){
|
|
|
|
|
|
|
+ if (!addressSend.addressId) {
|
|
|
fetchDefaultSenderAddress()
|
|
fetchDefaultSenderAddress()
|
|
|
}
|
|
}
|
|
|
})
|
|
})
|
|
@@ -806,12 +811,12 @@
|
|
|
.order-container {
|
|
.order-container {
|
|
|
min-height: 100vh;
|
|
min-height: 100vh;
|
|
|
background-color: #F5F7FA;
|
|
background-color: #F5F7FA;
|
|
|
- padding: 20rpx;
|
|
|
|
|
padding-bottom: 180rpx;
|
|
padding-bottom: 180rpx;
|
|
|
box-sizing: border-box;
|
|
box-sizing: border-box;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
.info-card {
|
|
.info-card {
|
|
|
|
|
+ margin: 0rpx 20rpx;
|
|
|
background: #fff;
|
|
background: #fff;
|
|
|
border-radius: 32rpx;
|
|
border-radius: 32rpx;
|
|
|
padding: 20rpx;
|
|
padding: 20rpx;
|
|
@@ -882,6 +887,7 @@
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
.pickup-title {
|
|
.pickup-title {
|
|
|
|
|
+ margin: 0rpx 20rpx;
|
|
|
font-size: 32rpx;
|
|
font-size: 32rpx;
|
|
|
font-weight: 600;
|
|
font-weight: 600;
|
|
|
color: #333;
|
|
color: #333;
|
|
@@ -889,6 +895,7 @@
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
.goods-card {
|
|
.goods-card {
|
|
|
|
|
+ margin: 0rpx 20rpx;
|
|
|
background-color: #fff;
|
|
background-color: #fff;
|
|
|
border-radius: 32rpx;
|
|
border-radius: 32rpx;
|
|
|
padding: 0rpx 20rpx;
|
|
padding: 0rpx 20rpx;
|
|
@@ -1023,6 +1030,7 @@
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
.agreement-card {
|
|
.agreement-card {
|
|
|
|
|
+ margin: 0rpx 20rpx;
|
|
|
background-color: #fff;
|
|
background-color: #fff;
|
|
|
border-radius: 32rpx;
|
|
border-radius: 32rpx;
|
|
|
padding: 30rpx 20rpx;
|
|
padding: 30rpx 20rpx;
|
|
@@ -1047,30 +1055,33 @@
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- .submit-btn {
|
|
|
|
|
|
|
+ .add-btn-container {
|
|
|
|
|
+ width: 100%;
|
|
|
position: fixed;
|
|
position: fixed;
|
|
|
- bottom: 40rpx;
|
|
|
|
|
- left: 30rpx;
|
|
|
|
|
- right: 30rpx;
|
|
|
|
|
- width: 686rpx;
|
|
|
|
|
- height: 88rpx;
|
|
|
|
|
- background: #1B64F0;
|
|
|
|
|
- border-radius: 44rpx;
|
|
|
|
|
- display: flex;
|
|
|
|
|
- justify-content: center;
|
|
|
|
|
- align-items: center;
|
|
|
|
|
- font-size: 32rpx;
|
|
|
|
|
- color: #FFFFFF;
|
|
|
|
|
- line-height: 88rpx;
|
|
|
|
|
- text-align: center;
|
|
|
|
|
- z-index: 10;
|
|
|
|
|
|
|
+ bottom: 0rpx;
|
|
|
|
|
+ padding: 32rpx;
|
|
|
|
|
+ background-color: #fff;
|
|
|
|
|
+ border-top: 1rpx solid #eee;
|
|
|
|
|
+ box-sizing: border-box;
|
|
|
|
|
|
|
|
- &.disabled {
|
|
|
|
|
- background: #f5f5f5;
|
|
|
|
|
- color: #999;
|
|
|
|
|
|
|
+ /* 确定按钮 */
|
|
|
|
|
+ .submit-btn {
|
|
|
|
|
+ height: 88rpx;
|
|
|
|
|
+ background: #1B64F0;
|
|
|
|
|
+ border-radius: 44rpx;
|
|
|
|
|
+ color: #fff;
|
|
|
|
|
+ font-size: 32rpx;
|
|
|
|
|
+ font-weight: 500;
|
|
|
|
|
+ height: 88rpx;
|
|
|
|
|
+ line-height: 88rpx;
|
|
|
|
|
+ text-align: center
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
.safe-area {
|
|
.safe-area {
|
|
|
height: 140rpx;
|
|
height: 140rpx;
|
|
|
}
|
|
}
|