config:打包配置

master
黄伟杰 3 weeks ago
parent d22cbc5f5a
commit 97b01ad413

@ -1 +1 @@
VITE_APP_BASE_URL=
VITE_APP_BASE_URL=http://47.106.185.127:8089/

@ -6,14 +6,14 @@
<up-tabbar-item v-for="(item, index) in tabList" :key="index" :text="item.text" :name="index">
<template #active-icon>
<uni-icons v-if="item.iconType === 'uni-icons'" :type="item.iconName" size="30" :color="activeColor" />
<u-icon v-else-if="item.iconType === 'uview-plus'" :name="item.iconName" size="30"
:color="activeColor"></u-icon>
<up-icon v-else-if="item.iconType === 'uview-plus'" :name="item.iconName" size="30"
:color="activeColor"></up-icon>
<image v-else :src="item.selectedIcon" class="tabbar-icon" mode="widthFix" />
</template>
<template #inactive-icon>
<uni-icons v-if="item.iconType === 'uni-icons'" :type="item.iconName" size="30" :color="inactiveColor" />
<u-icon v-else-if="item.iconType === 'uview-plus'" :name="item.iconName" size="30"
:color="inactiveColor"></u-icon>
<up-icon v-else-if="item.iconType === 'uview-plus'" :name="item.iconName" size="30"
:color="inactiveColor"></up-icon>
<image v-else :src="item.icon" class="tabbar-icon" mode="widthFix" />
</template>
</up-tabbar-item>

@ -1,3 +1,5 @@
const buildVersion = typeof __APP_BUILD_VERSION__ === 'string' ? __APP_BUILD_VERSION__ : 'dev'
// 应用全局配置
const config = {
baseUrl: import.meta.env.VITE_APP_BASE_URL,
@ -6,7 +8,7 @@ const config = {
// 应用名称
name: "必硕生管系统",
// 应用版本
version: "1.1.0",
version: buildVersion,
// 应用logo
logo: "/static/logo.png",
// 官方网站

@ -3,7 +3,7 @@
"appid" : "__UNI__333F1FF",
"description" : "",
"versionName" : "1.0.0",
"versionCode" : "100",
"versionCode" : 101,
"transformPx" : false,
/* 5+App */
"app-plus" : {

@ -24,11 +24,12 @@
</template>
<script setup>
import { onMounted, onUnmounted, ref, computed } from 'vue'
import { onMounted, onUnmounted, ref, computed, watch } from 'vue'
import { useI18n } from 'vue-i18n'
import { storeToRefs } from 'pinia'
import { onLocaleChange, offLocaleChange, setNavigationTitle } from '@/locales'
import useUserStore from '@/store/modules/user'
import { getFirstTabBarPath } from '@/utils/permissionMenu'
import NavBar from '@/components/common/NavBar.vue'
import TabBar from '@/components/common/TabBar.vue'
import AppEmptyState from '@/components/common/AppEmptyState.vue'
@ -39,9 +40,10 @@ import QualitySection from '@/components/dashboard/QualitySection.vue'
const { t } = useI18n()
const pageTitle = computed(() => t('nav.home'))
const HOME_PATH = '/pages/index'
const userStore = useUserStore()
const { menus } = storeToRefs(userStore)
const { menus, permissionInfoLoaded } = storeToRefs(userStore)
const homeMenu = computed(() => {
return (menus.value || []).find((m) => m.name === '首页')
@ -92,6 +94,27 @@ function goTop() {
scrollTop.value = 0
}, 0)
}
function redirectIfHomeUnavailable() {
if (!userStore.token || !permissionInfoLoaded.value) {
return
}
if (homeMenu.value) {
return
}
const targetPath = getFirstTabBarPath(menus.value)
if (targetPath && targetPath !== HOME_PATH) {
uni.reLaunch({
url: targetPath
})
}
}
watch([permissionInfoLoaded, menus], () => {
redirectIfHomeUnavailable()
}, { immediate: true })
</script>
<style lang="scss" scoped>

@ -1,7 +1,7 @@
<template>
<view class="scroll-container">
<view class="login-container">
<!-- <NavBar title=" " /> -->
<NavBar title=" " />
<!-- Logo区域 -->
<view class="logo-section">
<view class="logo-wrapper">
@ -33,6 +33,8 @@
<view class="login-btn-wrapper">
<button @click="handleLogin" class="login-btn">登录</button>
</view>
<view class="build-version">构建版本{{ globalConfig.appInfo.version }}</view>
</view>
</view>
</view>
@ -129,7 +131,7 @@ page {
/* 顶部装饰背景 */
.background-decoration {
position: absolute;
top: 20rpx;
top: 100rpx;
left: -9.2%;
right: -9.2%;
width: 118.4%;
@ -238,6 +240,13 @@ page {
}
}
}
.build-version {
text-align: center;
font-size: 24rpx;
color: #8a94a6;
letter-spacing: 1rpx;
}
}
}
}

@ -24,6 +24,7 @@ const useUserStore = defineStore("user", {
roles: Array(),
permissions: [],
menus: [],
permissionInfoLoaded: false,
}),
actions: {
// 登录
@ -41,6 +42,7 @@ const useUserStore = defineStore("user", {
.then((res: any) => {
setToken(res.data.accessToken);
this.token = res.data.accessToken;
this.permissionInfoLoaded = false;
clearPermissionInfoCache();
resolve(null);
})
@ -69,10 +71,12 @@ const useUserStore = defineStore("user", {
this.name = user.nickname;
this.userId = user.id;
this.avatar = avatar;
this.permissionInfoLoaded = true;
initAllDict().catch(() => {});
resolve(res);
})
.catch((error) => {
this.permissionInfoLoaded = false;
reject(error);
});
});
@ -92,6 +96,7 @@ const useUserStore = defineStore("user", {
this.roles = [];
this.permissions = [];
this.menus = [];
this.permissionInfoLoaded = false;
this.name = "";
this.avatar = "";
removeToken();

@ -1,3 +1,6 @@
import { getTerminalType, TERMINAL_TYPE_SCANNER } from '@/utils/terminal'
const DIRECT_ROUTE_PREFIXES = ['pages/', 'page_', 'pages_']
const MENU_ROUTE_MAP = {
@ -177,7 +180,11 @@ export function getTabBarMenus(menus) {
.filter(Boolean)
}
export function getFirstTabBarPath(menus, fallback = '/pages/mine') {
export function getMineTabBarPath() {
return Number(getTerminalType()) === Number(TERMINAL_TYPE_SCANNER) ? '/pages/smq/mine' : '/pages/mine'
}
export function getFirstTabBarPath(menus, fallback = getMineTabBarPath()) {
return getTabBarMenus(menus)[0]?.path || fallback
}

@ -1,14 +1,42 @@
import { defineConfig } from 'vite'
import uni from '@dcloudio/vite-plugin-uni'
function padNumber(value) {
return String(value).padStart(2, '0')
}
function createBuildVersion() {
const now = new Date()
return [
now.getFullYear(),
padNumber(now.getMonth() + 1),
padNumber(now.getDate())
].join('') + [
padNumber(now.getHours()),
padNumber(now.getMinutes()),
padNumber(now.getSeconds())
].join('')
}
export default defineConfig(() => {
const buildVersion = createBuildVersion()
return {
base: '/',
define: {
__APP_BUILD_VERSION__: JSON.stringify(buildVersion)
},
build: {
outDir: 'dist',
},
server: {
port: 5173
port: 5173,
proxy: {
'/admin-api': {
target: 'http://47.106.185.127:8089',
changeOrigin: true
}
}
},
plugins: [
uni()

Loading…
Cancel
Save