diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 00000000..dd765724 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,14 @@ +# http://editorconfig.org +root = true + +# 表示所有文件适用 +[*] +charset = utf-8 # 设置文件字符集为 utf-8 +end_of_line = lf # 控制换行类型(lf | cr | crlf) +indent_style = tab # 缩进风格(tab | space) +insert_final_newline = true # 始终在文件末尾插入一个新行 + +# 表示仅 md 文件适用以下规则 +[*.md] +max_line_length = off # 关闭最大行长度限制 +trim_trailing_whitespace = false # 关闭末尾空格修剪 diff --git a/.env.production b/.env.production index bc89fec3..fbcbed58 100644 --- a/.env.production +++ b/.env.production @@ -1,5 +1,4 @@ ## 生产环境 -NODE_ENV='production' VITE_APP_TITLE = 'vue3-element-admin' VITE_APP_PORT = 3000 diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 00000000..43af40f4 --- /dev/null +++ b/.eslintignore @@ -0,0 +1,14 @@ +dist +node_modules +public +.husky +.vscode +.idea +*.sh +*.md + +src/assets + +.eslintrc.cjs +.prettierrc.cjs +.stylelintrc.cjs diff --git a/.eslintrc-auto-import.json b/.eslintrc-auto-import.json new file mode 100644 index 00000000..9f369423 --- /dev/null +++ b/.eslintrc-auto-import.json @@ -0,0 +1,269 @@ +{ + "globals": { + "EffectScope": true, + "ElForm": true, + "ElMessage": true, + "ElMessageBox": true, + "ElTree": true, + "asyncComputed": true, + "autoResetRef": true, + "computed": true, + "computedAsync": true, + "computedEager": true, + "computedInject": true, + "computedWithControl": true, + "controlledComputed": true, + "controlledRef": true, + "createApp": true, + "createEventHook": true, + "createGlobalState": true, + "createInjectionState": true, + "createReactiveFn": true, + "createSharedComposable": true, + "createUnrefFn": true, + "customRef": true, + "debouncedRef": true, + "debouncedWatch": true, + "defineAsyncComponent": true, + "defineComponent": true, + "eagerComputed": true, + "effectScope": true, + "extendRef": true, + "getCurrentInstance": true, + "getCurrentScope": true, + "h": true, + "ignorableWatch": true, + "inject": true, + "isDefined": true, + "isProxy": true, + "isReactive": true, + "isReadonly": true, + "isRef": true, + "makeDestructurable": true, + "markRaw": true, + "nextTick": true, + "onActivated": true, + "onBeforeMount": true, + "onBeforeUnmount": true, + "onBeforeUpdate": true, + "onClickOutside": true, + "onDeactivated": true, + "onErrorCaptured": true, + "onKeyStroke": true, + "onLongPress": true, + "onMounted": true, + "onRenderTracked": true, + "onRenderTriggered": true, + "onScopeDispose": true, + "onServerPrefetch": true, + "onStartTyping": true, + "onUnmounted": true, + "onUpdated": true, + "pausableWatch": true, + "provide": true, + "reactify": true, + "reactifyObject": true, + "reactive": true, + "reactiveComputed": true, + "reactiveOmit": true, + "reactivePick": true, + "readonly": true, + "ref": true, + "refAutoReset": true, + "refDebounced": true, + "refDefault": true, + "refThrottled": true, + "refWithControl": true, + "resolveComponent": true, + "resolveDirective": true, + "resolveRef": true, + "resolveUnref": true, + "shallowReactive": true, + "shallowReadonly": true, + "shallowRef": true, + "syncRef": true, + "syncRefs": true, + "templateRef": true, + "throttledRef": true, + "throttledWatch": true, + "toRaw": true, + "toReactive": true, + "toRef": true, + "toRefs": true, + "triggerRef": true, + "tryOnBeforeMount": true, + "tryOnBeforeUnmount": true, + "tryOnMounted": true, + "tryOnScopeDispose": true, + "tryOnUnmounted": true, + "unref": true, + "unrefElement": true, + "until": true, + "useActiveElement": true, + "useArrayEvery": true, + "useArrayFilter": true, + "useArrayFind": true, + "useArrayFindIndex": true, + "useArrayFindLast": true, + "useArrayJoin": true, + "useArrayMap": true, + "useArrayReduce": true, + "useArraySome": true, + "useArrayUnique": true, + "useAsyncQueue": true, + "useAsyncState": true, + "useAttrs": true, + "useBase64": true, + "useBattery": true, + "useBluetooth": true, + "useBreakpoints": true, + "useBroadcastChannel": true, + "useBrowserLocation": true, + "useCached": true, + "useClipboard": true, + "useCloned": true, + "useColorMode": true, + "useConfirmDialog": true, + "useCounter": true, + "useCssModule": true, + "useCssVar": true, + "useCssVars": true, + "useCurrentElement": true, + "useCycleList": true, + "useDark": true, + "useDateFormat": true, + "useDebounce": true, + "useDebounceFn": true, + "useDebouncedRefHistory": true, + "useDeviceMotion": true, + "useDeviceOrientation": true, + "useDevicePixelRatio": true, + "useDevicesList": true, + "useDisplayMedia": true, + "useDocumentVisibility": true, + "useDraggable": true, + "useDropZone": true, + "useElementBounding": true, + "useElementByPoint": true, + "useElementHover": true, + "useElementSize": true, + "useElementVisibility": true, + "useEventBus": true, + "useEventListener": true, + "useEventSource": true, + "useEyeDropper": true, + "useFavicon": true, + "useFetch": true, + "useFileDialog": true, + "useFileSystemAccess": true, + "useFocus": true, + "useFocusWithin": true, + "useFps": true, + "useFullscreen": true, + "useGamepad": true, + "useGeolocation": true, + "useIdle": true, + "useImage": true, + "useInfiniteScroll": true, + "useIntersectionObserver": true, + "useInterval": true, + "useIntervalFn": true, + "useKeyModifier": true, + "useLastChanged": true, + "useLocalStorage": true, + "useMagicKeys": true, + "useManualRefHistory": true, + "useMediaControls": true, + "useMediaQuery": true, + "useMemoize": true, + "useMemory": true, + "useMounted": true, + "useMouse": true, + "useMouseInElement": true, + "useMousePressed": true, + "useMutationObserver": true, + "useNavigatorLanguage": true, + "useNetwork": true, + "useNow": true, + "useObjectUrl": true, + "useOffsetPagination": true, + "useOnline": true, + "usePageLeave": true, + "useParallax": true, + "usePermission": true, + "usePointer": true, + "usePointerLock": true, + "usePointerSwipe": true, + "usePreferredColorScheme": true, + "usePreferredContrast": true, + "usePreferredDark": true, + "usePreferredLanguages": true, + "usePreferredReducedMotion": true, + "usePrevious": true, + "useRafFn": true, + "useRefHistory": true, + "useResizeObserver": true, + "useScreenOrientation": true, + "useScreenSafeArea": true, + "useScriptTag": true, + "useScroll": true, + "useScrollLock": true, + "useSessionStorage": true, + "useShare": true, + "useSlots": true, + "useSorted": true, + "useSpeechRecognition": true, + "useSpeechSynthesis": true, + "useStepper": true, + "useStorage": true, + "useStorageAsync": true, + "useStyleTag": true, + "useSupported": true, + "useSwipe": true, + "useTemplateRefsList": true, + "useTextDirection": true, + "useTextSelection": true, + "useTextareaAutosize": true, + "useThrottle": true, + "useThrottleFn": true, + "useThrottledRefHistory": true, + "useTimeAgo": true, + "useTimeout": true, + "useTimeoutFn": true, + "useTimeoutPoll": true, + "useTimestamp": true, + "useTitle": true, + "useToNumber": true, + "useToString": true, + "useToggle": true, + "useTransition": true, + "useUrlSearchParams": true, + "useUserMedia": true, + "useVModel": true, + "useVModels": true, + "useVibrate": true, + "useVirtualList": true, + "useWakeLock": true, + "useWebNotification": true, + "useWebSocket": true, + "useWebWorker": true, + "useWebWorkerFn": true, + "useWindowFocus": true, + "useWindowScroll": true, + "useWindowSize": true, + "watch": true, + "watchArray": true, + "watchAtMost": true, + "watchDebounced": true, + "watchEffect": true, + "watchIgnorable": true, + "watchOnce": true, + "watchPausable": true, + "watchPostEffect": true, + "watchSyncEffect": true, + "watchThrottled": true, + "watchTriggerable": true, + "watchWithFilter": true, + "whenever": true + } +} \ No newline at end of file diff --git a/.eslintrc.cjs b/.eslintrc.cjs new file mode 100644 index 00000000..007ecfa2 --- /dev/null +++ b/.eslintrc.cjs @@ -0,0 +1,39 @@ +module.exports = { + env: { + browser: true, + es2021: true, + node: true, + }, + parser: "vue-eslint-parser", + extends: [ + // 参考vuejs官方的eslint配置: https://eslint.vuejs.org/user-guide/#usage + "plugin:vue/vue3-recommended", + "./.eslintrc-auto-import.json", + "prettier", + ], + parserOptions: { + ecmaVersion: "latest", + sourceType: "module", + parser: "@typescript-eslint/parser", + }, + plugins: ["vue", "@typescript-eslint"], + rules: { + "vue/multi-word-component-names": "off", // 关闭组件名必须多字: https://eslint.vuejs.org/rules/multi-word-component-names.html + "@typescript-eslint/no-empty-function": "off", // 关闭空方法检查 + "@typescript-eslint/no-explicit-any": "off", // 关闭any类型的警告 + "vue/no-v-model-argument": "off", + "@typescript-eslint/no-non-null-assertion": "off", + }, + // eslint不能对html文件生效 + overrides: [ + { + files: ["*.html"], + processor: "vue/.vue", + }, + ], + // https://eslint.org/docs/latest/use/configure/language-options#specifying-globals + globals: { + DialogOption: "readonly", + OptionType: "readonly", + }, +}; diff --git a/.gitignore b/.gitignore index 1da66c1e..d5c3e837 100644 --- a/.gitignore +++ b/.gitignore @@ -14,4 +14,4 @@ dist-ssr *.local package-lock.json -yarn.lock \ No newline at end of file +pnpm-lock.yaml diff --git a/.husky/commit-msg b/.husky/commit-msg new file mode 100755 index 00000000..e8511eae --- /dev/null +++ b/.husky/commit-msg @@ -0,0 +1,4 @@ +#!/bin/sh +. "$(dirname "$0")/_/husky.sh" + +npx --no-install commitlint --edit $1 diff --git a/.husky/pre-commit b/.husky/pre-commit new file mode 100755 index 00000000..37568d10 --- /dev/null +++ b/.husky/pre-commit @@ -0,0 +1,4 @@ +#!/bin/sh +. "$(dirname "$0")/_/husky.sh" + +npm run lint:lint-staged diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 00000000..d751f74a --- /dev/null +++ b/.prettierignore @@ -0,0 +1,10 @@ +dist +node_modules +public +.husky +.vscode +.idea +*.sh +*.md + +src/assets diff --git a/.prettierrc.cjs b/.prettierrc.cjs new file mode 100644 index 00000000..d39f28c0 --- /dev/null +++ b/.prettierrc.cjs @@ -0,0 +1,36 @@ +module.exports = { + // (x)=>{},单个参数箭头函数是否显示小括号。(always:始终显示;avoid:省略括号。默认:always) + arrowParens: "always", + // 开始标签的右尖括号是否跟随在最后一行属性末尾,默认false + bracketSameLine: false, + // 对象字面量的括号之间打印空格 (true - Example: { foo: bar } ; false - Example: {foo:bar}) + bracketSpacing: true, + // 是否格式化一些文件中被嵌入的代码片段的风格(auto|off;默认auto) + embeddedLanguageFormatting: "auto", + // 指定 HTML 文件的空格敏感度 (css|strict|ignore;默认css) + htmlWhitespaceSensitivity: "css", + // 当文件已经被 Prettier 格式化之后,是否会在文件顶部插入一个特殊的 @format 标记,默认false + insertPragma: false, + // 在 JSX 中使用单引号替代双引号,默认false + jsxSingleQuote: false, + // 每行最多字符数量,超出换行(默认80) + printWidth: 80, + // 超出打印宽度 (always | never | preserve ) + proseWrap: "preserve", + // 对象属性是否使用引号(as-needed | consistent | preserve;默认as-needed:对象的属性需要加引号才添加;) + quoteProps: "as-needed", + // 是否只格式化在文件顶部包含特定注释(@prettier| @format)的文件,默认false + requirePragma: false, + // 结尾添加分号 + semi: true, + // 使用单引号 (true:单引号;false:双引号) + singleQuote: false, + // 缩进空格数,默认2个空格 + tabWidth: 2, + // 元素末尾是否加逗号,默认es5: ES5中的 objects, arrays 等会添加逗号,TypeScript 中的 type 后不加逗号 + trailingComma: "es5", + // 指定缩进方式,空格或tab,默认false,即使用空格 + useTabs: false, + // vue 文件中是否缩进 \ No newline at end of file diff --git a/src/assets/icons/checkbox.svg b/src/assets/icons/checkbox.svg deleted file mode 100644 index 013fd3a2..00000000 --- a/src/assets/icons/checkbox.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/client.svg b/src/assets/icons/client.svg new file mode 100644 index 00000000..ad4bc15a --- /dev/null +++ b/src/assets/icons/client.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/clipboard.svg b/src/assets/icons/clipboard.svg deleted file mode 100644 index 90923ff6..00000000 --- a/src/assets/icons/clipboard.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/close.svg b/src/assets/icons/close.svg new file mode 100644 index 00000000..5b5057f2 --- /dev/null +++ b/src/assets/icons/close.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/close_all.svg b/src/assets/icons/close_all.svg new file mode 100644 index 00000000..aa13cd75 --- /dev/null +++ b/src/assets/icons/close_all.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/close_left.svg b/src/assets/icons/close_left.svg new file mode 100644 index 00000000..e5708ea5 --- /dev/null +++ b/src/assets/icons/close_left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/close_other.svg b/src/assets/icons/close_other.svg new file mode 100644 index 00000000..212e6c28 --- /dev/null +++ b/src/assets/icons/close_other.svg @@ -0,0 +1 @@ + diff --git a/src/assets/icons/close_right.svg b/src/assets/icons/close_right.svg new file mode 100644 index 00000000..14d3cf39 --- /dev/null +++ b/src/assets/icons/close_right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/code.svg b/src/assets/icons/code.svg deleted file mode 100644 index ed4d23cf..00000000 --- a/src/assets/icons/code.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/color.svg b/src/assets/icons/color.svg deleted file mode 100644 index 44a81aab..00000000 --- a/src/assets/icons/color.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/component.svg b/src/assets/icons/component.svg deleted file mode 100644 index 29c34580..00000000 --- a/src/assets/icons/component.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/coupon.svg b/src/assets/icons/coupon.svg new file mode 100644 index 00000000..2f952b24 --- /dev/null +++ b/src/assets/icons/coupon.svg @@ -0,0 +1 @@ + diff --git a/src/assets/icons/date-range.svg b/src/assets/icons/date-range.svg deleted file mode 100644 index fda571e7..00000000 --- a/src/assets/icons/date-range.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/date.svg b/src/assets/icons/date.svg deleted file mode 100644 index 52dc73ee..00000000 --- a/src/assets/icons/date.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/dict.svg b/src/assets/icons/dict.svg index 48493773..22a82781 100644 --- a/src/assets/icons/dict.svg +++ b/src/assets/icons/dict.svg @@ -1 +1,18 @@ - \ No newline at end of file + + + + + + + diff --git a/src/assets/icons/dict_item.svg b/src/assets/icons/dict_item.svg new file mode 100644 index 00000000..903109a7 --- /dev/null +++ b/src/assets/icons/dict_item.svg @@ -0,0 +1,12 @@ + + + + + + + + + diff --git a/src/assets/icons/document.svg b/src/assets/icons/document.svg new file mode 100644 index 00000000..918ae33d --- /dev/null +++ b/src/assets/icons/document.svg @@ -0,0 +1 @@ + diff --git a/src/assets/icons/documentation.svg b/src/assets/icons/documentation.svg deleted file mode 100644 index 70431228..00000000 --- a/src/assets/icons/documentation.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/download.svg b/src/assets/icons/download.svg index c8969513..61ec1f9f 100644 --- a/src/assets/icons/download.svg +++ b/src/assets/icons/download.svg @@ -1 +1 @@ - \ No newline at end of file + diff --git a/src/assets/icons/druid.svg b/src/assets/icons/druid.svg deleted file mode 100644 index a2b4b4ed..00000000 --- a/src/assets/icons/druid.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/education.svg b/src/assets/icons/education.svg deleted file mode 100644 index 7bfb01d1..00000000 --- a/src/assets/icons/education.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/email.svg b/src/assets/icons/email.svg deleted file mode 100644 index 74d25e21..00000000 --- a/src/assets/icons/email.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/example.svg b/src/assets/icons/example.svg deleted file mode 100644 index 46f42b53..00000000 --- a/src/assets/icons/example.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/excel.svg b/src/assets/icons/excel.svg deleted file mode 100644 index 74d97b80..00000000 --- a/src/assets/icons/excel.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/form.svg b/src/assets/icons/form.svg deleted file mode 100644 index 9ab55a03..00000000 --- a/src/assets/icons/form.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/src/assets/icons/goods-list.svg b/src/assets/icons/goods-list.svg new file mode 100644 index 00000000..fcb971ed --- /dev/null +++ b/src/assets/icons/goods-list.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/goods.svg b/src/assets/icons/goods.svg new file mode 100644 index 00000000..60c1c734 --- /dev/null +++ b/src/assets/icons/goods.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/homepage.svg b/src/assets/icons/homepage.svg new file mode 100644 index 00000000..48f4e249 --- /dev/null +++ b/src/assets/icons/homepage.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/icon.svg b/src/assets/icons/icon.svg deleted file mode 100644 index 82be8eee..00000000 --- a/src/assets/icons/icon.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/input.svg b/src/assets/icons/input.svg deleted file mode 100644 index ab91381e..00000000 --- a/src/assets/icons/input.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/international.svg b/src/assets/icons/international.svg deleted file mode 100644 index e9b56eee..00000000 --- a/src/assets/icons/international.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/ip.svg b/src/assets/icons/ip.svg deleted file mode 100644 index e59f29b3..00000000 --- a/src/assets/icons/ip.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/src/assets/icons/job.svg b/src/assets/icons/job.svg deleted file mode 100644 index 2a93a251..00000000 --- a/src/assets/icons/job.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/lab.svg b/src/assets/icons/lab.svg new file mode 100644 index 00000000..d4d60aac --- /dev/null +++ b/src/assets/icons/lab.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/language.svg b/src/assets/icons/language.svg index 0082b577..d2dd693d 100644 --- a/src/assets/icons/language.svg +++ b/src/assets/icons/language.svg @@ -1 +1 @@ - \ No newline at end of file + diff --git a/src/assets/icons/link.svg b/src/assets/icons/link.svg index 48197ba4..9748d530 100644 --- a/src/assets/icons/link.svg +++ b/src/assets/icons/link.svg @@ -1 +1 @@ - \ No newline at end of file + diff --git a/src/assets/icons/list.svg b/src/assets/icons/list.svg deleted file mode 100644 index 20259edd..00000000 --- a/src/assets/icons/list.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/lock.svg b/src/assets/icons/lock.svg deleted file mode 100644 index 74fee543..00000000 --- a/src/assets/icons/lock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/log.svg b/src/assets/icons/log.svg deleted file mode 100644 index d879d33b..00000000 --- a/src/assets/icons/log.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/logininfor.svg b/src/assets/icons/logininfor.svg deleted file mode 100644 index 267f8447..00000000 --- a/src/assets/icons/logininfor.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/menu.svg b/src/assets/icons/menu.svg index 719c78dc..92c364c2 100644 --- a/src/assets/icons/menu.svg +++ b/src/assets/icons/menu.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/src/assets/icons/message.svg b/src/assets/icons/message.svg index 14ca8172..ea1ddef1 100644 --- a/src/assets/icons/message.svg +++ b/src/assets/icons/message.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/src/assets/icons/money.svg b/src/assets/icons/money.svg index c1580de1..60f7acf4 100644 --- a/src/assets/icons/money.svg +++ b/src/assets/icons/money.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/src/assets/icons/multi_level.svg b/src/assets/icons/multi_level.svg new file mode 100644 index 00000000..a1a27921 --- /dev/null +++ b/src/assets/icons/multi_level.svg @@ -0,0 +1 @@ + diff --git a/src/assets/icons/offline.svg b/src/assets/icons/offline.svg deleted file mode 100644 index d09cb16c..00000000 --- a/src/assets/icons/offline.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/src/assets/icons/online.svg b/src/assets/icons/online.svg deleted file mode 100644 index 330a2029..00000000 --- a/src/assets/icons/online.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/order.svg b/src/assets/icons/order.svg new file mode 100644 index 00000000..8f2107ec --- /dev/null +++ b/src/assets/icons/order.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/pdf.svg b/src/assets/icons/pdf.svg deleted file mode 100644 index 957aa0cc..00000000 --- a/src/assets/icons/pdf.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/people.svg b/src/assets/icons/people.svg deleted file mode 100644 index 2bd54aeb..00000000 --- a/src/assets/icons/people.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/peoples.svg b/src/assets/icons/peoples.svg index 907404cd..383b82d2 100644 --- a/src/assets/icons/peoples.svg +++ b/src/assets/icons/peoples.svg @@ -1 +1 @@ - + \ No newline at end of file diff --git a/src/assets/icons/perm.svg b/src/assets/icons/perm.svg index 8ed624b9..b38d0657 100644 --- a/src/assets/icons/perm.svg +++ b/src/assets/icons/perm.svg @@ -1 +1 @@ - \ No newline at end of file + diff --git a/src/assets/icons/phone.svg b/src/assets/icons/phone.svg deleted file mode 100644 index ab8e8c4e..00000000 --- a/src/assets/icons/phone.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/post.svg b/src/assets/icons/post.svg deleted file mode 100644 index 2922c613..00000000 --- a/src/assets/icons/post.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/publish.svg b/src/assets/icons/publish.svg new file mode 100644 index 00000000..e9b489c3 --- /dev/null +++ b/src/assets/icons/publish.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/qq.svg b/src/assets/icons/qq.svg deleted file mode 100644 index ee13d4ec..00000000 --- a/src/assets/icons/qq.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/question.svg b/src/assets/icons/question.svg deleted file mode 100644 index cf75bd4b..00000000 --- a/src/assets/icons/question.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/rabbitmq.svg b/src/assets/icons/rabbitmq.svg new file mode 100644 index 00000000..65aa1985 --- /dev/null +++ b/src/assets/icons/rabbitmq.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/radio.svg b/src/assets/icons/radio.svg deleted file mode 100644 index 0cde3452..00000000 --- a/src/assets/icons/radio.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/refresh.svg b/src/assets/icons/refresh.svg new file mode 100644 index 00000000..1f549f1a --- /dev/null +++ b/src/assets/icons/refresh.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/route.svg b/src/assets/icons/route.svg deleted file mode 100644 index b2071244..00000000 --- a/src/assets/icons/route.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/src/assets/icons/row.svg b/src/assets/icons/row.svg deleted file mode 100644 index 07809922..00000000 --- a/src/assets/icons/row.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/search.svg b/src/assets/icons/search.svg deleted file mode 100644 index 84233dda..00000000 --- a/src/assets/icons/search.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/security.svg b/src/assets/icons/security.svg new file mode 100644 index 00000000..bcd9d2e6 --- /dev/null +++ b/src/assets/icons/security.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/select.svg b/src/assets/icons/select.svg deleted file mode 100644 index d6283828..00000000 --- a/src/assets/icons/select.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/server.svg b/src/assets/icons/server.svg deleted file mode 100644 index ca37b001..00000000 --- a/src/assets/icons/server.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/shopping.svg b/src/assets/icons/shopping.svg index 87513e7c..8d2b4bf9 100644 --- a/src/assets/icons/shopping.svg +++ b/src/assets/icons/shopping.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/src/assets/icons/slider.svg b/src/assets/icons/slider.svg deleted file mode 100644 index fbe4f39f..00000000 --- a/src/assets/icons/slider.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/star.svg b/src/assets/icons/star.svg deleted file mode 100644 index 6cf86e66..00000000 --- a/src/assets/icons/star.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/swagger.svg b/src/assets/icons/swagger.svg deleted file mode 100644 index 05d4e7bc..00000000 --- a/src/assets/icons/swagger.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/switch.svg b/src/assets/icons/switch.svg deleted file mode 100644 index 0ba61e38..00000000 --- a/src/assets/icons/switch.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/system.svg b/src/assets/icons/system.svg index dba28cf6..e3b7e2d4 100644 --- a/src/assets/icons/system.svg +++ b/src/assets/icons/system.svg @@ -1,2 +1 @@ - \ No newline at end of file + diff --git a/src/assets/icons/tab.svg b/src/assets/icons/tab.svg deleted file mode 100644 index b4b48e48..00000000 --- a/src/assets/icons/tab.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/table.svg b/src/assets/icons/table.svg deleted file mode 100644 index 0e3dc9de..00000000 --- a/src/assets/icons/table.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/textarea.svg b/src/assets/icons/textarea.svg deleted file mode 100644 index 2709f292..00000000 --- a/src/assets/icons/textarea.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/time-range.svg b/src/assets/icons/time-range.svg deleted file mode 100644 index 13c1202b..00000000 --- a/src/assets/icons/time-range.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/time.svg b/src/assets/icons/time.svg deleted file mode 100644 index b376e32a..00000000 --- a/src/assets/icons/time.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/tool.svg b/src/assets/icons/tool.svg deleted file mode 100644 index c813067e..00000000 --- a/src/assets/icons/tool.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/tree-table.svg b/src/assets/icons/tree-table.svg deleted file mode 100644 index 8aafdb82..00000000 --- a/src/assets/icons/tree-table.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/tree.svg b/src/assets/icons/tree.svg index dd4b7dd2..d40a414d 100644 --- a/src/assets/icons/tree.svg +++ b/src/assets/icons/tree.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/src/assets/icons/upload.svg b/src/assets/icons/upload.svg deleted file mode 100644 index bae49c0a..00000000 --- a/src/assets/icons/upload.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/user.svg b/src/assets/icons/user.svg index 0ba0716a..e4c7b389 100644 --- a/src/assets/icons/user.svg +++ b/src/assets/icons/user.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/src/assets/icons/uv.svg b/src/assets/icons/uv.svg new file mode 100644 index 00000000..ca4c3012 --- /dev/null +++ b/src/assets/icons/uv.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/validCode.svg b/src/assets/icons/validCode.svg deleted file mode 100644 index cfb10214..00000000 --- a/src/assets/icons/validCode.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/valid_code.svg b/src/assets/icons/valid_code.svg new file mode 100644 index 00000000..39bf4783 --- /dev/null +++ b/src/assets/icons/valid_code.svg @@ -0,0 +1,9 @@ + + + + diff --git a/src/assets/icons/verify_code.svg b/src/assets/icons/verify_code.svg new file mode 100644 index 00000000..39bf4783 --- /dev/null +++ b/src/assets/icons/verify_code.svg @@ -0,0 +1,9 @@ + + + + diff --git a/src/assets/icons/wechat.svg b/src/assets/icons/wechat.svg deleted file mode 100644 index c586e551..00000000 --- a/src/assets/icons/wechat.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/zip.svg b/src/assets/icons/zip.svg deleted file mode 100644 index f806fc48..00000000 --- a/src/assets/icons/zip.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/components/Breadcrumb/index.vue b/src/components/Breadcrumb/index.vue index 2c5e158b..a17fc3f0 100644 --- a/src/components/Breadcrumb/index.vue +++ b/src/components/Breadcrumb/index.vue @@ -1,19 +1,16 @@ \ No newline at end of file + diff --git a/src/components/Dictionary/index.vue b/src/components/Dictionary/index.vue new file mode 100644 index 00000000..892cc642 --- /dev/null +++ b/src/components/Dictionary/index.vue @@ -0,0 +1,53 @@ + + + diff --git a/src/components/GithubCorner/index.vue b/src/components/GithubCorner/index.vue index 2f507ca4..4b0bba98 100644 --- a/src/components/GithubCorner/index.vue +++ b/src/components/GithubCorner/index.vue @@ -1,17 +1,22 @@ - - diff --git a/src/components/IconSelect/index.vue b/src/components/IconSelect/index.vue index f4be7071..bea826d1 100644 --- a/src/components/IconSelect/index.vue +++ b/src/components/IconSelect/index.vue @@ -1,83 +1,165 @@ - + - \ No newline at end of file + diff --git a/src/components/LangSelect/index.vue b/src/components/LangSelect/index.vue index b94de2fb..b4a63ead 100644 --- a/src/components/LangSelect/index.vue +++ b/src/components/LangSelect/index.vue @@ -1,49 +1,39 @@ + + - - - - \ No newline at end of file diff --git a/src/components/Pagination/index.vue b/src/components/Pagination/index.vue index e0f85f21..84e8f3e0 100644 --- a/src/components/Pagination/index.vue +++ b/src/components/Pagination/index.vue @@ -1,102 +1,88 @@ - - diff --git a/src/components/RightPanel/index.vue b/src/components/RightPanel/index.vue index 41e2786d..01eb464e 100644 --- a/src/components/RightPanel/index.vue +++ b/src/components/RightPanel/index.vue @@ -1,155 +1,136 @@ - - - - diff --git a/src/components/Screenfull/index.vue b/src/components/Screenfull/index.vue deleted file mode 100644 index b5b86973..00000000 --- a/src/components/Screenfull/index.vue +++ /dev/null @@ -1,12 +0,0 @@ - - - \ No newline at end of file diff --git a/src/components/SizeSelect/index.vue b/src/components/SizeSelect/index.vue index 32040a5a..a48f9148 100644 --- a/src/components/SizeSelect/index.vue +++ b/src/components/SizeSelect/index.vue @@ -1,14 +1,31 @@ + + - - - - \ No newline at end of file diff --git a/src/components/SvgIcon/index.vue b/src/components/SvgIcon/index.vue index 05cc3cde..07b65e8d 100644 --- a/src/components/SvgIcon/index.vue +++ b/src/components/SvgIcon/index.vue @@ -1,36 +1,45 @@ \ No newline at end of file + diff --git a/src/components/TagInput/index.vue b/src/components/TagInput/index.vue new file mode 100644 index 00000000..92b4129b --- /dev/null +++ b/src/components/TagInput/index.vue @@ -0,0 +1,510 @@ + + + + diff --git a/src/components/TagInput/util.ts b/src/components/TagInput/util.ts new file mode 100644 index 00000000..3328db75 --- /dev/null +++ b/src/components/TagInput/util.ts @@ -0,0 +1,34 @@ +/** + * getRePosFromStr 正则匹配字段返回位置信息 + * */ +export function getRePosFromStr(text: any = '', re: any = /\$.+?\$/g) { + const lines = text.split('\n') + const positions: any = [] + let m + for (let i = 0; i < lines.length; i++) { + const l = lines[i] + while ((m = re.exec(l)) !== null) { + var tag = m[0].substring(1, m[0].length - 1) + positions.push({ + line: i, + start: m.index, + stop: m.index + m[0].length, + tag, + }) + } + } + return positions +} +/** + * 输入框模式 + */ +export enum MODE { + // 文本 + TEXT = 1, + // 公式 + FORMULA, + // 只允许选择tag + ONLYTAG, + // 日期 + DATE +} \ No newline at end of file diff --git a/src/components/ThemePicker/index.vue b/src/components/ThemePicker/index.vue deleted file mode 100644 index 0bfb2fa0..00000000 --- a/src/components/ThemePicker/index.vue +++ /dev/null @@ -1,57 +0,0 @@ - - - - - diff --git a/src/components/TreeSelect/index.vue b/src/components/TreeSelect/index.vue deleted file mode 100644 index 18c99e40..00000000 --- a/src/components/TreeSelect/index.vue +++ /dev/null @@ -1,170 +0,0 @@ - - - - - diff --git a/src/components/Upload/MultiUpload.vue b/src/components/Upload/MultiUpload.vue new file mode 100644 index 00000000..0da012af --- /dev/null +++ b/src/components/Upload/MultiUpload.vue @@ -0,0 +1,139 @@ + + + + + diff --git a/src/components/Upload/SingleUpload.vue b/src/components/Upload/SingleUpload.vue index 9a81fb5b..4038c72b 100644 --- a/src/components/Upload/SingleUpload.vue +++ b/src/components/Upload/SingleUpload.vue @@ -1,142 +1,81 @@ - + + diff --git a/src/components/WangEditor/index.vue b/src/components/WangEditor/index.vue index bd53bae2..cdd6deca 100644 --- a/src/components/WangEditor/index.vue +++ b/src/components/WangEditor/index.vue @@ -1,73 +1,74 @@ \ No newline at end of file diff --git a/src/directive/index.ts b/src/directive/index.ts index 984b4016..960fa44f 100644 --- a/src/directive/index.ts +++ b/src/directive/index.ts @@ -1 +1,9 @@ -export {hasPerm,hasRole} from "./permission"; \ No newline at end of file +import type { App } from 'vue'; + +import { hasPerm } from './permission'; + +// 全局注册 directive +export function setupDirective(app: App) { + // 使 v-hasPerm 在所有组件中都可用 + app.directive('hasPerm', hasPerm); +} diff --git a/src/directive/permission/index.ts b/src/directive/permission/index.ts index 7b278b7b..b8d0dee8 100644 --- a/src/directive/permission/index.ts +++ b/src/directive/permission/index.ts @@ -1,55 +1,55 @@ -import useStore from "@/store"; -import { Directive, DirectiveBinding } from "vue"; +import { useUserStoreHook } from '@/store/modules/user'; +import { Directive, DirectiveBinding } from 'vue'; /** - * 按钮权限校验 + * 按钮权限 */ export const hasPerm: Directive = { - mounted(el: HTMLElement, binding: DirectiveBinding) { - // 「超级管理员」拥有所有的按钮权限 - const { user } = useStore() - const roles = user.roles; - if (roles.includes('ROOT')) { - return true - } - // 「其他角色」按钮权限校验 - const { value } = binding; - if (value) { - const requiredPerms = value; // DOM绑定需要的按钮权限标识 + mounted(el: HTMLElement, binding: DirectiveBinding) { + // 「超级管理员」拥有所有的按钮权限 + const { roles, perms } = useUserStoreHook(); + if (roles.includes('ROOT')) { + return true; + } + // 「其他角色」按钮权限校验 + const { value } = binding; + if (value) { + const requiredPerms = value; // DOM绑定需要的按钮权限标识 - const hasPerm = user.perms.some(perm => { - return requiredPerms.includes(perm) - }) + const hasPerm = perms?.some(perm => { + return requiredPerms.includes(perm); + }); - if (!hasPerm) { - el.parentNode && el.parentNode.removeChild(el); - } - } else { - throw new Error("need perms! Like v-has-perm=\"['sys:user:add','sys:user:edit']\""); - } + if (!hasPerm) { + el.parentNode && el.parentNode.removeChild(el); + } + } else { + throw new Error( + "need perms! Like v-has-perm=\"['sys:user:add','sys:user:edit']\"" + ); } + } }; /** - * 角色权限校验 + * 角色权限 */ export const hasRole: Directive = { - mounted(el: HTMLElement, binding: DirectiveBinding) { - const { value } = binding; - - if (value) { - const requiredRoles = value; // DOM绑定需要的角色编码 - const { user } = useStore() - const hasRole = user.roles.some(perm => { - return requiredRoles.includes(perm) - }) + mounted(el: HTMLElement, binding: DirectiveBinding) { + const { value } = binding; + + if (value) { + const requiredRoles = value; // DOM绑定需要的角色编码 + const { roles } = useUserStoreHook(); + const hasRole = roles.some(perm => { + return requiredRoles.includes(perm); + }); - if (!hasRole) { - el.parentNode && el.parentNode.removeChild(el); - } - } else { - throw new Error("need roles! Like v-has-role=\"['admin','test']\""); - } + if (!hasRole) { + el.parentNode && el.parentNode.removeChild(el); + } + } else { + throw new Error("need roles! Like v-has-role=\"['admin','test']\""); } + } }; - diff --git a/src/enums/MenuTypeEnum.ts b/src/enums/MenuTypeEnum.ts new file mode 100644 index 00000000..96c612e4 --- /dev/null +++ b/src/enums/MenuTypeEnum.ts @@ -0,0 +1,19 @@ +export enum MenuTypeEnum { + /** + * 目录 + */ + CATALOG = 'CATALOG', + /** + * 菜单 + */ + MENU = 'MENU', + + /** + * 按钮 + */ + BUTTON = 'BUTTON', + /** + * 外链 + */ + EXTLINK = 'EXTLINK' +} diff --git a/src/env.d.ts b/src/env.d.ts deleted file mode 100644 index 272014dc..00000000 --- a/src/env.d.ts +++ /dev/null @@ -1,19 +0,0 @@ -/// - -declare module '*.vue' { - import { DefineComponent } from 'vue' - // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/ban-types - const component: DefineComponent<{}, {}, any> - export default component -} - -// 环境变量 TypeScript的智能提示 -interface ImportMetaEnv { - VITE_APP_TITLE: string, - VITE_APP_PORT: string, - VITE_APP_BASE_API: string -} - -interface ImportMeta { - readonly env: ImportMetaEnv -} \ No newline at end of file diff --git a/src/lang/en.ts b/src/lang/en.ts deleted file mode 100644 index 535a45ba..00000000 --- a/src/lang/en.ts +++ /dev/null @@ -1,24 +0,0 @@ -export default { - // 路由国际化 - route: { - dashboard: 'Dashboard', - document: 'Document' - }, - // 登录页面国际化 - login: { - title: 'vue3-element-admin', - username: 'Username', - password: 'Password', - login: 'Login', - code: 'Verification Code', - copyright: '', - icp: '' - }, - // 导航栏国际化 - navbar:{ - dashboard: 'Dashboard', - logout:'Logout', - document:'Document', - gitee:'Gitee' - } -} \ No newline at end of file diff --git a/src/lang/index.ts b/src/lang/index.ts index b56f979d..7f3ad89c 100644 --- a/src/lang/index.ts +++ b/src/lang/index.ts @@ -1,46 +1,25 @@ +import { createI18n } from 'vue-i18n'; +import { useAppStore } from '@/store/modules/app'; -// 自定义国际化配置 -import {createI18n} from 'vue-i18n' -import {localStorage} from '@/utils/storage' - +const appStore = useAppStore(); // 本地语言包 -import enLocale from './en' -import zhCnLocale from './zh-cn' +import enLocale from './package/en'; +import zhCnLocale from './package/zh-cn'; const messages = { - 'zh-cn': { - ...zhCnLocale - }, - en: { - ...enLocale - } -} - -/** - * 获取当前系统使用语言字符串 - * - * @returns zh-cn|en ... - */ -export const getLanguage = () => { - // 本地缓存获取 - let language = localStorage.get('language') - if (language) { - return language - } - // 浏览器使用语言 - language = navigator.language.toLowerCase() - const locales = Object.keys(messages) - for (const locale of locales) { - if (language.indexOf(locale) > -1) { - return locale - } - } - return 'zh-cn' -} + 'zh-cn': { + ...zhCnLocale + }, + en: { + ...enLocale + } +}; const i18n = createI18n({ - locale: getLanguage(), - messages: messages -}) + legacy: false, + locale: appStore.language, + messages: messages, + globalInjection: true +}); -export default i18n \ No newline at end of file +export default i18n; diff --git a/src/lang/package/en.ts b/src/lang/package/en.ts new file mode 100644 index 00000000..6213eb2e --- /dev/null +++ b/src/lang/package/en.ts @@ -0,0 +1,22 @@ +export default { + // 路由国际化 + route: { + dashboard: 'Dashboard', + document: 'Document' + }, + // 登录页面国际化 + login: { + title: 'vue3-element-admin', + username: 'Username', + password: 'Password', + login: 'Login', + verifyCode: 'Verify Code', + }, + // 导航栏国际化 + navbar: { + dashboard: 'Dashboard', + logout: 'Logout', + document: 'Document', + gitee: 'Gitee' + } +}; diff --git a/src/lang/package/zh-cn.ts b/src/lang/package/zh-cn.ts new file mode 100644 index 00000000..3d235d5e --- /dev/null +++ b/src/lang/package/zh-cn.ts @@ -0,0 +1,22 @@ +export default { + // 路由国际化 + route: { + dashboard: '首页', + document: '项目文档' + }, + // 登录页面国际化 + login: { + title: 'vue3-element-admin', + username: '用户名', + password: '密码', + login: '登 录', + verifyCode: '验证码' + }, + // 导航栏国际化 + navbar: { + dashboard: '首页', + logout: '注销', + document: '项目文档', + gitee: '码云' + } +}; diff --git a/src/lang/zh-cn.ts b/src/lang/zh-cn.ts deleted file mode 100644 index f0b0017e..00000000 --- a/src/lang/zh-cn.ts +++ /dev/null @@ -1,23 +0,0 @@ -export default { - // 路由国际化 - route: { - dashboard: '首页', - document: '项目文档' - }, - // 登录页面国际化 - login:{ - title: 'vue3-element-admin', - username:'用户名', - password:'密码', - login:'登 录', - code:'请输入验证码', - copyright:'', - icp:'' - }, - navbar:{ - dashboard: '首页', - logout:'注销', - document:'项目文档', - gitee:'码云' - } -} \ No newline at end of file diff --git a/src/layout/components/AppMain.vue b/src/layout/components/AppMain.vue index b5ec9bc2..0de8378a 100644 --- a/src/layout/components/AppMain.vue +++ b/src/layout/components/AppMain.vue @@ -1,32 +1,30 @@ + + - - - - - diff --git a/src/layout/components/Navbar.vue b/src/layout/components/Navbar.vue index 3e4780db..d6217dff 100644 --- a/src/layout/components/Navbar.vue +++ b/src/layout/components/Navbar.vue @@ -1,46 +1,106 @@ + + diff --git a/src/views/system/role/components/Menu.vue b/src/views/system/role/components/Menu.vue deleted file mode 100644 index 8091c74c..00000000 --- a/src/views/system/role/components/Menu.vue +++ /dev/null @@ -1,128 +0,0 @@ - - - - - diff --git a/src/views/system/role/components/Perm.vue b/src/views/system/role/components/Perm.vue deleted file mode 100644 index 943261ed..00000000 --- a/src/views/system/role/components/Perm.vue +++ /dev/null @@ -1,159 +0,0 @@ - - - - - diff --git a/src/views/system/role/components/Role.vue b/src/views/system/role/components/Role.vue deleted file mode 100644 index 6e49c2a3..00000000 --- a/src/views/system/role/components/Role.vue +++ /dev/null @@ -1,282 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/views/system/role/index.vue b/src/views/system/role/index.vue index 1b43a5dd..d05d0ccf 100644 --- a/src/views/system/role/index.vue +++ b/src/views/system/role/index.vue @@ -1,117 +1,402 @@ -