mirror of
https://gitee.com/yudaocode/yudao-ui-admin-vben.git
synced 2025-12-30 10:32:25 +00:00
Compare commits
359 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8dee4f0257 | ||
|
|
e0d4cd0c0a | ||
|
|
9a5d995f75 | ||
|
|
43dff1cdb3 | ||
|
|
d937c81931 | ||
|
|
ba2063abee | ||
|
|
b385f335de | ||
|
|
caefaad645 | ||
|
|
f241d1faef | ||
|
|
be2ff70cf6 | ||
|
|
ad91b8ac82 | ||
|
|
b2ade25899 | ||
|
|
8e25a3aa09 | ||
|
|
007ac38d5f | ||
|
|
ea2be2961c | ||
|
|
d819fd8e47 | ||
|
|
abb7466c7e | ||
|
|
5f1aa89c3a | ||
|
|
75a7c91bb1 | ||
|
|
7015287a6f | ||
|
|
d70a5c2903 | ||
|
|
f3cba6fc27 | ||
|
|
4bf34bd64a | ||
|
|
23c5292c97 | ||
|
|
85faca3ad8 | ||
|
|
14538b0946 | ||
|
|
d8bf10241f | ||
|
|
729402b314 | ||
|
|
1820e19232 | ||
|
|
d5bdf6502e | ||
|
|
f469a7a840 | ||
|
|
d8800cfda9 | ||
|
|
df746f21f0 | ||
|
|
afab7630ec | ||
|
|
40db4c17da | ||
|
|
13f8e3b249 | ||
|
|
9c27d6d3b6 | ||
|
|
8ce86658ff | ||
|
|
9acc73a591 | ||
|
|
1de5f2bb5a | ||
|
|
8076d0e54c | ||
|
|
dbbc2e1939 | ||
|
|
cc0c32ae18 | ||
|
|
a5e9361ff1 | ||
|
|
9e4bcf6471 | ||
|
|
6902f0f79a | ||
|
|
cb132248c6 | ||
|
|
3f9f9e91d9 | ||
|
|
09b71efc1e | ||
|
|
bef2ea3d68 | ||
|
|
c804dddb7d | ||
|
|
3147206e8e | ||
|
|
cd60ed8de8 | ||
|
|
2141378c3d | ||
|
|
ed11ecc18a | ||
|
|
15a0cadbf1 | ||
|
|
9915eab368 | ||
|
|
60a79422f3 | ||
|
|
42e633e4db | ||
|
|
84138b9be4 | ||
|
|
f2a54807e8 | ||
|
|
0b3a5f2ff3 | ||
|
|
ced9f8ca2c | ||
|
|
b06d3c58b3 | ||
|
|
21e1cee4ce | ||
|
|
bea5189943 | ||
|
|
f789fa4df1 | ||
|
|
1814ed00ef | ||
|
|
56ad5f4743 | ||
|
|
0201853172 | ||
|
|
84e5d7133c | ||
|
|
9abf0d8729 | ||
|
|
8d280af271 | ||
|
|
bdb7fdc3a3 | ||
|
|
b343e80f6e | ||
|
|
daa2b48efb | ||
|
|
d5edc19b84 | ||
|
|
50628346b7 | ||
|
|
57314ee1d0 | ||
|
|
88c1f5c2c4 | ||
|
|
91b9e4e25c | ||
|
|
285d4ab779 | ||
|
|
91c34175da | ||
|
|
0efc29e5ac | ||
|
|
b4f6ef1465 | ||
|
|
eb96488317 | ||
|
|
81283bcd24 | ||
|
|
eee3d31eeb | ||
|
|
857c2d495b | ||
|
|
aa63382d1a | ||
|
|
0bdfd88035 | ||
|
|
9a8fa49541 | ||
|
|
3a84c319dc | ||
|
|
781f7c9cd1 | ||
|
|
97de2d680b | ||
|
|
36214e1971 | ||
|
|
3e68d4f7fe | ||
|
|
9ac774cd0a | ||
|
|
0f9ab388c3 | ||
|
|
4bec67dcc2 | ||
|
|
33304257ad | ||
|
|
8bea32cd84 | ||
|
|
cb979226c2 | ||
|
|
af53aea1b2 | ||
|
|
d00d31d739 | ||
|
|
65800edb88 | ||
|
|
f03fd74e52 | ||
|
|
d15e75bb3f | ||
|
|
a710ffc8c3 | ||
|
|
30e3ad9c17 | ||
|
|
f4b012eaaf | ||
|
|
e0f5b4ff15 | ||
|
|
2e06c047ff | ||
|
|
1e3cb0c885 | ||
|
|
efe71b9d8e | ||
|
|
2334fc31ab | ||
|
|
6f671d0593 | ||
|
|
9c429afec6 | ||
|
|
9dab524b45 | ||
|
|
e304a37b37 | ||
|
|
b8ac3dd136 | ||
|
|
6b8325c4af | ||
|
|
485ee8502f | ||
|
|
96501ceb00 | ||
|
|
5b27f87ef3 | ||
|
|
b808fceb5f | ||
|
|
0df27a39bc | ||
|
|
ce6be02a15 | ||
|
|
ceec03d98d | ||
|
|
4726b7448f | ||
|
|
66a1da3dd2 | ||
|
|
4730da70a1 | ||
|
|
f712bbf370 | ||
|
|
6034ffecf2 | ||
|
|
afd2d946c5 | ||
|
|
4fbe0d686b | ||
|
|
3f46f3b05e | ||
|
|
cc00221b05 | ||
|
|
da1e58b9c8 | ||
|
|
15e02170b0 | ||
|
|
f294327db8 | ||
|
|
f2ea548f26 | ||
|
|
731bc2ab0f | ||
|
|
c07aa6ff3d | ||
|
|
ac2f96e42b | ||
|
|
28b3e5f532 | ||
|
|
21fd704ed3 | ||
|
|
d816f18088 | ||
|
|
3e9b724ea5 | ||
|
|
cbbc4c0d5e | ||
|
|
bcc16e85ca | ||
|
|
8e6f2de94b | ||
|
|
ee8db14788 | ||
|
|
20ee9f6fa5 | ||
|
|
01d2cdc898 | ||
|
|
8f38d59f0f | ||
|
|
ac1872dbec | ||
|
|
347906a5a3 | ||
|
|
1457397a56 | ||
|
|
f55ca845af | ||
|
|
a5f3cfb4f9 | ||
|
|
044be6bd11 | ||
|
|
c382d63266 | ||
|
|
5f158ae59d | ||
|
|
e1c4b5ad5a | ||
|
|
091e78023b | ||
|
|
0c360eadd2 | ||
|
|
35c2ffd03e | ||
|
|
133fd07e98 | ||
|
|
b73660f094 | ||
|
|
42cb505fb5 | ||
|
|
6ff0cf633c | ||
|
|
45fbebdfd9 | ||
|
|
a81d453967 | ||
|
|
28e1859a7b | ||
|
|
7cd2d86553 | ||
|
|
8030b54795 | ||
|
|
f1bc5e738a | ||
|
|
c4425a8286 | ||
|
|
85fbbc0c10 | ||
|
|
8c3efaae21 | ||
|
|
2694c179d2 | ||
|
|
9be5341465 | ||
|
|
a82af41fe9 | ||
|
|
a6c5fcf497 | ||
|
|
b2e2afa7e5 | ||
|
|
764e8b71c4 | ||
|
|
9ae7b1926b | ||
|
|
9eb91429be | ||
|
|
c4f65af100 | ||
|
|
1af9f68118 | ||
|
|
c59a005fff | ||
|
|
33db2224ed | ||
|
|
cc1490a97c | ||
|
|
ebc61a7ff3 | ||
|
|
f4ca72a7a2 | ||
|
|
45a4ac80d9 | ||
|
|
e6e5f54f79 | ||
|
|
148f3fe1d2 | ||
|
|
41018b360d | ||
|
|
cc4963f2ec | ||
|
|
bda764a7ff | ||
|
|
65e7aeea48 | ||
|
|
3ad5511aa8 | ||
|
|
3622c099e9 | ||
|
|
69d3ef6506 | ||
|
|
fd3221f845 | ||
|
|
77aa03b31c | ||
|
|
f1f00becbe | ||
|
|
5f55465302 | ||
|
|
6ffb0b520f | ||
|
|
17a6833c64 | ||
|
|
e3273e2218 | ||
|
|
cb8602535e | ||
|
|
8f4405739e | ||
|
|
4b78fade15 | ||
|
|
2176878406 | ||
|
|
107bf24437 | ||
|
|
f1cbfeca1d | ||
|
|
8e16d14682 | ||
|
|
015f2d5d85 | ||
|
|
bcf4db28e4 | ||
|
|
e867d9a81b | ||
|
|
0a797760a0 | ||
|
|
26dbe8ca94 | ||
|
|
7315c094e8 | ||
|
|
4ad9682478 | ||
|
|
448ff30446 | ||
|
|
379627790c | ||
|
|
e00538b2dd | ||
|
|
e9a9cd9008 | ||
|
|
00f6f26a91 | ||
|
|
27b3f73471 | ||
|
|
2e5981f1dd | ||
|
|
a74d1bca03 | ||
|
|
9776f16942 | ||
|
|
4e30ff7624 | ||
|
|
6dca0c33f0 | ||
|
|
96faa0c6f1 | ||
|
|
067a3b9d87 | ||
|
|
7936f7a3a3 | ||
|
|
373967063b | ||
|
|
d38413c1e4 | ||
|
|
e2b07b92e0 | ||
|
|
254e57e516 | ||
|
|
aa7a926344 | ||
|
|
9eba779b9d | ||
|
|
f4cd4fbb52 | ||
|
|
4ee3977f80 | ||
|
|
2396fb4669 | ||
|
|
5c92ec8303 | ||
|
|
54e93835d6 | ||
|
|
db7b7cd047 | ||
|
|
7d0bcf6a48 | ||
|
|
e8c9af962f | ||
|
|
b5f17955df | ||
|
|
77739a6259 | ||
|
|
608c1498eb | ||
|
|
bc4b337e0f | ||
|
|
d024950dda | ||
|
|
2c9f11bce3 | ||
|
|
9c142656f1 | ||
|
|
5486011c09 | ||
|
|
ee56231f02 | ||
|
|
7aeba3367d | ||
|
|
4daf15f26b | ||
|
|
391d3df111 | ||
|
|
645bcf968e | ||
|
|
cc4a901bce | ||
|
|
26f07e4083 | ||
|
|
df7b4a4b5f | ||
|
|
3d09e63409 | ||
|
|
dcc33d37bc | ||
|
|
8347f97a2a | ||
|
|
fafb4028c5 | ||
|
|
f0186562f9 | ||
|
|
6f6b4fc6df | ||
|
|
1a9052785f | ||
|
|
5fffb3591d | ||
|
|
b505773475 | ||
|
|
db04d3a8b9 | ||
|
|
0078559e4b | ||
|
|
bfbc45abf8 | ||
|
|
45da35a1cd | ||
|
|
1e34183e7a | ||
|
|
9f96e99ad7 | ||
|
|
14cd061671 | ||
|
|
14aef34e44 | ||
|
|
76d5a66586 | ||
|
|
fd06e829c1 | ||
|
|
78245e1e4e | ||
|
|
0db723a371 | ||
|
|
dee6036131 | ||
|
|
bc61e8c86f | ||
|
|
320c6ee043 | ||
|
|
0b4ab70603 | ||
|
|
9e03433b85 | ||
|
|
4fb4cb9e82 | ||
|
|
35f1298ee6 | ||
|
|
05979c7f14 | ||
|
|
28ae5f793e | ||
|
|
b885e078d8 | ||
|
|
e35427e999 | ||
|
|
65d52b0516 | ||
|
|
5ef73110ba | ||
|
|
29a8b4a821 | ||
|
|
68b22ef3fa | ||
|
|
430cdc4ec1 | ||
|
|
3fc0933aa4 | ||
|
|
faa483bc8d | ||
|
|
3b97e48da1 | ||
|
|
055d76407c | ||
|
|
5a25a6d562 | ||
|
|
25593cc249 | ||
|
|
684ab06102 | ||
|
|
ef14b966f7 | ||
|
|
b6ca2ab857 | ||
|
|
b2cec41874 | ||
|
|
f464869bd3 | ||
|
|
dce410eede | ||
|
|
73ef2b8bea | ||
|
|
0ce3729d0c | ||
|
|
2f2921759d | ||
|
|
e8bc53f6cc | ||
|
|
f0aeee6d27 | ||
|
|
67506281f9 | ||
|
|
41c2f83604 | ||
|
|
f9b7c2e41e | ||
|
|
fff07a0cbb | ||
|
|
95bb3a2d28 | ||
|
|
2e72f5b4ac | ||
|
|
cc4b3e4f00 | ||
|
|
3a504d441a | ||
|
|
6a2e9e75c6 | ||
|
|
e960ac6419 | ||
|
|
477a658645 | ||
|
|
887296c19a | ||
|
|
924ce4c955 | ||
|
|
9d5b147c50 | ||
|
|
0732077adf | ||
|
|
49aa7f645c | ||
|
|
7fc5b99ae7 | ||
|
|
25fa7e21ae | ||
|
|
2ac7af9fc8 | ||
|
|
5e728080c3 | ||
|
|
e0d26bc9ba | ||
|
|
c9cedbf7a2 | ||
|
|
50cb4d8135 | ||
|
|
374d65ec2a | ||
|
|
447f878212 | ||
|
|
f5dc15f2bb | ||
|
|
ebadd364ca | ||
|
|
dae144ccf9 | ||
|
|
02d0c92e89 | ||
|
|
838592253a | ||
|
|
4ef993990c | ||
|
|
08d7738f68 | ||
|
|
36ba923c20 | ||
|
|
45604f5703 |
74
.eslintrc.js
74
.eslintrc.js
@@ -1,74 +0,0 @@
|
||||
module.exports = {
|
||||
root: true,
|
||||
env: {
|
||||
browser: true,
|
||||
node: true,
|
||||
es6: true
|
||||
},
|
||||
parser: 'vue-eslint-parser',
|
||||
plugins: ['vue'],
|
||||
parserOptions: {
|
||||
parser: '@typescript-eslint/parser',
|
||||
ecmaVersion: 2020,
|
||||
sourceType: 'module',
|
||||
jsxPragma: 'React',
|
||||
ecmaFeatures: {
|
||||
jsx: true
|
||||
}
|
||||
},
|
||||
extends: ['plugin:vue/vue3-recommended', 'prettier', 'plugin:@typescript-eslint/recommended', 'plugin:prettier/recommended'],
|
||||
rules: {
|
||||
'max-len': ['error', { code: 140, tabWidth: 2, ignoreComments: true }],
|
||||
'vue/script-setup-uses-vars': 'error',
|
||||
'@typescript-eslint/ban-ts-ignore': 'off',
|
||||
'@typescript-eslint/explicit-function-return-type': 'off',
|
||||
'@typescript-eslint/no-explicit-any': 'off',
|
||||
'@typescript-eslint/no-var-requires': 'off',
|
||||
'@typescript-eslint/no-empty-function': 'off',
|
||||
'vue/custom-event-name-casing': 'off',
|
||||
'no-use-before-define': 'off',
|
||||
'@typescript-eslint/no-use-before-define': 'off',
|
||||
'@typescript-eslint/ban-ts-comment': 'off',
|
||||
'@typescript-eslint/ban-types': 'off',
|
||||
'@typescript-eslint/no-non-null-assertion': 'off',
|
||||
'@typescript-eslint/explicit-module-boundary-types': 'off',
|
||||
'@typescript-eslint/no-unused-vars': [
|
||||
'error',
|
||||
{
|
||||
argsIgnorePattern: '^_',
|
||||
varsIgnorePattern: '^_'
|
||||
}
|
||||
],
|
||||
'no-unused-vars': [
|
||||
'error',
|
||||
{
|
||||
argsIgnorePattern: '^_',
|
||||
varsIgnorePattern: '^_'
|
||||
}
|
||||
],
|
||||
'space-before-function-paren': 'off',
|
||||
|
||||
'vue/attributes-order': 'off',
|
||||
'vue/one-component-per-file': 'off',
|
||||
'vue/html-closing-bracket-newline': 'off',
|
||||
'vue/max-attributes-per-line': 'off',
|
||||
'vue/multiline-html-element-content-newline': 'off',
|
||||
'vue/singleline-html-element-content-newline': 'off',
|
||||
'vue/attribute-hyphenation': 'off',
|
||||
'vue/require-default-prop': 'off',
|
||||
'vue/require-explicit-emits': 'off',
|
||||
'vue/html-self-closing': [
|
||||
'error',
|
||||
{
|
||||
html: {
|
||||
void: 'always',
|
||||
normal: 'never',
|
||||
component: 'always'
|
||||
},
|
||||
svg: 'always',
|
||||
math: 'always'
|
||||
}
|
||||
],
|
||||
'vue/multi-word-component-names': 'off'
|
||||
}
|
||||
}
|
||||
54
.gitee/ISSUE_TEMPLATE/bug.yml
Normal file
54
.gitee/ISSUE_TEMPLATE/bug.yml
Normal file
@@ -0,0 +1,54 @@
|
||||
name: Bug 反馈
|
||||
description: 当你在代码中发现了一个 Bug,导致应用崩溃或抛出异常,或者有一个组件存在问题,或者某些地方看起来不对劲。
|
||||
title: "[Bug]: "
|
||||
labels: ["bug"]
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
感谢对项目的支持与关注。在提出问题之前,请确保你已查看相关开发或使用文档:
|
||||
- http://vben-doc.x-surge.com/
|
||||
- type: checkboxes
|
||||
attributes:
|
||||
label: 这个问题是否已经存在?
|
||||
options:
|
||||
- label: 我已经搜索过现有的问题 (https://gitee.com/yudaocode/yudao-ui-admin-vben/issues)
|
||||
required: true
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: 如何复现
|
||||
description: 请详细告诉我们如何复现你遇到的问题,如涉及代码,可提供一个最小代码示例,并使用反引号```附上它
|
||||
placeholder: |
|
||||
1. ...
|
||||
2. ...
|
||||
3. ...
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: 预期结果
|
||||
description: 请告诉我们你预期会发生什么。
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: 实际结果
|
||||
description: 请告诉我们实际发生了什么。
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: 截图或视频
|
||||
description: 如果可以的话,上传任何关于 bug 的截图。
|
||||
value: |
|
||||
[在这里上传图片]
|
||||
- type: dropdown
|
||||
id: version
|
||||
attributes:
|
||||
label: 版本
|
||||
description: 你当前正在使用我们软件的哪个版本/分支?
|
||||
options:
|
||||
- master (默认)
|
||||
- dev (开发分支)
|
||||
validations:
|
||||
required: true
|
||||
5
.gitee/ISSUE_TEMPLATE/config.yml
Normal file
5
.gitee/ISSUE_TEMPLATE/config.yml
Normal file
@@ -0,0 +1,5 @@
|
||||
blank_issues_enabled: false
|
||||
contact_links:
|
||||
- name: 项目开发文档
|
||||
url: http://vben-doc.x-surge.com/
|
||||
about: 提供项目启动、开发的相关文档
|
||||
43
.gitee/ISSUE_TEMPLATE/feature.yml
Normal file
43
.gitee/ISSUE_TEMPLATE/feature.yml
Normal file
@@ -0,0 +1,43 @@
|
||||
name: 功能建议
|
||||
description: 对本项目提出一个功能建议
|
||||
title: "[功能建议]: "
|
||||
labels: ["enhancement"]
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
感谢提出功能建议,我们将仔细考虑!
|
||||
- type: textarea
|
||||
id: related-problem
|
||||
attributes:
|
||||
label: 你的功能建议是否和某个问题相关?
|
||||
description: 清晰并简洁地描述问题是什么,例如,当我...时,我总是感到困扰。
|
||||
validations:
|
||||
required: false
|
||||
- type: textarea
|
||||
id: desired-solution
|
||||
attributes:
|
||||
label: 你希望看到什么解决方案?
|
||||
description: 清晰并简洁地描述你希望发生的事情。
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: alternatives
|
||||
attributes:
|
||||
label: 你考虑过哪些替代方案?
|
||||
description: 清晰并简洁地描述你考虑过的任何替代解决方案或功能。
|
||||
validations:
|
||||
required: false
|
||||
- type: textarea
|
||||
id: additional-context
|
||||
attributes:
|
||||
label: 你有其他上下文或截图吗?
|
||||
description: 在此处添加有关功能请求的任何其他上下文或截图。
|
||||
validations:
|
||||
required: false
|
||||
- type: checkboxes
|
||||
attributes:
|
||||
label: 意向参与贡献
|
||||
options:
|
||||
- label: 我有意向参与具体功能的开发实现并将代码贡献回到上游社区
|
||||
required: false
|
||||
@@ -1,8 +0,0 @@
|
||||
// .lintstagedrc.js
|
||||
module.exports = {
|
||||
'*.js': ['prettier --config prettier.config.js --write', 'eslint --fix --ext .js'],
|
||||
'*.ts': ['prettier --config prettier.config.js --write', 'eslint --fix --ext .ts'],
|
||||
'*.vue': ['prettier --config prettier.config.js --write', 'eslint --fix --ext .vue'],
|
||||
'*.tsx': ['prettier --config prettier.config.js --write', 'eslint --fix --ext .tsx'],
|
||||
'*.json': 'prettier --config prettier.config.js --write'
|
||||
}
|
||||
4
.vscode/extensions.json
vendored
4
.vscode/extensions.json
vendored
@@ -1,19 +1,21 @@
|
||||
{
|
||||
"recommendations": [
|
||||
"christian-kohler.path-intellisense",
|
||||
"vue.vscode-typescript-vue-plugin",
|
||||
"vscode-icons-team.vscode-icons",
|
||||
"davidanson.vscode-markdownlint",
|
||||
"stylelint.vscode-stylelint",
|
||||
"dbaeumer.vscode-eslint",
|
||||
"esbenp.prettier-vscode",
|
||||
"usernamehw.errorlens",
|
||||
"mrmlnc.vscode-less",
|
||||
"lokalise.i18n-ally",
|
||||
"redhat.vscode-yaml",
|
||||
"heybourn.headwind",
|
||||
"csstools.postcss",
|
||||
"mikestead.dotenv",
|
||||
"eamodio.gitlens",
|
||||
"antfu.iconify",
|
||||
"antfu.unocss",
|
||||
"Vue.volar"
|
||||
]
|
||||
}
|
||||
|
||||
134
.vscode/settings.json
vendored
134
.vscode/settings.json
vendored
@@ -1,7 +1,5 @@
|
||||
{
|
||||
"typescript.tsdk": "./node_modules/typescript/lib",
|
||||
"volar.tsPlugin": true,
|
||||
"volar.tsPluginStatus": false,
|
||||
"npm.packageManager": "pnpm",
|
||||
"editor.tabSize": 2,
|
||||
"prettier.printWidth": 140, // 超过最大值换行
|
||||
@@ -21,9 +19,11 @@
|
||||
"**/.idea": true,
|
||||
"**/.vscode": false,
|
||||
"**/yarn.lock": true,
|
||||
"pnpm-lock.yaml": true,
|
||||
"**/tmp": true,
|
||||
"out": true,
|
||||
"dist": true,
|
||||
"public": true,
|
||||
"node_modules": true,
|
||||
"CHANGELOG.md": true,
|
||||
"examples": true,
|
||||
@@ -60,6 +60,36 @@
|
||||
"path-intellisense.mappings": {
|
||||
"@/": "${workspaceRoot}/src"
|
||||
},
|
||||
"eslint.experimental.useFlatConfig": true,
|
||||
"prettier.enable": false,
|
||||
"editor.formatOnSave": false,
|
||||
"editor.codeActionsOnSave": {
|
||||
"source.fixAll": "explicit",
|
||||
"source.organizeImports": "never"
|
||||
},
|
||||
"eslint.rules.customizations": [
|
||||
{ "rule": "style/*", "severity": "off" },
|
||||
{ "rule": "*-indent", "severity": "off" },
|
||||
{ "rule": "*-spacing", "severity": "off" },
|
||||
{ "rule": "*-spaces", "severity": "off" },
|
||||
{ "rule": "*-order", "severity": "off" },
|
||||
{ "rule": "*-dangle", "severity": "off" },
|
||||
{ "rule": "*-newline", "severity": "off" },
|
||||
{ "rule": "*quotes", "severity": "off" },
|
||||
{ "rule": "*semi", "severity": "off" }
|
||||
],
|
||||
"eslint.validate": [
|
||||
"javascript",
|
||||
"javascriptreact",
|
||||
"typescript",
|
||||
"typescriptreact",
|
||||
"vue",
|
||||
"html",
|
||||
"markdown",
|
||||
"json",
|
||||
"jsonc",
|
||||
"yaml"
|
||||
],
|
||||
"[javascriptreact]": {
|
||||
"editor.defaultFormatter": "esbenp.prettier-vscode"
|
||||
},
|
||||
@@ -67,13 +97,13 @@
|
||||
"editor.defaultFormatter": "rvest.vs-code-prettier-eslint"
|
||||
},
|
||||
"[typescriptreact]": {
|
||||
"editor.defaultFormatter": "rvest.vs-code-prettier-eslint"
|
||||
"editor.defaultFormatter": "esbenp.prettier-vscode"
|
||||
},
|
||||
"[html]": {
|
||||
"editor.defaultFormatter": "esbenp.prettier-vscode"
|
||||
},
|
||||
"[css]": {
|
||||
"editor.defaultFormatter": "rvest.vs-code-prettier-eslint"
|
||||
"editor.defaultFormatter": "esbenp.prettier-vscode"
|
||||
},
|
||||
"[less]": {
|
||||
"editor.defaultFormatter": "esbenp.prettier-vscode"
|
||||
@@ -84,12 +114,10 @@
|
||||
"[markdown]": {
|
||||
"editor.defaultFormatter": "esbenp.prettier-vscode"
|
||||
},
|
||||
"editor.codeActionsOnSave": {
|
||||
"source.fixAll.eslint": true
|
||||
},
|
||||
"[vue]": {
|
||||
"editor.codeActionsOnSave": {
|
||||
"source.fixAll.eslint": true,
|
||||
"source.organizeImports": false,
|
||||
"source.fixAll.stylelint": true
|
||||
}
|
||||
},
|
||||
@@ -98,64 +126,52 @@
|
||||
"i18n-ally.sortKeys": true,
|
||||
"i18n-ally.namespace": true,
|
||||
"i18n-ally.pathMatcher": "{locale}/{namespaces}.{ext}",
|
||||
"i18n-ally.enabledParsers": ["ts"],
|
||||
"i18n-ally.enabledParsers": ["json"],
|
||||
"i18n-ally.sourceLanguage": "en",
|
||||
"i18n-ally.displayLanguage": "zh-CN",
|
||||
"i18n-ally.enabledFrameworks": ["vue", "react"],
|
||||
"cSpell.words": [
|
||||
"vben",
|
||||
"windicss",
|
||||
"tailwind",
|
||||
"browserslist",
|
||||
"tailwindcss",
|
||||
"esnext",
|
||||
"antd",
|
||||
"antdv",
|
||||
"antfu",
|
||||
"antv",
|
||||
"tinymce",
|
||||
"brotli",
|
||||
"browserslist",
|
||||
"Cascader",
|
||||
"codemirror",
|
||||
"commitlint",
|
||||
"cropperjs",
|
||||
"echarts",
|
||||
"esnext",
|
||||
"esno",
|
||||
"iconify",
|
||||
"Inited",
|
||||
"INTLIFY",
|
||||
"lintstagedrc",
|
||||
"logicflow",
|
||||
"nprogress",
|
||||
"picocolors",
|
||||
"pinia",
|
||||
"pnpm",
|
||||
"qrcode",
|
||||
"sider",
|
||||
"pinia",
|
||||
"sider",
|
||||
"nprogress",
|
||||
"INTLIFY",
|
||||
"stylelint",
|
||||
"esno",
|
||||
"vitejs",
|
||||
"sortablejs",
|
||||
"codemirror",
|
||||
"iconify",
|
||||
"commitlint",
|
||||
"stylelint",
|
||||
"svgs",
|
||||
"tailwind",
|
||||
"tailwindcss",
|
||||
"tinymce",
|
||||
"unocss",
|
||||
"unref",
|
||||
"vben",
|
||||
"vditor",
|
||||
"echarts",
|
||||
"cropperjs",
|
||||
"logicflow",
|
||||
"videojs",
|
||||
"vitejs",
|
||||
"vuedraggable",
|
||||
"vueuse",
|
||||
"zxcvbn",
|
||||
"lintstagedrc",
|
||||
"brotli",
|
||||
"sider",
|
||||
"pnpm",
|
||||
"antd"
|
||||
],
|
||||
"vetur.format.scriptInitialIndent": true,
|
||||
"vetur.format.styleInitialIndent": true,
|
||||
"vetur.validation.script": false,
|
||||
"MicroPython.executeButton": [
|
||||
{
|
||||
"text": "▶",
|
||||
"tooltip": "运行",
|
||||
"alignment": "left",
|
||||
"command": "extension.executeFile",
|
||||
"priority": 3.5
|
||||
}
|
||||
],
|
||||
"MicroPython.syncButton": [
|
||||
{
|
||||
"text": "$(sync)",
|
||||
"tooltip": "同步",
|
||||
"alignment": "left",
|
||||
"command": "extension.execute",
|
||||
"priority": 4
|
||||
}
|
||||
"xingyuv",
|
||||
"yudao",
|
||||
"zxcvbn"
|
||||
],
|
||||
// 控制相关文件嵌套展示
|
||||
"explorer.fileNesting.enabled": true,
|
||||
@@ -164,7 +180,11 @@
|
||||
"*.ts": "$(capture).test.ts, $(capture).test.tsx",
|
||||
"*.tsx": "$(capture).test.ts, $(capture).test.tsx",
|
||||
"*.env": "$(capture).env.*",
|
||||
"package.json": "pnpm-lock.yaml,yarn.lock,LICENSE,README*,CHANGELOG*,CNAME,.gitattributes,.gitignore,prettier.config.js,stylelint.config.js,commitlint.config.js,.stylelintignore,.prettierignore,.gitpod.yml,.eslintrc.js,.eslintignore"
|
||||
"package.json": ".hintrc,pnpm-lock.yaml,yarn.lock,LICENSE,README*,CHANGELOG*,CNAME,.gitattributes,.gitignore,stylelint.config.js,eslint.config.js,commitlint.config.js,.stylelintignore,.prettierignore,.gitpod.yml,.eslintrc.js,.eslintignore"
|
||||
},
|
||||
"terminal.integrated.scrollback": 10000
|
||||
"eslint.codeAction.showDocumentation": {
|
||||
"enable": true
|
||||
},
|
||||
"terminal.integrated.scrollback": 10000,
|
||||
"nuxt.isNuxtApp": false
|
||||
}
|
||||
|
||||
354
CHANGELOG.md
354
CHANGELOG.md
@@ -1,354 +0,0 @@
|
||||
## [1.7.3](https://gitee.com/xingyuv/vue-vben-admin/compare/v1.0.0-bate...v1.7.3) (2023-06-08)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 打包循环依赖警告 ([6f3f3fd](https://gitee.com/xingyuv/vue-vben-admin/commits/6f3f3fd35c2feb4420c39710a3e2a55eeae521dc))
|
||||
* 定时器,时间格式化 ([2fa63d8](https://gitee.com/xingyuv/vue-vben-admin/commits/2fa63d8f2c2a534aac30a12f624e2fe0afb1eb16))
|
||||
* 解决项目配置/界面功能/自动锁屏&菜单展开宽度样式变形问题 ([8027dc3](https://gitee.com/xingyuv/vue-vben-admin/commits/8027dc38e464a268974af8ba4df82446be14f9c5))
|
||||
* 解决重定向路径 params 参数丢失问题 ([7311bdb](https://gitee.com/xingyuv/vue-vben-admin/commits/7311bdb576ff49b52fcb0381eb700144f2ad5af7))
|
||||
* 渠道编码直接卡死,界面奔溃 ([113520a](https://gitee.com/xingyuv/vue-vben-admin/commits/113520a3bd82396307b9e9572312c825ff316446))
|
||||
* 授权类型bugs ([f00fec9](https://gitee.com/xingyuv/vue-vben-admin/commits/f00fec92878406c0929eacd1df2dd49b92974696))
|
||||
* 修复操作页签后 打开页面需要使用fullPath,否则可能会导致参数丢失引起数据加载异常 ([764b0f0](https://gitee.com/xingyuv/vue-vben-admin/commits/764b0f0f6c990e6f51f657775d1db3965842d14c))
|
||||
* 修复未传参(params)的时,redo失效的问题 ([da11f52](https://gitee.com/xingyuv/vue-vben-admin/commits/da11f52e4d90be07e1e4ffc6e5b19e6cbe45fe01))
|
||||
* 由于 多路径字段获取值处理 造成的 set value值为0||''时不成功的情况 ([ce1236d](https://gitee.com/xingyuv/vue-vben-admin/commits/ce1236d141efcb0086c793850592b0c679a184ae))
|
||||
* 邮件模板-测试 模板内容 readonly ([322d5ad](https://gitee.com/xingyuv/vue-vben-admin/commits/322d5ad8f9df6969c46895864ce70da5cf85e94a))
|
||||
* 邮件模版校验 ([76e3105](https://gitee.com/xingyuv/vue-vben-admin/commits/76e3105184bd5df623ba1e9a4d5dc51a50278032))
|
||||
* axios responseInterceptorsCatch ([34106d1](https://gitee.com/xingyuv/vue-vben-admin/commits/34106d1cfe677e38c66ed76df2b0c677fc932ff1))
|
||||
* Cannot access 'pagewrapper' before init ([7464ac0](https://gitee.com/xingyuv/vue-vben-admin/commits/7464ac03d73abecc3a31d7777e8be8332a16c781))
|
||||
* config ([f1cdf27](https://gitee.com/xingyuv/vue-vben-admin/commits/f1cdf27fe88e29e9da27b57af09c71646addd069))
|
||||
* crontab number input ([5733a2f](https://gitee.com/xingyuv/vue-vben-admin/commits/5733a2f2c9045e74151ee0b886523c101f97cf0c))
|
||||
* **deepMerge:** fix deepMerge ([23cf34f](https://gitee.com/xingyuv/vue-vben-admin/commits/23cf34f78ecc14a05e0b46548c03d1bb4b9c9a91))
|
||||
* dict ([855c705](https://gitee.com/xingyuv/vue-vben-admin/commits/855c705f32f00232c0e5e7d6b6de8d7642474e0e))
|
||||
* dict ([da0eb81](https://gitee.com/xingyuv/vue-vben-admin/commits/da0eb81d3f1e57d30975364ed04c18f9e4a1a3ed))
|
||||
* dict ([7c8aeb8](https://gitee.com/xingyuv/vue-vben-admin/commits/7c8aeb8998b21650dcc7e2c5af65e2bcc796b3ac))
|
||||
* dict ([1bccba8](https://gitee.com/xingyuv/vue-vben-admin/commits/1bccba8d54ea665eef5e9449ff3ea85ba850d9b5))
|
||||
* dict tag ([c4d3b3e](https://gitee.com/xingyuv/vue-vben-admin/commits/c4d3b3efff848abd8ef0c4f33d7a627d15f704f9))
|
||||
* eslint ([2fe7395](https://gitee.com/xingyuv/vue-vben-admin/commits/2fe7395adfca2d185a45d64b41961a32f6065070))
|
||||
* file config action show ([36a14be](https://gitee.com/xingyuv/vue-vben-admin/commits/36a14be42b0663818b0b8b2cf5b0ffc90cf95500))
|
||||
* form setting redoHeight ([bbce129](https://gitee.com/xingyuv/vue-vben-admin/commits/bbce129833b2164cfbceb1284f23c32710bda5ae))
|
||||
* memberUserIds render ([664e25c](https://gitee.com/xingyuv/vue-vben-admin/commits/664e25ce66f344ca92bc95e49d1c01204c7d966e))
|
||||
* mitt ([ac4180d](https://gitee.com/xingyuv/vue-vben-admin/commits/ac4180d2ce9083acf95c726e1b7ce16e82101e59))
|
||||
* pay action ([932bae5](https://gitee.com/xingyuv/vue-vben-admin/commits/932bae5231e317a04a465f4a0e514fa03475f4c0))
|
||||
* renderImg ([0413be5](https://gitee.com/xingyuv/vue-vben-admin/commits/0413be595dbc3e94f6228a38092e2a15f4a7fd08))
|
||||
* renderImg ([e8f1528](https://gitee.com/xingyuv/vue-vben-admin/commits/e8f1528a808f7937fe5128aed1e5deb21eac165b))
|
||||
* SSL required ([4c59df6](https://gitee.com/xingyuv/vue-vben-admin/commits/4c59df63a61e387132bfcc528a2fae62667f80e3))
|
||||
* sys area tree ([7d523a0](https://gitee.com/xingyuv/vue-vben-admin/commits/7d523a02fd9aebbd2572c9c851e0a402e1cdb1df))
|
||||
* user group ([4754495](https://gitee.com/xingyuv/vue-vben-admin/commits/4754495f6addf28c1a215b2e0c9e055c6fb8f168))
|
||||
* useTable ([f780285](https://gitee.com/xingyuv/vue-vben-admin/commits/f7802853646ba714e4d92d0de8edfb38f4149352))
|
||||
* **view:** 修复登入页面点击其他登入方式后返回时视图异常的bug ([0657ea5](https://gitee.com/xingyuv/vue-vben-admin/commits/0657ea5f839977a55d824333bef98fdbca2dd107))
|
||||
* warn ([75cd1a3](https://gitee.com/xingyuv/vue-vben-admin/commits/75cd1a3ec51c2393c958dfd7230a626010518034))
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* 适配 vue 3.3 defineOptions ([73ad948](https://gitee.com/xingyuv/vue-vben-admin/commits/73ad9488700ee8741744dce3b0e9fc802e921e94))
|
||||
* 收银台 ([7219895](https://gitee.com/xingyuv/vue-vben-admin/commits/7219895d9f3d705de64e8eb0d161a175bc71d831))
|
||||
* 收银台 ([5ecc189](https://gitee.com/xingyuv/vue-vben-admin/commits/5ecc18901a8c4b92d02c3eee70c291098eefcd40))
|
||||
* 收银台 ([aede08c](https://gitee.com/xingyuv/vue-vben-admin/commits/aede08cbbabd18ba0244f48ca6445f6221296065))
|
||||
* 添加表格查询隐藏按钮 ([8f0c2fa](https://gitee.com/xingyuv/vue-vben-admin/commits/8f0c2fa811c01e88a154771212a7d89ac2c3ba8c))
|
||||
* 完成邮件相关功能 ([3f1a3a0](https://gitee.com/xingyuv/vue-vben-admin/commits/3f1a3a0d5cdf00436fe7ded361ec54138dba9def))
|
||||
* 站内信发送功能 ([5b7530e](https://gitee.com/xingyuv/vue-vben-admin/commits/5b7530ef74e75333aa9181e41c4ada6debba768f))
|
||||
* 站内信详情查看 ([8b3b842](https://gitee.com/xingyuv/vue-vben-admin/commits/8b3b84265516862d1b672d96020fc82057c1f84c))
|
||||
* add defaultValue ([c233dbc](https://gitee.com/xingyuv/vue-vben-admin/commits/c233dbcab3fe267ecb1da2454016aa16cc1c099e))
|
||||
* add detail ([3e04dde](https://gitee.com/xingyuv/vue-vben-admin/commits/3e04dde0e2478c10ff698bc3c2e5206c27b04a74))
|
||||
* add job detail ([0245ecd](https://gitee.com/xingyuv/vue-vben-admin/commits/0245ecdec92a5322c0b6ab2dae08a2ee949eed57))
|
||||
* add parentFiled ([20dca10](https://gitee.com/xingyuv/vue-vben-admin/commits/20dca104bb0e02ae10bf06a1e6a3c309b8705a64))
|
||||
* app channel config ([0851598](https://gitee.com/xingyuv/vue-vben-admin/commits/0851598643e90c7329b0884535936800b8d2074e))
|
||||
* area style ([85ba687](https://gitee.com/xingyuv/vue-vben-admin/commits/85ba6875bb14650170ceac7f199251f84dd6c68a))
|
||||
* bpm form init ([61ff811](https://gitee.com/xingyuv/vue-vben-admin/commits/61ff8119a6afba03c01d1e83bb23de904c2c5c5b))
|
||||
* bpm my ([3f5d1ed](https://gitee.com/xingyuv/vue-vben-admin/commits/3f5d1ed1921a611d537cc53555e4fcc58b156be2))
|
||||
* bpm task ([6e51ca7](https://gitee.com/xingyuv/vue-vben-admin/commits/6e51ca74b94b2f13cc12518c55c356f41ea8d215))
|
||||
* bug fix ([44c9085](https://gitee.com/xingyuv/vue-vben-admin/commits/44c9085d2ea2beb7c47f56d64b3a2f657d92eedc))
|
||||
* Channel ([08e041b](https://gitee.com/xingyuv/vue-vben-admin/commits/08e041b6ec37f75872b1b6e2d09f0da5d0be5cc8))
|
||||
* codegen use code editor pre ([b6b9c8f](https://gitee.com/xingyuv/vue-vben-admin/commits/b6b9c8f56a271a4295a646eb778a568c3adcbf1c))
|
||||
* cron ([81d2426](https://gitee.com/xingyuv/vue-vben-admin/commits/81d24264d5af9c6f0b00e82191e712c8877492ff))
|
||||
* dashboard icon ([44deb06](https://gitee.com/xingyuv/vue-vben-admin/commits/44deb06aaa035c20e01bff9d996a29e672beda16))
|
||||
* dataSourceConfigId ([f4e9d2f](https://gitee.com/xingyuv/vue-vben-admin/commits/f4e9d2f5e20e2d414e8a724e3b4c7862900caea5))
|
||||
* file upload ([611da35](https://gitee.com/xingyuv/vue-vben-admin/commits/611da354a1ab071f636f992a4bdcae930e356f9b))
|
||||
* header上的通知及个人站内信功能 ([0e44af8](https://gitee.com/xingyuv/vue-vben-admin/commits/0e44af89b9b47c5e3f955b9208ff2c2f1f0d24af))
|
||||
* icon ([0401602](https://gitee.com/xingyuv/vue-vben-admin/commits/04016026614da8b7ae6f0c6afc1dbaca03c01b8f))
|
||||
* job log ([5424d0b](https://gitee.com/xingyuv/vue-vben-admin/commits/5424d0b4430c89eeeb93ab83ff15f78ce0871f2d))
|
||||
* model style ([479cbdd](https://gitee.com/xingyuv/vue-vben-admin/commits/479cbdd5d3d6acfbf00ad3051e248b54fd098e10))
|
||||
* model table ([9638599](https://gitee.com/xingyuv/vue-vben-admin/commits/9638599a1ec2062cf5cb18a7c880e9d22c61ddb0))
|
||||
* model table ([833443b](https://gitee.com/xingyuv/vue-vben-admin/commits/833443b813de22d2f488804d152513bad4996b9b))
|
||||
* model upload ([44eb9a8](https://gitee.com/xingyuv/vue-vben-admin/commits/44eb9a84860bb2f841df7124429e80db9daf4c39))
|
||||
* mp ([2d09a78](https://gitee.com/xingyuv/vue-vben-admin/commits/2d09a7850dbdce66a05eb54cfd5334602a02f0ed))
|
||||
* parent to parentLabel ([cfd4ac8](https://gitee.com/xingyuv/vue-vben-admin/commits/cfd4ac840ec68180bbab17692f5b0a10643e7800))
|
||||
* preview style ([99ac17a](https://gitee.com/xingyuv/vue-vben-admin/commits/99ac17a5065ec992b161a15eea6f5094bdaff1a5))
|
||||
* remove console ([3548ba0](https://gitee.com/xingyuv/vue-vben-admin/commits/3548ba004c67af09ffc7197f79822e81bafcb952))
|
||||
* Select defaultValue ([d8312d5](https://gitee.com/xingyuv/vue-vben-admin/commits/d8312d57c558770d2172a03489f354bfae1e46ac))
|
||||
* send sms ([2b8e4c6](https://gitee.com/xingyuv/vue-vben-admin/commits/2b8e4c6de5dfbe6a8f82a81d9c1744e183ea19cb))
|
||||
* show select all ([e405733](https://gitee.com/xingyuv/vue-vben-admin/commits/e405733429b9a5b5fac388cf8f707f056b5bdb64))
|
||||
* sms login ([2d2db04](https://gitee.com/xingyuv/vue-vben-admin/commits/2d2db0418bdacc82bc01a832c61e43518b4668e9))
|
||||
* sso init ([39732ad](https://gitee.com/xingyuv/vue-vben-admin/commits/39732ad3b20f3088491888d621c23b587a2c8afb))
|
||||
* style ([08666c8](https://gitee.com/xingyuv/vue-vben-admin/commits/08666c841fa3b352661a29630b52bba65c383950))
|
||||
* sync mitt ([69547bc](https://gitee.com/xingyuv/vue-vben-admin/commits/69547bcd6b421851c3746a5230d3da097a71d50f))
|
||||
* tabs ([d1eb0db](https://gitee.com/xingyuv/vue-vben-admin/commits/d1eb0dbd13f5f2969fdf0cf31d4239e9898dda73))
|
||||
* use ant design icon ([875bdf4](https://gitee.com/xingyuv/vue-vben-admin/commits/875bdf4c67a012d5ded45634ba8fb260069d8d98))
|
||||
* user apitransfer ([a261242](https://gitee.com/xingyuv/vue-vben-admin/commits/a261242279194f8234c9d7e6d4011051f1358110))
|
||||
* wx news init ([e9a7b47](https://gitee.com/xingyuv/vue-vben-admin/commits/e9a7b476aae1266875f70f3507b23b8fa126b993))
|
||||
|
||||
|
||||
### Performance Improvements
|
||||
|
||||
* 优化modal弹窗样式 ([0b7ed77](https://gitee.com/xingyuv/vue-vben-admin/commits/0b7ed771aaddc7d5513f9724a89bfa0155f8c4fb))
|
||||
* 优化tree getIcon方法类型定义 ([a8a973b](https://gitee.com/xingyuv/vue-vben-admin/commits/a8a973b12ca88f918dd26e790f71c443ee155c01))
|
||||
* remove console ([35c8e13](https://gitee.com/xingyuv/vue-vben-admin/commits/35c8e137e0703de953b3a410bc7e93e750668966))
|
||||
* remove console ([af28b6b](https://gitee.com/xingyuv/vue-vben-admin/commits/af28b6b4d8572e29ce10395ff50bcca934e9c913))
|
||||
|
||||
|
||||
### Reverts
|
||||
|
||||
* modal ([0262eb7](https://gitee.com/xingyuv/vue-vben-admin/commits/0262eb7d1a4325b8044ffe1ceed30cbc04fd5978))
|
||||
|
||||
|
||||
|
||||
# [1.0.0-bate](https://gitee.com/xingyuv/vue-vben-admin/compare/58db52cea8dc3c5cb547f3234b8b9e05a175969e...v1.0.0-bate) (2023-05-08)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* #I6R5EL ([4dc2492](https://gitee.com/xingyuv/vue-vben-admin/commits/4dc24923b330d1839da43db310d09844cd3c9a61)), closes [#I6R5](https://gitee.com/xingyuv/vue-vben-admin/issues/I6R5)
|
||||
* 编辑和删除无法获取菜单id ([9a144c3](https://gitee.com/xingyuv/vue-vben-admin/commits/9a144c3e32593da1e8d6c2a1840cec2c4cdf9ca3))
|
||||
* 登录成功再进行退出,提示GET 不支持 #I6R4NQ ([4a73392](https://gitee.com/xingyuv/vue-vben-admin/commits/4a7339236b055a7f662b12a15e5ba8b9f1b19171)), closes [#I6R4](https://gitee.com/xingyuv/vue-vben-admin/issues/I6R4)
|
||||
* 解决打包报内存溢出问题 ([3669f90](https://gitee.com/xingyuv/vue-vben-admin/commits/3669f906292b8ac8680e1b8a1e6f864faf9138a7))
|
||||
* 临时解决系统菜单路由问题 ([7eaa5b8](https://gitee.com/xingyuv/vue-vben-admin/commits/7eaa5b8393afbe2a75a4d0a2431a3d1f16c55828))
|
||||
* 路径错误 ([286cd99](https://gitee.com/xingyuv/vue-vben-admin/commits/286cd991d33b258180362faf000ccffe7d537343))
|
||||
* 图标错位 ([58a7d60](https://gitee.com/xingyuv/vue-vben-admin/commits/58a7d60843cd66a3d131fe72f8b7c9173741f9cb))
|
||||
* 外链 ([4807fa6](https://gitee.com/xingyuv/vue-vben-admin/commits/4807fa65efb1ced4de38238d59873f8ffa4ffc99))
|
||||
* 新增部门没有主目录 #I6Y26M ([1022f9b](https://gitee.com/xingyuv/vue-vben-admin/commits/1022f9bc8660f27e40118cdafbfe76c5948d477d)), closes [#I6Y26](https://gitee.com/xingyuv/vue-vben-admin/issues/I6Y26)
|
||||
* 新增菜单没有主目录 #I6Y1X2 ([4ff33d8](https://gitee.com/xingyuv/vue-vben-admin/commits/4ff33d87f50651e1701df6866b911618fc408347)), closes [#I6Y1X2](https://gitee.com/xingyuv/vue-vben-admin/issues/I6Y1X2)
|
||||
* 修复水印重复叠加问题 ([733611e](https://gitee.com/xingyuv/vue-vben-admin/commits/733611e00b06c1b1a6b46d559f94d25b385b03df))
|
||||
* 修复下拉字典每次点击触发一次 ([f3c8969](https://gitee.com/xingyuv/vue-vben-admin/commits/f3c89697193d7ff9e8767af3f455ff3f901ccc26))
|
||||
* 修改数据权限或者菜单权限失败 #I6Y6L4 ([6f6f0ce](https://gitee.com/xingyuv/vue-vben-admin/commits/6f6f0cea1c7271250aa62da0a81ce71a02a1d4ef)), closes [#I6Y6L4](https://gitee.com/xingyuv/vue-vben-admin/issues/I6Y6L4)
|
||||
* 修改用户显示判断 ([50f5fa1](https://gitee.com/xingyuv/vue-vben-admin/commits/50f5fa1612320580ab16ec952f215ae7256ca365))
|
||||
* 重置项目配置,导致左侧菜单栏整体变成白色 ([89941c4](https://gitee.com/xingyuv/vue-vben-admin/commits/89941c44fbd420014e239be9e3b17c7e15610295))
|
||||
* 字典标签样式颜色不显示 #I6Y5E6 ([fe8e0a2](https://gitee.com/xingyuv/vue-vben-admin/commits/fe8e0a25aedc0f7ff471c5ec11c19a8ef4507ba8)), closes [#I6Y5E6](https://gitee.com/xingyuv/vue-vben-admin/issues/I6Y5E6)
|
||||
* account #I6R59O ([f919305](https://gitee.com/xingyuv/vue-vben-admin/commits/f919305e36f22b8d804c8b4abaaa0e05a74265e0)), closes [#I6R59](https://gitee.com/xingyuv/vue-vben-admin/issues/I6R59)
|
||||
* api error ([1b1424b](https://gitee.com/xingyuv/vue-vben-admin/commits/1b1424b79a7c587d50d8cec6b78b05c246f36d16))
|
||||
* **api:** 时间区间查询参数错误 ([cd2c8ca](https://gitee.com/xingyuv/vue-vben-admin/commits/cd2c8ca05492b193e2740c35581c335ee5609f0b)), closes [#I6](https://gitee.com/xingyuv/vue-vben-admin/issues/I6)
|
||||
* **ApiSelect:** 支持x.x.x格式 ([fa1af5e](https://gitee.com/xingyuv/vue-vben-admin/commits/fa1af5e7c625d5d584f45b200f86484697294064))
|
||||
* area error ([c83dc40](https://gitee.com/xingyuv/vue-vben-admin/commits/c83dc40ad3937d4cc31921c60c57e7c7583f614e))
|
||||
* axios array error ([d323c81](https://gitee.com/xingyuv/vue-vben-admin/commits/d323c810ba2a42b67ac8c210e5760d6de87cc3b1))
|
||||
* btn style ([dba710e](https://gitee.com/xingyuv/vue-vben-admin/commits/dba710e8c0dda77ff5d22fdcead4750caf2fdbc8))
|
||||
* bugs ([8b10a6f](https://gitee.com/xingyuv/vue-vben-admin/commits/8b10a6f003d7e473a8c09963359434504cbedb46))
|
||||
* build error ([0d6925f](https://gitee.com/xingyuv/vue-vben-admin/commits/0d6925fe66150cdcba6687d57cc26970415d2356))
|
||||
* build error ([a69aefc](https://gitee.com/xingyuv/vue-vben-admin/commits/a69aefc5661d0f879b365e081f5776759fef514c))
|
||||
* build style error ([1b571bd](https://gitee.com/xingyuv/vue-vben-admin/commits/1b571bd403d3bf247d9fdf5bc987f599b22e6daa))
|
||||
* **build:** vite-html ([2f46691](https://gitee.com/xingyuv/vue-vben-admin/commits/2f466919bd5c01984c4570a4f8f7b1a35c39ead1))
|
||||
* clientId ([0ed8e09](https://gitee.com/xingyuv/vue-vben-admin/commits/0ed8e09f2b203e718b1db0acc0a826eda49e4ba9))
|
||||
* codegen #I6R4OB ([8ccc8bb](https://gitee.com/xingyuv/vue-vben-admin/commits/8ccc8bb22a3a3a993d4ea2d63ed31f8b7791c7bf)), closes [#I6R4](https://gitee.com/xingyuv/vue-vben-admin/issues/I6R4)
|
||||
* codegen pre #I6R4O4 ([0c5e6e9](https://gitee.com/xingyuv/vue-vben-admin/commits/0c5e6e9e2ce36754ca964e77a36c3133e55b5183)), closes [#I6R4O4](https://gitee.com/xingyuv/vue-vben-admin/issues/I6R4O4)
|
||||
* **component:** npm run build报错 ([36a757c](https://gitee.com/xingyuv/vue-vben-admin/commits/36a757c7208e9d6458962876127e5afc0b6a1157)), closes [#I6](https://gitee.com/xingyuv/vue-vben-admin/issues/I6)
|
||||
* dark ([b6fcbc6](https://gitee.com/xingyuv/vue-vben-admin/commits/b6fcbc6e735cbfc12d8af7ed8533fc99c9b32829))
|
||||
* debug ([c3510dc](https://gitee.com/xingyuv/vue-vben-admin/commits/c3510dcf9fc4a30f66b7991d992d8294a4c795bf))
|
||||
* **deepMerge:** 修复递归合并操作, 合并数组未去重的bug ([a8a52e5](https://gitee.com/xingyuv/vue-vben-admin/commits/a8a52e5c07ac766b1f76a5929a6ff5f0318339df))
|
||||
* dept ([6aaae1b](https://gitee.com/xingyuv/vue-vben-admin/commits/6aaae1b3cc80a7e19a2f9cce27561f2bdd17182a))
|
||||
* dept leaderUserId #I6R4NH ([182c447](https://gitee.com/xingyuv/vue-vben-admin/commits/182c447ef83adf6ec182e2d8af221f3f536dd361)), closes [#I6R4](https://gitee.com/xingyuv/vue-vben-admin/issues/I6R4)
|
||||
* **design:** dark ([86bee10](https://gitee.com/xingyuv/vue-vben-admin/commits/86bee106d924613fb4f7f28f44ef5e776721cebe)), closes [#I6](https://gitee.com/xingyuv/vue-vben-admin/issues/I6)
|
||||
* dict ([f33e878](https://gitee.com/xingyuv/vue-vben-admin/commits/f33e8788f88b26f59a8486ce1b485a14a03c5d2e))
|
||||
* dict ([f4bff0c](https://gitee.com/xingyuv/vue-vben-admin/commits/f4bff0c836f0a19d9ef7508fb411665a313ee3ed))
|
||||
* dict bugs ([bbb3e7c](https://gitee.com/xingyuv/vue-vben-admin/commits/bbb3e7c3c5c89153aac5581d56f0eef007345e66))
|
||||
* DictTag text为null时 无法进行toString() 导致系统崩溃 ([687547e](https://gitee.com/xingyuv/vue-vben-admin/commits/687547ef9adbc6a3dccf5aba4e3fba270fa6df9e))
|
||||
* error ([bd26cf8](https://gitee.com/xingyuv/vue-vben-admin/commits/bd26cf87d0621638a8b6694f5139ab3562f7139c))
|
||||
* file config ([57a1be1](https://gitee.com/xingyuv/vue-vben-admin/commits/57a1be1c1513229233fb7190f0beb761ca5b3061))
|
||||
* gen table error ([4c9b046](https://gitee.com/xingyuv/vue-vben-admin/commits/4c9b0465b2ebfea1836bc5688290389ce1d24c40))
|
||||
* **hooks:** 修改useEcharts getInstance无法获取 ([4c2b3ab](https://gitee.com/xingyuv/vue-vben-admin/commits/4c2b3abbacec8303d0f0e2ce3f35d8f5b2ee4038))
|
||||
* InputNumber add defaultValue ([791976b](https://gitee.com/xingyuv/vue-vben-admin/commits/791976b88460504c0989990d8264ba605e398fb8))
|
||||
* **layout:** bugs ([211cfe1](https://gitee.com/xingyuv/vue-vben-admin/commits/211cfe17986a78b64c8f94bfeb9603928b398919))
|
||||
* login style ([693042d](https://gitee.com/xingyuv/vue-vben-admin/commits/693042d2b3fe0522bde7774c50132c1f33246878))
|
||||
* menu tree ([07e7587](https://gitee.com/xingyuv/vue-vben-admin/commits/07e7587bf12248225375769ad33ea0abfbbc9219))
|
||||
* menu tree check ([9b2fe7f](https://gitee.com/xingyuv/vue-vben-admin/commits/9b2fe7f3ac4072efb0f251769ba2efa08895b7c9))
|
||||
* menuTree check ([7e9b6f9](https://gitee.com/xingyuv/vue-vben-admin/commits/7e9b6f933ebda029e9ed164ded5b602a2bcc061d))
|
||||
* model name ([9116375](https://gitee.com/xingyuv/vue-vben-admin/commits/91163752f35d504ccc486ccb961ddc122037e245))
|
||||
* render dict ([30065de](https://gitee.com/xingyuv/vue-vben-admin/commits/30065de5332db3f53839a68e1f9f8f5ece546c31))
|
||||
* renderLink ([a76e515](https://gitee.com/xingyuv/vue-vben-admin/commits/a76e5158764fbcc8cdc53553bbfd747de1e10680))
|
||||
* route ([8664269](https://gitee.com/xingyuv/vue-vben-admin/commits/86642691a3d3edf18617e0c540dd74f2519793b0))
|
||||
* route ([c8ab143](https://gitee.com/xingyuv/vue-vben-admin/commits/c8ab143640abedff60c80e9d38deccfda88cba6c))
|
||||
* route ([df32ffd](https://gitee.com/xingyuv/vue-vben-admin/commits/df32ffda541b2b01514ad1fdbf1998f40d366a16))
|
||||
* router ([a05f79f](https://gitee.com/xingyuv/vue-vben-admin/commits/a05f79ff06bded791cf60146ff3e5d4b5ea63814))
|
||||
* sms log ([9fbd372](https://gitee.com/xingyuv/vue-vben-admin/commits/9fbd37241a07a594f70e3790530ec64d813a6c1f))
|
||||
* sms template ([85fb61a](https://gitee.com/xingyuv/vue-vben-admin/commits/85fb61a4fe6cfda32629eed7f82852b37194b483))
|
||||
* substr deprecated ([a7f7a9e](https://gitee.com/xingyuv/vue-vben-admin/commits/a7f7a9e0b8cf0c4068802522d08913b2855a9c3f))
|
||||
* sucess message ([611825b](https://gitee.com/xingyuv/vue-vben-admin/commits/611825b0f7341f4d08b945a9f8bba98ebf2d0b1a))
|
||||
* TableAction width ([5adf84e](https://gitee.com/xingyuv/vue-vben-admin/commits/5adf84e2fa27ab7bd7656dea6599893c27122250))
|
||||
* tenant #I6R4NN ([9d72985](https://gitee.com/xingyuv/vue-vben-admin/commits/9d7298598a9808794bea87efbd1ce4c89da54a9f)), closes [#I6R4](https://gitee.com/xingyuv/vue-vben-admin/issues/I6R4)
|
||||
* tenant expireTime ([119c708](https://gitee.com/xingyuv/vue-vben-admin/commits/119c70835b253114e05b4026c99518de5be0e8c3))
|
||||
* tenant expireTime ([e350159](https://gitee.com/xingyuv/vue-vben-admin/commits/e35015928d7982b1e8863317c89a8d4b9c1c6c4a))
|
||||
* tenant package menu ([1d07574](https://gitee.com/xingyuv/vue-vben-admin/commits/1d07574df87214b8dc2d8565ed42d58fb159918b))
|
||||
* tree select ([1dec183](https://gitee.com/xingyuv/vue-vben-admin/commits/1dec183d77d77e35f66981733082d16744126d75))
|
||||
* tree select ([7c965a2](https://gitee.com/xingyuv/vue-vben-admin/commits/7c965a29533cc8bae7e6343093b16fa3a0f27f46))
|
||||
* use form ([f97f541](https://gitee.com/xingyuv/vue-vben-admin/commits/f97f541f308ee9fbd54e92d0b5d86f9897d121d7))
|
||||
* **useFormItem:** 修复ApiSelect的onChange事件获取不到第二个参数 ([b2e9da1](https://gitee.com/xingyuv/vue-vben-admin/commits/b2e9da144c9f02bac741be983b7b4465831e0f59))
|
||||
* user view ([300477e](https://gitee.com/xingyuv/vue-vben-admin/commits/300477e647096a9d93159f1e5b0680025a00588c))
|
||||
* verify style ([d34aa1d](https://gitee.com/xingyuv/vue-vben-admin/commits/d34aa1d30ce5fec80df88d1fda412053fe9fa05b))
|
||||
* **view:** 代码生成模块 数据源 ([4fc394f](https://gitee.com/xingyuv/vue-vben-admin/commits/4fc394fc8df7b80bbad792f51a743e6dab41cbd1)), closes [#I6](https://gitee.com/xingyuv/vue-vben-admin/issues/I6)
|
||||
* **view:** 代码生成器 查询方式 select ([d41e280](https://gitee.com/xingyuv/vue-vben-admin/commits/d41e280db3fc48e771f03627ee948f22c3f9db74)), closes [#I6Z3Y0](https://gitee.com/xingyuv/vue-vben-admin/issues/I6Z3Y0)
|
||||
* **view:** 日期字段存储不了 ([c38e983](https://gitee.com/xingyuv/vue-vben-admin/commits/c38e983e7b8de766c2ddc0063c9303e867e4f00d)), closes [#I6](https://gitee.com/xingyuv/vue-vben-admin/issues/I6)
|
||||
* **view:** 租户套餐未引入useI18n ([e011986](https://gitee.com/xingyuv/vue-vben-admin/commits/e011986354c706d1bf8096f7085fc96f381038ab)), closes [#I6YY2](https://gitee.com/xingyuv/vue-vben-admin/issues/I6YY2)
|
||||
* warn ([c9ad9cf](https://gitee.com/xingyuv/vue-vben-admin/commits/c9ad9cfc5b434833f3ba25dc83b30776a4461945))
|
||||
* warn ([cb51ea0](https://gitee.com/xingyuv/vue-vben-admin/commits/cb51ea031ee2ad7ad05df41d8cd499a9332bbb43))
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* ✨ post init ([3017d3c](https://gitee.com/xingyuv/vue-vben-admin/commits/3017d3c4f3debd0e07544f51d358877c1158ef17))
|
||||
* ✨ views init ([faf5098](https://gitee.com/xingyuv/vue-vben-admin/commits/faf509809cd6a569b19a8b74a0b80709f084d4d9))
|
||||
* ✨ views init ([56891ee](https://gitee.com/xingyuv/vue-vben-admin/commits/56891eef810ea32f858555c0a639ff9adbba3396))
|
||||
* 分配用户角色权限 ([7801fc6](https://gitee.com/xingyuv/vue-vben-admin/commits/7801fc6629074fa2f108af214a68418de0d25328))
|
||||
* 解构字段设置value ([adbbff5](https://gitee.com/xingyuv/vue-vben-admin/commits/adbbff5ea9f33e64935a08051367a16bff0e350a))
|
||||
* 适配 element 的标签颜色 ([48ff92f](https://gitee.com/xingyuv/vue-vben-admin/commits/48ff92faf7985b08850b38e2736495d40bcd3ed0))
|
||||
* 退款 ([fae8ef4](https://gitee.com/xingyuv/vue-vben-admin/commits/fae8ef469f1de2724ec879241f61339b33cd1654))
|
||||
* 完善代码生成页面 ([d448b19](https://gitee.com/xingyuv/vue-vben-admin/commits/d448b190d741dc736c1b49fb357c92b9db705ddb))
|
||||
* 文件上传 ([ecf9829](https://gitee.com/xingyuv/vue-vben-admin/commits/ecf98298a2dc526bd71b8c696629ec248cde3c84))
|
||||
* 修改用户状态 ([6fd0ed8](https://gitee.com/xingyuv/vue-vben-admin/commits/6fd0ed812edcb5547f56acb658ecaed6f16f952f))
|
||||
* 用户分组列表 ([ca4c704](https://gitee.com/xingyuv/vue-vben-admin/commits/ca4c704cd8259191631aec3b55c3a96cde9fd7e9))
|
||||
* 优化dict tag 颜色 ([2111e14](https://gitee.com/xingyuv/vue-vben-admin/commits/2111e14e317fd25d7f66cf18f69c2efb1526cc93))
|
||||
* 增加表单设计器 ([c6a53ac](https://gitee.com/xingyuv/vue-vben-admin/commits/c6a53accfacf702de18291e553169fac6e5cf8d2))
|
||||
* about ([5cd08a7](https://gitee.com/xingyuv/vue-vben-admin/commits/5cd08a769720a4fb9201b1ad1711cb4c26b6a2af))
|
||||
* action width ([9e85d8a](https://gitee.com/xingyuv/vue-vben-admin/commits/9e85d8a2804ff4f5c8503626fac3b3d59612e41b))
|
||||
* add about router ([d54969a](https://gitee.com/xingyuv/vue-vben-admin/commits/d54969ae507c5c102ad70c2551040a861df4210d))
|
||||
* add action i18n ([9782e6a](https://gitee.com/xingyuv/vue-vben-admin/commits/9782e6a6fd6ef70a2c322301d65834bd94c63de0))
|
||||
* add pay demo api ([0630266](https://gitee.com/xingyuv/vue-vben-admin/commits/063026664c5f7653824f2837bda7f3e2cf14cc96))
|
||||
* add permission ([fc1d741](https://gitee.com/xingyuv/vue-vben-admin/commits/fc1d741b223ff73149707981d1cca745226cdc4c))
|
||||
* add renderIcon ([2f284d3](https://gitee.com/xingyuv/vue-vben-admin/commits/2f284d31c3b83b71f1f96f06afbfd0b6da4bd1bd))
|
||||
* add renderTag ([abc7d24](https://gitee.com/xingyuv/vue-vben-admin/commits/abc7d24a226dd8cbce69f409f9e553614322115b))
|
||||
* add report views ([c74bb8a](https://gitee.com/xingyuv/vue-vben-admin/commits/c74bb8adce52f42734999e58540c515543aa9d2b))
|
||||
* add success text ([482e411](https://gitee.com/xingyuv/vue-vben-admin/commits/482e411f061a6306c0ff5c013ce1de73304f7f03))
|
||||
* add title ([a39fc77](https://gitee.com/xingyuv/vue-vben-admin/commits/a39fc77f118e8d2933ec53b38a43a956ccefcfe5))
|
||||
* add transformerDirectives ([653afff](https://gitee.com/xingyuv/vue-vben-admin/commits/653afff732528509e8f5bb9d79de1b41e05a5c54))
|
||||
* api ([05b8124](https://gitee.com/xingyuv/vue-vben-admin/commits/05b8124003b670216cb3a3d7fe70109728af3c7f))
|
||||
* api ([8e83c1d](https://gitee.com/xingyuv/vue-vben-admin/commits/8e83c1d149d41812edd938419ec971325500afbe))
|
||||
* app ([cb18359](https://gitee.com/xingyuv/vue-vben-admin/commits/cb1835928090ca99a71e9bc30f445ead9342fcc0))
|
||||
* area api ([8f33b3f](https://gitee.com/xingyuv/vue-vben-admin/commits/8f33b3ff31008aa21afb1bbee9278c4bd64536fe))
|
||||
* avatar upload ([75edf99](https://gitee.com/xingyuv/vue-vben-admin/commits/75edf99f6c0d0e275dbfa2de067105398e47aef3))
|
||||
* axios ([3a39b2a](https://gitee.com/xingyuv/vue-vben-admin/commits/3a39b2afb7445124100d215fa3bcbc09365ec604))
|
||||
* basicInfo codegen ([0d58b2b](https://gitee.com/xingyuv/vue-vben-admin/commits/0d58b2bf8d74ce312ace051ced3204446f9a90a5))
|
||||
* bpm api ([2cf363d](https://gitee.com/xingyuv/vue-vben-admin/commits/2cf363d6e8e1357462bc6480c3b3e8094d1e1c42))
|
||||
* bpm done ([6f6de0b](https://gitee.com/xingyuv/vue-vben-admin/commits/6f6de0b3930128179bbf67dedee3a6b6bfe6f8ef))
|
||||
* bpm leave ([abd2d3d](https://gitee.com/xingyuv/vue-vben-admin/commits/abd2d3de988a06433ccce2b1e0d08cadba623758))
|
||||
* bpm mpdel ([6a5b0c7](https://gitee.com/xingyuv/vue-vben-admin/commits/6a5b0c7a474e07c96b331d0d5c4a8dde6820cbc3))
|
||||
* bpm todo ([0bcf078](https://gitee.com/xingyuv/vue-vben-admin/commits/0bcf07887e9e1278785c53f575d70175288297a6))
|
||||
* btn permission ([e3ca402](https://gitee.com/xingyuv/vue-vben-admin/commits/e3ca40287b17999ed9a625479086814e29a36e46))
|
||||
* code style ([73c4969](https://gitee.com/xingyuv/vue-vben-admin/commits/73c496946f3d76cb2d4bf87be87a9becf825d545))
|
||||
* code style ([af3f998](https://gitee.com/xingyuv/vue-vben-admin/commits/af3f9983749fa86cee19d6ab17aa6c6afaab0f9e))
|
||||
* code style ([a2f7927](https://gitee.com/xingyuv/vue-vben-admin/commits/a2f79279c04ae9be3bf98337848445ad5a1a2530))
|
||||
* codegen ([f8d8407](https://gitee.com/xingyuv/vue-vben-admin/commits/f8d8407fb41861ed6a7b58e988b7d9eec375d5e2))
|
||||
* codegen ([a7d0468](https://gitee.com/xingyuv/vue-vben-admin/commits/a7d04683b211f2bee67ee04fe3cf53b7121eb8ad))
|
||||
* codegen 支持配置前端 UI 类型 ([bfb8d64](https://gitee.com/xingyuv/vue-vben-admin/commits/bfb8d6487bcecd80b8d2c81ece76857fa90a659d))
|
||||
* codegen finish ([2572e1d](https://gitee.com/xingyuv/vue-vben-admin/commits/2572e1db8a84e10f025003a73a6ad813cb14d71a))
|
||||
* codegen table ([fa92a1c](https://gitee.com/xingyuv/vue-vben-admin/commits/fa92a1c2da181b0a2150ea36e626b581ed030038))
|
||||
* codegen table ([26dd8ee](https://gitee.com/xingyuv/vue-vben-admin/commits/26dd8eefc930f947493b13ad44f765ee28201c0f))
|
||||
* componentName ([ffff33a](https://gitee.com/xingyuv/vue-vben-admin/commits/ffff33a696f0771df5424803ce4fe132d1745bac))
|
||||
* createWebHistory ([c2cd770](https://gitee.com/xingyuv/vue-vben-admin/commits/c2cd770fec953aa0575b1ee371bf5d6a9ca68970))
|
||||
* dept ([bcf8353](https://gitee.com/xingyuv/vue-vben-admin/commits/bcf8353fdc736b50507c4a28fcdea535e241d65b))
|
||||
* dept style ([bf7d05b](https://gitee.com/xingyuv/vue-vben-admin/commits/bf7d05b71c19b435b54a97e1395ecf91f2384105))
|
||||
* dict ([51beba6](https://gitee.com/xingyuv/vue-vben-admin/commits/51beba6968d47da6b5f944f645d19e46e0c5626f))
|
||||
* dict ([4a3d8ad](https://gitee.com/xingyuv/vue-vben-admin/commits/4a3d8adcce2a60981ba5dbc081c7b170e89eb05f))
|
||||
* dict color ([9b32af1](https://gitee.com/xingyuv/vue-vben-admin/commits/9b32af10058711df9bd2ed31ccc98c2a96dd1e17))
|
||||
* dict style ([43d34d5](https://gitee.com/xingyuv/vue-vben-admin/commits/43d34d5d94b33a4482386656eda10b6b2e514989))
|
||||
* dict tag ([70dda58](https://gitee.com/xingyuv/vue-vben-admin/commits/70dda584481c12435b528e15397167dfd37bc9a2))
|
||||
* dict view done ([9c60aa3](https://gitee.com/xingyuv/vue-vben-admin/commits/9c60aa364080d258c640ca3ec1f6b77af6cf3064))
|
||||
* dictTag ([3c42e9f](https://gitee.com/xingyuv/vue-vben-admin/commits/3c42e9f0cdaf290571765d1564a01fd8a423d00c))
|
||||
* doc ([b47a6e5](https://gitee.com/xingyuv/vue-vben-admin/commits/b47a6e5d64d0de9e42c9905917bfeff031f041e7))
|
||||
* download add title ([4762132](https://gitee.com/xingyuv/vue-vben-admin/commits/4762132362d53051aa5e2f383b7230cf5fddbbfb))
|
||||
* editTable init ([6e27639](https://gitee.com/xingyuv/vue-vben-admin/commits/6e27639bb949227f3faae514ad2fb42f5f16cf30))
|
||||
* error code init ([fbb15cd](https://gitee.com/xingyuv/vue-vben-admin/commits/fbb15cde59bdfd5c8cb1037eeace157ecf25f4b1))
|
||||
* errorcode style ([ddb7343](https://gitee.com/xingyuv/vue-vben-admin/commits/ddb73432d0bc1727959a152ef44310215707df0f))
|
||||
* extensions ([4dc019f](https://gitee.com/xingyuv/vue-vben-admin/commits/4dc019f44efa7eb8da01577cdd121a3361aafd29))
|
||||
* file ([af6c5cc](https://gitee.com/xingyuv/vue-vben-admin/commits/af6c5cc4468ff3b4c22f8278f5cbb2051fffb2a4))
|
||||
* file copy url ([dc98ffb](https://gitee.com/xingyuv/vue-vben-admin/commits/dc98ffb224e6184e8bfb2041f9be21f06469e99e))
|
||||
* form 表单 ([7afe98c](https://gitee.com/xingyuv/vue-vben-admin/commits/7afe98c05c2886459c35228321fef5a11fda952b))
|
||||
* form Editor component ([110a352](https://gitee.com/xingyuv/vue-vben-admin/commits/110a352a1ca3e375e814c096af65656a625061fe))
|
||||
* free-publish ([784a8b5](https://gitee.com/xingyuv/vue-vben-admin/commits/784a8b50fff61321988bc9f37678aaa5db061b6a))
|
||||
* handle delete ([1701c5d](https://gitee.com/xingyuv/vue-vben-admin/commits/1701c5dae16386dcaa8ffe71307b1a2ac57eeb52))
|
||||
* i18n ([60d43c0](https://gitee.com/xingyuv/vue-vben-admin/commits/60d43c077c22f0660ed82c62d5908b88762f51de))
|
||||
* i18n sync ([7641a6f](https://gitee.com/xingyuv/vue-vben-admin/commits/7641a6fb91a09920d9b4302d474f72313804114f))
|
||||
* icon enum ([a438064](https://gitee.com/xingyuv/vue-vben-admin/commits/a438064ea632c673aafe360ee54b1f9cbf337f99))
|
||||
* iframe ([4237a46](https://gitee.com/xingyuv/vue-vben-admin/commits/4237a46fd00f74bbceba5cf1e058aee9c6804147))
|
||||
* index ([4f30f96](https://gitee.com/xingyuv/vue-vben-admin/commits/4f30f96371f7fb0ed0ad001537c430ca20926187))
|
||||
* infra view ([85b7eee](https://gitee.com/xingyuv/vue-vben-admin/commits/85b7eeedb5a52e987f6fb2429756ec0b874d892c))
|
||||
* init ([4effdd9](https://gitee.com/xingyuv/vue-vben-admin/commits/4effdd9ae90c93a95d7fb8d0092563eeedab7dde))
|
||||
* job view ([5816101](https://gitee.com/xingyuv/vue-vben-admin/commits/5816101b464d7ff7410e2a2a1cf3efbfe1ed7d8e))
|
||||
* login ([0ffe344](https://gitee.com/xingyuv/vue-vben-admin/commits/0ffe344662ef3826ee892e206729360f4967bdac))
|
||||
* login log ([9481c5f](https://gitee.com/xingyuv/vue-vben-admin/commits/9481c5f3096e319c1f18fc711082641b4df9463d))
|
||||
* loginlog style ([2cfbb8d](https://gitee.com/xingyuv/vue-vben-admin/commits/2cfbb8d094e08198890900a45bcae6cdd0664e78))
|
||||
* mail account ([3b76913](https://gitee.com/xingyuv/vue-vben-admin/commits/3b769135cdd55df5ae3e52b2ccea772082c30943))
|
||||
* mail tempalte ([a917f52](https://gitee.com/xingyuv/vue-vben-admin/commits/a917f52f4f7063d61b919dd995359c18f6a48be3))
|
||||
* menu ([30b9556](https://gitee.com/xingyuv/vue-vben-admin/commits/30b9556714a09a58daa4d462f991887ce0953af1))
|
||||
* menu ([051f14c](https://gitee.com/xingyuv/vue-vben-admin/commits/051f14c3b5ec7c45416642cc139c9ca68c7da09d))
|
||||
* menu init ([8ba4ef9](https://gitee.com/xingyuv/vue-vben-admin/commits/8ba4ef9b9a7ad816957f6dd67bc74f631b89bb66))
|
||||
* menu init ([68016f7](https://gitee.com/xingyuv/vue-vben-admin/commits/68016f703e1232b5a003b7e13417a7cc3796e90b))
|
||||
* modal style ([d0dbb95](https://gitee.com/xingyuv/vue-vben-admin/commits/d0dbb951cfd543e9eb178639d704af73c646b2eb))
|
||||
* mp ([2fa4377](https://gitee.com/xingyuv/vue-vben-admin/commits/2fa437757aa17bd9aaf7a01c125afc9d73f16a8a))
|
||||
* mp account ([e665edc](https://gitee.com/xingyuv/vue-vben-admin/commits/e665edc9f0c60d3b7cd71e7b1d7fb8fd78684a59))
|
||||
* mp comps init ([d9bb410](https://gitee.com/xingyuv/vue-vben-admin/commits/d9bb4105ddcf75264812635235875e821f82d8fe))
|
||||
* mp message ([16b2368](https://gitee.com/xingyuv/vue-vben-admin/commits/16b23681a7af6a268914fe7bdb4e16f1f0ba275a))
|
||||
* mp statistics init ([7f72813](https://gitee.com/xingyuv/vue-vben-admin/commits/7f7281355ce48871d7b23563515207e5a3c1de7f))
|
||||
* mp tag ([ab364fa](https://gitee.com/xingyuv/vue-vben-admin/commits/ab364faaac99f9c5cf2083efc54c20cfa874108c))
|
||||
* mp user ([d7ce921](https://gitee.com/xingyuv/vue-vben-admin/commits/d7ce9218ca40cdc8ca03f79a273dbc2f108f4acc))
|
||||
* notice editor ([fe0dea6](https://gitee.com/xingyuv/vue-vben-admin/commits/fe0dea63a77a1b55be95a622ec2b6f2aca634b9c))
|
||||
* notice init ([e794ba7](https://gitee.com/xingyuv/vue-vben-admin/commits/e794ba7cd06a73395810b6f9e100b03e650d2ba1))
|
||||
* notify ([97c1f83](https://gitee.com/xingyuv/vue-vben-admin/commits/97c1f832dd42eb84af1f297fe57fab03a7b53f95))
|
||||
* notify message ([294189e](https://gitee.com/xingyuv/vue-vben-admin/commits/294189e16b691743d00b6b5c9cf7fae93b30fbd0))
|
||||
* notify message ([89137c7](https://gitee.com/xingyuv/vue-vben-admin/commits/89137c72ec0d02e617e09e68cfe0d12a6a8d76d2))
|
||||
* order ([3be96ce](https://gitee.com/xingyuv/vue-vben-admin/commits/3be96ce81fa5f818fb91b04181222cbf079f3c72))
|
||||
* pay comp name ([abca6ba](https://gitee.com/xingyuv/vue-vben-admin/commits/abca6ba622b3df959d75b7a406cc18a3952c0967))
|
||||
* pay merchant ([c262854](https://gitee.com/xingyuv/vue-vben-admin/commits/c262854a52c9ae3ec41c2bd242a629fde1f7de73))
|
||||
* post ([0ecfe12](https://gitee.com/xingyuv/vue-vben-admin/commits/0ecfe123772a28505f321a3549af5725bcfb7c69))
|
||||
* post ([1987729](https://gitee.com/xingyuv/vue-vben-admin/commits/198772973a8879dac7c6d0068aed8a4590172ef1))
|
||||
* post init ([11b4e00](https://gitee.com/xingyuv/vue-vben-admin/commits/11b4e00f5a6e8d782569be0269a83688521b8184))
|
||||
* profile avatar ([513a605](https://gitee.com/xingyuv/vue-vben-admin/commits/513a6052aab4b2908d8d8fb9c940a7bbe54e7090))
|
||||
* project setting ([419c60e](https://gitee.com/xingyuv/vue-vben-admin/commits/419c60e9d9338acce98a671dfc201ff7d84cc75b))
|
||||
* redis ([31adf4c](https://gitee.com/xingyuv/vue-vben-admin/commits/31adf4caafe4b784bd38682dabdce8af86863409))
|
||||
* redis base info ([fe72d10](https://gitee.com/xingyuv/vue-vben-admin/commits/fe72d10ff2bf335825044bbe4c52b94db47a9996))
|
||||
* redis echarts ([afec346](https://gitee.com/xingyuv/vue-vben-admin/commits/afec346d6491a970264be03abd82ebdfc640893b))
|
||||
* redis erchat ([4816bf8](https://gitee.com/xingyuv/vue-vben-admin/commits/4816bf8faa8bb42b2c92de571bbe46745abfe6fb))
|
||||
* redis view ([8ae8be8](https://gitee.com/xingyuv/vue-vben-admin/commits/8ae8be8e49fa3681ccf405109c363e5433573938))
|
||||
* refreshToken ([a640f38](https://gitee.com/xingyuv/vue-vben-admin/commits/a640f3822fbc343c2938c2ee5680756559ac8bd5))
|
||||
* refund ([879058c](https://gitee.com/xingyuv/vue-vben-admin/commits/879058cec4b41b3840a6401da92d8157dd87d841))
|
||||
* remove basemodel ([dc9321b](https://gitee.com/xingyuv/vue-vben-admin/commits/dc9321b28aee74a39f7b67b6e8a49d50c66ca4b5))
|
||||
* remove vitejs/plugin-legacy ([01935d4](https://gitee.com/xingyuv/vue-vben-admin/commits/01935d4692de35a8c8fc5834a33d240f8c4627b8))
|
||||
* render ([b568d4c](https://gitee.com/xingyuv/vue-vben-admin/commits/b568d4ca99283dc0d74cb8e097fdfdaecee35f9a))
|
||||
* render img use TableImg ([80d11b8](https://gitee.com/xingyuv/vue-vben-admin/commits/80d11b855425ccac3f0545f1bc4aa24552edb8da))
|
||||
* ResetPwdModal ([8e7581c](https://gitee.com/xingyuv/vue-vben-admin/commits/8e7581c6cf0801dd9742631d54bb26d5882151fb))
|
||||
* role menu && data scope ([7e8d9dc](https://gitee.com/xingyuv/vue-vben-admin/commits/7e8d9dc62a02bb5ee54728ce7c1260f896d9095b))
|
||||
* role scope init ([e40fb13](https://gitee.com/xingyuv/vue-vben-admin/commits/e40fb13ab9b59ea216fc3bf6fadde70fce161fdc))
|
||||
* router ([b37aa22](https://gitee.com/xingyuv/vue-vben-admin/commits/b37aa22570430bc894998373251703656a17eb9b))
|
||||
* router ([e89fe32](https://gitee.com/xingyuv/vue-vben-admin/commits/e89fe32f3a0f2f87a7e31f7156b5d8b4b9745637))
|
||||
* router ([ae3079b](https://gitee.com/xingyuv/vue-vben-admin/commits/ae3079b4189551717169a67376a3cf3cd39e9015))
|
||||
* router ([351171b](https://gitee.com/xingyuv/vue-vben-admin/commits/351171b29a992ffe462d873b58077083dab34fcf))
|
||||
* router init ([fb0a11e](https://gitee.com/xingyuv/vue-vben-admin/commits/fb0a11e3f76370369e4d8267e4703306d6057e60))
|
||||
* script setup ([3eaa81f](https://gitee.com/xingyuv/vue-vben-admin/commits/3eaa81ff19a8d0bd22b0f973f269770ae2eccdea))
|
||||
* SensitiveWord init ([bb9ef8b](https://gitee.com/xingyuv/vue-vben-admin/commits/bb9ef8bd3f6ddfb7bdc84b17638148cb640c9d79))
|
||||
* sms ([7687314](https://gitee.com/xingyuv/vue-vben-admin/commits/76873143a00935b5e381a7a44d8585477863a540))
|
||||
* style ([0143cd5](https://gitee.com/xingyuv/vue-vben-admin/commits/0143cd5978950bd7d4bde0a77c94b39e397be61f))
|
||||
* tenant menu ([8ba2dae](https://gitee.com/xingyuv/vue-vben-admin/commits/8ba2dae74ee8f263c828bb6493b8f8899ac7d25b))
|
||||
* token views ([1a36a19](https://gitee.com/xingyuv/vue-vben-admin/commits/1a36a195f36a7a50aa49c53d5084a55ea8a0b482))
|
||||
* upload file ([b4d2b61](https://gitee.com/xingyuv/vue-vben-admin/commits/b4d2b6120106770cb64f0f9c75970842437fbf35))
|
||||
* url router ([eb09883](https://gitee.com/xingyuv/vue-vben-admin/commits/eb098836b44bd785468c674312ce74512c78f87a))
|
||||
* user init ([ed85e3f](https://gitee.com/xingyuv/vue-vben-admin/commits/ed85e3f55f32b1b58a69f598d25335701c352b19))
|
||||
* useRender 添加注释 ([48ccd91](https://gitee.com/xingyuv/vue-vben-admin/commits/48ccd91ad3cbafd8e959f8a010f2ce417736bab0))
|
||||
* **util:** add dict ([f9d5d3a](https://gitee.com/xingyuv/vue-vben-admin/commits/f9d5d3a50a08fc73779f425a8af0e2a3067de35e))
|
||||
* verifition ([b41e48e](https://gitee.com/xingyuv/vue-vben-admin/commits/b41e48e2612ebae018e50749610c68ea99a5c01b))
|
||||
* **view:** api access log ([6d49095](https://gitee.com/xingyuv/vue-vben-admin/commits/6d49095404eb24f3d769b6c21b76318f29128ac4))
|
||||
* **view:** apiErrorLog ([8ed36c7](https://gitee.com/xingyuv/vue-vben-admin/commits/8ed36c7d6774e6c7722ca881b61bdbcb09ba3bb2))
|
||||
* **view:** base view init ([58db52c](https://gitee.com/xingyuv/vue-vben-admin/commits/58db52cea8dc3c5cb547f3234b8b9e05a175969e))
|
||||
* **view:** config ([cc43321](https://gitee.com/xingyuv/vue-vben-admin/commits/cc433213614c649be50f6da5272ef275694efa4c))
|
||||
* **view:** post init ([79c65e1](https://gitee.com/xingyuv/vue-vben-admin/commits/79c65e15cf5d394c6e48e51f390c382c3b789f59))
|
||||
* **view:** router view init ([d430f6d](https://gitee.com/xingyuv/vue-vben-admin/commits/d430f6d2721392876862ed0573949cc78ec1c6ab))
|
||||
* views ([3c8dbb4](https://gitee.com/xingyuv/vue-vben-admin/commits/3c8dbb4d0d15a1bd9732843b7690cb597536150e))
|
||||
* views ([113f17c](https://gitee.com/xingyuv/vue-vben-admin/commits/113f17cd18dc98b4c5d7e4817aeedb85fd423b70))
|
||||
* views ([4e34151](https://gitee.com/xingyuv/vue-vben-admin/commits/4e341517d907c66d93486be1351a267d763b4f5e))
|
||||
* views ([6a2eebe](https://gitee.com/xingyuv/vue-vben-admin/commits/6a2eebe4862ef357750c6422e6ebc86cd5e30966))
|
||||
* ws ([b3a6d0f](https://gitee.com/xingyuv/vue-vben-admin/commits/b3a6d0f8ff2b430ca41ff76cf347f9fcc9ed18c6))
|
||||
|
||||
|
||||
### Performance Improvements
|
||||
|
||||
* **BasicTable:** 滑块验证码位置 ([2593c44](https://gitee.com/xingyuv/vue-vben-admin/commits/2593c4457f7919366b12fca252b231ea0c72d18e))
|
||||
* respect the writing style of pinia getters ([de43d8b](https://gitee.com/xingyuv/vue-vben-admin/commits/de43d8b30bd30434cd15c514aee0d2d4fd4c8fca))
|
||||
|
||||
|
||||
|
||||
61
README.md
61
README.md
@@ -1,7 +1,5 @@
|
||||
# yudao-ui-admin-vben
|
||||
|
||||
[](LICENSE)
|
||||
|
||||
**严肃声明:现在、未来都不会有商业版本,所有代码全部开源!!**
|
||||
|
||||
**「我喜欢写代码,乐此不疲」**
|
||||
@@ -11,43 +9,35 @@
|
||||
|
||||
## 预览地址
|
||||
|
||||
- [预览地址](http://vben.xingyuv.com/)
|
||||
- [预览地址](http://dashboard-vben.yudao.iocoder.cn/)
|
||||
- [启动文档](https://doc.iocoder.cn/quick-start/)
|
||||
- [开发文档](http://vben-doc.x-surge.com/)
|
||||
- [视频教程](https://doc.iocoder.cn/video/)
|
||||
|
||||
## 交流群 && 外包项目请联系 [ xinyu370 ]
|
||||
## 外包项目请联系 [ xinyu370 ]
|
||||
|
||||
- [Star 点击查看](https://gitee.com/yudaocode/yudao-ui-admin-vben/issues/I6R8J0)
|
||||
- 
|
||||
|
||||
- 
|
||||
## 交流群
|
||||
|
||||
## 开发进度
|
||||
|
||||
- 系统管理 已完成
|
||||
- 基础设施 已完成
|
||||
- 支付管理 已完成
|
||||
- 公众号 进行中 40%
|
||||
- 工作流 进行中 40% 预计6月底
|
||||
- 升级 antdv 4.0 预计6月底
|
||||
- 
|
||||
|
||||
## 框架
|
||||
|
||||
| 框架 | 说明 | 版本 |
|
||||
| --- | --- | --- |
|
||||
| [Vue](https://staging-cn.vuejs.org/) | Vue 框架 | 3.3.4 |
|
||||
| [Vite](https://cn.vitejs.dev//) | 开发与构建工具 | 4.3.9 |
|
||||
| [ant-design-vue](https://antdv.com/) | ant-design-vue | 3.2.20 |
|
||||
| [TypeScript](https://www.typescriptlang.org/docs/) | JavaScript 的超集 | 5.1.3 |
|
||||
| [pinia](https://pinia.vuejs.org/) | Vue 存储库 替代 vuex5 | 2.1.3 |
|
||||
| [vueuse](https://vueuse.org/) | 常用工具集 | 10.1.2 |
|
||||
| [vue-i18n](https://kazupon.github.io/vue-i18n/zh/introduction.html/) | 国际化 | 9.2.2 |
|
||||
| [vue-router](https://router.vuejs.org/) | Vue 路由 | 4.2.2 |
|
||||
| [windicss](https://cn.windicss.org/) | 下一代工具优先的 CSS 框架 | 3.5.6 |
|
||||
| [iconify](https://icon-sets.iconify.design/) | 在线图标库 | 3.1.0 |
|
||||
| 框架 | 说明 | 版本 |
|
||||
| -------------------------------------------------------------------- | --------------------- | ------ |
|
||||
| [Vue](https://staging-cn.vuejs.org/) | Vue 框架 | 3.3.7 |
|
||||
| [Vite](https://cn.vitejs.dev//) | 开发与构建工具 | 4.5.0 |
|
||||
| [ant-design-vue](https://antdv.com/) | ant-design-vue | 4.0.6 |
|
||||
| [TypeScript](https://www.typescriptlang.org/docs/) | JavaScript 的超集 | 5.1.6 |
|
||||
| [pinia](https://pinia.vuejs.org/) | Vue 存储库 替代 vuex5 | 2.1.7 |
|
||||
| [vueuse](https://vueuse.org/) | 常用工具集 | 10.5.0 |
|
||||
| [vue-i18n](https://kazupon.github.io/vue-i18n/zh/introduction.html/) | 国际化 | 9.5.0 |
|
||||
| [vue-router](https://router.vuejs.org/) | Vue 路由 | 4.2.5 |
|
||||
| [unocss](https://uno.antfu.me/) | 原子 css | 0.57.1 |
|
||||
| [iconify](https://icon-sets.iconify.design/) | 在线图标库 | 3.1.1 |
|
||||
|
||||
- 
|
||||
- 
|
||||
- 
|
||||
- 
|
||||
|
||||
## 准备
|
||||
|
||||
@@ -57,7 +47,7 @@
|
||||
- [TypeScript](https://www.typescriptlang.org/) - 熟悉`TypeScript`基本语法
|
||||
- [Es6+](http://es6.ruanyifeng.com/) - 熟悉 es6 基本语法
|
||||
- [Vue-Router-Next](https://next.router.vuejs.org/) - 熟悉 vue-router 基本使用
|
||||
- [Ant-Design-Vue](https://antdv.com/) - ui 基本使用
|
||||
- [Ant-Design-Vue-4.0](https://antdv.com/) - ui 基本使用
|
||||
|
||||
## 安装使用
|
||||
|
||||
@@ -74,6 +64,11 @@ git clone https://github.com/xingyuv/yudao-ui-admin-vben.git
|
||||
```bash
|
||||
pnpm i
|
||||
|
||||
如提示 Expected version: >=8.9.0
|
||||
|
||||
使用 cmd 等升级 pnpm 版本
|
||||
npm add -g pnpm
|
||||
|
||||
```
|
||||
|
||||
- 运行
|
||||
@@ -119,6 +114,6 @@ pnpm build
|
||||
支持现代浏览器, 不支持 IE
|
||||
|
||||
|  |  |  |  |  |
|
||||
| :-: | :-: | :-: | :-: | :-: |
|
||||
| [IE](http://godban.github.io/browsers-support-badges/) | [Edge](http://godban.github.io/browsers-support-badgess/) | [Firefox](http://godban.github.io/browsers-support-badges/) | [Chrome](http://godban.github.io/browsers-support-badges/) | [Safari](http://godban.github.io/browsers-support-badges/)|
|
||||
| not support | last 2 versions | last 2 versions | last 2 versions | last 2 versions |
|
||||
| :---------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------: |
|
||||
| [IE](http://godban.github.io/browsers-support-badges/) | [Edge](http://godban.github.io/browsers-support-badgess/) | [Firefox](http://godban.github.io/browsers-support-badges/) | [Chrome](http://godban.github.io/browsers-support-badges/) | [Safari](http://godban.github.io/browsers-support-badges/) |
|
||||
| not support | last 2 versions | last 2 versions | last 2 versions | last 2 versions |
|
||||
|
||||
@@ -17,7 +17,7 @@ export interface GenerateColorsParams {
|
||||
|
||||
export function generateAntColors(color: string, theme: GenerateTheme = 'default') {
|
||||
return generate(color, {
|
||||
theme
|
||||
theme,
|
||||
})
|
||||
}
|
||||
|
||||
@@ -31,7 +31,7 @@ export function getThemeColors(color?: string) {
|
||||
}
|
||||
|
||||
export function generateColors({ color = primaryColor, mixLighten, mixDarken, tinycolor }: GenerateColorsParams) {
|
||||
const arr = new Array(19).fill(0)
|
||||
const arr = Array.from({ length: 19 }).fill(0)
|
||||
const lightens = arr.map((_t, i) => {
|
||||
return mixLighten(color, i / 5)
|
||||
})
|
||||
@@ -46,7 +46,7 @@ export function generateColors({ color = primaryColor, mixLighten, mixDarken, ti
|
||||
.toRgbString()
|
||||
})
|
||||
|
||||
const shortAlphaColors = alphaColors.map((item) => item.replace(/\s/g, '').replace(/0\./g, '.'))
|
||||
const shortAlphaColors = alphaColors.map(item => item.replace(/\s/g, '').replace(/0\./g, '.'))
|
||||
|
||||
const tinycolorLightens = arr
|
||||
.map((_t, i) => {
|
||||
@@ -54,7 +54,7 @@ export function generateColors({ color = primaryColor, mixLighten, mixDarken, ti
|
||||
.lighten(i * 5)
|
||||
.toHexString()
|
||||
})
|
||||
.filter((item) => item !== '#ffffff')
|
||||
.filter(item => item !== '#ffffff')
|
||||
|
||||
const tinycolorDarkens = arr
|
||||
.map((_t, i) => {
|
||||
@@ -62,8 +62,8 @@ export function generateColors({ color = primaryColor, mixLighten, mixDarken, ti
|
||||
.darken(i * 5)
|
||||
.toHexString()
|
||||
})
|
||||
.filter((item) => item !== '#000000')
|
||||
.filter(item => item !== '#000000')
|
||||
return [...lightens, ...darkens, ...alphaColors, ...shortAlphaColors, ...tinycolorDarkens, ...tinycolorLightens].filter(
|
||||
(item) => !item.includes('-')
|
||||
item => !item.includes('-'),
|
||||
)
|
||||
}
|
||||
|
||||
@@ -1,26 +1,39 @@
|
||||
import { generateAntColors, primaryColor } from '../config/themeConfig'
|
||||
import { getThemeVariables } from 'ant-design-vue/dist/theme'
|
||||
import { resolve } from 'path'
|
||||
import { resolve } from 'node:path'
|
||||
|
||||
import { generate } from '@ant-design/colors'
|
||||
|
||||
import { theme } from 'ant-design-vue/lib'
|
||||
import convertLegacyToken from 'ant-design-vue/lib/theme/convertLegacyToken'
|
||||
import { primaryColor } from '../config/themeConfig'
|
||||
|
||||
const { defaultAlgorithm, defaultSeed } = theme
|
||||
|
||||
function generateAntColors(color: string, theme: 'default' | 'dark' = 'default') {
|
||||
return generate(color, {
|
||||
theme,
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* less global variable
|
||||
*/
|
||||
export function generateModifyVars(dark = false) {
|
||||
export function generateModifyVars() {
|
||||
const palettes = generateAntColors(primaryColor)
|
||||
const primary = palettes[5]
|
||||
|
||||
const primaryColorObj: Record<string, string> = {}
|
||||
|
||||
for (let index = 0; index < 10; index++) {
|
||||
for (let index = 0; index < 10; index++)
|
||||
primaryColorObj[`primary-${index + 1}`] = palettes[index]
|
||||
}
|
||||
|
||||
const modifyVars = getThemeVariables({ dark })
|
||||
// const modifyVars = getThemeVariables();
|
||||
const mapToken = defaultAlgorithm(defaultSeed)
|
||||
const v3Token = convertLegacyToken(mapToken)
|
||||
|
||||
return {
|
||||
...modifyVars,
|
||||
// Used for global import to avoid the need to import each style file separately
|
||||
...v3Token,
|
||||
// reference: Avoid repeated references
|
||||
hack: `${modifyVars.hack} @import (reference) "${resolve('src/design/config.less')}";`,
|
||||
'hack': `true; @import (reference) "${resolve('src/design/config.less')}";`,
|
||||
'primary-color': primary,
|
||||
...primaryColorObj,
|
||||
'info-color': primary,
|
||||
@@ -28,10 +41,9 @@ export function generateModifyVars(dark = false) {
|
||||
'success-color': '#55D187', // Success color
|
||||
'error-color': '#ED6F6F', // False color
|
||||
'warning-color': '#EFBD47', // Warning color
|
||||
//'border-color-base': '#EEEEEE',
|
||||
'font-size-base': '14px', // Main font size
|
||||
'border-radius-base': '2px', // Component/float fillet
|
||||
'link-color': primary, // Link color
|
||||
'app-content-background': '#fafafa' // Link color
|
||||
'app-content-background': '#fafafa', // Link color
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import path from 'path'
|
||||
import path from 'node:path'
|
||||
import fs from 'fs-extra'
|
||||
import inquirer from 'inquirer'
|
||||
import colors from 'picocolors'
|
||||
@@ -11,10 +11,10 @@ async function generateIcon() {
|
||||
|
||||
const collections = Object.entries(raw).map(([id, v]) => ({
|
||||
...(v as any),
|
||||
id
|
||||
id,
|
||||
}))
|
||||
|
||||
const choices = collections.map((item) => ({ key: item.id, value: item.id, name: item.name }))
|
||||
const choices = collections.map(item => ({ key: item.id, value: item.id, name: item.name }))
|
||||
|
||||
inquirer
|
||||
.prompt([
|
||||
@@ -23,39 +23,39 @@ async function generateIcon() {
|
||||
name: 'useType',
|
||||
choices: [
|
||||
{ key: 'local', value: 'local', name: 'Local' },
|
||||
{ key: 'onLine', value: 'onLine', name: 'OnLine' }
|
||||
{ key: 'onLine', value: 'onLine', name: 'OnLine' },
|
||||
],
|
||||
message: 'How to use icons?'
|
||||
message: 'How to use icons?',
|
||||
},
|
||||
{
|
||||
type: 'list',
|
||||
name: 'iconSet',
|
||||
choices: choices,
|
||||
message: 'Select the icon set that needs to be generated?'
|
||||
choices,
|
||||
message: 'Select the icon set that needs to be generated?',
|
||||
},
|
||||
{
|
||||
type: 'input',
|
||||
name: 'output',
|
||||
message: 'Select the icon set that needs to be generated?',
|
||||
default: 'src/components/Icon/data'
|
||||
}
|
||||
default: 'src/components/Icon/data',
|
||||
},
|
||||
])
|
||||
.then(async (answers) => {
|
||||
const { iconSet, output, useType } = answers
|
||||
const outputDir = path.resolve(process.cwd(), output)
|
||||
await fs.ensureDir(outputDir)
|
||||
const genCollections = collections.filter((item) => [iconSet].includes(item.id))
|
||||
const genCollections = collections.filter(item => [iconSet].includes(item.id))
|
||||
const prefixSet: string[] = []
|
||||
for (const info of genCollections) {
|
||||
const data = await fs.readJSON(path.join(dir, 'json', `${info.id}.json`))
|
||||
if (data) {
|
||||
const { prefix } = data
|
||||
const isLocal = useType === 'local'
|
||||
const icons = Object.keys(data.icons).map((item) => `${isLocal ? prefix + ':' : ''}${item}`)
|
||||
const icons = Object.keys(data.icons).map(item => `${isLocal ? `${prefix}:` : ''}${item}`)
|
||||
|
||||
await fs.writeFileSync(
|
||||
path.join(output, `icons.data.ts`),
|
||||
`export default ${isLocal ? JSON.stringify(icons) : JSON.stringify({ prefix, icons })}`
|
||||
fs.writeFileSync(
|
||||
path.join(output, 'icons.data.ts'),
|
||||
`export default ${isLocal ? JSON.stringify(icons) : JSON.stringify({ prefix, icons })}`,
|
||||
)
|
||||
prefixSet.push(prefix)
|
||||
}
|
||||
|
||||
@@ -2,6 +2,6 @@
|
||||
* Get the configuration file variable name
|
||||
* @param env
|
||||
*/
|
||||
export const getConfigFileName = (env: Record<string, any>) => {
|
||||
export function getConfigFileName(env: Record<string, any>) {
|
||||
return `__PRODUCTION__${env.VITE_GLOB_APP_SHORT_NAME || '__APP'}__CONF__`.toUpperCase().replace(/\s/g, '')
|
||||
}
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
/**
|
||||
* Generate additional configuration files when used for packaging. The file can be configured with some global variables, so that it can be changed directly externally without repackaging
|
||||
*/
|
||||
import { GLOB_CONFIG_FILE_NAME, OUTPUT_DIR } from '../constant'
|
||||
import fs, { writeFileSync } from 'fs-extra'
|
||||
import colors from 'picocolors'
|
||||
import { GLOB_CONFIG_FILE_NAME, OUTPUT_DIR } from '../constant'
|
||||
|
||||
import { getEnvConfig, getRootPath } from '../utils'
|
||||
import { getConfigFileName } from '../getConfigFileName'
|
||||
@@ -33,10 +33,11 @@ function createConfig(params: CreateConfigParams) {
|
||||
fs.mkdirp(getRootPath(OUTPUT_DIR))
|
||||
writeFileSync(getRootPath(`${OUTPUT_DIR}/${configFileName}`), configStr)
|
||||
|
||||
console.log(colors.cyan(`✨ [${pkg.name}]`) + ` - configuration file is build successfully:`)
|
||||
console.log(colors.gray(OUTPUT_DIR + '/' + colors.green(configFileName)) + '\n')
|
||||
} catch (error) {
|
||||
console.log(colors.red('configuration file configuration file failed to package:\n' + error))
|
||||
console.log(`${colors.cyan(`✨ [${pkg.name}]`)} - configuration file is build successfully:`)
|
||||
console.log(`${colors.gray(`${OUTPUT_DIR}/${colors.green(configFileName)}`)}\n`)
|
||||
}
|
||||
catch (error: any) {
|
||||
console.log(colors.red(`configuration file configuration file failed to package:\n${error}`))
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,22 +1,22 @@
|
||||
// #!/usr/bin/env node
|
||||
|
||||
import { runBuildConfig } from './buildConf'
|
||||
import colors from 'picocolors'
|
||||
|
||||
import pkg from '../../package.json'
|
||||
import { runBuildConfig } from './buildConf'
|
||||
|
||||
export const runBuild = async () => {
|
||||
export function runBuild() {
|
||||
try {
|
||||
const argvList = process.argv.splice(2)
|
||||
|
||||
// Generate configuration file
|
||||
if (!argvList.includes('disabled-config')) {
|
||||
if (!argvList.includes('disabled-config'))
|
||||
runBuildConfig()
|
||||
}
|
||||
|
||||
console.log(`✨ ${colors.cyan(`[${pkg.name}]`)}` + ' - build successfully!')
|
||||
} catch (error) {
|
||||
console.log(colors.red('vite build error:\n' + error))
|
||||
}
|
||||
catch (error: any) {
|
||||
console.log(colors.red(`vite build error:\n${error}`))
|
||||
process.exit(1)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import fs from 'fs'
|
||||
import path from 'path'
|
||||
import fs from 'node:fs'
|
||||
import path from 'node:path'
|
||||
import dotenv from 'dotenv'
|
||||
|
||||
export function isDevFn(mode: string): boolean {
|
||||
@@ -25,13 +25,14 @@ export function wrapperEnv(envConf: Recordable): ViteEnv {
|
||||
let realName = envConf[envName].replace(/\\n/g, '\n')
|
||||
realName = realName === 'true' ? true : realName === 'false' ? false : realName
|
||||
|
||||
if (envName === 'VITE_PORT') {
|
||||
if (envName === 'VITE_PORT')
|
||||
realName = Number(realName)
|
||||
}
|
||||
|
||||
if (envName === 'VITE_PROXY' && realName) {
|
||||
try {
|
||||
realName = JSON.parse(realName.replace(/'/g, '"'))
|
||||
} catch (error) {
|
||||
}
|
||||
catch (error) {
|
||||
realName = ''
|
||||
}
|
||||
}
|
||||
@@ -50,7 +51,7 @@ export function wrapperEnv(envConf: Recordable): ViteEnv {
|
||||
*/
|
||||
function getConfFiles() {
|
||||
const script = process.env.npm_lifecycle_script
|
||||
const reg = new RegExp('--mode ([a-z_\\d]+)')
|
||||
const reg = /--mode ([a-z_\d]+)/
|
||||
const result = reg.exec(script as string) as any
|
||||
if (result) {
|
||||
const mode = result[1] as string
|
||||
@@ -64,21 +65,26 @@ function getConfFiles() {
|
||||
* @param match prefix
|
||||
* @param confFiles ext
|
||||
*/
|
||||
export function getEnvConfig(match = 'VITE_GLOB_', confFiles = getConfFiles()) {
|
||||
export function getEnvConfig(
|
||||
match = 'VITE_GLOB_',
|
||||
confFiles = getConfFiles(),
|
||||
): Promise<{
|
||||
[key: string]: string;
|
||||
}> {
|
||||
let envConfig = {}
|
||||
confFiles.forEach((item) => {
|
||||
try {
|
||||
const env = dotenv.parse(fs.readFileSync(path.resolve(process.cwd(), item)))
|
||||
envConfig = { ...envConfig, ...env }
|
||||
} catch (e) {
|
||||
}
|
||||
catch (e) {
|
||||
console.error(`Error in parsing ${item}`, e)
|
||||
}
|
||||
})
|
||||
const reg = new RegExp(`^(${match})`)
|
||||
Object.keys(envConfig).forEach((key) => {
|
||||
if (!reg.test(key)) {
|
||||
if (!reg.test(key))
|
||||
Reflect.deleteProperty(envConfig, key)
|
||||
}
|
||||
})
|
||||
return envConfig
|
||||
}
|
||||
|
||||
@@ -5,7 +5,6 @@ const include = [
|
||||
'axios',
|
||||
'pinia',
|
||||
'dayjs',
|
||||
'qrcode',
|
||||
'echarts',
|
||||
'cropperjs',
|
||||
'crypto-js',
|
||||
@@ -29,7 +28,6 @@ const include = [
|
||||
'ant-design-vue/es/style',
|
||||
'ant-design-vue/es/locale/zh_CN',
|
||||
'ant-design-vue/es/locale/en_US',
|
||||
'vite-plugin-windicss'
|
||||
]
|
||||
|
||||
const exclude = ['@iconify/json']
|
||||
|
||||
@@ -5,7 +5,10 @@
|
||||
import type { PluginOption } from 'vite'
|
||||
import compressPlugin from 'vite-plugin-compression'
|
||||
|
||||
export function configCompressPlugin(compress: 'gzip' | 'brotli' | 'none', deleteOriginFile = false): PluginOption | PluginOption[] {
|
||||
export function configCompressPlugin(
|
||||
compress: 'gzip' | 'brotli' | 'none' = 'none',
|
||||
deleteOriginFile = false,
|
||||
): PluginOption | PluginOption[] {
|
||||
const compressList = compress.split(',')
|
||||
|
||||
const plugins: PluginOption[] = []
|
||||
@@ -14,8 +17,8 @@ export function configCompressPlugin(compress: 'gzip' | 'brotli' | 'none', delet
|
||||
plugins.push(
|
||||
compressPlugin({
|
||||
ext: '.gz',
|
||||
deleteOriginFile
|
||||
})
|
||||
deleteOriginFile,
|
||||
}),
|
||||
)
|
||||
}
|
||||
|
||||
@@ -24,8 +27,8 @@ export function configCompressPlugin(compress: 'gzip' | 'brotli' | 'none', delet
|
||||
compressPlugin({
|
||||
ext: '.br',
|
||||
algorithm: 'brotliCompress',
|
||||
deleteOriginFile
|
||||
})
|
||||
deleteOriginFile,
|
||||
}),
|
||||
)
|
||||
}
|
||||
return plugins
|
||||
|
||||
@@ -21,7 +21,7 @@ export function configHtmlPlugin(env: ViteEnv, isBuild: boolean) {
|
||||
inject: {
|
||||
// Inject data into ejs template
|
||||
data: {
|
||||
title: VITE_GLOB_APP_TITLE
|
||||
title: VITE_GLOB_APP_TITLE,
|
||||
},
|
||||
// Embed the generated app.config.js file
|
||||
tags: isBuild
|
||||
@@ -29,12 +29,12 @@ export function configHtmlPlugin(env: ViteEnv, isBuild: boolean) {
|
||||
{
|
||||
tag: 'script',
|
||||
attrs: {
|
||||
src: getAppConfigSrc()
|
||||
}
|
||||
}
|
||||
src: getAppConfigSrc(),
|
||||
},
|
||||
},
|
||||
]
|
||||
: []
|
||||
}
|
||||
: [],
|
||||
},
|
||||
})
|
||||
return htmlPlugin
|
||||
}
|
||||
|
||||
@@ -1,19 +1,17 @@
|
||||
import { PluginOption } from 'vite'
|
||||
import type { PluginOption } from 'vite'
|
||||
import vue from '@vitejs/plugin-vue'
|
||||
import vueJsx from '@vitejs/plugin-vue-jsx'
|
||||
import windiCSS from 'vite-plugin-windicss'
|
||||
import progress from 'vite-plugin-progress'
|
||||
import purgeIcons from 'vite-plugin-purge-icons'
|
||||
import VitePluginCertificate from 'vite-plugin-mkcert'
|
||||
import UnoCSS from 'unocss/vite'
|
||||
import { configPwaConfig } from './pwa'
|
||||
import { configHtmlPlugin } from './html'
|
||||
import { configCompressPlugin } from './compress'
|
||||
import { configStyleImportPlugin } from './styleImport'
|
||||
import { configVisualizerConfig } from './visualizer'
|
||||
import { configThemePlugin } from './theme'
|
||||
import { configSvgIconsPlugin } from './svgSprite'
|
||||
|
||||
export async function createVitePlugins(viteEnv: ViteEnv, isBuild: boolean) {
|
||||
export function createVitePlugins(viteEnv: ViteEnv, isBuild: boolean) {
|
||||
const { VITE_BUILD_COMPRESS, VITE_BUILD_COMPRESS_DELETE_ORIGIN_FILE } = viteEnv
|
||||
|
||||
const vitePlugins: PluginOption[] = [
|
||||
@@ -21,16 +19,15 @@ export async function createVitePlugins(viteEnv: ViteEnv, isBuild: boolean) {
|
||||
vue(),
|
||||
// have to
|
||||
vueJsx(),
|
||||
// UnoCSS
|
||||
UnoCSS(),
|
||||
// 打包进度条
|
||||
progress(),
|
||||
VitePluginCertificate({
|
||||
source: 'coding'
|
||||
})
|
||||
source: 'coding',
|
||||
}),
|
||||
]
|
||||
|
||||
// windiCSS
|
||||
vitePlugins.push(windiCSS())
|
||||
|
||||
// vite-vue-plugin-html
|
||||
vitePlugins.push(configHtmlPlugin(viteEnv, isBuild))
|
||||
|
||||
@@ -43,13 +40,8 @@ export async function createVitePlugins(viteEnv: ViteEnv, isBuild: boolean) {
|
||||
// rollup-plugin-visualizer
|
||||
vitePlugins.push(configVisualizerConfig())
|
||||
|
||||
// vite-plugin-vben-theme
|
||||
vitePlugins.push(configThemePlugin(isBuild))
|
||||
|
||||
// The following plugins only work in the production environment
|
||||
if (isBuild) {
|
||||
// vite-plugin-style-import
|
||||
vitePlugins.push(configStyleImportPlugin(isBuild))
|
||||
// rollup-plugin-gzip
|
||||
vitePlugins.push(configCompressPlugin(VITE_BUILD_COMPRESS, VITE_BUILD_COMPRESS_DELETE_ORIGIN_FILE))
|
||||
|
||||
|
||||
@@ -17,15 +17,15 @@ export function configPwaConfig(env: ViteEnv) {
|
||||
{
|
||||
src: './resource/img/pwa-192x192.png',
|
||||
sizes: '192x192',
|
||||
type: 'image/png'
|
||||
type: 'image/png',
|
||||
},
|
||||
{
|
||||
src: './resource/img/pwa-512x512.png',
|
||||
sizes: '512x512',
|
||||
type: 'image/png'
|
||||
}
|
||||
]
|
||||
}
|
||||
type: 'image/png',
|
||||
},
|
||||
],
|
||||
},
|
||||
})
|
||||
return pwaPlugin
|
||||
}
|
||||
|
||||
@@ -1,82 +0,0 @@
|
||||
/**
|
||||
* Introduces component library styles on demand.
|
||||
* https://github.com/xingyuv/vite-plugin-style-import
|
||||
*/
|
||||
import { createStyleImportPlugin } from 'vite-plugin-style-import'
|
||||
|
||||
export function configStyleImportPlugin(_isBuild: boolean) {
|
||||
if (!_isBuild) {
|
||||
return []
|
||||
}
|
||||
const styleImportPlugin = createStyleImportPlugin({
|
||||
libs: [
|
||||
{
|
||||
libraryName: 'ant-design-vue',
|
||||
esModule: true,
|
||||
resolveStyle: (name) => {
|
||||
// 这里是无需额外引入样式文件的“子组件”列表
|
||||
const ignoreList = [
|
||||
'anchor-link',
|
||||
'sub-menu',
|
||||
'menu-item',
|
||||
'menu-divider',
|
||||
'menu-item-group',
|
||||
'breadcrumb-item',
|
||||
'breadcrumb-separator',
|
||||
'form-item',
|
||||
'step',
|
||||
'select-option',
|
||||
'select-opt-group',
|
||||
'card-grid',
|
||||
'card-meta',
|
||||
'collapse-panel',
|
||||
'descriptions-item',
|
||||
'list-item',
|
||||
'list-item-meta',
|
||||
'table-column',
|
||||
'table-column-group',
|
||||
'tab-pane',
|
||||
'tab-content',
|
||||
'timeline-item',
|
||||
'tree-node',
|
||||
'skeleton-input',
|
||||
'skeleton-avatar',
|
||||
'skeleton-title',
|
||||
'skeleton-paragraph',
|
||||
'skeleton-image',
|
||||
'skeleton-button'
|
||||
]
|
||||
// 这里是需要额外引入样式的子组件列表
|
||||
// 单独引入子组件时需引入组件样式,否则会在打包后导致子组件样式丢失
|
||||
const replaceList = {
|
||||
textarea: 'input',
|
||||
'typography-text': 'typography',
|
||||
'typography-title': 'typography',
|
||||
'typography-paragraph': 'typography',
|
||||
'typography-link': 'typography',
|
||||
'dropdown-button': 'dropdown',
|
||||
'input-password': 'input',
|
||||
'input-search': 'input',
|
||||
'input-group': 'input',
|
||||
'radio-group': 'radio',
|
||||
'checkbox-group': 'checkbox',
|
||||
'layout-sider': 'layout',
|
||||
'layout-content': 'layout',
|
||||
'layout-footer': 'layout',
|
||||
'layout-header': 'layout',
|
||||
'month-picker': 'date-picker',
|
||||
'range-picker': 'date-picker',
|
||||
'image-preview-group': 'image'
|
||||
}
|
||||
|
||||
return ignoreList.includes(name)
|
||||
? ''
|
||||
: replaceList.hasOwnProperty(name)
|
||||
? `ant-design-vue/es/${replaceList[name]}/style/index`
|
||||
: `ant-design-vue/es/${name}/style/index`
|
||||
}
|
||||
}
|
||||
]
|
||||
})
|
||||
return styleImportPlugin
|
||||
}
|
||||
@@ -3,16 +3,16 @@
|
||||
* https://github.com/anncwb/vite-plugin-svg-icons
|
||||
*/
|
||||
|
||||
import path from 'node:path'
|
||||
import { createSvgIconsPlugin } from 'vite-plugin-svg-icons'
|
||||
import path from 'path'
|
||||
import { PluginOption } from 'vite'
|
||||
import type { PluginOption } from 'vite'
|
||||
|
||||
export function configSvgIconsPlugin(isBuild: boolean) {
|
||||
const svgIconsPlugin = createSvgIconsPlugin({
|
||||
iconDirs: [path.resolve(process.cwd(), 'src/assets/icons')],
|
||||
svgoOptions: isBuild,
|
||||
// default
|
||||
symbolId: 'icon-[dir]-[name]'
|
||||
symbolId: 'icon-[dir]-[name]',
|
||||
})
|
||||
return svgIconsPlugin as PluginOption
|
||||
}
|
||||
|
||||
@@ -1,83 +0,0 @@
|
||||
/**
|
||||
* Vite plugin for website theme color switching
|
||||
* https://github.com/xingyuv/vite-vue-plugin-theme
|
||||
*/
|
||||
import type { PluginOption } from 'vite'
|
||||
import path from 'path'
|
||||
import { viteThemePlugin, antdDarkThemePlugin, mixLighten, mixDarken, tinycolor } from 'vite-vue-plugin-theme'
|
||||
import { getThemeColors, generateColors } from '../../config/themeConfig'
|
||||
import { generateModifyVars } from '../../generate/generateModifyVars'
|
||||
|
||||
export function configThemePlugin(isBuild: boolean): PluginOption[] {
|
||||
const colors = generateColors({
|
||||
mixDarken,
|
||||
mixLighten,
|
||||
tinycolor
|
||||
})
|
||||
const plugin = [
|
||||
viteThemePlugin({
|
||||
resolveSelector: (s) => {
|
||||
s = s.trim()
|
||||
switch (s) {
|
||||
case '.ant-steps-item-process .ant-steps-item-icon > .ant-steps-icon':
|
||||
return '.ant-steps-item-icon > .ant-steps-icon'
|
||||
case '.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled)':
|
||||
case '.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):hover':
|
||||
case '.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):active':
|
||||
return s
|
||||
case '.ant-steps-item-icon > .ant-steps-icon':
|
||||
return s
|
||||
case '.ant-select-item-option-selected:not(.ant-select-item-option-disabled)':
|
||||
return s
|
||||
default:
|
||||
if (s.indexOf('.ant-btn') >= -1) {
|
||||
// 按钮被重新定制过,需要过滤掉class防止覆盖
|
||||
return s
|
||||
}
|
||||
}
|
||||
return s.startsWith('[data-theme') ? s : `[data-theme] ${s}`
|
||||
},
|
||||
colorVariables: [...getThemeColors(), ...colors]
|
||||
}),
|
||||
antdDarkThemePlugin({
|
||||
preloadFiles: [
|
||||
path.resolve(process.cwd(), 'node_modules/ant-design-vue/dist/antd.less'),
|
||||
//path.resolve(process.cwd(), 'node_modules/ant-design-vue/dist/antd.dark.less'),
|
||||
path.resolve(process.cwd(), 'src/design/index.less')
|
||||
],
|
||||
filter: (id) => (isBuild ? !id.endsWith('antd.less') : true),
|
||||
// extractCss: false,
|
||||
darkModifyVars: {
|
||||
...generateModifyVars(true),
|
||||
'text-color': '#c9d1d9',
|
||||
'primary-1': 'rgb(255 255 255 / 8%)',
|
||||
'text-color-base': '#c9d1d9',
|
||||
'component-background': '#151515',
|
||||
'heading-color': 'rgb(255 255 255 / 65%)',
|
||||
// black: '#0e1117',
|
||||
// #8b949e
|
||||
'text-color-secondary': '#8b949e',
|
||||
'border-color-base': '#303030',
|
||||
// 'border-color-split': '#30363d',
|
||||
'item-active-bg': '#111b26',
|
||||
'app-content-background': '#1e1e1e',
|
||||
'tree-node-selected-bg': '#11263c',
|
||||
|
||||
'alert-success-border-color': '#274916',
|
||||
'alert-success-bg-color': '#162312',
|
||||
'alert-success-icon-color': '#49aa19',
|
||||
'alert-info-border-color': '#153450',
|
||||
'alert-info-bg-color': '#111b26',
|
||||
'alert-info-icon-color': '#177ddc',
|
||||
'alert-warning-border-color': '#594214',
|
||||
'alert-warning-bg-color': '#2b2111',
|
||||
'alert-warning-icon-color': '#d89614',
|
||||
'alert-error-border-color': '#58181c',
|
||||
'alert-error-bg-color': '#2a1215',
|
||||
'alert-error-icon-color': '#a61d24'
|
||||
}
|
||||
})
|
||||
]
|
||||
|
||||
return plugin as unknown as PluginOption[]
|
||||
}
|
||||
@@ -2,8 +2,8 @@
|
||||
* Package file volume analysis
|
||||
*/
|
||||
import visualizer from 'rollup-plugin-visualizer'
|
||||
import type { PluginOption } from 'vite'
|
||||
import { isReportMode } from '../../utils'
|
||||
import { PluginOption } from 'vite'
|
||||
|
||||
export function configVisualizerConfig() {
|
||||
if (isReportMode()) {
|
||||
@@ -11,7 +11,7 @@ export function configVisualizerConfig() {
|
||||
filename: './node_modules/.cache/visualizer/stats.html',
|
||||
open: true,
|
||||
gzipSize: true,
|
||||
brotliSize: true
|
||||
brotliSize: true,
|
||||
}) as PluginOption
|
||||
}
|
||||
return []
|
||||
|
||||
@@ -22,12 +22,12 @@ export function createProxy(list: ProxyList = []) {
|
||||
|
||||
// https://github.com/http-party/node-http-proxy#options
|
||||
ret[prefix] = {
|
||||
target: target,
|
||||
target,
|
||||
changeOrigin: true,
|
||||
ws: true,
|
||||
rewrite: (path) => path.replace(new RegExp(`^${prefix}`), ''),
|
||||
rewrite: path => path.replace(new RegExp(`^${prefix}`), ''),
|
||||
// https is require secure=false
|
||||
...(isHttps ? { secure: false } : {})
|
||||
...(isHttps ? { secure: false } : {}),
|
||||
}
|
||||
}
|
||||
return ret
|
||||
|
||||
@@ -1,25 +1,25 @@
|
||||
const fs = require('fs')
|
||||
const path = require('path')
|
||||
const { execSync } = require('child_process')
|
||||
const fs = require('node:fs')
|
||||
const path = require('node:path')
|
||||
const { execSync } = require('node:child_process')
|
||||
|
||||
const scopes = fs
|
||||
.readdirSync(path.resolve(__dirname, 'src'), { withFileTypes: true })
|
||||
.filter((dirent) => dirent.isDirectory())
|
||||
.map((dirent) => dirent.name.replace(/s$/, ''))
|
||||
.filter(dirent => dirent.isDirectory())
|
||||
.map(dirent => dirent.name.replace(/s$/, ''))
|
||||
|
||||
// precomputed scope
|
||||
const scopeComplete = execSync('git status --porcelain || true')
|
||||
.toString()
|
||||
.trim()
|
||||
.split('\n')
|
||||
.find((r) => ~r.indexOf('M src'))
|
||||
.find(r => ~r.indexOf('M src'))
|
||||
?.replace(/(\/)/g, '%%')
|
||||
?.match(/src%%((\w|-)*)/)?.[1]
|
||||
?.replace(/s$/, '')
|
||||
|
||||
/** @type {import('cz-git').UserConfig} */
|
||||
module.exports = {
|
||||
ignores: [(commit) => commit.includes('init')],
|
||||
ignores: [commit => commit.includes('init')],
|
||||
extends: ['@commitlint/config-conventional'],
|
||||
rules: {
|
||||
'body-leading-blank': [2, 'always'],
|
||||
@@ -31,8 +31,8 @@ module.exports = {
|
||||
'type-enum': [
|
||||
2,
|
||||
'always',
|
||||
['feat', 'fix', 'perf', 'style', 'docs', 'test', 'refactor', 'build', 'ci', 'chore', 'revert', 'wip', 'workflow', 'types', 'release']
|
||||
]
|
||||
['feat', 'fix', 'perf', 'style', 'docs', 'test', 'refactor', 'build', 'ci', 'chore', 'revert', 'wip', 'workflow', 'types', 'release'],
|
||||
],
|
||||
},
|
||||
prompt: {
|
||||
/** @use `yarn commit :f` */
|
||||
@@ -41,7 +41,7 @@ module.exports = {
|
||||
r: 'docs: update README',
|
||||
s: 'style: update code format',
|
||||
b: 'build: bump dependencies',
|
||||
c: 'chore: update config'
|
||||
c: 'chore: update config',
|
||||
},
|
||||
customScopesAlign: !scopeComplete ? 'top' : 'bottom',
|
||||
defaultScope: scopeComplete,
|
||||
@@ -53,7 +53,7 @@ module.exports = {
|
||||
typesAppend: [
|
||||
{ value: 'wip', name: 'wip: work in process' },
|
||||
{ value: 'workflow', name: 'workflow: workflow improvements' },
|
||||
{ value: 'types', name: 'types: type definition file changes' }
|
||||
{ value: 'types', name: 'types: type definition file changes' },
|
||||
],
|
||||
|
||||
// 中英文对照版
|
||||
@@ -67,7 +67,7 @@ module.exports = {
|
||||
footerPrefixsSelect: '选择关联issue前缀 (可选):',
|
||||
customFooterPrefixs: '输入自定义issue前缀 :',
|
||||
footer: '列举关联issue (可选) 例如: #31, #I3244 :\n',
|
||||
confirmCommit: '是否提交或修改commit ?'
|
||||
confirmCommit: '是否提交或修改commit ?',
|
||||
},
|
||||
types: [
|
||||
{ value: 'feat', name: 'feat: 新增功能' },
|
||||
@@ -83,9 +83,9 @@ module.exports = {
|
||||
{ value: 'chore', name: 'chore: 对构建过程或辅助工具和库的更改 (不影响源文件、测试用例)' },
|
||||
{ value: 'wip', name: 'wip: 正在开发中' },
|
||||
{ value: 'workflow', name: 'workflow: 工作流程改进' },
|
||||
{ value: 'types', name: 'types: 类型定义文件修改' }
|
||||
{ value: 'types', name: 'types: 类型定义文件修改' },
|
||||
],
|
||||
emptyScopesAlias: 'empty: 不填写',
|
||||
customScopesAlias: 'custom: 自定义'
|
||||
}
|
||||
customScopesAlias: 'custom: 自定义',
|
||||
},
|
||||
}
|
||||
|
||||
14
eslint.config.js
Normal file
14
eslint.config.js
Normal file
@@ -0,0 +1,14 @@
|
||||
const antfu = require('@antfu/eslint-config').default
|
||||
const unocss = require('@unocss/eslint-plugin')
|
||||
|
||||
module.exports = antfu(
|
||||
{
|
||||
rules: {
|
||||
'no-console': 'off',
|
||||
'node/prefer-global/process': 'off',
|
||||
'vue/custom-event-name-casing': 'off',
|
||||
'vue/component-name-in-template-casing': 'off',
|
||||
},
|
||||
},
|
||||
unocss.configs.flat,
|
||||
)
|
||||
30
index.html
30
index.html
@@ -4,29 +4,34 @@
|
||||
<meta charset="UTF-8" />
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
|
||||
<meta name="renderer" content="webkit" />
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1.0" />
|
||||
<meta
|
||||
name="viewport"
|
||||
content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=0"
|
||||
/>
|
||||
<title>%VITE_GLOB_APP_TITLE%</title>
|
||||
<link rel="icon" href="/favicon.ico" />
|
||||
</head>
|
||||
<body>
|
||||
<script>
|
||||
(() => {
|
||||
var htmlRoot = document.getElementById('htmlRoot');
|
||||
var theme = window.localStorage.getItem('__APP__DARK__MODE__');
|
||||
let htmlRoot = document.getElementById('htmlRoot')
|
||||
let theme = window.localStorage.getItem('__APP__DARK__MODE__')
|
||||
if (htmlRoot && theme) {
|
||||
htmlRoot.setAttribute('data-theme', theme);
|
||||
theme = htmlRoot = null;
|
||||
htmlRoot.setAttribute('data-theme', theme)
|
||||
theme = htmlRoot = null
|
||||
}
|
||||
})();
|
||||
})()
|
||||
</script>
|
||||
<div id="app">
|
||||
<style>
|
||||
html[data-theme='dark'] .app-loading {
|
||||
background-color: #2c344a;
|
||||
}
|
||||
html[data-theme="dark"] {
|
||||
.app-loading {
|
||||
background-color: #2c344a;
|
||||
|
||||
html[data-theme='dark'] .app-loading .app-loading-title {
|
||||
color: rgb(255 255 255 / 85%);
|
||||
.app-loading-title {
|
||||
color: rgb(255 255 255 / 85%);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.app-loading {
|
||||
@@ -69,7 +74,8 @@
|
||||
.app-loading .app-loading-logo {
|
||||
display: block;
|
||||
width: 90px;
|
||||
margin: 0 auto 20px;
|
||||
margin: 0 auto;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.dot {
|
||||
|
||||
188
package.json
188
package.json
@@ -1,11 +1,25 @@
|
||||
{
|
||||
"name": "yudao-ui-admin-vben",
|
||||
"version": "1.7.3",
|
||||
"version": "1.8.3-snapshot",
|
||||
"packageManager": "pnpm@8.9.0",
|
||||
"author": {
|
||||
"name": "xingyuv",
|
||||
"email": "xingyu4j@vip.qq.com",
|
||||
"url": "https://gitee.com/xingyuv"
|
||||
},
|
||||
"license": "MIT",
|
||||
"homepage": "https://gitee.com/xingyuv",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://gitee.com/xingyuv/vue-vben-admin.git"
|
||||
},
|
||||
"bugs": {
|
||||
"url": "https://gitee.com/xingyuv/issues"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^18.0.0 || >=20.0.0",
|
||||
"pnpm": ">=8.9.0"
|
||||
},
|
||||
"scripts": {
|
||||
"commit": "czg",
|
||||
"bootstrap": "pnpm install",
|
||||
@@ -13,142 +27,122 @@
|
||||
"dev": "vite",
|
||||
"front": "vite --mode front",
|
||||
"build": "cross-env NODE_ENV=production NODE_OPTIONS=--max-old-space-size=8192 vite build && esno ./build/script/postBuild.ts",
|
||||
"build:test": "cross-env NODE_OPTIONS=--max-old-space-size=8192 vite build --mode test && esno ./build/script/postBuild.ts",
|
||||
"build:test": "cross-env NODE_OPTIONS=--max-old-space-size=8192 vite build --mode test && esno ./build/script/postBuild.ts",
|
||||
"build:static": "cross-env NODE_OPTIONS=--max-old-space-size=8192 vite build --mode static && esno ./build/script/postBuild.ts",
|
||||
"build:no-cache": "pnpm clean:cache && pnpm build",
|
||||
"build:no-cache": "pnpm store prune && pnpm build",
|
||||
"report": "cross-env REPORT=true pnpm build",
|
||||
"type:check": "vue-tsc --noEmit --skipLibCheck",
|
||||
"preview": "pnpm build && vite preview",
|
||||
"preview:dist": "vite preview",
|
||||
"log": "conventional-changelog -p angular -i CHANGELOG.md -s",
|
||||
"clean:cache": "rimraf node_modules/.cache/ && rimraf node_modules/.vite",
|
||||
"clean:lib": "rimraf node_modules",
|
||||
"lint:eslint": "eslint --cache --max-warnings 0 \"src/**/*.{vue,ts,tsx}\" --fix",
|
||||
"lint:prettier": "prettier --write \"src/**/*.{js,json,ts,tsx,css,less,scss,vue,html,md}\"",
|
||||
"lint:style": "stylelint --cache --fix \"**/*.{vue,less,postcss,css,scss}\" --cache --cache-location node_modules/.cache/stylelint/",
|
||||
"lint": "eslint \"src/**/*.{vue,ts,tsx}\"",
|
||||
"lint:fix": "eslint \"src/**/*.{vue,ts,tsx}\" --fix",
|
||||
"lint:stylelint": "stylelint \"src/**/*.{vue,css,less,scss}\" --fix --cache --cache-location node_modules/.cache/stylelint/",
|
||||
"lint:lint-staged": "lint-staged",
|
||||
"npm:check": "npx npm-check-updates",
|
||||
"reinstall": "rimraf pnpm-lock.yaml && rimraf package.lock.json && rimraf node_modules && pnpm bootstrap",
|
||||
"reinstall": "rimraf pnpm-lock.yaml && rimraf node_modules && pnpm bootstrap",
|
||||
"prepare": "husky install",
|
||||
"gen:icon": "esno ./build/generate/icon/index.ts"
|
||||
},
|
||||
"dependencies": {
|
||||
"@ant-design/colors": "^7.0.0",
|
||||
"@ant-design/icons-vue": "^6.1.0",
|
||||
"@iconify/iconify": "^3.1.0",
|
||||
"@vue/runtime-core": "^3.3.4",
|
||||
"@vueuse/core": "^10.1.2",
|
||||
"@zxcvbn-ts/core": "^3.0.2",
|
||||
"ant-design-vue": "^3.2.20",
|
||||
"axios": "^1.4.0",
|
||||
"codemirror": "^5.65.3",
|
||||
"cron-parser": "^4.8.1",
|
||||
"cropperjs": "^1.5.13",
|
||||
"@ant-design/icons-vue": "^7.0.1",
|
||||
"@iconify/iconify": "^3.1.1",
|
||||
"@videojs-player/vue": "^1.0.0",
|
||||
"@vue/runtime-core": "^3.3.7",
|
||||
"@vueuse/core": "^10.5.0",
|
||||
"@zxcvbn-ts/core": "^3.0.4",
|
||||
"ant-design-vue": "^4.0.6",
|
||||
"axios": "^1.5.1",
|
||||
"benz-amr-recorder": "^1.1.5",
|
||||
"codemirror": "5.65.15",
|
||||
"cron-parser": "^4.9.0",
|
||||
"cropperjs": "^1.6.1",
|
||||
"crypto-js": "^4.1.1",
|
||||
"dayjs": "^1.11.8",
|
||||
"echarts": "^5.4.2",
|
||||
"dayjs": "^1.11.10",
|
||||
"echarts": "^5.4.3",
|
||||
"lodash-es": "^4.17.21",
|
||||
"nprogress": "^0.2.0",
|
||||
"path-to-regexp": "^6.2.1",
|
||||
"pinia": "^2.1.3",
|
||||
"pinia": "^2.1.7",
|
||||
"pinia-plugin-persistedstate": "^3.2.0",
|
||||
"print-js": "^1.6.0",
|
||||
"qrcode": "^1.5.3",
|
||||
"qs": "^6.11.2",
|
||||
"resize-observer-polyfill": "^1.5.1",
|
||||
"sortablejs": "^1.15.0",
|
||||
"tinymce": "^5.10.7",
|
||||
"vditor": "^3.9.3",
|
||||
"vue": "^3.3.4",
|
||||
"vue-i18n": "^9.2.2",
|
||||
"tinymce": "5.10.7",
|
||||
"vditor": "^3.9.6",
|
||||
"video-js": "^0.7.0",
|
||||
"vue": "^3.3.7",
|
||||
"vue-i18n": "^9.5.0",
|
||||
"vue-json-pretty": "^2.2.4",
|
||||
"vue-router": "^4.2.2",
|
||||
"vue-types": "^5.0.3",
|
||||
"vue-router": "^4.2.5",
|
||||
"vue-types": "^5.1.1",
|
||||
"vuedraggable": "^4.1.0",
|
||||
"xlsx": "^0.18.5"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@commitlint/cli": "^17.6.5",
|
||||
"@commitlint/config-conventional": "^17.6.5",
|
||||
"@iconify/json": "^2.2.75",
|
||||
"@antfu/eslint-config": "^1.0.0-beta.28",
|
||||
"@commitlint/cli": "^18.0.0",
|
||||
"@commitlint/config-conventional": "^18.0.0",
|
||||
"@iconify/json": "^2.2.132",
|
||||
"@purge-icons/generated": "^0.9.0",
|
||||
"@types/codemirror": "^5.60.8",
|
||||
"@types/crypto-js": "^4.1.1",
|
||||
"@types/fs-extra": "^11.0.1",
|
||||
"@types/inquirer": "^9.0.3",
|
||||
"@types/lodash-es": "^4.17.7",
|
||||
"@types/node": "^20.2.5",
|
||||
"@types/nprogress": "^0.2.0",
|
||||
"@types/qrcode": "^1.5.0",
|
||||
"@types/qs": "^6.9.7",
|
||||
"@types/sortablejs": "^1.15.1",
|
||||
"@typescript-eslint/eslint-plugin": "^5.59.9",
|
||||
"@typescript-eslint/parser": "^5.59.9",
|
||||
"@vitejs/plugin-vue": "4.2.3",
|
||||
"@vitejs/plugin-vue-jsx": "^3.0.1",
|
||||
"@vue/compiler-sfc": "^3.3.4",
|
||||
"autoprefixer": "^10.4.14",
|
||||
"conventional-changelog-cli": "^3.0.0",
|
||||
"@types/codemirror": "^5.60.12",
|
||||
"@types/crypto-js": "^4.1.3",
|
||||
"@types/fs-extra": "^11.0.3",
|
||||
"@types/inquirer": "^9.0.6",
|
||||
"@types/lodash-es": "^4.17.10",
|
||||
"@types/node": "^20.8.8",
|
||||
"@types/nprogress": "^0.2.2",
|
||||
"@types/qs": "^6.9.9",
|
||||
"@types/sortablejs": "^1.15.4",
|
||||
"@unocss/eslint-config": "^0.57.1",
|
||||
"@vitejs/plugin-vue": "4.4.0",
|
||||
"@vitejs/plugin-vue-jsx": "^3.0.2",
|
||||
"@vue/compiler-sfc": "^3.3.7",
|
||||
"cross-env": "^7.0.3",
|
||||
"cz-git": "^1.6.1",
|
||||
"czg": "^1.6.1",
|
||||
"dotenv": "^16.1.4",
|
||||
"eslint": "^8.42.0",
|
||||
"eslint-config-prettier": "^8.8.0",
|
||||
"eslint-plugin-prettier": "^4.2.1",
|
||||
"eslint-plugin-vue": "^9.14.1",
|
||||
"esno": "^0.16.3",
|
||||
"cz-git": "^1.7.1",
|
||||
"czg": "^1.7.1",
|
||||
"dotenv": "^16.3.1",
|
||||
"eslint": "^8.52.0",
|
||||
"esno": "^0.17.0",
|
||||
"fs-extra": "^11.1.1",
|
||||
"husky": "^8.0.3",
|
||||
"inquirer": "^9.2.7",
|
||||
"less": "^4.1.3",
|
||||
"lint-staged": "^13.2.2",
|
||||
"inquirer": "^9.2.11",
|
||||
"less": "^4.2.0",
|
||||
"lint-staged": "^15.0.2",
|
||||
"picocolors": "^1.0.0",
|
||||
"postcss": "^8.4.24",
|
||||
"postcss": "^8.4.31",
|
||||
"postcss-html": "^1.5.0",
|
||||
"postcss-less": "^6.0.0",
|
||||
"prettier": "^2.8.8",
|
||||
"rimraf": "^5.0.1",
|
||||
"rollup": "^3.24.0",
|
||||
"rollup-plugin-visualizer": "^5.9.0",
|
||||
"stylelint": "^15.7.0",
|
||||
"stylelint-config-recommended": "^12.0.0",
|
||||
"stylelint-config-recommended-vue": "^1.4.0",
|
||||
"stylelint-config-standard": "^33.0.0",
|
||||
"prettier": "^3.0.3",
|
||||
"rimraf": "^5.0.5",
|
||||
"rollup": "^4.1.4",
|
||||
"rollup-plugin-visualizer": "^5.9.2",
|
||||
"stylelint": "^15.11.0",
|
||||
"stylelint-config-recess-order": "^4.3.0",
|
||||
"stylelint-config-recommended": "^13.0.0",
|
||||
"stylelint-config-recommended-vue": "^1.5.0",
|
||||
"stylelint-config-standard": "^34.0.0",
|
||||
"stylelint-order": "^6.0.3",
|
||||
"terser": "^5.17.7",
|
||||
"typescript": "^5.1.3",
|
||||
"vite": "^4.3.9",
|
||||
"stylelint-prettier": "^4.0.2",
|
||||
"terser": "^5.22.0",
|
||||
"typescript": "^5.2.2",
|
||||
"unocss": "^0.57.1",
|
||||
"vite": "^4.5.0",
|
||||
"vite-plugin-compression": "^0.5.1",
|
||||
"vite-plugin-mkcert": "^1.15.0",
|
||||
"vite-plugin-mkcert": "^1.16.0",
|
||||
"vite-plugin-progress": "^0.0.7",
|
||||
"vite-plugin-purge-icons": "^0.9.2",
|
||||
"vite-plugin-pwa": "^0.16.3",
|
||||
"vite-plugin-style-import": "^2.0.0",
|
||||
"vite-plugin-pwa": "^0.16.5",
|
||||
"vite-plugin-svg-icons": "^2.0.1",
|
||||
"vite-plugin-windicss": "^1.9.0",
|
||||
"vite-vue-plugin-html": "^1.0.2",
|
||||
"vite-vue-plugin-theme": "^1.0.2",
|
||||
"vue-eslint-parser": "^9.3.0",
|
||||
"vue-tsc": "^1.6.5"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://gitee.com/xingyuv/vue-vben-admin.git"
|
||||
},
|
||||
"license": "MIT",
|
||||
"bugs": {
|
||||
"url": "https://gitee.com/xingyuv/issues"
|
||||
},
|
||||
"homepage": "https://gitee.com/xingyuv",
|
||||
"packageManager": "pnpm@8.6.0",
|
||||
"engines": {
|
||||
"node": ">= 16.0.0",
|
||||
"pnpm": ">=8.6.0"
|
||||
"vite-vue-plugin-html": "^1.0.3",
|
||||
"vue-tsc": "^1.8.20"
|
||||
},
|
||||
"lint-staged": {
|
||||
"*.{js,jsx,ts,tsx}": [
|
||||
"eslint --fix",
|
||||
"prettier --write"
|
||||
"eslint --fix"
|
||||
],
|
||||
"{!(package)*.json,*.code-snippets,.!(browserslist)*rc}": [
|
||||
"prettier --write--parser json"
|
||||
@@ -158,12 +152,10 @@
|
||||
],
|
||||
"*.vue": [
|
||||
"eslint --fix",
|
||||
"prettier --write",
|
||||
"stylelint --fix"
|
||||
],
|
||||
"*.{scss,less,styl,html}": [
|
||||
"stylelint --fix",
|
||||
"prettier --write"
|
||||
"stylelint --fix"
|
||||
],
|
||||
"*.md": [
|
||||
"prettier --write"
|
||||
|
||||
7668
pnpm-lock.yaml
generated
7668
pnpm-lock.yaml
generated
File diff suppressed because it is too large
Load Diff
@@ -1,5 +0,0 @@
|
||||
module.exports = {
|
||||
plugins: {
|
||||
autoprefixer: {}
|
||||
}
|
||||
}
|
||||
@@ -1,37 +0,0 @@
|
||||
module.exports = {
|
||||
// 一行代码的最大字符数,默认是80
|
||||
printWidth: 140,
|
||||
// tab宽度为2空格
|
||||
tabWidth: 2,
|
||||
// 使用tab缩进,默认false
|
||||
useTabs: false,
|
||||
// 结尾是否添加分号, 默认true
|
||||
semi: false,
|
||||
// vue script和style标签中是否缩进,开启可能会破坏编辑器的代码折叠
|
||||
vueIndentScriptAndStyle: false,
|
||||
// 使用单引号, 默认false(在jsx中配置无效, 默认都是双引号)
|
||||
singleQuote: true,
|
||||
// object对象中key值是否加引号 as-needed只有在需求要的情况下加引号,consistent是有一个需要引号就统一加,preserve是保留用户输入的引号
|
||||
quoteProps: 'as-needed',
|
||||
// object对象里面的key和value值和括号间的空格
|
||||
bracketSpacing: true,
|
||||
// 行尾逗号,默认none,可选 none|es5|all
|
||||
// es5 包括es5中的数组、对象
|
||||
// all 包括函数对象等所有可选
|
||||
trailingComma: 'none',
|
||||
// 在jsx文件中的引号需要单独设置 默认false
|
||||
jsxSingleQuote: false,
|
||||
// 箭头函数单个参数的情况是否省略括号,默认always是总是带括号
|
||||
// avoid 能省略括号的时候就省略 例如x => x
|
||||
// always 总是有括号
|
||||
arrowParens: 'always',
|
||||
insertPragma: false,
|
||||
requirePragma: false,
|
||||
proseWrap: 'never',
|
||||
htmlWhitespaceSensitivity: 'strict',
|
||||
// endOfLine: "<lf|crlf|cr|auto>" 行尾换行符,默认是lf
|
||||
endOfLine: 'auto',
|
||||
// range是format执行的范围,可以选执行一个文件的一部分,默认的设置是整个文件
|
||||
rangeStart: 0,
|
||||
rangeEnd: Infinity
|
||||
}
|
||||
BIN
public/resource/img/preview.png
Normal file
BIN
public/resource/img/preview.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 172 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 179 KiB After Width: | Height: | Size: 179 KiB |
BIN
public/resource/img/wx2.png
Normal file
BIN
public/resource/img/wx2.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 135 KiB |
28
src/App.vue
28
src/App.vue
@@ -1,27 +1,31 @@
|
||||
<template>
|
||||
<ConfigProvider :locale="getAntdLocale" :component-size="componentSize">
|
||||
<AppProvider>
|
||||
<RouterView />
|
||||
</AppProvider>
|
||||
</ConfigProvider>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import 'dayjs/locale/zh-cn'
|
||||
|
||||
import { App, ConfigProvider } from 'ant-design-vue'
|
||||
import { storeToRefs } from 'pinia'
|
||||
|
||||
import { computed } from 'vue'
|
||||
import { ConfigProvider } from 'ant-design-vue'
|
||||
import { AppProvider } from '@/components/Application'
|
||||
import { useTitle } from '@/hooks/web/useTitle'
|
||||
import { useLocale } from '@/locales/useLocale'
|
||||
import { useAppStore } from '@/store/modules/app'
|
||||
|
||||
import 'dayjs/locale/zh-cn'
|
||||
// support Multi-language
|
||||
const { getAntdLocale } = useLocale()
|
||||
|
||||
const appStore = useAppStore()
|
||||
const { themeConfig } = storeToRefs(appStore)
|
||||
|
||||
const componentSize = computed(() => appStore.getComponentSize)
|
||||
|
||||
// Listening to page changes and dynamically changing site titles
|
||||
useTitle()
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<ConfigProvider :locale="getAntdLocale" :theme="themeConfig" :component-size="componentSize">
|
||||
<App class="h-full w-full">
|
||||
<AppProvider>
|
||||
<RouterView />
|
||||
</AppProvider>
|
||||
</App>
|
||||
</ConfigProvider>
|
||||
</template>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import type { TentantNameVO } from './model/loginModel'
|
||||
import { defHttp } from '@/utils/http/axios'
|
||||
import { TentantNameVO } from './model/loginModel'
|
||||
import { getRefreshToken } from '@/utils/auth'
|
||||
|
||||
enum Api {
|
||||
@@ -8,14 +8,14 @@ enum Api {
|
||||
GetTenantIdByName = '/system/tenant/get-id-by-name?name=',
|
||||
LoginOut = '/system/auth/logout',
|
||||
GetUserInfo = '/system/auth/get-permission-info',
|
||||
GetAsyncRoutes = '/system/auth/list-menus',
|
||||
GetCaptcha = '/system/captcha/get',
|
||||
CheckCaptcha = '/system/captcha/check'
|
||||
CheckCaptcha = '/system/captcha/check',
|
||||
}
|
||||
|
||||
// 刷新访问令牌
|
||||
export function refreshToken() {
|
||||
return defHttp.post({ url: Api.RefreshToken + getRefreshToken() })
|
||||
const refreshToken: string = getRefreshToken()
|
||||
return defHttp.post({ url: Api.RefreshToken + refreshToken })
|
||||
}
|
||||
|
||||
// 使用租户名,获得租户编号
|
||||
@@ -33,19 +33,14 @@ export function getUserInfo() {
|
||||
return defHttp.get({ url: Api.GetUserInfo })
|
||||
}
|
||||
|
||||
// 路由
|
||||
export function getAsyncRoutes() {
|
||||
return defHttp.get({ url: Api.GetAsyncRoutes })
|
||||
}
|
||||
|
||||
// 获取登录验证码
|
||||
export function sendSmsCode(mobile, scene) {
|
||||
return defHttp.post({
|
||||
url: '/system/auth/send-sms-code',
|
||||
data: {
|
||||
mobile,
|
||||
scene
|
||||
}
|
||||
scene,
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
@@ -62,31 +57,31 @@ export function checkCaptcha(data) {
|
||||
// ========== OAUTH 2.0 相关 ==========
|
||||
|
||||
export function getAuthorize(clientId) {
|
||||
return defHttp.get({ url: '/system/oauth2/authorize?clientId=' + clientId })
|
||||
return defHttp.get({ url: `/system/oauth2/authorize?clientId=${clientId}` })
|
||||
}
|
||||
|
||||
export function authorize(responseType, clientId, redirectUri, state, autoApprove, checkedScopes, uncheckedScopes) {
|
||||
// 构建 scopes
|
||||
const scopes = {}
|
||||
for (const scope of checkedScopes) {
|
||||
for (const scope of checkedScopes)
|
||||
scopes[scope] = true
|
||||
}
|
||||
for (const scope of uncheckedScopes) {
|
||||
|
||||
for (const scope of uncheckedScopes)
|
||||
scopes[scope] = false
|
||||
}
|
||||
|
||||
// 发起请求
|
||||
return defHttp.post({
|
||||
url: '/system/oauth2/authorize',
|
||||
headers: {
|
||||
'Content-type': 'application/x-www-form-urlencoded'
|
||||
'Content-type': 'application/x-www-form-urlencoded',
|
||||
},
|
||||
params: {
|
||||
response_type: responseType,
|
||||
client_id: clientId,
|
||||
redirect_uri: redirectUri,
|
||||
state: state,
|
||||
state,
|
||||
auto_approve: autoApprove,
|
||||
scope: JSON.stringify(scopes)
|
||||
}
|
||||
scope: JSON.stringify(scopes),
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
import { defHttp } from '@/utils/http/axios'
|
||||
import { getMenuListResultModel } from './model/menuModel'
|
||||
|
||||
enum Api {
|
||||
GetMenuList = '/system/auth/list-menus'
|
||||
}
|
||||
|
||||
/**
|
||||
* @description: Get user menu based on id
|
||||
*/
|
||||
|
||||
export function getMenuList() {
|
||||
return defHttp.get<getMenuListResultModel>({ url: Api.GetMenuList })
|
||||
}
|
||||
@@ -1,9 +1,9 @@
|
||||
export type UserLoginVO = {
|
||||
export interface UserLoginVO {
|
||||
username: string
|
||||
password: string
|
||||
captchaVerification: string
|
||||
}
|
||||
|
||||
export type TentantNameVO = {
|
||||
export interface TentantNameVO {
|
||||
id: number
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import type { RouteMeta } from 'vue-router'
|
||||
|
||||
export interface RouteItem {
|
||||
path: string
|
||||
component: any
|
||||
@@ -9,8 +10,3 @@ export interface RouteItem {
|
||||
caseSensitive?: boolean
|
||||
children?: RouteItem[]
|
||||
}
|
||||
|
||||
/**
|
||||
* @description: Get menu return value
|
||||
*/
|
||||
export type getMenuListResultModel = RouteItem[]
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
import type { RouteItem } from './menuModel'
|
||||
|
||||
/**
|
||||
* @description: Login interface parameters
|
||||
*/
|
||||
@@ -31,6 +33,7 @@ export interface LoginResultModel {
|
||||
export interface GetUserInfoModel {
|
||||
roles: string[]
|
||||
permissions: string[]
|
||||
menus: RouteItem[]
|
||||
// 用户id
|
||||
user: userModel
|
||||
}
|
||||
|
||||
@@ -57,7 +57,7 @@ enum Api {
|
||||
uploadAvatarApi = '/system/user/profile/update-avatar',
|
||||
updateUserPwdApi = '/system/user/profile/update-password',
|
||||
socialBindApi = '/system/social-user/bind',
|
||||
socialUnbindApi = '/system/social-user/unbind'
|
||||
socialUnbindApi = '/system/social-user/unbind',
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -79,9 +79,9 @@ export function updateUserPwdApi(oldPassword: string, newPassword: string) {
|
||||
return defHttp.put({
|
||||
url: Api.updateUserPwdApi,
|
||||
data: {
|
||||
oldPassword: oldPassword,
|
||||
newPassword: newPassword
|
||||
}
|
||||
oldPassword,
|
||||
newPassword,
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
@@ -91,10 +91,9 @@ export function uploadAvatarApi(data) {
|
||||
url: Api.uploadAvatarApi,
|
||||
headers: {
|
||||
'Content-type': ContentTypeEnum.FORM_DATA,
|
||||
// @ts-ignore
|
||||
ignoreCancelToken: true
|
||||
'ignoreCancelToken': true,
|
||||
},
|
||||
data
|
||||
data,
|
||||
})
|
||||
}
|
||||
|
||||
@@ -105,8 +104,8 @@ export function socialBind(type, code, state) {
|
||||
data: {
|
||||
type,
|
||||
code,
|
||||
state
|
||||
}
|
||||
state,
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
@@ -116,14 +115,14 @@ export function socialUnbind(type, openid) {
|
||||
url: Api.socialUnbindApi,
|
||||
data: {
|
||||
type,
|
||||
openid
|
||||
}
|
||||
openid,
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
// 社交授权的跳转
|
||||
export function socialAuthRedirect(type, redirectUri) {
|
||||
return defHttp.get({
|
||||
url: '/system/auth/social-auth-redirect?type=' + type + '&redirectUri=' + redirectUri
|
||||
url: `/system/auth/social-auth-redirect?type=${type}&redirectUri=${redirectUri}`,
|
||||
})
|
||||
}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import { UploadApiResult } from './model/uploadModel'
|
||||
import type { AxiosProgressEvent } from 'axios'
|
||||
import type { UploadApiResult } from './model/uploadModel'
|
||||
import { defHttp } from '@/utils/http/axios'
|
||||
import { UploadFileParams } from '@/types/axios'
|
||||
import type { UploadFileParams } from '@/types/axios'
|
||||
import { useGlobSetting } from '@/hooks/setting'
|
||||
import { AxiosProgressEvent } from 'axios'
|
||||
|
||||
const { uploadUrl = '' } = useGlobSetting()
|
||||
|
||||
@@ -13,8 +13,8 @@ export function uploadApi(params: UploadFileParams, onUploadProgress: (progressE
|
||||
return defHttp.uploadFile<UploadApiResult>(
|
||||
{
|
||||
url: uploadUrl,
|
||||
onUploadProgress
|
||||
onUploadProgress,
|
||||
},
|
||||
params
|
||||
params,
|
||||
)
|
||||
}
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
import type { GetUserInfoModel, LoginParams, LoginResultModel, SmsLoginParams } from './model/userModel'
|
||||
import { defHttp } from '@/utils/http/axios'
|
||||
import { LoginParams, LoginResultModel, GetUserInfoModel, SmsLoginParams } from './model/userModel'
|
||||
|
||||
import { ErrorMessageMode } from '@/types/axios'
|
||||
import type { ErrorMessageMode } from '@/types/axios'
|
||||
|
||||
enum Api {
|
||||
Login = '/system/auth/login',
|
||||
Logout = '/system/auth/logout',
|
||||
SmsLogin = '/system/auth/sms-login',
|
||||
GetUserInfo = '/system/auth/get-permission-info'
|
||||
GetUserInfo = '/system/auth/get-permission-info',
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
5
src/api/bpm/activity/index.ts
Normal file
5
src/api/bpm/activity/index.ts
Normal file
@@ -0,0 +1,5 @@
|
||||
import { defHttp } from '@/utils/http/axios'
|
||||
|
||||
export function getActivityList(params) {
|
||||
return defHttp.get({ url: '/bpm/activity/list', params })
|
||||
}
|
||||
@@ -9,5 +9,5 @@ export function getProcessDefinitionList(params) {
|
||||
}
|
||||
|
||||
export function getProcessDefinitionBpmnXML(id) {
|
||||
return defHttp.get({ url: '/bpm/process-definition/get-bpmn-xml?id=' + id })
|
||||
return defHttp.get({ url: `/bpm/process-definition/get-bpmn-xml?id=${id}` })
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { defHttp } from '@/utils/http/axios'
|
||||
|
||||
export type FormVO = {
|
||||
export interface FormVO {
|
||||
id: number
|
||||
name: string
|
||||
conf: string
|
||||
@@ -22,12 +22,12 @@ export function updateForm(data: FormVO) {
|
||||
|
||||
// 删除工作流的表单定义
|
||||
export function deleteForm(id: number) {
|
||||
return defHttp.delete({ url: '/bpm/form/delete?id=' + id })
|
||||
return defHttp.delete({ url: `/bpm/form/delete?id=${id}` })
|
||||
}
|
||||
|
||||
// 获得工作流的表单定义
|
||||
export function getForm(id: number) {
|
||||
return defHttp.get({ url: '/bpm/form/get?id=' + id })
|
||||
return defHttp.get({ url: `/bpm/form/get?id=${id}` })
|
||||
}
|
||||
|
||||
// 获得工作流的表单定义分页
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { defHttp } from '@/utils/http/axios'
|
||||
|
||||
export type LeaveVO = {
|
||||
export interface LeaveVO {
|
||||
id: number
|
||||
result: number
|
||||
type: number
|
||||
@@ -18,7 +18,7 @@ export function createLeave(data: LeaveVO) {
|
||||
|
||||
// 获得请假申请
|
||||
export function getLeave(id: number) {
|
||||
return defHttp.get({ url: '/bpm/oa/leave/get?id=' + id })
|
||||
return defHttp.get({ url: `/bpm/oa/leave/get?id=${id}` })
|
||||
}
|
||||
|
||||
// 获得请假申请分页
|
||||
|
||||
@@ -1,19 +1,13 @@
|
||||
import { UploadApiResult } from '@/api/base/model/uploadModel'
|
||||
import { useGlobSetting } from '@/hooks/setting'
|
||||
import { UploadFileParams } from '@/types/axios'
|
||||
import { defHttp } from '@/utils/http/axios'
|
||||
import { AxiosProgressEvent } from 'axios'
|
||||
|
||||
const { apiUrl = '' } = useGlobSetting()
|
||||
|
||||
export type ProcessDefinitionVO = {
|
||||
export interface ProcessDefinitionVO {
|
||||
id: string
|
||||
version: number
|
||||
deploymentTIme: string
|
||||
suspensionState: number
|
||||
}
|
||||
|
||||
export type ModelVO = {
|
||||
export interface ModelVO {
|
||||
id: number
|
||||
formName: string
|
||||
key: string
|
||||
@@ -35,7 +29,7 @@ export function getModelPage(params) {
|
||||
}
|
||||
|
||||
export function getModel(id: number) {
|
||||
return defHttp.get({ url: '/bpm/model/get?id=' + id })
|
||||
return defHttp.get({ url: `/bpm/model/get?id=${id}` })
|
||||
}
|
||||
|
||||
export function updateModel(data: ModelVO) {
|
||||
@@ -43,7 +37,11 @@ export function updateModel(data: ModelVO) {
|
||||
}
|
||||
|
||||
// 任务状态修改
|
||||
export function updateModelState(data) {
|
||||
export function updateModelState(id: number, state: number) {
|
||||
const data = {
|
||||
id,
|
||||
state,
|
||||
}
|
||||
return defHttp.put({ url: '/bpm/model/update-state', data })
|
||||
}
|
||||
|
||||
@@ -52,19 +50,13 @@ export function createModel(data: ModelVO) {
|
||||
}
|
||||
|
||||
export function deleteModel(id: number) {
|
||||
return defHttp.delete({ url: '/bpm/model/delete?id=' + id })
|
||||
return defHttp.delete({ url: `/bpm/model/delete?id=${id}` })
|
||||
}
|
||||
|
||||
export function deployModel(id: number) {
|
||||
return defHttp.post({ url: '/bpm/model/deploy?id=' + id })
|
||||
return defHttp.post({ url: `/bpm/model/deploy?id=${id}` })
|
||||
}
|
||||
|
||||
export function importModel(params: UploadFileParams, onUploadProgress: (progressEvent: AxiosProgressEvent) => void) {
|
||||
return defHttp.uploadFile<UploadApiResult>(
|
||||
{
|
||||
url: apiUrl + '/bpm/model/import',
|
||||
onUploadProgress
|
||||
},
|
||||
params
|
||||
)
|
||||
export function importModel(data) {
|
||||
return defHttp.post({ url: '/bpm/model/import', data })
|
||||
}
|
||||
|
||||
@@ -1,40 +1,21 @@
|
||||
import { defHttp } from '@/utils/http/axios'
|
||||
|
||||
export type task = {
|
||||
id: string
|
||||
name: string
|
||||
}
|
||||
export type ProcessInstanceVO = {
|
||||
id: number
|
||||
name: string
|
||||
processDefinitionId: string
|
||||
category: string
|
||||
result: number
|
||||
tasks: task[]
|
||||
fields: string[]
|
||||
status: number
|
||||
remark: string
|
||||
businessKey: string
|
||||
createTime: string
|
||||
endTime: string
|
||||
}
|
||||
|
||||
export function getMyProcessInstancePage(params) {
|
||||
return defHttp.get({ url: '/bpm/process-instance/my-page', params })
|
||||
}
|
||||
|
||||
export function createProcessInstance(data: ProcessInstanceVO) {
|
||||
export function createProcessInstance(data) {
|
||||
return defHttp.post({ url: '/bpm/process-instance/create', data })
|
||||
}
|
||||
|
||||
export function cancelProcessInstance(id: number, reason: string) {
|
||||
const data = {
|
||||
id: id,
|
||||
reason: reason
|
||||
id,
|
||||
reason,
|
||||
}
|
||||
return defHttp.delete({ url: '/bpm/process-instance/cancel', data })
|
||||
}
|
||||
|
||||
export function getProcessInstance(id: number) {
|
||||
return defHttp.get({ url: '/bpm/process-instance/get?id=' + id })
|
||||
return defHttp.get({ url: `/bpm/process-instance/get?id=${id}` })
|
||||
}
|
||||
|
||||
@@ -29,6 +29,11 @@ export function updateTaskAssignee(data) {
|
||||
|
||||
export function getTaskListByProcessInstanceId(processInstanceId) {
|
||||
return defHttp.get({
|
||||
url: '/bpm/task/list-by-process-instance-id?processInstanceId=' + processInstanceId
|
||||
url: `/bpm/task/list-by-process-instance-id?processInstanceId=${processInstanceId}`,
|
||||
})
|
||||
}
|
||||
|
||||
// 导出任务
|
||||
export async function exportTask(params) {
|
||||
return await defHttp.download({ url: '/bpm/task/export', params })
|
||||
}
|
||||
|
||||
@@ -1,39 +0,0 @@
|
||||
export type FormVO = {
|
||||
id: number
|
||||
name: string
|
||||
conf: string
|
||||
fields: string[]
|
||||
status: number
|
||||
remark: string
|
||||
createTime: string
|
||||
}
|
||||
|
||||
export type TaskProcessVO = {
|
||||
id: string
|
||||
name: string
|
||||
startUserId: number
|
||||
startUserNickname: string
|
||||
processDefinitionId: string
|
||||
}
|
||||
|
||||
export type TaskTodoVO = {
|
||||
id: string
|
||||
name: string
|
||||
claimTime: string
|
||||
createTime: string
|
||||
suspensionState: number
|
||||
processInstance: TaskProcessVO
|
||||
}
|
||||
|
||||
export type TaskDoneVO = {
|
||||
id: string
|
||||
name: string
|
||||
claimTime: string
|
||||
createTime: string
|
||||
endTime: string
|
||||
durationInMillis: number
|
||||
suspensionState: number
|
||||
result: number
|
||||
reason: string
|
||||
processInstance: TaskProcessVO
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
import { defHttp } from '@/utils/http/axios'
|
||||
|
||||
export type TaskAssignVO = {
|
||||
export interface TaskAssignVO {
|
||||
id: number
|
||||
modelId: string
|
||||
processDefinitionId: string
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { defHttp } from '@/utils/http/axios'
|
||||
|
||||
export type UserGroupVO = {
|
||||
export interface UserGroupVO {
|
||||
id: number
|
||||
name: string
|
||||
description: string
|
||||
@@ -22,12 +22,12 @@ export function updateUserGroup(data: UserGroupVO) {
|
||||
|
||||
// 删除用户组
|
||||
export function deleteUserGroup(id: number) {
|
||||
return defHttp.delete({ url: '/bpm/user-group/delete?id=' + id })
|
||||
return defHttp.delete({ url: `/bpm/user-group/delete?id=${id}` })
|
||||
}
|
||||
|
||||
// 获得用户组
|
||||
export function getUserGroup(id: number) {
|
||||
return defHttp.get({ url: '/bpm/user-group/get?id=' + id })
|
||||
return defHttp.get({ url: `/bpm/user-group/get?id=${id}` })
|
||||
}
|
||||
|
||||
// 获得用户组分页
|
||||
|
||||
@@ -53,7 +53,7 @@ export function getApiErrorLogPage(params: ApiErrorLogPageReqVO) {
|
||||
// 更新 API 错误日志的处理状态
|
||||
export function updateApiErrorLogProcess(id: number, processStatus: number) {
|
||||
return defHttp.put({
|
||||
url: '/infra/api-error-log/update-status?id=' + id + '&processStatus=' + processStatus
|
||||
url: `/infra/api-error-log/update-status?id=${id}&processStatus=${processStatus}`,
|
||||
})
|
||||
}
|
||||
|
||||
@@ -62,8 +62,8 @@ export function exportApiErrorLog(params: ApiErrorLogExportReqVO) {
|
||||
return defHttp.download(
|
||||
{
|
||||
url: '/infra/api-error-log/export-excel',
|
||||
params
|
||||
params,
|
||||
},
|
||||
'错误日志.xls'
|
||||
'错误日志.xls',
|
||||
)
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import type { CodegenCreateListReqVO, CodegenUpdateReqVO } from './types'
|
||||
import { defHttp } from '@/utils/http/axios'
|
||||
import type { CodegenUpdateReqVO, CodegenCreateListReqVO } from './types'
|
||||
|
||||
// 查询列表代码生成表定义
|
||||
export function getCodegenTablePage(params) {
|
||||
@@ -8,7 +8,7 @@ export function getCodegenTablePage(params) {
|
||||
|
||||
// 查询详情代码生成表定义
|
||||
export function getCodegenTable(id: number) {
|
||||
return defHttp.get({ url: '/infra/codegen/detail?tableId=' + id })
|
||||
return defHttp.get({ url: `/infra/codegen/detail?tableId=${id}` })
|
||||
}
|
||||
|
||||
// 新增代码生成表定义
|
||||
@@ -23,22 +23,22 @@ export function updateCodegenTable(data: CodegenUpdateReqVO) {
|
||||
|
||||
// 基于数据库的表结构,同步数据库的表和字段定义
|
||||
export function syncCodegenFromDB(id: number) {
|
||||
return defHttp.put({ url: '/infra/codegen/sync-from-db?tableId=' + id })
|
||||
return defHttp.put({ url: `/infra/codegen/sync-from-db?tableId=${id}` })
|
||||
}
|
||||
|
||||
// 基于 SQL 建表语句,同步数据库的表和字段定义
|
||||
export function syncCodegenFromSQL(id: number, sql: string) {
|
||||
return defHttp.put({ url: '/infra/codegen/sync-from-sql?tableId=' + id + '&sql=' + sql })
|
||||
return defHttp.put({ url: `/infra/codegen/sync-from-sql?tableId=${id}&sql=${sql}` })
|
||||
}
|
||||
|
||||
// 预览生成代码
|
||||
export function previewCodegen(id: number) {
|
||||
return defHttp.get({ url: '/infra/codegen/preview?tableId=' + id })
|
||||
return defHttp.get({ url: `/infra/codegen/preview?tableId=${id}` })
|
||||
}
|
||||
|
||||
// 下载生成代码
|
||||
export function downloadCodegen(data) {
|
||||
return defHttp.download({ url: '/infra/codegen/download?tableId=' + data.id }, data.tableName + '.zip')
|
||||
return defHttp.download({ url: `/infra/codegen/download?tableId=${data.id}` }, `${data.tableName}.zip`)
|
||||
}
|
||||
|
||||
// 获得表定义
|
||||
@@ -53,5 +53,5 @@ export function createCodegenList(data) {
|
||||
|
||||
// 删除代码生成表定义
|
||||
export function deleteCodegenTable(id: number) {
|
||||
return defHttp.delete({ url: '/infra/codegen/delete?tableId=' + id })
|
||||
return defHttp.delete({ url: `/infra/codegen/delete?tableId=${id}` })
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
export type CodegenTableVO = {
|
||||
export interface CodegenTableVO {
|
||||
id: number
|
||||
tableId: number
|
||||
isParentMenuIdValid: boolean
|
||||
@@ -18,7 +18,7 @@ export type CodegenTableVO = {
|
||||
parentMenuId: number
|
||||
}
|
||||
|
||||
export type CodegenColumnVO = {
|
||||
export interface CodegenColumnVO {
|
||||
id: number
|
||||
tableId: number
|
||||
columnName: string
|
||||
@@ -39,23 +39,23 @@ export type CodegenColumnVO = {
|
||||
listOperationResult: number
|
||||
htmlType: string
|
||||
}
|
||||
export type DatabaseTableVO = {
|
||||
export interface DatabaseTableVO {
|
||||
name: string
|
||||
comment: string
|
||||
}
|
||||
export type CodegenDetailVO = {
|
||||
export interface CodegenDetailVO {
|
||||
table: CodegenTableVO
|
||||
columns: CodegenColumnVO[]
|
||||
}
|
||||
export type CodegenPreviewVO = {
|
||||
export interface CodegenPreviewVO {
|
||||
filePath: string
|
||||
code: string
|
||||
}
|
||||
export type CodegenUpdateReqVO = {
|
||||
export interface CodegenUpdateReqVO {
|
||||
table: CodegenTableVO
|
||||
columns: CodegenColumnVO[]
|
||||
}
|
||||
export type CodegenCreateListReqVO = {
|
||||
export interface CodegenCreateListReqVO {
|
||||
dataSourceConfigId: number
|
||||
tableNames: string[]
|
||||
}
|
||||
|
||||
@@ -33,12 +33,12 @@ export function getConfigPage(params: ConfigPageReqVO) {
|
||||
|
||||
// 查询参数详情
|
||||
export function getConfig(id: number) {
|
||||
return defHttp.get({ url: '/infra/config/get?id=' + id })
|
||||
return defHttp.get({ url: `/infra/config/get?id=${id}` })
|
||||
}
|
||||
|
||||
// 根据参数键名查询参数值
|
||||
export function getConfigKey(configKey: string) {
|
||||
return defHttp.get({ url: '/infra/config/get-value-by-key?key=' + configKey })
|
||||
return defHttp.get({ url: `/infra/config/get-value-by-key?key=${configKey}` })
|
||||
}
|
||||
|
||||
// 新增参数
|
||||
@@ -53,7 +53,7 @@ export function updateConfig(data: ConfigVO) {
|
||||
|
||||
// 删除参数
|
||||
export function deleteConfig(id: number) {
|
||||
return defHttp.delete({ url: '/infra/config/delete?id=' + id })
|
||||
return defHttp.delete({ url: `/infra/config/delete?id=${id}` })
|
||||
}
|
||||
|
||||
// 导出参数
|
||||
|
||||
@@ -16,7 +16,7 @@ export function getDataSourceConfigList() {
|
||||
|
||||
// 查询数据源配置详情
|
||||
export function getDataSourceConfig(id: number) {
|
||||
return defHttp.get({ url: '/infra/data-source-config/get?id=' + id })
|
||||
return defHttp.get({ url: `/infra/data-source-config/get?id=${id}` })
|
||||
}
|
||||
|
||||
// 新增数据源配置
|
||||
@@ -31,5 +31,5 @@ export function updateDataSourceConfig(data: DataSourceConfigVO) {
|
||||
|
||||
// 删除数据源配置
|
||||
export function deleteDataSourceConfig(id: number) {
|
||||
return defHttp.delete({ url: '/infra/data-source-config/delete?id=' + id })
|
||||
return defHttp.delete({ url: `/infra/data-source-config/delete?id=${id}` })
|
||||
}
|
||||
|
||||
@@ -24,5 +24,5 @@ export function getFilePage(params: FilePageReqVO) {
|
||||
|
||||
// 删除文件
|
||||
export function deleteFile(id: number) {
|
||||
return defHttp.delete({ url: '/infra/file/delete?id=' + id })
|
||||
return defHttp.delete({ url: `/infra/file/delete?id=${id}` })
|
||||
}
|
||||
|
||||
@@ -37,12 +37,12 @@ export function getFileConfigPage(params: FileConfigPageReqVO) {
|
||||
|
||||
// 查询文件配置详情
|
||||
export function getFileConfig(id: number) {
|
||||
return defHttp.get({ url: '/infra/file-config/get?id=' + id })
|
||||
return defHttp.get({ url: `/infra/file-config/get?id=${id}` })
|
||||
}
|
||||
|
||||
// 更新文件配置为主配置
|
||||
export function updateFileConfigMaster(id: number) {
|
||||
return defHttp.put({ url: '/infra/file-config/update-master?id=' + id })
|
||||
return defHttp.put({ url: `/infra/file-config/update-master?id=${id}` })
|
||||
}
|
||||
|
||||
// 新增文件配置
|
||||
@@ -57,10 +57,10 @@ export function updateFileConfig(data: FileConfigVO) {
|
||||
|
||||
// 删除文件配置
|
||||
export function deleteFileConfig(id: number) {
|
||||
return defHttp.delete({ url: '/infra/file-config/delete?id=' + id })
|
||||
return defHttp.delete({ url: `/infra/file-config/delete?id=${id}` })
|
||||
}
|
||||
|
||||
// 测试文件配置
|
||||
export function testFileConfig(id: number) {
|
||||
return defHttp.get({ url: '/infra/file-config/test?id=' + id })
|
||||
return defHttp.get({ url: `/infra/file-config/test?id=${id}` })
|
||||
}
|
||||
|
||||
@@ -32,7 +32,7 @@ export function getJobPage(params: JobPageReqVO) {
|
||||
|
||||
// 任务详情
|
||||
export function getJob(id: number) {
|
||||
return defHttp.get({ url: '/infra/job/get?id=' + id })
|
||||
return defHttp.get({ url: `/infra/job/get?id=${id}` })
|
||||
}
|
||||
|
||||
// 新增任务
|
||||
@@ -47,7 +47,7 @@ export function updateJob(data: JobVO) {
|
||||
|
||||
// 删除定时任务调度
|
||||
export function deleteJob(id: number) {
|
||||
return defHttp.delete({ url: '/infra/job/delete?id=' + id })
|
||||
return defHttp.delete({ url: `/infra/job/delete?id=${id}` })
|
||||
}
|
||||
|
||||
// 导出定时任务调度
|
||||
@@ -57,19 +57,15 @@ export function exportJob(params: JobExportReqVO) {
|
||||
|
||||
// 任务状态修改
|
||||
export function updateJobStatus(id: number, status: number) {
|
||||
const params = {
|
||||
id,
|
||||
status
|
||||
}
|
||||
return defHttp.put({ url: '/infra/job/update-status', params })
|
||||
return defHttp.put({ url: `/infra/job/update-status?id=${id}&status=${status}` })
|
||||
}
|
||||
|
||||
// 定时任务立即执行一次
|
||||
export function runJob(id: number) {
|
||||
return defHttp.put({ url: '/infra/job/trigger?id=' + id })
|
||||
return defHttp.put({ url: `/infra/job/trigger?id=${id}` })
|
||||
}
|
||||
|
||||
// 获得定时任务的下 n 次执行时间
|
||||
export function getJobNextTimes(id: number) {
|
||||
return defHttp.get({ url: '/infra/job/get_next_times?id=' + id })
|
||||
return defHttp.get({ url: `/infra/job/get_next_times?id=${id}` })
|
||||
}
|
||||
|
||||
@@ -37,7 +37,7 @@ export function getJobLogPage(params: JobLogPageReqVO) {
|
||||
|
||||
// 任务日志详情
|
||||
export function getJobLog(id: number) {
|
||||
return defHttp.get({ url: '/infra/job-log/get?id=' + id })
|
||||
return defHttp.get({ url: `/infra/job-log/get?id=${id}` })
|
||||
}
|
||||
|
||||
// 导出定时任务日志
|
||||
|
||||
@@ -6,36 +6,3 @@ import { defHttp } from '@/utils/http/axios'
|
||||
export function getCache() {
|
||||
return defHttp.get({ url: '/infra/redis/get-monitor-info' })
|
||||
}
|
||||
// 获取模块
|
||||
export function getKeyDefineList() {
|
||||
return defHttp.get({ url: '/infra/redis/get-key-define-list' })
|
||||
}
|
||||
/**
|
||||
* 获取redis key列表
|
||||
*/
|
||||
export function getKeyList(keyTemplate: string) {
|
||||
return defHttp.get({
|
||||
url: '/infra/redis/get-key-list',
|
||||
params: {
|
||||
keyTemplate
|
||||
}
|
||||
})
|
||||
}
|
||||
// 获取缓存内容
|
||||
export function getKeyValue(key: string) {
|
||||
return defHttp.get({ url: '/infra/redis/get-key-value?key=' + key })
|
||||
}
|
||||
|
||||
// 根据键名删除缓存
|
||||
export function deleteKey(key: string) {
|
||||
return defHttp.delete({ url: '/infra/redis/delete-key?key=' + key })
|
||||
}
|
||||
|
||||
export function deleteKeys(keyTemplate: string) {
|
||||
return defHttp.delete({
|
||||
url: '/infra/redis/delete-keys?',
|
||||
params: {
|
||||
keyTemplate
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
15
src/api/member/address/index.ts
Normal file
15
src/api/member/address/index.ts
Normal file
@@ -0,0 +1,15 @@
|
||||
import { defHttp } from '@/utils/http/axios'
|
||||
|
||||
export interface AddressVO {
|
||||
id: number
|
||||
name: string
|
||||
mobile: string
|
||||
areaId: number
|
||||
detailAddress: string
|
||||
defaultStatus: boolean
|
||||
}
|
||||
|
||||
// 查询用户收件地址列表
|
||||
export function getAddressList(params) {
|
||||
return defHttp.get({ url: '/member/address/list', params })
|
||||
}
|
||||
38
src/api/member/group/index.ts
Normal file
38
src/api/member/group/index.ts
Normal file
@@ -0,0 +1,38 @@
|
||||
import { defHttp } from '@/utils/http/axios'
|
||||
|
||||
export interface GroupVO {
|
||||
id: number
|
||||
name: string
|
||||
remark: string
|
||||
status: number
|
||||
}
|
||||
|
||||
// 查询用户分组列表
|
||||
export function getGroupPage(params: any) {
|
||||
return defHttp.get({ url: '/member/group/page', params })
|
||||
}
|
||||
|
||||
// 查询用户分组详情
|
||||
export function getGroup(id: number) {
|
||||
return defHttp.get({ url: `/member/group/get?id=${id}` })
|
||||
}
|
||||
|
||||
// 新增用户分组
|
||||
export function createGroup(data: GroupVO) {
|
||||
return defHttp.post({ url: '/member/group/create', data })
|
||||
}
|
||||
|
||||
// 查询用户分组 - 精简信息列表
|
||||
export function getSimpleGroupList() {
|
||||
return defHttp.get({ url: '/member/group/list-all-simple' })
|
||||
}
|
||||
|
||||
// 修改用户分组
|
||||
export function updateGroup(data: GroupVO) {
|
||||
return defHttp.put({ url: '/member/group/update', data })
|
||||
}
|
||||
|
||||
// 删除用户分组
|
||||
export function deleteGroup(id: number) {
|
||||
return defHttp.delete({ url: `/member/group/delete?id=${id}` })
|
||||
}
|
||||
42
src/api/member/level/index.ts
Normal file
42
src/api/member/level/index.ts
Normal file
@@ -0,0 +1,42 @@
|
||||
import { defHttp } from '@/utils/http/axios'
|
||||
|
||||
export interface LevelVO {
|
||||
id: number
|
||||
name: string
|
||||
experience: number
|
||||
value: number
|
||||
discountPercent: number
|
||||
icon: string
|
||||
bgUrl: string
|
||||
status: number
|
||||
}
|
||||
|
||||
// 查询会员等级列表
|
||||
export function getLevelList(params) {
|
||||
return defHttp.get({ url: '/member/level/list', params })
|
||||
}
|
||||
|
||||
// 查询会员等级详情
|
||||
export function getLevel(id: number) {
|
||||
return defHttp.get({ url: `/member/level/get?id=${id}` })
|
||||
}
|
||||
|
||||
// 查询会员等级 - 精简信息列表
|
||||
export function getSimpleLevelList() {
|
||||
return defHttp.get({ url: '/member/level/list-all-simple' })
|
||||
}
|
||||
|
||||
// 新增会员等级
|
||||
export function createLevel(data: LevelVO) {
|
||||
return defHttp.post({ url: '/member/level/create', data })
|
||||
}
|
||||
|
||||
// 修改会员等级
|
||||
export function updateLevel(data: LevelVO) {
|
||||
return defHttp.put({ url: '/member/level/update', data })
|
||||
}
|
||||
|
||||
// 删除会员等级
|
||||
export function deleteLevel(id: number) {
|
||||
return defHttp.delete({ url: `/member/level/delete?id=${id}` })
|
||||
}
|
||||
19
src/api/member/point/config/index.ts
Normal file
19
src/api/member/point/config/index.ts
Normal file
@@ -0,0 +1,19 @@
|
||||
import { defHttp } from '@/utils/http/axios'
|
||||
|
||||
export interface ConfigVO {
|
||||
id: number
|
||||
tradeDeductEnable: number
|
||||
tradeDeductUnitPrice: number
|
||||
tradeDeductMaxPrice: number
|
||||
tradeGivePoint: number
|
||||
}
|
||||
|
||||
// 查询积分设置详情
|
||||
export function getConfig() {
|
||||
return defHttp.get({ url: '/member/point/config/get' })
|
||||
}
|
||||
|
||||
// 新增修改积分设置
|
||||
export function saveConfig(data: ConfigVO) {
|
||||
return defHttp.put({ url: '/member/point/config/save', data })
|
||||
}
|
||||
21
src/api/member/point/record/index.ts
Normal file
21
src/api/member/point/record/index.ts
Normal file
@@ -0,0 +1,21 @@
|
||||
import { defHttp } from '@/utils/http/axios'
|
||||
|
||||
export interface RecordVO {
|
||||
id: number
|
||||
bizId: string
|
||||
bizType: string
|
||||
title: string
|
||||
description: string
|
||||
point: number
|
||||
totalPoint: number
|
||||
status: number
|
||||
userId: number
|
||||
freezingTime: Date
|
||||
thawingTime: Date
|
||||
createDate: Date
|
||||
}
|
||||
|
||||
// 查询用户积分记录列表
|
||||
export function getRecordPage(params) {
|
||||
return defHttp.get({ url: '/member/point/record/page', params })
|
||||
}
|
||||
33
src/api/member/signin/config/index.ts
Normal file
33
src/api/member/signin/config/index.ts
Normal file
@@ -0,0 +1,33 @@
|
||||
import { defHttp } from '@/utils/http/axios'
|
||||
|
||||
export interface SignInConfigVO {
|
||||
id: number
|
||||
day: number | null
|
||||
point: number | null
|
||||
enable: boolean | null
|
||||
}
|
||||
|
||||
// 查询积分签到规则列表
|
||||
export function getSignInConfigList() {
|
||||
return defHttp.get({ url: '/member/point/sign-in-config/list' })
|
||||
}
|
||||
|
||||
// 查询积分签到规则详情
|
||||
export function getSignInConfig(id: number) {
|
||||
return defHttp.get({ url: `/member/point/sign-in-config/get?id=${id}` })
|
||||
}
|
||||
|
||||
// 新增积分签到规则
|
||||
export function createSignInConfig(data: SignInConfigVO) {
|
||||
return defHttp.post({ url: '/member/point/sign-in-config/create', data })
|
||||
}
|
||||
|
||||
// 修改积分签到规则
|
||||
export function updateSignInConfig(data: SignInConfigVO) {
|
||||
return defHttp.put({ url: '/member/point/sign-in-config/update', data })
|
||||
}
|
||||
|
||||
// 删除积分签到规则
|
||||
export function deleteSignInConfig(id: number) {
|
||||
return defHttp.delete({ url: `/member/point/sign-in-config/delete?id=${id}` })
|
||||
}
|
||||
13
src/api/member/signin/record/index.ts
Normal file
13
src/api/member/signin/record/index.ts
Normal file
@@ -0,0 +1,13 @@
|
||||
import { defHttp } from '@/utils/http/axios'
|
||||
|
||||
export interface SignInRecordVO {
|
||||
id: number
|
||||
userId: number
|
||||
day: number
|
||||
point: number
|
||||
}
|
||||
|
||||
// 查询用户签到积分列表
|
||||
export function getSignInRecordPage(params) {
|
||||
return defHttp.get({ url: '/member/point/sign-in-record/page', params })
|
||||
}
|
||||
36
src/api/member/tag/index.ts
Normal file
36
src/api/member/tag/index.ts
Normal file
@@ -0,0 +1,36 @@
|
||||
import { defHttp } from '@/utils/http/axios'
|
||||
|
||||
export interface TagVO {
|
||||
id: number
|
||||
name: string
|
||||
}
|
||||
|
||||
// 查询会员标签列表
|
||||
export function getMemberTagPage(params) {
|
||||
return defHttp.get({ url: '/member/tag/page', params })
|
||||
}
|
||||
|
||||
// 查询会员标签详情
|
||||
export function getMemberTag(id: number) {
|
||||
return defHttp.get({ url: `/member/tag/get?id=${id}` })
|
||||
}
|
||||
|
||||
// 查询会员标签 - 精简信息列表
|
||||
export function getSimpleTagList() {
|
||||
return defHttp.get({ url: '/member/tag/list-all-simple' })
|
||||
}
|
||||
|
||||
// 新增会员标签
|
||||
export function createMemberTag(data: TagVO) {
|
||||
return defHttp.post({ url: '/member/tag/create', data })
|
||||
}
|
||||
|
||||
// 修改会员标签
|
||||
export function updateMemberTag(data: TagVO) {
|
||||
return defHttp.put({ url: '/member/tag/update', data })
|
||||
}
|
||||
|
||||
// 删除会员标签
|
||||
export function deleteMemberTag(id: number) {
|
||||
return defHttp.delete({ url: `/member/tag/delete?id=${id}` })
|
||||
}
|
||||
39
src/api/member/user/index.ts
Normal file
39
src/api/member/user/index.ts
Normal file
@@ -0,0 +1,39 @@
|
||||
import { defHttp } from '@/utils/http/axios'
|
||||
|
||||
export interface UserVO {
|
||||
id: number
|
||||
mobile: string
|
||||
password: string
|
||||
status: number
|
||||
registerIp: string
|
||||
loginIp: string
|
||||
loginDate: Date
|
||||
nickname: string
|
||||
avatar: string
|
||||
name: string
|
||||
sex: number
|
||||
areaId: number
|
||||
birthday: Date
|
||||
mark: string
|
||||
createTime: Date
|
||||
}
|
||||
|
||||
// 查询会员用户列表
|
||||
export function getUserPage(params) {
|
||||
return defHttp.get({ url: '/member/user/page', params })
|
||||
}
|
||||
|
||||
// 查询会员用户详情
|
||||
export function getUser(id: number) {
|
||||
return defHttp.get({ url: `/member/user/get?id=${id}` })
|
||||
}
|
||||
|
||||
// 修改会员用户
|
||||
export function updateUser(data: UserVO) {
|
||||
return defHttp.put({ url: '/member/user/update', data })
|
||||
}
|
||||
|
||||
// 修改会员用户等级
|
||||
export function updateUserLevel(data: any) {
|
||||
return defHttp.put({ url: '/member/user/update-level', data })
|
||||
}
|
||||
@@ -17,12 +17,12 @@ export function updateAccount(data) {
|
||||
|
||||
// 删除公众号账号
|
||||
export function deleteAccount(id) {
|
||||
return defHttp.delete({ url: '/mp/account/delete?id=' + id, method: 'delete' })
|
||||
return defHttp.delete({ url: `/mp/account/delete?id=${id}`, method: 'delete' })
|
||||
}
|
||||
|
||||
// 获得公众号账号
|
||||
export function getAccount(id) {
|
||||
return defHttp.get({ url: '/mp/account/get?id=' + id })
|
||||
return defHttp.get({ url: `/mp/account/get?id=${id}` })
|
||||
}
|
||||
|
||||
// 获得公众号账号分页
|
||||
@@ -37,10 +37,10 @@ export function getSimpleAccounts() {
|
||||
|
||||
// 生成公众号二维码
|
||||
export function generateAccountQrCode(id) {
|
||||
return defHttp.put({ url: '/mp/account/generate-qr-code?id=' + id })
|
||||
return defHttp.put({ url: `/mp/account/generate-qr-code?id=${id}` })
|
||||
}
|
||||
|
||||
// 清空公众号 API 配额
|
||||
export function clearAccountQuota(id) {
|
||||
return defHttp.put({ url: '/mp/account/clear-quota?id=' + id })
|
||||
return defHttp.put({ url: `/mp/account/clear-quota?id=${id}` })
|
||||
}
|
||||
|
||||
@@ -12,12 +12,12 @@ export function updateAutoReply(data) {
|
||||
|
||||
// 删除公众号的自动回复
|
||||
export function deleteAutoReply(id) {
|
||||
return defHttp.delete({ url: '/mp/auto-reply/delete?id=' + id })
|
||||
return defHttp.delete({ url: `/mp/auto-reply/delete?id=${id}` })
|
||||
}
|
||||
|
||||
// 获得公众号的自动回复
|
||||
export function getAutoReply(id) {
|
||||
return defHttp.get({ url: '/mp/auto-reply/get?id=' + id })
|
||||
return defHttp.get({ url: `/mp/auto-reply/get?id=${id}` })
|
||||
}
|
||||
|
||||
// 获得公众号的自动回复分页
|
||||
|
||||
@@ -8,19 +8,19 @@ export function getDraftPage(params) {
|
||||
// 创建公众号草稿
|
||||
export function createDraft(accountId, articles) {
|
||||
return defHttp.post({
|
||||
url: '/mp/draft/create?accountId=' + accountId,
|
||||
url: `/mp/draft/create?accountId=${accountId}`,
|
||||
data: {
|
||||
articles
|
||||
}
|
||||
articles,
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
// 更新公众号草稿
|
||||
export function updateDraft(accountId, mediaId, articles) {
|
||||
return defHttp.put({ url: '/mp/draft/update?accountId=' + accountId + '&mediaId=' + mediaId, data: articles })
|
||||
return defHttp.put({ url: `/mp/draft/update?accountId=${accountId}&mediaId=${mediaId}`, data: articles })
|
||||
}
|
||||
|
||||
// 删除公众号草稿
|
||||
export function deleteDraft(accountId, mediaId) {
|
||||
return defHttp.delete({ url: '/mp/draft/delete?accountId=' + accountId + '&mediaId=' + mediaId })
|
||||
return defHttp.delete({ url: `/mp/draft/delete?accountId=${accountId}&mediaId=${mediaId}` })
|
||||
}
|
||||
|
||||
@@ -7,10 +7,10 @@ export function getFreePublishPage(params) {
|
||||
|
||||
// 删除公众号素材
|
||||
export function deleteFreePublish(accountId, articleId) {
|
||||
return defHttp.delete({ url: '/mp/free-publish/delete?accountId=' + accountId + '&&articleId=' + articleId })
|
||||
return defHttp.delete({ url: `/mp/free-publish/delete?accountId=${accountId}&&articleId=${articleId}` })
|
||||
}
|
||||
|
||||
// 发布公众号素材
|
||||
export function submitFreePublish(accountId, mediaId) {
|
||||
return defHttp.post({ url: '/mp/free-publish/submit?accountId=' + accountId + '&&mediaId=' + mediaId })
|
||||
return defHttp.post({ url: `/mp/free-publish/submit?accountId=${accountId}&&mediaId=${mediaId}` })
|
||||
}
|
||||
|
||||
@@ -7,5 +7,5 @@ export function getMaterialPage(params) {
|
||||
|
||||
// 删除公众号永久素材
|
||||
export function deletePermanentMaterial(id) {
|
||||
return defHttp.delete({ url: '/mp/material/delete-permanent?id=' + id })
|
||||
return defHttp.delete({ url: `/mp/material/delete-permanent?id=${id}` })
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@ import { defHttp } from '@/utils/http/axios'
|
||||
|
||||
// 获得公众号菜单列表
|
||||
export function getMenuList(accountId) {
|
||||
return defHttp.get({ url: '/mp/menu/list?accountId=' + accountId })
|
||||
return defHttp.get({ url: `/mp/menu/list?accountId=${accountId}` })
|
||||
}
|
||||
|
||||
// 保存公众号菜单
|
||||
@@ -11,12 +11,12 @@ export function saveMenu(accountId, menus) {
|
||||
url: '/mp/menu/save',
|
||||
data: {
|
||||
accountId,
|
||||
menus
|
||||
}
|
||||
menus,
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
// 删除公众号菜单
|
||||
export function deleteMenu(accountId) {
|
||||
return defHttp.delete({ url: '/mp/menu/delete?accountId=' + accountId })
|
||||
return defHttp.delete({ url: `/mp/menu/delete?accountId=${accountId}` })
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@ export function updateUser(data) {
|
||||
|
||||
// 获得公众号粉丝
|
||||
export function getUser(id) {
|
||||
return defHttp.get({ url: '/mp/user/get?id=' + id })
|
||||
return defHttp.get({ url: `/mp/user/get?id=${id}` })
|
||||
}
|
||||
|
||||
// 获得公众号粉丝分页
|
||||
@@ -17,5 +17,5 @@ export function getUserPage(params) {
|
||||
|
||||
// 同步公众号粉丝
|
||||
export function syncUser(accountId) {
|
||||
return defHttp.post({ url: '/mp/tag/sync?accountId=' + accountId })
|
||||
return defHttp.post({ url: `/mp/user/sync?accountId=${accountId}` })
|
||||
}
|
||||
|
||||
@@ -12,12 +12,12 @@ export function updateTag(data) {
|
||||
|
||||
// 删除公众号标签
|
||||
export function deleteTag(id) {
|
||||
return defHttp.delete({ url: '/mp/tag/delete?id=' + id })
|
||||
return defHttp.delete({ url: `/mp/tag/delete?id=${id}` })
|
||||
}
|
||||
|
||||
// 获得公众号标签
|
||||
export function getTag(id) {
|
||||
return defHttp.get({ url: '/mp/tag/get?id=' + id })
|
||||
return defHttp.get({ url: `/mp/tag/get?id=${id}` })
|
||||
}
|
||||
|
||||
// 获得公众号标签分页
|
||||
@@ -32,5 +32,5 @@ export function getSimpleTags() {
|
||||
|
||||
// 同步公众号标签
|
||||
export function syncTag(accountId) {
|
||||
return defHttp.post({ url: '/mp/tag/sync?accountId=' + accountId })
|
||||
return defHttp.post({ url: `/mp/tag/sync?accountId=${accountId}` })
|
||||
}
|
||||
|
||||
@@ -22,16 +22,6 @@ export interface AppPageReqVO extends PageParam {
|
||||
createTime?: Date[]
|
||||
}
|
||||
|
||||
export interface AppExportReqVO {
|
||||
name?: string
|
||||
status?: number
|
||||
remark?: string
|
||||
payNotifyUrl?: string
|
||||
refundNotifyUrl?: string
|
||||
merchantName?: string
|
||||
createTime?: Date[]
|
||||
}
|
||||
|
||||
export interface AppUpdateStatusReqVO {
|
||||
id: number
|
||||
status: number
|
||||
@@ -44,7 +34,7 @@ export function getAppPage(params: AppPageReqVO) {
|
||||
|
||||
// 查询详情支付应用
|
||||
export function getApp(id: number) {
|
||||
return defHttp.get({ url: '/pay/app/get?id=' + id })
|
||||
return defHttp.get({ url: `/pay/app/get?id=${id}` })
|
||||
}
|
||||
|
||||
// 新增支付应用
|
||||
@@ -64,15 +54,10 @@ export function changeAppStatus(data: AppUpdateStatusReqVO) {
|
||||
|
||||
// 删除支付应用
|
||||
export function deleteApp(id: number) {
|
||||
return defHttp.delete({ url: '/pay/app/delete?id=' + id })
|
||||
return defHttp.delete({ url: `/pay/app/delete?id=${id}` })
|
||||
}
|
||||
|
||||
// 导出支付应用
|
||||
export function exportApp(params: AppExportReqVO) {
|
||||
return defHttp.download({ url: '/pay/app/export-excel', params }, '支付应用.xls')
|
||||
}
|
||||
|
||||
// 根据商ID称搜索应用列表
|
||||
export function getAppListByMerchantId(merchantId: number) {
|
||||
return defHttp.get({ url: '/pay/app/list-merchant-id', params: { merchantId: merchantId } })
|
||||
// 获得支付应用列表
|
||||
export function getAppList() {
|
||||
return defHttp.get({ url: '/pay/app/list' })
|
||||
}
|
||||
|
||||
@@ -35,18 +35,17 @@ export interface ChannelExportReqVO {
|
||||
}
|
||||
|
||||
// 查询列表支付渠道
|
||||
export function getChannelPage(params: ChannelPageReqVO) {
|
||||
export function getChannelPage(params: PageParam) {
|
||||
return defHttp.get({ url: '/pay/channel/page', params })
|
||||
}
|
||||
|
||||
// 查询详情支付渠道
|
||||
export function getChannel(merchantId: number, appId: string, code: string) {
|
||||
export function getChannel(appId: string, code: string) {
|
||||
const params = {
|
||||
merchantId: merchantId,
|
||||
appId: appId,
|
||||
code: code
|
||||
appId,
|
||||
code,
|
||||
}
|
||||
return defHttp.get({ url: '/pay/channel/get-channel', params: params })
|
||||
return defHttp.get({ url: '/pay/channel/get', params })
|
||||
}
|
||||
|
||||
// 新增支付渠道
|
||||
@@ -61,10 +60,10 @@ export function updateChannel(data: ChannelVO) {
|
||||
|
||||
// 删除支付渠道
|
||||
export function deleteChannel(id: number) {
|
||||
return defHttp.delete({ url: '/pay/channel/delete?id=' + id })
|
||||
return defHttp.delete({ url: `/pay/channel/delete?id=${id}` })
|
||||
}
|
||||
|
||||
// 导出支付渠道
|
||||
export function exportChannel(params: ChannelExportReqVO) {
|
||||
export function exportChannel(params) {
|
||||
return defHttp.download({ url: '/pay/channel/export-excel', params }, '支付渠道.xls')
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@ export function getDemoOrderPage(params) {
|
||||
|
||||
// 获得示例订单
|
||||
export function getDemoOrder(id: number) {
|
||||
return defHttp.get({ url: '/pay/demo-order/get?id=' + id })
|
||||
return defHttp.get({ url: `/pay/demo-order/get?id=${id}` })
|
||||
}
|
||||
|
||||
// 创建示例订单
|
||||
@@ -17,5 +17,5 @@ export function createDemoOrder(data) {
|
||||
|
||||
// 退款示例订单
|
||||
export function refundDemoOrder(id: number) {
|
||||
return defHttp.put({ url: '/pay/demo-order/refund?id=' + id })
|
||||
return defHttp.put({ url: `/pay/demo-order/refund?id=${id}` })
|
||||
}
|
||||
|
||||
@@ -1,77 +0,0 @@
|
||||
import { defHttp } from '@/utils/http/axios'
|
||||
|
||||
export interface MerchantVO {
|
||||
id: number
|
||||
no: string
|
||||
name: string
|
||||
shortName: string
|
||||
status: number
|
||||
remark: string
|
||||
createTime: Date
|
||||
}
|
||||
|
||||
export interface MerchantPageReqVO extends PageParam {
|
||||
no?: string
|
||||
name?: string
|
||||
shortName?: string
|
||||
status?: number
|
||||
remark?: string
|
||||
createTime?: Date[]
|
||||
}
|
||||
|
||||
export interface MerchantExportReqVO {
|
||||
no?: string
|
||||
name?: string
|
||||
shortName?: string
|
||||
status?: number
|
||||
remark?: string
|
||||
createTime?: Date[]
|
||||
}
|
||||
|
||||
// 查询列表支付商户
|
||||
export function getMerchantPage(params: MerchantPageReqVO) {
|
||||
return defHttp.get({ url: '/pay/merchant/page', params })
|
||||
}
|
||||
|
||||
// 查询详情支付商户
|
||||
export function getMerchant(id: number) {
|
||||
return defHttp.get({ url: '/pay/merchant/get?id=' + id })
|
||||
}
|
||||
|
||||
// 根据商户名称搜索商户列表
|
||||
export function getMerchantListByName(name: string) {
|
||||
return defHttp.get({
|
||||
url: '/pay/merchant/list-by-name?id=',
|
||||
params: {
|
||||
name: name
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// 新增支付商户
|
||||
export function createMerchant(data: MerchantVO) {
|
||||
return defHttp.post({ url: '/pay/merchant/create', data })
|
||||
}
|
||||
|
||||
// 修改支付商户
|
||||
export function updateMerchant(data: MerchantVO) {
|
||||
return defHttp.put({ url: '/pay/merchant/update', data })
|
||||
}
|
||||
|
||||
// 删除支付商户
|
||||
export function deleteMerchant(id: number) {
|
||||
return defHttp.delete({ url: '/pay/merchant/delete?id=' + id })
|
||||
}
|
||||
|
||||
// 导出支付商户
|
||||
export function exportMerchant(params: MerchantExportReqVO) {
|
||||
return defHttp.download({ url: '/pay/merchant/export-excel', params }, '支付商户.xls')
|
||||
}
|
||||
// 支付商户状态修改
|
||||
export function changeMerchantStatus(id: number, status: number) {
|
||||
const data = {
|
||||
id,
|
||||
status
|
||||
}
|
||||
return defHttp.put({ url: '/pay/merchant/update-status', data })
|
||||
}
|
||||
11
src/api/pay/notify/index.ts
Normal file
11
src/api/pay/notify/index.ts
Normal file
@@ -0,0 +1,11 @@
|
||||
import { defHttp } from '@/utils/http/axios'
|
||||
|
||||
// 获得支付通知明细
|
||||
export function getNotifyTaskDetail(id) {
|
||||
return defHttp.get({ url: `/pay/notify/get-detail?id=${id}` })
|
||||
}
|
||||
|
||||
// 获得支付通知分页
|
||||
export function getNotifyTaskPage(params) {
|
||||
return defHttp.get({ url: '/pay/notify/page', params })
|
||||
}
|
||||
@@ -85,35 +85,20 @@ export function getOrderPage(params: OrderPageReqVO) {
|
||||
|
||||
// 查询详情支付订单
|
||||
export function getOrder(id: number) {
|
||||
return defHttp.get({ url: '/pay/order/get?id=' + id })
|
||||
return defHttp.get({ url: `/pay/order/get?id=${id}` })
|
||||
}
|
||||
|
||||
// 查询详情支付订单
|
||||
// 获得支付订单的明细
|
||||
export function getOrderDetail(id: number) {
|
||||
return defHttp.get({ url: '/pay/order/get-detail?id=' + id })
|
||||
return defHttp.get({ url: `/pay/order/get-detail?id=${id}` })
|
||||
}
|
||||
|
||||
// 新增支付订单
|
||||
export function createOrder(data: OrderVO) {
|
||||
return defHttp.post({ url: '/pay/order/create', data })
|
||||
}
|
||||
|
||||
// 修改支付订单
|
||||
export function updateOrder(data: OrderVO) {
|
||||
return defHttp.put({ url: '/pay/order/update', data })
|
||||
}
|
||||
|
||||
// 删除支付订单
|
||||
export function deleteOrder(id: number) {
|
||||
return defHttp.delete({ url: '/pay/order/delete?id=' + id })
|
||||
// 提交支付订单
|
||||
export function submitOrder(data: any) {
|
||||
return defHttp.post({ url: '/pay/order/submit', data })
|
||||
}
|
||||
|
||||
// 导出支付订单
|
||||
export function exportOrder(params: OrderExportReqVO) {
|
||||
return defHttp.download({ url: '/pay/order/export-excel', params }, '支付订单.xls')
|
||||
}
|
||||
|
||||
// 提交支付订单
|
||||
export function submitOrder(data) {
|
||||
return defHttp.post({ url: '/pay/order/submit', data })
|
||||
return defHttp.download({ url: '/pay/order/export-excel', params })
|
||||
}
|
||||
|
||||
@@ -92,7 +92,7 @@ export function getRefundPage(params: RefundPageReqVO) {
|
||||
|
||||
// 查询详情退款订单
|
||||
export function getRefund(id: number) {
|
||||
return defHttp.get({ url: '/pay/refund/get?id=' + id })
|
||||
return defHttp.get({ url: `/pay/refund/get?id=${id}` })
|
||||
}
|
||||
|
||||
// 新增退款订单
|
||||
@@ -107,7 +107,7 @@ export function updateRefund(data: RefundVO) {
|
||||
|
||||
// 删除退款订单
|
||||
export function deleteRefund(id: number) {
|
||||
return defHttp.delete({ url: '/pay/refund/delete?id=' + id })
|
||||
return defHttp.delete({ url: `/pay/refund/delete?id=${id}` })
|
||||
}
|
||||
|
||||
// 导出退款订单
|
||||
|
||||
@@ -7,5 +7,5 @@ export function getAreaTree() {
|
||||
|
||||
// 获得 IP 对应的地区名
|
||||
export function getAreaByIp(ip: string) {
|
||||
return defHttp.get({ url: '/system/area/get-by-ip?ip=' + ip })
|
||||
return defHttp.get({ url: `/system/area/get-by-ip?ip=${ip}` })
|
||||
}
|
||||
|
||||
@@ -29,7 +29,7 @@ export function getDeptPage(params: DeptPageReqVO) {
|
||||
|
||||
// 查询部门详情
|
||||
export function getDept(id: number) {
|
||||
return defHttp.get({ url: '/system/dept/get?id=' + id })
|
||||
return defHttp.get({ url: `/system/dept/get?id=${id}` })
|
||||
}
|
||||
|
||||
// 新增部门
|
||||
@@ -44,5 +44,5 @@ export function updateDept(params: DeptVO) {
|
||||
|
||||
// 删除部门
|
||||
export function deleteDept(id: number) {
|
||||
return defHttp.delete({ url: '/system/dept/delete?id=' + id })
|
||||
return defHttp.delete({ url: `/system/dept/delete?id=${id}` })
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import type { DictDataExportReqVO, DictDataPageReqVO, DictDataVO } from './types'
|
||||
import { defHttp } from '@/utils/http/axios'
|
||||
import type { DictDataVO, DictDataPageReqVO, DictDataExportReqVO } from './types'
|
||||
|
||||
// 查询字典数据(精简)列表
|
||||
export function listSimpleDictData() {
|
||||
@@ -13,7 +13,7 @@ export function getDictDataPage(params: DictDataPageReqVO) {
|
||||
|
||||
// 查询字典数据详情
|
||||
export function getDictData(id: number) {
|
||||
return defHttp.get({ url: '/system/dict-data/get?id=' + id })
|
||||
return defHttp.get({ url: `/system/dict-data/get?id=${id}` })
|
||||
}
|
||||
|
||||
// 新增字典数据
|
||||
@@ -28,7 +28,7 @@ export function updateDictData(data: DictDataVO) {
|
||||
|
||||
// 删除字典数据
|
||||
export function deleteDictData(id: number) {
|
||||
return defHttp.delete({ url: '/system/dict-data/delete?id=' + id })
|
||||
return defHttp.delete({ url: `/system/dict-data/delete?id=${id}` })
|
||||
}
|
||||
// 导出字典类型数据
|
||||
export function exportDictData(params: DictDataExportReqVO) {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import type { DictTypeExportReqVO, DictTypePageReqVO, DictTypeVO } from './types'
|
||||
import { defHttp } from '@/utils/http/axios'
|
||||
import type { DictTypeVO, DictTypePageReqVO, DictTypeExportReqVO } from './types'
|
||||
|
||||
// 查询字典(精简)列表
|
||||
export function listSimpleDictType() {
|
||||
@@ -13,7 +13,7 @@ export function getDictTypePage(params: DictTypePageReqVO) {
|
||||
|
||||
// 查询字典详情
|
||||
export function getDictType(id: number) {
|
||||
return defHttp.get({ url: '/system/dict-type/get?id=' + id })
|
||||
return defHttp.get({ url: `/system/dict-type/get?id=${id}` })
|
||||
}
|
||||
|
||||
// 新增字典
|
||||
@@ -28,7 +28,7 @@ export function updateDictType(data: DictTypeVO) {
|
||||
|
||||
// 删除字典
|
||||
export function deleteDictType(id: number) {
|
||||
return defHttp.delete({ url: '/system/dict-type/delete?id=' + id })
|
||||
return defHttp.delete({ url: `/system/dict-type/delete?id=${id}` })
|
||||
}
|
||||
// 导出字典类型
|
||||
export function exportDictType(params: DictTypeExportReqVO) {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
export type DictTypeVO = {
|
||||
export interface DictTypeVO {
|
||||
id: number
|
||||
name: string
|
||||
type: string
|
||||
@@ -7,21 +7,21 @@ export type DictTypeVO = {
|
||||
createTime: Date
|
||||
}
|
||||
|
||||
export type DictTypePageReqVO = {
|
||||
export interface DictTypePageReqVO {
|
||||
name: string
|
||||
type: string
|
||||
status: number
|
||||
createTime: Date[]
|
||||
}
|
||||
|
||||
export type DictTypeExportReqVO = {
|
||||
export interface DictTypeExportReqVO {
|
||||
name: string
|
||||
type: string
|
||||
status: number
|
||||
createTime: Date[]
|
||||
}
|
||||
|
||||
export type DictDataVO = {
|
||||
export interface DictDataVO {
|
||||
id: number
|
||||
sort: number
|
||||
label: string
|
||||
@@ -33,13 +33,13 @@ export type DictDataVO = {
|
||||
remark: string
|
||||
createTime: Date
|
||||
}
|
||||
export type DictDataPageReqVO = {
|
||||
export interface DictDataPageReqVO {
|
||||
label: string
|
||||
dictType: string
|
||||
status: number
|
||||
}
|
||||
|
||||
export type DictDataExportReqVO = {
|
||||
export interface DictDataExportReqVO {
|
||||
label: string
|
||||
dictType: string
|
||||
status: number
|
||||
|
||||
@@ -25,7 +25,7 @@ export function getErrorCodePage(params: ErrorCodePageReqVO) {
|
||||
|
||||
// 查询错误码详情
|
||||
export function getErrorCode(id: number) {
|
||||
return defHttp.get({ url: '/system/error-code/get?id=' + id })
|
||||
return defHttp.get({ url: `/system/error-code/get?id=${id}` })
|
||||
}
|
||||
|
||||
// 新增错误码
|
||||
@@ -40,7 +40,7 @@ export function updateErrorCode(data: ErrorCodeVO) {
|
||||
|
||||
// 删除错误码
|
||||
export function deleteErrorCode(id: number) {
|
||||
return defHttp.delete({ url: '/system/error-code/delete?id=' + id })
|
||||
return defHttp.delete({ url: `/system/error-code/delete?id=${id}` })
|
||||
}
|
||||
|
||||
// 导出错误码
|
||||
|
||||
@@ -12,12 +12,12 @@ export function updateMailAccount(data) {
|
||||
|
||||
// 删除邮箱账号
|
||||
export function deleteMailAccount(id: number) {
|
||||
return defHttp.delete({ url: '/system/mail-account/delete?id=' + id })
|
||||
return defHttp.delete({ url: `/system/mail-account/delete?id=${id}` })
|
||||
}
|
||||
|
||||
// 获得邮箱账号
|
||||
export function getMailAccount(id: number) {
|
||||
return defHttp.get({ url: '/system/mail-account/get?id=' + id })
|
||||
return defHttp.get({ url: `/system/mail-account/get?id=${id}` })
|
||||
}
|
||||
|
||||
// 获得邮箱账号分页
|
||||
|
||||
@@ -2,7 +2,7 @@ import { defHttp } from '@/utils/http/axios'
|
||||
|
||||
// 获得邮件日志
|
||||
export function getMailLog(id: number) {
|
||||
return defHttp.get({ url: '/system/mail-log/get?id=' + id })
|
||||
return defHttp.get({ url: `/system/mail-log/get?id=${id}` })
|
||||
}
|
||||
|
||||
// 获得邮件日志分页
|
||||
|
||||
@@ -12,12 +12,12 @@ export function updateMailTemplate(data) {
|
||||
|
||||
// 删除邮件模版
|
||||
export function deleteMailTemplate(id: number) {
|
||||
return defHttp.delete({ url: '/system/mail-template/delete?id=' + id })
|
||||
return defHttp.delete({ url: `/system/mail-template/delete?id=${id}` })
|
||||
}
|
||||
|
||||
// 获得邮件模版
|
||||
export function getMailTemplate(id: number) {
|
||||
return defHttp.get({ url: '/system/mail-template/get?id=' + id })
|
||||
return defHttp.get({ url: `/system/mail-template/get?id=${id}` })
|
||||
}
|
||||
|
||||
// 获得邮件模版分页
|
||||
@@ -26,7 +26,7 @@ export function getMailTemplatePage(params) {
|
||||
}
|
||||
|
||||
// 邮件模板
|
||||
export type MailTemplate = {
|
||||
export interface MailTemplate {
|
||||
name: string // 标题
|
||||
code: string // 编码
|
||||
accountId: number
|
||||
@@ -40,7 +40,7 @@ export type MailTemplate = {
|
||||
createTime: number
|
||||
}
|
||||
|
||||
export type SendMailParams = {
|
||||
export interface SendMailParams {
|
||||
mail: string
|
||||
templateCode: string
|
||||
templateParams: {
|
||||
|
||||
@@ -33,7 +33,7 @@ export function getMenuList(params: MenuPageReqVO) {
|
||||
|
||||
// 获取菜单详情
|
||||
export function getMenu(id: number) {
|
||||
return defHttp.get({ url: '/system/menu/get?id=' + id })
|
||||
return defHttp.get({ url: `/system/menu/get?id=${id}` })
|
||||
}
|
||||
|
||||
// 新增菜单
|
||||
@@ -48,5 +48,5 @@ export function updateMenu(data: MenuVO) {
|
||||
|
||||
// 删除菜单
|
||||
export function deleteMenu(id: number) {
|
||||
return defHttp.delete({ url: '/system/menu/delete?id=' + id })
|
||||
return defHttp.delete({ url: `/system/menu/delete?id=${id}` })
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user