This commit is contained in:
CQ 2025-10-31 09:22:32 +08:00
parent 8cb683f8fe
commit 9e5c053d76
11 changed files with 194 additions and 142 deletions

View File

@ -124,13 +124,16 @@
<!-- 以下是addon文件夹下的自定义组件 --> <!-- 以下是addon文件夹下的自定义组件 -->
</view> </view>
</view> </view>
</template> </template>
<template v-if="diyStore.mode == '' && data.global && diyGroup.showCopyright.value && data.global.copyright && data.global.copyright.isShow">
<copy-right />
</template>
<template v-if="diyStore.mode == '' && data.global && data.global.bottomTabBar && data.global.bottomTabBar.isShow"> <template v-if="diyStore.mode == '' && data.global && data.global.bottomTabBar && data.global.bottomTabBar.isShow">
<view class="pt-[20rpx]"></view> <view class="pt-[20rpx]"></view>
<tabbar /> <tabbar :addon="data.global.bottomTabBar.designNav.key" />
</template> </template>
</view> </view>
</template> </template>

View File

@ -5,6 +5,8 @@ import { onPageScroll, onHide, onShow } from '@dcloudio/uni-app';
import useDiyStore from '@/app/stores/diy'; import useDiyStore from '@/app/stores/diy';
export function useDiyGroup(params: any = {}) { export function useDiyGroup(params: any = {}) {
// 新增:控制版权显示的状态,默认隐藏
const showCopyright = ref(false);
let scrollVal: any = ""; //组件滚动值集合 let scrollVal: any = ""; //组件滚动值集合
const componentsScrollBool: any = ref({}); //组件是否根据滚动进行相应改变 const componentsScrollBool: any = ref({}); //组件是否根据滚动进行相应改变
@ -98,6 +100,10 @@ export function useDiyGroup(params: any = {}) {
componentsScrollBool.value[key] = -1; componentsScrollBool.value[key] = -1;
} }
} }
// 新增:页面加载完成后,显示版权
showCopyright.value = true;
console.log('组件加载完成', showCopyright.value);
}, 500) }, 500)
}); });
}); });
@ -174,11 +180,13 @@ export function useDiyGroup(params: any = {}) {
scrollV: scrollValStr.value, scrollV: scrollValStr.value,
data: data.value, data: data.value,
componentsScrollBool: componentsScrollBool.value, componentsScrollBool: componentsScrollBool.value,
showCopyright, // 新增:暴露版权显示状态
placeholderEvent, placeholderEvent,
refresh, refresh,
isShowPlaceHolder, isShowPlaceHolder,
getComponentClass, getComponentClass,
onPageScroll: onPageScrollLifeCycle, onPageScroll: onPageScrollLifeCycle,
onMounted: onMountedLifeCycle onMounted: onMountedLifeCycle
} }
} }

View File

@ -19,7 +19,7 @@
</view> </view>
</u-popup> </u-popup>
</view> </view>
<view class="px-[var(--sidebar-m)] pb-[30rpx] pt-[20rpx] bg-[#f6f6f6] flex items-center justify-between"> <view class="px-[var(--sidebar-m)] pb-[20rpx] pt-[20rpx] bg-[#f6f6f6] flex items-center justify-between">
<view class="flex items-center"> <view class="flex items-center">
<view class="px-[30rpx] bg-[#fff] rounded-[30rpx] text-[24rpx] leading-[54rpx] mr-[20rpx] text-[#333]" <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}" :class="{'!text-[var(--primary-color)] font-500':amount_type == item.status}"
@ -31,9 +31,9 @@
</view> </view>
</view> </view>
</view> </view>
<mescroll-body ref="mescrollRef" @init="mescrollInit" :down="{ use: false }" @up="getPointListFn" top="202rpx"> <mescroll-body ref="mescrollRef" @init="mescrollInit" :down="{ use: false }" @up="getPointListFn" top="185rpx">
<view v-for="(item,index) in pointList" :key="index" <view v-for="(item,index) in pointList" :key="index"
class="sidebar-margin card-template mb-[var(--top-m)]"> class="sidebar-margin card-template mt-[var(--top-m)]">
<view class="flex justify-between items-center"> <view class="flex justify-between items-center">
<view class="text-[#333]"> <view class="text-[#333]">
<text class="text-[26rpx]">{{ item.month_info.year }}</text> <text class="text-[26rpx]">{{ item.month_info.year }}</text>

