This commit is contained in:
kailong321200875 2025-01-09 10:20:32 +08:00
parent 9c91d8d68e
commit 0aca9430c2
14 changed files with 11957 additions and 70 deletions

1
.gitignore vendored
View File

@ -4,7 +4,6 @@ dist
dist-ssr dist-ssr
*.local *.local
/dist* /dist*
*-lock.*
pnpm-debug pnpm-debug
stats.html stats.html
.idea .idea

View File

@ -34,6 +34,8 @@ export default tseslint.config({
'prettier/prettier': 'error', 'prettier/prettier': 'error',
'no-useless-escape': 0, 'no-useless-escape': 0,
'no-undef': 0, 'no-undef': 0,
'@typescript-eslint/no-unused-expressions': 0,
'@typescript-eslint/no-unsafe-function-type': 0,
'vue/no-setup-props-destructure': 0, 'vue/no-setup-props-destructure': 0,
'vue/script-setup-uses-vars': 1, 'vue/script-setup-uses-vars': 1,
'vue/no-reserved-component-names': 0, 'vue/no-reserved-component-names': 0,
@ -52,7 +54,6 @@ export default tseslint.config({
'@typescript-eslint/no-unused-vars': 0, '@typescript-eslint/no-unused-vars': 0,
'no-unused-vars': 0, 'no-unused-vars': 0,
'space-before-function-paren': 0, 'space-before-function-paren': 0,
'vue/attributes-order': 0, 'vue/attributes-order': 0,
'vue/one-component-per-file': 0, 'vue/one-component-per-file': 0,
'vue/html-closing-bracket-newline': 0, 'vue/html-closing-bracket-newline': 0,

View File

@ -29,89 +29,89 @@
}, },
"dependencies": { "dependencies": {
"@iconify/iconify": "^3.1.1", "@iconify/iconify": "^3.1.1",
"@iconify/vue": "^4.1.2", "@iconify/vue": "^4.3.0",
"@vueuse/core": "^10.11.0", "@vueuse/core": "^12.3.0",
"@wangeditor/editor": "^5.1.23", "@wangeditor/editor": "^5.1.23",
"@wangeditor/editor-for-vue": "^5.1.10", "@wangeditor/editor-for-vue": "^5.1.10",
"@zxcvbn-ts/core": "^3.0.4", "@zxcvbn-ts/core": "^3.0.4",
"animate.css": "^4.1.1", "animate.css": "^4.1.1",
"axios": "^1.7.2", "axios": "^1.7.9",
"cropperjs": "^1.6.2", "cropperjs": "^1.6.2",
"dayjs": "^1.11.11", "dayjs": "^1.11.13",
"driver.js": "^1.3.1", "driver.js": "^1.3.1",
"echarts": "^5.5.1", "echarts": "^5.6.0",
"echarts-wordcloud": "^2.1.0", "echarts-wordcloud": "^2.1.0",
"element-plus": "2.7.7", "element-plus": "2.9.2",
"lodash-es": "^4.17.21", "lodash-es": "^4.17.21",
"mitt": "^3.0.1", "mitt": "^3.0.1",
"monaco-editor": "^0.50.0", "monaco-editor": "^0.52.2",
"nprogress": "^0.2.0", "nprogress": "^0.2.0",
"pinia": "^2.1.7", "pinia": "^2.3.0",
"pinia-plugin-persistedstate": "^3.2.1", "pinia-plugin-persistedstate": "^4.2.0",
"qrcode": "^1.5.3", "qrcode": "^1.5.4",
"qs": "^6.12.3", "qs": "^6.13.1",
"url": "^0.11.3", "url": "^0.11.4",
"vue": "3.4.32", "vue": "3.5.13",
"vue-draggable-plus": "^0.5.2", "vue-draggable-plus": "^0.6.0",
"vue-i18n": "9.13.1", "vue-i18n": "11.0.1",
"vue-json-pretty": "^2.4.0", "vue-json-pretty": "^2.4.0",
"vue-router": "^4.4.0", "vue-router": "^4.5.0",
"vue-types": "^5.1.3", "vue-types": "^5.1.3",
"xgplayer": "^3.0.18" "xgplayer": "^3.0.20"
}, },
"devDependencies": { "devDependencies": {
"@commitlint/cli": "^19.3.0", "@commitlint/cli": "^19.6.1",
"@commitlint/config-conventional": "^19.2.2", "@commitlint/config-conventional": "^19.6.0",
"@iconify/json": "^2.2.229", "@iconify/json": "^2.2.293",
"@intlify/unplugin-vue-i18n": "^4.0.0", "@intlify/unplugin-vue-i18n": "^6.0.3",
"@types/fs-extra": "^11.0.4", "@types/fs-extra": "^11.0.4",
"@types/inquirer": "^9.0.7", "@types/inquirer": "^9.0.7",
"@types/lodash-es": "^4.17.12", "@types/lodash-es": "^4.17.12",
"@types/mockjs": "^1.0.10", "@types/mockjs": "^1.0.10",
"@types/node": "^20.14.11", "@types/node": "^22.10.5",
"@types/nprogress": "^0.2.3", "@types/nprogress": "^0.2.3",
"@types/qrcode": "^1.5.5", "@types/qrcode": "^1.5.5",
"@types/qs": "^6.9.15", "@types/qs": "^6.9.17",
"@types/sortablejs": "^1.15.8", "@types/sortablejs": "^1.15.8",
"@typescript-eslint/eslint-plugin": "^7.16.1", "@typescript-eslint/eslint-plugin": "^8.19.1",
"@typescript-eslint/parser": "^7.16.1", "@typescript-eslint/parser": "^8.19.1",
"@unocss/transformer-variant-group": "^0.61.5", "@unocss/transformer-variant-group": "^0.65.4",
"@vitejs/plugin-legacy": "^5.4.1", "@vitejs/plugin-legacy": "^6.0.0",
"@vitejs/plugin-vue": "^5.0.5", "@vitejs/plugin-vue": "^5.2.1",
"@vitejs/plugin-vue-jsx": "^4.0.0", "@vitejs/plugin-vue-jsx": "^4.1.1",
"autoprefixer": "^10.4.19", "autoprefixer": "^10.4.20",
"chalk": "^5.3.0", "chalk": "^5.4.1",
"consola": "^3.2.3", "consola": "^3.3.3",
"eslint": "^9.7.0", "eslint": "^9.17.0",
"eslint-config-prettier": "^9.1.0", "eslint-config-prettier": "^9.1.0",
"eslint-define-config": "^2.1.0", "eslint-define-config": "^2.1.0",
"eslint-plugin-prettier": "^5.2.1", "eslint-plugin-prettier": "^5.2.1",
"eslint-plugin-vue": "^9.27.0", "eslint-plugin-vue": "^9.32.0",
"esno": "^4.7.0", "esno": "^4.8.0",
"fs-extra": "^11.2.0", "fs-extra": "^11.2.0",
"husky": "^9.1.0", "husky": "^9.1.7",
"inquirer": "^10.0.3", "inquirer": "^12.3.0",
"less": "^4.2.0", "less": "^4.2.1",
"lint-staged": "^15.2.7", "lint-staged": "^15.3.0",
"mockjs": "^1.1.0", "mockjs": "^1.1.0",
"plop": "^4.0.1", "plop": "^4.0.1",
"postcss": "^8.4.39", "postcss": "^8.4.49",
"postcss-html": "^1.7.0", "postcss-html": "^1.7.0",
"postcss-less": "^6.0.0", "postcss-less": "^6.0.0",
"prettier": "^3.3.3", "prettier": "^3.4.2",
"rimraf": "^6.0.1", "rimraf": "^6.0.1",
"rollup": "^4.18.1", "rollup": "^4.30.1",
"rollup-plugin-visualizer": "^5.12.0", "rollup-plugin-visualizer": "^5.14.0",
"stylelint": "^16.7.0", "stylelint": "^16.12.0",
"stylelint-config-html": "^1.1.0", "stylelint-config-html": "^1.1.0",
"stylelint-config-recommended": "^14.0.1", "stylelint-config-recommended": "^14.0.1",
"stylelint-config-standard": "^36.0.1", "stylelint-config-standard": "^36.0.1",
"stylelint-order": "^6.0.4", "stylelint-order": "^6.0.4",
"terser": "^5.31.3", "terser": "^5.37.0",
"typescript": "5.5.3", "typescript": "5.7.3",
"typescript-eslint": "^7.16.1", "typescript-eslint": "^8.19.1",
"unocss": "^0.61.5", "unocss": "^0.65.4",
"vite": "5.3.4", "vite": "6.0.7",
"vite-plugin-ejs": "^1.7.0", "vite-plugin-ejs": "^1.7.0",
"vite-plugin-eslint": "^1.8.1", "vite-plugin-eslint": "^1.8.1",
"vite-plugin-mock": "2.9.6", "vite-plugin-mock": "2.9.6",
@ -120,9 +120,9 @@
"vite-plugin-style-import": "2.0.0", "vite-plugin-style-import": "2.0.0",
"vite-plugin-svg-icons": "^2.0.1", "vite-plugin-svg-icons": "^2.0.1",
"vite-plugin-url-copy": "^1.1.4", "vite-plugin-url-copy": "^1.1.4",
"vue-tsc": "^2.0.26" "vue-tsc": "^2.2.0"
}, },
"packageManager": "pnpm@8.1.0", "packageManager": "pnpm@9.15.3",
"engines": { "engines": {
"node": ">=18.0.0", "node": ">=18.0.0",
"pnpm": ">=8.1.0" "pnpm": ">=8.1.0"

11876
pnpm-lock.yaml Normal file

File diff suppressed because it is too large Load Diff

View File

@ -54,11 +54,11 @@ const props = defineProps({
default: false default: false
}, },
loadingIcon: { loadingIcon: {
type: [String, Object] as PropType<String | Component>, type: [String, Object] as PropType<string | Component>,
default: undefined default: undefined
}, },
icon: { icon: {
type: [String, Object] as PropType<String | Component>, type: [String, Object] as PropType<string | Component>,
default: undefined default: undefined
}, },
autofocus: { autofocus: {
@ -82,7 +82,7 @@ const props = defineProps({
default: false default: false
}, },
tag: { tag: {
type: [String, Object] as PropType<String | Component>, type: [String, Object] as PropType<string | Component>,
default: 'button' default: 'button'
} }
}) })

View File

@ -12,7 +12,7 @@ const props = withDefaults(
language?: string language?: string
themeSelector?: boolean themeSelector?: boolean
theme?: string theme?: string
editorOption?: Object editorOption?: object
modelValue: string modelValue: string
}>(), }>(),
{ {

View File

@ -138,7 +138,7 @@ export interface SelectComponentProps extends Omit<Partial<ISelectProps>, 'optio
children?: string children?: string
} }
on?: { on?: {
change?: (value: string | number | boolean | Object) => void change?: (value: string | number | boolean | object) => void
visibleChange?: (visible: boolean) => void visibleChange?: (visible: boolean) => void
removeTag?: (tag: any) => void removeTag?: (tag: any) => void
clear?: () => void clear?: () => void
@ -186,7 +186,7 @@ export interface SelectV2ComponentProps {
placement?: AutocompleteProps['placement'] placement?: AutocompleteProps['placement']
collapseTagsTooltip?: boolean collapseTagsTooltip?: boolean
on?: { on?: {
change?: (value: string | number | boolean | Object) => void change?: (value: string | number | boolean | object) => void
visibleChange?: (visible: boolean) => void visibleChange?: (visible: boolean) => void
removeTag?: (tag: any) => void removeTag?: (tag: any) => void
clear?: () => void clear?: () => void
@ -556,7 +556,7 @@ export interface TreeSelectComponentProps
allowDrag?: (...args: any[]) => boolean allowDrag?: (...args: any[]) => boolean
allowDrop?: (...args: any[]) => boolean allowDrop?: (...args: any[]) => boolean
on?: { on?: {
change?: (value: string | number | boolean | Object) => void change?: (value: string | number | boolean | object) => void
visibleChange?: (visible: boolean) => void visibleChange?: (visible: boolean) => void
removeTag?: (tag: any) => void removeTag?: (tag: any) => void
clear?: () => void clear?: () => void

View File

@ -32,7 +32,7 @@ const setSystemTheme = (color: string) => {
setCssVar('--el-color-primary', color) setCssVar('--el-color-primary', color)
appStore.setTheme({ elColorPrimary: color }) appStore.setTheme({ elColorPrimary: color })
const leftMenuBgColor = useCssVar('--left-menu-bg-color', document.documentElement) const leftMenuBgColor = useCssVar('--left-menu-bg-color', document.documentElement)
setMenuTheme(trim(unref(leftMenuBgColor))) setMenuTheme(trim(unref(leftMenuBgColor) as string))
} }
// //

View File

@ -21,7 +21,7 @@ export const NO_REDIRECT_WHITE_LIST = ['/login']
/** /**
* *
*/ */
export const NO_RESET_WHITE_LIST = ['Redirect', 'Login', 'NoFind', 'Root'] export const NO_RESET_WHITE_LIST = ['Redirect', 'RedirectWrap', 'Login', 'NoFind', 'Root']
/** /**
* *

View File

@ -13,7 +13,7 @@ export const useNProgress = () => {
await nextTick() await nextTick()
const bar = document.getElementById('nprogress')?.getElementsByClassName('bar')[0] as ElRef const bar = document.getElementById('nprogress')?.getElementsByClassName('bar')[0] as ElRef
if (bar) { if (bar) {
bar.style.background = unref(primaryColor.value) bar.style.background = unref(primaryColor.value) as string
} }
} }

View File

@ -20,7 +20,7 @@ export const constantRouterMap: AppRouteRecordRaw[] = [
{ {
path: '/redirect', path: '/redirect',
component: Layout, component: Layout,
name: 'Redirect', name: 'RedirectWrap',
children: [ children: [
{ {
path: '/redirect/:path(.*)', path: '/redirect/:path(.*)',

View File

@ -287,11 +287,11 @@ export const useAppStore = defineStore('app', {
// 左侧菜单选中背景颜色 // 左侧菜单选中背景颜色
leftMenuBgActiveColor: isDarkColor leftMenuBgActiveColor: isDarkColor
? 'var(--el-color-primary)' ? 'var(--el-color-primary)'
: hexToRGB(unref(primaryColor), 0.1), : hexToRGB(unref(primaryColor) as string, 0.1),
// 左侧菜单收起选中背景颜色 // 左侧菜单收起选中背景颜色
leftMenuCollapseBgActiveColor: isDarkColor leftMenuCollapseBgActiveColor: isDarkColor
? 'var(--el-color-primary)' ? 'var(--el-color-primary)'
: hexToRGB(unref(primaryColor), 0.1), : hexToRGB(unref(primaryColor) as string, 0.1),
// 左侧菜单字体颜色 // 左侧菜单字体颜色
leftMenuTextColor: isDarkColor ? '#bfcbd9' : '#333', leftMenuTextColor: isDarkColor ? '#bfcbd9' : '#333',
// 左侧菜单选中字体颜色 // 左侧菜单选中字体颜色

View File

@ -77,9 +77,20 @@ export const usePermissionStore = defineStore('permission', {
this.menuTabRouters = routers this.menuTabRouters = routers
} }
}, },
persist: { persist: [
paths: ['routers', 'addRouters', 'menuTabRouters'] {
} pick: ['routers'],
storage: localStorage
},
{
pick: ['addRouters'],
storage: localStorage
},
{
pick: ['menuTabRouters'],
storage: localStorage
}
]
}) })
export const usePermissionStoreWithOut = () => { export const usePermissionStoreWithOut = () => {