From 51d369d4c1e9029c2fbdff0303578648bcb3bae1 Mon Sep 17 00:00:00 2001 From: zoujiandong <10130823232@qq.com> Date: Mon, 5 Jun 2023 09:25:16 +0800 Subject: [PATCH] =?UTF-8?q?admin=20=E5=88=9D=E5=A7=8B=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.development | 1 + .env.production | 0 .eslintrc.js | 15 + .gitignore | 36 +- README.md | 320 ++++++++- components.d.ts | 16 + index.html | 12 + jsconfig.json | 14 + mock/index.js | 4 + mock/sys_post.js | 36 + package.json | 40 ++ prettier.config.js | 19 + public/favicon.ico | Bin 0 -> 4286 bytes public/login_left_bg.jpg | Bin 0 -> 263474 bytes src/App.vue | 3 + src/api/admin/login.js | 30 + src/api/admin/menu.js | 48 ++ src/api/admin/post.js | 35 + src/api/admin/role.js | 50 ++ src/api/admin/sys-api.js | 35 + src/api/admin/sys-config.js | 35 + src/api/admin/sys-dept.js | 35 + src/api/admin/sys-dict-data.js | 35 + src/api/admin/sys-dict.js | 43 ++ src/api/admin/sys-login-log.js | 19 + src/api/admin/sys-opera-log.js | 19 + src/api/admin/sys-user.js | 67 ++ src/api/profile/profile.js | 18 + src/api/sys-job.js | 62 ++ src/api/sys-tools/monitor.js | 10 + src/api/tools/gen.js | 103 +++ src/components/DeleteModal.vue | 104 +++ src/directive/permission/permission.js | 22 + src/icons/index.js | 0 src/icons/svg/api-management.svg | 1 + src/layout/components/AppMain.vue | 12 + src/layout/components/Avatar/index.vue | 76 +++ src/layout/components/Menu/Menu.vue | 95 +++ src/layout/components/Menu/SubMenu.vue | 37 ++ src/layout/components/Navbar.vue | 93 +++ src/layout/components/index.js | 2 + src/layout/index.vue | 37 ++ src/main.js | 39 ++ src/router/index.js | 115 ++++ src/store/permission.js | 60 ++ src/store/userInfo.js | 48 ++ src/style/dark-theme.scss | 34 + src/style/index.scss | 88 +++ src/style/transition.scss | 28 + src/style/variables.scss | 3 + src/utils/parseTime.js | 41 ++ src/utils/request.js | 58 ++ src/utils/storage.js | 41 ++ src/utils/watermark.js | 60 ++ src/views/admin/dict/data.vue | 253 +++++++ src/views/admin/dict/index.vue | 268 ++++++++ src/views/admin/sys-api/index.vue | 254 +++++++ src/views/admin/sys-config/index.vue | 328 +++++++++ src/views/admin/sys-dept/index.vue | 266 ++++++++ src/views/admin/sys-login-log/index.vue | 169 +++++ src/views/admin/sys-menu/index.vue | 350 ++++++++++ src/views/admin/sys-oper-log/index.vue | 185 ++++++ src/views/admin/sys-post/index.vue | 289 ++++++++ src/views/admin/sys-role/index.vue | 382 +++++++++++ src/views/admin/sys-set/index.vue | 77 +++ .../admin/sys-user/components/TreeDept.vue | 31 + src/views/admin/sys-user/index.vue | 621 ++++++++++++++++++ src/views/dev-tools/gen/editTable.vue | 410 ++++++++++++ src/views/dev-tools/gen/importTable.vue | 145 ++++ src/views/dev-tools/gen/index.vue | 270 ++++++++ src/views/dev-tools/swagger/index.vue | 11 + src/views/error-page/403.vue | 25 + src/views/error-page/404.vue | 25 + src/views/error-page/500.vue | 25 + src/views/error-page/888.vue | 19 + src/views/index.vue | 3 + src/views/login/index.vue | 290 ++++++++ src/views/profile/api-management.svg | 1 + src/views/profile/index.vue | 234 +++++++ src/views/schedule/index.vue | 277 ++++++++ src/views/sys-tools/monitor/index.vue | 160 +++++ vite.config.js | 51 ++ 82 files changed, 7662 insertions(+), 11 deletions(-) create mode 100644 .env.development create mode 100644 .env.production create mode 100644 .eslintrc.js create mode 100644 components.d.ts create mode 100644 index.html create mode 100644 jsconfig.json create mode 100644 mock/index.js create mode 100644 mock/sys_post.js create mode 100644 package.json create mode 100644 prettier.config.js create mode 100644 public/favicon.ico create mode 100644 public/login_left_bg.jpg create mode 100644 src/App.vue create mode 100644 src/api/admin/login.js create mode 100644 src/api/admin/menu.js create mode 100644 src/api/admin/post.js create mode 100644 src/api/admin/role.js create mode 100644 src/api/admin/sys-api.js create mode 100644 src/api/admin/sys-config.js create mode 100644 src/api/admin/sys-dept.js create mode 100644 src/api/admin/sys-dict-data.js create mode 100644 src/api/admin/sys-dict.js create mode 100644 src/api/admin/sys-login-log.js create mode 100644 src/api/admin/sys-opera-log.js create mode 100644 src/api/admin/sys-user.js create mode 100644 src/api/profile/profile.js create mode 100644 src/api/sys-job.js create mode 100644 src/api/sys-tools/monitor.js create mode 100644 src/api/tools/gen.js create mode 100644 src/components/DeleteModal.vue create mode 100644 src/directive/permission/permission.js create mode 100644 src/icons/index.js create mode 100644 src/icons/svg/api-management.svg create mode 100644 src/layout/components/AppMain.vue create mode 100644 src/layout/components/Avatar/index.vue create mode 100644 src/layout/components/Menu/Menu.vue create mode 100644 src/layout/components/Menu/SubMenu.vue create mode 100644 src/layout/components/Navbar.vue create mode 100644 src/layout/components/index.js create mode 100644 src/layout/index.vue create mode 100644 src/main.js create mode 100644 src/router/index.js create mode 100644 src/store/permission.js create mode 100644 src/store/userInfo.js create mode 100644 src/style/dark-theme.scss create mode 100644 src/style/index.scss create mode 100644 src/style/transition.scss create mode 100644 src/style/variables.scss create mode 100644 src/utils/parseTime.js create mode 100644 src/utils/request.js create mode 100644 src/utils/storage.js create mode 100644 src/utils/watermark.js create mode 100644 src/views/admin/dict/data.vue create mode 100644 src/views/admin/dict/index.vue create mode 100644 src/views/admin/sys-api/index.vue create mode 100644 src/views/admin/sys-config/index.vue create mode 100644 src/views/admin/sys-dept/index.vue create mode 100644 src/views/admin/sys-login-log/index.vue create mode 100644 src/views/admin/sys-menu/index.vue create mode 100644 src/views/admin/sys-oper-log/index.vue create mode 100644 src/views/admin/sys-post/index.vue create mode 100644 src/views/admin/sys-role/index.vue create mode 100644 src/views/admin/sys-set/index.vue create mode 100644 src/views/admin/sys-user/components/TreeDept.vue create mode 100644 src/views/admin/sys-user/index.vue create mode 100644 src/views/dev-tools/gen/editTable.vue create mode 100644 src/views/dev-tools/gen/importTable.vue create mode 100644 src/views/dev-tools/gen/index.vue create mode 100644 src/views/dev-tools/swagger/index.vue create mode 100644 src/views/error-page/403.vue create mode 100644 src/views/error-page/404.vue create mode 100644 src/views/error-page/500.vue create mode 100644 src/views/error-page/888.vue create mode 100644 src/views/index.vue create mode 100644 src/views/login/index.vue create mode 100644 src/views/profile/api-management.svg create mode 100644 src/views/profile/index.vue create mode 100644 src/views/schedule/index.vue create mode 100644 src/views/sys-tools/monitor/index.vue create mode 100644 vite.config.js diff --git a/.env.development b/.env.development new file mode 100644 index 0000000..e7989ed --- /dev/null +++ b/.env.development @@ -0,0 +1 @@ +VITE_BASE_URL= 'https://vue3.go-admin.dev' \ No newline at end of file diff --git a/.env.production b/.env.production new file mode 100644 index 0000000..e69de29 diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 0000000..83cf0e3 --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,15 @@ +module.exports = { + extends: [ + // add more generic rulesets here, such as: + // 'eslint:recommended', + 'plugin:vue/base', + 'plugin:vue/vue3-essential', + // 'plugin:vue/vue3-strongly-recommended' + //'plugin:vue/vue3-recommended', + // 'plugin:vue/recommended' // Use this if you are using Vue.js 2.x. + ], + rules: { + // override/add rules settings here, such as: + // 'vue/no-unused-vars': 'error' + } +} \ No newline at end of file diff --git a/.gitignore b/.gitignore index a19f004..0a81269 100644 --- a/.gitignore +++ b/.gitignore @@ -1,11 +1,31 @@ -# ---> Vue -# gitignore template for Vue.js projects -# -# Recommended template: Node.gitignore +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* -# TODO: where does this rule come from? -docs/_book +yarn.lock -# TODO: where does this rule come from? -test/ +node_modules +dist +dist-ssr +*.local +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? + +# node_modules +node_modules +package-lock.json +package-lock.json diff --git a/README.md b/README.md index 0b08572..78c7330 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,318 @@ -# hospital-admin +# Vue 3 + Vite -互联网医院 -前端 \ No newline at end of file +This template should help get you started developing with Vue 3 in Vite. The template uses Vue 3 ` + + diff --git a/jsconfig.json b/jsconfig.json new file mode 100644 index 0000000..709c3f8 --- /dev/null +++ b/jsconfig.json @@ -0,0 +1,14 @@ +{ + "compilerOptions": { + "target": "ES6", + "module": "commonjs", + "allowSyntheticDefaultImports": true, + "baseUrl": "./", + "paths": { + "@/*": ["src/*"] + } + }, + "exclude": [ + "node_modules" + ] +} diff --git a/mock/index.js b/mock/index.js new file mode 100644 index 0000000..5059834 --- /dev/null +++ b/mock/index.js @@ -0,0 +1,4 @@ +import user from './sys_post' +export default [ + user, +] \ No newline at end of file diff --git a/mock/sys_post.js b/mock/sys_post.js new file mode 100644 index 0000000..46e0a1f --- /dev/null +++ b/mock/sys_post.js @@ -0,0 +1,36 @@ +import Mock from 'mockjs' + +const mock = { + 'list|10': [ + { + 'roleId|+1': 1, + 'roleName|1': [ + '系统管理员', + '福州系统运维', + '产品管理', + '前端开发', + '后端开发' + ], + 'roleKey': 'admin', + 'roleSort|+1': 0, + 'status|0-1': 0, + 'createAt': `${Mock.Random.date()} ${Mock.Random.time()}` + } + ], +} + +const login = { + url: '/api/admin/post', + method: 'get', + timeout: 500, + statusCode: 200, + response: { + code: 200, + message: '登陆成功', + data: Mock.toJSONSchema(mock).template + } +} + +export default [ + login, +] \ No newline at end of file diff --git a/package.json b/package.json new file mode 100644 index 0000000..68b71a7 --- /dev/null +++ b/package.json @@ -0,0 +1,40 @@ +{ + "name": "quark_arco", + "private": true, + "version": "0.0.0", + "scripts": { + "dev": "vite", + "build": "vite build", + "preview": "vite preview" + }, + "dependencies": { + "@ant-design/icons": "^5.0.1", + "@codemirror/lang-html": "^6.4.3", + "@codemirror/lang-javascript": "^6.1.7", + "@codemirror/lang-json": "^6.0.1", + "@codemirror/theme-one-dark": "^6.1.2", + "@vueuse/core": "^10.1.2", + "axios": "^1.4.0", + "codemirror": "^6.0.1", + "cropperjs": "^1.5.13", + "i": "^0.3.7", + "js-cookie": "^3.0.5", + "npm": "^9.6.6", + "pinia": "^2.0.36", + "vue": "^3.2.47", + "vue-codemirror": "^6.1.1", + "vue-router": "^4.1.6" + }, + "devDependencies": { + "@arco-design/web-vue": "^2.45.3", + "@vitejs/plugin-vue": "^4.2.1", + "unplugin-vue-components": "^0.24.1", + "eslint": "^8.40.0", + "eslint-plugin-vue": "^9.12.0", + "mockjs": "^1.1.0", + "sass": "^1.62.1", + "vite": "^4.3.5", + "vite-plugin-mock": "^3.0.0", + "vite-svg-loader": "^4.0.0" + } +} diff --git a/prettier.config.js b/prettier.config.js new file mode 100644 index 0000000..64e784f --- /dev/null +++ b/prettier.config.js @@ -0,0 +1,19 @@ +module.exports = { + "arrowParens": "always", + "bracketSameLine": false, + "bracketSpacing": true, + "embeddedLanguageFormatting": "auto", + "htmlWhitespaceSensitivity": "css", + "insertPragma": false, + "jsxSingleQuote": false, + "printWidth": 80, + "proseWrap": "preserve", + "quoteProps": "as-needed", + "requirePragma": false, + "semi": true, + "singleQuote": true, + "tabWidth": 2, + "trailingComma": "es5", + "useTabs": false, + "vueIndentScriptAndStyle": false +} \ No newline at end of file diff --git a/public/favicon.ico b/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..7abef30f51106c7f8f1fb9e2eac620f0706b5a46 GIT binary patch literal 4286 zcmdT`F>c#16#a$=jq+3kNKk9+=&@Tg^Z;J6>j=JqbpszkYquVtgL(rUK~66ajUIxq z?*%0AO^6gN8wRT2h2$syd+(D}6p;mfibD8Xey&8mh{!hpAt?dIKOfBf&(GhN#})8q zQQf;1=r({+xT^E*_w>RdxFwI?S~eHQEX&Zh1c7Bd@PJHKwnt_6PaAbB7t) z+FOtO&87Rn9Duo+>zaP@URZ6uYuD(F% z{Ci!>vv4M^>csxHU-cCt;G&)Qk^~*$Iy=L{Z{8drvl6f-Vod9wW)pR*P;3~2l!d{ zn6``cdVOj?qTgu_Xdfo@>Emp_bbhEG(LXzTaJLEibx0=^kLdgLr|9oOI-z((-{>6F z&U^08I@A_AC#4Vlr27x;70^XI98&bg*1*HqyU&<^2k2q!9A<0N4|Mnq33;e|&+xDT zN{hmu2iHY^3$Q+R21(y9=K)-mt)+3XlomOy%?s^A9pgbRzdg0bk?a9^{J)2_hV&Wl zfdjAwxMu|WjD>P9@!<9@=3&lU727*KhdOTUA-R6%10Hx5-0L~D>YUnf&S{}v&-BqE z@1l1w<_}!FV-3&&x<1{fCjAyMu3ODPrzGa^89uMTk=PsaX939Gh^#+E@^_K!L@ZAE zkiD;m-0X+1nK?c!&G9?2ILE`%3{ROE@_avJAJ3=dX^s3(9`cbF{Lf|(2sY*)33_;z literal 0 HcmV?d00001 diff --git a/public/login_left_bg.jpg b/public/login_left_bg.jpg new file mode 100644 index 0000000000000000000000000000000000000000..19ed2cc64f8a2b920e9fc9659ab3e84578490c40 GIT binary patch literal 263474 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%0APr+TG`i%K5 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

K37NIWWgX<5Tiv^_&%}PH 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%0ALsj;)gp0J0g=DjY71M#KX* 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 + + \ No newline at end of file diff --git a/src/api/admin/login.js b/src/api/admin/login.js new file mode 100644 index 0000000..52230d1 --- /dev/null +++ b/src/api/admin/login.js @@ -0,0 +1,30 @@ +import request from '../../utils/request'; +export function login(data) { + return request({ + url:'/api/v1/login', + method: 'post', + data + }) +} + +export function getCaptcha() { + return request({ + url:'/api/v1/captcha', + method: 'get' + }) +} + +export function getAppConfig() { + return request({ + url:'/api/v1/app-config', + method: 'get' + }) +} + +// 根据角色获取菜单 +export function getUserMenuRole() { + return request({ + url:'/api/v1/menurole', + method: 'get' + }) +} \ No newline at end of file diff --git a/src/api/admin/menu.js b/src/api/admin/menu.js new file mode 100644 index 0000000..5e4595f --- /dev/null +++ b/src/api/admin/menu.js @@ -0,0 +1,48 @@ +import request from '../../utils/request' + +const url = '/api/v1/menu'; + +export function getMenu(params) { + return request({ + url, + method: 'get', + params + }) +} + +export function getMenuDetails(menuId) { + return request({ + url: `${url}/${menuId}`, + method: 'get' + }) +} + +export function addMenu(data) { + return request({ + url, + method: 'post', + data + }) +} + +export function removeMenu(data) { + return request({ + url, + method: 'delete', + data + }) +} + +/** + * 修改菜单 + * @param {Object} data + * @param {Number} id + * @returns + */ +export function updateMenu(data, id) { + return request({ + url: `${url}/${id}`, + method: 'put', + data + }) +} \ No newline at end of file diff --git a/src/api/admin/post.js b/src/api/admin/post.js new file mode 100644 index 0000000..aafdc82 --- /dev/null +++ b/src/api/admin/post.js @@ -0,0 +1,35 @@ +import request from '../../utils/request' + +const url = '/api/v1/post'; + +export function getPost(params) { + return request({ + url, + method: 'get', + params + }) +} + +export function addPost(data) { + return request({ + url, + method: 'post', + data + }) +} + +export function removePost(data) { + return request({ + url, + method: 'delete', + data + }) +} + +export function updatePost(data, id) { + return request({ + url: `${url}/${id}`, + method: 'put', + data + }) +} \ No newline at end of file diff --git a/src/api/admin/role.js b/src/api/admin/role.js new file mode 100644 index 0000000..ec478f5 --- /dev/null +++ b/src/api/admin/role.js @@ -0,0 +1,50 @@ +import request from '../../utils/request'; + +const url = '/api/v1/role'; +export function getRole(params) { + return request({ + url, + method: 'get', + params + }) +} + +export function addRole(data) { + return request({ + url, + method: 'post', + data + }) +} + +export function removeRole(data) { + return request({ + url, + method: 'delete', + data + }) +} + +export function updateRole(data, id) { + return request({ + url: `${url}/${id}`, + method: 'put', + data, + }) +} + +export function updateRoleScoped(data) { + return request({ + url:'/api/v1/roledatascope', + method: 'put', + data + }) +} + +export function getRoleMenuTree(params, roleId) { + return request({ + url:`/api/v1/roleMenuTreeselect/${roleId}`, + method: 'get', + params + }) +} \ No newline at end of file diff --git a/src/api/admin/sys-api.js b/src/api/admin/sys-api.js new file mode 100644 index 0000000..ea12824 --- /dev/null +++ b/src/api/admin/sys-api.js @@ -0,0 +1,35 @@ +import request from '../../utils/request'; + +const url = '/api/v1/sys-api'; + +export function getSysApi(params) { + return request({ + url, + method: 'get', + params + }) +} + +export function addSysApi(data) { + return request({ + url, + method: 'post', + data + }) +} + +export function removeSysApi(data) { + return request({ + url, + method: 'delete', + data + }) +} + +export function updateSysApi(data, id) { + return request({ + url: `${url}/${id}`, + method: 'put', + data, + }) +} \ No newline at end of file diff --git a/src/api/admin/sys-config.js b/src/api/admin/sys-config.js new file mode 100644 index 0000000..01a15f4 --- /dev/null +++ b/src/api/admin/sys-config.js @@ -0,0 +1,35 @@ +import request from '../../utils/request'; + +const url = '/api/v1/config'; + +export function getSysConfig(params) { + return request({ + url, + method: 'get', + params + }) +} + +export function addSysConfig(data) { + return request({ + url, + method: 'post', + data + }) +} + +export function removeSysConfig(data) { + return request({ + url, + method: 'delete', + data + }) +} + +export function updateSysConfig(data, id) { + return request({ + url: `${url}/${id}`, + method: 'put', + data, + }) +} \ No newline at end of file diff --git a/src/api/admin/sys-dept.js b/src/api/admin/sys-dept.js new file mode 100644 index 0000000..1d8a8ea --- /dev/null +++ b/src/api/admin/sys-dept.js @@ -0,0 +1,35 @@ +import request from '../../utils/request'; + +const url = '/api/v1/dept'; + +export function getDept(params) { + return request({ + url, + method: 'get', + params + }) +} + +export function addDept(data) { + return request({ + url, + method: 'post', + data + }) +} + +export function removeDept(data) { + return request({ + url, + method: 'delete', + data + }) +} + +export function updateDept(data, id) { + return request({ + url: `${url}/${id}`, + method: 'put', + data, + }) +} \ No newline at end of file diff --git a/src/api/admin/sys-dict-data.js b/src/api/admin/sys-dict-data.js new file mode 100644 index 0000000..0097b50 --- /dev/null +++ b/src/api/admin/sys-dict-data.js @@ -0,0 +1,35 @@ +import request from '@/utils/request'; + +const url = '/api/v1/dict/data'; + +export function getDictData(params) { + return request({ + url, + method: 'get', + params + }) +} + +export function addDictData(data) { + return request({ + url, + method: 'post', + data + }) +} + +export function updateDictData(data, dictCode) { + return request({ + url: `${url}/${dictCode}`, + method: 'put', + data + }) +} + +export function deleteDictData(data) { + return request({ + url, + method: 'delete', + data + }) +} diff --git a/src/api/admin/sys-dict.js b/src/api/admin/sys-dict.js new file mode 100644 index 0000000..e9200f7 --- /dev/null +++ b/src/api/admin/sys-dict.js @@ -0,0 +1,43 @@ +import request from '../../utils/request'; + +const url = '/api/v1/dict/type'; + +export function getDictType(params) { + return request({ + url, + method: 'get', + params + }) +} + +export function addDictType(data) { + return request({ + url, + method: 'post', + data + }) +} + +export function removeDictType(data) { + return request({ + url, + method: 'delete', + data + }) +} + +export function updateDictType(data, id) { + return request({ + url: `${url}/${id}`, + method: 'put', + data, + }) +} + +// 获取字典选择框列表 +export function optionselect() { + return request({ + url: '/api/v1/dict/type-option-select', + method: 'get' + }) +} diff --git a/src/api/admin/sys-login-log.js b/src/api/admin/sys-login-log.js new file mode 100644 index 0000000..2d3a40f --- /dev/null +++ b/src/api/admin/sys-login-log.js @@ -0,0 +1,19 @@ +import request from '../../utils/request'; + +const url = '/api/v1/sys-login-log'; + +export function getSysLoginLog(params) { + return request({ + url, + method: 'GET', + params + }) +} + +export function removeSysLoginLog(data) { + return request({ + url, + method: 'DELETE', + data + }) +} \ No newline at end of file diff --git a/src/api/admin/sys-opera-log.js b/src/api/admin/sys-opera-log.js new file mode 100644 index 0000000..5e4a014 --- /dev/null +++ b/src/api/admin/sys-opera-log.js @@ -0,0 +1,19 @@ +import request from '../../utils/request'; + +const url = '/api/v1/sys-opera-log'; + +export function getSysOperaLog(params) { + return request({ + url, + method: 'get', + params, + }); +} + +export function removeSysOperaLog(data) { + return request({ + url, + method: 'delete', + data, + }); +} diff --git a/src/api/admin/sys-user.js b/src/api/admin/sys-user.js new file mode 100644 index 0000000..3da6f7f --- /dev/null +++ b/src/api/admin/sys-user.js @@ -0,0 +1,67 @@ +import request from '../../utils/request'; + +const url = '/api/v1/sys-user'; + + +export function getUser(params) { + return request({ + url, + method: 'get', + params + }) +} + +export function getInfo() { + return request({ + url:'/api/v1/getinfo', + method: 'get' + }) +} + +export function addUser(data) { + return request({ + url, + method: 'post', + data + }) +} + +export function removeUser(data) { + return request({ + url, + method: 'delete', + data + }) +} + +export function updateUser(data) { + return request({ + url, + method: 'put', + data, + }) +} + +export function updateUserStatus(data) { + return request({ + url: '/api/v1/user/status', + method: 'put', + data + }) +} + +export function resetUserPwd(data) { + return request({ + url:'/api/v1/user/pwd/reset', + method: 'put', + data + }) +} + +// 获取当前登录用户信息 +export function getCurrentUser(uid) { + return request({ + url: `${url}/${uid}`, + method: 'get' + }) +} \ No newline at end of file diff --git a/src/api/profile/profile.js b/src/api/profile/profile.js new file mode 100644 index 0000000..868e348 --- /dev/null +++ b/src/api/profile/profile.js @@ -0,0 +1,18 @@ +import request from '../../utils/request'; + +// 获取用户信息 +export function getUserProfile() { + return request({ + url: '/api/v1/user/profile', + method: 'get' + }) +} + +// 修改用户密码 +export function putUserPwd(data) { + return request({ + url: '/api/v1/user/pwd/set', + method: 'put', + data + }) +} \ No newline at end of file diff --git a/src/api/sys-job.js b/src/api/sys-job.js new file mode 100644 index 0000000..83e5b5c --- /dev/null +++ b/src/api/sys-job.js @@ -0,0 +1,62 @@ +import request from '@/utils/request' + +// 查询SysJob列表 +export function listSysJob(query) { + return request({ + url: '/api/v1/sysjob', + method: 'get', + params: query + }) +} + +// 查询SysJob详细 +export function getSysJob(jobId) { + return request({ + url: '/api/v1/sysjob/' + jobId, + method: 'get' + }) +} + +// 新增SysJob +export function addSysJob(data) { + return request({ + url: '/api/v1/sysjob', + method: 'post', + data: data + }) +} + +// 修改SysJob +export function updateSysJob(data) { + return request({ + url: '/api/v1/sysjob', + method: 'put', + data: data + }) +} + +// 删除SysJob +export function delSysJob(data) { + return request({ + url: '/api/v1/sysjob', + method: 'delete', + data: data + }) +} + +// 移除SysJob +export function removeJob(jobId) { + return request({ + url: '/api/v1/job/remove/' + jobId, + method: 'get' + }) +} + +// 启动SysJob +export function startJob(jobId) { + return request({ + url: '/api/v1/job/start/' + jobId, + method: 'get' + }) +} + diff --git a/src/api/sys-tools/monitor.js b/src/api/sys-tools/monitor.js new file mode 100644 index 0000000..d3f6f46 --- /dev/null +++ b/src/api/sys-tools/monitor.js @@ -0,0 +1,10 @@ +import request from '../../utils/request' + +const url = '/api/v1/server-monitor'; + +export function getServerMonitor() { + return request({ + url, + method: 'GET', + }) +} \ No newline at end of file diff --git a/src/api/tools/gen.js b/src/api/tools/gen.js new file mode 100644 index 0000000..cc4846c --- /dev/null +++ b/src/api/tools/gen.js @@ -0,0 +1,103 @@ +import request from '@/utils/request' + +// 查询生成表数据 +export function listTable(query) { + return request({ + url: '/api/v1/sys/tables/page', + method: 'get', + params: query + }) +} +// 查询db数据库列表 +export function listDbTable(query) { + return request({ + url: '/api/v1/db/tables/page', + method: 'get', + params: query + }) +} + +// 查询表详细信息 +export function getGenTable(tableId) { + return request({ + url: '/api/v1/sys/tables/info/' + tableId, + method: 'get' + }) +} + +export function getGenTableInfo(tablename) { + return request({ + url: '/api/v1/sys/tables?tableName=' + tablename, + method: 'get' + }) +} + +// 修改代码生成信息 +export function updateGenTable(data) { + return request({ + url: '/api/v1/sys/tables/info', + method: 'put', + data: data + }) +} + +// 导入表 +export function importTable(data) { + return request({ + url: '/api/v1/sys/tables/info', + method: 'post', + params: data + }) +} +// 预览生成代码 +export function previewTable(tableId) { + return request({ + url: '/api/v1/gen/preview/' + tableId, + method: 'get' + }) +} +// 删除表数据 +export function delTable(tableId) { + return request({ + url: '/api/v1/sys/tables/info/' + tableId, + method: 'delete' + }) +} + +// 生成代码到项目 +export function toProjectTable(tableId) { + return request({ + url: '/api/v1/gen/toproject/' + tableId, + method: 'get' + }) +} + +// 生成接口数据到迁移脚本 +export function apiToFile(tableId) { + return request({ + url: '/api/v1/gen/apitofile/' + tableId, + method: 'get' + }) +} + +export function toProjectTableCheckRole(tableId, ischeckrole) { + return request({ + url: '/api/v1/gen/toproject/' + tableId + '?ischeckrole=' + ischeckrole, + method: 'get' + }) +} + +// 生成菜单到数据库 +export function toDBTable(tableId) { + return request({ + url: '/api/v1/gen/todb/' + tableId, + method: 'get' + }) +} + +export function getTableTree() { + return request({ + url: '/api/v1/gen/tabletree', + method: 'get' + }) +} diff --git a/src/components/DeleteModal.vue b/src/components/DeleteModal.vue new file mode 100644 index 0000000..b3d5338 --- /dev/null +++ b/src/components/DeleteModal.vue @@ -0,0 +1,104 @@ + + + + + \ No newline at end of file diff --git a/src/directive/permission/permission.js b/src/directive/permission/permission.js new file mode 100644 index 0000000..59c185d --- /dev/null +++ b/src/directive/permission/permission.js @@ -0,0 +1,22 @@ +import { useUserStore } from '@/store/userInfo'; + +export default { + checkPermission(el, binding) { + const store = useUserStore(); + const { value } = binding; + const all_permission = '*:*:*' + const permissions = store.userInfo && store.userInfo.permissions; + + if (typeof value === 'string') { + const hasPermission = permissions.some((permission) => { + return all_permission === permission || value === permission; + }) + + if (!hasPermission) { + el.parentNode && el.parentNode.removeChild(el); + } + } else { + throw new Error(`请设置操作权限标签值`) + } + } +} \ No newline at end of file diff --git a/src/icons/index.js b/src/icons/index.js new file mode 100644 index 0000000..e69de29 diff --git a/src/icons/svg/api-management.svg b/src/icons/svg/api-management.svg new file mode 100644 index 0000000..7a80c94 --- /dev/null +++ b/src/icons/svg/api-management.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/layout/components/AppMain.vue b/src/layout/components/AppMain.vue new file mode 100644 index 0000000..5541196 --- /dev/null +++ b/src/layout/components/AppMain.vue @@ -0,0 +1,12 @@ + + + \ No newline at end of file diff --git a/src/layout/components/Avatar/index.vue b/src/layout/components/Avatar/index.vue new file mode 100644 index 0000000..b4d26e4 --- /dev/null +++ b/src/layout/components/Avatar/index.vue @@ -0,0 +1,76 @@ + + + + + \ No newline at end of file diff --git a/src/layout/components/Menu/Menu.vue b/src/layout/components/Menu/Menu.vue new file mode 100644 index 0000000..1b1cec9 --- /dev/null +++ b/src/layout/components/Menu/Menu.vue @@ -0,0 +1,95 @@ + + + + + + + diff --git a/src/layout/components/Menu/SubMenu.vue b/src/layout/components/Menu/SubMenu.vue new file mode 100644 index 0000000..891977f --- /dev/null +++ b/src/layout/components/Menu/SubMenu.vue @@ -0,0 +1,37 @@ + + + diff --git a/src/layout/components/Navbar.vue b/src/layout/components/Navbar.vue new file mode 100644 index 0000000..255a139 --- /dev/null +++ b/src/layout/components/Navbar.vue @@ -0,0 +1,93 @@ + + + + + \ No newline at end of file diff --git a/src/layout/components/index.js b/src/layout/components/index.js new file mode 100644 index 0000000..8d0b6b7 --- /dev/null +++ b/src/layout/components/index.js @@ -0,0 +1,2 @@ +export { default as AppMain } from './AppMain.vue'; +export { default as Navbar } from './Navbar.vue'; \ No newline at end of file diff --git a/src/layout/index.vue b/src/layout/index.vue new file mode 100644 index 0000000..80c89c6 --- /dev/null +++ b/src/layout/index.vue @@ -0,0 +1,37 @@ + + + + + \ No newline at end of file diff --git a/src/main.js b/src/main.js new file mode 100644 index 0000000..5b5a400 --- /dev/null +++ b/src/main.js @@ -0,0 +1,39 @@ +import { createApp } from 'vue'; +import { createPinia } from 'pinia'; +import App from './App.vue'; +import ArcoVue from '@arco-design/web-vue'; +import { Message, Modal, Notification } from '@arco-design/web-vue'; +import '@arco-design/web-vue/dist/arco.css'; +import router from './router/'; +import { parseTime } from '@/utils/parseTime'; + +// Directive +import permission from '@/directive/permission/permission'; + +// 引入 Arco 图标库 +import * as ArcoIconModules from '@arco-design/web-vue/es/icon'; + +console.log(import.meta.env); + +// Initialize the Pinia instance +const pinia = createPinia(); +const app = createApp(App); + +app.directive('has', permission.checkPermission); + +// 挂载全局变量 +app.config.globalProperties.message = Message; +app.config.globalProperties.modal = Modal; +app.config.globalProperties.notification = Notification; +app.config.globalProperties.parseTime = parseTime; + +// 挂载全局图标 +for(const name in ArcoIconModules){ + app.component(name,ArcoIconModules[name]) +} + +app.use(ArcoVue); +app.use(router); +app.use(pinia); +app.mount('#app'); + diff --git a/src/router/index.js b/src/router/index.js new file mode 100644 index 0000000..0eaf70e --- /dev/null +++ b/src/router/index.js @@ -0,0 +1,115 @@ +import { createWebHashHistory, createRouter, createWebHistory } from 'vue-router'; +import Layout from '../layout/index.vue'; +import { useUserStore } from '../store/userInfo'; +import { usePermissionStore } from '../store/permission'; +import Watermark from '@/utils/watermark.js'; + +const routes = [ + { + path: '/', + name: '/', + redirect: 'admin', + component: Layout, + children: [ + { + path: '/profile', + name: 'profile', + component: () => import('../views/profile/index.vue'), + meta: { + title: '个人设置', + }, + }, + { + path: '/403', + name: '403', + component: () => import('../views/error-page/403.vue'), + meta: { + title: '找不到页面', + }, + }, + { + hide: true, + path: '/:catchAll(.*)', + component: () => import('../views/error-page/404.vue'), + meta: { + title: '找不到页面', + }, + }, + { + path: '/500', + name: '500', + component: () => import('../views/error-page/500.vue'), + meta: { + title: '找不到页面', + }, + }, + ] + }, + { + path: '/login', + name: 'login', + component: () => import('../views/login/index.vue'), + }, +]; + +const router = createRouter({ + // createWebHashHistory URL 带井号 + // createWebHistory URL 去井号 + history: createWebHistory(), + routes: routes, +}); + +// beforeEach router +router.beforeEach(async (to, from, next) => { + const store = useUserStore(); + + const permissionStore = usePermissionStore(); + + // 获取系统配置信息 + await store.getSysConfig(); + + // 判断用户Token是否获取 + if (to.name !== 'login' && !store.token) { + next({ name: 'login' }); + } else { + // 判断判断权限有无获取 + if (store.token && store.roles.length === 0) { + store.getUserInfo(); + await permissionStore.getMenuRole(); + + permissionStore.addRouters.forEach((route) => { + router.addRoute('/', route); + }); + // next(to.fullPath); + // 如果 addRoute 并未完成,路由守卫会一层一层的执行执行,直到 addRoute 完成,找到对应的路由 + next({ ...to, replace: true }) + } else { + next(); + } + + } +}); + +// afterEach Router +router.afterEach((to) => { + const store = useUserStore(); + + // 修改网页标题 + if (to.name !== 'login') { + document.title = `${to.meta.title} - ${store.sysConfig.sys_app_name}`; + } else { + document.title = store.sysConfig.sys_app_name; + } + + // Vincent 2023004 修复加载水印的bug + if (store.userInfo != undefined){ + if ( store.userInfo.name != undefined ) { + Watermark.set(store.userInfo.name) + } else { + Watermark.out() // 清除水印 + } + } else{ + Watermark.out() // 清除水印 + } +}); +export default router; diff --git a/src/store/permission.js b/src/store/permission.js new file mode 100644 index 0000000..afe7ce8 --- /dev/null +++ b/src/store/permission.js @@ -0,0 +1,60 @@ +import { defineStore } from 'pinia'; +import { getUserMenuRole } from '@/api/admin/login'; + + +const modules = import.meta.glob('../views/**/*.vue'); + +export const usePermissionStore = defineStore('permisson', { + state: () => { + return { + addRouters: [], + menuList: [], + }; + }, + getters: { + getRoutes: (state) => state.addRouters, + }, + actions: { + setMenuList(menus) { + this.menuList = menus; + }, + GenerateRoutes(routeList) { + const routes = []; + + routeList.forEach((item) => { + const route = {}; + // if (item.visible == 0) { + if (item.menuType === 'M' || item.menuType === 'C') { + route.path = item.path; + route.name = item.menuName; + if (item.menuType === 'M') { + route.component = modules[`../views/index.vue`]; + } else if (item.menuType === 'C') { + route.component = modules[`../views${item.component}.vue`] || modules['../views/error-page/888.vue']; + } + route.meta = { + title: item.title, + permission: item.permission, + }; + } + + if (item.children) { + route.children = this.GenerateRoutes(item.children); + } + routes.push(route); + // } + }); + + return routes; + }, + async getMenuRole() { + const res = await getUserMenuRole(); + console.log(res.data); + this.setMenuList(res.data); + this.addRouters = await this.GenerateRoutes(res.data); + }, + ClearMenuList() { + this.menuList = []; + } + }, +}); diff --git a/src/store/userInfo.js b/src/store/userInfo.js new file mode 100644 index 0000000..3c07123 --- /dev/null +++ b/src/store/userInfo.js @@ -0,0 +1,48 @@ +import { defineStore } from 'pinia'; +import { setLocalStorage, getLocalStorage } from '@/utils/storage'; +import { getInfo } from '@/api/admin/sys-user'; +import { getAppConfig } from '@/api/admin/login'; + +export const useUserStore = defineStore('user', { + state: () => { + return { + token: window.sessionStorage.getItem('token') || '', + uid: window.sessionStorage.getItem('uid') || '', + sysConfig: getLocalStorage('sysConfig'), + userInfo: '', + } + }, + getters: { + roles: (state) => state.userInfo.roles || [], + }, + actions: { + setToken(token) { + this.token = token; + + window.sessionStorage.setItem('token', token); + }, + async getUserInfo() { + try { + const res = await getInfo(); + // window.sessionStorage.setItem('uid', res.data.userId); + window.localStorage.setItem('uid', res.data.userId); + this.userInfo = res.data; + } catch (err) { + console.error(err); + } + }, + async getSysConfig() { + try { + const res = await getAppConfig(); + setLocalStorage('sysConfig', res.data); + this.sysConfig = res.data; + } catch (err) { + console.error(err); + } + } + }, + userLogout() { + this.token = null; + this.userInfo = null; + } +}) diff --git a/src/style/dark-theme.scss b/src/style/dark-theme.scss new file mode 100644 index 0000000..d8010dc --- /dev/null +++ b/src/style/dark-theme.scss @@ -0,0 +1,34 @@ +// Dark Theme + +$dark-bg-1: #17171A; +$color-bg-2: #393A3C; +$color-bg-3: #2a2a2b; +$color-bg-4: #313132; +$color-bg-5: #373739; + +$--color-text-1: rgba(255, 255, 255, 0.9); +$--color-text-2: rgba(255, 255, 255, 0.7); +$--color-text-3: rgba(255, 255, 255, 0.5); +$--color-text-4: rgba(255, 255, 255, 0.3); + +body[arco-theme='dark'] { + .navbar { + background-color: $dark-bg-1; + } + .arco-layout-content { + background-color: $color-bg-2 + } + .app-container { + background-color: $color-bg-3; + } + .navbar { + border-bottom: 1px solid $--color-text-4; + .left-side { + // background-color: $color-bg-2; + color: $--color-text-1; + &:hover { + background-color: $color-bg-5; + } + } + } +} \ No newline at end of file diff --git a/src/style/index.scss b/src/style/index.scss new file mode 100644 index 0000000..b091ce6 --- /dev/null +++ b/src/style/index.scss @@ -0,0 +1,88 @@ +body { + // Akiraka 20230508 光标样式 + cursor: -webkit-image-set(url(data:image/png;base64,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) 2x,url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAAEEfUpiAAAAAXNSR0IArs4c6QAAArtJREFUWAntV01rGlEUHWuibcU2TVPTRonJpiL2a1FbaEtpAvobanGnIK4qKQjuhP4GseDWjYuii9CNiyJCN134segiJGlAcKELQWJDFZmeM+0TDRM/ppVuvHCceXfuPXPvfe/dN0qSmmxvb8vn9cvnFWPGFouF/pcHJjIEA/1AoXoTjUZpdfGbyFssFuVAIDDKP0Q34R1DlppuN/D+t+M87Qyy0Wh8VjO6RKVer5cymcyrXq/XUjPahPIxQOMlNQOdmvLf6wxI9SloNVdUKYXb7ZYPDg4+gMgwbYwiQRKcCCedTicdHh4emc3mB9D9EPpxVyWCVqvVgNET4CHwHHADJmCirMDiHnB1ouXCQLUCunq9/gZPrqg+nUK5zN7Rbre7sOVsiLUxhetvEwMJuCmPj4/ZNdYAZR9OyzAgIEmhUJB3d3fts5CMEJAklUrJ8Xicm3zi5hrpAHCUut2uVCqVpEgk8nV9ff1FOBz+AiKmdqEoEfh8PtnpdL6G1X2Ae+AlwFQmikKQTqeTsBQFZOiMbmIKZF8yGo13cbUBM1WfzkL4Js3OgmRx1ViB4XnmLvxvM8FAVrCpe/1+/zSfz7O/XAO4GGduD/CZWXiQbYq2srOzw/O+Xy6X30O/CvALZq6BMAC7CIAdhXC5XHKlUpFrtdrHra2t27AxAnOZJtUARCA2m03OZrMyDt5SMBh0Igi2/+H1g6E2mSobtshQKCQ5HI5H+Jb9dnZ2dpRIJNjteOr/VSBiXlmBO5iCE/RgJZVYLCZ5vd5KMpncR5u9brVa1/7I6g2IyWQy5HK5d36//xMcToGxPVshHfMzmAKPxyM3m82fOAj2YM/efhNgpmaAhyZbNqO8BVA3cqhgrEm4yjc6nc73arW6j/tnHANzW3TgVkRMAdcCM+H/DOr4iUD0gYUsKrCowFwr8AukF+p8blYsTwAAAABJRU5ErkJggg==) 1x) 4 4,auto !important; +} +a,button { + // Akiraka 20230508 光标选择样式 + cursor: -webkit-image-set(url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAAHdbkFIAAAAAXNSR0IArs4c6QAAClpJREFUeAHtm2toVdkVx8+9eTpJjIl5GqtmMtTY2sYpRaehKFb8EBEfRacODVgsDi3S+TTS2n7rl9IWi5SOVEpttQ6WQgtSBaGdig+siEIUHyRYOh2MmMT4TGKe9/T/O5N9c+7Jufeec3Mn6dC7YHH23WfvtdZee6291177XMvKJkRtgQhG3ESjrh9OuaamJlZRUfFNb8MIvd2gBp+hs6FgRyKRNipcMEE5gZ9+7ywsLPzc6Ojof1Q+LowJZw00PLu4uHiDl6EZhVO/efPmv9OwqqqqLKGhFPOzbdu2xdXQ3t6ORhOgYMuWLfEGUDFv3XqokQ6+wwvp4X09/mUazc3zldra2pdiXZwJ+3wGCWhMO0UgPwyRUjobAnG1qXDv3j17+fLlaG++m2DCROnFYl729PS42zjlpqYmq6WlhXLFtJeeirKCgoLvHjx40C2APTg4aJeUlPxUbUvd7d3z6K6nXCh8RWjajKg8LJxVGxe/TyVEZQcdlZWVrZLeO82BBlTH/GFMap3ouD7d/Ti4OzHnZhp9uqcRsaur64EkiSGN8MeiUOBLZbIyKg98pIa3GML4+DgPB/bv3+88FyxY8D219ZPaIVG+cuXKyS7+Dyn2pFomeKeb2sjdu3e/NTyMtfqDyI75v5mqXaQh9Pvzt+28vLzNapo31Xx6CYleR2leoE7vVgkTZiXhxyQ9NE3DL2tFqqFOq+xjPTqFl4RDwjj4EeAlkswT4tIAexkdx/mRg/8tDSSbRD8paWsMH5My6Nc2q3UwLpEd9+7atcu+cuWKWarYwoyVZZWhlxie1+h2LsrykW2qrxIarXj7BfodpDMaSFiAoFxeXv6eBOlRtLVXPytKS0txWnyPttANM71qPh0gAjGINns10N3d7aw21F+4cMEp19XVxZYsWRLbtGmTmSaESrmG670vFFdXV/9248aNDmGFJA5B7/qW6jdh5sKFC4+Leq0w6QKabAoK+/r6fnfjxg3r6NGjVkdHh2+85Cu6q1ICYqSEiKGnA8EIwlrnz5//B7f6U43a/W716tW27OTnosGhY5oNqS4tIDXSvybciRDnzp1z80hafvjwobGB9eqb0lOCqIb5Qxuf1Ya4QlZ/WJxT+r925ePPnz8/oT53hT3CpDtxEAHU35lD1FgirBQuFBqXU9EBVkYYPRf2C58I00azQQUQLV/w9keIHOQ0kNPAp0sDXj9OJj3tDNIGf5+14zKMC7UEb9F+MCY8r98cAlkZefeJQ54yDLVsRrdv37bXrVvHRnNZXMl5JNvOsyrUPG2r31auxNn97t+/b3a6JeKSUbTjli7ICArEmU3IC6RRgvT39kv4HYRAngRgvr1QpAq2amhkbAtBBPAydn7LDq4Lb+lHpaIm4gW0RJwQSii/kYlGelB0lHfo0KHGU6dO9dFaWVMrFovtV5o3X8/O/v7+s6oeFTppXtqEAVTKSDCy6rKysne9RohFkgnBOwAFsU55+/btPGNy21+rL1oJrWWYFyqkboc4KC84YgSA2cTEBA8HxsbGTNFetmyZU1ZGweknOgSkoT0FiatgTJZRmReHmFuAOMcUBfqLzheEhG5Jwc8GEICVjtyI1dzcbF27ds06duxYUiIpXsA89BQgVKPm/SeMIlOY1MAbopWQo/UK6ycdm8wLwd9kzd1r16719snq72QCEFp/+OjRo3c6OzutM2fOZMqUwWQUKSMYqmshBY463ZafblouXbpkK3HJmYB8G0t2RsA6wAHkq8py/pWjdzrG5r3cMabV8ZD6NgtZsjMGfJhUTJsWlm6EwMdTwb59+8wasEn9GoR+nqbqjyHdJsJ7DqgQ+rwWpLeLioognAqGent731YD9ol/CweE2IIvpBOATtgD/lwvfFXYEI1Gy/Pz8wlI4v3lMaNamjkPci78cBL5nTI9GieghqkAIZjLcmG1kIWK3+7+bDrcWRkhXqgM85Re4CagtimBtgiCXYAYqbs/jBCCOx6egVzQTUB9QoG3b8qRhqKca5zTQE4DOQ3kNJDTwP+LBry76UzGDS2QcME5nSsmnafs/sSTJ09IoBMauEMEdu45372zpQAGTdzLefrrGvTvVU6grYzB8MjISNvTp0879I7TglHKnCtBsswIGDw5mQrF6xs4Puk4FNOsx88N5p6XY5KuWleqLReJHJW8AaWqZhdSnlYCisJMo4AyjXg5fXR9G9ExjqIDixdzqJK923aRLGGZisYCTLg+Z1bA7M0UUAAzSR6T01tKQAlqAHKkyAb/lPzSvcyGBcCDgQQdTBGnSa0T41oTsACUx9N9fjIWwdOgitmHbCkgsGRyjfe9jXWcPqlj9mrVLxVG5SZdSsMcVF7oL/pNitXsICjDKMoohmfGEHTW/Bhg+mAoOH36tPP9Ad9sXr161emrwb+lLy2aLl68mH/+/PloW1tbs+p+owWVj+JeCAeFw8IR4Z90acItPIuo38k8lDxhGjNYFAbTYm13DUoVvaWvO76vj+u+oQTal5TP/IEEtL2ZXPLYa9assZVmtDXbWgamYMeOHfaKFStspSKnKlVatWqVk146cuRIvP7w4cNOnXgMSAkk3czFfca7SdAZZOAwKdJX0C3ayj6QVEVSgtXY2Gjp6xJbeXJoYZ5RKcLSJ7wqzgzITotXApGtW7da2lYtKfWXjx8//pVe8nUfqS8TVyS0T/cjqAswOFbuBVrAfsjg9+zZY925c8fJ2+rqLII5a7tz6Ml80/EN9N47eDopunT6ap3ADciOsfNkbAFBFkEGD8KkWB+jvKeA5w19T1T54MGD+L3B0qVLrevXr6vJ7IAmAXncawAyhoYgU2VWW7YqwlklXnv3yAT/cfbsWUufitlYwhyBmZyMBo/MQRRAO3yb7eip8KHwI/nfL2QNP5Kfjq1fv97S58qq/uRBt48OE22T+L7ZEjNmHEZztEVhTtirJytwnbBei+G7CmxeJ/zV9am1aNEiVWcfhoaGWHSxyIjK7wwMDPxTZSaEbDjhNafNUIAfhQGYG2uAoYMvX77E+T/SFteqbUvrU8RqbW0NQzdQ2wMHDlg3b96MaPZvPXv27KQ6YZFcAZjBzygoCiTEZCOsAeURjPB1Jie8DbKCdsUGXcQC3FFdvnw5vofPpEDssHv3bhMD9InPm+L3FWGTkFMXi2FQd1bTKQjjAlO9Pi7RF2Qn4UKeixuOubUKil7TTrFP2yECWg0NDdbevXsdq6iv55IpNfCHBCJFfZdrnThxwmK3AbTe/Fn5hD+q2CvsEbIgmBggtPmrb/hQlk4eQPNmbUARfLfB+sA+XaG4oV6B0df0/KJcg5utoG43rpnvUYB1U98LfKBdx/g6n2YwcMx/SGgCoIzMfyYWIN5xMNbA4DBHXIM75jIhkQtl6lhAsRjTXsVpk2BWdrZdBseV36CQi3MQn2fg7ErMOgPPaPDqN405dTMBMzCeKIPBMmiD/KYei6ENYJ5mEDyNElAAyGBN2X10Nn30OjMwzDPrnb4X9A0PbzldbwZnBugtp+ube5/TQE4DOQ3kNBBEA/8FSS7Rlqfcs5YAAAAASUVORK5CYII=) 2x,url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAAEEfUpiAAAAAXNSR0IArs4c6QAAA9xJREFUWAntV8tLVFEYnzvvpzTazIijprZRpqRFhFLUooUglSFDs2vXInAxuBaX9RcEbVNBsHAlYtbGRUK4CnMhLoxQQ8lkZGZ0Xvf2+13m3O6dmYujhAT2wcc95zvf45zvdc61WEzABbpVW1PKAEJIECWHw5HERBIE4/fw8FDRU2w6HRY7VkqSJD3Sc9Q99lN3OBxWotHoR0j92SdV2Gy2h8IWvyBdIv08oaWlpQT33Kq0adjp7Ozs54GBgXxjY2OfgbG1tXVhaWlJO0Rvb++xYFA1bG1tPZ6fny8J4sHBgTbWhyOCPSRKAFmW34J5Twic/1dCvEZxsDRMe85i3kefMvB2u30ACtxAG1B/3pp6paampufIlAIVaD4tD46OjhTsqgBJn15aHyhpf3//E5JV2t7e1tNVfrfbbfF4PMwygwK9MjEO+ny+F8lkspjJZBRiKpVS4vF4HikbB5NTMPJrdi7SeW5HmYeWi2U0FBxoFx7oqEpwIw/SCNtONpv9gsXTOQ0hvM/cYfuBsL9Se+W8KmEgqyWK1+sNQIDdsIpPKKpcYPy13Jibm9sZHBzMIoW/d3R0vMcaG7cpOJubm4s4/yaPoIfJyUmlUCgofr9/GNKVRjWF0UQiUTg+PtbLGsaBQGAU3DxSTfDDgS83NjYMQvoJFDyDpKkCnr2jra1tSy8kxsvLy4zKbaDpEbCmFtBN9ITc+vq6WomsxpWVFaW9vf0n1jvJpAfN4zoiy/U6Svea1WoNkg4H/sJnFfiVU6AGtRRwkdukIrFd9nGWs9bPMf4P/4gHzIJYuT0GU4rFYmr7WVtbkzEXWMn71+d29LYrrPPFxUVlenqa91sGV1QUltgc6j3EmTeGruZ9IC5b8VTDrX0PGvkSE6l+JgOmfUGnjSes6vxo2B9wh1uKxeIrPIcyGJdyudwb3ME/wM+aEyE63Y1QNsxTOSKRSGcwGLwDdz8RHuATo7u7W4YxtU319PTIu7u7attBmOTx8XFlbGyshJ62B8+1UA/wVGGi8caurq5vExMTSjqdVoaGhvLob1XvHdEoa335zGxoaBihLmCVB0EzBTJHnE7nMJ94U1NTci0DJ9G4gfL9EYa+ekJt2BAFKHg3FAot9Pf354XLTzLMdfIiR2SXyzUIHZeBp/IA+FVgKHjBx6BoBN7IzczM1GOfIStgA+8ge6OswzQHTBcgKIBJxDhexUb68I/xFOMY/gWq3IobOY37bxXP3NdY59W1CTwEmt5C9WwA8moW06AXyNrnc4cvd8oTWWosO/7fpIEpYBYoyhHD2lDvBmpLG8vrTPVupvji0H8DAsFwgXvDpDQAAAAASUVORK5CYII=) 1x) 9 9,auto !important +} +input,textarea { + // Akiraka 20230508 光标输入样式 + cursor: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAAEEfUpiAAAAAXNSR0IArs4c6QAAAupJREFUWAntl89vElEQx0EopAl6ESm2KgmcTLwoPWBjYojEpHeS3jnwH3jg5r/jwRN/gQd+hDsXLiWNgm0QSAUbEFjns77d7MKubCMYD0wymTcz35333sy8x8Pnc6NsNqvZfM1m024Q71sbwqZcXl4CT1qNpnJHWZ+LPLQiPI/3VXzzAyOkbigWiw9arRbjgIn4t4MkCVxepG0JyrlvNdp20ev18D10AwQGg4FPtjqzAvwWhdQ+E74r/NFi3/LQugTrVBHZ8fdwOPwB42QyOTs4OGBpIyvoT+OIOF+0220NZiyMbYWCK5bfBmY6H4/HhvtcBo6zuwXQP4xGo0YAV+kW4CgWi30ulUr6hzLuX11dPRLly3IktyTSzwRfqA/oGBpgrvSdWJOBwGKx6I9Go+tyufwKiS7feL4owtPp9LpWq2mZTEZDokuA8JqJTTczPU6lUmdSfw2JLux5BUSiP54SAKl0Ed4pMJvNhgRAymeus9vuJEv8oCRO9ynp1vI+twCzUCj0hoBK2u4xy0SOAdh/UO6BdwCVZAVu5waYjfY0oXg8rnU6HV2iC2LPhlKKU1SAL4W5DL4J3xfmwq4J/xS2kVMAfQuCIj8cXyrAsSYPrGRH/1kGnIrotERwFNVgMBSWoho+w4bd8GHbCNGah/Qz55seLxQKWrfb1SU6dgicsGPP/81KCHgk/DqRSBQqlcqnarWqT8p9iY4dv8JtfAGkmfPEpczBPOa1xa7Vq+tY2fGD81pa/bdX8GuJ1HKoqe0PYfPNIWMIHftUGKxn8rxSFZHUxqXUF/LaMieRLPj8fv8TMXwVXrmuTOAGBiyAn7fTpRKcKvuta8+xug1Rhv7JyYm8p7mf5ZYWiY5dGP9WiMaKzOfzATuv1+taLpfT0um0xn8DdOz4wQmD3yjR3UmeJ0w0HA5vGo1GLZ/Pv0eiY1fPl6RgwXsir03IjviDc09JOn0iTMNRdyYk1o0wbyjk1sohsXe0uQz8AtSlOGRROrZeAAAAAElFTkSuQmCC) !important +} +*::before { + margin: 0; + padding: 0; +} +*, *::before, *::after { + box-sizing: border-box; +} +img { + vertical-align: middle; +} +ul { + padding: 0px 0px 0px 16px; +} +// li { +// list-style: none; +// } + +// main-container 全局样式 +.app-container { + flex: 1; + padding: 20px 20px 12px 20px; + background-color: #fff; + border-radius: 5px; +} + +// 表格操作栏样式 +.arco-table-th:last-child .arco-table-th-item-title { + margin-left: 16px; +} + +// 数字输入框样式 +.arco-input-number .arco-input { + text-align: center; +} + +// Table 操作栏样式覆盖 +// .arco-table-th:last-child .arco-table-cell { +// margin-left: 15px; +// } + +// 滚动条整体部分 +::-webkit-scrollbar { + width: 6px; + height: 6px; + background-color: transparent; +} + +// 滚动条外层轨道 +::-webkit-scrollbar-track { + border-radius: 10px; +} + +// 滚动条滑块 +::-webkit-scrollbar-thumb { + border-radius: 5px; + background-color: rgba(157, 165, 183, 0.4); +} + +::-webkit-scrollbar-thumb:hover { + background-color: rgba(157, 165, 183, 0.7); +} + +// 链接标签样式 +a { + text-decoration: none; + color: #165DFF; +} + +a:hover { + color: #4080FF; +} + +// 表格操作栏样式 +.action { + margin-bottom: 16px; +} \ No newline at end of file diff --git a/src/style/transition.scss b/src/style/transition.scss new file mode 100644 index 0000000..4f1a847 --- /dev/null +++ b/src/style/transition.scss @@ -0,0 +1,28 @@ +// global transition css + +/* fade */ +.fade-enter-active, +.fade-leave-active { + transition: opacity 0.28s; +} + +.fade-enter, +.fade-leave-active { + opacity: 0; +} + +/* fade-transform */ +.fade-transform-leave-active, +.fade-transform-enter-active { + transition: all .5s; +} + +.fade-transform-enter-from { + opacity: 0; + transform: translateX(-30px); +} + +.fade-transform-leave-to { + opacity: 0; + transform: translateX(30px); +} \ No newline at end of file diff --git a/src/style/variables.scss b/src/style/variables.scss new file mode 100644 index 0000000..54116a3 --- /dev/null +++ b/src/style/variables.scss @@ -0,0 +1,3 @@ +// base color +$primary-font-color: #1d2129; +$secondary-font-color: #86909c; \ No newline at end of file diff --git a/src/utils/parseTime.js b/src/utils/parseTime.js new file mode 100644 index 0000000..662297f --- /dev/null +++ b/src/utils/parseTime.js @@ -0,0 +1,41 @@ +// 日期格式化 +export function parseTime(time, pattern) { + if (arguments.length === 0 || !time) { + return null + } + if (time.indexOf('01-01-01') > -1) { + return '-' + } + const format = pattern || '{y}-{m}-{d} {h}:{i}:{s}' + let date + if (typeof time === 'object') { + date = time + } else { + if ((typeof time === 'string') && (/^[0-9]+$/.test(time))) { + time = parseInt(time) + } + if ((typeof time === 'number') && (time.toString().length === 10)) { + time = time * 1000 + } + date = new Date(time) + } + const formatObj = { + y: date.getFullYear(), + m: date.getMonth() + 1, + d: date.getDate(), + h: date.getHours(), + i: date.getMinutes(), + s: date.getSeconds(), + a: date.getDay() + } + const time_str = format.replace(/{(y|m|d|h|i|s|a)+}/g, (result, key) => { + let value = formatObj[key] + // Note: getDay() returns 0 on Sunday + if (key === 'a') { return ['日', '一', '二', '三', '四', '五', '六'][value] } + if (result.length > 0 && value < 10) { + value = '0' + value + } + return value || 0 + }) + return time_str +} \ No newline at end of file diff --git a/src/utils/request.js b/src/utils/request.js new file mode 100644 index 0000000..0cf2e4a --- /dev/null +++ b/src/utils/request.js @@ -0,0 +1,58 @@ +import axios from 'axios'; +import { Message } from '@arco-design/web-vue'; +import { useUserStore } from '../store/userInfo' + +// create an axios instance +console.log("________"+import.meta.env.VITE_BASE_URL) +const service = axios.create({ + baseURL:import.meta.env.VITE_BASE_URL, + timeout: 8000, +}); + +// request interceptor +service.interceptors.request.use( + (config) => { + // Store 必须在拦截器内部导入,在外部导入会显示 Pinia 未初始化 + const store = useUserStore(); + // 设置请求头部 Authorization + if (store.token) { + config.headers['Authorization'] = 'Bearer ' + store.token; + config.headers['Content-Type'] = 'application/json' + } + return config; + }, + (error) => { + console.error(error); + return Promise.reject(error); + } +); + +// response interceptor +service.interceptors.response.use( + (response) => { + return response.data; + }, + (error) => { + const store = useUserStore(); + const { code, msg } = error.response.data; + // 如果过期则退出登录 + if (code === 401) { + Message.error({ + content: 'Token 已过期, 请重新登陆', + duration: 3000 + }); + // 重定向路由到登陆页面 + store.userLogout(); + // Akiraka 20230410 重定向到登录页面 + return router.push('/login'); + } else { + Message.error({ + content: error.message, + duration: 3000 + }) + return Promise.reject(msg); + } + } +); + +export default service; \ No newline at end of file diff --git a/src/utils/storage.js b/src/utils/storage.js new file mode 100644 index 0000000..14f22cb --- /dev/null +++ b/src/utils/storage.js @@ -0,0 +1,41 @@ +// LocalStorage + +/** + * 存储LocalStorage + * @param {string, Object} name + * @param {*} value + */ +export const setLocalStorage = (name, value) => { + if (!name) throw new Error('name must be specified'); + if (typeof value !== 'string') { + value = JSON.stringify(value); + } + window.localStorage.setItem(name, value); +} + +/** + * 获取LocalStorage + * @param {string, Object} name + * @returns + */ +export const getLocalStorage = (name) => { + if(!name) throw new Error('name must be specified'); + const value = window.localStorage.getItem(name); + return JSON.parse(value); +} + +/** + * 移除指定name + * @param {*} name + */ +export const removeLocalStorage = (name) => { + if (!name) throw new Error('name must be specified'); + window.localStorage.removeItem(name); +} + +/** + * 清空所有LocalStorage + */ +export const clearLocalStorage = () => { + window.localStorage.clear(); +} \ No newline at end of file diff --git a/src/utils/watermark.js b/src/utils/watermark.js new file mode 100644 index 0000000..6f07922 --- /dev/null +++ b/src/utils/watermark.js @@ -0,0 +1,60 @@ +let watermark = {} + +let setWatermark = (str) => { + let id = '1.23452384164.123412415' + + if (document.getElementById(id) !== null) { + document.body.removeChild(document.getElementById(id)) + } + + let can = document.createElement('canvas') + can.width = 200 + can.height = 120 + + let cans = can.getContext('2d') + cans.rotate(-15 * Math.PI / 150) + cans.font = '18px Vedana' + cans.fillStyle = 'rgba(200, 200, 200, 0.20)' + cans.textAlign = 'left' + cans.textBaseline = 'Middle' + cans.fillText(str, can.width / 8, can.height / 2) + + let div = document.createElement('div') + div.id = id + div.style.pointerEvents = 'none' + div.style.top = '35px' + div.style.left = '200px' + div.style.position = 'fixed' + div.style.zIndex = '100000' + div.style.width = document.documentElement.clientWidth + 'px' + div.style.height = document.documentElement.clientHeight + 'px' + div.style.background = 'url(' + can.toDataURL('image/png') + ') left top repeat' + document.body.appendChild(div) + return id +} + +// 该方法只允许调用一次 +watermark.set = (str) => { + let id = setWatermark(str) + setInterval(() => { + if (document.getElementById(id) === null) { + id = setWatermark(str) + } + }, 500) + window.onresize = () => { + setWatermark(str) + } +} + +const outWatermark = (id) => { + if (document.getElementById(id) !== null) { + const div = document.getElementById(id) + div.style.display = 'none' + } +} +watermark.out = () => { + const str = '1.23452384164.123412415' + outWatermark(str) +} + +export default watermark \ No newline at end of file diff --git a/src/views/admin/dict/data.vue b/src/views/admin/dict/data.vue new file mode 100644 index 0000000..5a4dbef --- /dev/null +++ b/src/views/admin/dict/data.vue @@ -0,0 +1,253 @@ + + + + + diff --git a/src/views/admin/dict/index.vue b/src/views/admin/dict/index.vue new file mode 100644 index 0000000..5a07a07 --- /dev/null +++ b/src/views/admin/dict/index.vue @@ -0,0 +1,268 @@ + + + + + diff --git a/src/views/admin/sys-api/index.vue b/src/views/admin/sys-api/index.vue new file mode 100644 index 0000000..7032a2e --- /dev/null +++ b/src/views/admin/sys-api/index.vue @@ -0,0 +1,254 @@ + + + + + diff --git a/src/views/admin/sys-config/index.vue b/src/views/admin/sys-config/index.vue new file mode 100644 index 0000000..5f6a8bf --- /dev/null +++ b/src/views/admin/sys-config/index.vue @@ -0,0 +1,328 @@ + + + + + diff --git a/src/views/admin/sys-dept/index.vue b/src/views/admin/sys-dept/index.vue new file mode 100644 index 0000000..1e067a0 --- /dev/null +++ b/src/views/admin/sys-dept/index.vue @@ -0,0 +1,266 @@ + + + + + diff --git a/src/views/admin/sys-login-log/index.vue b/src/views/admin/sys-login-log/index.vue new file mode 100644 index 0000000..4477657 --- /dev/null +++ b/src/views/admin/sys-login-log/index.vue @@ -0,0 +1,169 @@ + + + + + diff --git a/src/views/admin/sys-menu/index.vue b/src/views/admin/sys-menu/index.vue new file mode 100644 index 0000000..ba3e350 --- /dev/null +++ b/src/views/admin/sys-menu/index.vue @@ -0,0 +1,350 @@ + + + + + diff --git a/src/views/admin/sys-oper-log/index.vue b/src/views/admin/sys-oper-log/index.vue new file mode 100644 index 0000000..8aed65c --- /dev/null +++ b/src/views/admin/sys-oper-log/index.vue @@ -0,0 +1,185 @@ + + + + + diff --git a/src/views/admin/sys-post/index.vue b/src/views/admin/sys-post/index.vue new file mode 100644 index 0000000..e0b6184 --- /dev/null +++ b/src/views/admin/sys-post/index.vue @@ -0,0 +1,289 @@ + + + + + diff --git a/src/views/admin/sys-role/index.vue b/src/views/admin/sys-role/index.vue new file mode 100644 index 0000000..f27fed9 --- /dev/null +++ b/src/views/admin/sys-role/index.vue @@ -0,0 +1,382 @@ + + + + + diff --git a/src/views/admin/sys-set/index.vue b/src/views/admin/sys-set/index.vue new file mode 100644 index 0000000..5840b41 --- /dev/null +++ b/src/views/admin/sys-set/index.vue @@ -0,0 +1,77 @@ + + + + + diff --git a/src/views/admin/sys-user/components/TreeDept.vue b/src/views/admin/sys-user/components/TreeDept.vue new file mode 100644 index 0000000..433c25f --- /dev/null +++ b/src/views/admin/sys-user/components/TreeDept.vue @@ -0,0 +1,31 @@ + + + + + diff --git a/src/views/admin/sys-user/index.vue b/src/views/admin/sys-user/index.vue new file mode 100644 index 0000000..61145f3 --- /dev/null +++ b/src/views/admin/sys-user/index.vue @@ -0,0 +1,621 @@ + + + + + diff --git a/src/views/dev-tools/gen/editTable.vue b/src/views/dev-tools/gen/editTable.vue new file mode 100644 index 0000000..c5cc52d --- /dev/null +++ b/src/views/dev-tools/gen/editTable.vue @@ -0,0 +1,410 @@ + + + + + diff --git a/src/views/dev-tools/gen/importTable.vue b/src/views/dev-tools/gen/importTable.vue new file mode 100644 index 0000000..d592fc8 --- /dev/null +++ b/src/views/dev-tools/gen/importTable.vue @@ -0,0 +1,145 @@ + + + \ No newline at end of file diff --git a/src/views/dev-tools/gen/index.vue b/src/views/dev-tools/gen/index.vue new file mode 100644 index 0000000..1b57cb5 --- /dev/null +++ b/src/views/dev-tools/gen/index.vue @@ -0,0 +1,270 @@ + + + + + diff --git a/src/views/dev-tools/swagger/index.vue b/src/views/dev-tools/swagger/index.vue new file mode 100644 index 0000000..2cbea54 --- /dev/null +++ b/src/views/dev-tools/swagger/index.vue @@ -0,0 +1,11 @@ + + + \ No newline at end of file diff --git a/src/views/error-page/403.vue b/src/views/error-page/403.vue new file mode 100644 index 0000000..7f291e2 --- /dev/null +++ b/src/views/error-page/403.vue @@ -0,0 +1,25 @@ + + + \ No newline at end of file diff --git a/src/views/error-page/404.vue b/src/views/error-page/404.vue new file mode 100644 index 0000000..cc894f2 --- /dev/null +++ b/src/views/error-page/404.vue @@ -0,0 +1,25 @@ + + + \ No newline at end of file diff --git a/src/views/error-page/500.vue b/src/views/error-page/500.vue new file mode 100644 index 0000000..038a276 --- /dev/null +++ b/src/views/error-page/500.vue @@ -0,0 +1,25 @@ + + + \ No newline at end of file diff --git a/src/views/error-page/888.vue b/src/views/error-page/888.vue new file mode 100644 index 0000000..9b9f6bb --- /dev/null +++ b/src/views/error-page/888.vue @@ -0,0 +1,19 @@ + + + \ No newline at end of file diff --git a/src/views/index.vue b/src/views/index.vue new file mode 100644 index 0000000..ba32c22 --- /dev/null +++ b/src/views/index.vue @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/src/views/login/index.vue b/src/views/login/index.vue new file mode 100644 index 0000000..41ddfb1 --- /dev/null +++ b/src/views/login/index.vue @@ -0,0 +1,290 @@ + + + + + diff --git a/src/views/profile/api-management.svg b/src/views/profile/api-management.svg new file mode 100644 index 0000000..7a80c94 --- /dev/null +++ b/src/views/profile/api-management.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/views/profile/index.vue b/src/views/profile/index.vue new file mode 100644 index 0000000..b2810cb --- /dev/null +++ b/src/views/profile/index.vue @@ -0,0 +1,234 @@ + + + + + diff --git a/src/views/schedule/index.vue b/src/views/schedule/index.vue new file mode 100644 index 0000000..fd84683 --- /dev/null +++ b/src/views/schedule/index.vue @@ -0,0 +1,277 @@ + + + + + diff --git a/src/views/sys-tools/monitor/index.vue b/src/views/sys-tools/monitor/index.vue new file mode 100644 index 0000000..eadedf1 --- /dev/null +++ b/src/views/sys-tools/monitor/index.vue @@ -0,0 +1,160 @@ + + + + + diff --git a/vite.config.js b/vite.config.js new file mode 100644 index 0000000..9b45697 --- /dev/null +++ b/vite.config.js @@ -0,0 +1,51 @@ +import { join } from 'path' +import { defineConfig } from 'vite'; +import { viteMockServe } from 'vite-plugin-mock'; +import vue from '@vitejs/plugin-vue'; +import svgLoader from 'vite-svg-loader'; +import { VuetifyResolver } from 'unplugin-vue-components/resolvers'; +import Components from 'unplugin-vue-components/vite'; + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [ + vue(), + viteMockServe({ + mockPath: '/mock', + }), + svgLoader(), + viteMockServe({ + mockPath: '/mock', + }), + Components({ + resolvers: [VuetifyResolver()], + include: [/\.vue$/, /\.vue\?vue/, /\.md$/], + }), + ], + resolve: { + alias: { + '@': join(__dirname, 'src'), + } + }, + server: { + host: true, + port: 1798, + //secure: false, + proxy: { + '/api': { + target: 'https://vue3.go-admin.dev', + changeOrigin: true, //开启跨域 + rewrite: (path) => path.replace(/^\/api/, '') + } + } + }, + // 引入全局scss变量 + css: { + preprocessorOptions: { + scss: { + additionalData: `@import "@/style/variables.scss";` + } + } + }, + publicDir: '/public' +});