|
- <script setup>
- import { onLaunch, onShow, onHide } from '@dcloudio/uni-app'
- import { useUserStore } from '@/store/user.js'
-
- const userStore = useUserStore()
-
- function parseInviteScene(scene) {
- if (!scene) return ''
- let text = ''
- try {
- text = decodeURIComponent(scene)
- } catch (e) {
- text = scene
- }
- const match = text.match(/(?:^|[&?])i=([^&]+)/) || text.match(/(?:^|[&?])i_([^&]+)/)
- if (match) return match[1]
- if (text.indexOf('i_') === 0) return text.slice(2)
- return ''
- }
-
- function saveInviteParams(options = {}) {
- const query = options.query || {}
- const inviteCode = query.invite_code || query.invite_open_id || parseInviteScene(query.scene || '')
- if (inviteCode) uni.setStorageSync('invite_code', inviteCode)
- if (query.source) uni.setStorageSync('source', query.source)
- }
-
- function applyLightTheme() {
- if (typeof uni === 'undefined') return
- try {
- uni.setStorageSync('u-theme-mode', 'light')
- } catch (e) {}
- if (uni.$u && typeof uni.$u.setThemePreference === 'function') {
- uni.$u.setThemePreference('light')
- }
- // #ifdef MP-WEIXIN
- if (typeof uni.setNavigationBarColor === 'function') {
- try {
- uni.setNavigationBarColor({
- frontColor: '#000000',
- backgroundColor: '#ffffff',
- animation: {
- duration: 0,
- timingFunc: 'linear'
- }
- })
- } catch (e) {}
- }
- if (typeof uni.setBackgroundColor === 'function') {
- try {
- uni.setBackgroundColor({
- backgroundColor: '#ffffff',
- backgroundColorTop: '#ffffff',
- backgroundColorBottom: '#ffffff'
- })
- } catch (e) {}
- }
- // #endif
- }
-
- onLaunch((options = {}) => {
- console.log('App Launch')
- saveInviteParams(options)
- // 恢复本地登录态
- applyLightTheme()
- userStore.restore()
- })
-
- onShow((options = {}) => {
- console.log('App Show')
- saveInviteParams(options)
- applyLightTheme()
- })
-
- onHide(() => {
- console.log('App Hide')
- })
- </script>
-
- <style lang="scss">
- @import '@/uni_modules/uview-plus/index.scss';
- /* 全局公共样式 */
- @import '@/styles/common.scss';
-
- :root,
- page,
- body,
- [data-up-theme='light'],
- [data-up-theme='dark'] {
- color-scheme: light;
- --up-main-color: var(--up-light-main-color, #303133);
- --up-content-color: var(--up-light-content-color, #606266);
- --up-tips-color: var(--up-light-tips-color, #909193);
- --up-light-color: var(--up-light-light-color, #c0c4cc);
- --up-border-color: var(--up-light-border-color, #dadbde);
- --up-bg-color: var(--up-light-bg-color, #f3f4f6);
- --up-hover-bg-color: #e7ebf0;
- --up-page-bg-color: #f3f4f6;
- --up-card-bg-color: #ffffff;
- --up-navbar-bg-color: #ffffff;
- --up-disabled-color: var(--up-light-disabled-color, #c8c9cc);
- --up-primary: var(--up-light-primary, #3c9cff);
- --up-primary-dark: var(--up-light-primary-dark, #398ade);
- --up-primary-disabled: var(--up-light-primary-disabled, #9acafc);
- --up-primary-light: var(--up-light-primary-light, #ecf5ff);
- --up-warning: var(--up-light-warning, #f9ae3d);
- --up-warning-dark: var(--up-light-warning-dark, #f1a532);
- --up-warning-disabled: var(--up-light-warning-disabled, #f9d39b);
- --up-warning-light: var(--up-light-warning-light, #fdf6ec);
- --up-success: var(--up-light-success, #5ac725);
- --up-success-dark: var(--up-light-success-dark, #53c21d);
- --up-success-disabled: var(--up-light-success-disabled, #a9e08f);
- --up-success-light: var(--up-light-success-light, #f5fff0);
- --up-error: var(--up-light-error, #f56c6c);
- --up-error-dark: var(--up-light-error-dark, #e45656);
- --up-error-disabled: var(--up-light-error-disabled, #f7b2b2);
- --up-error-light: var(--up-light-error-light, #fef0f0);
- --up-info: var(--up-light-info, #909399);
- --up-info-dark: var(--up-light-info-dark, #767a82);
- --up-info-disabled: var(--up-light-info-disabled, #c4c6c9);
- --up-info-light: var(--up-light-info-light, #f4f4f5);
- --up-table2-header-bg-color: #f5f7fa;
- --up-table2-zebra-bg-color: #fafafa;
- --up-table2-highlight-bg-color: #f5f7fa;
- --up-gap-bg-color: #f3f4f6;
- --up-skeleton-bg-color: #f1f2f4;
- --up-skeleton-shimmer-color: #e6e6e6;
- --up-swipe-action-button-bg-color: #c7c6cd;
- --up-index-list-indicator-bg-color: #c9c9c9;
- --up-calendar-month-mark-color: rgba(231, 232, 234, 0.83);
-
- --u-main-color: var(--up-main-color);
- --u-content-color: var(--up-content-color);
- --u-tips-color: var(--up-tips-color);
- --u-light-color: var(--up-light-color);
- --u-border-color: var(--up-border-color);
- --u-bg-color: var(--up-bg-color);
- --u-hover-bg-color: var(--up-hover-bg-color);
- --u-disabled-color: var(--up-disabled-color);
- --u-primary: var(--up-primary);
- --u-primary-dark: var(--up-primary-dark);
- --u-primary-disabled: var(--up-primary-disabled);
- --u-primary-light: var(--up-primary-light);
- --u-warning: var(--up-warning);
- --u-warning-dark: var(--up-warning-dark);
- --u-warning-disabled: var(--up-warning-disabled);
- --u-warning-light: var(--up-warning-light);
- --u-success: var(--up-success);
- --u-success-dark: var(--up-success-dark);
- --u-success-disabled: var(--up-success-disabled);
- --u-success-light: var(--up-success-light);
- --u-error: var(--up-error);
- --u-error-dark: var(--up-error-dark);
- --u-error-disabled: var(--up-error-disabled);
- --u-error-light: var(--up-error-light);
- --u-info: var(--up-info);
- --u-info-dark: var(--up-info-dark);
- --u-info-disabled: var(--up-info-disabled);
- --u-info-light: var(--up-info-light);
- }
- </style>
|