mirror of
https://gitee.com/niucloud-team/niucloud-admin.git
synced 2026-04-04 19:50:14 +00:00
同步uniapp
This commit is contained in:
parent
691f4804f1
commit
b2fb34521d
414
uni-app/package-lock.json
generated
414
uni-app/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@ -7,7 +7,9 @@ import useConfigStore from '@/stores/config'
|
||||
import useSystemStore from '@/stores/system'
|
||||
import { useLogin } from '@/hooks/useLogin'
|
||||
import { useShare } from '@/hooks/useShare'
|
||||
import { useLocation } from '@/hooks/useLocation'
|
||||
|
||||
const locationVal = useLocation(true);
|
||||
onLaunch((data: any) => {
|
||||
// 添加初始化拦截器
|
||||
launchInterceptor()
|
||||
|
||||
@ -143,6 +143,9 @@
|
||||
:index="index"/>
|
||||
</template>
|
||||
|
||||
|
||||
<!-- 以下是addon文件夹下的自定义组件 -->
|
||||
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
@ -77,7 +77,6 @@ export function uploadVideo(data: AnyObject) {
|
||||
return request.upload('file/video', data, { showErrorMessage: true })
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取上传配置
|
||||
*/
|
||||
|
||||
@ -69,7 +69,7 @@
|
||||
<view class="text-[26rpx] mt-[10rpx] pb-[16rpx]" :style="{ fontWeight : diyComponent.blockStyle.fontWeight }">{{ item.title.text }}</view>
|
||||
<view class="text-[22rpx] text-gray-500 pb-[26rpx]">{{ item.subTitle.text }}</view>
|
||||
<view class="link relative text-[22rpx] leading-[40rpx] flex items-center text-white rounded-[20rpx] h-[40rpx] pl-[20rpx] pr-[10rpx]" :style="btnCss(item.moreTitle)" v-if="item.moreTitle.text">
|
||||
<text class="mr-[8rpx]" :class="{'italic': diyComponent.blockStyle.btnText == 'italics'}">{{ item.moreTitle.text }}</text>
|
||||
<text class="more-title" :class="{'italic': diyComponent.blockStyle.btnText == 'italics'}">{{ item.moreTitle.text }}</text>
|
||||
<text class="iconfont iconjiantou-you-cuxiantiao-fill !text-[20rpx] text-[#fff]"></text>
|
||||
</view>
|
||||
</view>
|
||||
@ -84,8 +84,7 @@
|
||||
</view>
|
||||
<scroll-view :scroll-x="true" class="whitespace-nowrap" :id="'warpStyle3-'+diyComponent.id" v-if="diyComponent.blockStyle.value == 'style-3'">
|
||||
<view v-for="(item,index) in diyComponent.list" :key="item.id" class="inline-flex">
|
||||
<view :id="'item'+index+diyComponent.id" @click="diyStore.toRedirect(item.link)"
|
||||
class="flex flex-col items-center justify-between p-[10rpx] bg-white mt-[20rpx] w-[157rpx] h-[200rpx] box-border"
|
||||
<view :id="'item'+index+diyComponent.id" @click="diyStore.toRedirect(item.link)" class="item-wrap-style3"
|
||||
:style="itemStyle3 + commonTempCss(item)"
|
||||
:class="{'!mr-[0rpx]': index+1 === diyComponent.list.length}">
|
||||
<view class="w-[141rpx] h-[141rpx] rounded-[var(--rounded-small)] overflow-hidden" v-if="item.imageUrl">
|
||||
@ -103,8 +102,7 @@
|
||||
|
||||
<scroll-view scroll-x="true" class="whitespace-nowrap" :id="'warpStyle4-'+diyComponent.id" v-if="diyComponent.blockStyle.value == 'style-4'">
|
||||
<view v-for="(item,index) in diyComponent.list" :key="item.id" class="inline-flex">
|
||||
<view :id="'item'+index+diyComponent.id" @click="diyStore.toRedirect(item.link)"
|
||||
class="flex flex-col items-center justify-between p-[4rpx] bg-[#F93D02] mt-[20rpx] box-border"
|
||||
<view :id="'item'+index+diyComponent.id" @click="diyStore.toRedirect(item.link)" class="item-wrap-style4"
|
||||
:class="{'!mr-[0rpx]': index+1 === diyComponent.list.length}"
|
||||
:style="commonTempCss(item) + itemStyle4">
|
||||
<view class="w-[149rpx] h-[149rpx] box-border px-[18rpx] pt-[16rpx] pb-[6rpx] bg-[#fff] flex flex-col items-center rounded-[var(--rounded-small)]">
|
||||
@ -285,4 +283,29 @@ const refresh = () => {
|
||||
}
|
||||
}
|
||||
}
|
||||
.more-title {
|
||||
margin-right: 8rpx;
|
||||
}
|
||||
.item-wrap-style3{
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
padding: 10rpx;
|
||||
background-color: white;
|
||||
margin-top: 20rpx;
|
||||
width: 157rpx;
|
||||
height: 200rpx;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.item-wrap-style4 {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
padding: 4rpx;
|
||||
background-color: #F93D02;
|
||||
margin-top: 20rpx;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<view :style="warpCss" class="goods-carousel-search-wrap">
|
||||
<view class="relative pb-[20rpx]">
|
||||
<view class="bg-img" :class="{'!-bottom-[200rpx]': diyComponent.bgGradient == true}">
|
||||
<view class="bg-img" :class="{'imp-minus-bottom200': diyComponent.bgGradient == true}">
|
||||
<image
|
||||
v-if="diyComponent.swiper.control && diyComponent.swiper.list && diyComponent.swiper.list[swiperIndex].imageUrl"
|
||||
:src="img(diyComponent.swiper.list[swiperIndex].imageUrl)" mode="scaleToFill" class="w-full h-full"
|
||||
@ -87,7 +87,7 @@
|
||||
</template>
|
||||
|
||||
<!-- 轮播图 -->
|
||||
<view class="relative" :class="{'mx-[20rpx]': swiperStyleBool && diyComponent.swiper.swiperStyle != 'style-3', 'swiper-style-3': diyComponent.swiper.swiperStyle == 'style-3'}" :style="carouselSwiperStyle()">
|
||||
<view class="relative" :class="{'mx20': swiperStyleBool && diyComponent.swiper.swiperStyle != 'style-3', 'swiper-style-3': diyComponent.swiper.swiperStyle == 'style-3'}" :style="carouselSwiperStyle()">
|
||||
<swiper v-if="diyComponent.swiper.control" class="swiper" :style="{ height: imgHeight }" autoplay="true"
|
||||
circular="true" @change="swiperChange"
|
||||
:class="{ 'swiper-left': diyComponent.swiper.indicatorAlign == 'left', 'swiper-right': diyComponent.swiper.indicatorAlign == 'right', 'ns-indicator-dots': diyComponent.swiper.indicatorStyle == 'style-2', 'ns-indicator-dots-three': diyComponent.swiper.indicatorStyle == 'style-3' }"
|
||||
@ -128,8 +128,8 @@
|
||||
<u-popup :safeAreaInsetTop="true" :show="tabAllPopup" mode="top" @close="tabAllPopup = false">
|
||||
<view class="text-sm px-[30rpx] pt-3" :style="{'padding-top':(systemStore.menuButtonInfo.top+'px')}">全部分类</view>
|
||||
<view class="flex flex-wrap pl-[30rpx] pt-[30rpx]">
|
||||
<view @click="changeData({ source : 'home' },-1)" :class="['px-[26rpx] border-[2rpx] border-solid border-transparent h-[60rpx] mr-[30rpx] mb-[30rpx] flex items-center justify-center bg-[#F4F4F4] rounded-[8rpx] text-xs', { 'tab-select-popup': currTabIndex == -1 }]">首页</view>
|
||||
<text @click="changeData(item,index)" v-for="(item, index) in diyComponent.tab.list" :key="index" :class="['px-[26rpx] border-[2rpx] border-solid border-transparent h-[60rpx] mr-[30rpx] mb-[30rpx] flex items-center justify-center bg-[#F4F4F4] rounded-[8rpx] text-xs', { 'tab-select-popup': index == currTabIndex }]">{{ item.text }}</text>
|
||||
<view @click="changeData({ source : 'home' },-1)" class="tab-wrap text-xs" :class="[{ 'tab-select-popup': currTabIndex == -1 }]">首页</view>
|
||||
<text @click="changeData(item,index)" v-for="(item, index) in diyComponent.tab.list" :key="index" class="tab-wrap text-xs" :class="[{ 'tab-select-popup': index == currTabIndex }]">{{ item.text }}</text>
|
||||
</view>
|
||||
</u-popup>
|
||||
</view>
|
||||
@ -545,6 +545,9 @@ if (componentsScrollVal && (typeof componentsScrollVal == "object")) {
|
||||
-webkit-filter: blur(0);
|
||||
filter: blur(0);
|
||||
overflow: hidden;
|
||||
&.imp-minus-bottom200 {
|
||||
bottom: -200rpx !important;
|
||||
}
|
||||
|
||||
uni-image, image {
|
||||
-webkit-filter: blur(15px);
|
||||
@ -845,4 +848,23 @@ if (componentsScrollVal && (typeof componentsScrollVal == "object")) {
|
||||
bottom: 38rpx !important;
|
||||
}
|
||||
}
|
||||
.mx20 {
|
||||
margin-left: 20rpx;
|
||||
margin-right: 20rpx;
|
||||
}
|
||||
.tab-wrap {
|
||||
padding-left: 26rpx;
|
||||
padding-right: 26rpx;
|
||||
border-width: 2rpx;
|
||||
border-style: solid;
|
||||
border-color: transparent;
|
||||
height: 60rpx;
|
||||
margin-right: 30rpx;
|
||||
margin-bottom: 30rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
background-color: #F4F4F4;
|
||||
border-radius: 8rpx;
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -43,8 +43,7 @@
|
||||
|
||||
<u-checkbox-group v-if="diyComponent.style == 'style-2'" v-model="selectValue" @change="checkboxChange" iconPlacement="left" placement="column">
|
||||
<view v-for="(item, index) in diyComponent.options" :key="index" @click="selectRadio(item)"
|
||||
class="layout-one-content mb-[16rpx]"
|
||||
:class="{'!mb-[0]': (diyComponent.options.length-1) == index}">
|
||||
class="layout-one-content mb16" :class="{'imp-mb0': (diyComponent.options.length-1) == index}">
|
||||
<u-checkbox class="!m-[0]" activeColor="var(--primary-color)" :labelSize="(diyComponent.fontSize * 2) + 'rpx'" :labelColor="diyComponent.textColor" :label="item.text" :name="item.id"></u-checkbox>
|
||||
</view>
|
||||
</u-checkbox-group>
|
||||
@ -55,7 +54,7 @@
|
||||
</text>
|
||||
</view>
|
||||
<text v-else class="text-[28rpx] text-[#999]" :style="{'font-size': (diyComponent.fontSize * 2) + 'rpx'}">{{ checkboxPlaceholder }}</text>
|
||||
<text class="nc-iconfont nc-icon-xiaV6xx pull-down-arrow text-[#666]" :class="{'selected': selectShow}" :style="{'font-size': (diyComponent.fontSize * 2+2) + 'rpx !important'}"></text>
|
||||
<text class="nc-iconfont nc-icon-xiaV6xx pull-down-arrow" :class="{'selected': selectShow}" :style="{'font-size': (diyComponent.fontSize * 2+2) + 'rpx !important'}"></text>
|
||||
</view>
|
||||
|
||||
<view class="layout-one-attribute-wrap" v-if="inputAttribute().length">
|
||||
@ -64,7 +63,7 @@
|
||||
</view>
|
||||
<view class="base-layout-two" v-if="diyGlobal.completeLayout == 'style-2'">
|
||||
<text v-if="diyStore.mode == 'decorate' && diyComponent.isHidden" class="layout-two-is-hidden">{{ t('diyForm.hidden') }}</text>
|
||||
<view class="layout-two-wrap" :class="{'!pb-[20rpx]': ((diyComponent.style == 'style-2' || diyComponent.style == 'style-3') && diyGlobal.borderControl),'no-border': !diyGlobal.borderControl}">
|
||||
<view class="layout-two-wrap" :class="{'imp-pb20': ((diyComponent.style == 'style-2' || diyComponent.style == 'style-3') && diyGlobal.borderControl),'no-border': !diyGlobal.borderControl}">
|
||||
<view class="layout-two-label"
|
||||
:class="{'justify-start': diyGlobal.completeAlign == 'left', 'justify-end': diyGlobal.completeAlign == 'right'}">
|
||||
<text class="required" v-if="diyComponent.field.required">{{ diyComponent.field.required ? '*' : '' }}</text>
|
||||
@ -81,9 +80,8 @@
|
||||
<view class="layout-two-content" v-if="diyComponent.style == 'style-2'">
|
||||
<view class="justify-end w-full">
|
||||
<u-checkbox-group v-model="selectValue" placement="column" @change="checkboxChange" iconPlacement="left">
|
||||
<view v-for="(item, index) in diyComponent.options" :key="index" @click="selectRadio(item)"
|
||||
class="border-solid border-[2rpx] border-[#e6e6e6] rounded-[10rpx] flex items-center h-[80rpx] mb-[16rpx] px-[16rpx] box-border"
|
||||
:class="{'mb-[0]': diyComponent.options.length == (index+1)}">
|
||||
<view v-for="(item, index) in diyComponent.options" :key="index" @click="selectRadio(item)" class="radio-wrap"
|
||||
:class="{'mb0': diyComponent.options.length == (index+1)}">
|
||||
<u-checkbox activeColor="var(--primary-color)"
|
||||
:labelSize="(diyComponent.fontSize * 2) + 'rpx'"
|
||||
:labelColor="diyComponent.textColor" class="!m-[0]" :label="item.text"
|
||||
@ -103,7 +101,7 @@
|
||||
</text>
|
||||
</view>
|
||||
<text v-else class="text-[28rpx] text-[#999]" :style="{'font-size': (diyComponent.fontSize * 2) + 'rpx'}">{{ checkboxPlaceholder }}</text>
|
||||
<text class="nc-iconfont nc-icon-xiaV6xx pull-down-arrow text-[#666]" :class="{'selected': selectShow}" :style="{'font-size': (diyComponent.fontSize * 2+2) + 'rpx !important'}"></text>
|
||||
<text class="nc-iconfont nc-icon-xiaV6xx pull-down-arrow" :class="{'selected': selectShow}" :style="{'font-size': (diyComponent.fontSize * 2+2) + 'rpx !important'}"></text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
@ -338,6 +336,7 @@ defineExpose({
|
||||
.pull-down-arrow {
|
||||
transition: all .3s;
|
||||
transform: rotate(0);
|
||||
color: #666;
|
||||
|
||||
&.selected {
|
||||
transform: rotate(180deg);
|
||||
@ -348,4 +347,28 @@ defineExpose({
|
||||
width: 30rpx !important;
|
||||
height: 30rpx !important;
|
||||
}
|
||||
.mb16{
|
||||
margin-bottom: 16rpx;
|
||||
}
|
||||
.imp-mb0{
|
||||
margin-bottom: 0 !important;
|
||||
}
|
||||
.imp-pb20 {
|
||||
padding-bottom: 20rpx !important;
|
||||
}
|
||||
.radio-wrap {
|
||||
border: 2px solid #e6e6e6;
|
||||
border-radius: 10rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
height: 80rpx;
|
||||
margin-bottom: 16rpx;
|
||||
padding-left: 16rpx;
|
||||
padding-right: 16rpx;
|
||||
box-sizing: border-box;
|
||||
|
||||
&.mb0 {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -35,14 +35,14 @@
|
||||
<view class="layout-one-content flex-1" @click="openCalendar">
|
||||
<view class="nc-iconfont nc-icon-a-riliV6xx-36 !text-[32rpx] text-[#999] mr-[16rpx]"></view>
|
||||
<view class="flex-1 text-overflow-ellipsis"
|
||||
:class="{'!text-[#999]' : !diyComponent.field.value.start.timestamp && !diyComponent.defaultControl}"
|
||||
:class="{'default-control' : !diyComponent.field.value.start.timestamp && !diyComponent.defaultControl}"
|
||||
:style="{'color': diyComponent.textColor,'font-size': (diyComponent.fontSize * 2) + 'rpx' }">{{ startDate }}</view>
|
||||
</view>
|
||||
<view class="mx-[10rpx]" :style="{'color': diyComponent.textColor,'font-size': (diyComponent.fontSize * 2) + 'rpx'}">-</view>
|
||||
<view class="layout-one-content flex-1" @click="openCalendar">
|
||||
<view class="nc-iconfont nc-icon-a-riliV6xx-36 !text-[32rpx] text-[#999] mr-[16rpx]"></view>
|
||||
<view class="flex-1 text-overflow-ellipsis"
|
||||
:class="{'!text-[#999]' : !diyComponent.field.value.end.timestamp && !diyComponent.defaultControl}"
|
||||
:class="{'default-control' : !diyComponent.field.value.end.timestamp && !diyComponent.defaultControl}"
|
||||
:style="{'color': diyComponent.textColor,'font-size': (diyComponent.fontSize * 2) + 'rpx'}">{{ endDate }}</view>
|
||||
</view>
|
||||
</view>
|
||||
@ -58,9 +58,9 @@
|
||||
<text class="name" :style="{'color': diyComponent.textColor,'font-size': (diyComponent.fontSize * 2) + 'rpx' ,'font-weight': diyComponent.fontWeight}">{{ diyComponent.field.name }}</text>
|
||||
</view>
|
||||
<view class="layout-two-content" @click="openCalendar">
|
||||
<view class="text-overflow-ellipsis flex justify-center" :class="{'!text-[#999]' : !diyComponent.field.value.start.timestamp && !diyComponent.defaultControl}" :style="{'color': diyComponent.textColor,'font-size': (diyComponent.fontSize * 2) + 'rpx'}">{{ startDate }}</view>
|
||||
<view class="text-overflow-ellipsis flex justify-center" :class="{'default-control' : !diyComponent.field.value.start.timestamp && !diyComponent.defaultControl}" :style="{'color': diyComponent.textColor,'font-size': (diyComponent.fontSize * 2) + 'rpx'}">{{ startDate }}</view>
|
||||
<view class="mx-[10rpx]" :style="{'color': diyComponent.textColor,'font-size': (diyComponent.fontSize * 2) + 'rpx'}">-</view>
|
||||
<view class="text-overflow-ellipsis flex justify-center" :class="{'!text-[#999]' : !diyComponent.field.value.end.timestamp && !diyComponent.defaultControl}" :style="{'color': diyComponent.textColor,'font-size': (diyComponent.fontSize * 2) + 'rpx'}">{{ endDate }}</view>
|
||||
<view class="text-overflow-ellipsis flex justify-center" :class="{'default-control' : !diyComponent.field.value.end.timestamp && !diyComponent.defaultControl}" :style="{'color': diyComponent.textColor,'font-size': (diyComponent.fontSize * 2) + 'rpx'}">{{ endDate }}</view>
|
||||
<text class="nc-iconfont !text-[#666] !text-[36rpx] nc-icon-youV6xx -mr-[8rpx]"></text>
|
||||
</view>
|
||||
</view>
|
||||
@ -306,6 +306,9 @@ defineExpose({
|
||||
white-space: nowrap;
|
||||
display: inline-block;
|
||||
}
|
||||
.default-control {
|
||||
color: #999 !important;
|
||||
}
|
||||
</style>
|
||||
<style lang="scss">
|
||||
.calendar-wrap .u-calendar .u-calendar-header__title, .u-calendar-header__subtitle, .u-calendar-month__title {
|
||||
|
||||
@ -28,7 +28,7 @@
|
||||
<view class="layout-one-content" @click="openCalendar">
|
||||
<view class="nc-iconfont nc-icon-a-riliV6xx-36 !text-[32rpx] text-[#999] mr-[16rpx]"></view>
|
||||
<view class="flex-1 text-overflow-ellipsis flex"
|
||||
:class="{'!text-[#999]' : !diyComponent.field.value.date && !diyComponent.defaultControl}"
|
||||
:class="{'default-control' : !diyComponent.field.value.date && !diyComponent.defaultControl}"
|
||||
:style="{'color': diyComponent.textColor,'font-size': (diyComponent.fontSize * 2) + 'rpx' }">{{ startDate }}</view>
|
||||
</view>
|
||||
<view class="layout-one-attribute-wrap" v-if="inputAttribute().length">
|
||||
@ -45,7 +45,7 @@
|
||||
</view>
|
||||
<view class="layout-two-content" @click="openCalendar">
|
||||
<view class="flex-1 text-overflow-ellipsis flex justify-end"
|
||||
:class="{'!text-[#999]' : !diyComponent.field.value.date && !diyComponent.defaultControl}"
|
||||
:class="{'default-control' : !diyComponent.field.value.date && !diyComponent.defaultControl}"
|
||||
:style="{'color': diyComponent.textColor,'font-size': (diyComponent.fontSize * 2) + 'rpx'}">{{ startDate }}</view>
|
||||
<text class="nc-iconfont !text-[#666] !text-[36rpx] nc-icon-youV6xx -mr-[8rpx]"></text>
|
||||
</view>
|
||||
@ -269,6 +269,9 @@ defineExpose({
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@import '@/styles/diy_form.scss';
|
||||
.default-control {
|
||||
color: #999 !important;
|
||||
}
|
||||
</style>
|
||||
|
||||
<style lang="scss">
|
||||
|
||||
@ -36,7 +36,7 @@
|
||||
</view>
|
||||
|
||||
<u-radio-group v-if="diyComponent.style == 'style-2'" v-model="selectedRadioId" @change="groupChange" iconPlacement="left" placement="column">
|
||||
<view v-for="(item, index) in diyComponent.options" :key="index" @click="selectRadio(item)" class="layout-one-content mb-[16rpx]" :class="{'!mb-[0]': (diyComponent.options.length-1) == index}">
|
||||
<view v-for="(item, index) in diyComponent.options" :key="index" @click="selectRadio(item)" class="layout-one-content mb16" :class="{'imp-mb0': (diyComponent.options.length-1) == index}">
|
||||
<u-radio activeColor="var(--primary-color)" :labelSize="(diyComponent.fontSize * 2) + 'rpx'" :labelColor="diyComponent.textColor" class="mr-[20rpx]" :label="item.text" :name="item.id"></u-radio>
|
||||
</view>
|
||||
</u-radio-group>
|
||||
@ -55,7 +55,7 @@
|
||||
</view>
|
||||
<view class="base-layout-two" v-if="diyGlobal.completeLayout == 'style-2'">
|
||||
<text v-if="diyStore.mode == 'decorate' && diyComponent.isHidden" class="layout-two-is-hidden">{{ t('diyForm.hidden') }}</text>
|
||||
<view class="layout-two-wrap" :class="{'!pb-[20rpx]': ((diyComponent.style == 'style-2' || diyComponent.style == 'style-3') && diyGlobal.borderControl),'no-border': !diyGlobal.borderControl}">
|
||||
<view class="layout-two-wrap" :class="{'imp-pb20': ((diyComponent.style == 'style-2' || diyComponent.style == 'style-3') && diyGlobal.borderControl),'no-border': !diyGlobal.borderControl}">
|
||||
<view class="layout-two-label" :class="{'justify-start': diyGlobal.completeAlign == 'left', 'justify-end': diyGlobal.completeAlign == 'right'}"><text class="required">{{ diyComponent.field.required ? '*' : '' }}</text>
|
||||
<text class="name" :style="{'color': diyComponent.textColor,'font-size': (diyComponent.fontSize * 2) + 'rpx' ,'font-weight': diyComponent.fontWeight}">{{ diyComponent.field.name }}</text>
|
||||
</view>
|
||||
@ -77,7 +77,7 @@
|
||||
<u-radio-group v-model="selectedRadioId" @change="groupChange" placement="column" iconPlacement="left">
|
||||
<view v-for="(item, index) in diyComponent.options" :key="index" @click="selectRadio(item)"
|
||||
class="border-solid border-[2rpx] border-[#e6e6e6] rounded-[10rpx] flex items-center h-[80rpx] mb-[16rpx] px-[16rpx] box-border"
|
||||
:class="{'mb-[0]': diyComponent.options.length == (index+1)}">
|
||||
:class="{'mb0': diyComponent.options.length == (index+1)}">
|
||||
<u-radio activeColor="var(--primary-color)"
|
||||
:labelSize="(diyComponent.fontSize * 2) + 'rpx'"
|
||||
:labelColor="diyComponent.textColor" class="!m-[0]" :label="item.text"
|
||||
@ -350,4 +350,16 @@ defineExpose({
|
||||
width: 30rpx !important;
|
||||
height: 30rpx !important;
|
||||
}
|
||||
.mb16 {
|
||||
margin-bottom: 16rpx;
|
||||
}
|
||||
.imp-mb0 {
|
||||
margin-bottom: 0 !important;
|
||||
}
|
||||
.imp-pb20 {
|
||||
padding-bottom: 20rpx !important;
|
||||
}
|
||||
.mb0 {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -35,14 +35,14 @@
|
||||
<view class="layout-one-content flex-1" @click="startDatetime = true">
|
||||
<view class="nc-iconfont nc-icon-a-shijianV6xx-36 !text-[32rpx] text-[#999] mr-[16rpx]"></view>
|
||||
<view class="flex-1 text-overflow-ellipsis"
|
||||
:class="{'!text-[#999]' : !diyComponent.defaultControl && !diyComponent.field.value.start.date}"
|
||||
:class="{'text-color-999' : !diyComponent.defaultControl && !diyComponent.field.value.start.date}"
|
||||
:style="{'color': diyComponent.textColor,'font-size': (diyComponent.fontSize * 2) + 'rpx'}">{{ startTime }}</view>
|
||||
</view>
|
||||
<view class="mx-[10rpx]" :style="{'color': diyComponent.textColor,'font-size': (diyComponent.fontSize * 2) + 'rpx'}">-</view>
|
||||
<view class="layout-one-content flex-1" @click="endDatetime = true">
|
||||
<view class="nc-iconfont nc-icon-a-shijianV6xx-36 !text-[32rpx] text-[#999] mr-[16rpx]"></view>
|
||||
<view class="flex-1 text-overflow-ellipsis"
|
||||
:class="{'!text-[#999]' : !diyComponent.defaultControl && !diyComponent.field.value.end.date}"
|
||||
:class="{'text-color-999' : !diyComponent.defaultControl && !diyComponent.field.value.end.date}"
|
||||
:style="{'color': diyComponent.textColor,'font-size': (diyComponent.fontSize * 2) + 'rpx'}">{{ endTime }}</view>
|
||||
</view>
|
||||
</view>
|
||||
@ -60,12 +60,12 @@
|
||||
</view>
|
||||
<view class="layout-two-content" @click="openCalendar">
|
||||
<view class="text-overflow-ellipsis flex justify-center"
|
||||
:class="{'!text-[#999]' : !diyComponent.field.value.start.date && !diyComponent.defaultControl}"
|
||||
:class="{'text-color-999' : !diyComponent.field.value.start.date && !diyComponent.defaultControl}"
|
||||
:style="{'color': diyComponent.textColor,'font-size': (diyComponent.fontSize * 2) + 'rpx'}"
|
||||
@click="startDatetime = true">{{ startTime }}</view>
|
||||
<view class="mx-[10rpx]" :style="{'color': diyComponent.textColor,'font-size': (diyComponent.fontSize * 2) + 'rpx'}">-</view>
|
||||
<view class="text-overflow-ellipsis flex justify-center"
|
||||
:class="{'!text-[#999]' : !diyComponent.field.value.end.date && !diyComponent.defaultControl}"
|
||||
:class="{'text-color-999' : !diyComponent.field.value.end.date && !diyComponent.defaultControl}"
|
||||
:style="{'color': diyComponent.textColor,'font-size': (diyComponent.fontSize * 2) + 'rpx'}"
|
||||
@click="endDatetime = true">{{ endTime }}</view>
|
||||
<text class="nc-iconfont !text-[#666] !text-[36rpx] nc-icon-youV6xx -mr-[8rpx]"></text>
|
||||
@ -362,4 +362,7 @@ defineExpose({
|
||||
.form-item-frame :deep(.u-picker .u-toolbar__wrapper__cancel), .form-item-frame :deep(.u-picker .u-toolbar__wrapper__confirm) {
|
||||
font-size: 28rpx;
|
||||
}
|
||||
.text-color-999 {
|
||||
color: #999 !important;
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -28,7 +28,7 @@
|
||||
<view class="layout-one-content">
|
||||
<view class="nc-iconfont nc-icon-a-shijianV6xx-36 !text-[32rpx] text-[#999] mr-[16rpx]"></view>
|
||||
<view class="flex-1 text-overflow-ellipsis flex"
|
||||
:class="{'!text-[#999]' : !diyComponent.field.value && !diyComponent.defaultControl}"
|
||||
:class="{'text-color-999' : !diyComponent.field.value && !diyComponent.defaultControl}"
|
||||
:style="{'color': diyComponent.textColor,'font-size': (diyComponent.fontSize * 2) + 'rpx'}"
|
||||
@click="startDatetime = true">{{ startTime }}</view>
|
||||
</view>
|
||||
@ -45,7 +45,7 @@
|
||||
</view>
|
||||
<view class="layout-two-content" @click="openCalendar">
|
||||
<view class="flex-1 text-overflow-ellipsis flex justify-end "
|
||||
:class="{'!text-[#999]' : !diyComponent.field.value && !diyComponent.defaultControl}"
|
||||
:class="{'text-color-999' : !diyComponent.field.value && !diyComponent.defaultControl}"
|
||||
:style="{'color': diyComponent.textColor,'font-size': (diyComponent.fontSize * 2) + 'rpx'}"
|
||||
@click="startDatetime = true">{{ startTime }}</view>
|
||||
<text class="nc-iconfont !text-[#666] !text-[36rpx] nc-icon-youV6xx -mr-[8rpx]"></text>
|
||||
@ -233,4 +233,7 @@ defineExpose({
|
||||
.form-item-frame :deep(.u-picker .u-toolbar__wrapper__cancel), .form-item-frame :deep(.u-picker .u-toolbar__wrapper__confirm) {
|
||||
font-size: 28rpx;
|
||||
}
|
||||
.text-color-999 {
|
||||
color: #999 !important;
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -48,7 +48,7 @@
|
||||
|
||||
<text v-if="diyComponent.mode != 'img'"
|
||||
class="graphic-text w-full text-center truncate leading-normal"
|
||||
:class="{ 'pt-[16rpx]' : diyComponent.mode != 'text' }"
|
||||
:class="{ 'pt16' : diyComponent.mode != 'text' }"
|
||||
:style="{ fontSize: diyComponent.font.size * 2 + 'rpx', fontWeight: diyComponent.font.weight, color: diyComponent.font.color }">{{ item.title }}</text>
|
||||
</view>
|
||||
|
||||
@ -88,7 +88,7 @@
|
||||
</view>
|
||||
<text v-if="diyComponent.mode != 'img'"
|
||||
class="graphic-text w-full text-center truncate leading-normal"
|
||||
:class="{ 'pt-[16rpx]' : diyComponent.mode != 'text' }"
|
||||
:class="{ 'pt16' : diyComponent.mode != 'text' }"
|
||||
:style="{ fontSize: diyComponent.font.size * 2 + 'rpx', fontWeight: diyComponent.font.weight, color: diyComponent.font.color }">{{ item.title }}</text>
|
||||
</view>
|
||||
</template>
|
||||
@ -120,7 +120,7 @@
|
||||
</view>
|
||||
<text v-if="diyComponent.mode != 'img'"
|
||||
class="graphic-text w-full text-center truncate leading-normal"
|
||||
:class="{ 'pt-[16rpx]' : diyComponent.mode != 'text' }"
|
||||
:class="{ 'pt16' : diyComponent.mode != 'text' }"
|
||||
:style="{ fontSize: diyComponent.font.size * 2 + 'rpx', fontWeight: diyComponent.font.weight, color: diyComponent.font.color }">{{ item.title }}</text>
|
||||
</view>
|
||||
</view>
|
||||
@ -370,4 +370,7 @@ const isShowSlideTemp = (index, numItem) => {
|
||||
}
|
||||
}
|
||||
}
|
||||
.pt16 {
|
||||
padding-top: 16rpx;
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -15,12 +15,12 @@
|
||||
<!-- 横向滚动 -->
|
||||
<view class="horizontal-wrap" :style="marqueeStyle" v-if="diyComponent.scrollWay == 'horizontal'">
|
||||
<view class="marquee marquee-one" id="marquee-one">
|
||||
<view class="item flex-shrink-0 !leading-[40rpx] h-[40rpx]" :class="{'ml-[80rpx]':index}"
|
||||
<view class="item" :class="{'ml80':index}"
|
||||
v-for="(item, index) in diyComponent.list" :key="index" @click="toRedirect(item)"
|
||||
:style="{ color: diyComponent.textColor, fontSize: diyComponent.fontSize * 2 + 'rpx', fontWeight: diyComponent.fontWeight }">{{ item.text }}</view>
|
||||
</view>
|
||||
<view class="marquee" v-if="marqueeBodyWidth < (marqueeOneWidth-30)">
|
||||
<view class="item flex-shrink-0 !leading-[40rpx] h-[40rpx]" :class="{'ml-[80rpx]':index}"
|
||||
<view class="item" :class="{'ml80':index}"
|
||||
v-for="(item, index) in diyComponent.list" :key="index" @click="toRedirect(item)"
|
||||
:style="{ color: diyComponent.textColor, fontSize: diyComponent.fontSize * 2 + 'rpx', fontWeight: diyComponent.fontWeight }">{{ item.text }}</view>
|
||||
</view>
|
||||
@ -272,6 +272,14 @@ swiper {
|
||||
// -moz-perspective: 1000;
|
||||
// -ms-perspective: 1000;
|
||||
// perspective: 1000;
|
||||
.item{
|
||||
flex-shrink: 0;
|
||||
line-height: 40rpx !important;
|
||||
height: 40rpx;
|
||||
&.ml80 {
|
||||
margin-left: 80rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes marquee {
|
||||
|
||||
@ -7,7 +7,7 @@
|
||||
<text class="text-[22rpx] truncate max-w-[164rpx]" v-if="diyComponent.moduleOne.head.subText" :style="{color: diyComponent.moduleOne.head.subTextColor}">{{ diyComponent.moduleOne.head.subText }}</text>
|
||||
</view>
|
||||
<view class="flex items-center">
|
||||
<view v-for="(item,index) in diyComponent.moduleOne.list" :key="index" class="flex flex-col items-center" :class="{'mr-[10rpx]': index == 0}" @click="diyStore.toRedirect(item.link)">
|
||||
<view v-for="(item,index) in diyComponent.moduleOne.list" :key="index" class="flex flex-col items-center" :class="{'mr10': index == 0}" @click="diyStore.toRedirect(item.link)">
|
||||
<view class="bg-[#fff] flex items-center justify-center w-[148rpx] h-[148rpx] rounded-[12rpx] mb-[16rpx]">
|
||||
<image v-if="item.imageUrl" class="w-[102rpx] h-[102rpx]" :src="img(item.imageUrl)" mode="aspectFill" />
|
||||
<u-icon v-else name="photo" color="#999" size="50"></u-icon>
|
||||
@ -25,7 +25,7 @@
|
||||
</view>
|
||||
<view class="flex items-center">
|
||||
<view v-for="(item,index) in diyComponent.moduleTwo.list" :key="index"
|
||||
class="flex flex-col items-center" :class="{'mr-[10rpx]': index == 0}"
|
||||
class="flex flex-col items-center" :class="{'mr10': index == 0}"
|
||||
@click="diyStore.toRedirect(item.link)">
|
||||
<view class="bg-[#fff] flex items-center justify-center w-[148rpx] h-[148rpx] rounded-[12rpx] mb-[16rpx]">
|
||||
<image v-if="item.imageUrl" class="w-[102rpx] h-[102rpx]" :src="img(item.imageUrl)" mode="aspectFill"/>
|
||||
@ -127,4 +127,8 @@ const refresh = () => {
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped></style>
|
||||
<style lang="scss" scoped>
|
||||
.mr10 {
|
||||
margin-right: 10rpx;
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -104,7 +104,7 @@
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="footer w-full" v-if="registerType.length > 1" :class="{'fixed bottom-0 left-0 right-0': type == 'mobile', 'pt-[60rpx]': type == 'username'}">
|
||||
<view class="footer w-full" v-if="registerType.length > 1" :class="{'fixed bottom-0 left-0 right-0': type == 'mobile', 'pt60': type == 'username'}">
|
||||
<view class="text-[26rpx] leading-[36rpx] text-[#666] text-center mb-[30rpx] font-400">其他注册方式</view>
|
||||
<view class="flex justify-center gap-[40rpx]">
|
||||
<text v-if="type == 'mobile' && configStore.login.is_mobile" @click="type = 'username'" class="w-[66rpx] h-[66rpx] flex items-center justify-center iconfont iconmima6Vmm border-[2rpx] rounded-[50%] border-solid border-[#ddd] !text-[26rpx]"></text>
|
||||
@ -377,4 +377,7 @@ const toLink = () => {
|
||||
padding-bottom: calc(151rpx + constant(safe-area-inset-bottom));
|
||||
padding-bottom: calc(151rpx + env(safe-area-inset-bottom));
|
||||
}
|
||||
.pt60 {
|
||||
padding-top: 60rpx;
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -50,7 +50,7 @@
|
||||
</view> -->
|
||||
</view>
|
||||
<view class="border-0 border-solid border-b-[1rpx] border-[#f6f6f6] mb-[20rpx]">
|
||||
<view v-for="(item, index) in friendsInfo.trade_info.item_list" class="flex justify-between" :class="{' mb-[34rpx]': (index + 1) != friendsInfo.trade_info.length }">
|
||||
<view v-for="(item, index) in friendsInfo.trade_info.item_list" class="flex justify-between" :class="{'mb34': (index + 1) != friendsInfo.trade_info.length }">
|
||||
<view class="w-[170rpx] h-[170rpx] rounded-[var(--goods-rounded-big)] overflow-hidden flex-shrink-0">
|
||||
<up-image class="overflow-hidden" radius="var(--goods-rounded-big)" width="170rpx" height="170rpx" :src="img(item.item_image ? item.item_image : '')" model="aspectFill">
|
||||
<template #error>
|
||||
@ -224,4 +224,7 @@ const save = () =>{
|
||||
.botton-color{
|
||||
background: linear-gradient( 94deg, #FB7939 0%, #FE120E 99%), #EF000C;
|
||||
}
|
||||
.mb34 {
|
||||
margin-bottom: 34rpx;
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -76,7 +76,7 @@
|
||||
<script setup lang="ts">
|
||||
import { ref, computed, nextTick, onMounted } from 'vue'
|
||||
import { onLoad } from '@dcloudio/uni-app'
|
||||
import { deepClone, redirect } from '@/utils/common'
|
||||
import { deepClone, redirect,openMapSelector } from '@/utils/common'
|
||||
import { t } from '@/locale'
|
||||
import { addAddress, editAddress, getAddressInfo } from '@/app/api/member'
|
||||
import manifestJson from '@/manifest.json'
|
||||
@ -262,7 +262,7 @@ const save = () => {
|
||||
const chooseLocation = () => {
|
||||
let latitude = systemStore.diyAddressInfo ? systemStore.diyAddressInfo.latitude : '';
|
||||
let longitude = systemStore.diyAddressInfo ? systemStore.diyAddressInfo.longitude : '';
|
||||
|
||||
|
||||
// #ifndef H5
|
||||
uni.chooseLocation({
|
||||
latitude,
|
||||
@ -301,7 +301,11 @@ const chooseLocation = () => {
|
||||
if (isSelectMap.value) {
|
||||
backurl = backurl + '&isSelectMap=' + isSelectMap.value
|
||||
}
|
||||
window.location.href = 'https://apis.map.qq.com/tools/locpicker?search=1&type=0&backurl=' + encodeURIComponent(backurl) + '&key=' + manifestJson.h5.sdkConfigs.maps.qqmap.key + '&referer=myapp';
|
||||
let params = ''
|
||||
if (latitude && longitude) {
|
||||
params = `latng=${ latitude },${ longitude }`
|
||||
}
|
||||
openMapSelector(backurl, params);
|
||||
// #endif
|
||||
}
|
||||
|
||||
|
||||
@ -28,7 +28,7 @@
|
||||
<!-- 提现到微信 -->
|
||||
<view class="p-[20rpx] mb-[20rpx] flex items-center rounded-[var(--rounded-mid)] border-[1rpx] border-solid border-[#eee]"
|
||||
v-if="config.transfer_type.includes('wechatpay') && openId"
|
||||
:class="{'border-[#00C800] bg-[#ECF9EF]': applyData.transfer_type == 'wechatpay'}"
|
||||
:class="{'wechat-wrap': applyData.transfer_type == 'wechatpay'}"
|
||||
@click="transferWeixin">
|
||||
<view>
|
||||
<image class="h-[60rpx] w-[60rpx] align-middle" :src="img('static/resource/images/member/apply_withdrawal/wechat.png')" mode="widthFix" />
|
||||
@ -42,7 +42,7 @@
|
||||
<!-- 提现到微信收款码 -->
|
||||
<view class="p-[20rpx] mb-[20rpx] flex items-center rounded-[var(--rounded-mid)] border-[1rpx] border-solid border-[#eee]"
|
||||
v-if="config.transfer_type.includes('wechat_code')"
|
||||
:class="{'border-[#00C800] bg-[#ECF9EF]': applyData.transfer_type == 'wechat_code' && wechatCodeInfo}">
|
||||
:class="{'wechat-wrap': applyData.transfer_type == 'wechat_code' && wechatCodeInfo}">
|
||||
<view @click="transferWechatCode">
|
||||
<image class="h-[60rpx] w-[60rpx] align-middle" :src="img('static/resource/images/member/apply_withdrawal/wechat_code.png')" mode="widthFix" />
|
||||
</view>
|
||||
@ -68,7 +68,7 @@
|
||||
<!-- 提现到支付宝 -->
|
||||
<view class="p-[20rpx] mb-[20rpx] flex items-center rounded-[var(--rounded-mid)] border-[1rpx] border-solid border-[#eee]"
|
||||
v-if="config.transfer_type.includes('alipay')"
|
||||
:class="{'border-[#009FE8] bg-[#EEF8FC]': applyData.transfer_type == 'alipay' && alipayAccountInfo}">
|
||||
:class="{'alipay-wrap': applyData.transfer_type == 'alipay' && alipayAccountInfo}">
|
||||
<view @click="transferAlipay">
|
||||
<image class="h-[60rpx] w-[60rpx] align-middle" :src="img('static/resource/images/member/apply_withdrawal/alipay-icon.png')" mode="widthFix" />
|
||||
</view>
|
||||
@ -94,7 +94,7 @@
|
||||
<!-- 提现到银行卡 -->
|
||||
<view class="p-[20rpx] flex items-center rounded-[var(--rounded-mid)] border-[1rpx] border-solid border-[#eee]"
|
||||
v-if="config.transfer_type.includes('bank')"
|
||||
:class="{'border-[#089C98] bg-[#F6FFFF]': applyData.transfer_type == 'bank' && bankAccountInfo}">
|
||||
:class="{'bank-wrap': applyData.transfer_type == 'bank' && bankAccountInfo}">
|
||||
<view @click="transferBank">
|
||||
<image class="h-[42rpx] w-[60rpx] align-middle" :src="img('static/resource/images/member/apply_withdrawal/bank-icon.png')" mode="widthFix" />
|
||||
</view>
|
||||
@ -441,4 +441,16 @@ const transferWechatCode = () => {
|
||||
padding-bottom: calc(constant(safe-area-inset-bottom) + 30rpx);
|
||||
padding-bottom: calc(env(safe-area-inset-bottom) + 30rpx);
|
||||
}
|
||||
.wechat-wrap {
|
||||
border-color: #00C800;
|
||||
background-color: #ECF9EF;
|
||||
}
|
||||
.alipay-wrap {
|
||||
border-color: #009FE8;
|
||||
background-color: #EEF8FC;
|
||||
}
|
||||
.bank-wrap {
|
||||
border-color: #089C98;
|
||||
background-color: #F6FFFF;
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -16,7 +16,7 @@
|
||||
class="sidebar-margin pt-[50rpx] pb-[40rpx] bg-[#fff] rounded-[var(--rounded-big)] px-[40rpx] box-border mt-[-112rpx]">
|
||||
<view class="flex flex-col items-center w-full"
|
||||
@click="redirect({ url: '/app/pages/member/detailed_account', param: { type : 'money' } })"
|
||||
:class="{'pt-[12rpx]': !Object.keys(cashOutConfigObj).length || (Object.keys(cashOutConfigObj).length && !systemStore.siteAddons.includes('recharge') && cashOutConfigObj.is_open != 1)}">
|
||||
:class="{'pt12': !Object.keys(cashOutConfigObj).length || (Object.keys(cashOutConfigObj).length && !systemStore.siteAddons.includes('recharge') && cashOutConfigObj.is_open != 1)}">
|
||||
<view class=" text-[var(--text-color-light9)] text-[26rpx] leading-[34rpx] mb-[12rpx]">{{ t('money') }}</view>
|
||||
<view class="text-[#333] inline-block">
|
||||
<text class="text-[36rpx] mr-[6rpx] price-font">¥</text>
|
||||
@ -32,7 +32,7 @@
|
||||
@click="redirect({url: '/addon/recharge/pages/recharge'})">充值</button>
|
||||
</template>
|
||||
<view v-if="cashOutConfigObj.is_open == 1"
|
||||
:class="{'!w-[340rpx]': !systemStore.siteAddons.includes('recharge')}"
|
||||
:class="{'imp-w340': !systemStore.siteAddons.includes('recharge')}"
|
||||
class="text-center w-[250rpx] h-[70rpx] rounded-[40rpx] text-[26rpx] !text-[#fff] flex-center font-500 !m-0"
|
||||
style="background: linear-gradient( 94deg, #FB7939 0%, #FE120E 99%), #EF000C;"
|
||||
@click="applyCashOut">提现</view>
|
||||
@ -50,12 +50,10 @@
|
||||
</view>
|
||||
<mescroll-body ref="mescrollRef" @init="mescrollInit" :down="{ use: false }" height="auto" @up="getListFn" :top="mescrollTop">
|
||||
<view class="sidebar-margin pt-[10rpx] body-bottom" v-if="list.length">
|
||||
<view v-for="(item,index) in list" :key="item.id"
|
||||
class="w-full h-[140rpx] flex justify-between items-center box-border card-template"
|
||||
:class="{'mt-[var(--top-m)]':index>0}">
|
||||
<view v-for="(item,index) in list" :key="item.id" class="card-template" :class="{'mt-var':index>0}">
|
||||
<view class="flex items-center">
|
||||
<view class="w-[80rpx] h-[80rpx] text-center rounded-[40rpx] text-[40rpx] font-500 leading-[80rpx] text-[#fff]"
|
||||
:class="{'bg-[#EF000C]' :item.account_data > 0&&item.account_type!='money', 'bg-[#03B521]':item.account_data <= 0&&item.account_type!='money','bg-[#1379FF]':item.account_type=='money'}">{{ item.account_type == 'money' ? '提' : item.account_data > 0 ? '收' : '支' }}</view>
|
||||
:class="{'bg-money-red' :item.account_data > 0 && item.account_type!='money', 'bg-money-green':item.account_data <= 0&&item.account_type!='money','bg-money-blue':item.account_type=='money'}">{{ item.account_type == 'money' ? '提' : item.account_data > 0 ? '收' : '支' }}</view>
|
||||
<view class="flex flex-col ml-[20rpx]">
|
||||
<view class="text-[#333] text-[28rpx] leading-[36rpx]">{{ item.from_type_name }}</view>
|
||||
<view class="text-[var(--text-color-light9)] text-[24rpx] mt-[12rpx]">{{ item.create_time }}</view>
|
||||
@ -63,7 +61,7 @@
|
||||
</view>
|
||||
<view class="text-right">
|
||||
<view class="text-[36rpx] leading-[40rpx] price-font"
|
||||
:class="{'text-[#EF000C]' :item.account_data > 0&&item.account_type!='money', 'text-[#03B521]':item.account_data <= 0&&item.account_type!='money'}">{{ item.account_data > 0 ? '+' + item.account_data : item.account_data }}</view>
|
||||
:class="{'text-money-red' :item.account_data > 0 && item.account_type!='money', 'text-money-green':item.account_data <= 0&&item.account_type!='money'}">{{ item.account_data > 0 ? '+' + item.account_data : item.account_data }}</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
@ -264,5 +262,37 @@ const confirmFn = (data: any) => {
|
||||
.pl-20rpx {
|
||||
padding-left: 20rpx;
|
||||
}
|
||||
.pt12 {
|
||||
padding-top: 12rpx;
|
||||
}
|
||||
.imp-w340{
|
||||
width: 340rpx !important;
|
||||
}
|
||||
.card-template {
|
||||
width: 100%;
|
||||
height: 140rpx;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
box-sizing: border-box;
|
||||
|
||||
.mt-var {
|
||||
margin-top: var(--top-m);
|
||||
}
|
||||
}
|
||||
.bg-money-red {
|
||||
background-color: #EF000C;
|
||||
}
|
||||
.bg-money-green {
|
||||
background-color: #03B521;
|
||||
}
|
||||
.bg-money-blue {
|
||||
background-color: #1379FF;
|
||||
}
|
||||
.text-money-red {
|
||||
color: #EF000C;
|
||||
}
|
||||
.text-money-green {
|
||||
color: #03B521;
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -8,7 +8,7 @@
|
||||
</view> -->
|
||||
<view class="flex items-center flex-col mb-[80rpx]">
|
||||
<text class="text-[60rpx] font-bold price-font mb-[16rpx]">{{ cashOutInfo.apply_money }}</text>
|
||||
<text class="text-[28rpx] text-[#333]" :class="{'text-primary': cashOutInfo.status == 1, 'text-[#999]': cashOutInfo.status == 4 }">{{ cashOutInfo.status_name }}</text>
|
||||
<text class="status-name" :class="{'text-primary': cashOutInfo.status == 1, 'gray': cashOutInfo.status == 4 }">{{ cashOutInfo.status_name }}</text>
|
||||
</view>
|
||||
<!-- 状态1.待审核2.待转账 3.已转账 4.转账中 -1拒绝' -->
|
||||
<view>
|
||||
@ -296,4 +296,12 @@ onUnload(() => {
|
||||
padding-bottom: constant(safe-area-inset-bottom);
|
||||
padding-bottom: env(safe-area-inset-bottom);
|
||||
}
|
||||
.status-name {
|
||||
font-size: 28rpx;
|
||||
color: #333;
|
||||
|
||||
&.gray {
|
||||
color: #999;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -42,19 +42,17 @@
|
||||
</view>
|
||||
<mescroll-body ref="mescrollRef" @init="mescrollInit" :down="{ use: false }" @up="geCommissionListFn" :top="mescrollTop">
|
||||
<view class="px-[var(--sidebar-m)] pt-[10rpx] body-bottom" v-if="list.length">
|
||||
<view v-for="(item,index) in list" :key="item.id"
|
||||
class="w-full h-[140rpx] flex justify-between items-center card-template"
|
||||
:class="{'mt-[var(--top-m)]':index}">
|
||||
<view v-for="(item,index) in list" :key="item.id" class="card-template" :class="{'mt':index}">
|
||||
<view class="flex items-center">
|
||||
<view class="w-[80rpx] h-[80rpx] rounded-[40rpx] text-[40rpx] font-500 text-[#fff] flex items-center justify-center"
|
||||
:class="{'bg-[#EF000C]' :item.account_data > 0, 'bg-[#1379FF]':item.account_data <= 0 }">{{ item.account_data > 0 ? '收' : '提' }}</view>
|
||||
:class="{'account-data-bg-red' :item.account_data > 0, 'account-data-bg-blue':item.account_data <= 0 }">{{ item.account_data > 0 ? '收' : '提' }}</view>
|
||||
<view class="flex flex-col ml-[20rpx]">
|
||||
<view class="text-[#333] text-[28rpx] leading-[36rpx]">{{ item.from_type_name }}</view>
|
||||
<view class="text-[var(--text-color-light9)] text-[24rpx] mt-[12rpx]">{{ item.create_time }}</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="text-[36rpx] leading-[50rpx] price-font"
|
||||
:class="{'text-[#EF000C]' :item.account_data > 0, 'text-[#1379FF]':item.account_data <= 0 }">{{ item.account_data > 0 ? '+' + item.account_data : item.account_data }}</view>
|
||||
:class="{'account-data-text-red' :item.account_data > 0, 'account-data-text-blue':item.account_data <= 0 }">{{ item.account_data > 0 ? '+' + item.account_data : item.account_data }}</view>
|
||||
</view>
|
||||
</view>
|
||||
<mescroll-empty v-if="!list.length && !loading &&!listLoading"></mescroll-empty>
|
||||
@ -166,7 +164,7 @@ const confirmFn = (data: any) => {
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
<style lang="scss" scoped>
|
||||
.member-level {
|
||||
background: linear-gradient(360deg, #F23621 11%, #FF7F71 100%), #D9D9D9;
|
||||
border-radius: 0 20rpx 20rpx 0;
|
||||
@ -180,4 +178,27 @@ const confirmFn = (data: any) => {
|
||||
padding-bottom: calc(20rpx + constant(safe-area-inset-bottom));
|
||||
padding-bottom: calc(20rpx + env(safe-area-inset-bottom));
|
||||
}
|
||||
.card-template {
|
||||
width: 100%;
|
||||
height: 140rpx;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
|
||||
&.mt {
|
||||
margin-top: var(--top-m);
|
||||
}
|
||||
}
|
||||
.account-data-bg-red{
|
||||
background-color: #EF000C;
|
||||
}
|
||||
.account-data-bg-blue {
|
||||
background-color: #1379FF;
|
||||
}
|
||||
.account-data-text-red{
|
||||
color: #EF000C;
|
||||
}
|
||||
.account-data-text-blue{
|
||||
color: #1379FF;
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -7,12 +7,12 @@
|
||||
</view>
|
||||
<view class="px-[30rpx] mb-[20rpx]">
|
||||
<view class="flex items-center justify-between mb-[30rpx]">
|
||||
<view class="w-[160rpx] h-[60rpx] leading-[60rpx] rounded-[30rpx] bg-[#F4F6FA] text-center text-[26rpx] text-[var(--text-color-light6)] border-[2rpx] border-solid border-[#F4F6FA]" v-for="(item,index) in curselectDate" :key="'a'+index" :class="{'text-primary !border-[var(--primary-color)] !bg-[rgba(239,0,12,0.04)]': currentValue.type == item.type}" @click="loadDateFn(item)">{{item.name}}</view>
|
||||
<view class="cur-select-date-wrap" v-for="(item,index) in curselectDate" :key="'a'+index" :class="{'selected': currentValue.type == item.type}" @click="loadDateFn(item)">{{item.name}}</view>
|
||||
</view>
|
||||
<view class="flex items-center justify-between">
|
||||
<view class="w-[316rpx] h-[60rpx] leading-[60rpx] rounded-[30rpx] bg-[#F4F6FA] text-center text-[26rpx] text-[var(--text-color-light6)] border-[2rpx] border-solid border-[#F4F6FA]" :class="{'text-primary !border-[var(--primary-color)] !bg-[rgba(239,0,12,0.04)]': currentValue.type == 'first'}" @click="currentValue.type = 'first'">{{dateList.nowDate[0]}}</view>
|
||||
<view class="now-date-wrap" :class="{'selected': currentValue.type == 'first'}" @click="currentValue.type = 'first'">{{dateList.nowDate[0]}}</view>
|
||||
<view class="nc-iconfont nc-icon-jianV6xx"></view>
|
||||
<view class="w-[316rpx] h-[60rpx] leading-[60rpx] rounded-[30rpx] bg-[#F4F6FA] text-center text-[26rpx] text-[var(--text-color-light6)] border-[2rpx] border-solid border-[#F4F6FA]" :class="{'text-primary !border-[var(--primary-color)] !bg-[rgba(239,0,12,0.04)]': currentValue.type == 'second'}" @click="currentValue.type = 'second'">{{dateList.nowDate[1]}}</view>
|
||||
<view class="now-date-wrap" :class="{'selected': currentValue.type == 'second'}" @click="currentValue.type = 'second'">{{dateList.nowDate[1]}}</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="h-[396rpx]">
|
||||
@ -179,7 +179,7 @@ defineExpose({
|
||||
})
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
<style lang="scss" scoped>
|
||||
:deep(.uni-picker-view-content){
|
||||
z-index: 10;
|
||||
}
|
||||
@ -189,4 +189,39 @@ defineExpose({
|
||||
:deep(.uni-picker-view-indicator::after){
|
||||
border: none !important;
|
||||
}
|
||||
.cur-select-date-wrap {
|
||||
width: 160rpx;
|
||||
height: 60rpx;
|
||||
line-height: 60rpx;
|
||||
border-radius: 30rpx;
|
||||
background-color: #F4F6FA;
|
||||
text-align: center;
|
||||
font-size: 26rpx;
|
||||
color: var(--text-color-light6);
|
||||
border-width: 2rpx;
|
||||
border-style: solid;
|
||||
border-color: #F4F6FA;
|
||||
|
||||
&.selected {
|
||||
color: var(--primary-color);
|
||||
border: var(--primary-color) !important;
|
||||
background-color: rgba(239, 0, 12, 0.04) !important;
|
||||
}
|
||||
}
|
||||
.now-date-wrap{
|
||||
width: 316rpx;
|
||||
height: 60rpx;
|
||||
line-height: 60rpx;
|
||||
border-radius: 30rpx;
|
||||
background-color: #F4F6FA;
|
||||
text-align: center;
|
||||
font-size: 26rpx;
|
||||
color: var(--text-color-light6);
|
||||
border: 2rpx solid #F4F6FA;
|
||||
&.selected {
|
||||
color: var(--primary-color);
|
||||
border: var(--primary-color) !important;
|
||||
background-color: rgba(239, 0, 12, 0.04) !important;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@ -25,8 +25,7 @@
|
||||
<view v-for="(item,index) in list" :key="item.id" class="sidebar-margin mb-[var(--top-m)] card-template relative">
|
||||
<view class="flex items-center justify-between mb-[20rpx]">
|
||||
<view class="text-[28rpx] font-500 text-[#333] leading-[40rpx]">{{ item.from_type_name }}</view>
|
||||
<view class="absolute right-[30rpx] top-[30rpx] text-[36rpx] font-500 text-[#03B521] leading-[50rpx] price-font"
|
||||
:class="{'!text-[var(--price-text-color)]':item.account_data > 0}">{{ item.account_data > 0 ? '+' + item.account_data : item.account_data }}</view>
|
||||
<view class="account-data-wrap price-font" :class="{'selected':item.account_data > 0}">{{ item.account_data > 0 ? '+' + item.account_data : item.account_data }}</view>
|
||||
</view>
|
||||
<view class="text-[24rpx] text-[var(--text-color-light6)] mb-[14rpx]" v-if="item.memo">{{ item.memo }}</view>
|
||||
<view class="text-[24rpx] text-[var(--text-color-light6)]">{{ item.create_time }}</view>
|
||||
@ -150,9 +149,22 @@ const confirmFn = (data: any) => {
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
<style lang="scss" scoped>
|
||||
.body-bottom {
|
||||
padding-bottom: calc(20rpx + constant(safe-area-inset-bottom));
|
||||
padding-bottom: calc(20rpx + env(safe-area-inset-bottom));
|
||||
}
|
||||
.account-data-wrap {
|
||||
position: absolute;
|
||||
right: 30rpx;
|
||||
top: 30rpx;
|
||||
font-size: 36rpx;
|
||||
font-weight: 500;
|
||||
color: #03B521;
|
||||
line-height: 50rpx;
|
||||
|
||||
&.selected {
|
||||
color: var(--price-text-color) !important;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -16,8 +16,7 @@
|
||||
<view v-if="memberInfo.member_level == item.level_id && swiperIndex == index"
|
||||
class="text-[24rpx] absolute top-0 left-0 z-10 h-[66rpx] !bg-contain w-[150rpx] flex pt-[12rpx] pl-[16rpx] box-border"
|
||||
:style="{ background: 'url(' + img(currLevelInfo.level_tag) + ') no-repeat',color: currLevelInfo.level_style.level_color}">当前等级</view>
|
||||
<view class="absolute top-0 left-0 right-0 bottom-0 z-20 px-[30rpx] pt-[68rpx] box-border"
|
||||
:class="{'px-[50rpx]': swiperIndex != index}">
|
||||
<view class="swiper-level-item-wrap" :class="{'px50': swiperIndex != index}">
|
||||
<view class="flex items-center leading-[50rpx] mb-[90rpx]">
|
||||
<image class="h-[32rpx] w-[34rpx] align-middle" :src="img(item.level_icon ? item.level_icon : '')" mode="aspectFill" />
|
||||
<view class="text-[36rpx] font-bold ml-[10rpx] max-w-[340rpx] truncate" :style="{color:currLevelInfo.level_style.level_color}">{{ item.level_name }}</view>
|
||||
@ -55,8 +54,8 @@
|
||||
<template v-for="(item,index) in list" :key="item.id">
|
||||
<view :style="levelStyle" class=" flex-shrink-0 flex flex-col items-center justify-center"
|
||||
@click="changeLevel(index)" :id="'id' + index">
|
||||
<view class="w-[14rpx] h-[14rpx] level-class" :class="{'level-select': levelIndex == (index)}"></view>
|
||||
<view :style="maxWidth" class="text-[22rpx] text-[#aaa] mt-[16rpx] truncate" :class="{'!text-[#fff]': levelIndex == (index)}">{{ item.level_name }}</view>
|
||||
<view class="level-class" :class="{'level-select': levelIndex == (index)}"></view>
|
||||
<view :style="maxWidth" class="level-name" :class="{'selected': levelIndex == (index)}">{{ item.level_name }}</view>
|
||||
</view>
|
||||
</template>
|
||||
</view>
|
||||
@ -85,7 +84,7 @@
|
||||
<text class="text-[30rpx] text-[#333] font-500 leading-[44rpx]">升级礼包</text>
|
||||
</view>
|
||||
<view class="flex flex-wrap">
|
||||
<view v-for="(item,index) in currLevelInfo.gifts_arr" :key="index" class="mb-[20rpx]" :class="{'mr-[21rpx]': (index+1) % 3 != 0}">
|
||||
<view v-for="(item,index) in currLevelInfo.gifts_arr" :key="index" class="mb20" :class="{'mr21': (index+1) % 3 != 0}">
|
||||
<view class="relative box-border mb-[16rpx] w-[216rpx] h-[180rpx] !bg-contain" :style="{ background: 'url(' + img(item.background) + ') no-repeat'}"></view>
|
||||
<view class="text-center font-500 text-[#333] text-[28rpx] truncate leading-[40rpx] max-w-[216rpx]">{{ item.text }}</view>
|
||||
</view>
|
||||
@ -314,6 +313,8 @@ const changeLevel = (index: any) => {
|
||||
|
||||
.level-class {
|
||||
position: relative;
|
||||
width: 14rpx;
|
||||
height: 14rpx;
|
||||
|
||||
&::before {
|
||||
content: "";
|
||||
@ -355,4 +356,38 @@ const changeLevel = (index: any) => {
|
||||
background-repeat: no-repeat;
|
||||
background-size: 100% 100%;
|
||||
}
|
||||
.swiper-level-item-wrap {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
z-index: 20;
|
||||
padding-left: 30rpx;
|
||||
padding-right: 30rpx;
|
||||
padding-top: 68rpx;
|
||||
box-sizing: border-box;
|
||||
&.px50 {
|
||||
padding-left: 50rpx;
|
||||
padding-right: 50rpx;
|
||||
}
|
||||
}
|
||||
.level-name {
|
||||
font-size: 22rpx;
|
||||
color: #aaa;
|
||||
margin-top: 16rpx;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
|
||||
&.selected {
|
||||
color: #fff !important;
|
||||
}
|
||||
}
|
||||
.mb20 {
|
||||
margin-bottom: 20rpx;
|
||||
}
|
||||
.mr21 {
|
||||
margin-right: 21rpx;
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
<view class="fixed left-0 right-0 top-0 z-10085 container">
|
||||
<view class="bg-[#f6f6f6] px-[30rpx] h-[88rpx] pt-[10rpx] flex-center relative z-10084">
|
||||
<view class="search-input bg-[#fff]">
|
||||
<view class="flex-1 text-[24rpx] leading-[60rpx] text-[var(--text-color-light9)]" :class="{'!text-[#333]':from_type}" @click="typePopup = true">{{ from_type_name || '请选择来源用途' }}</view>
|
||||
<view class="from-type-name" :class="{'selected':from_type}" @click="typePopup = true">{{ from_type_name || '请选择来源用途' }}</view>
|
||||
<text class="nc-iconfont nc-icon-shangV6xx-1 !text-[26rpx] ml-[18rpx] !text-[var(--text-color-light6)]" v-if="typePopup" @click="typePopup = false"></text>
|
||||
<text class="nc-iconfont nc-icon-xiaV6xx !text-[26rpx] ml-[18rpx] !text-[var(--text-color-light6)]" v-else @click="typePopup = true"></text>
|
||||
</view>
|
||||
@ -11,18 +11,15 @@
|
||||
<view class="type-class">
|
||||
<u-popup :show="typePopup" mode="top" @close="typePopup = false">
|
||||
<view @touchmove.prevent.stop class="py-[22rpx]">
|
||||
<view class="leading-[80rpx] text-[26rpx] text-[#333] px-[50rpx]"
|
||||
:class="{'bg-[var(--primary-color-light)] !text-primary font-500' : from_type == ''}" @click="searchTypeFn()">全部</view>
|
||||
<view class="leading-[80rpx] text-[26rpx] text-[#333] px-[50rpx]"
|
||||
:class="{'bg-[var(--primary-color-light)] !text-primary font-500' : from_type == index}"
|
||||
<view class="type-item-wrap" :class="{'selected' : from_type == ''}" @click="searchTypeFn()">全部</view>
|
||||
<view class="type-item-wrap" :class="{'selected' : from_type == index}"
|
||||
v-for="(item,index) in pointType" @click="searchTypeFn(index,item)">{{ item.name }}</view>
|
||||
</view>
|
||||
</u-popup>
|
||||
</view>
|
||||
<view class="px-[var(--sidebar-m)] pb-[20rpx] pt-[20rpx] bg-[#f6f6f6] flex items-center justify-between">
|
||||
<view class="flex items-center">
|
||||
<view class="px-[30rpx] bg-[#fff] rounded-[30rpx] text-[24rpx] leading-[54rpx] mr-[20rpx] text-[#333]"
|
||||
:class="{'!text-[var(--primary-color)] font-500':amount_type == item.status}"
|
||||
<view class="amount-type-item-wrap" :class="{'selected':amount_type == item.status}"
|
||||
v-for="(item,index) in typeList" :key="index" @click="loadTypeFn(item.status)">{{ item.name }}</view>
|
||||
</view>
|
||||
<view class="flex items-center" @click="handleSelect">
|
||||
@ -52,12 +49,12 @@
|
||||
<image v-if="subItem.account_data > 0" :src="img('static/resource/images/member/point/detail/point_add.png')" class="w-[60rpx] h-[60rpx]"/>
|
||||
<image v-else :src="img('static/resource/images/member/point/detail/point_min.png')" class="w-[60rpx] h-[60rpx]"/>
|
||||
</view>
|
||||
<view class="flex-1 flex items-center ml-[20rpx] box-border py-[30rpx] border-0" :class="{'border-solid border-t-[2rpx] border-[#F0F2F8]' : subIndex}">
|
||||
<view class="from-type-name-wrap" :class="{'border-style' : subIndex}">
|
||||
<view class="flex-1">
|
||||
<view class="text-[26rpx] text-[#333]">{{ subItem.from_type_name }}</view>
|
||||
<view class="text-[24rpx] text-[var(--text-color-light9)] mt-[16rpx]">{{ subItem.create_time }}</view>
|
||||
</view>
|
||||
<view class="text-[36rpx] font-500 text-[#03B521] price-font" :class="{ '!text-primary' : subItem.account_data > 0 }">{{ subItem.account_data > 0 ? '+' + subItem.account_data : subItem.account_data }}</view>
|
||||
<view class="account-data-wrap price-font" :class="{ '!text-primary' : subItem.account_data > 0 }">{{ subItem.account_data > 0 ? '+' + subItem.account_data : subItem.account_data }}</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
@ -180,4 +177,61 @@ const confirmFn = (data: any) => {
|
||||
:deep(.type-class .u-popup .u-transition) {
|
||||
top: 86rpx !important;
|
||||
}
|
||||
.from-type-name {
|
||||
flex: 1;
|
||||
font-size: 24rpx;
|
||||
line-height: 60rpx;
|
||||
color: var(--text-color-light9);
|
||||
|
||||
&.selected {
|
||||
color: #333 !important;
|
||||
}
|
||||
}
|
||||
.type-item-wrap {
|
||||
line-height: 80rpx;
|
||||
font-size: 26rpx;
|
||||
color: #333;
|
||||
padding-left: 50rpx;
|
||||
padding-right: 50rpx;
|
||||
|
||||
&.selected {
|
||||
background-color: var(--primary-color-light);
|
||||
color: var(--primary-color) !important;
|
||||
font-weight: 500;
|
||||
}
|
||||
}
|
||||
.amount-type-item-wrap {
|
||||
padding-left: 30rpx;
|
||||
padding-right: 30rpx;
|
||||
background-color: #fff;
|
||||
border-radius: 30rpx;
|
||||
font-size: 24rpx;
|
||||
line-height: 54rpx;
|
||||
margin-right: 20rpx;
|
||||
color: #333;
|
||||
|
||||
&.selected {
|
||||
color: var(--primary-color) !important;
|
||||
font-weight: 500;
|
||||
}
|
||||
}
|
||||
.from-type-name-wrap {
|
||||
flex: 1;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-left: 20rpx;
|
||||
box-sizing: border-box;
|
||||
padding-top: 30rpx;
|
||||
padding-bottom: 30rpx;
|
||||
border: none;
|
||||
|
||||
&.border-style {
|
||||
border: 2px solid #F0F2F8;
|
||||
}
|
||||
}
|
||||
.account-data-wrap{
|
||||
font-size: 36rpx;
|
||||
font-weight: 500;
|
||||
color: #03B521;
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<view :style="themeColor()">
|
||||
<view class="min-h-screen overflow-hidden" v-if="Object.values(info).length" :class="{ 'bg-[#F6F6F6]' : info && info.is_use }">
|
||||
<view class="min-h-screen overflow-hidden" v-if="Object.values(info).length" :class="{ 'is-use' : info && info.is_use }">
|
||||
<view v-if="info.is_use">
|
||||
<view class="sigin-header">
|
||||
<!-- #ifndef H5 -->
|
||||
@ -51,9 +51,8 @@
|
||||
<view class="flex flex-wrap items-center justify-start" v-if="!flag">
|
||||
<template v-for="(item,index) in state.weekCount" :key="index">
|
||||
<view class="w-[14.28%] flex flex-col justify-center items-center">
|
||||
<view v-if="filteredDate(item)"
|
||||
class="w-[74rpx] h-[92rpx] bg-[#f4f4f4] text-[var(--text-color-light6)] box-border py-[10rpx] rounded-[8rpx] flex flex-col items-center"
|
||||
:class="{'sign-bg !text-[#fff]': isVerDate(item),'!bg-[#f9f9f9] border-[1rpx] !text-[var(--text-color-light9)] border-[#f5f5f5] border-solid': !isVerDate(item) && item < state.curDate && (state.curMonth + 1) == (new Date().getMonth() + 1) ,'mb-[20rpx]':isCurrentDate(item),'mb-[30rpx]':!isCurrentDate(item)}"
|
||||
<view v-if="filteredDate(item)" class="filtered-date-wrap"
|
||||
:class="{'sign-bg': isVerDate(item),'week-normal': !isVerDate(item) && item < state.curDate && (state.curMonth + 1) == (new Date().getMonth() + 1) ,'mb20':isCurrentDate(item),'mb30':!isCurrentDate(item)}"
|
||||
@click="getDayPackFn(item)">
|
||||
<text class="text-[24rpx] leading-[28rpx] mb-[6rpx]">{{ filteredDate(item) }}</text>
|
||||
<view v-if="filteredDate(item)" class="flex items-center justufy-center">
|
||||
@ -75,8 +74,8 @@
|
||||
<template v-for="(item,index) in state.dataCount">
|
||||
<view class="w-[14.28%] flex flex-col justify-center items-center mb-[30rpx]">
|
||||
<view v-if="filteredDate(item)"
|
||||
class="w-[74rpx] h-[92rpx] bg-[#F6FAFF] text-[var(--text-color-light6)] box-border py-[10rpx] rounded-[8rpx] flex flex-col items-center"
|
||||
:class="{'sign-bg !text-[#fff]': isVerDate(item) && active ,'!bg-[#FDFDFD] border-[1rpx] border-[#F0F4FA] border-solid': !isVerDate(item) && item < state.curDate && (state.curMonth + 1) == (new Date().getMonth() + 1) && state.curYear == new Date().getFullYear() ,'mb-[20rpx]':isCurrentDate(item),'mb-[30rpx]':!isCurrentDate(item)}"
|
||||
class="filtered-date-wrap"
|
||||
:class="{'sign-bg': isVerDate(item) && active ,'day-normal': !isVerDate(item) && item < state.curDate && (state.curMonth + 1) == (new Date().getMonth() + 1) && state.curYear == new Date().getFullYear() ,'mb20':isCurrentDate(item),'mb30':!isCurrentDate(item)}"
|
||||
@click="getDayPackFn(item)">
|
||||
<text class="text-[24rpx] leading-[28rpx] mb-[6rpx]">{{ filteredDate(item) }}</text>
|
||||
<view v-if="filteredDate(item)" class="flex items-center justufy-center">
|
||||
@ -122,7 +121,7 @@
|
||||
</view> -->
|
||||
</view>
|
||||
<view>
|
||||
<view v-for="(item,index) in info.continue_award" :key="index" class="flex items-center border-box" :class="{'mt-[40rpx]':index}">
|
||||
<view v-for="(item,index) in info.continue_award" :key="index" class="flex items-center border-box" :class="{'mt40':index}">
|
||||
<view class="w-[90rpx] h-[90rpx] rounded-[50%] bg-[#E7F6FF] flex items-center justify-center flex-shrink-0" v-if="(index + 1) % 4 == 1">
|
||||
<image :src="img('static/resource/images/app/icon_02.png')" class="w-[40rpx] h-[40rpx]"/>
|
||||
</view>
|
||||
@ -497,6 +496,7 @@ const topStyle = computed(() => {
|
||||
|
||||
.sign-bg {
|
||||
background: linear-gradient(90deg, #FFA359 0%, #FF5426 100%), #F2F2F2;
|
||||
color: #fff !important;
|
||||
}
|
||||
|
||||
:deep(.award-popup .u-popup__content) {
|
||||
@ -511,4 +511,38 @@ const topStyle = computed(() => {
|
||||
background: linear-gradient(180deg, #FFEAE1 0%, #FFCDD0 34%, #E0052C 100%);
|
||||
border-radius: 40rpx;
|
||||
}
|
||||
.is-use {
|
||||
background-color: #F6F6F6;
|
||||
}
|
||||
.mb20{
|
||||
margin-bottom: 20rpx;
|
||||
}
|
||||
.mb30 {
|
||||
margin-bottom: 30rpx;
|
||||
}
|
||||
.mt40 {
|
||||
margin-top: 40rpx;
|
||||
}
|
||||
.filtered-date-wrap {
|
||||
width: 74rpx;
|
||||
height: 92rpx;
|
||||
background-color: #f4f4f4;
|
||||
color: var(--text-color-light6);
|
||||
box-sizing: border-box;
|
||||
padding-top: 10rpx;
|
||||
padding-bottom: 10rpx;
|
||||
border-radius: 8rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
&.week-normal{
|
||||
background-color: #f9f9f9 !important;
|
||||
border: 1rpx solid #f5f5f5;
|
||||
color: var(--text-color-light9) !important;
|
||||
}
|
||||
&.day-normal{
|
||||
background-color: #FDFDFD !important;
|
||||
border: 1rpx solid #F0F4FA;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
<view class="w-screen h-screen flex flex-col items-center" v-if="payInfo">
|
||||
<top-tabbar ref="topTabbarRef" :data="topTabbarParam" />
|
||||
<view class="flex-1 flex flex-col items-center w-full pt-[180rpx]">
|
||||
<view class="flex items-baseline" :class="{'text-[#06c05d]': payInfo.status==2, 'text-red': payInfo.status!=2}">
|
||||
<view class="flex items-baseline" :class="{'pay-status-green': payInfo.status==2, 'text-red': payInfo.status!=2}">
|
||||
<text class="nc-iconfont -mb-[4rpx] !text-[32rpx]" :class="{'nc-icon-duihaoV6mm': payInfo.status==2, 'nc-icon-tanhaoV6mm': payInfo.status!=2}"></text>
|
||||
<text class="text-[36rpx] ml-[16rpx] font-500">{{ payInfo.status == 2 ? '支付成功' : '支付失败' }}</text>
|
||||
</view>
|
||||
@ -80,4 +80,8 @@ const complete = () => {
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped></style>
|
||||
<style lang="scss" scoped>
|
||||
.pay-status-green{
|
||||
color: #06c05d;
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
<template v-if="!loading">
|
||||
<view class="pt-[20rpx] sidebar-margin">
|
||||
<view class="flex flex-col card-template">
|
||||
<view class="flex" :class="{'mb-[20rpx]': verifyInfo.value.list.length-1 != index}" v-for="(item,index) in verifyInfo.value.list" :key="index">
|
||||
<view class="flex" :class="{'mb20': verifyInfo.value.list.length-1 != index}" v-for="(item,index) in verifyInfo.value.list" :key="index">
|
||||
<image class="w-[150rpx] h-[150rpx] rounded-[var(--goods-rounded-big)]" mode="aspectFill" v-if="item.cover" :src="img(item.cover)"/>
|
||||
<image class="w-[150rpx] h-[150rpx] rounded-[var(--goods-rounded-big)]" mode="aspectFill" v-else :src="img('addon/tourism/tourism/member/hotel.png')"/>
|
||||
<view class="flex flex-col flex-1 ml-[20rpx] py-[4rpx]">
|
||||
@ -40,7 +40,7 @@
|
||||
|
||||
<view v-for="(item,index) in verifyInfo.value.content.diy" :key="index" class="card-template top-mar">
|
||||
<view class="title">{{ item.title }}</view>
|
||||
<view class="card-template-item justify-between" v-for="(subItem,subIndex) in item.list" :key="subIndex" :class="{'mt-30rpx' : subIndex == '0'}">
|
||||
<view class="card-template-item justify-between" v-for="(subItem,subIndex) in item.list" :key="subIndex" :class="{'mt30' : subIndex == '0'}">
|
||||
<text class="text-[28rpx] text-[#333]">{{ subItem.title }}</text>
|
||||
<view class="text-[28rpx] text-[#333]">{{ subItem.value }}</view>
|
||||
</view>
|
||||
@ -80,3 +80,11 @@ const getVerifyDetailFn = () => {
|
||||
})
|
||||
}
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
.mb20 {
|
||||
margin-bottom: 20rpx;
|
||||
|
||||
.mt30{
|
||||
margin-top: 30rpx;
|
||||
}}
|
||||
</style>
|
||||
@ -19,7 +19,7 @@
|
||||
</view>
|
||||
</view>
|
||||
<view class="card-template mt-[var(--top-m)] sidebar-margin">
|
||||
<view class="flex" :class="{'mb-[var(--top-m)]': (verifyInfo.value.list.length - 1 != index)}" v-for="(item,index) in verifyInfo.value.list" :key="index">
|
||||
<view class="flex" :class="{'mb-var': (verifyInfo.value.list.length - 1 != index)}" v-for="(item,index) in verifyInfo.value.list" :key="index">
|
||||
<image class="w-[150rpx] h-[150rpx] rounded-[var(--goods-rounded-big)]" mode="aspectFill" v-if="item.cover" :src="img(item.cover)"/>
|
||||
<image class="w-[150rpx] h-[150rpx] rounded-[var(--goods-rounded-big)]" mode="aspectFill" v-else :src="img('addon/tourism/tourism/member/hotel.png')"/>
|
||||
<view class="flex flex-col flex-1 ml-[20rpx] py-[4rpx]">
|
||||
@ -60,7 +60,7 @@
|
||||
</view>
|
||||
<view class="common-tab-bar w-[100%]">
|
||||
<view class="common-tab-bar-placeholder"></view>
|
||||
<view class="verify-tab-bar fixed flex-center !text-[26rpx] rounded-[50rpx] h-[80rpx] left-[20rpx] right-[20rpx] text-[#fff] font-500" :class="verifyInfo.is_can_use ? 'primary-btn-bg' : 'bg-[#ccc]'" @click="verifyFn">确定</view>
|
||||
<view class="verify-tab-bar" :class="verifyInfo.is_can_use ? 'primary-btn-bg' : 'bg-ccc'" @click="verifyFn">确定</view>
|
||||
</view>
|
||||
</template>
|
||||
<loading-page :loading="loading"></loading-page>
|
||||
@ -160,5 +160,22 @@ const verifyFn = () => {
|
||||
.verify-tab-bar{
|
||||
bottom: calc(constant(safe-area-inset-bottom) + 30rpx);
|
||||
bottom: calc(env(safe-area-inset-bottom) + 30rpx);
|
||||
position: fixed;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
font-size: 26rpx !important;
|
||||
border-radius: 50rpx;
|
||||
height: 80rpx;
|
||||
left: 20rpx;
|
||||
right: 20rpx;
|
||||
color: #fff;
|
||||
font-weight: 500;
|
||||
&.bg-ccc{
|
||||
background-color: #ccc;
|
||||
}
|
||||
}
|
||||
.mb-var{
|
||||
margin-bottom: var(--top-m);
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -3,32 +3,32 @@
|
||||
<view @touchmove.prevent.stop class="popup-common">
|
||||
<view class="title">请选择地区</view>
|
||||
<view class="flex p-[30rpx] pt-[0] text-sm font-500">
|
||||
<view v-if="areaList.province.length" class="flex-1 pr-[10rpx]" :class="{'text-[var(--primary-color)]': currSelect == 'province'}" @click="currSelect = 'province'">
|
||||
<view v-if="areaList.province.length" class="area-select-wrap" :class="{'selected': currSelect == 'province'}" @click="currSelect = 'province'">
|
||||
<view v-if="selected.province">{{ selected.province.name }}</view>
|
||||
<view v-else>请选择</view>
|
||||
</view>
|
||||
<view v-if="areaList.city.length" class="flex-1 pr-[10rpx]" :class="{'text-[var(--primary-color)]': currSelect == 'city' }" @click="currSelect = 'city'">
|
||||
<view v-if="areaList.city.length" class="area-select-wrap" :class="{'selected': currSelect == 'city' }" @click="currSelect = 'city'">
|
||||
<view v-if="selected.city">{{ selected.city.name }}</view>
|
||||
<view v-else>请选择</view>
|
||||
</view>
|
||||
<view v-if="areaList.district.length" class="flex-1 pr-[10rpx]" :class="{'text-[var(--primary-color)]': currSelect == 'district' }" @click="currSelect = 'district'">
|
||||
<view v-if="areaList.district.length" class="area-select-wrap" :class="{'selected': currSelect == 'district' }" @click="currSelect = 'district'">
|
||||
<view v-if="selected.district">{{ selected.district.name }}</view>
|
||||
<view v-else>请选择</view>
|
||||
</view>
|
||||
<view class="flex-1 pr-[10rpx]" v-else></view>
|
||||
<view class="area-select-wrap" v-else></view>
|
||||
</view>
|
||||
<scroll-view scroll-y="true" class="h-[700rpx] overflow-y-auto" :scroll-top="scrollTop" scroll-with-animation @touchmove.stop>
|
||||
<view class="flex p-[30rpx] pt-[0] text-sm font-500">
|
||||
<view v-if="areaList.province.length" class="flex-1 pr-[10rpx]" :style="{ opacity: currSelect == 'province' ? 1 : 0, pointerEvents: currSelect == 'province' ? 'auto' : 'none',height: currSelect == 'province' ? 'auto' : '0',overflow: currSelect == 'province' ? 'auto' : 'hidden' }">
|
||||
<view v-for="(item, index) in areaList.province" :key="item.id" class="h-[80rpx] flex items-center" :class="{'text-[var(--primary-color)]': selected.province && selected.province.id == item.id }" @click="handleProvinceClick(item)">{{ item.name }}</view>
|
||||
<view v-if="areaList.province.length" class="area-select-wrap" :style="{ opacity: currSelect == 'province' ? 1 : 0, pointerEvents: currSelect == 'province' ? 'auto' : 'none',height: currSelect == 'province' ? 'auto' : '0',overflow: currSelect == 'province' ? 'auto' : 'hidden' }">
|
||||
<view v-for="(item, index) in areaList.province" :key="item.id" class="h-[80rpx] flex items-center" :class="{'selected': selected.province && selected.province.id == item.id }" @click="handleProvinceClick(item)">{{ item.name }}</view>
|
||||
</view>
|
||||
<view v-if="areaList.city.length" class="flex-1 pr-[10rpx]" :style="{ opacity: currSelect == 'city' ? 1 : 0, pointerEvents: currSelect == 'city' ? 'auto' : 'none',height: currSelect == 'city' ? 'auto' : '0',overflow: currSelect == 'city' ? 'auto' : 'hidden' }">
|
||||
<view v-for="(item, index) in areaList.city" :key="item.id" class="h-[80rpx] flex items-center" :class="{'text-[var(--primary-color)]': selected.city && selected.city.id == item.id }" @click="handleCityClick(item)">{{ item.name }}</view>
|
||||
<view v-if="areaList.city.length" class="area-select-wrap" :style="{ opacity: currSelect == 'city' ? 1 : 0, pointerEvents: currSelect == 'city' ? 'auto' : 'none',height: currSelect == 'city' ? 'auto' : '0',overflow: currSelect == 'city' ? 'auto' : 'hidden' }">
|
||||
<view v-for="(item, index) in areaList.city" :key="item.id" class="h-[80rpx] flex items-center" :class="{'selected': selected.city && selected.city.id == item.id }" @click="handleCityClick(item)">{{ item.name }}</view>
|
||||
</view>
|
||||
<view v-if="areaList.district.length" class="flex-1 pr-[10rpx]" :style="{ opacity: currSelect == 'district' ? 1 : 0, pointerEvents: currSelect == 'district' ? 'auto' : 'none',height: currSelect == 'district' ? 'auto' : '0',overflow: currSelect == 'district' ? 'auto' : 'hidden' }">
|
||||
<view v-for="(item, index) in areaList.district" :key="item.id" class="h-[80rpx] flex items-center " :class="{'text-[var(--primary-color)]': selected.district && selected.district.id == item.id }" @click="selected.district = item">{{ item.name }}</view>
|
||||
<view v-if="areaList.district.length" class="area-select-wrap" :style="{ opacity: currSelect == 'district' ? 1 : 0, pointerEvents: currSelect == 'district' ? 'auto' : 'none',height: currSelect == 'district' ? 'auto' : '0',overflow: currSelect == 'district' ? 'auto' : 'hidden' }">
|
||||
<view v-for="(item, index) in areaList.district" :key="item.id" class="h-[80rpx] flex items-center " :class="{'selected': selected.district && selected.district.id == item.id }" @click="selected.district = item">{{ item.name }}</view>
|
||||
</view>
|
||||
<view class="flex-1 pr-[10rpx]" v-else></view>
|
||||
<view class="area-select-wrap" v-else></view>
|
||||
</view>
|
||||
</scroll-view>
|
||||
</view>
|
||||
@ -230,4 +230,13 @@ defineExpose({
|
||||
})
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped></style>
|
||||
<style lang="scss" scoped>
|
||||
.area-select-wrap {
|
||||
flex: 1;
|
||||
padding-right: 10rpx;
|
||||
|
||||
&.selected {
|
||||
color: var(--primary-color);
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -34,7 +34,7 @@
|
||||
</view>
|
||||
</view>
|
||||
<view class="mt-[100rpx]">
|
||||
<button class="primary-btn-bg text-[26rpx] !text-[#fff] !h-[80rpx] leading-[80rpx] rounded-full font-500" :class="{'opacity-50': loading}" :disabled="loading" @click="handleBind">{{ t('bind') }}</button>
|
||||
<button class="primary-btn-bg bind-btn" :class="{'opacity50': loading}" :disabled="loading" @click="handleBind">{{ t('bind') }}</button>
|
||||
</view>
|
||||
</u-form>
|
||||
</view>
|
||||
@ -169,4 +169,16 @@ defineExpose({
|
||||
:deep(.u-checkbox) {
|
||||
margin: 0 !important;
|
||||
}
|
||||
.bind-btn {
|
||||
font-size: 26rpx;
|
||||
color: #fff !important;
|
||||
height: 80rpx !important;
|
||||
line-height: 80rpx;
|
||||
border-radius: 999rpx;
|
||||
font-weight: 500;
|
||||
|
||||
&.opacity50 {
|
||||
opacity: 0.5;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -5,18 +5,18 @@
|
||||
<view class="absolute top-[36rpx] right-[36rpx] text-[24rpx] text-[var(--text-color-light6)] leading-[30rpx] z-10" @click="clearDate">清除</view>
|
||||
<view class="px-[var(--popup-sidebar-m)] mb-[20rpx] mt-[10rpx]">
|
||||
<view class="flex items-center justify-between mb-[30rpx]">
|
||||
<view class="w-[160rpx] h-[66rpx] box-border flex-center rounded-[33rpx] bg-[var(--temp-bg)] text-center text-[26rpx] text-[var(--text-color-light6)] border-[2rpx] border-solid border-[var(--temp-bg)]"
|
||||
<view class="cur-select-date-wrap"
|
||||
v-for="(item,index) in curselectDate" :key="'a'+index"
|
||||
:class="{'text-primary !border-[var(--primary-color)] !bg-[var(--primary-color-light)]': currentValue.type == item.type}"
|
||||
:class="{'text-primary current': currentValue.type == item.type}"
|
||||
@click="loadDateFn(item)">{{ item.name }}</view>
|
||||
</view>
|
||||
<view class="flex items-center justify-between">
|
||||
<view class="w-[316rpx] h-[66rpx] box-border leading-[62rpx] rounded-[33rpx] bg-[var(--temp-bg)] text-center text-[26rpx] text-[var(--text-color-light6)] border-[2rpx] border-solid border-[var(--temp-bg)]"
|
||||
:class="{'text-primary !border-[var(--primary-color)] !bg-[var(--primary-color-light)]': currentValue.type == 'first'}"
|
||||
<view class="now-date-wrap"
|
||||
:class="{'text-primary current': currentValue.type == 'first'}"
|
||||
@click="currentValue.type = 'first'">{{ dateList.nowDate[0].substr(0, 10) }}</view>
|
||||
<view class="nc-iconfont nc-icon-jianV6xx"></view>
|
||||
<view class="w-[316rpx] h-[66rpx] box-border leading-[62rpx] rounded-[33rpx] bg-[var(--temp-bg)] text-center text-[26rpx] text-[var(--text-color-light6)] border-[2rpx] border-solid border-[var(--temp-bg)]"
|
||||
:class="{'text-primary !border-[var(--primary-color)] !bg-[var(--primary-color-light)]': currentValue.type == 'second'}"
|
||||
<view class="now-date-wrap"
|
||||
:class="{'text-primary current': currentValue.type == 'second'}"
|
||||
@click="currentValue.type = 'second'">{{ dateList.nowDate[1].substr(0, 10) }}</view>
|
||||
</view>
|
||||
</view>
|
||||
@ -234,4 +234,41 @@ defineExpose({
|
||||
z-index: 12;
|
||||
}
|
||||
}
|
||||
.popup-common {
|
||||
.cur-select-date-wrap{
|
||||
width: 160rpx;
|
||||
height: 66rpx;
|
||||
box-sizing: border-box;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
border-radius: 33rpx;
|
||||
background-color: var(--temp-bg);
|
||||
text-align: center;
|
||||
font-size: 26rpx;
|
||||
color: var(--text-color-light6);
|
||||
border-width: 2rpx;
|
||||
border-style: solid;
|
||||
border-color: var(--temp-bg);
|
||||
}
|
||||
.current{
|
||||
color: var(--primary-color);
|
||||
border-color: var(--primary-color) !important;
|
||||
background-color: var(--primary-color-light) !important;
|
||||
}
|
||||
.now-date-wrap{
|
||||
width: 316rpx;
|
||||
height: 66rpx;
|
||||
box-sizing: border-box;
|
||||
line-height: 62rpx;
|
||||
border-radius: 33rpx;
|
||||
background-color: var(--temp-bg);
|
||||
text-align: center;
|
||||
font-size: 26rpx;
|
||||
color: var(--text-color-light6);
|
||||
border-width: 2rpx;
|
||||
border-style: solid;
|
||||
border-color: var(--temp-bg);
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<view class="text-[26rpx]" :class="{'text-primary': sendSms.canGetCode.value, 'text-gray-300': !sendSms.canGetCode.value}" @click="handleSend">{{ sendSms.tips.value }}</view>
|
||||
<view class="fs-26" :class="{'text-primary': sendSms.canGetCode.value, 'text-gray-300': !sendSms.canGetCode.value}" @click="handleSend">{{ sendSms.tips.value }}</view>
|
||||
<u-code :seconds="sendSms.seconds" :change-text="sendSms.changeText" ref="smsRef" @change="sendSms.codeChange"></u-code>
|
||||
<u-modal :show="show" :title="t('captchaTitle')" :confirm-text="t('confirm')" :cancel-text="t('cancel')" :show-cancel-button="true" @cancel="show = false" @confirm="handleConfirm" confirmColor="var(--primary-color)">
|
||||
<view class="flex mt-[20rpx]">
|
||||
@ -88,5 +88,8 @@ const handleConfirm = async() => {
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
<style lang="scss" scoped>
|
||||
.fs-26{
|
||||
font-size: 26rpx;
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -3,11 +3,11 @@
|
||||
<view class="u-navbar z-100" :class="{'fixed': props.scrollBool != -1, 'absolute': props.scrollBool == -1}" :style="{ backgroundColor: bgColor}">
|
||||
<view class="navbar-inner" :style="{ width: '100%', height: placeholderHeight + 'px' }">
|
||||
<view v-if="topStatusBarData.style == 'style-1'" class="content-wrap" :class="[topStatusBarData.textAlign]" :style="navbarInnerStyle">
|
||||
<view v-if="isBackShow" class="back-wrap -ml-[16rpx] text-[26px] nc-iconfont nc-icon-zuoV6xx" :class="{'!text-transparent': !isBackShow}" :style="{ color: titleTextColor }" @tap="goBack"></view>
|
||||
<view v-if="isBackShow" class="back-wrap nc-iconfont nc-icon-zuoV6xx" :class="{'!text-transparent': !isBackShow}" :style="{ color: titleTextColor }" @tap="goBack"></view>
|
||||
<view class="title-wrap" :style="styleOneFontSize">{{ data.title }}</view>
|
||||
</view>
|
||||
<view v-if="topStatusBarData.style == 'style-2'" class="content-wrap" :style="navbarInnerStyle" @click="diyStore.toRedirect(topStatusBarData.link)">
|
||||
<view class="back-wrap -ml-[16rpx] text-[26px] nc-iconfont nc-icon-zuoV6xx" :style="{ color: titleTextColor }" :class="{'!text-transparent': !isBackShow}" @tap="goBack"></view>
|
||||
<view class="back-wrap nc-iconfont nc-icon-zuoV6xx" :style="{ color: titleTextColor }" :class="{'!text-transparent': !isBackShow}" @tap="goBack"></view>
|
||||
<view class="title-wrap" :style="{ color: topStatusBarData.textColor }">
|
||||
<view>
|
||||
<image :src="img(topStatusBarData.imgUrl)" mode="heightFix"/>
|
||||
@ -17,7 +17,7 @@
|
||||
</view>
|
||||
|
||||
<view v-if="topStatusBarData.style == 'style-3'" :style="navbarInnerStyle" class="content-wrap">
|
||||
<view v-if="isBackShow" class="back-wrap -ml-[16rpx] text-[26px] nc-iconfont nc-icon-zuoV6xx" :style="{ color: titleTextColor }" @tap="goBack" :class="{'!text-transparent': !isBackShow}"></view>
|
||||
<view v-if="isBackShow" class="back-wrap nc-iconfont nc-icon-zuoV6xx" :style="{ color: titleTextColor }" @tap="goBack" :class="{'!text-transparent': !isBackShow}"></view>
|
||||
<view class="title-wrap" @click="diyStore.toRedirect(topStatusBarData.link)">
|
||||
<image :src="img(topStatusBarData.imgUrl)" mode="heightFix"/>
|
||||
</view>
|
||||
@ -29,7 +29,7 @@
|
||||
</view>
|
||||
|
||||
<view v-if="topStatusBarData.style == 'style-4'" :style="navbarInnerStyle" class="content-wrap">
|
||||
<view class="back-wrap -ml-[16rpx] text-[26px] nc-iconfont nc-icon-zuoV6xx" :style="{ color: titleTextColor }" @tap="goBack" :class="{'!text-transparent': !isBackShow}"></view>
|
||||
<view class="back-wrap nc-iconfont nc-icon-zuoV6xx" :style="{ color: titleTextColor }" @tap="goBack" :class="{'!text-transparent': !isBackShow}"></view>
|
||||
<text class="nc-iconfont nc-icon-dizhiguanliV6xx text-[28rpx]" :style="{ color: topStatusBarData.textColor }"></text>
|
||||
<view class="title-wrap" @click.stop="locationVal.reposition()" :style="{ color: topStatusBarData.textColor }" v-if="systemStore.diyAddressInfo">{{ systemStore.diyAddressInfo.community }}</view>
|
||||
<view class="title-wrap" @click.stop="locationVal.reposition()" :style="{ color: topStatusBarData.textColor }" v-else>{{ systemStore.defaultPositionAddress }}</view>
|
||||
@ -312,6 +312,8 @@ defineExpose({
|
||||
.back-wrap {
|
||||
padding-right: 10rpx;
|
||||
line-height: 1;
|
||||
margin-left: -16rpx;
|
||||
font-size: 26rpx;
|
||||
|
||||
.iconfont {
|
||||
font-size: 40rpx;
|
||||
|
||||
@ -25,7 +25,7 @@
|
||||
<!-- 下载进度条 -->
|
||||
<view class="mt-[30rpx] mx-[10rpx]" v-if="downloading">
|
||||
<view class="w-full h-[10rpx] bg-[#E0E0E0] rounded-full overflow-hidden">
|
||||
<view class="h-full bg-[#F11C0C] rounded-full" :style="{ width: downloadProgress + '%' }" :class="downloading ? 'downloading-animation' : ''"></view>
|
||||
<view class="download-progress" :style="{ width: downloadProgress + '%' }" :class="downloading ? 'downloading-animation' : ''"></view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
@ -284,4 +284,9 @@ defineExpose({
|
||||
white-space: pre-line;
|
||||
line-height: 1.6;
|
||||
}
|
||||
.download-progress {
|
||||
height: 100%;
|
||||
background-color: #F11C0C;
|
||||
border-radius: 999rpx;
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -1,7 +1,6 @@
|
||||
import { onLoad } from '@dcloudio/uni-app';
|
||||
import { isWeixinBrowser } from '@/utils/common';
|
||||
import { isWeixinBrowser,openMapSelector } from '@/utils/common';
|
||||
import { getAddressByLatlng } from '@/app/api/system';
|
||||
import manifestJson from '@/manifest.json';
|
||||
import wechat from '@/utils/wechat'
|
||||
import useSystemStore from '@/stores/system';
|
||||
|
||||
@ -177,7 +176,11 @@ export function useLocation(isOpenLocation: any) {
|
||||
// #ifdef H5
|
||||
uni.setStorageSync('manually_select_location_from_map', true)
|
||||
let backurl = location.origin + location.pathname;
|
||||
window.location.href = 'https://apis.map.qq.com/tools/locpicker?search=1&type=0&backurl=' + encodeURIComponent(backurl) + '&key=' + manifestJson.h5.sdkConfigs.maps.qqmap.key + '&referer=myapp';
|
||||
let params = ''
|
||||
if (latitude && longitude) {
|
||||
params = `latng=${ latitude },${ longitude }`
|
||||
}
|
||||
openMapSelector(backurl, params);
|
||||
// #endif
|
||||
}
|
||||
|
||||
|
||||
@ -42,187 +42,5 @@
|
||||
"pages.verify.record": "核销记录",
|
||||
"pages.friendspay.share": "找朋友帮忙付",
|
||||
"pages.friendspay.money": "",
|
||||
"pages.webview.index": "",
|
||||
"tourism.pages.way.list": "线路列表",
|
||||
"tourism.pages.way.detail": "线路详情",
|
||||
"tourism.pages.way.order": "线路订单",
|
||||
"tourism.pages.hotel.list": "酒店列表",
|
||||
"tourism.pages.hotel.detail": "酒店详情",
|
||||
"tourism.pages.hotel.order": "酒店订单",
|
||||
"tourism.pages.scenic.list": "景点列表",
|
||||
"tourism.pages.scenic.detail": "景点详情",
|
||||
"tourism.pages.scenic.order": "景点订单",
|
||||
"tourism.pages.order.list": "旅游订单",
|
||||
"tourism.pages.order.detail": "订单详情",
|
||||
"tourism.pages.verify.index": "核销",
|
||||
"tourism.pages.verify.record": "核销记录",
|
||||
"tourism.pages.verify.detail": "核销详情",
|
||||
"vipcard.pages.verify.index": "核销",
|
||||
"vipcard.pages.verify.record": "核销记录",
|
||||
"vipcard.pages.verify.detail": "核销详情",
|
||||
"vipcard.pages.order.payment": "订单结算",
|
||||
"vipcard.pages.order.list": "订单列表",
|
||||
"vipcard.pages.order.my_reserved": "我的预约",
|
||||
"vipcard.pages.order.my_reserved_detail": "我的预约详情",
|
||||
"vipcard.pages.order.my_card": "我的卡项",
|
||||
"vipcard.pages.order.detail": "订单详情",
|
||||
"vipcard.pages.service.list": "项目列表",
|
||||
"vipcard.pages.card.list": "卡项列表",
|
||||
"vipcard.pages.card.detail": "卡项详情",
|
||||
"recharge.pages.recharge": "充值",
|
||||
"recharge.pages.recharge_record": "充值记录",
|
||||
"recharge.pages.recharge_record_detail": "充值记录详情",
|
||||
"shop.pages.goods.search": "搜索",
|
||||
"shop.pages.goods.cart": "购物车",
|
||||
"shop.pages.goods.collect": "商品收藏",
|
||||
"shop.pages.goods.browse": "我的足迹",
|
||||
"shop.pages.goods.category": "商品分类",
|
||||
"shop.pages.goods.detail": "商品详情",
|
||||
"shop.pages.goods.list": "商品列表",
|
||||
"shop.pages.goods.rank": "排行榜",
|
||||
"shop.pages.member.index": "个人中心",
|
||||
"shop.pages.member.my_coupon": "我的优惠券",
|
||||
"shop.pages.order.list": "订单列表",
|
||||
"shop.pages.order.detail": "订单详情",
|
||||
"shop.pages.order.payment": "待付款订单",
|
||||
"shop.pages.evaluate.order_evaluate": "商品评价",
|
||||
"shop.pages.evaluate.order_evaluate_view": "商品评价",
|
||||
"shop.pages.evaluate.list": "评价列表",
|
||||
"shop.pages.coupon.list": "优惠券列表",
|
||||
"shop.pages.coupon.detail": "优惠券详情",
|
||||
"shop.pages.discount.list": "限时折扣",
|
||||
"shop.pages.refund.list": "退款列表",
|
||||
"shop.pages.refund.detail": "退款详情",
|
||||
"shop.pages.refund.apply": "申请退款",
|
||||
"shop.pages.refund.edit_apply": "编辑退款信息",
|
||||
"shop.pages.refund.log": "协商记录",
|
||||
"shop.pages.point.index": "积分商城",
|
||||
"shop.pages.point.list": "积分商品列表",
|
||||
"shop.pages.point.detail": "积分商品详情",
|
||||
"shop.pages.point.payment": "待付款订单",
|
||||
"shop.pages.point.order_list": "积分兑换记录",
|
||||
"shop.pages.newcomer.list": "新人专享",
|
||||
"shop.pages.invoice.list": "发票管理",
|
||||
"shop.pages.invoice.detail": "发票详情",
|
||||
"shop.pages.invoice.invoice": "申请发票",
|
||||
"shop.pages.invoice.invoice_edit": "编辑发票信息",
|
||||
"shop.pages.invoice.invoice_order": "发票订单",
|
||||
"cms.pages.list": "资讯中心",
|
||||
"cms.pages.detail": "文章详情",
|
||||
"shop_fenxiao.pages.index": "分销中心",
|
||||
"shop_fenxiao.pages.zone": "分销专区",
|
||||
"shop_fenxiao.pages.level": "分销商等级",
|
||||
"shop_fenxiao.pages.child_fenxiao": "分销商",
|
||||
"shop_fenxiao.pages.goods": "分销商品",
|
||||
"shop_fenxiao.pages.team": "我的团队",
|
||||
"shop_fenxiao.pages.ranking_list": "排行榜",
|
||||
"shop_fenxiao.pages.agent_list": "渠道代理",
|
||||
"shop_fenxiao.pages.bill": "账单",
|
||||
"shop_fenxiao.pages.order": "分销订单",
|
||||
"shop_fenxiao.pages.order_detail": "订单详情",
|
||||
"shop_fenxiao.pages.apply": "分销商申请",
|
||||
"shop_fenxiao.pages.task_rewards": "任务奖励",
|
||||
"shop_fenxiao.pages.task_detail": "任务奖励详情",
|
||||
"shop_fenxiao.pages.task_rewards_detail": "任务奖励明细",
|
||||
"shop_fenxiao.pages.sale": "销售奖励",
|
||||
"shop_fenxiao.pages.sale_detail": "销售奖励详情",
|
||||
"shop_fenxiao.pages.sale_ranking": "销售奖励排行榜",
|
||||
"shop_fenxiao.pages.promote_code": "分享海报",
|
||||
"shop_giftcard.pages.index": "礼品卡首页",
|
||||
"shop_giftcard.pages.list": "礼品卡列表",
|
||||
"shop_giftcard.pages.detail": "加载中",
|
||||
"shop_giftcard.pages.order_list": "礼品卡订单列表",
|
||||
"shop_giftcard.pages.order_detail": "礼品卡订单详情",
|
||||
"shop_giftcard.pages.member": "我的",
|
||||
"shop_giftcard.pages.my_card_list": "我的卡包",
|
||||
"shop_giftcard.pages.card_bag": "我的卡包",
|
||||
"shop_giftcard.pages.activate": "卡密激活",
|
||||
"shop_giftcard.pages.receive_list": "收到的礼品卡",
|
||||
"shop_giftcard.pages.give_list": "送出的礼品卡",
|
||||
"shop_giftcard.pages.give_detail": "送出礼品卡详情",
|
||||
"shop_giftcard.pages.give": "礼品卡赠送",
|
||||
"shop_giftcard.pages.receive_info": "领取礼品卡",
|
||||
"shop_giftcard.pages.use_card": "礼品卡使用",
|
||||
"shop_giftcard.pages.use_goods_select": "选择兑换商品",
|
||||
"shop_giftcard.pages.payment": "待付款订单",
|
||||
"shop.pages.pay.index": "待支付",
|
||||
"shop.pages.pay.result": "",
|
||||
"shop_fenxiao.pages.promote": "邀请好友",
|
||||
"shop_fenxiao.pages.team_dividend": "团队分红",
|
||||
"o2o.pages.address.edit": "编辑地址",
|
||||
"o2o.pages.address.index": "地址",
|
||||
"o2o.pages.goods.category": "项目分类",
|
||||
"o2o.pages.goods.detail": "项目详情",
|
||||
"o2o.pages.goods.list": "项目列表",
|
||||
"o2o.pages.index": "首页",
|
||||
"o2o.pages.master.statistics.index": "技师中心",
|
||||
"o2o.pages.master.task.add": "师傅报单",
|
||||
"o2o.pages.master.task.detail": "任务详情",
|
||||
"o2o.pages.master.task.list": "任务列表",
|
||||
"o2o.pages.master.task.refund": "查看退款",
|
||||
"o2o.pages.master.task.show": "报单详情",
|
||||
"o2o.pages.member.index": "个人中心",
|
||||
"o2o.pages.order.detail": "订单详情",
|
||||
"o2o.pages.order.list": "订单列表",
|
||||
"o2o.pages.order.payment": "订单结算",
|
||||
"o2o.pages.refund.apply": "申请退款",
|
||||
"o2o.pages.refund.detail": "退款详情",
|
||||
"o2o.pages.refund.list": "退款列表",
|
||||
"o2o.pages.refund.log": "协商记录",
|
||||
"o2o.pages.technician.detail": "技师详情",
|
||||
"o2o.pages.technician.list": "技师列表",
|
||||
"shop_giftcard.pages.member_give_info": "送出礼品卡详情",
|
||||
"shop_giftcard.pages.give_info": "领取礼品卡",
|
||||
"sow_community.pages.index": "种草社区",
|
||||
"sow_community.pages.search": "搜索",
|
||||
"sow_community.pages.image.detail": "内容详情",
|
||||
"sow_community.pages.video.detail": "内容详情",
|
||||
"sow_community.pages.member": "个人主页",
|
||||
"sow_community.pages.create": "发布内容",
|
||||
"sow_community.pages.follow": "关注列表",
|
||||
"sow_community.pages.sow_show": "种草秀",
|
||||
"sow_community.pages.topic_list": "话题列表",
|
||||
"template_flower_industry.pages.goods.list": "商品列表",
|
||||
"seckill.pages.goods.detail": "商品详情",
|
||||
"seckill.pages.goods.list": "商品列表",
|
||||
"seckill.pages.member.index": "个人中心",
|
||||
"seckill.pages.order.list": "订单列表",
|
||||
"seckill.pages.order.detail": "订单详情",
|
||||
"seckill.pages.order.payment": "待付款订单",
|
||||
"seckill.pages.refund.list": "退款列表",
|
||||
"seckill.pages.refund.detail": "退款详情",
|
||||
"seckill.pages.refund.apply": "申请退款",
|
||||
"seckill.pages.refund.edit_apply": "编辑退款信息",
|
||||
"seckill.pages.refund.log": "协商记录",
|
||||
"pintuan.pages.index": "拼团首页",
|
||||
"pintuan.pages.goods.list": "商品列表",
|
||||
"pintuan.pages.goods.detail": "商品详情",
|
||||
"pintuan.pages.my_spell": "我的拼团",
|
||||
"pintuan.pages.member.index": "个人中心",
|
||||
"pintuan.pages.share": "拼团分享页面",
|
||||
"pintuan.pages.order.payment": "拼团待付款订单",
|
||||
"pintuan.pages.order.list": "拼团订单列表",
|
||||
"pintuan.pages.order.detail": "拼团订单详情",
|
||||
"pintuan.pages.refund.apply": "申请退款",
|
||||
"pintuan.pages.refund.detail": "退款详情",
|
||||
"pintuan.pages.refund.edit_apply": "编辑退款信息",
|
||||
"pintuan.pages.refund.list": "退款列表",
|
||||
"pintuan.pages.refund.log": "退款协商记录",
|
||||
"pintuan.pages.order.card_record": "核销记录",
|
||||
"friend_help.pages.index": "好友助力首页",
|
||||
"friend_help.pages.goods.list": "商品列表",
|
||||
"friend_help.pages.goods.detail": "商品详情",
|
||||
"friend_help.pages.member.index": "个人中心",
|
||||
"friend_help.pages.order.payment": "好友助力待付款订单",
|
||||
"friend_help.pages.order.list": "好友助力订单列表",
|
||||
"friend_help.pages.order.detail": "好友助力订单详情",
|
||||
"friend_help.pages.refund.apply": "申请退款",
|
||||
"friend_help.pages.refund.detail": "退款详情",
|
||||
"friend_help.pages.refund.edit_apply": "编辑退款信息",
|
||||
"friend_help.pages.refund.list": "退款列表",
|
||||
"friend_help.pages.refund.log": "退款协商记录",
|
||||
"friend_help.pages.order.card_record": "核销记录",
|
||||
"friend_help.pages.my_help": "我的助力列表",
|
||||
"friend_help.pages.goods.share": "好友助力",
|
||||
"friend_help.pages.goods.bargain": "好友砍价"
|
||||
"pages.webview.index": ""
|
||||
}
|
||||
@ -1,162 +1,163 @@
|
||||
{
|
||||
"requestFail": "请求失败",
|
||||
"notInDomainList": "不在request 合法域名列表中",
|
||||
"baseUrlError": " 接口请求错误,请检查VITE_APP_BASE_URL参数配置或者伪静态配置",
|
||||
"currency": "¥",
|
||||
"getSmsCode": "获取验证码",
|
||||
"smsCodeChangeText": "秒后重新获取",
|
||||
"captchaTitle": "请完成验证",
|
||||
"confirm": "确认",
|
||||
"cancel": "取消",
|
||||
"save": "保存",
|
||||
"delete": "删除",
|
||||
"captchaPlaceholder": "请输入验证码",
|
||||
"mobilePlaceholder": "请输入手机号码",
|
||||
"mobileError": "请输入正确的手机号",
|
||||
"codePlaceholder": "请输入手机验证码",
|
||||
"memberCenter": "个人中心",
|
||||
"userAgreement": "用户协议",
|
||||
"and": "和",
|
||||
"privacyAgreement": "隐私协议",
|
||||
"isAgreeTips": "请先阅读并同意协议",
|
||||
"nickname": "昵称",
|
||||
"nicknamePlaceholder": "请输入昵称",
|
||||
"headimg": "头像",
|
||||
"headimgPlaceholder": "请设置头像",
|
||||
"getAvatarNickname": "获取您的昵称头像",
|
||||
"getAvatarNicknameTips": "获取用户头像、昵称完善个人资料,主要用于向用户提供具有辨识度的用户中心界面",
|
||||
"mobile": "手机号",
|
||||
"getMobile": "获取手机号",
|
||||
"mobileTips": "请获取手机号",
|
||||
"point": "积分",
|
||||
"balance": "余额",
|
||||
"login": "登录",
|
||||
"bind": "绑定",
|
||||
"binding": "绑定中",
|
||||
"bindMobile": "绑定手机号",
|
||||
"agreeTips": "我已阅读并同意",
|
||||
"pleaseAgree": "请勾选已阅读并同意",
|
||||
"weixinUserAuth": "一键绑定",
|
||||
"mobileQuickLogin": "手机号快捷登录",
|
||||
"register": "注册",
|
||||
"complete": "完成",
|
||||
"close": "关闭",
|
||||
"diyForm": {
|
||||
"back": "返回",
|
||||
"hidden": "已隐藏",
|
||||
"view": "查看",
|
||||
"know": "我知道了",
|
||||
"prompt": "提示",
|
||||
"call": "拨打",
|
||||
"copy": "复制号码",
|
||||
"uploadTips": "请上传图片",
|
||||
"tips": "仅限本人和管理员能查看完整号码:",
|
||||
"viewFillingDetails": "查看填写详情",
|
||||
"detailInformation": "详细信息"
|
||||
},
|
||||
"pay": {
|
||||
"orderInfo": "订单信息",
|
||||
"confirmPay": "确认支付",
|
||||
"payTitle": "确认付款",
|
||||
"notHavePayType": "没有可用的支付方式",
|
||||
"notObtainedInfo": "未获取到支付信息",
|
||||
"paymentDocuments": "该支付单据",
|
||||
"paySuccess": "支付成功",
|
||||
"payFail": "支付失败",
|
||||
"completePay": "已完成支付",
|
||||
"incompletePay": "未完成支付",
|
||||
"getting": "获取支付结果中"
|
||||
},
|
||||
"myBalance": "我的余额",
|
||||
"myPoint": "我的积分",
|
||||
"customerService": "联系客服",
|
||||
"siteClose": "站点已关闭",
|
||||
"noSite": "站点不存在",
|
||||
"scenic": "景点",
|
||||
"seeMore": "查看更多",
|
||||
"way": "线路",
|
||||
"hotel": "酒店",
|
||||
"rise": "起",
|
||||
"cardReserve": "项目预约",
|
||||
"card": "办理次卡",
|
||||
"memberName": "会员名称",
|
||||
"memberCode": "会员码",
|
||||
"reserve": "预约",
|
||||
"reserveSuccess": "预约成功",
|
||||
"cardLink": "次卡",
|
||||
"myLink": "我的",
|
||||
"reserveBtn": "去抢购",
|
||||
"cardBtn": "办理",
|
||||
"soldOut": "已售",
|
||||
"unpaidOrder": "待支付",
|
||||
"waitingOrder": "待使用",
|
||||
"remainOrder": "已完成",
|
||||
"allOrder": "全部订单",
|
||||
"myOrder": "我的订单",
|
||||
"orderNo": "订单号",
|
||||
"actualPayment": "实付款",
|
||||
"orderClose": "关闭订单",
|
||||
"orderFinish": "确认收货",
|
||||
"orderDetail": "详情",
|
||||
"wxPrivacyPopup": {
|
||||
"title": "用户隐私保护提示",
|
||||
"descBefore": "感谢您使用本小程序,在使用前您应当阅读并同意",
|
||||
"descAfter": "当点击同意并继续时,即表示您已理解并同意该条款内容,该条款将对您产生法律约束力;如您不同意,将无法继续使用小程序相关功能。",
|
||||
"disagree": "不同意",
|
||||
"agree": "同意并继续",
|
||||
"contractName": "用户隐私保护指引",
|
||||
"disagreeDesc": "未同意隐私协议,无法使用相关功能"
|
||||
},
|
||||
"starLevel": "星级",
|
||||
"star": "星",
|
||||
"emptyAddress": "暂无收货地址,请先创建地址",
|
||||
"addAddress": "新增收货地址",
|
||||
"selectAddress": "选择地址",
|
||||
"coupon": "优惠劵",
|
||||
"tourism.orderNo": "订单号",
|
||||
"tourism.rise": "起",
|
||||
"tourism.starLevel": "星级",
|
||||
"tourism.star": "星",
|
||||
"vipcard.cardReserve": "项目预约",
|
||||
"vipcard.card": "办理次卡",
|
||||
"vipcard.reserveSuccess": "预约成功",
|
||||
"vipcard.reserve": "预约",
|
||||
"vipcard.cardLink": "次卡",
|
||||
"vipcard.reserveBtn": "去抢购",
|
||||
"vipcard.cardBtn": "办理",
|
||||
"vipcard.soldOut": "已售",
|
||||
"vipcard.orderNo": "订单号",
|
||||
"vipcard.myLink": "我的",
|
||||
"vipcard.memberCode": "会员码",
|
||||
"recharge.orderNo": "订单号",
|
||||
"shop.orderNo": "订单号",
|
||||
"shop.actualPayment": "实付款",
|
||||
"shop.orderClose": "关闭订单",
|
||||
"shop.orderFinish": "确认收货",
|
||||
"shop.coupon": "优惠劵",
|
||||
"o2o.way": "线路",
|
||||
"o2o.hotel": "酒店",
|
||||
"o2o.scenic": "景点",
|
||||
"o2o.reserveBtn": "去抢购",
|
||||
"o2o.noHomeAddress": "没有更多内容啦~",
|
||||
"o2o.soldOut": "已售",
|
||||
"o2o.orderNo": "订单号",
|
||||
"o2o.actualPayment": "实付款",
|
||||
"o2o.orderDetail": "详情",
|
||||
"notHave": "无",
|
||||
"tourism.scenic": "景点",
|
||||
"tourism.way": "线路",
|
||||
"tourism.hotel": "酒店",
|
||||
"tourism.seeMore": "查看更多",
|
||||
"vipcard.seeMore": "查看更多",
|
||||
"shop.emptyAddress": "暂无收货地址,请先创建地址",
|
||||
"shop.addAddress": "新增收货地址",
|
||||
"shop.selectAddress": "选择地址",
|
||||
"shop_fenxiao.orderNo": "订单号",
|
||||
"shop_giftcard.actualPayment": "实付款",
|
||||
"shop_giftcard.orderClose": "关闭订单",
|
||||
"shop_giftcard.orderNo": "订单号",
|
||||
"notHave": "无",
|
||||
"onceCard": "次卡",
|
||||
"cardUnit": "张"
|
||||
"requestFail": "请求失败",
|
||||
"notInDomainList": "不在request 合法域名列表中",
|
||||
"baseUrlError": " 接口请求错误,请检查VITE_APP_BASE_URL参数配置或者伪静态配置",
|
||||
"currency": "¥",
|
||||
"getSmsCode": "获取验证码",
|
||||
"smsCodeChangeText": "秒后重新获取",
|
||||
"captchaTitle": "请完成验证",
|
||||
"confirm": "确认",
|
||||
"cancel": "取消",
|
||||
"save": "保存",
|
||||
"delete": "删除",
|
||||
"captchaPlaceholder": "请输入验证码",
|
||||
"mobilePlaceholder": "请输入手机号码",
|
||||
"mobileError": "请输入正确的手机号",
|
||||
"codePlaceholder": "请输入手机验证码",
|
||||
"memberCenter": "个人中心",
|
||||
"userAgreement": "用户协议",
|
||||
"and": "和",
|
||||
"privacyAgreement": "隐私协议",
|
||||
"isAgreeTips": "请先阅读并同意协议",
|
||||
"nickname": "昵称",
|
||||
"nicknamePlaceholder": "请输入昵称",
|
||||
"headimg": "头像",
|
||||
"headimgPlaceholder": "请设置头像",
|
||||
"getAvatarNickname": "获取您的昵称头像",
|
||||
"getAvatarNicknameTips": "获取用户头像、昵称完善个人资料,主要用于向用户提供具有辨识度的用户中心界面",
|
||||
"mobile": "手机号",
|
||||
"getMobile": "获取手机号",
|
||||
"mobileTips": "请获取手机号",
|
||||
"point": "积分",
|
||||
"balance": "余额",
|
||||
"login": "登录",
|
||||
"bind": "绑定",
|
||||
"binding": "绑定中",
|
||||
"bindMobile": "绑定手机号",
|
||||
"agreeTips": "我已阅读并同意",
|
||||
"pleaseAgree": "请勾选已阅读并同意",
|
||||
"weixinUserAuth": "一键绑定",
|
||||
"mobileQuickLogin": "手机号快捷登录",
|
||||
"register": "注册",
|
||||
"complete": "完成",
|
||||
"close": "关闭",
|
||||
"diyForm": {
|
||||
"back": "返回",
|
||||
"hidden": "已隐藏",
|
||||
"view": "查看",
|
||||
"know": "我知道了",
|
||||
"prompt": "提示",
|
||||
"call": "拨打",
|
||||
"copy": "复制号码",
|
||||
"uploadTips": "请上传图片",
|
||||
"tips": "仅限本人和管理员能查看完整号码:",
|
||||
"viewFillingDetails": "查看填写详情",
|
||||
"detailInformation": "详细信息"
|
||||
},
|
||||
"pay": {
|
||||
"orderInfo": "订单信息",
|
||||
"confirmPay": "确认支付",
|
||||
"payTitle": "确认付款",
|
||||
"notHavePayType": "没有可用的支付方式",
|
||||
"notObtainedInfo": "未获取到支付信息",
|
||||
"paymentDocuments": "该支付单据",
|
||||
"paySuccess": "支付成功",
|
||||
"payFail": "支付失败",
|
||||
"completePay": "已完成支付",
|
||||
"incompletePay": "未完成支付",
|
||||
"getting": "获取支付结果中"
|
||||
},
|
||||
"myBalance": "我的余额",
|
||||
"myPoint": "我的积分",
|
||||
"customerService": "联系客服",
|
||||
"siteClose": "站点已关闭",
|
||||
"noSite": "站点不存在",
|
||||
"scenic": "景点",
|
||||
"seeMore": "查看更多",
|
||||
"way": "线路",
|
||||
"hotel": "酒店",
|
||||
"rise": "起",
|
||||
"cardReserve": "项目预约",
|
||||
"card": "办理次卡",
|
||||
"memberName": "会员名称",
|
||||
"memberCode": "会员码",
|
||||
"reserve": "预约",
|
||||
"reserveSuccess": "预约成功",
|
||||
"cardLink": "次卡",
|
||||
"myLink": "我的",
|
||||
"reserveBtn": "去抢购",
|
||||
"cardBtn": "办理",
|
||||
"soldOut": "已售",
|
||||
"unpaidOrder": "待支付",
|
||||
"waitingOrder": "待使用",
|
||||
"remainOrder": "已完成",
|
||||
"allOrder": "全部订单",
|
||||
"myOrder": "我的订单",
|
||||
"orderNo": "订单号",
|
||||
"actualPayment": "实付款",
|
||||
"orderClose": "关闭订单",
|
||||
"orderDelete": "删除订单",
|
||||
"orderFinish": "确认收货",
|
||||
"orderDetail": "详情",
|
||||
"wxPrivacyPopup": {
|
||||
"title": "用户隐私保护提示",
|
||||
"descBefore": "感谢您使用本小程序,在使用前您应当阅读并同意",
|
||||
"descAfter": "当点击同意并继续时,即表示您已理解并同意该条款内容,该条款将对您产生法律约束力;如您不同意,将无法继续使用小程序相关功能。",
|
||||
"disagree": "不同意",
|
||||
"agree": "同意并继续",
|
||||
"contractName": "用户隐私保护指引",
|
||||
"disagreeDesc": "未同意隐私协议,无法使用相关功能"
|
||||
},
|
||||
"starLevel": "星级",
|
||||
"star": "星",
|
||||
"emptyAddress": "暂无收货地址,请先创建地址",
|
||||
"addAddress": "新增收货地址",
|
||||
"selectAddress": "选择地址",
|
||||
"coupon": "优惠劵",
|
||||
"tourism.orderNo": "订单号",
|
||||
"tourism.rise": "起",
|
||||
"tourism.starLevel": "星级",
|
||||
"tourism.star": "星",
|
||||
"vipcard.cardReserve": "项目预约",
|
||||
"vipcard.card": "办理次卡",
|
||||
"vipcard.reserveSuccess": "预约成功",
|
||||
"vipcard.reserve": "预约",
|
||||
"vipcard.cardLink": "次卡",
|
||||
"vipcard.reserveBtn": "去抢购",
|
||||
"vipcard.cardBtn": "办理",
|
||||
"vipcard.soldOut": "已售",
|
||||
"vipcard.orderNo": "订单号",
|
||||
"vipcard.myLink": "我的",
|
||||
"vipcard.memberCode": "会员码",
|
||||
"recharge.orderNo": "订单号",
|
||||
"shop.orderNo": "订单号",
|
||||
"shop.actualPayment": "实付款",
|
||||
"shop.orderClose": "关闭订单",
|
||||
"shop.orderFinish": "确认收货",
|
||||
"shop.coupon": "优惠劵",
|
||||
"o2o.way": "线路",
|
||||
"o2o.hotel": "酒店",
|
||||
"o2o.scenic": "景点",
|
||||
"o2o.reserveBtn": "去抢购",
|
||||
"o2o.noHomeAddress": "没有更多内容啦~",
|
||||
"o2o.soldOut": "已售",
|
||||
"o2o.orderNo": "订单号",
|
||||
"o2o.actualPayment": "实付款",
|
||||
"o2o.orderDetail": "详情",
|
||||
"notHave": "无",
|
||||
"tourism.scenic": "景点",
|
||||
"tourism.way": "线路",
|
||||
"tourism.hotel": "酒店",
|
||||
"tourism.seeMore": "查看更多",
|
||||
"vipcard.seeMore": "查看更多",
|
||||
"shop.emptyAddress": "暂无收货地址,请先创建地址",
|
||||
"shop.addAddress": "新增收货地址",
|
||||
"shop.selectAddress": "选择地址",
|
||||
"shop_fenxiao.orderNo": "订单号",
|
||||
"shop_giftcard.actualPayment": "实付款",
|
||||
"shop_giftcard.orderClose": "关闭订单",
|
||||
"shop_giftcard.orderNo": "订单号",
|
||||
"notHave": "无",
|
||||
"onceCard": "次卡",
|
||||
"cardUnit": "张"
|
||||
}
|
||||
@ -6,6 +6,9 @@
|
||||
"versionCode": "100",
|
||||
"transformPx": false,
|
||||
"app-plus": {
|
||||
"compatible" : {
|
||||
"ignoreVersion" : true
|
||||
},
|
||||
"usingComponents": true,
|
||||
"nvueStyleCompiler": "uni-app",
|
||||
"compilerVersion": 3,
|
||||
@ -15,7 +18,16 @@
|
||||
"autoclose": true,
|
||||
"delay": 0
|
||||
},
|
||||
"modules": {},
|
||||
"modules" : {
|
||||
"Camera" : {},
|
||||
"Barcode" : {},
|
||||
"Contacts" : {},
|
||||
"Geolocation" : {},
|
||||
"Payment" : {},
|
||||
"VideoPlayer" : {},
|
||||
"Maps" : {},
|
||||
"Share" : {}
|
||||
},
|
||||
"distribute": {
|
||||
"android": {
|
||||
"permissions": [
|
||||
@ -36,8 +48,16 @@
|
||||
"<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
|
||||
]
|
||||
},
|
||||
"ios": {},
|
||||
"sdkConfigs": {}
|
||||
"ios" : {
|
||||
"dSYMs" : false
|
||||
},
|
||||
"sdkConfigs" : {
|
||||
"maps" : {
|
||||
"tencent" : {
|
||||
"key" : "6ZDBZ-CLSLX-66747-7MVM4-HLK47-XMBXU"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"quickapp": {},
|
||||
|
||||
@ -46,6 +46,9 @@ const useSystemStore = defineStore('system', {
|
||||
siteAddons: [],
|
||||
currRoute: '',
|
||||
mapConfig: {
|
||||
map_type: 'tencent',
|
||||
key:'', // 腾讯地图key
|
||||
tianditu_map_web_key: '', // 天地图key
|
||||
is_open: 1,
|
||||
valid_time: 0
|
||||
},
|
||||
@ -105,6 +108,9 @@ const useSystemStore = defineStore('system', {
|
||||
// 地图配置
|
||||
this.mapConfig.is_open = data.map_config.is_open;
|
||||
this.mapConfig.valid_time = data.map_config.valid_time;
|
||||
this.mapConfig.map_type = data.map_config.map_type;
|
||||
this.mapConfig.key = data.map_config.key
|
||||
this.mapConfig.tianditu_map_web_key = data.map_config.tianditu_map_web_key;
|
||||
uni.setStorageSync('mapConfig', this.mapConfig);
|
||||
|
||||
// 主题色
|
||||
|
||||
@ -2,10 +2,9 @@ import { getTabbarPages } from './pages'
|
||||
import useDiyStore from '@/app/stores/diy'
|
||||
import useMemberStore from '@/stores/member'
|
||||
import useSystemStore from '@/stores/system'
|
||||
import wechat from '@/utils/wechat'
|
||||
import useConfigStore from '@/stores/config'
|
||||
import { getNeedLoginPages } from '@/utils/pages'
|
||||
import { useLocation } from '@/hooks/useLocation'
|
||||
import manifestJson from "@/manifest.json";
|
||||
|
||||
/**
|
||||
* 跳转页面
|
||||
@ -673,10 +672,12 @@ export function pxToRpx(px: any) {
|
||||
// 返回上一页
|
||||
export function goback(data: any) {
|
||||
let { url, mode, param, title } = data
|
||||
uni.showToast({
|
||||
title: title,
|
||||
icon: 'none'
|
||||
});
|
||||
if (title) {
|
||||
uni.showToast({
|
||||
title: title,
|
||||
icon: 'none'
|
||||
});
|
||||
}
|
||||
setTimeout(() => {
|
||||
if (getCurrentPages().length > 1) {
|
||||
uni.navigateBack({
|
||||
@ -689,7 +690,7 @@ export function goback(data: any) {
|
||||
mode: mode || 'redirectTo'
|
||||
});
|
||||
}
|
||||
}, 600);
|
||||
}, title ? 600 : 0);
|
||||
}
|
||||
|
||||
|
||||
@ -818,4 +819,33 @@ export function distance(distance: string | number): string {
|
||||
const dist = typeof distance === 'string' ? parseFloat(distance) : distance;
|
||||
if (isNaN(dist)) return distance.toString();
|
||||
return dist < 1 ? parseInt((dist * 1000).toString()) + 'm' : dist.toFixed(1) + 'km'
|
||||
}
|
||||
|
||||
/**
|
||||
* 打开地图选择器
|
||||
* @param backurl 回调URL
|
||||
* @param params 参数
|
||||
*/
|
||||
export function openMapSelector(backurl: string, params = '') {
|
||||
const configStore = useSystemStore();
|
||||
const mapType = configStore.mapConfig?.map_type || 'tencent';
|
||||
if (mapType === 'tencent') {
|
||||
const url = `https://apis.map.qq.com/tools/locpicker?search=1&type=0&backurl=${ encodeURIComponent(backurl) }&key=${ manifestJson.h5.sdkConfigs.maps.qqmap.key }&referer=myapp`;
|
||||
window.location.href = url;
|
||||
} else if (mapType === 'tianditu') {
|
||||
// 打开天地图选择器
|
||||
const tiandituKey = configStore.mapConfig?.tianditu_map_web_key || '';
|
||||
if (!tiandituKey) {
|
||||
uni.showToast({
|
||||
title: '天地图密钥未配置',
|
||||
icon: 'none'
|
||||
});
|
||||
return;
|
||||
}
|
||||
// 天地图的位置选择器URL
|
||||
// 注意:天地图的位置选择器API可能与腾讯地图不同,需要根据实际API文档调整
|
||||
const baseUrl = (import.meta.env.VITE_APP_BASE_URL || `${ location.origin }`).replace(/\/api\/$/, '')
|
||||
const url = baseUrl + `/tianmap?search=1&type=0&backurl=${ encodeURIComponent(backurl) }&key=${ tiandituKey }` + (params ? '&' + params : '')
|
||||
window.location.href = url;
|
||||
}
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user