修改样式
This commit is contained in:
parent
584ecdd283
commit
0c4b6fc571
File diff suppressed because one or more lines are too long
@ -6,7 +6,7 @@
|
||||
:width="props.width"
|
||||
:height="props.height"
|
||||
imageMode="aspectFit"
|
||||
:maxCount="1"
|
||||
:maxCount="props.maxCount"
|
||||
:sizeType="['compressed']"
|
||||
:previewFullImage="false"
|
||||
:uploadText="props.uploadText"
|
||||
@ -54,6 +54,10 @@ const props = defineProps({
|
||||
height: {
|
||||
type: String,
|
||||
default: "220rpx"
|
||||
},
|
||||
maxCount: {
|
||||
type: Number,
|
||||
default: 1
|
||||
}
|
||||
});
|
||||
const emit = defineEmits(["update:modelValue"]);
|
||||
|
||||
@ -87,6 +87,12 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/moveOut/index",
|
||||
"style": {
|
||||
"navigationBarTitleText": "城市迷你仓"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/goodsList/index",
|
||||
|
||||
@ -106,7 +106,19 @@
|
||||
</li>
|
||||
</ul>
|
||||
</view>
|
||||
<view class="toOrder card font28" v-if="unitTypeData.length">
|
||||
<view class="toOrderBox">
|
||||
<view class="agreed" v-if="unitTypeData.length" @click="changeCheck">
|
||||
<view class="check-wrap" :class="{ checked: state.checked }">
|
||||
<uv-radio-group v-model="state.checked" activeColor="#fb322e" size="40rpx" inactiveColor="#D8D8D8">
|
||||
<uv-radio activeColor="#fb322e" :key="0" :name="true">
|
||||
</uv-radio></uv-radio-group>
|
||||
</view>
|
||||
<view style="display: flex;align-items: center;">
|
||||
<text class="stress" @click="openAgreement">阅读并同意<text style="color: #2E5DB5;">《订仓协议》</text></text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="agreed agreed2"><text class="stress">租赁相关问题可联系客服咨询(电话:4008181813)</text></view>
|
||||
<view class="toOrder card font28" v-if="unitTypeData.length">
|
||||
<view class="left " >
|
||||
<text class="price fontb" :class="{ overMaxFont: String(state.priceData?.expense).length>6 }"> {{ state.priceData.expense ? `¥ ${state.priceData.expense}` : '¥--'
|
||||
}}</text>
|
||||
@ -126,19 +138,12 @@
|
||||
class="goOrder">下单</uv-button>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="empt font32 fontb" v-if="unitTypeData.length === 0" style="text-align: center;margin-top: 20rpx;">
|
||||
暂无可用仓型,请选择其他门店~
|
||||
</view>
|
||||
<view class="agreed" v-if="unitTypeData.length" @click="changeCheck">
|
||||
<view class="check-wrap" :class="{ checked: state.checked }">
|
||||
<uv-radio-group v-model="state.checked" activeColor="#fb322e" size="40rpx" inactiveColor="#D8D8D8">
|
||||
<uv-radio activeColor="#fb322e" :key="0" :name="true">
|
||||
</uv-radio></uv-radio-group>
|
||||
</view>
|
||||
<view style="display: flex;align-items: center;">
|
||||
<text class="stress" @click="openAgreement">阅读并同意《电子租赁条款》</text>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
</template>
|
||||
<template v-else>
|
||||
<!-- <view style="margin-top: 40vh;" @click="goSite">
|
||||
@ -325,6 +330,17 @@
|
||||
<view class="title2 textGary2 fontb font28">
|
||||
<text>租期优惠({{state.month}}个月长租)</text><text style="color: #FB322E;">-¥ {{ state.priceData.leaseDiscount }}</text>
|
||||
</view>
|
||||
<view class="agreed" @click="changeCheck">
|
||||
<view class="check-wrap" :class="{ checked: state.checked }">
|
||||
<uv-radio-group v-model="state.checked" activeColor="#fb322e" size="40rpx" inactiveColor="#D8D8D8">
|
||||
<uv-radio activeColor="#fb322e" :key="0" :name="true">
|
||||
</uv-radio></uv-radio-group>
|
||||
</view>
|
||||
<view style="display: flex;align-items: center;">
|
||||
<text class="stress" @click="openAgreement">阅读并同意<text style="color: #2E5DB5;">《订仓协议》</text></text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="agreed agreed2"><text class="stress">租赁相关问题可联系客服咨询(电话:4008181813)</text></view>
|
||||
<view class="toOrder card font28">
|
||||
<view class="left font28">
|
||||
<text class="price fontb" :class="{ overMaxFont: String(state.priceData?.expense).length>6 }"> {{ state.priceData.expense ? `¥ ${state.priceData.expense}` : '--'
|
||||
@ -344,16 +360,7 @@
|
||||
class="goOrder">下单</uv-button>
|
||||
</view>
|
||||
</view>
|
||||
<view class="agreed" @click="changeCheck">
|
||||
<view class="check-wrap" :class="{ checked: state.checked }">
|
||||
<uv-radio-group v-model="state.checked" activeColor="#fb322e" size="40rpx" inactiveColor="#D8D8D8">
|
||||
<uv-radio activeColor="#fb322e" :key="0" :name="true">
|
||||
</uv-radio></uv-radio-group>
|
||||
</view>
|
||||
<view style="display: flex;align-items: center;">
|
||||
<text class="stress" @click="openAgreement">阅读并同意《电子租赁条款》</text>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
</uv-popup>
|
||||
<uv-popup ref="agreementRef" mode="bottom" :closeOnClickOverlay="false" width="750rpx" zIndex="999" round="24px">
|
||||
@ -471,6 +478,7 @@ const state = ref({
|
||||
},
|
||||
});
|
||||
|
||||
|
||||
const goOrder = async () => {
|
||||
if (!state.value.lockerId) {
|
||||
return uni.showToast({
|
||||
@ -668,7 +676,7 @@ const showMonthPopup = () => {
|
||||
monthPopupRef.value.open();
|
||||
} else {
|
||||
uni.showToast({
|
||||
title: "请选择体积仓位",
|
||||
title: "请选择体积",
|
||||
icon: "none",
|
||||
duration: 2000,
|
||||
})
|
||||
@ -710,7 +718,7 @@ const handleAgree = () => {
|
||||
const openAgreement = () => {
|
||||
if (!state.value.lockerId) {
|
||||
uni.showToast({
|
||||
title: "请选择体积仓位",
|
||||
title: "请选择体积",
|
||||
icon: "none",
|
||||
duration: 2000,
|
||||
})
|
||||
@ -729,7 +737,7 @@ const closeAgreement = () => {
|
||||
const confirmUnit = () => {
|
||||
if (!state.value.radiovalue) {
|
||||
return uni.showToast({
|
||||
title: "请选择体积仓位",
|
||||
title: "请选择体积",
|
||||
icon: "none",
|
||||
duration: 2000,
|
||||
})
|
||||
@ -1072,6 +1080,13 @@ function changeMove(event) {
|
||||
|
||||
<style scoped lang="scss">
|
||||
@import "@/static/style/theme.scss";
|
||||
.toOrderBox{
|
||||
width: 100%;
|
||||
background-color: #FFFFFF;
|
||||
position: fixed;
|
||||
bottom: 159upx;
|
||||
padding: 20rpx;
|
||||
}
|
||||
|
||||
.payPopupBox {
|
||||
.garyBox {
|
||||
@ -1249,7 +1264,7 @@ function changeMove(event) {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
padding-bottom: 300rpx;
|
||||
padding-bottom: 500rpx;
|
||||
}
|
||||
|
||||
.agreement-wrap {
|
||||
@ -1311,7 +1326,9 @@ function changeMove(event) {
|
||||
display: flex;
|
||||
font-weight: bold;
|
||||
width: 100%;
|
||||
|
||||
padding-bottom: 0rpx;
|
||||
padding-left: 40rpx;
|
||||
|
||||
.check-wrap {
|
||||
pointer-events: none;
|
||||
margin-right: 8rpx;
|
||||
@ -1346,6 +1363,12 @@ function changeMove(event) {
|
||||
font-weight: 600;
|
||||
}
|
||||
}
|
||||
.agreed2{
|
||||
padding-bottom: 20rpx;
|
||||
.stress {
|
||||
padding-left: 48rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.agreed {
|
||||
.check-wrap {
|
||||
@ -1391,6 +1414,8 @@ function changeMove(event) {
|
||||
align-items: center;
|
||||
background-color: #0D1118;
|
||||
color: #FFFFFF;
|
||||
padding-bottom: 0;
|
||||
margin-bottom: 0;
|
||||
.left {
|
||||
color: #E9CBA1;
|
||||
display: flex;
|
||||
|
||||
308
pages/moveOut/index.vue
Normal file
308
pages/moveOut/index.vue
Normal file
@ -0,0 +1,308 @@
|
||||
<template>
|
||||
<view class="container" :class="[`${themeInfo.theme}-theme`]">
|
||||
<view class="content">
|
||||
<view class="card">
|
||||
<view class="title font26 fontb mgb20"> {{ $t('unlock.uploadTip') }}</view>
|
||||
<view class="upload">
|
||||
<my-upload v-model="moveImageList" :maxCount="2" :addWatermark="false" width="200rpx" height="200rpx"
|
||||
:previewFullImage="false" uploadText=" ">
|
||||
<!-- <image src="/static/personal/id01.png" mode="aspectFit"
|
||||
style="width: 280rpx;height:200rpx;margin-bottom:20rpx"></image>
|
||||
<view class="upLoadText">
|
||||
{{ $t("common.IdCardBack") }}
|
||||
</view> -->
|
||||
</my-upload>
|
||||
</view>
|
||||
<view>
|
||||
<text class=" font26 fontb" style="font-size: 26rpx;margin-top: 10rpx;">
|
||||
退仓说明:
|
||||
</text>
|
||||
</view>
|
||||
<view>
|
||||
<text class=" font26 fontb" style="font-size: 26rpx;margin-top: 10rpx;">
|
||||
退仓后,您将失去开门权限!请确认已经清空仓内物品,14个工作日内,系统将会自动返还押金。
|
||||
</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="modal-buttonOut">
|
||||
<uv-button :customStyle="{
|
||||
height: '86rpx',
|
||||
lineHeight: '86rpx',
|
||||
color: '#fff',
|
||||
fontSize: '32rpx',
|
||||
}" color="#FB322E" shape="circle" @click="handleRefundLocker">
|
||||
{{ $t("unlock.confirmOut") }}
|
||||
</uv-button>
|
||||
</view>
|
||||
</view>
|
||||
<view class="footer">
|
||||
<view @click="toHome">
|
||||
返回主页
|
||||
</view>
|
||||
<view @click="goOrder">
|
||||
返回订单
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<!-- 成功退仓弹窗 -->
|
||||
<uv-popup ref="moveOutPopup2" customStyle="width: 620rpx; border-radius: 24rpx;" :safeAreaInsetBottom="false"
|
||||
:closeOnClickOverlay="false" zIndex="9999">
|
||||
<view class="modal-container">
|
||||
<view class="modal-title">{{ $t("unlock.moveoutReminder") }}</view>
|
||||
<text class="modal-text">
|
||||
{{ $t("unlock.moveoutSuccess") }}
|
||||
</text>
|
||||
<view class="modal-button">
|
||||
<!-- <view class="modal-button-2" @click="goEvaluate">{{ $t("unlock.evaluate") }}</view> -->
|
||||
<uv-button @click="closeModal2" :customStyle="{
|
||||
height: '86rpx',
|
||||
lineHeight: '86rpx',
|
||||
color: '#000',
|
||||
fontSize: '32rpx',
|
||||
}" shape="circle">
|
||||
关闭
|
||||
</uv-button>
|
||||
</view>
|
||||
</view>
|
||||
</uv-popup>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { ref, computed } from 'vue';
|
||||
import { onTabItemTap, onShowRerequestByIsLogin, makePhoneCall ,navigateBack} from '/utils/common.js'
|
||||
import { navigateTo } from '@/utils/navigateTo';
|
||||
import { onLoad, onShow, onShareAppMessage, onHide } from '@dcloudio/uni-app'
|
||||
import myUpload from "@/components/myUpload.vue";
|
||||
// 主题色配置
|
||||
import { useMainStore } from "@/store/index.js";
|
||||
import { navbarHeightAndStatusBarHeight, shareParam } from "@/utils/common.js";
|
||||
import { storeToRefs } from 'pinia';
|
||||
import { useOrderApi } from "@/Apis/order.js";
|
||||
import { baseImageUrl } from "@/config/index.js";
|
||||
import { useSiteApi } from "@/Apis/site.js";
|
||||
import { useI18n } from 'vue-i18n';
|
||||
|
||||
|
||||
const moveOutPopup2 = ref(null);
|
||||
const { themeInfo, getUserInfo, getHasVerify } = useMainStore();
|
||||
const { storeState } = storeToRefs(useMainStore());
|
||||
const { locale, t } = useI18n();
|
||||
const getApi = useOrderApi()
|
||||
|
||||
const getSiteApi = useSiteApi();
|
||||
|
||||
uni.hideTabBar();
|
||||
const state = ref({
|
||||
orderId: "",
|
||||
});
|
||||
|
||||
|
||||
// const getLockerById = () => {
|
||||
// uni.showLoading();
|
||||
// getSiteApi.GetLockerById({ lockerId: state.value.selectItem.lockerId }).then((res) => {
|
||||
// if (res.code === 200) {
|
||||
// state.value.lockData = res.data;
|
||||
// state.value.lockData.orderId = state.value.selectItem.orderId;
|
||||
// GetOrderById();
|
||||
// getLockerExpense();
|
||||
// }
|
||||
// });
|
||||
// };
|
||||
|
||||
// 发起退仓请求后点击我的订单跳到unlock
|
||||
function closeModal2() {
|
||||
moveOutPopup2.value.close()
|
||||
navigateBack()
|
||||
}
|
||||
|
||||
const moveImageList = ref([]);
|
||||
// 确认退仓
|
||||
const handleRefundLocker = async () => {
|
||||
try {
|
||||
const hasLoadingImage = moveImageList.value.find(item => item.status === 'uploading');
|
||||
if (hasLoadingImage) {
|
||||
uni.showToast({
|
||||
title: '图片上传中,请稍后',
|
||||
icon: 'none'
|
||||
});
|
||||
return;
|
||||
}
|
||||
const imageList = moveImageList.value.filter(item => item.status === 'success');
|
||||
if (!imageList.length) {
|
||||
uni.showToast({
|
||||
title: '请上传图片',
|
||||
icon: 'none'
|
||||
});
|
||||
return;
|
||||
}
|
||||
if (state.value.refundLoading) return;
|
||||
uni.showLoading({ mask: true });
|
||||
state.value.refundLoading = true;
|
||||
let imageUrls = imageList.map(item => item.url);
|
||||
imageUrls = imageUrls.join(',');
|
||||
const { code } = await getApi.ApplyForRefundLocker({ orderId: state.value.orderId, imageUrl: imageUrls });
|
||||
if (code == 200) {
|
||||
moveOutPopup2.value.open();
|
||||
}
|
||||
uni.hideLoading();
|
||||
state.value.refundLoading = false;
|
||||
} catch (error) {
|
||||
uni.hideLoading();
|
||||
state.value.refundLoading = false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
const GetOrderById = () => {
|
||||
uni.showLoading()
|
||||
state.value.orderData = {}
|
||||
getApi.GetOrderById({ orderId: state.value.orderId }).then(res => {
|
||||
uni.hideLoading()
|
||||
if (res.code === 200) {
|
||||
state.value.orderData = res.data
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
onShareAppMessage((res) => {
|
||||
if (res.from === "button") {
|
||||
// 来自页面内分享按钮
|
||||
console.log(res.target);
|
||||
}
|
||||
return shareParam;
|
||||
});
|
||||
onLoad((params) => {
|
||||
// GetOrderList()
|
||||
state.value.orderId = params.orderId;
|
||||
|
||||
})
|
||||
onHide(() => {
|
||||
|
||||
})
|
||||
|
||||
|
||||
const token = ref(uni.getStorageSync('token'))
|
||||
onShow(() => {
|
||||
uni.hideTabBar()
|
||||
token.value = uni.getStorageSync('token')
|
||||
|
||||
|
||||
onShowRerequestByIsLogin(() => {
|
||||
|
||||
}, (err) => {
|
||||
|
||||
})
|
||||
})
|
||||
const toHome = (item) => {
|
||||
uni.switchTab({
|
||||
url: `/pages/index/index`,
|
||||
});
|
||||
}
|
||||
|
||||
const goOrder = () => {
|
||||
navigateTo('/pages/unlock/index');
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
@import '@/static/style/theme.scss';
|
||||
|
||||
// 解决H5转微信小程序使用v-show不生效的问题
|
||||
[hidden] {
|
||||
display: none !important;
|
||||
}
|
||||
.modal-container {
|
||||
// height: 700rpx;
|
||||
// background: #000;
|
||||
display: flex;
|
||||
justify-content: flex-start;
|
||||
align-items: center;
|
||||
flex-direction: column;
|
||||
padding: 32rpx;
|
||||
|
||||
.modal-title {
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
font-weight: bold;
|
||||
font-size: 36rpx;
|
||||
color: #000000;
|
||||
}
|
||||
|
||||
:deep(.uv-upload__wrap) {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.modal-text {
|
||||
width: 100%;
|
||||
margin: 20rpx 0;
|
||||
font-size: 26rpx;
|
||||
font-weight: 600;
|
||||
text-align: center;
|
||||
line-height: 32rpx;
|
||||
}
|
||||
.modal-button{
|
||||
width: 100%;
|
||||
}
|
||||
.upload {
|
||||
margin-top: 30rpx;
|
||||
height: 250rpx;
|
||||
width: 100%;
|
||||
// background: #000;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
// overflow-x: scroll;
|
||||
overflow-y: scroll;
|
||||
// white-space: nowrap;
|
||||
flex-wrap: nowrap;
|
||||
// overflow: hidden;
|
||||
}
|
||||
}
|
||||
|
||||
.modal-container2 {
|
||||
height: 400rpx;
|
||||
|
||||
@extend .modal-container
|
||||
}
|
||||
.modal-buttonOut{
|
||||
position: fixed;
|
||||
width: 100%;
|
||||
padding: 20px;
|
||||
bottom: 100rpx;
|
||||
left: 0;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
:deep(.uv-button){
|
||||
width: 630rpx;
|
||||
}
|
||||
}
|
||||
.upload{
|
||||
padding-top: 20rpx;
|
||||
padding-bottom: 40rpx;
|
||||
border-bottom: 1.5px solid #787B7E10;
|
||||
margin-bottom: 20rpx;
|
||||
}
|
||||
.footer{
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100rpx;
|
||||
display: flex;
|
||||
justify-content: space-around;
|
||||
align-items: center;
|
||||
background-color: #fff;
|
||||
view{
|
||||
width: 50%;
|
||||
height: 80rpx;
|
||||
line-height: 80rpx;
|
||||
text-align: center;
|
||||
color: #000;
|
||||
font-size: 30rpx;
|
||||
font-weight: bold;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@ -860,7 +860,12 @@ const cancelOrder = () => {
|
||||
}
|
||||
|
||||
function openMoveOutModal() {
|
||||
moveOutPopup.value.open()
|
||||
uni.navigateTo({
|
||||
url: '/pages/moveOut/index?orderId=' + state.value.selectItem.orderId
|
||||
})
|
||||
closeDetailPopup();
|
||||
|
||||
// moveOutPopup.value.open()
|
||||
}
|
||||
function closeMoveOutModal() {
|
||||
moveOutPopup.value.close()
|
||||
|
||||
BIN
static/tabbar/user.png
Normal file
BIN
static/tabbar/user.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 3.1 KiB |
@ -1 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="none" version="1.1" width="16" height="21" viewBox="0 0 16 21"><path d="M16,21L14,21L14,19C14,17.3431,12.6569,16,11,16L5,16C3.3431501,16,2,17.3431,2,19L2,21L0,21L0,19C0,16.2386,2.2385802,14,5,14L11,14C13.7614,14,16,16.2386,16,19L16,21ZM8,12C4.6862898,12,2,9.3136997,2,6C2,2.68629,4.6862898,0,8,0C11.3137,0,14,2.68629,14,6C14,9.3136997,11.3137,12,8,12ZM8,10C10.2091,10,12,8.2091398,12,6C12,3.7908602,10.2091,2,8,2C5.7908602,2,4,3.7908602,4,6C4,8.2091398,5.7908602,10,8,10Z" fill="#FFFFFF" fill-opacity="1" style="mix-blend-mode:passthrough"/></svg>
|
||||
|
Before Width: | Height: | Size: 636 B |
BIN
static/tabbar/user2.png
Normal file
BIN
static/tabbar/user2.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.7 KiB |
Loading…
x
Reference in New Issue
Block a user