mirror of
https://gitee.com/niucloud-team/niucloud.git
synced 2025-12-10 09:12:49 +00:00
同步uni-app
This commit is contained in:
parent
57d110237b
commit
16a8825962
@ -7,9 +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()
|
||||
const systemStore = useSystemStore()
|
||||
|
||||
@ -1,139 +1,160 @@
|
||||
<template>
|
||||
<view class="diy-group" id="componentList">
|
||||
<top-tabbar v-if="data.global && Object.keys(data.global).length && data.global.topStatusBar && data.global.topStatusBar.isShow"
|
||||
:scrollBool="diyGroup.componentsScrollBool.TopTabbar" ref="topTabbarRef" :data="data.global" />
|
||||
<pop-ads v-if="data.global && Object.keys(data.global).length && data.global.popWindow && data.global.popWindow.show" ref="popAbsRef" :data="data.global" />
|
||||
<template v-for="(component, index) in data.value" :key="component.id">
|
||||
<view
|
||||
v-show="component.componentIsShow"
|
||||
@click="diyStore.changeCurrentIndex(index, component)"
|
||||
:class="diyGroup.getComponentClass(index,component)" :style="component.pageStyle"
|
||||
>
|
||||
<view class="relative" :style="{ marginTop : component.margin.top < 0 ? (component.margin.top * 2) + 'rpx' : '0', marginBottom : component.margin.bottom < 0 ? (component.margin.bottom * 2) + 'rpx' : '0' }">
|
||||
<view class="diy-group" id="componentList">
|
||||
<top-tabbar
|
||||
v-if="data.global && Object.keys(data.global).length && data.global.topStatusBar && data.global.topStatusBar.isShow"
|
||||
:scrollBool="diyGroup.componentsScrollBool.TopTabbar" ref="topTabbarRef" :data="data.global" />
|
||||
<pop-ads
|
||||
v-if="data.global && Object.keys(data.global).length && data.global.popWindow && data.global.popWindow.show"
|
||||
ref="popAbsRef" :data="data.global" />
|
||||
<template v-for="(component, index) in data.value" :key="component.id">
|
||||
<view v-show="component.componentIsShow" @click="diyStore.changeCurrentIndex(index, component)"
|
||||
:class="diyGroup.getComponentClass(index,component)" :style="component.pageStyle">
|
||||
<view class="relative"
|
||||
:style="{ marginTop : component.margin.top < 0 ? (component.margin.top * 2) + 'rpx' : '0', marginBottom : component.margin.bottom < 0 ? (component.margin.bottom * 2) + 'rpx' : '0' }">
|
||||
|
||||
<!-- 装修模式下,设置负上边距后超出的内容,禁止选中设置 -->
|
||||
<view v-if="diyGroup.isShowPlaceHolder(index,component)" class="absolute w-full z-1"
|
||||
:style="{ height : (component.margin.top * 2 * -1) + 'rpx' }"
|
||||
@click.stop="diyGroup.placeholderEvent"></view>
|
||||
<!-- 装修模式下,设置负上边距后超出的内容,禁止选中设置 -->
|
||||
<view v-if="diyGroup.isShowPlaceHolder(index,component)" class="absolute w-full z-1"
|
||||
:style="{ height : (component.margin.top * 2 * -1) + 'rpx' }"
|
||||
@click.stop="diyGroup.placeholderEvent"></view>
|
||||
|
||||
<template v-if="component.componentName == 'GraphicNav'">
|
||||
<diy-graphic-nav :component="component" :global="data.global" :index="index" />
|
||||
</template>
|
||||
<template v-if="component.componentName == 'HorzBlank'">
|
||||
<diy-horz-blank :component="component" :global="data.global" :index="index" />
|
||||
</template>
|
||||
<template v-if="component.componentName == 'HorzLine'">
|
||||
<diy-horz-line :component="component" :global="data.global" :index="index" />
|
||||
</template>
|
||||
<template v-if="component.componentName == 'HotArea'">
|
||||
<diy-hot-area :component="component" :global="data.global" :index="index" />
|
||||
</template>
|
||||
<template v-if="component.componentName == 'ImageAds'">
|
||||
<diy-image-ads :component="component" :global="data.global" :index="index" />
|
||||
</template>
|
||||
<template v-if="component.componentName == 'MemberInfo'">
|
||||
<diy-member-info :component="component" :global="data.global" :index="index" />
|
||||
</template>
|
||||
<template v-if="component.componentName == 'MemberLevel'">
|
||||
<diy-member-level :component="component" :global="data.global" :index="index" />
|
||||
</template>
|
||||
<template v-if="component.componentName == 'Notice'">
|
||||
<diy-notice :component="component" :global="data.global" :index="index" />
|
||||
</template>
|
||||
<template v-if="component.componentName == 'RubikCube'">
|
||||
<diy-rubik-cube :component="component" :global="data.global" :index="index" />
|
||||
</template>
|
||||
<template v-if="component.componentName == 'Text'">
|
||||
<diy-text :component="component" :global="data.global" :index="index" />
|
||||
</template>
|
||||
<template v-if="component.componentName == 'RichText'">
|
||||
<diy-rich-text :component="component" :global="data.global" :index="index" />
|
||||
</template>
|
||||
<template v-if="component.componentName == 'ActiveCube'">
|
||||
<diy-active-cube :component="component" :global="data.global" :index="index" />
|
||||
</template>
|
||||
<template v-if="component.componentName == 'FloatBtn'">
|
||||
<diy-float-btn :component="component" :global="data.global" :index="index" />
|
||||
</template>
|
||||
<template v-if="component.componentName == 'CarouselSearch'">
|
||||
<diy-carousel-search :scrollBool="diyGroup.componentsScrollBool.CarouselSearch" :component="component" :global="data.global" :index="index" />
|
||||
</template>
|
||||
<template v-if="component.componentName == 'PictureShow'">
|
||||
<diy-picture-show :component="component" :global="data.global" :index="index" />
|
||||
</template>
|
||||
<template v-if="component.componentName == 'FormSubmit'">
|
||||
<diy-form-submit :component="component" :global="data.global" :index="index" />
|
||||
</template>
|
||||
<template v-if="component.componentName == 'FormInput'">
|
||||
<diy-form-input ref="diyFormInputRef" :component="component" :global="data.global" :index="index" />
|
||||
</template>
|
||||
<template v-if="component.componentName == 'FormTextarea'">
|
||||
<diy-form-textarea ref="diyFormTextareaRef" :component="component" :global="data.global" :index="index" />
|
||||
</template>
|
||||
<template v-if="component.componentName == 'FormIdentity'">
|
||||
<diy-form-identity ref="diyFormIdentityRef" :component="component" :global="data.global" :index="index" />
|
||||
</template>
|
||||
<template v-if="component.componentName == 'FormEmail'">
|
||||
<diy-form-email ref="diyFormEmailRef" :component="component" :global="data.global" :index="index" />
|
||||
</template>
|
||||
<template v-if="component.componentName == 'FormMobile'">
|
||||
<diy-form-mobile ref="diyFormMobileRef" :component="component" :global="data.global" :index="index" />
|
||||
</template>
|
||||
<template v-if="component.componentName == 'FormWechatName'">
|
||||
<diy-form-wechat-name ref="diyFormWechatNameRef" :component="component" :global="data.global" :index="index" />
|
||||
</template>
|
||||
<template v-if="component.componentName == 'FormNumber'">
|
||||
<diy-form-number ref="diyFormNumberRef" :component="component" :global="data.global" :index="index" />
|
||||
</template>
|
||||
<template v-if="component.componentName == 'FormRadio'">
|
||||
<diy-form-radio ref="diyFormRadioRef" :component="component" :global="data.global" :index="index" />
|
||||
</template>
|
||||
<template v-if="component.componentName == 'FormCheckbox'">
|
||||
<diy-form-checkbox ref="diyFormCheckboxRef" :component="component" :global="data.global" :index="index" />
|
||||
</template>
|
||||
<template v-if="component.componentName == 'FormTable'">
|
||||
<diy-form-table ref="diyFormTableRef" :component="component" :global="data.global" :index="index" />
|
||||
</template>
|
||||
<template v-if="component.componentName == 'FormDate'">
|
||||
<diy-form-date ref="diyFormDateRef" :component="component" :global="data.global" :index="index" />
|
||||
</template>
|
||||
<template v-if="component.componentName == 'FormDateScope'">
|
||||
<diy-form-date-scope ref="diyFormDateScopeRef" :component="component" :global="data.global" :index="index" />
|
||||
</template>
|
||||
<template v-if="component.componentName == 'FormTime'">
|
||||
<diy-form-time ref="diyFormTimeRef" :component="component" :global="data.global" :index="index" />
|
||||
</template>
|
||||
<template v-if="component.componentName == 'FormTimeScope'">
|
||||
<diy-form-time-scope ref="diyFormTimeScopeRef" :component="component" :global="data.global" :index="index" />
|
||||
</template>
|
||||
<template v-if="component.componentName == 'FormLocation'">
|
||||
<diy-form-location ref="diyFormLocationRef" :component="component" :global="data.global" :index="index" />
|
||||
</template>
|
||||
<template v-if="component.componentName == 'FormAddress'">
|
||||
<diy-form-address ref="diyFormAddressRef" :component="component" :global="data.global" :index="index" />
|
||||
</template>
|
||||
<template v-if="component.componentName == 'FormImage'">
|
||||
<diy-form-image ref="diyFormImageRef" :component="component" :global="data.global" :index="index" />
|
||||
</template>
|
||||
<template v-if="component.componentName == 'FormVideo'">
|
||||
<diy-form-video ref="diyFormVideoRef" :component="component" :global="data.global" :index="index" />
|
||||
</template>
|
||||
<template v-if="component.componentName == 'FormFile'">
|
||||
<diy-form-file ref="diyFormFileRef" :component="component" :global="data.global" :index="index" />
|
||||
</template>
|
||||
<template v-if="component.componentName == 'GraphicNav'">
|
||||
<diy-graphic-nav :component="component" :global="data.global" :index="index" />
|
||||
</template>
|
||||
<template v-if="component.componentName == 'HorzBlank'">
|
||||
<diy-horz-blank :component="component" :global="data.global" :index="index" />
|
||||
</template>
|
||||
<template v-if="component.componentName == 'HorzLine'">
|
||||
<diy-horz-line :component="component" :global="data.global" :index="index" />
|
||||
</template>
|
||||
<template v-if="component.componentName == 'HotArea'">
|
||||
<diy-hot-area :component="component" :global="data.global" :index="index" />
|
||||
</template>
|
||||
<template v-if="component.componentName == 'ImageAds'">
|
||||
<diy-image-ads :component="component" :global="data.global" :index="index" />
|
||||
</template>
|
||||
<template v-if="component.componentName == 'MemberInfo'">
|
||||
<diy-member-info :component="component" :global="data.global" :index="index" />
|
||||
</template>
|
||||
<template v-if="component.componentName == 'MemberLevel'">
|
||||
<diy-member-level :component="component" :global="data.global" :index="index" />
|
||||
</template>
|
||||
<template v-if="component.componentName == 'Notice'">
|
||||
<diy-notice :component="component" :global="data.global" :index="index" />
|
||||
</template>
|
||||
<template v-if="component.componentName == 'RubikCube'">
|
||||
<diy-rubik-cube :component="component" :global="data.global" :index="index" />
|
||||
</template>
|
||||
<template v-if="component.componentName == 'Text'">
|
||||
<diy-text :component="component" :global="data.global" :index="index" />
|
||||
</template>
|
||||
<template v-if="component.componentName == 'RichText'">
|
||||
<diy-rich-text :component="component" :global="data.global" :index="index" />
|
||||
</template>
|
||||
<template v-if="component.componentName == 'ActiveCube'">
|
||||
<diy-active-cube :component="component" :global="data.global" :index="index" />
|
||||
</template>
|
||||
<template v-if="component.componentName == 'FloatBtn'">
|
||||
<diy-float-btn :component="component" :global="data.global" :index="index" />
|
||||
</template>
|
||||
<template v-if="component.componentName == 'CarouselSearch'">
|
||||
<diy-carousel-search :scrollBool="diyGroup.componentsScrollBool.CarouselSearch"
|
||||
:component="component" :global="data.global" :index="index" />
|
||||
</template>
|
||||
<template v-if="component.componentName == 'PictureShow'">
|
||||
<diy-picture-show :component="component" :global="data.global" :index="index" />
|
||||
</template>
|
||||
<template v-if="component.componentName == 'FormSubmit'">
|
||||
<diy-form-submit :component="component" :global="data.global" :index="index" />
|
||||
</template>
|
||||
<template v-if="component.componentName == 'FormInput'">
|
||||
<diy-form-input ref="diyFormInputRef" :component="component" :global="data.global"
|
||||
:index="index" />
|
||||
</template>
|
||||
<template v-if="component.componentName == 'FormTextarea'">
|
||||
<diy-form-textarea ref="diyFormTextareaRef" :component="component" :global="data.global"
|
||||
:index="index" />
|
||||
</template>
|
||||
<template v-if="component.componentName == 'FormIdentity'">
|
||||
<diy-form-identity ref="diyFormIdentityRef" :component="component" :global="data.global"
|
||||
:index="index" />
|
||||
</template>
|
||||
<template v-if="component.componentName == 'FormEmail'">
|
||||
<diy-form-email ref="diyFormEmailRef" :component="component" :global="data.global"
|
||||
:index="index" />
|
||||
</template>
|
||||
<template v-if="component.componentName == 'FormMobile'">
|
||||
<diy-form-mobile ref="diyFormMobileRef" :component="component" :global="data.global"
|
||||
:index="index" />
|
||||
</template>
|
||||
<template v-if="component.componentName == 'FormWechatName'">
|
||||
<diy-form-wechat-name ref="diyFormWechatNameRef" :component="component" :global="data.global"
|
||||
:index="index" />
|
||||
</template>
|
||||
<template v-if="component.componentName == 'FormNumber'">
|
||||
<diy-form-number ref="diyFormNumberRef" :component="component" :global="data.global"
|
||||
:index="index" />
|
||||
</template>
|
||||
<template v-if="component.componentName == 'FormRadio'">
|
||||
<diy-form-radio ref="diyFormRadioRef" :component="component" :global="data.global"
|
||||
:index="index" />
|
||||
</template>
|
||||
<template v-if="component.componentName == 'FormCheckbox'">
|
||||
<diy-form-checkbox ref="diyFormCheckboxRef" :component="component" :global="data.global"
|
||||
:index="index" />
|
||||
</template>
|
||||
<template v-if="component.componentName == 'FormTable'">
|
||||
<diy-form-table ref="diyFormTableRef" :component="component" :global="data.global"
|
||||
:index="index" />
|
||||
</template>
|
||||
<template v-if="component.componentName == 'FormDate'">
|
||||
<diy-form-date ref="diyFormDateRef" :component="component" :global="data.global"
|
||||
:index="index" />
|
||||
</template>
|
||||
<template v-if="component.componentName == 'FormDateScope'">
|
||||
<diy-form-date-scope ref="diyFormDateScopeRef" :component="component" :global="data.global"
|
||||
:index="index" />
|
||||
</template>
|
||||
<template v-if="component.componentName == 'FormTime'">
|
||||
<diy-form-time ref="diyFormTimeRef" :component="component" :global="data.global"
|
||||
:index="index" />
|
||||
</template>
|
||||
<template v-if="component.componentName == 'FormTimeScope'">
|
||||
<diy-form-time-scope ref="diyFormTimeScopeRef" :component="component" :global="data.global"
|
||||
:index="index" />
|
||||
</template>
|
||||
<template v-if="component.componentName == 'FormLocation'">
|
||||
<diy-form-location ref="diyFormLocationRef" :component="component" :global="data.global"
|
||||
:index="index" />
|
||||
</template>
|
||||
<template v-if="component.componentName == 'FormAddress'">
|
||||
<diy-form-address ref="diyFormAddressRef" :component="component" :global="data.global"
|
||||
:index="index" />
|
||||
</template>
|
||||
<template v-if="component.componentName == 'FormImage'">
|
||||
<diy-form-image ref="diyFormImageRef" :component="component" :global="data.global"
|
||||
:index="index" />
|
||||
</template>
|
||||
<template v-if="component.componentName == 'FormVideo'">
|
||||
<diy-form-video ref="diyFormVideoRef" :component="component" :global="data.global"
|
||||
:index="index" />
|
||||
</template>
|
||||
<template v-if="component.componentName == 'FormFile'">
|
||||
<diy-form-file ref="diyFormFileRef" :component="component" :global="data.global"
|
||||
:index="index" />
|
||||
</template>
|
||||
|
||||
|
||||
<!-- 以下是addon文件夹下的自定义组件 -->
|
||||
<!-- 以下是addon文件夹下的自定义组件 -->
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
<template v-if="diyStore.mode == '' && data.global && diyGroup.showCopyright.value && data.global.copyright && data.global.copyright.isShow">
|
||||
<copy-right />
|
||||
<template v-if="data.global && diyGroup.showCopyright.value && data.global.copyright && data.global.copyright.isShow">
|
||||
<copy-right :textColor="data.global.copyright.textColor" />
|
||||
</template>
|
||||
|
||||
|
||||
<template v-if="diyStore.mode == '' && data.global && data.global.bottomTabBar && data.global.bottomTabBar.isShow">
|
||||
<view class="pt-[20rpx]"></view>
|
||||
<tabbar :addon="data.global.bottomTabBar.designNav.key" />
|
||||
<tabbar :addon="data.global.bottomTabBar.designNav?.key" />
|
||||
</template>
|
||||
</view>
|
||||
</template>
|
||||
@ -146,18 +167,19 @@ import useDiyStore from '@/app/stores/diy';
|
||||
import { ref, getCurrentInstance } from 'vue';
|
||||
|
||||
const props = defineProps(['data']);
|
||||
const instance: any = getCurrentInstance();
|
||||
const instance : any = getCurrentInstance();
|
||||
const getFormRef = () => {
|
||||
return {
|
||||
componentRefs: instance.refs
|
||||
}
|
||||
return {
|
||||
componentRefs: instance.refs
|
||||
}
|
||||
}
|
||||
|
||||
const diyStore = useDiyStore();
|
||||
|
||||
|
||||
const diyGroup = useDiyGroup({
|
||||
...props,
|
||||
getFormRef
|
||||
...props,
|
||||
getFormRef
|
||||
});
|
||||
|
||||
const data = ref(diyGroup.data)
|
||||
@ -169,8 +191,8 @@ diyGroup.onMounted()
|
||||
diyGroup.onPageScroll()
|
||||
|
||||
defineExpose({
|
||||
refresh: diyGroup.refresh,
|
||||
getFormRef
|
||||
refresh: diyGroup.refresh,
|
||||
getFormRef
|
||||
})
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
|
||||
@ -102,7 +102,6 @@ export function useDiyGroup(params: any = {}) {
|
||||
}
|
||||
// 新增:页面加载完成后,显示版权
|
||||
showCopyright.value = true;
|
||||
console.log('组件加载完成', showCopyright.value);
|
||||
|
||||
}, 500)
|
||||
});
|
||||
|
||||
@ -27,3 +27,87 @@ export function getShareInfo(params: Record<string, any>) {
|
||||
export function getMemberFormRecord() {
|
||||
return request.get('diy/form/member_record')
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取项目列表供组件调用
|
||||
*/
|
||||
export function getGoodsComponents(params: Record<string, any>) {
|
||||
return request.get(`home_service/goods/components`, params)
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 次卡套餐
|
||||
* @param orderId
|
||||
* @returns
|
||||
*/
|
||||
export function getFirstCard(orderId: number) {
|
||||
return request.get(`home_service/member/firstCard`)
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取商品分类列表
|
||||
*/
|
||||
export function getGoodsCategoryList(params: Record<string, any>) {
|
||||
return request.get(`home_service/goods/category/list`, params)
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取次卡列表供组件调用
|
||||
*/
|
||||
export function getCardComponents(params: Record<string, any>) {
|
||||
return request.get(`home_service/card/components`, params)
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取优惠券、次卡
|
||||
* @param orderId
|
||||
* @returns
|
||||
*/
|
||||
export function getCouponCard(orderId: number) {
|
||||
return request.get(`home_service/member/memberDiscountCount`)
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 技师信息
|
||||
* @param params
|
||||
* @returns
|
||||
*/
|
||||
export function getTechnicianInfo(params: Record<string, any>) {
|
||||
return request.get(`home_service/technician/info`,params,{ showErrorMessage: false })
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取门店信息
|
||||
* @returns 门店信息数据
|
||||
*/
|
||||
export function getStoreInfo() {
|
||||
return request.get('home_service/store/info',{},{ showErrorMessage: false })
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 技师入驻申请资料
|
||||
* @param params 技师入驻申请参数
|
||||
* @returns
|
||||
*/
|
||||
export function getTechnicianApply() {
|
||||
return request.get(`home_service/technician/apply`)
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 门店入驻申请资料
|
||||
* @param params 门店入驻申请参数
|
||||
* @returns
|
||||
*/
|
||||
export function getStoreApply() {
|
||||
return request.get(`home_service/member/store/application`)
|
||||
}
|
||||
|
||||
|
||||
@ -7,9 +7,20 @@ export function pay(data : AnyObject) {
|
||||
return request.post(`pay`, data, { showErrorMessage: true })
|
||||
}
|
||||
|
||||
/**
|
||||
* 测试支付
|
||||
*/
|
||||
export function testPay(data : AnyObject) {
|
||||
return request.get(`home_service/pay/pay`, data, { showErrorMessage: true })
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取支付信息
|
||||
*/
|
||||
export function getPayInfo(tradeType : string, tradeId : number, params: Record<string, any>) {
|
||||
return request.get(`pay/info/${tradeType}/${tradeId}`, params, { showErrorMessage: true })
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@ -17,12 +17,19 @@
|
||||
import { t } from '@/locale'
|
||||
import { img } from '@/utils/common';
|
||||
import { ref } from 'vue';
|
||||
import { onLoad } from '@dcloudio/uni-app';
|
||||
|
||||
const sendMessageTitle = ref('')
|
||||
const sendMessagePath = ref('')
|
||||
const sendMessageImg = ref('')
|
||||
|
||||
sendMessageImg.value = img('static/resource/images/member/contact_service.png')
|
||||
|
||||
onLoad((data: any) => {
|
||||
data.send_title && (sendMessageTitle.value = data.send_title)
|
||||
data.send_path && (sendMessagePath.value = decodeURIComponent(data.send_path))
|
||||
data.send_img && (sendMessageImg.value = decodeURIComponent(data.send_img))
|
||||
})
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
|
||||
@ -47,6 +47,7 @@ const useDiyStore = defineStore('diy', {
|
||||
copyright:{
|
||||
control: true, // 是否允许展示编辑
|
||||
isShow: false, // 是否显示
|
||||
textColor: '#ccc',
|
||||
},
|
||||
bgUrl: ''
|
||||
},
|
||||
|
||||
@ -1,19 +1,26 @@
|
||||
<template>
|
||||
<view class="flex flex-col justify-center items-center p-[30rpx] ">
|
||||
<img :src="img(systemStore.copyright.logo)" mode="heightFix" class="max-h-[60rpx]" v-if="systemStore.copyright?.logo" />
|
||||
<view class="text-[#666] text-[22rpx] mt-[20rpx]" v-if="systemStore.copyright?.copyright_desc" @click="systemStore.copyright?.copyright_link && redirect({ url: systemStore.copyright.copyright_link})">
|
||||
{{ systemStore.copyright.copyright_desc }}
|
||||
</view>
|
||||
<view class="text-[#666] text-[22rpx] mt-[20rpx]" v-if="systemStore.copyright?.icp">
|
||||
备案号:{{ systemStore.copyright.icp }}
|
||||
</view>
|
||||
<view class="text-[#666] text-[22rpx] mt-[20rpx] flex items-center" v-if="systemStore.copyright?.gov_record" @click="systemStore.copyright?.gov_url && redirect({ url: systemStore.copyright.gov_url})">
|
||||
<img :src="img('static/resource/images/copy_right.png')" mode="heightFix" class="w-[28rpx] h-[28rpx] mr-[10rpx]" />
|
||||
{{ systemStore.copyright.gov_record }}
|
||||
</view>
|
||||
|
||||
<!-- <view class="h-[100rpx]"></view> -->
|
||||
</view>
|
||||
<view>
|
||||
<template v-if="diyStore.mode == 'decorate'">
|
||||
<view class="flex flex-col justify-center items-center p-[30rpx] text-[22rpx]" :style="{ color:textColor}">
|
||||
示例版权信息
|
||||
</view>
|
||||
</template>
|
||||
<tempalte v-else>
|
||||
<view class="flex flex-col justify-center items-center p-[30rpx]" :style="{ color:textColor}">
|
||||
<img :src="img(systemStore.copyright.logo)" mode="heightFix" class="max-h-[60rpx]" v-if="systemStore.copyright?.logo" />
|
||||
<view class="text-[22rpx] mt-[20rpx]" v-if="systemStore.copyright?.copyright_desc" @click="systemStore.copyright?.copyright_link && redirect({ url: systemStore.copyright.copyright_link})">
|
||||
{{ systemStore.copyright.copyright_desc }}
|
||||
</view>
|
||||
<view class="text-[22rpx] mt-[20rpx]" v-if="systemStore.copyright?.icp">
|
||||
备案号:{{ systemStore.copyright.icp }}
|
||||
</view>
|
||||
<view class="text-[22rpx] mt-[20rpx] flex items-center" v-if="systemStore.copyright?.gov_record" @click="systemStore.copyright?.gov_url && redirect({ url: systemStore.copyright.gov_url})">
|
||||
<img :src="img('static/resource/images/copy_right.png')" mode="heightFix" class="w-[28rpx] h-[28rpx] mr-[10rpx]" />
|
||||
{{ systemStore.copyright.gov_record }}
|
||||
</view>
|
||||
</view>
|
||||
</tempalte>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
@ -21,6 +28,16 @@ import { ref, nextTick } from 'vue'
|
||||
import { redirect,img } from '@/utils/common'
|
||||
import useSystemStore from '@/stores/system';
|
||||
const systemStore = useSystemStore()
|
||||
import useDiyStore from '@/app/stores/diy';
|
||||
|
||||
const diyStore = useDiyStore();
|
||||
|
||||
const prop = defineProps({
|
||||
textColor: {
|
||||
type: String,
|
||||
default: '#ccc'
|
||||
},
|
||||
})
|
||||
|
||||
</script>
|
||||
|
||||
|
||||
@ -10,7 +10,9 @@
|
||||
:send-message-title="props.sendMessageTitle"
|
||||
:send-message-path="props.sendMessagePath"
|
||||
:send-message-img="props.sendMessageImg"
|
||||
:show-message-card="true">
|
||||
:show-message-card="true"
|
||||
@contact="handleContact"
|
||||
>
|
||||
</button>
|
||||
|
||||
<u-popup :show="popupShow" @close="popupShow = false" mode="center" :round="5" :safeAreaInsetBottom="false">
|
||||
@ -33,6 +35,7 @@
|
||||
<script setup lang="ts">
|
||||
import { ref, computed } from 'vue'
|
||||
import useSystemStore from '@/stores/system'
|
||||
import { redirect } from '@/utils/common';
|
||||
|
||||
const props = defineProps({
|
||||
sendMessageTitle: {
|
||||
@ -70,6 +73,12 @@ const callPhone = () => {
|
||||
});
|
||||
}
|
||||
|
||||
const handleContact = (e) => {
|
||||
if (e.detail && e.detail.path) {
|
||||
redirect({ mode: 'redirectTo', url: e.detail.path, param: e.detail.query || {} })
|
||||
}
|
||||
}
|
||||
|
||||
defineExpose({})
|
||||
</script>
|
||||
|
||||
|
||||
@ -25,7 +25,7 @@
|
||||
</view>
|
||||
</scroll-view>
|
||||
<view class="btn-wrap">
|
||||
<button class="primary-btn-bg btn" hover-class="none" :loading="loading" @click="confirmPay">{{ t('pay.confirmPay') }}</button>
|
||||
<button class="primary-btn-bg bg-[var(--primary-color)] btn" hover-class="none" :loading="loading" @click="confirmPay">{{ t('pay.confirmPay') }}</button>
|
||||
</view>
|
||||
</view>
|
||||
</u-popup>
|
||||
@ -34,7 +34,7 @@
|
||||
<script setup lang="ts">
|
||||
import { ref } from 'vue'
|
||||
import { t } from '@/locale'
|
||||
import { getPayInfo, pay } from '@/app/api/pay'
|
||||
import { getPayInfo, pay,testPay } from '@/app/api/pay'
|
||||
import { img, redirect, isWeixinBrowser, moneyFormat } from '@/utils/common'
|
||||
import wechat from '@/utils/wechat'
|
||||
|
||||
|
||||
@ -113,6 +113,7 @@ const props = defineProps({
|
||||
const emits = defineEmits(['close'])
|
||||
|
||||
const sharePopupShow = ref(false);
|
||||
const posterType = ref(props.posterType)
|
||||
|
||||
// 复制
|
||||
const copyUrl = () => {
|
||||
@ -134,7 +135,8 @@ const copyUrl = () => {
|
||||
});
|
||||
}
|
||||
|
||||
const openShare = () => {
|
||||
const openShare = (data: any) => {
|
||||
posterType.value = data?.type || posterType.value || ''
|
||||
sharePopupShow.value = true
|
||||
loadPoster();
|
||||
}
|
||||
@ -154,7 +156,7 @@ const loadPoster = () => {
|
||||
isPosterImg.value = false;
|
||||
let obj = {
|
||||
id: props.posterId,
|
||||
type: props.posterType,
|
||||
type: posterType.value,
|
||||
param: props.posterParam
|
||||
}
|
||||
let startTime = Date.parse(new Date());
|
||||
|
||||
@ -45,7 +45,7 @@
|
||||
|
||||
<script setup lang="ts">
|
||||
import { ref, computed, onMounted, getCurrentInstance, nextTick } from 'vue';
|
||||
import { redirect, img } from '@/utils/common';
|
||||
import { redirect, img ,currRoute} from '@/utils/common';
|
||||
import useSystemStore from '@/stores/system';
|
||||
import useDiyStore from '@/app/stores/diy';
|
||||
import { useLocation } from '@/hooks/useLocation'
|
||||
@ -192,9 +192,11 @@ if (componentsScrollVal) {
|
||||
let pages = getCurrentPages();
|
||||
const isBackShow = computed(() => {
|
||||
let bool = false;
|
||||
if (props.isBack) {
|
||||
if (props.isBack && pages.length > 1) {
|
||||
bool = true;
|
||||
}
|
||||
} else if (currRoute() == 'app/pages/auth/index') {
|
||||
bool = true;
|
||||
}
|
||||
return bool;
|
||||
})
|
||||
|
||||
|
||||
@ -12,6 +12,7 @@ import { getWechatAuthCode } from '@/app/api/system'
|
||||
import useMemberStore from '@/stores/member'
|
||||
import useConfigStore from '@/stores/config'
|
||||
import useSystemStore from '@/stores/system'
|
||||
import { ref } from 'vue'
|
||||
|
||||
export function useLogin() {
|
||||
/**
|
||||
@ -84,20 +85,44 @@ export function useLogin() {
|
||||
/**
|
||||
* 执行登录后跳转
|
||||
*/
|
||||
const handleLoginBack = () => {
|
||||
const ler = ref(0)
|
||||
const handleLoginBack = (e) => {
|
||||
ler.value = e
|
||||
uni.removeStorageSync('autoLoginLock')
|
||||
uni.getStorage({
|
||||
key: 'loginBack',
|
||||
success: (res: any) => {
|
||||
res ? redirect(
|
||||
if(ler.value == 1){
|
||||
redirect({
|
||||
url:'/addon/home_service/technician/pages/member/index',
|
||||
mode: 'redirectTo'
|
||||
})
|
||||
}else if(ler.value == 2){
|
||||
redirect({
|
||||
url:'/addon/home_service/store/pages/member/index',
|
||||
mode: 'redirectTo'
|
||||
})
|
||||
}else{
|
||||
res ? redirect(
|
||||
{
|
||||
...res.data,
|
||||
mode: 'redirectTo'
|
||||
}
|
||||
) : redirect({ url: '/app/pages/index/index', mode: 'switchTab' })
|
||||
}
|
||||
|
||||
},
|
||||
fail: (res) => {
|
||||
redirect({ url: '/app/pages/index/index', mode: 'switchTab' })
|
||||
console.log(ler.value)
|
||||
if(ler.value==1){
|
||||
redirect({ url:'/addon/home_service/technician/pages/member/index', mode: 'switchTab' })
|
||||
|
||||
}else if(ler.value==2){
|
||||
redirect({ url:'/addon/home_service/store/pages/member/index', mode: 'switchTab' })
|
||||
}else{
|
||||
redirect({ url:'/app/pages/index/index', mode: 'switchTab' })
|
||||
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@ -1,46 +1,46 @@
|
||||
{
|
||||
"pages.index.index": "",
|
||||
"pages.index.close": "站点已关闭",
|
||||
"pages.index.nosite": "站点不存在",
|
||||
"pages.index.develop": "开发环境配置",
|
||||
"pages.index.diy": "",
|
||||
"pages.index.diy_form": "",
|
||||
"pages.index.diy_form_result": "",
|
||||
"pages.index.diy_form_detail": "表单详情",
|
||||
"pages.article.list": "资讯中心",
|
||||
"pages.article.detail": "文章详情",
|
||||
"pages.auth.index": "登录",
|
||||
"pages.auth.agreement": "协议",
|
||||
"pages.auth.bind": "绑定手机号",
|
||||
"pages.auth.login": "登录",
|
||||
"pages.auth.register": "注册",
|
||||
"pages.auth.resetpwd": "找回密码",
|
||||
"pages.member.account": "会员账户",
|
||||
"pages.member.account_edit": "",
|
||||
"pages.member.address": "收货地址",
|
||||
"pages.member.address_edit": "编辑收货地址",
|
||||
"pages.member.apply_cash_out": "申请提现",
|
||||
"pages.member.balance": "我的余额",
|
||||
"pages.member.point": "我的积分",
|
||||
"pages.member.point_detail": "积分明细",
|
||||
"pages.member.level": "会员等级",
|
||||
"pages.member.sign_in": "我的签到",
|
||||
"pages.member.cash_out": "提现记录",
|
||||
"pages.member.cash_out_detail": "提现详情",
|
||||
"pages.member.commission": "我的佣金",
|
||||
"pages.member.detailed_account": "流水明细",
|
||||
"pages.member.index": "",
|
||||
"pages.member.personal": "个人资料",
|
||||
"pages.member.personal_form": "个人资料",
|
||||
"pages.member.contact": "客服",
|
||||
"pages.pay.browser": "支付",
|
||||
"pages.pay.result": "",
|
||||
"pages.setting.index": "设置",
|
||||
"pages.verify.index": "核销台",
|
||||
"pages.verify.verify": "核销",
|
||||
"pages.verify.detail": "核销详情",
|
||||
"pages.verify.record": "核销记录",
|
||||
"pages.friendspay.share": "找朋友帮忙付",
|
||||
"pages.friendspay.money": "",
|
||||
"pages.webview.index": ""
|
||||
"pages.index.index": "",
|
||||
"pages.index.close": "站点已关闭",
|
||||
"pages.index.nosite": "站点不存在",
|
||||
"pages.index.develop": "开发环境配置",
|
||||
"pages.index.diy": "",
|
||||
"pages.index.diy_form": "",
|
||||
"pages.index.diy_form_result": "",
|
||||
"pages.index.diy_form_detail": "表单详情",
|
||||
"pages.article.list": "资讯中心",
|
||||
"pages.article.detail": "文章详情",
|
||||
"pages.auth.index": "登录",
|
||||
"pages.auth.agreement": "协议",
|
||||
"pages.auth.bind": "绑定手机号",
|
||||
"pages.auth.login": "登录",
|
||||
"pages.auth.register": "注册",
|
||||
"pages.auth.resetpwd": "找回密码",
|
||||
"pages.member.account": "会员账户",
|
||||
"pages.member.account_edit": "",
|
||||
"pages.member.address": "收货地址",
|
||||
"pages.member.address_edit": "编辑收货地址",
|
||||
"pages.member.apply_cash_out": "申请提现",
|
||||
"pages.member.balance": "我的余额",
|
||||
"pages.member.point": "我的积分",
|
||||
"pages.member.point_detail": "积分明细",
|
||||
"pages.member.level": "会员等级",
|
||||
"pages.member.sign_in": "我的签到",
|
||||
"pages.member.cash_out": "提现记录",
|
||||
"pages.member.cash_out_detail": "提现详情",
|
||||
"pages.member.commission": "我的佣金",
|
||||
"pages.member.detailed_account": "流水明细",
|
||||
"pages.member.index": "",
|
||||
"pages.member.personal": "个人资料",
|
||||
"pages.member.personal_form": "个人资料",
|
||||
"pages.member.contact": "客服",
|
||||
"pages.pay.browser": "支付",
|
||||
"pages.pay.result": "",
|
||||
"pages.setting.index": "设置",
|
||||
"pages.verify.index": "核销台",
|
||||
"pages.verify.verify": "核销",
|
||||
"pages.verify.detail": "核销详情",
|
||||
"pages.verify.record": "核销记录",
|
||||
"pages.friendspay.share": "找朋友帮忙付",
|
||||
"pages.friendspay.money": "",
|
||||
"pages.webview.index": ""
|
||||
}
|
||||
@ -1,159 +1,162 @@
|
||||
{
|
||||
"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": "订单号"
|
||||
"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": "张"
|
||||
}
|
||||
@ -1,36 +1,36 @@
|
||||
{
|
||||
"name": "",
|
||||
"appid": "__UNI__9B03DBD",
|
||||
"description": "",
|
||||
"versionName": "1.0.0",
|
||||
"versionCode": "100",
|
||||
"transformPx": false,
|
||||
"app-plus": {
|
||||
"compatible": {
|
||||
"ignoreVersion": true
|
||||
"name" : "",
|
||||
"appid" : "__UNI__9B03DBD",
|
||||
"description" : "",
|
||||
"versionName" : "1.0.0",
|
||||
"versionCode" : "100",
|
||||
"transformPx" : false,
|
||||
"app-plus" : {
|
||||
"compatible" : {
|
||||
"ignoreVersion" : true
|
||||
},
|
||||
"usingComponents": true,
|
||||
"nvueStyleCompiler": "uni-app",
|
||||
"compilerVersion": 3,
|
||||
"splashscreen": {
|
||||
"alwaysShowBeforeRender": true,
|
||||
"waiting": true,
|
||||
"autoclose": true,
|
||||
"delay": 0
|
||||
"usingComponents" : true,
|
||||
"nvueStyleCompiler" : "uni-app",
|
||||
"compilerVersion" : 3,
|
||||
"splashscreen" : {
|
||||
"alwaysShowBeforeRender" : true,
|
||||
"waiting" : true,
|
||||
"autoclose" : true,
|
||||
"delay" : 0
|
||||
},
|
||||
"modules": {
|
||||
"Camera": {},
|
||||
"Barcode": {},
|
||||
"Contacts": {},
|
||||
"Geolocation": {},
|
||||
"Payment": {},
|
||||
"VideoPlayer": {},
|
||||
"Maps": {},
|
||||
"Share": {}
|
||||
"modules" : {
|
||||
"Camera" : {},
|
||||
"Barcode" : {},
|
||||
"Contacts" : {},
|
||||
"Geolocation" : {},
|
||||
"Payment" : {},
|
||||
"VideoPlayer" : {},
|
||||
"Maps" : {},
|
||||
"Share" : {}
|
||||
},
|
||||
"distribute": {
|
||||
"android": {
|
||||
"permissions": [
|
||||
"distribute" : {
|
||||
"android" : {
|
||||
"permissions" : [
|
||||
"<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
|
||||
"<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
|
||||
"<uses-permission android:name=\"android.permission.VIBRATE\"/>",
|
||||
@ -48,71 +48,67 @@
|
||||
"<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
|
||||
]
|
||||
},
|
||||
"ios": {
|
||||
"dSYMs": false
|
||||
"ios" : {
|
||||
"dSYMs" : false
|
||||
},
|
||||
"sdkConfigs": {
|
||||
"maps": {
|
||||
"tencent": {
|
||||
"key": "6ZDBZ-CLSLX-66747-7MVM4-HLK47-XMBXU"
|
||||
"sdkConfigs" : {
|
||||
"maps" : {
|
||||
"tencent" : {
|
||||
"key" : "6ZDBZ-CLSLX-66747-7MVM4-HLK47-XMBXU"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"quickapp": {},
|
||||
"mp-weixin": {
|
||||
"appid": "",
|
||||
"setting": {
|
||||
"urlCheck": false
|
||||
"quickapp" : {},
|
||||
"mp-weixin" : {
|
||||
"appid" : "",
|
||||
"setting" : {
|
||||
"urlCheck" : false
|
||||
},
|
||||
"usingComponents": true,
|
||||
"permission": {
|
||||
"scope.userLocation": {
|
||||
"desc": "为了更好地为您提供服务"
|
||||
"usingComponents" : true,
|
||||
"permission" : {
|
||||
"scope.userLocation" : {
|
||||
"desc" : "为了更好地为您提供服务"
|
||||
},
|
||||
"scope.writePhotosAlbum": {
|
||||
"desc": "为了更好地为您提供服务"
|
||||
"scope.writePhotosAlbum" : {
|
||||
"desc" : "为了更好地为您提供服务"
|
||||
}
|
||||
},
|
||||
"requiredPrivateInfos": [
|
||||
"chooseLocation",
|
||||
"getLocation",
|
||||
"chooseAddress"
|
||||
],
|
||||
"__usePrivacyCheck__": true
|
||||
"requiredPrivateInfos" : [ "chooseLocation", "getLocation", "chooseAddress" ],
|
||||
"__usePrivacyCheck__" : true
|
||||
},
|
||||
"mp-alipay": {
|
||||
"usingComponents": true
|
||||
"mp-alipay" : {
|
||||
"usingComponents" : true
|
||||
},
|
||||
"mp-baidu": {
|
||||
"usingComponents": true
|
||||
"mp-baidu" : {
|
||||
"usingComponents" : true
|
||||
},
|
||||
"mp-toutiao": {
|
||||
"usingComponents": true
|
||||
"mp-toutiao" : {
|
||||
"usingComponents" : true
|
||||
},
|
||||
"uniStatistics": {
|
||||
"enable": false
|
||||
"uniStatistics" : {
|
||||
"enable" : false
|
||||
},
|
||||
"vueVersion": "3",
|
||||
"h5": {
|
||||
"router": {
|
||||
"mode": "history",
|
||||
"base": "/wap/"
|
||||
"vueVersion" : "3",
|
||||
"h5" : {
|
||||
"router" : {
|
||||
"mode" : "history",
|
||||
"base" : "/wap/"
|
||||
},
|
||||
"sdkConfigs": {
|
||||
"maps": {
|
||||
"qqmap": {
|
||||
"key": ""
|
||||
"sdkConfigs" : {
|
||||
"maps" : {
|
||||
"qqmap" : {
|
||||
"key" : ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"async": {
|
||||
"loading": "",
|
||||
"error": "",
|
||||
"delay": 0,
|
||||
"timeout": 3000
|
||||
"async" : {
|
||||
"loading" : "",
|
||||
"error" : "",
|
||||
"delay" : 0,
|
||||
"timeout" : 3000
|
||||
}
|
||||
},
|
||||
"fallbackLocale": "zh-Hans"
|
||||
}
|
||||
"fallbackLocale" : "zh-Hans"
|
||||
}
|
||||
|
||||
@ -1,8 +1,9 @@
|
||||
@font-face {
|
||||
font-family: "iconfont"; /* Project id 3952239 */
|
||||
src: url('https://at.alicdn.com/t/c/font_3952239_yxckpayhvp.woff2?t=1755857288182') format('woff2'),
|
||||
url('https://at.alicdn.com/t/c/font_3952239_yxckpayhvp.woff?t=1755857288182') format('woff'),
|
||||
url('https://at.alicdn.com/t/c/font_3952239_yxckpayhvp.ttf?t=1755857288182') format('truetype');
|
||||
font-family: "iconfont";
|
||||
/* Project id 3952239 */
|
||||
src: url('//at.alicdn.com/t/c/font_3952239_waynfpfdr5.woff2?t=1762225321119') format('woff2'),
|
||||
url('//at.alicdn.com/t/c/font_3952239_waynfpfdr5.woff?t=1762225321119') format('woff'),
|
||||
url('//at.alicdn.com/t/c/font_3952239_waynfpfdr5.ttf?t=1762225321119') format('truetype');
|
||||
}
|
||||
|
||||
.iconfont {
|
||||
@ -13,6 +14,54 @@
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
}
|
||||
|
||||
.icondingdanzhongxinPC-3:before {
|
||||
content: "\e7af";
|
||||
}
|
||||
|
||||
.iconshangchuantupian:before {
|
||||
content: "\e6e9";
|
||||
}
|
||||
|
||||
.iconnew_icon_bianjiqi_chexiao_keyong:before {
|
||||
content: "\e64a";
|
||||
}
|
||||
|
||||
.iconnew_icon_bianjiqi_zhongzuo_keyong:before {
|
||||
content: "\e64b";
|
||||
}
|
||||
|
||||
.iconbiaotizhengwenqiehuan:before {
|
||||
content: "\e6e2";
|
||||
}
|
||||
|
||||
.iconjuyouduiqi:before {
|
||||
content: "\e6e6";
|
||||
}
|
||||
|
||||
.iconbianjiqifengexian:before {
|
||||
content: "\e6eb";
|
||||
}
|
||||
|
||||
.iconbianjiqijuzhongduiqi:before {
|
||||
content: "\e6ec";
|
||||
}
|
||||
|
||||
.iconzitijiacu:before {
|
||||
content: "\ec83";
|
||||
}
|
||||
|
||||
.iconzitixiahuaxian:before {
|
||||
content: "\ec85";
|
||||
}
|
||||
|
||||
.iconzitixieti:before {
|
||||
content: "\ec86";
|
||||
}
|
||||
|
||||
.icont:before {
|
||||
content: "\eb24";
|
||||
}
|
||||
|
||||
.iconjiahaoV6xx1:before {
|
||||
content: "\e7cc";
|
||||
}
|
||||
@ -1239,4 +1288,4 @@
|
||||
|
||||
.iconshouye-zhihui:before {
|
||||
content: "\e61d";
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@ -4,6 +4,7 @@ import { redirect, getToken, getSiteId,currRoute, setThemeColor } from '@/utils/
|
||||
import { memberLog } from '@/app/api/auth'
|
||||
import { useShare } from '@/hooks/useShare'
|
||||
|
||||
|
||||
/**
|
||||
* 页面跳转拦截器
|
||||
*/
|
||||
@ -24,7 +25,10 @@ export const redirectInterceptor = (route: { path: string, query: object }) => {
|
||||
// #endif
|
||||
|
||||
// #ifdef MP
|
||||
route.path.indexOf('addon') != -1 && language.loadAllLocaleMessages('addon', uni.getLocale())
|
||||
try {
|
||||
language.loadAllLocaleMessages('addon', uni.getLocale())
|
||||
} catch (e) {
|
||||
}
|
||||
// #endif
|
||||
|
||||
// 校验是否需要登录
|
||||
|
||||
6974
uni-app/yarn.lock
Normal file
6974
uni-app/yarn.lock
Normal file
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user