View File

@ -13,6 +13,7 @@ interface Diy {
pageStartBgColor: string, // 页面背景颜色(开始) pageStartBgColor: string, // 页面背景颜色(开始)
pageEndBgColor: string, // 页面背景颜色(结束) pageEndBgColor: string, // 页面背景颜色(结束)
bottomTabBar: any, // 底部导航 bottomTabBar: any, // 底部导航
copyright: any, // 版权信息
bgUrl: string bgUrl: string
}, },
// 组件集合 // 组件集合
@ -38,6 +39,14 @@ const useDiyStore = defineStore('diy', {
bottomTabBar: { bottomTabBar: {
control: true, // 是否允许展示编辑 control: true, // 是否允许展示编辑
isShow: true, // 是否显示 isShow: true, // 是否显示
designNav:{
title:'',
key:''
}
},
copyright:{
control: true, // 是否允许展示编辑
isShow: false, // 是否显示
}, },
bgUrl: '' bgUrl: ''
}, },

View File

@ -0,0 +1,29 @@
<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>
</template>
<script setup lang="ts">
import { ref, nextTick } from 'vue'
import { redirect,img } from '@/utils/common'
import useSystemStore from '@/stores/system';
const systemStore = useSystemStore()
</script>
<style scoped lang="scss">
</style>

View File

