Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
fa6ec8f07f | ||
|
|
c322959c40 | ||
|
|
fd266516fe | ||
|
|
ed22e02b5b | ||
|
|
57b20f1810 | ||
|
|
038f3d6ab0 | ||
|
|
633965b07d | ||
|
|
46a8755c93 | ||
|
|
8aa17b673b | ||
|
|
54897b6d1b | ||
|
|
c6192a1918 | ||
|
|
b95b8008f7 | ||
|
|
8f97155b43 | ||
|
|
c3cad3f3ee | ||
|
|
1744c6ec6f | ||
|
|
f8b56a8c46 | ||
|
|
253401ace3 | ||
|
|
12b59200c1 | ||
|
|
19a0a83054 | ||
|
|
f74ddf46ae | ||
|
|
1bb9df7b3c | ||
|
|
e0a731dd86 | ||
|
|
3198688eb5 | ||
|
|
b0b669129b | ||
|
|
4423e9b804 | ||
|
|
ebb19cfe8c | ||
|
|
b1f5ad55b8 | ||
|
|
2e01944df9 | ||
|
|
5f0b0bd21d | ||
|
|
9d7c578d48 | ||
|
|
526172af60 | ||
|
|
c06223decd | ||
|
|
f07d37438d | ||
|
|
85e953b920 | ||
|
|
7c5ae17d04 | ||
|
|
538783ce2d | ||
|
|
f1e3eccc8a | ||
|
|
652698b871 | ||
|
|
26dba8b457 | ||
|
|
f5d611968f | ||
|
|
a42d0695fe | ||
|
|
68f6683e52 | ||
|
|
b4a1772584 | ||
|
|
6c405ba420 | ||
|
|
9aca49c1ff | ||
|
|
bbc37613b6 | ||
|
|
3d0c4f4422 | ||
|
|
40b1522ed0 | ||
|
|
22206b25e1 | ||
|
|
821c804189 | ||
|
|
249e0d21a3 | ||
|
|
8a74b954d0 | ||
|
|
e56afbf80f | ||
|
|
8e0cf5c1e5 | ||
|
|
ba702d03bc | ||
|
|
015a1640c1 | ||
|
|
45656562a8 | ||
|
|
8bb9dec328 | ||
|
|
c1a92ba22a | ||
|
|
27c9a0f32d | ||
|
|
2385cd9b9a | ||
|
|
999d8de9e9 | ||
|
|
f0f7886025 | ||
|
|
72c5eaae31 | ||
|
|
49ebadd748 | ||
|
|
702f23e672 | ||
|
|
ed26142bb0 | ||
|
|
a7f86dfd8b | ||
|
|
6369b334e3 | ||
|
|
55f6e4ca25 | ||
|
|
b63e2a9efb | ||
|
|
9f9e0f8bda | ||
|
|
af5d1cf25e | ||
|
|
1ab5b44254 | ||
|
|
2ff97758fd | ||
|
|
86d9a97ccb | ||
|
|
d45ebd4fcf | ||
|
|
4e413a10e6 | ||
|
|
55b477acdb | ||
|
|
6160c2fa8a | ||
|
|
e9299c6710 | ||
|
|
a08e9bea7c | ||
|
|
82aed175ab | ||
|
|
59b2d89a18 | ||
|
|
288aa72cdd | ||
|
|
ac42493659 | ||
|
|
325e2e4ff2 | ||
|
|
084009f7f2 | ||
|
|
f2c71d5836 | ||
|
|
57474c0644 | ||
|
|
7146fdc9b9 | ||
|
|
eb9f8c9f6f | ||
|
|
85ee558bef | ||
|
|
c0d5c76a06 | ||
|
|
821217501c | ||
|
|
ead30e8cd9 | ||
|
|
4253173a2a | ||
|
|
6e9e1d0888 | ||
|
|
bb2b7ffd03 | ||
|
|
3f803767c4 | ||
|
|
47bb88d892 | ||
|
|
e1cff74f41 | ||
|
|
fa710b560d | ||
|
|
596ad888e1 | ||
|
|
17742988c9 | ||
|
|
65d85e30ca | ||
|
|
f0c45103e1 | ||
|
|
434aa864da | ||
|
|
0b0ba1f313 | ||
|
|
984351fbf0 | ||
|
|
aedf014407 | ||
|
|
4f2f4f72b5 | ||
|
|
ff6f05df84 | ||
|
|
a9b91e7436 | ||
|
|
ac7f1e29fb | ||
|
|
df646175dc | ||
|
|
71e6d51c12 | ||
|
|
f79d31a64a | ||
|
|
27defa7268 | ||
|
|
a9faeb1bdb | ||
|
|
09c44cd4fe | ||
|
|
23f483ac45 | ||
|
|
8ef5227f88 | ||
|
|
188de1031b | ||
|
|
f6adb4ebaf | ||
|
|
de62a7a5b7 | ||
|
|
fcc748dc63 | ||
|
|
753f5de81e | ||
|
|
3c0f3ceed5 | ||
|
|
bf418653e4 | ||
|
|
20c59b8122 | ||
|
|
3d54ad3a6a | ||
|
|
9bd33355e2 | ||
|
|
18e2c33cef | ||
|
|
9a3253ad20 | ||
|
|
881c4f3a29 | ||
|
|
10483577b7 | ||
|
|
52755b38a9 | ||
|
|
13f31c19f5 | ||
|
|
4365ca6177 | ||
|
|
ce93c8d4e9 | ||
|
|
7321ff2136 | ||
|
|
af7c6f3b2c | ||
|
|
80e72fd924 | ||
|
|
2a029ba35b | ||
|
|
57e8256e9a | ||
|
|
bdcef303ff | ||
|
|
f8fdebffe6 | ||
|
|
4ba264e00d | ||
|
|
f26a4cae10 | ||
|
|
899880bfe1 | ||
|
|
2b84de7e09 | ||
|
|
c269cab6b2 | ||
|
|
c1534bf168 | ||
|
|
55a961e862 | ||
|
|
0c81a0d96a | ||
|
|
4fba270f1c | ||
|
|
e9ff8d3237 | ||
|
|
dc5cf9f24c | ||
|
|
690b208a4e | ||
|
|
5d760d5450 | ||
|
|
60d53126c4 | ||
|
|
59cf0c29f0 | ||
|
|
4cdab6fb3e | ||
|
|
cca34e0acb | ||
|
|
b9ab22dad1 | ||
|
|
32b3c874f5 | ||
|
|
a624db04e9 | ||
|
|
88a22d90e5 | ||
|
|
6ee2492ff1 | ||
|
|
8935188a82 | ||
|
|
d060d27ab2 | ||
|
|
ca385bc08e | ||
|
|
309c3f30d1 | ||
|
|
238537df83 | ||
|
|
bf2c59c6e0 | ||
|
|
50f1ae9524 | ||
|
|
96db6ab538 | ||
|
|
b8403c1b90 | ||
|
|
044754cdb4 | ||
|
|
ef334dfc66 | ||
|
|
539352f598 | ||
|
|
6644a4d4a6 | ||
|
|
e5d6a9dae1 | ||
|
|
ed0f3a3043 | ||
|
|
95d7d1eb42 | ||
|
|
75135e1e4f | ||
|
|
a7439ee08b | ||
|
|
7c8f7d570f | ||
|
|
54cce467ab | ||
|
|
6c6c2cb058 | ||
|
|
af79d4a653 | ||
|
|
73578ce8b2 | ||
|
|
2dbfa77bee | ||
|
|
4709c18a6e | ||
|
|
bb73a6edfd | ||
|
|
929fa9a208 | ||
|
|
423ea319e0 | ||
|
|
5cfb67d047 | ||
|
|
bb5945958b | ||
|
|
e187c55408 | ||
|
|
491b3a5018 | ||
|
|
fb90a85e43 | ||
|
|
26780c3525 | ||
|
|
7ad1457f79 | ||
|
|
0730e215d8 | ||
|
|
2a150cf0c0 | ||
|
|
9f77514c17 | ||
|
|
d62bbcdd92 | ||
|
|
1e8945de63 | ||
|
|
01d78429cc | ||
|
|
18df708b49 | ||
|
|
2457665b55 | ||
|
|
826199dc22 | ||
|
|
83501f9b09 | ||
|
|
6dc7315e17 | ||
|
|
3074adb1df | ||
|
|
3464bb9c74 | ||
|
|
5b3bcecef2 | ||
|
|
094f8e16db | ||
|
|
70778fd9e6 | ||
|
|
5270c83876 | ||
|
|
7af2a3bcc3 | ||
|
|
04d88ce1a6 | ||
|
|
d1a3fe5d5a | ||
|
|
ff01effd45 | ||
|
|
431fff28ce | ||
|
|
61b3bdfd4c | ||
|
|
d6b0305d78 | ||
|
|
8832eafaae | ||
|
|
533b4e5006 | ||
|
|
d5328918ab | ||
|
|
40ec1b08ae | ||
|
|
0089d59d36 | ||
|
|
c27685285a | ||
|
|
63fd52828c | ||
|
|
aa99c53729 | ||
|
|
0242c84196 | ||
|
|
57f6367596 | ||
|
|
6fc232b758 | ||
|
|
dced551698 | ||
|
|
c3f06f5fbe | ||
|
|
8626bccc4c | ||
|
|
ae2c3f2ad5 | ||
|
|
e3a0cfe5e9 | ||
|
|
6204ce6c1b | ||
|
|
cd4b4cd322 | ||
|
|
66ec610801 | ||
|
|
7b9ea62e6b | ||
|
|
8c18ad941e | ||
|
|
5da9b660bd | ||
|
|
1a1b70a350 | ||
|
|
42c8db4f34 | ||
|
|
edfd03903f | ||
|
|
2bfc9c3b13 | ||
|
|
661e72bcfd | ||
|
|
8dec8edc6a | ||
|
|
e1a72779d4 | ||
|
|
a2ded16718 | ||
|
|
de3fa7a765 | ||
|
|
99172ea088 | ||
|
|
195309dbb6 | ||
|
|
3802fee661 | ||
|
|
cbb0cfefdb | ||
|
|
e2a08ddbac | ||
|
|
04e83e268a | ||
|
|
90d6f4da9f | ||
|
|
50e43e4028 | ||
|
|
befffb3f7d | ||
|
|
89417ac393 | ||
|
|
3587d1ef97 | ||
|
|
4d77d7e136 | ||
|
|
36bb90fbb8 | ||
|
|
889334bc37 | ||
|
|
b57b45c96f | ||
|
|
fa71f85221 | ||
|
|
8b6ca3028a | ||
|
|
f9d0c1aa1c | ||
|
|
529a821cdb | ||
|
|
470fb23ae1 | ||
|
|
9b09304c50 | ||
|
|
e04ca7aac7 | ||
|
|
73b2030c7f | ||
|
|
6ed7b3a69e | ||
|
|
532b237712 | ||
|
|
855b37c1ab | ||
|
|
19c19d78dd | ||
|
|
b08e0e5ab2 | ||
|
|
3500a20630 | ||
|
|
62a953815d | ||
|
|
ad4607db09 | ||
|
|
6b7040404e | ||
|
|
d4a521eff1 | ||
|
|
22adab8590 | ||
|
|
683e319c72 | ||
|
|
aa5f27bec7 | ||
|
|
86323f970b | ||
|
|
523784ce41 | ||
|
|
fff4cfd012 | ||
|
|
5b4983a3e9 | ||
|
|
8c347e5990 | ||
|
|
e86dfa30fd | ||
|
|
c445173855 | ||
|
|
24fc36e23a | ||
|
|
eee3d0fef5 | ||
|
|
c8a476ac7c | ||
|
|
2a58b04a98 | ||
|
|
78062dd474 | ||
|
|
869bac2501 | ||
|
|
cf7ac2cb10 | ||
|
|
860872a890 | ||
|
|
42f0bf07f0 | ||
|
|
4c2eb3d8b2 | ||
|
|
58b6b1ba57 | ||
|
|
7c491ff62a | ||
|
|
40f44fc78e | ||
|
|
59ab6218ca | ||
|
|
04a94ad941 | ||
|
|
e6ee0ab445 | ||
|
|
6515e218e2 | ||
|
|
a06a63c1be | ||
|
|
ab95d87c68 | ||
|
|
a9bbbc7b0a | ||
|
|
bb08f6f54f | ||
|
|
df8a3941c1 | ||
|
|
4c077711a1 | ||
|
|
4fddbccea1 | ||
|
|
588ce1c9ae | ||
|
|
a5808c9e9c | ||
|
|
17c31978f7 | ||
|
|
8b7543acd5 | ||
|
|
5f80d1611c | ||
|
|
88677ee121 | ||
|
|
3a9668d632 | ||
|
|
3a96812d47 | ||
|
|
3ab1ed707f | ||
|
|
0066d79876 | ||
|
|
6508d841f5 | ||
|
|
4b7e57e67d | ||
|
|
940a102546 | ||
|
|
b48f19c646 | ||
|
|
675f3df5cb | ||
|
|
654094b4fd | ||
|
|
6475f81534 | ||
|
|
c322fb3d0d | ||
|
|
150c77cff0 | ||
|
|
fb94ae9674 | ||
|
|
a438353308 | ||
|
|
b1469669e2 | ||
|
|
04e02ffbd2 | ||
|
|
74de8e9687 | ||
|
|
2f82eff526 | ||
|
|
888c1371c6 | ||
|
|
c6031ba2b2 | ||
|
|
65047b93a4 | ||
|
|
f832d26a0d | ||
|
|
361e4fadda | ||
|
|
0fba0d9a6a | ||
|
|
2aeba127b6 | ||
|
|
b9881f2941 | ||
|
|
a5dd7f4a81 | ||
|
|
2c22ef8ef1 | ||
|
|
20fe343646 | ||
|
|
dd5a1f2d43 | ||
|
|
8778f5746f |
No files matched your search
@@ -4,10 +4,10 @@ NODE_ENV=development
|
||||
VITE_DEV=true
|
||||
|
||||
# 请求路径
|
||||
VITE_BASE_URL='http://localhost:48080'
|
||||
VITE_BASE_URL='http://127.0.0.1:48080'
|
||||
|
||||
# 上传路径
|
||||
VITE_UPLOAD_URL='http://localhost:48080/admin-api/infra/file/upload'
|
||||
VITE_UPLOAD_URL='http://127.0.0.1:48080/admin-api/infra/file/upload'
|
||||
|
||||
# 接口前缀
|
||||
VITE_API_BASEPATH=/dev-api
|
||||
|
||||
@@ -8,7 +8,6 @@ module.exports = defineConfig({
|
||||
es6: true
|
||||
},
|
||||
parser: 'vue-eslint-parser',
|
||||
plugins: ['vue'],
|
||||
parserOptions: {
|
||||
parser: '@typescript-eslint/parser',
|
||||
ecmaVersion: 2020,
|
||||
@@ -22,13 +21,13 @@ module.exports = defineConfig({
|
||||
'plugin:vue/vue3-recommended',
|
||||
'plugin:@typescript-eslint/recommended',
|
||||
'prettier',
|
||||
'plugin:prettier/recommended',
|
||||
'plugin:prettier/recommended',
|
||||
'@unocss'
|
||||
],
|
||||
rules: {
|
||||
'vue/no-setup-props-destructure': 'off',
|
||||
'vue/script-setup-uses-vars': 'error',
|
||||
'vue/no-reserved-component-names': 'off',
|
||||
'vue/no-setup-props-destructure': 'off',
|
||||
'@typescript-eslint/ban-ts-ignore': 'off',
|
||||
'@typescript-eslint/explicit-function-return-type': 'off',
|
||||
'@typescript-eslint/no-explicit-any': 'off',
|
||||
@@ -54,6 +53,7 @@ module.exports = defineConfig({
|
||||
'vue/attribute-hyphenation': 'off',
|
||||
'vue/require-default-prop': 'off',
|
||||
'vue/require-explicit-emits': 'off',
|
||||
'vue/require-toggle-inside-transition': 'off',
|
||||
'vue/html-self-closing': [
|
||||
'error',
|
||||
{
|
||||
@@ -67,6 +67,7 @@ module.exports = defineConfig({
|
||||
}
|
||||
],
|
||||
'vue/multi-word-component-names': 'off',
|
||||
'vue/no-v-html': 'off'
|
||||
'vue/no-v-html': 'off',
|
||||
'prettier/prettier': 'off' // 芋艿:默认关闭 prettier 的 ESLint 校验,因为我们使用的是 IDE 的 Prettier 插件
|
||||
}
|
||||
})
|
||||
|
After Width: | Height: | Size: 112 KiB |
|
After Width: | Height: | Size: 142 KiB |
|
After Width: | Height: | Size: 152 KiB |
|
After Width: | Height: | Size: 68 KiB |
|
After Width: | Height: | Size: 65 KiB |
|
After Width: | Height: | Size: 95 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 33 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 9.7 KiB |
|
After Width: | Height: | Size: 56 KiB |
|
After Width: | Height: | Size: 8.6 KiB |
|
After Width: | Height: | Size: 26 KiB |
|
After Width: | Height: | Size: 26 KiB |
|
After Width: | Height: | Size: 7.0 KiB |
|
After Width: | Height: | Size: 27 KiB |
|
After Width: | Height: | Size: 238 KiB |
|
After Width: | Height: | Size: 139 KiB |
|
After Width: | Height: | Size: 69 KiB |
|
After Width: | Height: | Size: 32 KiB |
|
After Width: | Height: | Size: 201 KiB |
|
After Width: | Height: | Size: 60 KiB |
|
After Width: | Height: | Size: 37 KiB |
|
After Width: | Height: | Size: 130 KiB |
|
After Width: | Height: | Size: 89 KiB |
|
After Width: | Height: | Size: 89 KiB |
|
After Width: | Height: | Size: 160 KiB |
|
After Width: | Height: | Size: 150 KiB |
|
After Width: | Height: | Size: 124 KiB |
|
After Width: | Height: | Size: 83 KiB |
|
After Width: | Height: | Size: 73 KiB |
|
After Width: | Height: | Size: 53 KiB |
|
After Width: | Height: | Size: 109 KiB |
|
After Width: | Height: | Size: 69 KiB |
|
After Width: | Height: | Size: 78 KiB |
|
After Width: | Height: | Size: 126 KiB |
|
After Width: | Height: | Size: 74 KiB |
|
After Width: | Height: | Size: 80 KiB |
|
After Width: | Height: | Size: 93 KiB |
|
After Width: | Height: | Size: 93 KiB |
|
After Width: | Height: | Size: 55 KiB |
|
After Width: | Height: | Size: 176 KiB |
|
After Width: | Height: | Size: 91 KiB |
|
After Width: | Height: | Size: 87 KiB |
|
After Width: | Height: | Size: 33 KiB |
|
After Width: | Height: | Size: 37 KiB |
|
After Width: | Height: | Size: 41 KiB |
|
After Width: | Height: | Size: 99 KiB |
|
After Width: | Height: | Size: 208 KiB |
|
After Width: | Height: | Size: 47 KiB |
|
After Width: | Height: | Size: 97 KiB |
|
After Width: | Height: | Size: 73 KiB |
|
After Width: | Height: | Size: 114 KiB |
|
After Width: | Height: | Size: 116 KiB |
|
After Width: | Height: | Size: 84 KiB |
|
After Width: | Height: | Size: 173 KiB |
|
After Width: | Height: | Size: 125 KiB |
|
After Width: | Height: | Size: 125 KiB |
|
After Width: | Height: | Size: 148 KiB |
|
After Width: | Height: | Size: 128 KiB |
|
After Width: | Height: | Size: 82 KiB |
|
After Width: | Height: | Size: 112 KiB |
|
After Width: | Height: | Size: 93 KiB |
|
After Width: | Height: | Size: 77 KiB |
|
After Width: | Height: | Size: 41 KiB |
|
After Width: | Height: | Size: 248 KiB |
|
After Width: | Height: | Size: 80 KiB |
|
After Width: | Height: | Size: 96 KiB |
|
After Width: | Height: | Size: 115 KiB |
|
After Width: | Height: | Size: 91 KiB |
|
After Width: | Height: | Size: 129 KiB |
|
After Width: | Height: | Size: 102 KiB |
|
After Width: | Height: | Size: 85 KiB |
|
After Width: | Height: | Size: 73 KiB |
|
After Width: | Height: | Size: 92 KiB |
|
After Width: | Height: | Size: 77 KiB |
|
After Width: | Height: | Size: 109 KiB |
|
After Width: | Height: | Size: 89 KiB |
|
After Width: | Height: | Size: 81 KiB |
|
After Width: | Height: | Size: 110 KiB |
|
After Width: | Height: | Size: 131 KiB |
|
After Width: | Height: | Size: 62 KiB |
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"typescript.tsdk": "./node_modules/typescript/lib",
|
||||
"typescript.tsdk": "node_modules/typescript/lib",
|
||||
"npm.packageManager": "pnpm",
|
||||
"editor.tabSize": 2,
|
||||
"prettier.printWidth": 100, // 超过最大值换行
|
||||
@@ -86,15 +86,12 @@
|
||||
"source.fixAll.eslint": true
|
||||
},
|
||||
"[vue]": {
|
||||
"editor.codeActionsOnSave": {
|
||||
"source.fixAll.eslint": true,
|
||||
"source.fixAll.stylelint": true
|
||||
}
|
||||
"editor.defaultFormatter": "rvest.vs-code-prettier-eslint"
|
||||
},
|
||||
"i18n-ally.localesPaths": ["src/locales"],
|
||||
"i18n-ally.keystyle": "nested",
|
||||
"i18n-ally.sortKeys": true,
|
||||
"i18n-ally.namespace": true,
|
||||
"i18n-ally.namespace": false,
|
||||
"i18n-ally.enabledParsers": ["ts"],
|
||||
"i18n-ally.sourceLanguage": "en",
|
||||
"i18n-ally.displayLanguage": "zh-CN",
|
||||
@@ -105,6 +102,7 @@
|
||||
"codemirror",
|
||||
"commitlint",
|
||||
"cropperjs",
|
||||
"echart",
|
||||
"echarts",
|
||||
"esnext",
|
||||
"esno",
|
||||
@@ -119,10 +117,12 @@
|
||||
"sider",
|
||||
"sortablejs",
|
||||
"stylelint",
|
||||
"svgs",
|
||||
"unocss",
|
||||
"unplugin",
|
||||
"unref",
|
||||
"videojs",
|
||||
"VITE",
|
||||
"vitejs",
|
||||
"vueuse",
|
||||
"wangeditor",
|
||||
|
||||
@@ -38,15 +38,15 @@
|
||||
|
||||
| 框架 | 说明 | 版本 |
|
||||
|----------------------------------------------------------------------|------------------|--------|
|
||||
| [Vue](https://staging-cn.vuejs.org/) | Vue 框架 | 3.3.4 |
|
||||
| [Vite](https://cn.vitejs.dev//) | 开发与构建工具 | 4.4.9 |
|
||||
| [Element Plus](https://element-plus.org/zh-CN/) | Element Plus | 2.3.14 |
|
||||
| [Vue](https://staging-cn.vuejs.org/) | Vue 框架 | 3.3.8 |
|
||||
| [Vite](https://cn.vitejs.dev//) | 开发与构建工具 | 4.5.0 |
|
||||
| [Element Plus](https://element-plus.org/zh-CN/) | Element Plus | 2.4.2 |
|
||||
| [TypeScript](https://www.typescriptlang.org/docs/) | JavaScript 的超集 | 5.2.2 |
|
||||
| [pinia](https://pinia.vuejs.org/) | Vue 存储库 替代 vuex5 | 2.1.6 |
|
||||
| [vueuse](https://vueuse.org/) | 常用工具集 | 10.4.1 |
|
||||
| [vue-i18n](https://kazupon.github.io/vue-i18n/zh/introduction.html/) | 国际化 | 9.4.1 |
|
||||
| [pinia](https://pinia.vuejs.org/) | Vue 存储库 替代 vuex5 | 2.1.7 |
|
||||
| [vueuse](https://vueuse.org/) | 常用工具集 | 10.6.1 |
|
||||
| [vue-i18n](https://kazupon.github.io/vue-i18n/zh/introduction.html/) | 国际化 | 9.6.5 |
|
||||
| [vue-router](https://router.vuejs.org/) | Vue 路由 | 4.2.5 |
|
||||
| [unocss](https://uno.antfu.me/) | 原子 css | 0.56.1 |
|
||||
| [unocss](https://uno.antfu.me/) | 原子 css | 0.57.4 |
|
||||
| [iconify](https://icon-sets.iconify.design/) | 在线图标库 | 3.1.1 |
|
||||
| [wangeditor](https://www.wangeditor.com/) | 富文本编辑器 | 5.1.23 |
|
||||
|
||||
@@ -66,6 +66,18 @@
|
||||
| ESLint | 脚本代码检查 |
|
||||
| DotENV | env 文件高亮 |
|
||||
|
||||
## 🔥 后端架构
|
||||
|
||||
支持 Spring Boot、Spring Cloud 两种架构:
|
||||
|
||||
① Spring Boot 单体架构:<https://github.com/YunaiV/ruoyi-vue-pro>
|
||||
|
||||

|
||||
|
||||
② Spring Cloud 微服务架构:<https://github.com/YunaiV/yudao-cloud>
|
||||
|
||||

|
||||
|
||||
## 内置功能
|
||||
|
||||
系统内置多种多种业务功能,可以用于快速你的业务系统:
|
||||
@@ -174,62 +186,61 @@ ps:核心功能已经实现,正在对接微信小程序中...
|
||||
|
||||
### 商城系统
|
||||
|
||||
建设中...
|
||||

|
||||
|
||||

|
||||

|
||||
|
||||

|
||||
_前端基于 crmeb uniapp 经过授权重构,优化代码实现,接入芋道快速开发平台_
|
||||
|
||||

|
||||
演示地址:<https://doc.iocoder.cn/mall-preview/>
|
||||
|
||||
## 🐷 演示图
|
||||
|
||||
### 系统功能
|
||||
|
||||
| 模块 | biu | biu | biu |
|
||||
|------------|--------------------------------------------------------------------|------------------------------------------------------------------|------------------------------------------------------------------|
|
||||
| 登录 & 首页 |  |  |  |
|
||||
| 用户 & 应用 |  |  |  |
|
||||
| 租户 & 套餐 |  |  | - |
|
||||
| 部门 & 岗位 |  |  | - |
|
||||
| 菜单 & 角色 |  |  | - |
|
||||
| 审计日志 |  |  | - |
|
||||
| 短信 |  |  |  |
|
||||
| 字典 & 敏感词 |  |  |  |
|
||||
| 错误码 & 通知 |  |  | - |
|
||||
| 模块 | biu | biu | biu |
|
||||
|----------|-----------------------------|---------------------------|--------------------------|
|
||||
| 登录 & 首页 |  |  |  |
|
||||
| 用户 & 应用 |  |  |  |
|
||||
| 租户 & 套餐 |  |  | - |
|
||||
| 部门 & 岗位 |  |  | - |
|
||||
| 菜单 & 角色 |  |  | - |
|
||||
| 审计日志 |  |  | - |
|
||||
| 短信 |  |  |  |
|
||||
| 字典 & 敏感词 |  |  |  |
|
||||
| 错误码 & 通知 |  |  | - |
|
||||
|
||||
### 工作流程
|
||||
|
||||
| 模块 | biu | biu | biu |
|
||||
|---------|------------------------------------------------------------------------|------------------------------------------------------------------------|------------------------------------------------------------------------|
|
||||
| 流程模型 |  |  |  |
|
||||
| 表单 & 分组 |  |  | - |
|
||||
| 我的流程 |  |  |  |
|
||||
| 待办 & 已办 |  |  |  |
|
||||
| OA 请假 |  |  |  |
|
||||
| 模块 | biu | biu | biu |
|
||||
|---------|---------------------------------|---------------------------------|---------------------------------|
|
||||
| 流程模型 |  |  |  |
|
||||
| 表单 & 分组 |  |  | - |
|
||||
| 我的流程 |  |  |  |
|
||||
| 待办 & 已办 |  |  |  |
|
||||
| OA 请假 |  |  |  |
|
||||
|
||||
### 基础设施
|
||||
|
||||
| 模块 | biu | biu | biu |
|
||||
|---------------|----------------------------------------------------------------------|--------------------------------------------------------------------|------------------------------------------------------------------|
|
||||
| 代码生成 |  |  | - |
|
||||
| 文档 |  |  | - |
|
||||
| 文件 & 配置 |  |  |  |
|
||||
| 定时任务 |  |  | - |
|
||||
| API 日志 |  |  | - |
|
||||
| MySQL & Redis |  |  | - |
|
||||
| 监控平台 |  |  |  |
|
||||
| 模块 | biu | biu | biu |
|
||||
|---------------|-------------------------------|-----------------------------|---------------------------|
|
||||
| 代码生成 |  |  | - |
|
||||
| 文档 |  |  | - |
|
||||
| 文件 & 配置 |  |  |  |
|
||||
| 定时任务 |  |  | - |
|
||||
| API 日志 |  |  | - |
|
||||
| MySQL & Redis |  |  | - |
|
||||
| 监控平台 |  |  |  |
|
||||
|
||||
### 支付系统
|
||||
|
||||
| 模块 | biu | biu | biu |
|
||||
|---------|------------------------------------------------------------------|------------------------------------------------------------------------|------------------------------------------------------------------------|
|
||||
| 商家 & 应用 |  |  |  |
|
||||
| 支付 & 退款 |  |  | --- |
|
||||
|
||||
| 模块 | biu | biu | biu |
|
||||
|---------|---------------------------|---------------------------------|---------------------------------|
|
||||
| 商家 & 应用 |  |  |  |
|
||||
| 支付 & 退款 |  |  | --- |
|
||||
### 数据报表
|
||||
|
||||
| 模块 | biu | biu | biu |
|
||||
|-------|--------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------|
|
||||
| 报表设计器 |  |  |  |
|
||||
| 大屏设计器 |  |  |  |
|
||||
| 模块 | biu | biu | biu |
|
||||
|-------|---------------------------------|---------------------------------|---------------------------------------|
|
||||
| 报表设计器 |  |  |  |
|
||||
| 大屏设计器 |  |  |  |
|
||||
@@ -60,18 +60,11 @@ export function createVitePlugins() {
|
||||
}
|
||||
}),
|
||||
Components({
|
||||
// 要搜索组件的目录的相对路径
|
||||
dirs: ['src/components'],
|
||||
// 组件的有效文件扩展名
|
||||
extensions: ['vue', 'md'],
|
||||
// 搜索子目录
|
||||
deep: true,
|
||||
include: [/\.vue$/, /\.vue\?vue/],
|
||||
// 生成自定义 `auto-components.d.ts` 全局声明
|
||||
dts: 'src/types/auto-components.d.ts',
|
||||
// 自定义组件的解析器
|
||||
resolvers: [ElementPlusResolver()],
|
||||
exclude: [/[\\/]node_modules[\\/]/]
|
||||
globs: ["src/components/**/**.{vue, md}", '!src/components/DiyEditor/components/mobile/**']
|
||||
}),
|
||||
EslintPlugin({
|
||||
cache: false,
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "yudao-ui-admin-vue3",
|
||||
"version": "1.8.2-snapshot",
|
||||
"version": "1.8.3-snapshot",
|
||||
"description": "基于vue3、vite4、element-plus、typesScript",
|
||||
"author": "xingyu",
|
||||
"private": false,
|
||||
@@ -31,39 +31,40 @@
|
||||
"@form-create/element-ui": "^3.1.24",
|
||||
"@iconify/iconify": "^3.1.1",
|
||||
"@videojs-player/vue": "^1.0.0",
|
||||
"@vueuse/core": "^10.4.1",
|
||||
"@vueuse/core": "^10.6.1",
|
||||
"@wangeditor/editor": "^5.1.23",
|
||||
"@wangeditor/editor-for-vue": "^5.1.10",
|
||||
"@zxcvbn-ts/core": "^3.0.4",
|
||||
"animate.css": "^4.1.1",
|
||||
"axios": "^1.5.0",
|
||||
"axios": "^1.6.1",
|
||||
"benz-amr-recorder": "^1.1.5",
|
||||
"bpmn-js-token-simulation": "^0.10.0",
|
||||
"camunda-bpmn-moddle": "^7.0.1",
|
||||
"cropperjs": "^1.6.1",
|
||||
"crypto-js": "^4.1.1",
|
||||
"crypto-js": "^4.2.0",
|
||||
"dayjs": "^1.11.10",
|
||||
"diagram-js": "^12.3.0",
|
||||
"diagram-js": "^12.8.0",
|
||||
"driver.js": "^1.3.1",
|
||||
"echarts": "^5.4.3",
|
||||
"echarts-wordcloud": "^2.1.0",
|
||||
"element-plus": "2.3.14",
|
||||
"fast-xml-parser": "^4.3.0",
|
||||
"highlight.js": "^11.8.0",
|
||||
"intro.js": "^7.2.0",
|
||||
"element-plus": "2.4.2",
|
||||
"fast-xml-parser": "^4.3.2",
|
||||
"highlight.js": "^11.9.0",
|
||||
"jsencrypt": "^3.3.2",
|
||||
"lodash-es": "^4.17.21",
|
||||
"min-dash": "^4.1.1",
|
||||
"mitt": "^3.0.1",
|
||||
"nprogress": "^0.2.0",
|
||||
"pinia": "^2.1.6",
|
||||
"pinia": "^2.1.7",
|
||||
"qrcode": "^1.5.3",
|
||||
"qs": "^6.11.2",
|
||||
"sortablejs": "^1.15.0",
|
||||
"steady-xml": "^0.1.0",
|
||||
"url": "^0.11.3",
|
||||
"video.js": "^7.21.5",
|
||||
"vue": "^3.3.4",
|
||||
"vue": "^3.3.8",
|
||||
"vue-dompurify-html": "^4.1.4",
|
||||
"vue-i18n": "^9.4.1",
|
||||
"vue-i18n": "^9.6.5",
|
||||
"vue-router": "^4.2.5",
|
||||
"vue-types": "^5.1.1",
|
||||
"vuedraggable": "^4.1.0",
|
||||
@@ -71,54 +72,53 @@
|
||||
"xml-js": "^1.6.11"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@commitlint/cli": "^17.7.1",
|
||||
"@commitlint/config-conventional": "^17.7.0",
|
||||
"@iconify/json": "^2.2.119",
|
||||
"@intlify/unplugin-vue-i18n": "^1.2.0",
|
||||
"@commitlint/cli": "^18.4.1",
|
||||
"@commitlint/config-conventional": "^18.4.0",
|
||||
"@iconify/json": "^2.2.142",
|
||||
"@intlify/unplugin-vue-i18n": "^1.5.0",
|
||||
"@purge-icons/generated": "^0.9.0",
|
||||
"@types/intro.js": "^5.1.1",
|
||||
"@types/lodash-es": "^4.17.9",
|
||||
"@types/node": "^20.6.0",
|
||||
"@types/nprogress": "^0.2.0",
|
||||
"@types/qrcode": "^1.5.2",
|
||||
"@types/qs": "^6.9.8",
|
||||
"@typescript-eslint/eslint-plugin": "^6.7.2",
|
||||
"@typescript-eslint/parser": "^6.7.2",
|
||||
"@unocss/transformer-variant-group": "^0.56.1",
|
||||
"@unocss/eslint-config": "^0.56.1",
|
||||
"@types/lodash-es": "^4.17.11",
|
||||
"@types/node": "^20.9.0",
|
||||
"@types/nprogress": "^0.2.3",
|
||||
"@types/qrcode": "^1.5.5",
|
||||
"@types/qs": "^6.9.10",
|
||||
"@types/sortablejs": "^1.15.5",
|
||||
"@typescript-eslint/eslint-plugin": "^6.11.0",
|
||||
"@typescript-eslint/parser": "^6.11.0",
|
||||
"@unocss/transformer-variant-group": "^0.57.4",
|
||||
"@unocss/eslint-config": "^0.57.4",
|
||||
"@vitejs/plugin-legacy": "^4.1.1",
|
||||
"@vitejs/plugin-vue": "^4.3.4",
|
||||
"@vitejs/plugin-vue": "^4.4.1",
|
||||
"@vitejs/plugin-vue-jsx": "^3.0.2",
|
||||
"@vue-macros/volar": "^0.14.3",
|
||||
"autoprefixer": "^10.4.16",
|
||||
"bpmn-js": "8.9.0",
|
||||
"bpmn-js-properties-panel": "0.46.0",
|
||||
"consola": "^3.2.3",
|
||||
"eslint": "^8.49.0",
|
||||
"eslint": "^8.53.0",
|
||||
"eslint-config-prettier": "^9.0.0",
|
||||
"eslint-define-config": "^1.23.0",
|
||||
"eslint-plugin-prettier": "^5.0.0",
|
||||
"eslint-plugin-vue": "^9.17.0",
|
||||
"lint-staged": "^14.0.1",
|
||||
"postcss": "^8.4.30",
|
||||
"eslint-define-config": "^1.24.1",
|
||||
"eslint-plugin-prettier": "^5.0.1",
|
||||
"eslint-plugin-vue": "^9.18.1",
|
||||
"lint-staged": "^15.1.0",
|
||||
"postcss": "^8.4.31",
|
||||
"postcss-html": "^1.5.0",
|
||||
"postcss-scss": "^4.0.8",
|
||||
"prettier": "^3.0.3",
|
||||
"rimraf": "^5.0.1",
|
||||
"rollup": "^3.29.2",
|
||||
"sass": "^1.68.0",
|
||||
"stylelint": "^15.10.3",
|
||||
"postcss-scss": "^4.0.9",
|
||||
"prettier": "^3.1.0",
|
||||
"rimraf": "^5.0.5",
|
||||
"rollup": "^4.4.1",
|
||||
"sass": "^1.69.5",
|
||||
"stylelint": "^15.11.0",
|
||||
"stylelint-config-html": "^1.1.0",
|
||||
"stylelint-config-recommended": "^13.0.0",
|
||||
"stylelint-config-standard": "^34.0.0",
|
||||
"stylelint-order": "^6.0.3",
|
||||
"terser": "^5.20.0",
|
||||
"terser": "^5.24.0",
|
||||
"typescript": "5.2.2",
|
||||
"unocss": "^0.56.1",
|
||||
"unplugin-auto-import": "^0.16.6",
|
||||
"unocss": "^0.57.4",
|
||||
"unplugin-auto-import": "^0.16.7",
|
||||
"unplugin-element-plus": "^0.8.0",
|
||||
"unplugin-vue-components": "^0.25.2",
|
||||
"vite": "4.4.9",
|
||||
"vite": "4.5.0",
|
||||
"vite-plugin-compression": "^0.5.1",
|
||||
"vite-plugin-ejs": "^1.6.4",
|
||||
"vite-plugin-eslint": "^1.8.1",
|
||||
@@ -126,8 +126,8 @@
|
||||
"vite-plugin-purge-icons": "^0.9.2",
|
||||
"vite-plugin-svg-icons": "^2.0.1",
|
||||
"vite-plugin-top-level-await": "^1.3.1",
|
||||
"vue-eslint-parser": "^9.3.1",
|
||||
"vue-tsc": "^1.8.13"
|
||||
"vue-eslint-parser": "^9.3.2",
|
||||
"vue-tsc": "^1.8.22"
|
||||
},
|
||||
"license": "MIT",
|
||||
"repository": {
|
||||
|
||||
@@ -51,3 +51,31 @@ export const getReturnList = async (params) => {
|
||||
export const returnTask = async (data) => {
|
||||
return await request.put({ url: '/bpm/task/return', data })
|
||||
}
|
||||
|
||||
/**
|
||||
* 委派
|
||||
*/
|
||||
export const delegateTask = async (data) => {
|
||||
return await request.put({ url: '/bpm/task/delegate', data })
|
||||
}
|
||||
|
||||
/**
|
||||
* 加签
|
||||
*/
|
||||
export const taskAddSign = async (data) => {
|
||||
return await request.put({ url: '/bpm/task/create-sign', data })
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取减签任务列表
|
||||
*/
|
||||
export const getChildrenTaskList = async (id: string) => {
|
||||
return await request.get({ url: '/bpm/task/children-list?taskId=' + id })
|
||||
}
|
||||
|
||||
/**
|
||||
* 减签
|
||||
*/
|
||||
export const taskSubSign = async (data) => {
|
||||
return await request.delete({ url: '/bpm/task/delete-sign', data })
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
import request from '@/config/axios'
|
||||
|
||||
export interface ClueVO {
|
||||
id: number
|
||||
transformStatus: boolean
|
||||
followUpStatus: boolean
|
||||
name: string
|
||||
customerId: number
|
||||
contactNextTime: Date
|
||||
telephone: string
|
||||
mobile: string
|
||||
address: string
|
||||
ownerUserId: number
|
||||
contactLastTime: Date
|
||||
remark: string
|
||||
}
|
||||
|
||||
// 查询线索列表
|
||||
export const getCluePage = async (params) => {
|
||||
return await request.get({ url: `/crm/clue/page`, params })
|
||||
}
|
||||
|
||||
// 查询线索详情
|
||||
export const getClue = async (id: number) => {
|
||||
return await request.get({ url: `/crm/clue/get?id=` + id })
|
||||
}
|
||||
|
||||
// 新增线索
|
||||
export const createClue = async (data: ClueVO) => {
|
||||
return await request.post({ url: `/crm/clue/create`, data })
|
||||
}
|
||||
|
||||
// 修改线索
|
||||
export const updateClue = async (data: ClueVO) => {
|
||||
return await request.put({ url: `/crm/clue/update`, data })
|
||||
}
|
||||
|
||||
// 删除线索
|
||||
export const deleteClue = async (id: number) => {
|
||||
return await request.delete({ url: `/crm/clue/delete?id=` + id })
|
||||
}
|
||||
|
||||
// 导出线索 Excel
|
||||
export const exportClue = async (params) => {
|
||||
return await request.download({ url: `/crm/clue/export-excel`, params })
|
||||
}
|
||||
@@ -0,0 +1,67 @@
|
||||
/*
|
||||
* @Author: zyna
|
||||
* @Date: 2023-11-05 13:34:41
|
||||
* @LastEditTime: 2023-11-26 20:47:04
|
||||
* @FilePath: \yudao-ui-admin-vue3\src\api\crm\contact\index.ts
|
||||
* @Description:
|
||||
*/
|
||||
import request from '@/config/axios'
|
||||
|
||||
export interface ContactVO {
|
||||
name: string
|
||||
nextTime: Date
|
||||
mobile: string
|
||||
telephone: string
|
||||
email: string
|
||||
post: string
|
||||
customerId: number
|
||||
address: string
|
||||
remark: string
|
||||
ownerUserId: string
|
||||
lastTime: Date
|
||||
id: number
|
||||
parentId: number
|
||||
qq: number
|
||||
wechat: string
|
||||
sex: number
|
||||
master: boolean
|
||||
creatorName: string
|
||||
updateTime?: Date
|
||||
createTime?: Date
|
||||
customerName: string,
|
||||
areaName: string,
|
||||
ownerUserName: string
|
||||
}
|
||||
|
||||
// 查询crm联系人列表
|
||||
export const getContactPage = async (params) => {
|
||||
return await request.get({ url: `/crm/contact/page`, params })
|
||||
}
|
||||
|
||||
// 查询crm联系人详情
|
||||
export const getContact = async (id: number) => {
|
||||
return await request.get({ url: `/crm/contact/get?id=` + id })
|
||||
}
|
||||
|
||||
// 新增crm联系人
|
||||
export const createContact = async (data: ContactVO) => {
|
||||
return await request.post({ url: `/crm/contact/create`, data })
|
||||
}
|
||||
|
||||
// 修改crm联系人
|
||||
export const updateContact = async (data: ContactVO) => {
|
||||
return await request.put({ url: `/crm/contact/update`, data })
|
||||
}
|
||||
|
||||
// 删除crm联系人
|
||||
export const deleteContact = async (id: number) => {
|
||||
return await request.delete({ url: `/crm/contact/delete?id=` + id })
|
||||
}
|
||||
|
||||
// 导出crm联系人 Excel
|
||||
export const exportContact = async (params) => {
|
||||
return await request.download({ url: `/crm/contact/export-excel`, params })
|
||||
}
|
||||
export const simpleAllList = async () => {
|
||||
return await request.get({ url: `/crm/contact/simple-all-list` })
|
||||
}
|
||||
@@ -0,0 +1,53 @@
|
||||
import request from '@/config/axios'
|
||||
|
||||
export interface ContractVO {
|
||||
id: number
|
||||
name: string
|
||||
customerId: number
|
||||
businessId: number
|
||||
processInstanceId: number
|
||||
orderDate: Date
|
||||
ownerUserId: number
|
||||
no: string
|
||||
startTime: Date
|
||||
endTime: Date
|
||||
price: number
|
||||
discountPercent: number
|
||||
productPrice: number
|
||||
roUserIds: string
|
||||
rwUserIds: string
|
||||
contactId: number
|
||||
signUserId: number
|
||||
contactLastTime: Date
|
||||
remark: string
|
||||
}
|
||||
|
||||
// 查询合同列表
|
||||
export const getContractPage = async (params) => {
|
||||
return await request.get({ url: `/crm/contract/page`, params })
|
||||
}
|
||||
|
||||
// 查询合同详情
|
||||
export const getContract = async (id: number) => {
|
||||
return await request.get({ url: `/crm/contract/get?id=` + id })
|
||||
}
|
||||
|
||||
// 新增合同
|
||||
export const createContract = async (data: ContractVO) => {
|
||||
return await request.post({ url: `/crm/contract/create`, data })
|
||||
}
|
||||
|
||||
// 修改合同
|
||||
export const updateContract = async (data: ContractVO) => {
|
||||
return await request.put({ url: `/crm/contract/update`, data })
|
||||
}
|
||||
|
||||
// 删除合同
|
||||
export const deleteContract = async (id: number) => {
|
||||
return await request.delete({ url: `/crm/contract/delete?id=` + id })
|
||||
}
|
||||
|
||||
// 导出合同 Excel
|
||||
export const exportContract = async (params) => {
|
||||
return await request.download({ url: `/crm/contract/export-excel`, params })
|
||||
}
|
||||
@@ -0,0 +1,68 @@
|
||||
import request from '@/config/axios'
|
||||
|
||||
export interface CustomerVO {
|
||||
id?: number
|
||||
name: string
|
||||
industryId: number
|
||||
level: number
|
||||
source: number
|
||||
followUpStatus?: boolean
|
||||
lockStatus?: boolean
|
||||
dealStatus?: boolean
|
||||
mobile: string
|
||||
telephone: string
|
||||
website: string
|
||||
qq: string
|
||||
wechat: string
|
||||
email: string
|
||||
description: string
|
||||
remark: string
|
||||
ownerUserId?: number
|
||||
ownerUserName?: string
|
||||
ownerUserDept?: string
|
||||
roUserIds?: string
|
||||
rwUserIds?: string
|
||||
areaId?: number
|
||||
areaName?: string
|
||||
detailAddress: string
|
||||
contactLastTime?: Date
|
||||
contactNextTime: Date
|
||||
createTime?: Date
|
||||
updateTime?: Date
|
||||
creator?: string
|
||||
creatorName?: string
|
||||
}
|
||||
|
||||
// 查询客户列表
|
||||
export const getCustomerPage = async (params) => {
|
||||
return await request.get({ url: `/crm/customer/page`, params })
|
||||
}
|
||||
|
||||
// 查询客户详情
|
||||
export const getCustomer = async (id: number) => {
|
||||
return await request.get({ url: `/crm/customer/get?id=` + id })
|
||||
}
|
||||
|
||||
// 新增客户
|
||||
export const createCustomer = async (data: CustomerVO) => {
|
||||
return await request.post({ url: `/crm/customer/create`, data })
|
||||
}
|
||||
|
||||
// 修改客户
|
||||
export const updateCustomer = async (data: CustomerVO) => {
|
||||
return await request.put({ url: `/crm/customer/update`, data })
|
||||
}
|
||||
|
||||
// 删除客户
|
||||
export const deleteCustomer = async (id: number) => {
|
||||
return await request.delete({ url: `/crm/customer/delete?id=` + id })
|
||||
}
|
||||
|
||||
// 导出客户 Excel
|
||||
export const exportCustomer = async (params) => {
|
||||
return await request.download({ url: `/crm/customer/export-excel`, params })
|
||||
}
|
||||
//客户列表
|
||||
export const queryAllList = async () => {
|
||||
return await request.get({ url: `/crm/customer/query-all-list` })
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
import request from '@/config/axios'
|
||||
|
||||
export interface CustomerLimitConfigVO {
|
||||
id?: number
|
||||
type?: number
|
||||
userIds?: string
|
||||
deptIds?: string
|
||||
maxCount?: number
|
||||
dealCountEnabled?: boolean
|
||||
}
|
||||
|
||||
// 查询客户限制配置列表
|
||||
export const getCustomerLimitConfigPage = async (params) => {
|
||||
return await request.get({ url: `/crm/customer-limit-config/page`, params })
|
||||
}
|
||||
|
||||
// 查询客户限制配置详情
|
||||
export const getCustomerLimitConfig = async (id: number) => {
|
||||
return await request.get({ url: `/crm/customer-limit-config/get?id=` + id })
|
||||
}
|
||||
|
||||
// 新增客户限制配置
|
||||
export const createCustomerLimitConfig = async (data: CustomerLimitConfigVO) => {
|
||||
return await request.post({ url: `/crm/customer-limit-config/create`, data })
|
||||
}
|
||||
|
||||
// 修改客户限制配置
|
||||
export const updateCustomerLimitConfig = async (data: CustomerLimitConfigVO) => {
|
||||
return await request.put({ url: `/crm/customer-limit-config/update`, data })
|
||||
}
|
||||
|
||||
// 删除客户限制配置
|
||||
export const deleteCustomerLimitConfig = async (id: number) => {
|
||||
return await request.delete({ url: `/crm/customer-limit-config/delete?id=` + id })
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
import request from '@/config/axios'
|
||||
|
||||
export interface CustomerPoolConfigVO {
|
||||
enabled?: boolean
|
||||
contactExpireDays?: number
|
||||
dealExpireDays?: number
|
||||
notifyEnabled?: boolean
|
||||
notifyDays: number
|
||||
}
|
||||
|
||||
// 获取客户公海规则设置
|
||||
export const getCustomerPoolConfig = async () => {
|
||||
return await request.get({ url: `/crm/customer-pool-config/get` })
|
||||
}
|
||||
|
||||
// 更新客户公海规则设置
|
||||
export const updateCustomerPoolConfig = async (data: ConfigVO) => {
|
||||
return await request.put({ url: `/crm/customer-pool-config/update`, data })
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
import request from '@/config/axios'
|
||||
|
||||
export interface PermissionVO {
|
||||
id?: number // 数据权限编号
|
||||
userId: number | undefined // 用户编号
|
||||
bizType: number | undefined // Crm 类型
|
||||
bizId: number | undefined // Crm 类型数据编号
|
||||
level: number | undefined // 权限级别
|
||||
deptName?: string // 部门名称
|
||||
nickname?: string // 用户昵称
|
||||
postNames?: string[] // 岗位名称数组
|
||||
createTime?: Date
|
||||
}
|
||||
|
||||
// 查询团队成员列表
|
||||
export const getPermissionList = async (params) => {
|
||||
return await request.get({ url: `/crm/permission/list`, params })
|
||||
}
|
||||
|
||||
// 新增团队成员
|
||||
export const createPermission = async (data: PermissionVO) => {
|
||||
return await request.post({ url: `/crm/permission/create`, data })
|
||||
}
|
||||
|
||||
// 修改团队成员权限级别
|
||||
export const updatePermission = async (data) => {
|
||||
return await request.put({ url: `/crm/permission/update`, data })
|
||||
}
|
||||
|
||||
// 删除团队成员
|
||||
export const deletePermission = async (params) => {
|
||||
return await request.delete({ url: '/crm/permission/delete', params })
|
||||
}
|
||||
|
||||
// 退出团队
|
||||
export const quitTeam = async (id) => {
|
||||
return await request.delete({ url: '/crm/permission/quit-team?id=' + id })
|
||||
}
|
||||
|
||||
// 领取公海数据
|
||||
export const receive = async (data: { bizType: number; bizId: number }) => {
|
||||
return await request.put({ url: `/crm/permission/receive`, data })
|
||||
}
|
||||
|
||||
// 数据放入公海
|
||||
export const putPool = async (data: { bizType: number; bizId: number }) => {
|
||||
return await request.put({ url: `/crm/permission/put-pool`, data })
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
import request from '@/config/axios'
|
||||
|
||||
export interface ProductVO {
|
||||
id: number
|
||||
name: string
|
||||
no: string
|
||||
unit: string
|
||||
price: number
|
||||
status: number
|
||||
categoryId: number
|
||||
description: string
|
||||
ownerUserId: number
|
||||
}
|
||||
|
||||
// 查询产品列表
|
||||
export const getProductPage = async (params) => {
|
||||
return await request.get({ url: `/crm/product/page`, params })
|
||||
}
|
||||
|
||||
// 查询产品详情
|
||||
export const getProduct = async (id: number) => {
|
||||
return await request.get({ url: `/crm/product/get?id=` + id })
|
||||
}
|
||||
|
||||
// 新增产品
|
||||
export const createProduct = async (data: ProductVO) => {
|
||||
return await request.post({ url: `/crm/product/create`, data })
|
||||
}
|
||||
|
||||
// 修改产品
|
||||
export const updateProduct = async (data: ProductVO) => {
|
||||
return await request.put({ url: `/crm/product/update`, data })
|
||||
}
|
||||
|
||||
// 删除产品
|
||||
export const deleteProduct = async (id: number) => {
|
||||
return await request.delete({ url: `/crm/product/delete?id=` + id })
|
||||
}
|
||||
|
||||
// 导出产品 Excel
|
||||
export const exportProduct = async (params) => {
|
||||
return await request.download({ url: `/crm/product/export-excel`, params })
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
import request from '@/config/axios'
|
||||
|
||||
// TODO @zange:挪到 product 下,建个 category 包,挪进去哈;
|
||||
export interface ProductCategoryVO {
|
||||
id: number
|
||||
name: string
|
||||
parentId: number
|
||||
}
|
||||
|
||||
// 查询产品分类详情
|
||||
export const getProductCategory = async (id: number) => {
|
||||
return await request.get({ url: `/crm/product-category/get?id=` + id })
|
||||
}
|
||||
|
||||
// 新增产品分类
|
||||
export const createProductCategory = async (data: ProductCategoryVO) => {
|
||||
return await request.post({ url: `/crm/product-category/create`, data })
|
||||
}
|
||||
|
||||
// 修改产品分类
|
||||
export const updateProductCategory = async (data: ProductCategoryVO) => {
|
||||
return await request.put({ url: `/crm/product-category/update`, data })
|
||||
}
|
||||
|
||||
// 删除产品分类
|
||||
export const deleteProductCategory = async (id: number) => {
|
||||
return await request.delete({ url: `/crm/product-category/delete?id=` + id })
|
||||
}
|
||||
|
||||
// 产品分类列表
|
||||
export const getProductCategoryList = async (params) => {
|
||||
return await request.get({ url: `/crm/product-category/list`, params })
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
import request from '@/config/axios'
|
||||
|
||||
export interface ReceivableVO {
|
||||
id: number
|
||||
no: string
|
||||
planId: number
|
||||
customerId: number
|
||||
contractId: number
|
||||
checkStatus: number
|
||||
processInstanceId: number
|
||||
returnTime: Date
|
||||
returnType: string
|
||||
price: number
|
||||
ownerUserId: number
|
||||
batchId: number
|
||||
sort: number
|
||||
dataScope: number
|
||||
dataScopeDeptIds: string
|
||||
status: number
|
||||
remark: string
|
||||
}
|
||||
|
||||
// 查询回款管理列表
|
||||
export const getReceivablePage = async (params) => {
|
||||
return await request.get({ url: `/crm/receivable/page`, params })
|
||||
}
|
||||
|
||||
// 查询回款管理详情
|
||||
export const getReceivable = async (id: number) => {
|
||||
return await request.get({ url: `/crm/receivable/get?id=` + id })
|
||||
}
|
||||
|
||||
// 新增回款管理
|
||||
export const createReceivable = async (data: ReceivableVO) => {
|
||||
return await request.post({ url: `/crm/receivable/create`, data })
|
||||
}
|
||||
|
||||
// 修改回款管理
|
||||
export const updateReceivable = async (data: ReceivableVO) => {
|
||||
return await request.put({ url: `/crm/receivable/update`, data })
|
||||
}
|
||||
|
||||
// 删除回款管理
|
||||
export const deleteReceivable = async (id: number) => {
|
||||
return await request.delete({ url: `/crm/receivable/delete?id=` + id })
|
||||
}
|
||||
|
||||
// 导出回款管理 Excel
|
||||
export const exportReceivable = async (params) => {
|
||||
return await request.download({ url: `/crm/receivable/export-excel`, params })
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
import request from '@/config/axios'
|
||||
|
||||
export interface ReceivablePlanVO {
|
||||
id: number
|
||||
period: number
|
||||
receivableId: number
|
||||
status: number
|
||||
checkStatus: string
|
||||
processInstanceId: number
|
||||
price: number
|
||||
returnTime: Date
|
||||
remindDays: number
|
||||
remindTime: Date
|
||||
customerId: number
|
||||
contractId: number
|
||||
ownerUserId: number
|
||||
sort: number
|
||||
remark: string
|
||||
}
|
||||
|
||||
// 查询回款计划列表
|
||||
export const getReceivablePlanPage = async (params) => {
|
||||
return await request.get({ url: `/crm/receivable-plan/page`, params })
|
||||
}
|
||||
|
||||
// 查询回款计划详情
|
||||
export const getReceivablePlan = async (id: number) => {
|
||||
return await request.get({ url: `/crm/receivable-plan/get?id=` + id })
|
||||
}
|
||||
|
||||
// 新增回款计划
|
||||
export const createReceivablePlan = async (data: ReceivablePlanVO) => {
|
||||
return await request.post({ url: `/crm/receivable-plan/create`, data })
|
||||
}
|
||||
|
||||
// 修改回款计划
|
||||
export const updateReceivablePlan = async (data: ReceivablePlanVO) => {
|
||||
return await request.put({ url: `/crm/receivable-plan/update`, data })
|
||||
}
|
||||
|
||||
// 删除回款计划
|
||||
export const deleteReceivablePlan = async (id: number) => {
|
||||
return await request.delete({ url: `/crm/receivable-plan/delete?id=` + id })
|
||||
}
|
||||
|
||||
// 导出回款计划 Excel
|
||||
export const exportReceivablePlan = async (params) => {
|
||||
return await request.download({ url: `/crm/receivable-plan/export-excel`, params })
|
||||
}
|
||||