1
0
mirror of https://github.com/zclzone/vue-naive-admin.git synced 2025-05-01 14:49:00 +08:00

Compare commits

..

2 Commits

Author SHA1 Message Date
zclzone
520db7ec6e style: lint 2024-09-06 14:46:07 +08:00
zclzone
2264512a8b chore: update deps 2024-09-06 14:27:47 +08:00
39 changed files with 1167 additions and 974 deletions

View File

@ -6,5 +6,5 @@
* Copyright © 2023 Ronnie Zhang(大脸怪) | https://isme.top * Copyright © 2023 Ronnie Zhang(大脸怪) | https://isme.top
**********************************/ **********************************/
export { pluginPagePathes } from './page-pathes'
export { pluginIcons } from './icons' export { pluginIcons } from './icons'
export { pluginPagePathes } from './page-pathes'

View File

@ -13,42 +13,42 @@
}, },
"dependencies": { "dependencies": {
"@arco-design/color": "^0.4.0", "@arco-design/color": "^0.4.0",
"@vueuse/core": "^10.11.1", "@vueuse/core": "^11.0.3",
"axios": "^1.7.3", "axios": "^1.7.7",
"dayjs": "^1.11.12", "dayjs": "^1.11.13",
"echarts": "^5.5.1", "echarts": "^5.5.1",
"lodash-es": "^4.17.21", "lodash-es": "^4.17.21",
"naive-ui": "^2.39.0", "naive-ui": "^2.39.0",
"pinia": "^2.2.1", "pinia": "^2.2.2",
"pinia-plugin-persistedstate": "^3.2.1", "pinia-plugin-persistedstate": "^4.0.0",
"vue": "^3.4.37", "vue": "^3.5.3",
"vue-echarts": "^6.7.3", "vue-echarts": "^7.0.3",
"vue-router": "^4.4.3", "vue-router": "^4.4.3",
"xlsx": "^0.18.5" "xlsx": "^0.18.5"
}, },
"devDependencies": { "devDependencies": {
"@antfu/eslint-config": "^2.25.1", "@antfu/eslint-config": "^3.3.2",
"@iconify/json": "^2.2.235", "@iconify/json": "^2.2.245",
"@unocss/eslint-config": "^0.61.9", "@unocss/eslint-config": "^0.62.3",
"@unocss/eslint-plugin": "^0.61.9", "@unocss/eslint-plugin": "^0.62.3",
"@unocss/preset-rem-to-px": "^0.61.9", "@unocss/preset-rem-to-px": "^0.62.3",
"@vitejs/plugin-vue": "^5.1.2", "@vitejs/plugin-vue": "^5.1.3",
"@vitejs/plugin-vue-jsx": "^4.0.1", "@vitejs/plugin-vue-jsx": "^4.0.1",
"eslint": "^9.9.0", "eslint": "^9.9.1",
"eslint-plugin-format": "^0.1.2", "eslint-plugin-format": "^0.1.2",
"esno": "^4.7.0", "esno": "^4.7.0",
"fs-extra": "^11.2.0", "fs-extra": "^11.2.0",
"lint-staged": "^15.2.8", "lint-staged": "^15.2.10",
"rollup-plugin-visualizer": "^5.12.0", "rollup-plugin-visualizer": "^5.12.0",
"sass": "^1.77.8", "sass": "^1.78.0",
"simple-git-hooks": "^2.11.1", "simple-git-hooks": "^2.11.1",
"taze": "^0.16.3", "taze": "^0.16.7",
"unocss": "^0.61.9", "unocss": "^0.62.3",
"unplugin-auto-import": "^0.18.2", "unplugin-auto-import": "^0.18.2",
"unplugin-vue-components": "^0.27.3", "unplugin-vue-components": "^0.27.4",
"vite": "^5.4.0", "vite": "^5.4.3",
"vite-plugin-router-warn": "^1.0.0", "vite-plugin-router-warn": "^1.0.0",
"vite-plugin-vue-devtools": "^7.3.7" "vite-plugin-vue-devtools": "^7.4.4"
}, },
"simple-git-hooks": { "simple-git-hooks": {
"pre-commit": "pnpm lint-staged" "pre-commit": "pnpm lint-staged"

1891
pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff

View File

@ -29,10 +29,10 @@
</template> </template>
<script setup> <script setup>
import { darkTheme, dateZhCN, zhCN } from 'naive-ui'
import { layoutSettingVisible } from './settings'
import { LayoutSetting } from '@/components' import { LayoutSetting } from '@/components'
import { useAppStore, useTabStore } from '@/store' import { useAppStore, useTabStore } from '@/store'
import { darkTheme, dateZhCN, zhCN } from 'naive-ui'
import { layoutSettingVisible } from './settings'
const layouts = new Map() const layouts = new Map()
function getLayout(name) { function getLayout(name) {

View File

@ -94,8 +94,8 @@
<script setup> <script setup>
import { MeModal } from '@/components' import { MeModal } from '@/components'
import { useAppStore } from '@/store'
import { useModal } from '@/composables' import { useModal } from '@/composables'
import { useAppStore } from '@/store'
const appStore = useAppStore() const appStore = useAppStore()
const [modalRef] = useModal() const [modalRef] = useModal()

View File

@ -14,8 +14,8 @@
</template> </template>
<script setup> <script setup>
import { getPresetColors } from '@arco-design/color'
import { useAppStore } from '@/store' import { useAppStore } from '@/store'
import { getPresetColors } from '@arco-design/color'
const appStore = useAppStore() const appStore = useAppStore()

View File

@ -7,8 +7,8 @@
</template> </template>
<script setup> <script setup>
import { useDark, useToggle } from '@vueuse/core'
import { useAppStore } from '@/store' import { useAppStore } from '@/store'
import { useDark, useToggle } from '@vueuse/core'
const appStore = useAppStore() const appStore = useAppStore()
const isDark = useDark() const isDark = useDark()

View File

@ -1,6 +1,6 @@
export { default as AppCard } from './AppCard.vue' export { default as AppCard } from './AppCard.vue'
export { default as TheFooter } from './TheFooter.vue'
export { default as AppPage } from './AppPage.vue' export { default as AppPage } from './AppPage.vue'
export { default as CommonPage } from './CommonPage.vue' export { default as CommonPage } from './CommonPage.vue'
export { default as LayoutSetting } from './LayoutSetting.vue' export { default as LayoutSetting } from './LayoutSetting.vue'
export { default as TheFooter } from './TheFooter.vue'
export { default as ToggleTheme } from './ToggleTheme.vue' export { default as ToggleTheme } from './ToggleTheme.vue'

View File

@ -1,3 +1,3 @@
export { default as MeModal } from './modal/index.vue'
export { default as MeCrud } from './crud/index.vue' export { default as MeCrud } from './crud/index.vue'
export { default as MeQueryItem } from './crud/QueryItem.vue' export { default as MeQueryItem } from './crud/QueryItem.vue'
export { default as MeModal } from './modal/index.vue'

View File

@ -1,4 +1,4 @@
export * from './useAliveData'
export * from './useCrud' export * from './useCrud'
export * from './useForm' export * from './useForm'
export * from './useModal' export * from './useModal'
export * from './useAliveData'

View File

@ -21,9 +21,9 @@
</template> </template>
<script setup> <script setup>
import { useAuthStore, usePermissionStore, useUserStore } from '@/store'
import { RoleSelect } from '@/layouts/components'
import api from '@/api' import api from '@/api'
import { RoleSelect } from '@/layouts/components'
import { useAuthStore, usePermissionStore, useUserStore } from '@/store'
const router = useRouter() const router = useRouter()
const userStore = useUserStore() const userStore = useUserStore()

View File

@ -1,8 +1,8 @@
export { default as RoleSelect } from './RoleSelect.vue'
export { default as UserAvatar } from './UserAvatar.vue'
export { default as MenuCollapse } from './MenuCollapse.vue'
export { default as BreadCrumb } from './BreadCrumb.vue' export { default as BreadCrumb } from './BreadCrumb.vue'
export { default as AppTab } from './tab/index.vue' export { default as Fullscreen } from './Fullscreen.vue'
export { default as MenuCollapse } from './MenuCollapse.vue'
export { default as RoleSelect } from './RoleSelect.vue'
export { default as SideLogo } from './SideLogo.vue' export { default as SideLogo } from './SideLogo.vue'
export { default as SideMenu } from './SideMenu.vue' export { default as SideMenu } from './SideMenu.vue'
export { default as Fullscreen } from './Fullscreen.vue' export { default as AppTab } from './tab/index.vue'
export { default as UserAvatar } from './UserAvatar.vue'

View File

@ -36,8 +36,8 @@
</template> </template>
<script setup> <script setup>
import ContextMenu from './ContextMenu.vue'
import { useTabStore } from '@/store' import { useTabStore } from '@/store'
import ContextMenu from './ContextMenu.vue'
const router = useRouter() const router = useRouter()
const tabStore = useTabStore() const tabStore = useTabStore()

View File

@ -27,10 +27,10 @@
</template> </template>
<script setup> <script setup>
import SideBar from './sidebar/index.vue'
import AppHeader from './header/index.vue'
import { useAppStore } from '@/store'
import { AppTab } from '@/layouts/components' import { AppTab } from '@/layouts/components'
import { useAppStore } from '@/store'
import AppHeader from './header/index.vue'
import SideBar from './sidebar/index.vue'
const appStore = useAppStore() const appStore = useAppStore()
</script> </script>

View File

@ -24,9 +24,9 @@
</template> </template>
<script setup> <script setup>
import SideBar from './sidebar/index.vue'
import AppHeader from './header/index.vue'
import { useAppStore } from '@/store' import { useAppStore } from '@/store'
import AppHeader from './header/index.vue'
import SideBar from './sidebar/index.vue'
const appStore = useAppStore() const appStore = useAppStore()
</script> </script>

View File

@ -23,8 +23,8 @@
</template> </template>
<script setup> <script setup>
import SideBar from './sidebar/index.vue'
import { useAppStore } from '@/store' import { useAppStore } from '@/store'
import SideBar from './sidebar/index.vue'
const appStore = useAppStore() const appStore = useAppStore()
</script> </script>

View File

@ -8,16 +8,16 @@
* Copyright © 2023 Ronnie Zhang(大脸怪) | https://isme.top * Copyright © 2023 Ronnie Zhang(大脸怪) | https://isme.top
**********************************/ **********************************/
import 'uno.css'
import '@/styles/reset.css'
import '@/styles/global.scss'
import { createApp } from 'vue' import { createApp } from 'vue'
import App from './App.vue' import App from './App.vue'
import { setupDirectives } from './directives'
import { setupRouter } from './router' import { setupRouter } from './router'
import { setupStore } from './store' import { setupStore } from './store'
import { setupNaiveDiscreteApi } from './utils' import { setupNaiveDiscreteApi } from './utils'
import { setupDirectives } from './directives' import '@/styles/global.scss'
import '@/styles/reset.css'
import 'uno.css'
async function bootstrap() { async function bootstrap() {
const app = createApp(App) const app = createApp(App)

View File

@ -6,8 +6,8 @@
* Copyright © 2023 Ronnie Zhang(大脸怪) | https://isme.top * Copyright © 2023 Ronnie Zhang(大脸怪) | https://isme.top
**********************************/ **********************************/
import { useAuthStore, usePermissionStore, useUserStore } from '@/store'
import api from '@/api' import api from '@/api'
import { useAuthStore, usePermissionStore, useUserStore } from '@/store'
import { getPermissions, getUserInfo } from '@/store/helper' import { getPermissions, getUserInfo } from '@/store/helper'
const WHITE_LIST = ['/login', '/404'] const WHITE_LIST = ['/login', '/404']

View File

@ -7,8 +7,8 @@
**********************************/ **********************************/
import { createRouter, createWebHashHistory, createWebHistory } from 'vue-router' import { createRouter, createWebHashHistory, createWebHistory } from 'vue-router'
import { setupRouterGuards } from './guards'
import { basicRoutes } from './basic-routes' import { basicRoutes } from './basic-routes'
import { setupRouterGuards } from './guards'
export const router = createRouter({ export const router = createRouter({
history: history:

View File

@ -1,5 +1,5 @@
import { basePermissions } from '@/settings'
import api from '@/api' import api from '@/api'
import { basePermissions } from '@/settings'
export async function getUserInfo() { export async function getUserInfo() {
const res = await api.getUser() const res = await api.getUser()

View File

@ -6,10 +6,10 @@
* Copyright © 2023 Ronnie Zhang(大脸怪) | https://isme.top * Copyright © 2023 Ronnie Zhang(大脸怪) | https://isme.top
**********************************/ **********************************/
import { defineStore } from 'pinia'
import { useDark } from '@vueuse/core'
import { generate, getRgbStr } from '@arco-design/color'
import { defaultLayout, defaultPrimaryColor, naiveThemeOverrides } from '@/settings' import { defaultLayout, defaultPrimaryColor, naiveThemeOverrides } from '@/settings'
import { generate, getRgbStr } from '@arco-design/color'
import { useDark } from '@vueuse/core'
import { defineStore } from 'pinia'
export const useAppStore = defineStore('app', { export const useAppStore = defineStore('app', {
state: () => ({ state: () => ({

View File

@ -6,8 +6,8 @@
* Copyright © 2023 Ronnie Zhang(大脸怪) | https://isme.top * Copyright © 2023 Ronnie Zhang(大脸怪) | https://isme.top
**********************************/ **********************************/
import { defineStore } from 'pinia'
import { usePermissionStore, useRouterStore, useTabStore, useUserStore } from '@/store' import { usePermissionStore, useRouterStore, useTabStore, useUserStore } from '@/store'
import { defineStore } from 'pinia'
export const useAuthStore = defineStore('auth', { export const useAuthStore = defineStore('auth', {
state: () => ({ state: () => ({

View File

@ -1,6 +1,6 @@
export * from './app' export * from './app'
export * from './auth' export * from './auth'
export * from './permission' export * from './permission'
export * from './router'
export * from './tab' export * from './tab'
export * from './user' export * from './user'
export * from './router'

View File

@ -6,9 +6,9 @@
* Copyright © 2023 Ronnie Zhang(大脸怪) | https://isme.top * Copyright © 2023 Ronnie Zhang(大脸怪) | https://isme.top
**********************************/ **********************************/
import { isExternal } from '@/utils'
import { hyphenate } from '@vueuse/core' import { hyphenate } from '@vueuse/core'
import { defineStore } from 'pinia' import { defineStore } from 'pinia'
import { isExternal } from '@/utils'
export const usePermissionStore = defineStore('permission', { export const usePermissionStore = defineStore('permission', {
state: () => ({ state: () => ({

View File

@ -7,29 +7,10 @@
* Copyright © 2023 Ronnie Zhang(大脸怪) | https://isme.top * Copyright © 2023 Ronnie Zhang(大脸怪) | https://isme.top
**********************************/ **********************************/
import { resolveResError } from './helpers'
import { useAuthStore } from '@/store' import { useAuthStore } from '@/store'
import { resolveResError } from './helpers'
export function setupInterceptors(axiosInstance) { export function setupInterceptors(axiosInstance) {
function reqResolve(config) {
// 处理不需要token的请求
if (config.needToken === false) {
return config
}
const { accessToken } = useAuthStore()
if (accessToken) {
// token: Bearer + xxx
config.headers.Authorization = `Bearer ${accessToken}`
}
return config
}
function reqReject(error) {
return Promise.reject(error)
}
const SUCCESS_CODES = [0, 200] const SUCCESS_CODES = [0, 200]
function resResolve(response) { function resResolve(response) {
const { data, status, config, statusText, headers } = response const { data, status, config, statusText, headers } = response
@ -49,6 +30,29 @@ export function setupInterceptors(axiosInstance) {
return Promise.resolve(data ?? response) return Promise.resolve(data ?? response)
} }
axiosInstance.interceptors.request.use(reqResolve, reqReject)
axiosInstance.interceptors.response.use(resResolve, resReject)
}
function reqResolve(config) {
// 处理不需要token的请求
if (config.needToken === false) {
return config
}
const { accessToken } = useAuthStore()
if (accessToken) {
// token: Bearer + xxx
config.headers.Authorization = `Bearer ${accessToken}`
}
return config
}
function reqReject(error) {
return Promise.reject(error)
}
async function resReject(error) { async function resReject(error) {
if (!error || !error.response) { if (!error || !error.response) {
const code = error?.code const code = error?.code
@ -64,7 +68,3 @@ export function setupInterceptors(axiosInstance) {
const message = resolveResError(code, data?.message ?? error.message, needTip) const message = resolveResError(code, data?.message ?? error.message, needTip)
return Promise.reject({ code, message, error: error.response?.data || error.response }) return Promise.reject({ code, message, error: error.response?.data || error.response })
} }
axiosInstance.interceptors.request.use(reqResolve, reqReject)
axiosInstance.interceptors.response.use(resResolve, resReject)
}

View File

@ -7,9 +7,9 @@
* Copyright © 2023 Ronnie Zhang(大脸怪) | https://isme.top * Copyright © 2023 Ronnie Zhang(大脸怪) | https://isme.top
**********************************/ **********************************/
import * as NaiveUI from 'naive-ui'
import { isNullOrUndef } from '@/utils'
import { useAppStore } from '@/store' import { useAppStore } from '@/store'
import { isNullOrUndef } from '@/utils'
import * as NaiveUI from 'naive-ui'
export function setupMessage(NMessage) { export function setupMessage(NMessage) {
class Message { class Message {

View File

@ -22,8 +22,8 @@
<script setup> <script setup>
import { MeModal } from '@/components' import { MeModal } from '@/components'
import { sleep } from '@/utils'
import { useModal } from '@/composables' import { useModal } from '@/composables'
import { sleep } from '@/utils'
const text = ref('') const text = ref('')
const [$modal1, okLoading1] = useModal() const [$modal1, okLoading1] = useModal()

View File

@ -160,13 +160,13 @@
</template> </template>
<script setup> <script setup>
import * as echarts from 'echarts/core' import { useUserStore } from '@/store'
import { GridComponent, LegendComponent, TooltipComponent } from 'echarts/components'
import { BarChart, LineChart, PieChart } from 'echarts/charts' import { BarChart, LineChart, PieChart } from 'echarts/charts'
import { GridComponent, LegendComponent, TooltipComponent } from 'echarts/components'
import * as echarts from 'echarts/core'
import { UniversalTransition } from 'echarts/features' import { UniversalTransition } from 'echarts/features'
import { CanvasRenderer } from 'echarts/renderers' import { CanvasRenderer } from 'echarts/renderers'
import VChart from 'vue-echarts' import VChart from 'vue-echarts'
import { useUserStore } from '@/store'
const userStore = useUserStore() const userStore = useUserStore()

View File

@ -101,10 +101,10 @@
</template> </template>
<script setup> <script setup>
import { useAuthStore } from '@/store'
import { lStorage, throttle } from '@/utils'
import { useStorage } from '@vueuse/core' import { useStorage } from '@vueuse/core'
import api from './api' import api from './api'
import { lStorage, throttle } from '@/utils'
import { useAuthStore } from '@/store'
const authStore = useAuthStore() const authStore = useAuthStore()
const router = useRouter() const router = useRouter()

View File

@ -6,8 +6,8 @@
* Copyright © 2023 Ronnie Zhang(大脸怪) | https://isme.top * Copyright © 2023 Ronnie Zhang(大脸怪) | https://isme.top
**********************************/ **********************************/
import axios from 'axios'
import { request } from '@/utils' import { request } from '@/utils'
import axios from 'axios'
export default { export default {
getMenuTree: () => request.get('/permission/menu/tree'), getMenuTree: () => request.get('/permission/menu/tree'),

View File

@ -38,8 +38,8 @@
</template> </template>
<script setup> <script setup>
import { withModifiers } from 'vue'
import { NButton } from 'naive-ui' import { NButton } from 'naive-ui'
import { withModifiers } from 'vue'
import api from '../api' import api from '../api'
import ResAddOrEdit from './ResAddOrEdit.vue' import ResAddOrEdit from './ResAddOrEdit.vue'

View File

@ -159,12 +159,12 @@
</template> </template>
<script setup> <script setup>
import pagePathes from 'isme:page-pathes'
import icons from 'isme:icons'
import api from '../api'
import QuestionLabel from './QuestionLabel.vue'
import { MeModal } from '@/components' import { MeModal } from '@/components'
import { useForm, useModal } from '@/composables' import { useForm, useModal } from '@/composables'
import icons from 'isme:icons'
import pagePathes from 'isme:page-pathes'
import api from '../api'
import QuestionLabel from './QuestionLabel.vue'
const props = defineProps({ const props = defineProps({
menus: { menus: {

View File

@ -11,7 +11,7 @@
<div class="flex"> <div class="flex">
<n-spin size="small" :show="treeLoading"> <n-spin size="small" :show="treeLoading">
<MenuTree <MenuTree
v-model:currentMenu="currentMenu" v-model:current-menu="currentMenu"
class="w-320 shrink-0" class="w-320 shrink-0"
:tree-data="treeData" :tree-data="treeData"
@refresh="initData" @refresh="initData"
@ -92,11 +92,11 @@
</template> </template>
<script setup> <script setup>
import { MeCrud } from '@/components'
import { NButton, NSwitch } from 'naive-ui' import { NButton, NSwitch } from 'naive-ui'
import api from './api'
import MenuTree from './components/MenuTree.vue' import MenuTree from './components/MenuTree.vue'
import ResAddOrEdit from './components/ResAddOrEdit.vue' import ResAddOrEdit from './components/ResAddOrEdit.vue'
import api from './api'
import { MeCrud } from '@/components'
const treeData = ref([]) const treeData = ref([])
const treeLoading = ref(false) const treeLoading = ref(false)

View File

@ -95,10 +95,10 @@
</template> </template>
<script setup> <script setup>
import { NButton, NSwitch } from 'naive-ui'
import api from './api'
import { MeCrud, MeModal, MeQueryItem } from '@/components' import { MeCrud, MeModal, MeQueryItem } from '@/components'
import { useCrud } from '@/composables' import { useCrud } from '@/composables'
import { NButton, NSwitch } from 'naive-ui'
import api from './api'
defineOptions({ name: 'RoleMgt' }) defineOptions({ name: 'RoleMgt' })

View File

@ -67,11 +67,11 @@
</template> </template>
<script setup> <script setup>
import { MeCrud, MeQueryItem } from '@/components'
import { formatDateTime } from '@/utils'
import { NAvatar, NButton, NSwitch, NTag } from 'naive-ui' import { NAvatar, NButton, NSwitch, NTag } from 'naive-ui'
import { h } from 'vue' import { h } from 'vue'
import api from './api' import api from './api'
import { MeCrud, MeQueryItem } from '@/components'
import { formatDateTime } from '@/utils'
defineOptions({ name: 'RoleUser' }) defineOptions({ name: 'RoleUser' })
const route = useRoute() const route = useRoute()

View File

@ -110,11 +110,11 @@
</template> </template>
<script setup> <script setup>
import { NAvatar, NButton, NSwitch, NTag } from 'naive-ui'
import api from './api'
import { formatDateTime } from '@/utils'
import { MeCrud, MeModal, MeQueryItem } from '@/components' import { MeCrud, MeModal, MeQueryItem } from '@/components'
import { useCrud } from '@/composables' import { useCrud } from '@/composables'
import { formatDateTime } from '@/utils'
import { NAvatar, NButton, NSwitch, NTag } from 'naive-ui'
import api from './api'
defineOptions({ name: 'UserMgt' }) defineOptions({ name: 'UserMgt' })

View File

@ -105,11 +105,11 @@
</template> </template>
<script setup> <script setup>
import api from './api'
import { MeModal } from '@/components' import { MeModal } from '@/components'
import { useForm, useModal } from '@/composables' import { useForm, useModal } from '@/composables'
import { useUserStore } from '@/store' import { useUserStore } from '@/store'
import { getUserInfo } from '@/store/helper' import { getUserInfo } from '@/store/helper'
import api from './api'
const userStore = useUserStore() const userStore = useUserStore()
const required = { const required = {

View File

@ -6,9 +6,9 @@
* Copyright © 2023 Ronnie Zhang(大脸怪) | https://isme.top * Copyright © 2023 Ronnie Zhang(大脸怪) | https://isme.top
**********************************/ **********************************/
import { defineConfig, presetAttributify, presetIcons, presetUno } from 'unocss'
import presetRemToPx from '@unocss/preset-rem-to-px'
import { FileSystemIconLoader } from '@iconify/utils/lib/loader/node-loaders' import { FileSystemIconLoader } from '@iconify/utils/lib/loader/node-loaders'
import presetRemToPx from '@unocss/preset-rem-to-px'
import { defineConfig, presetAttributify, presetIcons, presetUno } from 'unocss'
import { getIcons } from './build/index.js' import { getIcons } from './build/index.js'
const icons = getIcons() const icons = getIcons()

View File

@ -7,15 +7,15 @@
**********************************/ **********************************/
import path from 'node:path' import path from 'node:path'
import { defineConfig, loadEnv } from 'vite'
import Vue from '@vitejs/plugin-vue' import Vue from '@vitejs/plugin-vue'
import VueDevTools from 'vite-plugin-vue-devtools' import VueJsx from '@vitejs/plugin-vue-jsx'
import Unocss from 'unocss/vite' import Unocss from 'unocss/vite'
import AutoImport from 'unplugin-auto-import/vite' import AutoImport from 'unplugin-auto-import/vite'
import Components from 'unplugin-vue-components/vite'
import { NaiveUiResolver } from 'unplugin-vue-components/resolvers' import { NaiveUiResolver } from 'unplugin-vue-components/resolvers'
import Components from 'unplugin-vue-components/vite'
import { defineConfig, loadEnv } from 'vite'
import removeNoMatch from 'vite-plugin-router-warn' import removeNoMatch from 'vite-plugin-router-warn'
import VueJsx from '@vitejs/plugin-vue-jsx' import VueDevTools from 'vite-plugin-vue-devtools'
import { pluginIcons, pluginPagePathes } from './build/plugin-isme' import { pluginIcons, pluginPagePathes } from './build/plugin-isme'
export default defineConfig(({ mode }) => { export default defineConfig(({ mode }) => {