@ -46,7 +46,6 @@ if (!addon && configStore.addon) {
} }
const tabbar: any = reactive({}) const tabbar: any = reactive({})
const setTabbar = () => { const setTabbar = () => {
let list = cloneDeep(useConfigStore().tabbarList); let list = cloneDeep(useConfigStore().tabbarList);
if (list.length == 1) { if (list.length == 1) {
@ -96,6 +95,19 @@ const setTabbar = () => {
setTabbar() setTabbar()
// "if (!props.addon)" configStore.addon
watch(
() => useConfigStore().addon,
(newAddon, oldAddon) => {
// props.addon configStore.addon
if (!props.addon && newAddon !== oldAddon) {
addon = newAddon; // addon
setTabbar(); // TabBar
}
},
{ immediate: true, deep: true } // +
);
watch( watch(
() => props.addon, () => props.addon,
(newValue, oldValue) => { (newValue, oldValue) => {

View File

@ -192,7 +192,7 @@ if (componentsScrollVal) {
let pages = getCurrentPages(); let pages = getCurrentPages();
const isBackShow = computed(() => { const isBackShow = computed(() => {
let bool = false; let bool = false;
if (props.isBack && pages.length > 1) { if (props.isBack) {
bool = true; bool = true;
} }
return bool; return bool;
@ -205,7 +205,14 @@ const goBack = () => {
if (typeof props.customBack === 'function') { if (typeof props.customBack === 'function') {
props.customBack(); props.customBack();
} else { } else {
uni.navigateBack(); if (getCurrentPages().length > 1) {
uni.navigateBack()
} else {
redirect({
url: '/addon/shop/pages/index',
mode: 'reLaunch'
});
}
} }
} }
/******************************* 返回按钮-end ***********************/ /******************************* 返回按钮-end ***********************/

View File

@ -1,40 +1,36 @@
{ {
"name" : "", "name": "",
"appid" : "__UNI__9B03DBD", "appid": "__UNI__9B03DBD",
"description" : "", "description": "",
"versionName" : "1.0.0", "versionName": "1.0.0",
"versionCode" : "100", "versionCode": "100",
"transformPx" : false, "transformPx": false,
/* 5+App */ "app-plus": {
"app-plus" : {
"compatible": { "compatible": {
"ignoreVersion": true "ignoreVersion": true
}, },
"usingComponents" : true, "usingComponents": true,
"nvueStyleCompiler" : "uni-app", "nvueStyleCompiler": "uni-app",
"compilerVersion" : 3, "compilerVersion": 3,
"splashscreen" : { "splashscreen": {
"alwaysShowBeforeRender" : true, "alwaysShowBeforeRender": true,
"waiting" : true, "waiting": true,
"autoclose" : true, "autoclose": true,
"delay" : 0 "delay": 0
}, },
/* */ "modules": {
"modules" : { "Camera": {},
"Camera" : {}, "Barcode": {},
"Barcode" : {}, "Contacts": {},
"Contacts" : {}, "Geolocation": {},
"Geolocation" : {}, "Payment": {},
"Payment" : {}, "VideoPlayer": {},
"VideoPlayer" : {}, "Maps": {},
"Maps" : {}, "Share": {}
"Share" : {}
}, },
/* */ "distribute": {
"distribute" : { "android": {
/* android */ "permissions": [
"android" : {
"permissions" : [
"<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>", "<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
"<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>", "<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
"<uses-permission android:name=\"android.permission.VIBRATE\"/>", "<uses-permission android:name=\"android.permission.VIBRATE\"/>",
@ -52,88 +48,71 @@
"<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>" "<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
] ]
}, },
/* ios */ "ios": {
"ios" : { "dSYMs": false
"dSYMs" : false
}, },
/* SDK */ "sdkConfigs": {
"sdkConfigs" : { "maps": {
"geolocation" : { "tencent": {
"system" : { "key": "6ZDBZ-CLSLX-66747-7MVM4-HLK47-XMBXU"
"__platform__" : [ "android" ]
}
},
"payment" : {
"alipay" : {
"__platform__" : [ "ios", "android" ]
}
},
"oauth" : {},
"maps" : {
"tencent" : {
"key" : "6ZDBZ-CLSLX-66747-7MVM4-HLK47-XMBXU"
}
},
"share" : {
"weixin" : {
"appid" : "",
"UniversalLinks" : ""
} }
} }
} }
} }
}, },
/* */ "quickapp": {},
"quickapp" : {}, "mp-weixin": {
/* */ "appid": "",
"mp-weixin" : { "setting": {
"appid" : "", "urlCheck": false
"setting" : {
"urlCheck" : false
}, },
"usingComponents" : true, "usingComponents": true,
"permission" : { "permission": {
"scope.userLocation" : { "scope.userLocation": {
"desc" : "为了更好地为您提供服务" "desc": "为了更好地为您提供服务"
}, },
"scope.writePhotosAlbum" : { "scope.writePhotosAlbum": {
"desc" : "为了更好地为您提供服务" "desc": "为了更好地为您提供服务"
} }
}, },
"requiredPrivateInfos" : [ "chooseLocation", "getLocation", "chooseAddress" ], "requiredPrivateInfos": [
"__usePrivacyCheck__" : true "chooseLocation",
"getLocation",
"chooseAddress"
],
"__usePrivacyCheck__": true
}, },
"mp-alipay" : { "mp-alipay": {
"usingComponents" : true "usingComponents": true
}, },
"mp-baidu" : { "mp-baidu": {
"usingComponents" : true "usingComponents": true
}, },
"mp-toutiao" : { "mp-toutiao": {
"usingComponents" : true "usingComponents": true
}, },
"uniStatistics" : { "uniStatistics": {
"enable" : false "enable": false
}, },
"vueVersion" : "3", "vueVersion": "3",
"h5" : { "h5": {
"router" : { "router": {
"mode" : "history", "mode": "history",
"base" : "/wap/" "base": "/wap/"
}, },
"sdkConfigs" : { "sdkConfigs": {
"maps" : { "maps": {
"qqmap" : { "qqmap": {
"key" : "" "key": ""
} }
} }
}, },
"async" : { "async": {
"loading" : "", "loading": "",
"error" : "", "error": "",
"delay" : 0, "delay": 0,
"timeout" : 3000 "timeout": 3000
} }
}, },
"fallbackLocale" : "zh-Hans" "fallbackLocale": "zh-Hans"
} }

View File

@ -216,7 +216,7 @@
], ],
"subPackages": [ "subPackages": [
// {{ PAGE_BEGAIN }} // {{ PAGE_BEGAIN }}
// {{ PAGE_END }} // {{ PAGE_END }}
{ {
"root": "app/components", "root": "app/components",
"pages": [] "pages": []

View File

@ -34,7 +34,8 @@ interface System {
weappOptions: any weappOptions: any
}, },
versionInfo: any, versionInfo: any,
updateVersionPopup: boolean updateVersionPopup: boolean,
copyright:any
} }
const useSystemStore = defineStore('system', { const useSystemStore = defineStore('system', {
@ -76,7 +77,8 @@ const useSystemStore = defineStore('system', {
weappOptions: {} weappOptions: {}
}, },
versionInfo: null, versionInfo: null,
updateVersionPopup: false updateVersionPopup: false,
copyright:null
} }
}, },
actions: { actions: {
@ -115,6 +117,9 @@ const useSystemStore = defineStore('system', {
return item.key return item.key
}) })
// 版权设置
this.copyright = data.copyright
// 会员等级 // 会员等级
const memberStore = useMemberStore(); const memberStore = useMemberStore();
memberStore.levelList = data.member_level; memberStore.levelList = data.member_level;

View File

@ -247,19 +247,19 @@ button[type='primary'],uni-button[type='primary']{
font-size: 28rpx; font-size: 28rpx;
&.class-select{ &.class-select{
position: relative; position: relative;
font-weight: 500; font-weight: 700;
color: var(--primary-color); color: var(--primary-color);
&::before { // &::before {
content: ""; // content: "";
position: absolute; // position: absolute;
bottom: -14rpx; // bottom: -14rpx;
height: 6rpx; // height: 6rpx;
border-radius: 100rpx; // border-radius: 100rpx;
background-color: var(--primary-color); // background-color: var(--primary-color);
width: 40rpx; // width: 40rpx;
left: 50%; // left: 50%;
transform: translateX(-50%); // transform: translateX(-50%);
} // }
} }
} }
} }
@ -291,19 +291,19 @@ button[type='primary'],uni-button[type='primary']{
font-size: 28rpx; font-size: 28rpx;
&.class-select{ &.class-select{
position: relative; position: relative;
font-weight: 500; font-weight: 700;
color: var(--primary-color); color: var(--primary-color);
&::before{ // &::before{
content: ""; // content: "";
position: absolute; // position: absolute;
bottom: 10rpx; // bottom: 10rpx;
width: 40rpx; // width: 40rpx;
height:6rpx; // height:6rpx;
border-radius: 4rpx; // border-radius: 4rpx;
background-color: var(--primary-color); // background-color: var(--primary-color);
left: 50%; // left: 50%;
transform: translateX(-50%); // transform: translateX(-50%);
} // }
} }
} }
} }
@ -322,19 +322,19 @@ button[type='primary'],uni-button[type='primary']{
margin:0 var(--sidebar-m); margin:0 var(--sidebar-m);
&.class-select{ &.class-select{
position: relative; position: relative;
font-weight: 500; font-weight: 700;
color: var(--primary-color); color: var(--primary-color);
&::before{ // &::before{
content: ""; // content: "";
position: absolute; // position: absolute;
bottom: 10rpx; // bottom: 10rpx;
width: 40rpx; // width: 40rpx;
height:6rpx; // height:6rpx;
border-radius: 4rpx; // border-radius: 4rpx;
background-color: var(--primary-color); // background-color: var(--primary-color);
left: 50%; // left: 50%;
transform: translateX(-50%); // transform: translateX(-50%);
} // }
} }
} }