修改样式

This commit is contained in:
有果 2026-03-27 10:33:48 +08:00
parent 584ecdd283
commit 0c4b6fc571
9 changed files with 394 additions and 125 deletions

File diff suppressed because one or more lines are too long

View File

@ -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"]);

View File

@ -87,6 +87,12 @@
}
}
}
},
{
"path": "pages/moveOut/index",
"style": {
"navigationBarTitleText": "城市迷你仓"
}
},
{
"path": "pages/goodsList/index",

View File

@ -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
View 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>

View File

@ -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

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

View File

@ -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

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB