Compare commits
No commits in common. "main" and "Branch_新手指引" have entirely different histories.
main
...
Branch_新手指
12
App.vue
12
App.vue
@ -69,8 +69,8 @@ export default {
|
||||
}
|
||||
}
|
||||
});
|
||||
uni.removeStorageSync('getCouponCodeTime'); //清掉弹窗有优惠劵的时间记录 避免重进的时候不会弹窗
|
||||
// // 开始监听网络状态变化
|
||||
|
||||
// 开始监听网络状态变化
|
||||
listenNetworkChange();
|
||||
uni.hideTabBar()
|
||||
const { setTheme, getUserInfo, storeState,logOut } = useMainStore();
|
||||
@ -86,12 +86,9 @@ export default {
|
||||
this.globalData.statusBarHeight = statusBarHeight || 20;
|
||||
// #endif
|
||||
// authCode url 存在 就直接登陆
|
||||
console.log(window.location.href,"window.location.href")
|
||||
const authCode = getQueryParam('authCode');
|
||||
const sfId = getQueryParam('sfId');
|
||||
const lockerId = getQueryParam('lockerId');
|
||||
if(lockerId) {
|
||||
uni.setStorageSync("lockerId", lockerId);
|
||||
}
|
||||
if(sfId) {
|
||||
uni.setStorageSync("sfId", sfId);
|
||||
}
|
||||
@ -183,9 +180,6 @@ page {
|
||||
:deep(.uv-radio__icon-wrap){
|
||||
border-width: 5rpx!important;
|
||||
}
|
||||
:deep(.uv-checkbox__icon-wrap){
|
||||
border-width: 5rpx!important;
|
||||
}
|
||||
|
||||
.uni-tabbar{
|
||||
display: none;
|
||||
|
||||
@ -1,9 +1,9 @@
|
||||
<template>
|
||||
<view class="coupon" :class="[`${themeInfo.theme}-theme`, `${themeInfo.language}`]">
|
||||
<myPopup v-model="modelValue" mode='bottom' bgColor='none' zIndex="999" closeable customStyle='height:70vh;border-radius: 24px 24px 0 0;' :closeOnClickOverlay='true'>
|
||||
<myPopup v-model="modelValue" mode='bottom' bgColor='none' customStyle='height:70vh;border-radius: 18px 18px 0 0;' :closeOnClickOverlay='true'>
|
||||
<view class="couponContent">
|
||||
<view class="header">
|
||||
<!-- <view class="line"></view> -->
|
||||
<view class="line"></view>
|
||||
<view class="title">
|
||||
{{ $t('coupon.coupon') }} {{dataList.length + unusableDataList.length}}
|
||||
</view>
|
||||
@ -66,32 +66,26 @@
|
||||
</view>
|
||||
</view>
|
||||
<view class="right">
|
||||
<!-- <view class="desc">
|
||||
<view class="desc">
|
||||
{{ $t('coupon.storewide') }}
|
||||
</view>
|
||||
<view class="desc">
|
||||
{{ $t('coupon.limitedtimeoffer') }}
|
||||
</view> -->
|
||||
</view>
|
||||
<view>
|
||||
<uv-button :customStyle="{
|
||||
color: '#fff',
|
||||
}" :textStyle="{
|
||||
fontSize: '32rpx',
|
||||
fontWeight: 'bold',
|
||||
}" shape="circle" color="#FB322E" class="btn" @click="getCouponCode">
|
||||
<button class="btn" @click="getCouponCode">
|
||||
{{ $t("coupon.redeemNow") }}
|
||||
</uv-button>
|
||||
</button>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="couponUl couponUl2">
|
||||
<uv-checkbox-group style="width: 100%;" v-model="state.checkboxCouponValue" shape="circle" activeColor="#fb322e" size="40rpx" iconSize="24rpx" inactiveColor="#D8D8D8" @change="couponChange">
|
||||
<uv-checkbox-group style="width: 100%;" v-model="state.checkboxCouponValue" @change="couponChange">
|
||||
<view class="couponLi" v-for="(item,index) in dataList" :key="index" @click="chooseCoupon(item)" :style="{opacity:disabledFunc(item)?0.5:1}">
|
||||
<view class="left">
|
||||
<view class="name">
|
||||
<!-- {{ item.couponCode }} -->
|
||||
{{ couponTitle(item) }}
|
||||
{{ item.couponCode }} {{ couponTitle(item) }}
|
||||
<!-- <text style="letter-spacing: 0;">{{ item.discountLimit }}</text> -->
|
||||
</view>
|
||||
<view class="desc">
|
||||
@ -102,12 +96,12 @@
|
||||
</view>
|
||||
</view>
|
||||
<view class="right">
|
||||
<!-- <view class="desc">
|
||||
<view class="desc">
|
||||
{{ item.siteName.length ?`${item.siteName.length>1?$t('coupon.multiStoreUse'):item.siteName[0]}`: $t('coupon.storewide') }}
|
||||
</view>
|
||||
<view class="desc">
|
||||
{{ $t('coupon.limitedtimeoffer') }}
|
||||
</view> -->
|
||||
</view>
|
||||
<view style="display: flex;justify-content: center;margin-top: 4px;">
|
||||
<uv-checkbox
|
||||
v-if="props.siteData?.lockerId"
|
||||
@ -131,8 +125,7 @@
|
||||
<view v-show="state.showUnusableCoupons" class="couponLi" v-for="(item,index) in unusableDataList" :key="index">
|
||||
<view class="left">
|
||||
<view class="name">
|
||||
<!-- {{ item.couponCode }} -->
|
||||
{{ couponTitle(item) }}
|
||||
{{ item.couponCode }} {{ couponTitle(item) }}
|
||||
<!-- <text style="letter-spacing: 0;">{{ item.discountLimit }}</text> -->
|
||||
</view>
|
||||
<view class="desc">
|
||||
@ -160,15 +153,9 @@
|
||||
</view>
|
||||
<view class="confirm" v-if="props.siteData?.lockerId">
|
||||
<!-- @click="submit" -->
|
||||
<uv-button class="next-btn" :customStyle="{
|
||||
height: '86rpx',
|
||||
color: '#fff',
|
||||
}" :textStyle="{
|
||||
fontSize: '32rpx',
|
||||
fontWeight: 'bold',
|
||||
}" shape="circle" color="#FB322E" @click="confirm">
|
||||
<button class="next-btn" @click="confirm">
|
||||
{{ $t("common.confirm") }}
|
||||
</uv-button>
|
||||
</button>
|
||||
</view>
|
||||
</view>
|
||||
</myPopup>
|
||||
@ -679,17 +666,23 @@ defineExpose({
|
||||
.confirm{
|
||||
height: 100rpx;
|
||||
width: 100%;
|
||||
background-color: #F1F2F7;
|
||||
background-color: #fff;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
.next-btn{
|
||||
position: absolute;
|
||||
bottom:30upx;
|
||||
width: 90%;
|
||||
padding: 4px 0;
|
||||
font-size: 28rpx;
|
||||
font-weight: bold;
|
||||
color: var(--text-color);
|
||||
background: var(--active-color);
|
||||
border-radius: 16rpx;
|
||||
}
|
||||
}
|
||||
height: 100%;
|
||||
background-color: #F1F2F7;
|
||||
background-color: #fff;
|
||||
border-radius: 18upx 18upx 0 0;
|
||||
padding-bottom: 40upx;
|
||||
display: flex;
|
||||
@ -711,7 +704,6 @@ defineExpose({
|
||||
font-size: 36rpx;
|
||||
align-self: self-start;
|
||||
margin-left: 40rpx;
|
||||
font-weight: 600;
|
||||
}
|
||||
}
|
||||
.content{
|
||||
@ -727,25 +719,24 @@ defineExpose({
|
||||
display: flex;
|
||||
padding: 40upx;
|
||||
width: 100%;
|
||||
margin-bottom: 20upx;
|
||||
margin: 20upx 0;
|
||||
border-radius: 18upx;
|
||||
color: #9D9FA2;
|
||||
background-color: #FFFFFF;
|
||||
// background: linear-gradient(90deg, var(--left-linear), var(--right-linear));
|
||||
color: #fff;
|
||||
background: linear-gradient(90deg, var(--left-linear), var(--right-linear));
|
||||
box-shadow: 0px -2px 5px 0px rgba(0, 0, 0, 0.13);
|
||||
font-size: 22upx;
|
||||
// &::after{
|
||||
// content: "";
|
||||
// position: absolute;
|
||||
// top: 2px;
|
||||
// right: -7px;
|
||||
// width: 14px; /* 调整宽度 */
|
||||
// height: 100%; /* 调整高度以适应圆形的垂直排列 */
|
||||
// background: radial-gradient(#ffffff 0px, #ffffff 5px, transparent 5px, transparent);
|
||||
// background-size: 14px 14px; /* 保持圆形的大小 */
|
||||
// background-repeat: repeat-y; /* 垂直重复 */
|
||||
// z-index: 9;
|
||||
// }
|
||||
&::after{
|
||||
content: "";
|
||||
position: absolute;
|
||||
top: 2px;
|
||||
right: -7px;
|
||||
width: 14px; /* 调整宽度 */
|
||||
height: 100%; /* 调整高度以适应圆形的垂直排列 */
|
||||
background: radial-gradient(#ffffff 0px, #ffffff 5px, transparent 5px, transparent);
|
||||
background-size: 14px 14px; /* 保持圆形的大小 */
|
||||
background-repeat: repeat-y; /* 垂直重复 */
|
||||
z-index: 9;
|
||||
}
|
||||
.left{
|
||||
width: 68%;
|
||||
display: flex;
|
||||
@ -755,18 +746,16 @@ defineExpose({
|
||||
font-size: 36upx;
|
||||
letter-spacing: 4upx;
|
||||
font-weight: bold;
|
||||
color: #000;
|
||||
}
|
||||
.desc{
|
||||
margin-top: 10upx;
|
||||
}
|
||||
.input{
|
||||
background-color: #FFFFFF;
|
||||
border: 1px solid #E5E5E5;
|
||||
color: #000;
|
||||
background-color: var(--bg-popup);
|
||||
text-align: center;
|
||||
width: 220upx;
|
||||
border-radius: 12upx;
|
||||
color: var(--text-color);
|
||||
margin-top: 20upx;
|
||||
}
|
||||
&::before{
|
||||
@ -775,7 +764,7 @@ defineExpose({
|
||||
height: 32upx;
|
||||
width: 32upx;
|
||||
border-radius: 99rpx;
|
||||
background-color: #F1F2F7;
|
||||
background-color: #fff;
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
top: -56upx;
|
||||
@ -787,12 +776,12 @@ defineExpose({
|
||||
height: 32upx;
|
||||
width: 32upx;
|
||||
border-radius: 99rpx;
|
||||
background-color: #F1F2F7;
|
||||
background-color: #fff;
|
||||
position: absolute;
|
||||
bottom: -56upx;
|
||||
right: -18upx;
|
||||
}
|
||||
// border-right: 1px solid #fff;
|
||||
border-right: 1px solid #fff;
|
||||
}
|
||||
.right{
|
||||
width: 32%;
|
||||
@ -819,14 +808,7 @@ defineExpose({
|
||||
letter-spacing: 4upx;
|
||||
}
|
||||
|
||||
&::before{
|
||||
content: ' ';
|
||||
display: block;
|
||||
height: calc(100% + 20rpx);
|
||||
border: 1px dashed #F1F2F7;
|
||||
position: absolute;
|
||||
left: 0;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -9,7 +9,6 @@
|
||||
:closeable="props.closeable"
|
||||
@change="handleChange"
|
||||
:safeAreaInsetBottom="false"
|
||||
zIndex="999"
|
||||
>
|
||||
<slot></slot>
|
||||
</uv-popup>
|
||||
@ -49,10 +48,8 @@
|
||||
emit('update:modelValue', e.show);
|
||||
}
|
||||
const maskClick = () => {
|
||||
if (props.closeOnClickOverlay) {
|
||||
modelValue.value = false;
|
||||
}
|
||||
}
|
||||
const emit = defineEmits(['close', 'confirm', 'update:modelValue']);
|
||||
const modelValue = computed({
|
||||
get() {
|
||||
|
||||
@ -44,10 +44,7 @@
|
||||
"path": "videoTutorial/index"
|
||||
},
|
||||
{
|
||||
"path": "reserve/index",
|
||||
"style": {
|
||||
"navigationBarTitleText": "城市迷你仓"
|
||||
}
|
||||
"path": "reserve/index"
|
||||
},
|
||||
{
|
||||
"path": "validationInfo/index",
|
||||
|
||||
File diff suppressed because one or more lines are too long
@ -40,14 +40,6 @@
|
||||
<text @click.stop="makePhoneCall">电话: 400-818-1813</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="box3" @click.stop>
|
||||
<uv-button color="#FB322E" shape="circle" @click="goReserve">
|
||||
<image src="/static/site/yuyuekancang.svg"></image> 预约看仓
|
||||
</uv-button>
|
||||
<uv-button color="#FB322E" shape="circle" @click="goVr">
|
||||
<image src="/static/site/shijingtu.svg"></image> 实景图
|
||||
</uv-button>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<uvPickerSlef ref="cityPicker" confirmColor="#FB322E" round="24px" title="选择城市" :columns="[state.cityData]" @confirm="cityConfirm"></uvPickerSlef>
|
||||
@ -96,14 +88,16 @@ let siteData = reactive({
|
||||
});
|
||||
|
||||
// 点击路线跳转
|
||||
const handleNavigate = (item) => {
|
||||
// const { latitude, longitude } = wgs84ToGcj02(item.latitude, item.longitude);
|
||||
wx.openLocation({
|
||||
latitude:Number(item.latitude),
|
||||
longitude:Number(item.longitude),
|
||||
name: item.name,
|
||||
address: item.address,
|
||||
const handleNavigate = async (item) => {
|
||||
const { latitude, longitude } = wgs84ToGcj02(item.latitude, item.longitude);
|
||||
const { success, errorMessage } = await SFUIP.openLocation({
|
||||
latitude:"113.330713",
|
||||
longitude:"23.113539",
|
||||
name: "广州",
|
||||
address: "广州天河",
|
||||
})
|
||||
console.log((window || global).UIP_WX);
|
||||
console.log(success,errorMessage, "openLocationerr");
|
||||
};
|
||||
|
||||
const toHome = (item) => {
|
||||
@ -198,19 +192,6 @@ const getCityData = () => {
|
||||
;
|
||||
}
|
||||
|
||||
const goVr = (e) => {
|
||||
e?.stopPropagation?.()
|
||||
uni.navigateTo({
|
||||
url: "/pages/webview/web?url=" + encodeURIComponent("https://elitesys.kingkongcang.com/tour/index.html"),
|
||||
});
|
||||
}
|
||||
const goReserve= (e) => {
|
||||
e?.stopPropagation?.()
|
||||
uni.navigateTo({
|
||||
url: "/pagesb/reserve/index",
|
||||
});
|
||||
}
|
||||
|
||||
onShow(() => {
|
||||
uni.showLoading({
|
||||
mask: true,
|
||||
@ -275,23 +256,6 @@ onShow(() => {
|
||||
.siteList{
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
.box3{
|
||||
display: flex;
|
||||
margin-top: 10rpx;
|
||||
gap: 20rpx;
|
||||
:deep(.uv-button){
|
||||
height: 42rpx;
|
||||
line-height: 42rpx;
|
||||
min-width: 180rpx;
|
||||
font-size: 24rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
image {
|
||||
width: 30rpx;
|
||||
margin-right: 8rpx;
|
||||
}
|
||||
}
|
||||
.box2{
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
@ -304,7 +268,6 @@ onShow(() => {
|
||||
margin-bottom: 10rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.box{
|
||||
display: flex;
|
||||
width: 100%;
|
||||
|
||||
@ -312,18 +312,6 @@
|
||||
<image src="/static/home/jiantou.svg" style="width: 24rpx;height: 24rpx;" class="icon"></image>
|
||||
</view>
|
||||
</view>
|
||||
<view class="garyBox font28 card20" @click="openCoupon">
|
||||
<view style="display: flex;align-items: center;">优惠劵</view>
|
||||
<view class="select"><text :style="{color:!state.couponItem.length?'#A8AAAC':'#000'}" style="margin-right: 10rpx;font-weight: bold;">
|
||||
<template v-for="(item, index) in state.couponItem" :key="index">{{ couponDesc(item) }}</template>
|
||||
<!-- {{$t("detail.noselect") }} -->
|
||||
<template v-if="!state.couponItem.length &&!state.couponOtherItem.length">{{
|
||||
$t("detail.noselect")
|
||||
}}</template></text>
|
||||
<image src="/static/home/jiantou.svg" style="width: 24rpx;height: 24rpx;" class="icon"></image>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
<view class="title2 font32 fontb">
|
||||
<text>租赁体积</text> <text>{{ `${state.lockData?.volume}m³` }}</text>
|
||||
</view>
|
||||
@ -354,12 +342,6 @@
|
||||
<view class="title2 font32 fontb">
|
||||
<text>优惠信息</text> <text style="color: #FB322E;">-¥ {{ state.priceData.favorable }}</text>
|
||||
</view>
|
||||
|
||||
<view class="title2 textGary2 fontb font28">
|
||||
<text>优惠劵优惠</text><text style="color: #FB322E;">-¥ {{
|
||||
state.priceData.codeFavorable
|
||||
}}</text>
|
||||
</view>
|
||||
<view class="title2 textGary2 fontb font28">
|
||||
<text>租期优惠({{ state.month }}个月长租)</text><text style="color: #FB322E;">-¥ {{
|
||||
state.priceData.leaseDiscount
|
||||
@ -567,20 +549,6 @@
|
||||
</view>
|
||||
</view>
|
||||
</uv-popup>
|
||||
<coupon
|
||||
ref="couponRef"
|
||||
v-model="state.couponShow"
|
||||
:priceData="state.priceData"
|
||||
:month="state.month"
|
||||
:couponItem="state.couponItem"
|
||||
:couponOtherItem="state.couponOtherItem"
|
||||
:isRenew="true"
|
||||
:siteData="state.lockData"
|
||||
:disabledFunc="disabledFunc"
|
||||
@chooseOtherCoupon="chooseOtherCoupon"
|
||||
@chooseCoupon="chooseCoupon"
|
||||
@confirm="confirmCoupon"
|
||||
></coupon>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
@ -594,7 +562,6 @@ import { useCountDown } from "@/hooks/index";
|
||||
import { onLoad, onShow, onShareAppMessage, onHide } from '@dcloudio/uni-app'
|
||||
import { useLockApi } from '@/Apis/lock.js';
|
||||
import myPopup from '@/components/myPopup.vue';
|
||||
import coupon from "@/components/coupon.vue";
|
||||
// 主题色配置
|
||||
import { useMainStore } from "@/store/index.js";
|
||||
import { navbarHeightAndStatusBarHeight, shareParam } from "@/utils/common.js";
|
||||
@ -624,7 +591,6 @@ const devicePopupRef = ref(null);
|
||||
const pawPopupRef = ref(null);
|
||||
const detailPopupRef = ref(null);
|
||||
const cancelOrderPopupRef = ref(null);
|
||||
const couponRef = ref(null);
|
||||
uni.hideTabBar();
|
||||
const state = ref({
|
||||
orderList: [],
|
||||
@ -641,9 +607,6 @@ const state = ref({
|
||||
refundLoading: false,
|
||||
current: 0,
|
||||
cancelOrderList: [],
|
||||
couponShow:false, // 优惠卷窗口
|
||||
couponItem:[], // 优惠卷
|
||||
couponOtherItem:[],
|
||||
});
|
||||
const list = [{
|
||||
name: '在租',
|
||||
@ -652,112 +615,7 @@ const list = [{
|
||||
}, {
|
||||
name: '待支付'
|
||||
},
|
||||
]// 根据优惠卷类型 返回优惠卷 作用范围 优惠多少钱 打多少折 首页多少钱
|
||||
const couponDesc = (item)=>{
|
||||
let detail = ''
|
||||
switch(item.couponType){
|
||||
case 1:
|
||||
detail = `${t('discountMomey',{discount:item.discountLimit})}`
|
||||
break
|
||||
case 2:
|
||||
detail = `${t('couponDiscount',{percent: 100 - item.discountRange * 100,discount: (item.discountRange * 100) / 10,})}`
|
||||
break
|
||||
case 3:
|
||||
detail = `${t('firstMonthRent',{discount:item.firstMonthAmount})}`
|
||||
break
|
||||
case 4:
|
||||
detail = `${t('couponDiscount',{percent: 100 - item.monthDiscount * 100,discount: (item.monthDiscount * 100) / 10})}`
|
||||
break
|
||||
case 5:
|
||||
detail = `${t('freeMonth',{discount:item.freeMonth})}`
|
||||
break
|
||||
case 6:
|
||||
detail = `${t('BonusMonth',{discount:item.freeMonth})}`
|
||||
break
|
||||
default:
|
||||
detail = `${t('discountMomey',{discount:item.discountLimit})}`
|
||||
break
|
||||
}
|
||||
return `${detail}`
|
||||
}
|
||||
function canAddValue(arr, value) {
|
||||
// 定义可以共存的数字
|
||||
const allowedNumbers = new Set([1, 3, 4]);
|
||||
|
||||
// 如果数组为空,可以添加任意值
|
||||
if (arr.length === 0) {
|
||||
return true;
|
||||
}
|
||||
|
||||
// 检查数组中是否已经存在非1、3、4的值
|
||||
const hasInvalidNumber = arr.some(num => !allowedNumbers.has(num));
|
||||
if (hasInvalidNumber) {
|
||||
return false; // 如果数组中已经有非1、3、4的值,不能添加任何值
|
||||
}
|
||||
|
||||
// 如果要添加的值是1、3、4,且没有重复,则可以添加
|
||||
if (allowedNumbers.has(value) && !arr.includes(value)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
// 其他情况不能添加
|
||||
return false;
|
||||
}
|
||||
const disabledFunc = (item)=>{
|
||||
if(!item) {return true}
|
||||
// item.siteIds 空的时候 包括全部
|
||||
const isSite = item.siteIds.length?item.siteIds.includes(state.value.lockData.siteId):true
|
||||
const isUnit = item.unitTypeIds.length?item.unitTypeIds.includes(state.value.lockData.unitTypeId):true
|
||||
let isPrice = item.satisfyAmount?state.value.priceData.expense>=item.satisfyAmount:true
|
||||
const canAdd = canAddValue(state.value.couponItem.map(x=>x.couponType),item.couponType)
|
||||
if([3,4,5,6].includes(item.couponType)){
|
||||
isPrice = state.value.month>=item.fullMonth
|
||||
}
|
||||
|
||||
// 将日期字符串转换为 Date 对象
|
||||
const start = new Date(item.startDate);
|
||||
const end = new Date(item.endDate);
|
||||
// 获取当前日期和时间
|
||||
const now = new Date();
|
||||
// 判断当前日期是否在开始日期和结束日期之间
|
||||
const isDate = now >= start && now <= end;
|
||||
return !(isSite&&isUnit&&isPrice&&item.renewUsable&&isDate&&canAdd)
|
||||
}
|
||||
const openCoupon = ()=>{
|
||||
couponRef.value.open();
|
||||
}
|
||||
const chooseOtherCoupon= (item) => {
|
||||
state.value.couponOtherItem = [item];
|
||||
getLockerExpense();
|
||||
}
|
||||
const confirmCoupon = (data)=>{
|
||||
const { couponItem, couponOtherItem } = data;
|
||||
state.value.couponItem = couponItem;
|
||||
state.value.couponOtherItem = couponOtherItem;
|
||||
getLockerExpense();
|
||||
couponRef.value.close();
|
||||
}
|
||||
|
||||
const chooseCoupon = (item)=>{
|
||||
// 可以叠加就添加
|
||||
if(item.isSuperposition){
|
||||
if(state.value.couponItem.every((x)=>item.couponDispositionId != x.couponDispositionId)){
|
||||
if(state.value.couponItem.every(x=>item.couponType != x.couponType)){
|
||||
state.value.couponItem.push(item);
|
||||
}else{
|
||||
uni.showToast({
|
||||
title: `相同优惠卷类型不能叠加使用!`,
|
||||
icon: "none",
|
||||
duration: 2000,
|
||||
})
|
||||
}
|
||||
}
|
||||
}else{
|
||||
state.value.couponItem = [item]
|
||||
}
|
||||
getLockerExpense()
|
||||
}
|
||||
|
||||
]
|
||||
const currentOrderList = computed(() => {
|
||||
|
||||
const isType1 = (item) =>
|
||||
@ -907,15 +765,6 @@ const goOrder = async () => {
|
||||
.ContinuationOrder({
|
||||
orderId: state.value.selectItem.orderId,
|
||||
month: state.value.month,
|
||||
couponIds: state.value.couponItem.map((item) => item.couponDispositionId),
|
||||
serialNumber: state.value.couponOtherItem.map(x => {
|
||||
return {
|
||||
dealGroupId: x.dealGroupId,
|
||||
number: x.number,
|
||||
marketPrice: x.marketPrice,
|
||||
purchasePrice: x.price
|
||||
}
|
||||
}),
|
||||
source
|
||||
})
|
||||
.then((res) => {
|
||||
@ -1040,15 +889,9 @@ const confirmMonth = () => {
|
||||
} else {
|
||||
state.value.month = state.value.radioMonthvalue;
|
||||
}
|
||||
clearCoupon();
|
||||
getLockerExpense();
|
||||
hideMonthPopup();
|
||||
}
|
||||
const clearCoupon = () => {
|
||||
state.value.couponItem = [];
|
||||
state.value.couponOtherItem = [];
|
||||
};
|
||||
|
||||
const selfDiscount = computed(() =>
|
||||
state.value.lockData.discountList
|
||||
.sort((a, b) => b.month - a.month)
|
||||
@ -1084,15 +927,6 @@ const getLockerExpense = () => {
|
||||
.ContinuationOrderPricePost({
|
||||
orderId: state.value.selectItem.orderId,
|
||||
month: state.value.month,
|
||||
couponIds: state.value.couponItem.map((item) => item.couponDispositionId),
|
||||
serialNumber: state.value.couponOtherItem.map(x => {
|
||||
return {
|
||||
dealGroupId: x.dealGroupId,
|
||||
number: x.number,
|
||||
marketPrice: x.marketPrice,
|
||||
purchasePrice: x.price
|
||||
}
|
||||
}),
|
||||
// couponIds: state.value.couponItem.map((item) => item.couponDispositionId),
|
||||
// point:state.value.point,
|
||||
// serialNumber: state.value.couponOtherItem.map(x => {
|
||||
@ -1116,7 +950,7 @@ const getLockerExpense = () => {
|
||||
showCancel: false,
|
||||
success: function () {
|
||||
clearCoupon();
|
||||
// state.value.point = 0;
|
||||
state.value.point = 0;
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
@ -1,131 +1,172 @@
|
||||
<template>
|
||||
<!-- <nav-bar></nav-bar> -->
|
||||
<view
|
||||
class="container"
|
||||
:class="[`${themeInfo.theme}-theme`, `${themeInfo.language}`]"
|
||||
>
|
||||
<nav-bar></nav-bar>
|
||||
<view class="content">
|
||||
<view class="formBox card">
|
||||
<uv-form labelPosition="left" labelWidth="190rpx" :model="state.formData" ref="formRef">
|
||||
|
||||
<!-- 姓名 -->
|
||||
<uv-form-item :label="$t('reserve.FULLNAME')" borderBottom>
|
||||
<uv-input
|
||||
<view class="info">
|
||||
<view class="i-header">
|
||||
<view class="tabbox">
|
||||
<view class="li">
|
||||
{{ $t("home.reserve") }}
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="infobox">
|
||||
<view class="personal">
|
||||
<view class="select">
|
||||
<view class="label"> * {{ $t("reserve.FULLNAME") }} </view>
|
||||
<view class="inputBox">
|
||||
<view class="value">
|
||||
<input
|
||||
type="text"
|
||||
v-model="state.formData.userName"
|
||||
border="none"
|
||||
placeholder="请填写"
|
||||
/>
|
||||
</uv-form-item>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<!-- 区域 -->
|
||||
<uv-form-item :label="$t('reserve.REGION')" borderBottom @click="openRegionPicker">
|
||||
<view class="select">
|
||||
<view class="label"> * {{ $t("reserve.REGION") }} </view>
|
||||
<view class="inputBox" @click="openRegionPicker">
|
||||
<view class="value">
|
||||
<uv-input
|
||||
type="text"
|
||||
v-model="state.formData.region"
|
||||
border="none"
|
||||
readonly
|
||||
placeholder="请选择"
|
||||
/>
|
||||
<template #right>
|
||||
<uv-icon name="arrow-right" size="16"></uv-icon>
|
||||
</template>
|
||||
</uv-form-item>
|
||||
</view>
|
||||
<uv-icon
|
||||
class="arrow"
|
||||
name="arrow-down-fill"
|
||||
color="#000000"
|
||||
size="14"
|
||||
></uv-icon>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<!-- 类型 -->
|
||||
<uv-form-item :label="$t('reserve.TYPE')" borderBottom>
|
||||
<view class="select">
|
||||
<view class="label"> * {{ $t("reserve.TYPE") }} </view>
|
||||
<view class="inputBox">
|
||||
<view class="value">
|
||||
<uv-radio-group
|
||||
v-model="state.formData.type"
|
||||
placement="row"
|
||||
activeColor="#fb322e" size="40rpx" inactiveColor="#D8D8D8"
|
||||
size="12"
|
||||
iconSize="14"
|
||||
:activeColor="themeInfo.activeColor"
|
||||
>
|
||||
<uv-radio :customStyle="{
|
||||
margin: '4px',
|
||||
}" :name="$t('reserve.Individual & Family')" :label="$t('reserve.Individual & Family')" />
|
||||
<uv-radio :customStyle="{
|
||||
margin: '4px',
|
||||
}" :name="$t('reserve.Business & E-commerce')" :label="$t('reserve.Business & E-commerce')" />
|
||||
<uv-radio :customStyle="{
|
||||
margin: '4px',
|
||||
}" :name="$t('reserve.Retail & Store')" :label="$t('reserve.Retail & Store')" />
|
||||
<uv-radio
|
||||
:customStyle="{
|
||||
margin: '8px 8px 8px 0',
|
||||
}"
|
||||
:name="$t('reserve.Individual & Family')"
|
||||
:label="$t('reserve.Individual & Family')"
|
||||
></uv-radio>
|
||||
<uv-radio
|
||||
:customStyle="{
|
||||
margin: '8px 8px 8px 0',
|
||||
}"
|
||||
:name="$t('reserve.Business & E-commerce')"
|
||||
:label="$t('reserve.Business & E-commerce')"
|
||||
></uv-radio>
|
||||
<uv-radio
|
||||
:customStyle="{ margin: '8px 0' }"
|
||||
:name="$t('reserve.Retail & Store')"
|
||||
:label="$t('reserve.Retail & Store')"
|
||||
></uv-radio>
|
||||
</uv-radio-group>
|
||||
</uv-form-item>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<!-- 手机号 -->
|
||||
<uv-form-item :label="$t('reserve.PHONE NUMBER')" borderBottom>
|
||||
<view style="display:flex;align-items:center;width:100%">
|
||||
<uv-input
|
||||
<view class="select">
|
||||
<view class="label"> * {{ $t("reserve.PHONE NUMBER") }} </view>
|
||||
<view class="inputBox">
|
||||
<view class="value">
|
||||
<input
|
||||
type="text"
|
||||
v-model="state.formData.phone"
|
||||
border="none"
|
||||
placeholder="请填写"
|
||||
style="flex:1"
|
||||
/>
|
||||
</view>
|
||||
</uv-form-item>
|
||||
|
||||
<!-- 需求 -->
|
||||
<uv-form-item :label="$t('common.Requirement')">
|
||||
<!-- #ifdef MP-WEIXIN -->
|
||||
<uv-button
|
||||
size="small"
|
||||
:text="$t('validation.bind')"
|
||||
open-type="getPhoneNumber"
|
||||
@getphonenumber="getPhoneNumber"
|
||||
>
|
||||
</uv-button>
|
||||
<!-- #endif -->
|
||||
</view>
|
||||
</view>
|
||||
<view class="select">
|
||||
<view class="label"> * {{ $t("common.Requirement")}} </view>
|
||||
<view class="inputBox">
|
||||
<view class="value">
|
||||
<uv-radio-group
|
||||
v-model="state.formData.tag"
|
||||
placement="row"
|
||||
activeColor="#fb322e" size="40rpx" inactiveColor="#D8D8D8"
|
||||
size="12"
|
||||
iconSize="14"
|
||||
:activeColor="themeInfo.activeColor"
|
||||
>
|
||||
<uv-radio :customStyle="{
|
||||
margin: '4px',
|
||||
}" :name="2" :label="$t('common.ConsultationQuotation')" />
|
||||
<uv-radio :customStyle="{
|
||||
margin: '4px',
|
||||
}" :name="1" :label="$t('common.OnSiteAssessment')" />
|
||||
<uv-radio
|
||||
:customStyle="{ margin: '8px 0' }"
|
||||
:name="2"
|
||||
:label="$t('common.ConsultationQuotation')"
|
||||
></uv-radio>
|
||||
<uv-radio
|
||||
:customStyle="{
|
||||
margin: '8px',
|
||||
}"
|
||||
:name="1"
|
||||
:label="$t('common.OnSiteAssessment')"
|
||||
></uv-radio>
|
||||
</uv-radio-group>
|
||||
</uv-form-item>
|
||||
|
||||
</uv-form>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<!-- 按钮 -->
|
||||
<view class="btn">
|
||||
<uv-button
|
||||
shape="circle"
|
||||
color="#FB322E"
|
||||
@click="submit"
|
||||
>
|
||||
<button class="next-btn" @click="submit">
|
||||
{{ $t("common.submit") }}
|
||||
</uv-button>
|
||||
</view>
|
||||
</button>
|
||||
</view>
|
||||
|
||||
<!-- 地区选择 -->
|
||||
<!-- 选择地区 -->
|
||||
<uv-picker
|
||||
ref="regionPickerRef"
|
||||
:columns="state.columns"
|
||||
keyName="label"
|
||||
:confirmText="$t('common.confirm')"
|
||||
:cancelText="$t('common.cancel')"
|
||||
@confirm="selectRegion"
|
||||
@change="changeRegion"
|
||||
/>
|
||||
|
||||
></uv-picker>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<!-- 是否验证成功 -->
|
||||
<myModal
|
||||
v-model="state.showAuthModal"
|
||||
:content="state.contentTips"
|
||||
:cancelShow="false"
|
||||
/>
|
||||
<uv-popup ref="typeSelectRef" mode="center" round="24px" :safeAreaInsetTop="false" :safeAreaInsetBottom="false" :close-on-click-overlay="false">
|
||||
></myModal>
|
||||
<uv-popup ref="typeSelectRef" mode="center" :safeAreaInsetTop="false" :safeAreaInsetBottom="false" :close-on-click-overlay="false">
|
||||
<view style="min-width:450rpx;padding: 40rpx;display: flex;flex-direction: column;justify-content: center;">
|
||||
<view class="typeSelectBox">
|
||||
<uv-button shape="circle"
|
||||
color="#FB322E" @click="typeSelect(2)">{{ $t('common.ConsultationQuotation')}}</uv-button>
|
||||
<button @click="typeSelect(2)">{{ $t('common.ConsultationQuotation')}}</button>
|
||||
</view>
|
||||
<view style="margin-top: 40rpx;" class="typeSelectBox">
|
||||
<uv-button shape="circle"
|
||||
color="#FB322E" @click="typeSelect(1)" >{{ $t('common.OnSiteAssessment')}}</uv-button>
|
||||
<button @click="typeSelect(1)" >{{ $t('common.OnSiteAssessment')}}</button>
|
||||
</view>
|
||||
</view>
|
||||
</uv-popup>
|
||||
<view class="footer">
|
||||
<view @click="toHome">
|
||||
返回主页
|
||||
</view>
|
||||
<view @click="goOrder">
|
||||
返回订单
|
||||
</view>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
</template>
|
||||
|
||||
@ -140,7 +181,7 @@ import { useLoginApi as homeApi } from "/Apis/home.js";
|
||||
import { ClientSite } from "@/Apis/book.js";
|
||||
import { isXiaohongshu } from '@/config/index.js';
|
||||
|
||||
const { themeInfo,storeState } = useMainStore();
|
||||
const { themeInfo } = useMainStore();
|
||||
const { t } = useI18n();
|
||||
|
||||
const getLoginApi = useLoginApi();
|
||||
@ -218,7 +259,7 @@ const verifyPerson = () => {
|
||||
phone: state.formData.phone,
|
||||
remark: state.formData.region,
|
||||
type: state.formData.type,
|
||||
channel: 18,
|
||||
channel: isXiaohongshu ? 17 : 1,
|
||||
tag: state.formData.tag,
|
||||
})
|
||||
.then((res) => {
|
||||
@ -276,92 +317,214 @@ const selectCity = (city, parentIndex) => {
|
||||
}
|
||||
});
|
||||
}
|
||||
const toHome = (item) => {
|
||||
uni.switchTab({
|
||||
url: `/pages/index/index`,
|
||||
});
|
||||
}
|
||||
|
||||
const goOrder = () => {
|
||||
uni.switchTab({
|
||||
url: `/pages/unlock/index`,
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
onMounted(() => {
|
||||
state.formData.phone = storeState.userInfo.phone;
|
||||
state.formData.userName = storeState.userInfo.customerName;
|
||||
getCityData();
|
||||
// setTimeout(()=>{
|
||||
// typeSelectRef.value?.open();
|
||||
// },500)
|
||||
setTimeout(()=>{
|
||||
typeSelectRef.value?.open();
|
||||
},500)
|
||||
});
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
@import "@/static/style/theme.scss";
|
||||
.back{
|
||||
margin-bottom: 0;
|
||||
.typeSelectBox{
|
||||
button {
|
||||
font-size: 32rpx;
|
||||
padding: 12rpx 0;
|
||||
color: var(--text-color);
|
||||
background: var(--active-color);
|
||||
border-radius: 10rpx;
|
||||
box-shadow: 0px 2px 5px 0px rgba(0, 0, 0, 0.13);
|
||||
}
|
||||
.footer{
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
}
|
||||
|
||||
.container {
|
||||
margin: 0;
|
||||
padding: 0 20upx;
|
||||
width: 100%;
|
||||
min-height: 100vh;
|
||||
padding-bottom: 80rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
background: linear-gradient(
|
||||
to bottom,
|
||||
var(--right-linear),
|
||||
var(--left-linear2)
|
||||
);
|
||||
background-attachment: fixed;
|
||||
.content {
|
||||
width: 100%;
|
||||
.infobox {
|
||||
width: 100%;
|
||||
padding: 10upx 6% 60upx;
|
||||
background-color: #ffffff;
|
||||
position: relative;
|
||||
&::before {
|
||||
content: "";
|
||||
z-index: 9;
|
||||
position: absolute;
|
||||
bottom: -7px;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100rpx;
|
||||
height: 14px;
|
||||
background: radial-gradient(
|
||||
var(--left-linear2) 0px,
|
||||
var(--left-linear2) 5px,
|
||||
transparent 5px,
|
||||
transparent
|
||||
);
|
||||
background-size: 14px 14px;
|
||||
}
|
||||
}
|
||||
.btn {
|
||||
margin-top: 60rpx;
|
||||
margin-bottom: 20rpx;
|
||||
button {
|
||||
font-size: 28rpx;
|
||||
padding: 12rpx 0;
|
||||
color: var(--text-color);
|
||||
background: var(--active-color);
|
||||
border-radius: 10rpx;
|
||||
box-shadow: 0px 2px 5px 0px rgba(0, 0, 0, 0.13);
|
||||
}
|
||||
}
|
||||
.select {
|
||||
border-bottom: 1px solid #bec2ce;
|
||||
margin: 30rpx 0;
|
||||
.label {
|
||||
color: #bec2ce;
|
||||
font-size: 26rpx;
|
||||
font-weight: bold;
|
||||
}
|
||||
.info {
|
||||
color: #242e42;
|
||||
font-size: 22rpx;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
font-weight: bold;
|
||||
padding: 0 18rpx;
|
||||
opacity: 0.7;
|
||||
&.Total {
|
||||
margin-top: 10rpx;
|
||||
color: #242e42;
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
.garyBox {
|
||||
background-color: rgba(216, 216, 216, 0.3);
|
||||
border-radius: 8rpx;
|
||||
padding: 2rpx 10rpx;
|
||||
font-size: 20rpx;
|
||||
font-weight: bold;
|
||||
color: rgb(36, 46, 66);
|
||||
display: flex;
|
||||
justify-content: space-around;
|
||||
align-items: center;
|
||||
background-color: #fff;
|
||||
view{
|
||||
width: 50%;
|
||||
height: 80rpx;
|
||||
line-height: 80rpx;
|
||||
justify-content: space-between;
|
||||
margin: 10rpx 4rpx;
|
||||
}
|
||||
.inputBox {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
padding: 10rpx;
|
||||
margin-left: 5px;
|
||||
|
||||
.ImgUpload {
|
||||
display: flex;
|
||||
margin: 10upx 0;
|
||||
::v-deep .uv-upload {
|
||||
margin-right: 40rpx;
|
||||
border-radius: 18rpx;
|
||||
border: 2px solid #9797974f;
|
||||
.uv-upload__wrap__preview {
|
||||
margin: 0;
|
||||
}
|
||||
}
|
||||
.upLoadText {
|
||||
font-size: 28upx;
|
||||
text-align: center;
|
||||
color: #000;
|
||||
padding: 10upx 0;
|
||||
background: var(--active-color);
|
||||
border-radius: 0 0 18upx 18upx;
|
||||
margin: -1px;
|
||||
}
|
||||
}
|
||||
.value {
|
||||
flex: 1;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
color: #242e42;
|
||||
font-size: 30rpx;
|
||||
font-weight: bold;
|
||||
}
|
||||
.arrow {
|
||||
width: auto;
|
||||
font-size: 24rpx;
|
||||
.codeBtn {
|
||||
font-size: 24rpx;
|
||||
background-color: #d1cbcb2d;
|
||||
}
|
||||
.container{
|
||||
min-height:100vh;
|
||||
background:#f5f6f8;
|
||||
}
|
||||
image {
|
||||
width: 20rpx;
|
||||
height: 12rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.i-header {
|
||||
position: relative;
|
||||
&::before {
|
||||
content: "";
|
||||
position: absolute;
|
||||
top: -7px;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 14px;
|
||||
background: radial-gradient(
|
||||
var(--right-linear) 0px,
|
||||
var(--right-linear) 5px,
|
||||
transparent 5px,
|
||||
transparent
|
||||
);
|
||||
background-size: 14px 14px;
|
||||
z-index: 9;
|
||||
}
|
||||
padding: 40upx 0;
|
||||
width: 100%;
|
||||
background-color: #f7f7f7;
|
||||
color: #242e42;
|
||||
.tabbox {
|
||||
position: relative;
|
||||
padding-top: 10upx;
|
||||
display: flex;
|
||||
justify-content: space-around;
|
||||
.li {
|
||||
width: 50%;
|
||||
background-color: transparent;
|
||||
font-size: 34upx;
|
||||
outline: none;
|
||||
text-align: center;
|
||||
}
|
||||
.li.active {
|
||||
font-weight: bold;
|
||||
}
|
||||
.bottom-line {
|
||||
position: absolute;
|
||||
left: calc(50% - 220rpx);
|
||||
bottom: 0;
|
||||
width: 160rpx;
|
||||
height: 2.5px;
|
||||
border-radius: 20px;
|
||||
background: var(--main-color);
|
||||
transition: left 0.5s ease;
|
||||
|
||||
.formBox{
|
||||
background:#fff;
|
||||
border-radius:16rpx;
|
||||
padding:10rpx 20rpx;
|
||||
|
||||
:deep(.uv-form-item__body){
|
||||
padding:20rpx 0;
|
||||
}
|
||||
|
||||
:deep(.uni-input-wrapper){
|
||||
text-align:right;
|
||||
font-weight:600;
|
||||
font-size:28rpx;
|
||||
.uv-radio-group--row{
|
||||
justify-content: end;
|
||||
&.right {
|
||||
left: calc(50% + 60rpx);
|
||||
}
|
||||
}
|
||||
|
||||
:deep(.uv-form-item__body__right__content__slot){
|
||||
text-align:right;
|
||||
}
|
||||
|
||||
:deep(.uv-form-item__body__left__content__label){
|
||||
font-size:26rpx;
|
||||
font-weight:600;
|
||||
}
|
||||
|
||||
:deep(.uv-line){
|
||||
border-color:#f0f0f0 !important;
|
||||
}
|
||||
}
|
||||
|
||||
.btn{
|
||||
margin-top:40rpx;
|
||||
padding:0 20rpx;
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -1,3 +0,0 @@
|
||||
<svg width="24" height="20" viewBox="0 0 24 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M20.3138 20H3.22983C2.34642 19.9723 1.51015 19.595 0.904801 18.951C0.299457 18.307 -0.025425 17.449 0.0015557 16.5655V3.40501C-0.0174213 2.52263 0.314215 1.66872 0.923773 1.03045C1.53333 0.392186 2.37108 0.0216266 3.2534 0H20.3373C21.2155 0.0277349 22.0473 0.400967 22.6518 1.03857C23.2563 1.67617 23.5847 2.5266 23.5656 3.40501V16.5655C23.579 17.0049 23.5053 17.4426 23.3488 17.8534C23.1924 18.2641 22.9563 18.6399 22.654 18.9591C22.3518 19.2783 21.9895 19.5346 21.5878 19.7132C21.1862 19.8919 20.7532 19.9893 20.3138 20ZM3.22983 1.79676C2.82566 1.82401 2.44774 2.00672 2.17535 2.30656C1.90297 2.6064 1.75728 3.00008 1.76886 3.40501V16.5655C1.75532 16.7728 1.78313 16.9807 1.85066 17.1772C1.9182 17.3736 2.02411 17.5546 2.16225 17.7098C2.30039 17.8649 2.468 17.991 2.65532 18.0808C2.84264 18.1706 3.04594 18.2222 3.2534 18.2327H20.3373C20.5428 18.2192 20.7435 18.1654 20.9281 18.0743C21.1127 17.9832 21.2776 17.8566 21.4132 17.7018C21.5489 17.547 21.6528 17.367 21.7188 17.172C21.7849 16.977 21.8119 16.7709 21.7983 16.5655V3.40501C21.8176 2.99125 21.6722 2.5867 21.394 2.27981C21.1158 1.97292 20.7274 1.78866 20.3138 1.7673L3.22983 1.79676ZM9.77475 16.1708C9.65298 16.1716 9.53241 16.1468 9.4208 16.0981C9.30919 16.0494 9.20902 15.9778 9.12674 15.8881C8.14025 14.8376 6.92697 14.0263 5.57938 13.5158C4.23179 13.0054 2.78545 12.8093 1.3506 12.9426L1.18565 11.1753C2.68799 11.0318 4.20383 11.1921 5.64296 11.6465C7.0821 12.1009 8.41511 12.8402 9.56267 13.8203C10.6908 12.0945 12.2323 10.678 14.0472 9.6996C15.862 8.72118 17.8926 8.21187 19.9544 8.21797C20.7275 8.21488 21.499 8.28788 22.2578 8.43594L21.9161 10.1679C21.2698 10.0431 20.6127 9.98194 19.9544 9.98527C18.016 9.97585 16.1127 10.503 14.4554 11.5084C12.7981 12.5139 11.4513 13.9583 10.5641 15.6819C10.5003 15.8095 10.4064 15.9197 10.2904 16.0029C10.1744 16.086 10.0399 16.1396 9.89846 16.1591C9.85799 16.1688 9.81634 16.1728 9.77475 16.1708ZM7.07077 9.39617C6.48821 9.39617 5.91873 9.22342 5.43434 8.89976C4.94995 8.57611 4.57242 8.11608 4.34948 7.57786C4.12654 7.03964 4.06821 6.4474 4.18186 5.87602C4.29552 5.30465 4.57605 4.77981 4.98799 4.36787C5.39992 3.95594 5.92476 3.6754 6.49613 3.56175C7.06751 3.4481 7.65975 3.50643 8.19797 3.72937C8.73619 3.95231 9.19622 4.32984 9.51988 4.81423C9.84353 5.29861 10.0163 5.8681 10.0163 6.45066C10.0163 6.83747 9.94009 7.22049 9.79207 7.57786C9.64404 7.93523 9.42708 8.25994 9.15356 8.53345C8.88005 8.80697 8.55534 9.02393 8.19797 9.17196C7.84061 9.31998 7.45758 9.39617 7.07077 9.39617ZM7.07077 5.27246C6.83775 5.27246 6.60996 5.34156 6.4162 5.47102C6.22245 5.60048 6.07143 5.78449 5.98226 5.99978C5.89308 6.21507 5.86975 6.45197 5.91521 6.68052C5.96067 6.90907 6.07289 7.119 6.23766 7.28378C6.40243 7.44855 6.61237 7.56077 6.84092 7.60623C7.06947 7.65169 7.30637 7.62836 7.52165 7.53918C7.73694 7.45001 7.92095 7.29899 8.05042 7.10524C8.17988 6.91148 8.24898 6.68369 8.24898 6.45066C8.24898 6.13818 8.12485 5.8385 7.90389 5.61755C7.68293 5.39659 7.38325 5.27246 7.07077 5.27246Z" fill="white"/>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 3.0 KiB |
@ -1,3 +0,0 @@
|
||||
<svg width="24" height="23" viewBox="0 0 24 23" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M20.2801 9.5438V5.32868C20.2801 3.35183 18.678 1.74961 16.701 1.74961H16.3146V0.893552C16.3146 0.400141 15.9145 0 15.4195 0C15.1825 0 14.9553 0.0941418 14.7877 0.261715C14.6201 0.429289 14.526 0.656567 14.526 0.893552V1.74961H6.17536V0.893552C6.17536 0.400141 5.77368 0 5.28026 0C4.78519 0 4.38517 0.400141 4.38517 0.893552V1.74961H3.57907C1.6021 1.74961 0 3.35183 0 5.32868V19.0469C0 21.0238 1.6021 22.6259 3.57907 22.6259H10.3868C10.5206 22.6669 10.6622 22.6759 10.8001 22.6523C10.9381 22.6286 11.0685 22.5729 11.181 22.4896C11.2935 22.4064 11.3849 22.2978 11.4478 22.1728C11.5107 22.0478 11.5434 21.9098 11.5432 21.7698C11.5432 21.3283 11.2226 20.9611 10.8005 20.8886C10.7904 20.8831 10.7799 20.8785 10.7691 20.8747C10.4973 20.7862 3.57919 20.8357 3.57919 20.8357C2.59237 20.8357 1.79055 20.0337 1.79055 19.0469V9.54297H19.595M3.57907 3.53825H4.38517V5.06868C4.38506 5.18626 4.40814 5.3027 4.45308 5.41135C4.49803 5.52 4.56395 5.61872 4.64709 5.70186C4.73023 5.78499 4.82895 5.85092 4.9376 5.89587C5.04624 5.94081 5.16269 5.96389 5.28026 5.96378C5.51764 5.96372 5.74527 5.86939 5.91312 5.70154C6.08097 5.53369 6.1753 5.30606 6.17536 5.06868V3.53825H14.526V5.06868C14.526 5.56376 14.9261 5.96378 15.4195 5.96378C15.5371 5.96389 15.6536 5.94081 15.7622 5.89587C15.8708 5.85092 15.9696 5.78499 16.0527 5.70186C16.1358 5.61872 16.2018 5.52 16.2467 5.41135C16.2917 5.3027 16.3147 5.18626 16.3146 5.06868V3.53825H16.701C17.6878 3.53825 18.4913 4.34174 18.4913 5.32856V7.75254H1.79031V5.32868C1.79031 4.34186 2.59225 3.53825 3.57907 3.53825ZM17.5071 10.7354C14.2128 10.7354 11.5431 13.4066 11.5431 16.6995C11.5431 19.9937 14.2127 22.665 17.5071 22.665C20.8014 22.665 23.4727 19.9939 23.4727 16.6995C23.4727 13.4066 20.8015 10.7354 17.5071 10.7354ZM17.5071 20.8746C15.2061 20.8746 13.3318 19.002 13.3318 16.6993C13.3318 14.3981 15.2059 12.5256 17.5071 12.5256C19.8098 12.5256 21.6823 14.3981 21.6823 16.6993C21.6823 19.002 19.8099 20.8746 17.5071 20.8746ZM19.2974 17.2972H17.5071V15.507C17.507 15.3489 17.4442 15.1973 17.3324 15.0854C17.2206 14.9736 17.069 14.9107 16.9109 14.9106C16.7528 14.9107 16.6012 14.9736 16.4894 15.0854C16.3776 15.1973 16.3148 15.3489 16.3146 15.507V17.8935C16.3147 18.0516 16.3776 18.2032 16.4894 18.315C16.6012 18.4268 16.7528 18.4897 16.9109 18.4898H19.2974C19.4555 18.4896 19.6071 18.4268 19.7189 18.315C19.8307 18.2032 19.8936 18.0516 19.8937 17.8935C19.8936 17.7354 19.8307 17.5838 19.7189 17.472C19.6071 17.3602 19.4555 17.2973 19.2974 17.2972ZM7.96413 11.9279H4.38517C4.22683 11.9279 4.07498 11.9908 3.96302 12.1028C3.85106 12.2147 3.78816 12.3666 3.78816 12.5249C3.78816 12.6833 3.85106 12.8351 3.96302 12.9471C4.07498 13.059 4.22683 13.1219 4.38517 13.1219H7.96424C8.12234 13.1218 8.27393 13.0589 8.38571 12.9471C8.49749 12.8353 8.56033 12.6837 8.56042 12.5256C8.56051 12.4472 8.54517 12.3696 8.51525 12.2971C8.48533 12.2246 8.44144 12.1588 8.38606 12.1033C8.33069 12.0478 8.26493 12.0037 8.19254 11.9736C8.12014 11.9435 8.04253 11.928 7.96413 11.9279ZM7.96413 16.103H4.38517C4.30675 16.1032 4.22913 16.1187 4.15672 16.1488C4.08432 16.1789 4.01855 16.223 3.96318 16.2785C3.90781 16.3341 3.86392 16.3999 3.83401 16.4724C3.8041 16.5449 3.78877 16.6226 3.78887 16.701C3.789 16.8591 3.85187 17.0107 3.96367 17.1225C4.07547 17.2342 4.22707 17.2971 4.38517 17.2972H7.96424C8.12233 17.2971 8.27392 17.2342 8.3857 17.1225C8.49749 17.0107 8.56033 16.8591 8.56042 16.701C8.56053 16.6226 8.54519 16.5449 8.51529 16.4724C8.48538 16.3999 8.44149 16.3341 8.38611 16.2785C8.33074 16.223 8.26498 16.1789 8.19257 16.1488C8.12017 16.1187 8.04254 16.1032 7.96413 16.103Z" fill="white"/>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 3.6 KiB |
@ -47,7 +47,6 @@ export const useMainStore = defineStore('main', () => {
|
||||
return getApi.GetUserInfo().then(res=>{
|
||||
if(res.code == 200){
|
||||
storeState.value.userInfo = res.data ?? {}
|
||||
storeState.value.hasTrytoLogin = true
|
||||
uni.setStorage({
|
||||
key:'userInfo',
|
||||
data:res.data
|
||||
@ -68,13 +67,10 @@ export const useMainStore = defineStore('main', () => {
|
||||
const logOut = ()=>{
|
||||
storeState.value.token = ''
|
||||
storeState.value.userInfo = {}
|
||||
// 如果是开发环境 就不清token 避免开发的时候后端服务没起来 每次都要重新登录
|
||||
if(process.env.NODE_ENV !== 'development'){
|
||||
uni.removeStorage({
|
||||
key:'token'
|
||||
}); // 清除缓存
|
||||
}
|
||||
}
|
||||
|
||||
const setLocation = (location) => {
|
||||
storeState.value.location = location;
|
||||
|
||||
@ -14,7 +14,7 @@
|
||||
<slot name="icon">
|
||||
<uv-icon
|
||||
class="uv-checkbox__icon-wrap__icon"
|
||||
name="checkmark"
|
||||
name="checkbox-mark"
|
||||
:size="elIconSize"
|
||||
:color="elIconColor"
|
||||
/>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user