bohui-vue 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +121 -0
- package/bin/create-vue-template.js +565 -0
- package/package.json +28 -0
- package/templates/vue-project/.browserslistrc +3 -0
- package/templates/vue-project/.editorconfig +28 -0
- package/templates/vue-project/.env.development +2 -0
- package/templates/vue-project/.env.production +2 -0
- package/templates/vue-project/.eslintrc.cjs +76 -0
- package/templates/vue-project/.keep +0 -0
- package/templates/vue-project/.node-version +1 -0
- package/templates/vue-project/.prettierignore +13 -0
- package/templates/vue-project/.prettierrc +20 -0
- package/templates/vue-project/.prettierrc.txt +130 -0
- package/templates/vue-project/.stylelintrc.json +94 -0
- package/templates/vue-project/README.md +24 -0
- package/templates/vue-project/babel.config.js +5 -0
- package/templates/vue-project/index.html +34 -0
- package/templates/vue-project/package.json +75 -0
- package/templates/vue-project/public/favicon.ico +0 -0
- package/templates/vue-project/public/static/img/ai-default.jpg +0 -0
- package/templates/vue-project/public/static/img/image.png +0 -0
- package/templates/vue-project/public/static/img/ppt1.png +0 -0
- package/templates/vue-project/public/static/img/ppt2.png +0 -0
- package/templates/vue-project/public/static/img/ppt3.png +0 -0
- package/templates/vue-project/public/static/js/config.js +11 -0
- package/templates/vue-project/public/static/js/dataConfig.js +1143 -0
- package/templates/vue-project/src/App.vue +10 -0
- package/templates/vue-project/src/api/error-handler.ts +60 -0
- package/templates/vue-project/src/api/http.ts +254 -0
- package/templates/vue-project/src/api/services/aicebd.ts +47 -0
- package/templates/vue-project/src/api/services/base.ts +18 -0
- package/templates/vue-project/src/api/services/umse.ts +17 -0
- package/templates/vue-project/src/assets/font/Alibaba-PuHuiTi-Medium.otf +0 -0
- package/templates/vue-project/src/assets/font/Alibaba-PuHuiTi-Regular.otf +0 -0
- package/templates/vue-project/src/assets/font/DOUYINSANSBOLD.OTF +0 -0
- package/templates/vue-project/src/assets/font/Pangmen-Title.TTF +0 -0
- package/templates/vue-project/src/assets/font/font.css +25 -0
- package/templates/vue-project/src/assets/iconfont/iconfont.css +402 -0
- package/templates/vue-project/src/assets/iconfont/iconfont.js +66 -0
- package/templates/vue-project/src/assets/iconfont/iconfont.json +688 -0
- package/templates/vue-project/src/assets/iconfont/iconfont.ttf +0 -0
- package/templates/vue-project/src/assets/iconfont/iconfont.woff +0 -0
- package/templates/vue-project/src/assets/iconfont/iconfont.woff2 +0 -0
- package/templates/vue-project/src/assets/images/Click-tap.png +0 -0
- package/templates/vue-project/src/assets/images/Effects.png +0 -0
- package/templates/vue-project/src/assets/images/bg.png +0 -0
- package/templates/vue-project/src/assets/images/erCode.png +0 -0
- package/templates/vue-project/src/assets/images/header-bg.png +0 -0
- package/templates/vue-project/src/assets/images/logo.png +0 -0
- package/templates/vue-project/src/assets/scss/common.scss +530 -0
- package/templates/vue-project/src/assets/styles/element-overrides.css +53 -0
- package/templates/vue-project/src/assets/styles/reset.css +186 -0
- package/templates/vue-project/src/assets/styles/theme.css +100 -0
- package/templates/vue-project/src/components/BarChart.vue +238 -0
- package/templates/vue-project/src/components/echarts/EChart.vue +140 -0
- package/templates/vue-project/src/composables/useTheme.ts +84 -0
- package/templates/vue-project/src/main.ts +111 -0
- package/templates/vue-project/src/mocks/base.ts +37 -0
- package/templates/vue-project/src/mocks/umse.ts +31 -0
- package/templates/vue-project/src/router/index.ts +32 -0
- package/templates/vue-project/src/shims-vue.d.ts +19 -0
- package/templates/vue-project/src/store/index.ts +18 -0
- package/templates/vue-project/src/store/modules/user.ts +85 -0
- package/templates/vue-project/src/types/DTO/aicebd.d.ts +60 -0
- package/templates/vue-project/src/types/DTO/base.d.ts +26 -0
- package/templates/vue-project/src/types/DTO/global.d.ts +48 -0
- package/templates/vue-project/src/types/VO/teachingLog.d.ts +15 -0
- package/templates/vue-project/src/types/auto-imports.d.ts +73 -0
- package/templates/vue-project/src/types/components.d.ts +17 -0
- package/templates/vue-project/src/types/element-plus.d.ts +15 -0
- package/templates/vue-project/src/types/js-cookie.d.ts +1 -0
- package/templates/vue-project/src/types/unocss.d.ts +2 -0
- package/templates/vue-project/src/types/vite-plugins.d.ts +3 -0
- package/templates/vue-project/src/types/vue-router.d.ts +1 -0
- package/templates/vue-project/src/types/window-config.d.ts +12 -0
- package/templates/vue-project/src/utils/com-methods.ts +307 -0
- package/templates/vue-project/src/utils/echarts.ts +111 -0
- package/templates/vue-project/src/utils/number.ts +99 -0
- package/templates/vue-project/src/utils/rem.ts +82 -0
- package/templates/vue-project/src/utils/responsive.ts +103 -0
- package/templates/vue-project/src/utils/time.ts +314 -0
- package/templates/vue-project/src/utils/tracker.ts +527 -0
- package/templates/vue-project/src/utils/validators.ts +85 -0
- package/templates/vue-project/src/utils/window.ts +132 -0
- package/templates/vue-project/src/views/home/Home.vue +60 -0
- package/templates/vue-project/src/views/home/composables/useUserAuth.ts +13 -0
- package/templates/vue-project/src/views/teachingLog/TeachingLog.vue +40 -0
- package/templates/vue-project/src/views/teachingLog/__tests__/TeachingEffect.test.ts +96 -0
- package/templates/vue-project/src/views/teachingLog/__tests__/TeachingHighlight.test.ts +66 -0
- package/templates/vue-project/src/views/teachingLog/__tests__/TeachingLog.test.ts +34 -0
- package/templates/vue-project/src/views/teachingLog/components/TeachingEffect.vue +458 -0
- package/templates/vue-project/src/views/teachingLog/components/TeachingHighlight.vue +181 -0
- package/templates/vue-project/src/views/teachingLog/composables/useEffectTooltip.ts +88 -0
- package/templates/vue-project/src/views/teachingLog/composables/useEffectTrendChart.ts +160 -0
- package/templates/vue-project/tests/setup.ts +27 -0
- package/templates/vue-project/tsconfig.json +24 -0
- package/templates/vue-project/tsconfig.node.json +41 -0
- package/templates/vue-project/uno.config.ts +84 -0
- package/templates/vue-project/vite.config.ts +216 -0
- package/templates/vue-project/vue3_ai_prompt.md +652 -0
- package/templates/vue-project/vue3_ai_prompt_basic.md +722 -0
- package/templates/vue-project/vue3_ai_prompt_full.md +1021 -0
- package/templates/vue-project/vue3_ai_prompt_unocss.md +768 -0
- package/templates/vue-project//345/267/245/347/250/213/345/214/226/346/250/241/346/235/277/344/273/213/347/273/215.md +463 -0
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# EditorConfig 是帮助多个编辑器和 IDE 保持一致的编码风格的工具
|
|
2
|
+
# https://editorconfig.org
|
|
3
|
+
|
|
4
|
+
root = true
|
|
5
|
+
|
|
6
|
+
[*]
|
|
7
|
+
charset = utf-8
|
|
8
|
+
end_of_line = lf
|
|
9
|
+
indent_style = space
|
|
10
|
+
indent_size = 4
|
|
11
|
+
insert_final_newline = true
|
|
12
|
+
trim_trailing_whitespace = true
|
|
13
|
+
|
|
14
|
+
[*.{js,ts,vue}]
|
|
15
|
+
indent_size = 2
|
|
16
|
+
|
|
17
|
+
[*.md]
|
|
18
|
+
trim_trailing_whitespace = false
|
|
19
|
+
max_line_length = off
|
|
20
|
+
|
|
21
|
+
[*.{yml,yaml}]
|
|
22
|
+
indent_size = 2
|
|
23
|
+
|
|
24
|
+
[*.json]
|
|
25
|
+
indent_size = 2
|
|
26
|
+
|
|
27
|
+
[Makefile]
|
|
28
|
+
indent_style = tab
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
module.exports = {
|
|
2
|
+
root: true, // 指定根目录
|
|
3
|
+
env: {
|
|
4
|
+
browser: true, // 浏览器全局变量(如 window、document)
|
|
5
|
+
es6: true, // 兼容 ESLint 6 的 ES 环境配置
|
|
6
|
+
node: true, // 支持 Node.js 全局变量(如 process、__dirname)
|
|
7
|
+
},
|
|
8
|
+
globals: {
|
|
9
|
+
defineProps: "readonly",
|
|
10
|
+
defineEmits: "readonly",
|
|
11
|
+
defineExpose: "readonly",
|
|
12
|
+
withDefaults: "readonly",
|
|
13
|
+
},
|
|
14
|
+
extends: [
|
|
15
|
+
"eslint:recommended",
|
|
16
|
+
"plugin:vue/vue3-recommended",
|
|
17
|
+
"plugin:@typescript-eslint/recommended",
|
|
18
|
+
"prettier",
|
|
19
|
+
],
|
|
20
|
+
parser: "vue-eslint-parser", // 使用 Vue 文件解析器
|
|
21
|
+
parserOptions: {
|
|
22
|
+
ecmaVersion: "latest", // 使用最新 ECMAScript 版本
|
|
23
|
+
parser: "@typescript-eslint/parser", // 使用 TypeScript 解析器TypeScript(用于 <script> 中的 TS)
|
|
24
|
+
sourceType: "module", // 使用ES6模块化语法
|
|
25
|
+
},
|
|
26
|
+
plugins: ["vue", "@typescript-eslint"], // 使用 Vue 和 TypeScript 插件
|
|
27
|
+
rules: {
|
|
28
|
+
// Vue 相关规则
|
|
29
|
+
"vue/multi-word-component-names": "off", // 关闭:允许单字组件名(如 <Header>)
|
|
30
|
+
"vue/no-v-html": "off", // 关闭:允许使用 v-html 指令
|
|
31
|
+
"vue/require-default-prop": "off", // 关闭:Props 不需要默认值
|
|
32
|
+
"vue/html-self-closing": [
|
|
33
|
+
// 强制自闭合标签
|
|
34
|
+
"error", // 违反规则时报错(阻止代码提交)
|
|
35
|
+
{
|
|
36
|
+
html: {
|
|
37
|
+
void: "always", // void 元素:必须自闭合:<br>、<img>、<input>
|
|
38
|
+
normal: "never", // 普通元素:禁止自闭合:<div>、<span>、<p>
|
|
39
|
+
component: "always", // Vue 组件:必须自闭合:<MyComponent>、<el-button>
|
|
40
|
+
},
|
|
41
|
+
svg: "always", // SVG 元素:必须自闭合
|
|
42
|
+
math: "always", // MathML 元素:必须自闭合
|
|
43
|
+
},
|
|
44
|
+
],
|
|
45
|
+
|
|
46
|
+
// TypeScript 相关规则
|
|
47
|
+
"@typescript-eslint/no-explicit-any": "warn", // 警告:禁止使用 any 类型
|
|
48
|
+
"@typescript-eslint/no-unused-vars": [
|
|
49
|
+
"warn", // 警告:禁止未使用的变量
|
|
50
|
+
{
|
|
51
|
+
argsIgnorePattern: "^_", // 忽略以 _ 开头的参数
|
|
52
|
+
varsIgnorePattern: "^_", // 忽略以 _ 开头的变量
|
|
53
|
+
},
|
|
54
|
+
],
|
|
55
|
+
|
|
56
|
+
// 通用规则
|
|
57
|
+
"no-console": process.env.NODE_ENV === "production" ? "warn" : "off", // 警告:禁止使用 console
|
|
58
|
+
"no-debugger": process.env.NODE_ENV === "production" ? "error" : "off", // 错误:禁止使用 debugger
|
|
59
|
+
},
|
|
60
|
+
ignorePatterns: ["dist", "node_modules", "*.d.ts", "src/assets/iconfont/*.js"],
|
|
61
|
+
overrides: [
|
|
62
|
+
{
|
|
63
|
+
files: ["**/*.ts", "**/*.tsx", "**/*.vue"],
|
|
64
|
+
rules: {
|
|
65
|
+
"no-undef": "off",
|
|
66
|
+
},
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
files: ["src/mocks/**/*.ts"],
|
|
70
|
+
rules: {
|
|
71
|
+
"@typescript-eslint/no-explicit-any": "off",
|
|
72
|
+
"@typescript-eslint/explicit-module-boundary-types": "off",
|
|
73
|
+
},
|
|
74
|
+
},
|
|
75
|
+
],
|
|
76
|
+
};
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
22.0.0
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"semi": true,
|
|
3
|
+
"singleQuote": false,
|
|
4
|
+
"tabWidth": 4,
|
|
5
|
+
"useTabs": false,
|
|
6
|
+
"printWidth": 100,
|
|
7
|
+
"trailingComma": "es5",
|
|
8
|
+
"endOfLine": "lf",
|
|
9
|
+
|
|
10
|
+
"arrowParens": "always",
|
|
11
|
+
"bracketSpacing": true,
|
|
12
|
+
"bracketSameLine": false,
|
|
13
|
+
"quoteProps": "as-needed",
|
|
14
|
+
|
|
15
|
+
"jsxSingleQuote": false,
|
|
16
|
+
"singleAttributePerLine": true,
|
|
17
|
+
"vueIndentScriptAndStyle": false,
|
|
18
|
+
"embeddedLanguageFormatting": "auto",
|
|
19
|
+
"htmlWhitespaceSensitivity": "css"
|
|
20
|
+
}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
Prettier 配置项说明(团队约定与示例)
|
|
2
|
+
|
|
3
|
+
1) semi: 是否在语句末尾添加分号
|
|
4
|
+
- 取值: true | false
|
|
5
|
+
- 推荐: true(更稳妥,避免 ASI 歧义)
|
|
6
|
+
- 示例:
|
|
7
|
+
true: const a = 1;
|
|
8
|
+
false: const a = 1
|
|
9
|
+
|
|
10
|
+
2) singleQuote: 是否使用单引号
|
|
11
|
+
- 取值: true | false
|
|
12
|
+
- 推荐: false(使用双引号,和 HTML/Vue 属性更统一)
|
|
13
|
+
|
|
14
|
+
3) tabWidth: 缩进宽度(空格数)
|
|
15
|
+
- 取值: 正整数(常用 2 / 4)
|
|
16
|
+
- 推荐: 2(前端主流)
|
|
17
|
+
|
|
18
|
+
4) useTabs: 是否使用制表符缩进
|
|
19
|
+
- 取值: true | false
|
|
20
|
+
- 推荐: false(统一使用空格)
|
|
21
|
+
|
|
22
|
+
5) printWidth: 每行最大字符数
|
|
23
|
+
- 取值: 正整数(如 80 / 100 / 120)
|
|
24
|
+
- 推荐: 100(可读性与换行平衡)
|
|
25
|
+
|
|
26
|
+
6) trailingComma: 尾随逗号策略(多行结构最后一项后面是否保留逗号)
|
|
27
|
+
- 取值: "none" | "es5" | "all"
|
|
28
|
+
- 推荐: "es5"(对象/数组/参数列表等保留,便于更干净的 diff)
|
|
29
|
+
- 示例(es5/all):
|
|
30
|
+
const arr = [
|
|
31
|
+
1,
|
|
32
|
+
2,
|
|
33
|
+
];
|
|
34
|
+
|
|
35
|
+
7) arrowParens: 箭头函数参数是否总带括号
|
|
36
|
+
- 取值: "always" | "avoid"
|
|
37
|
+
- 推荐: "always"(更一致,便于添加/修改参数)
|
|
38
|
+
- 示例:
|
|
39
|
+
always: (x) => x
|
|
40
|
+
avoid: x => x
|
|
41
|
+
|
|
42
|
+
8) endOfLine: 换行符
|
|
43
|
+
- 取值: "lf" | "crlf" | "cr" | "auto"
|
|
44
|
+
- 推荐: "lf"(跨平台统一)
|
|
45
|
+
|
|
46
|
+
9) bracketSpacing: 对象字面量大括号内侧是否加空格
|
|
47
|
+
- 取值: true | false
|
|
48
|
+
- 推荐: true
|
|
49
|
+
- 示例:
|
|
50
|
+
true: { a: 1 }
|
|
51
|
+
false: {a:1}
|
|
52
|
+
|
|
53
|
+
10) bracketSameLine: 多行 HTML/JSX/Vue 标签的闭合尖括号是否跟最后一行同一行
|
|
54
|
+
- 取值: true | false
|
|
55
|
+
- 推荐: false(更符合主流 UI 组件示例的风格)
|
|
56
|
+
- 示例:
|
|
57
|
+
false:
|
|
58
|
+
<Dialog
|
|
59
|
+
title="标题"
|
|
60
|
+
open
|
|
61
|
+
>
|
|
62
|
+
内容
|
|
63
|
+
</Dialog>
|
|
64
|
+
true:
|
|
65
|
+
<Dialog
|
|
66
|
+
title="标题"
|
|
67
|
+
open>
|
|
68
|
+
内容
|
|
69
|
+
</Dialog>
|
|
70
|
+
|
|
71
|
+
11) singleAttributePerLine: 单行是否只放一个属性(HTML/JSX/Vue)
|
|
72
|
+
- 取值: true | false
|
|
73
|
+
- 推荐: false(属性很多时可考虑 true 提升对齐可读性)
|
|
74
|
+
|
|
75
|
+
12) htmlWhitespaceSensitivity: HTML 空白敏感度(影响模板合并/换行)
|
|
76
|
+
- 取值: "css" | "strict" | "ignore"
|
|
77
|
+
- 推荐: "css"(默认,符合浏览器渲染直觉)
|
|
78
|
+
- 说明:
|
|
79
|
+
css: 按 CSS 规则处理空白;
|
|
80
|
+
strict: 更保守,尽量保留你的换行/空格;
|
|
81
|
+
ignore: 更激进地合并到一行(除非必须换行)。
|
|
82
|
+
|
|
83
|
+
13) quoteProps: 对象属性是否加引号
|
|
84
|
+
- 取值: "as-needed" | "consistent" | "preserve"
|
|
85
|
+
- 推荐: "as-needed"(仅必要时加,如含连字符/空格)
|
|
86
|
+
- 示例:
|
|
87
|
+
as-needed: { foo: 1, "bar-baz": 2 }
|
|
88
|
+
consistent: { "foo": 1, "bar-baz": 2 }
|
|
89
|
+
|
|
90
|
+
14) jsxSingleQuote: JSX/TSX 中是否使用单引号
|
|
91
|
+
- 取值: true | false
|
|
92
|
+
- 推荐: false(与 HTML 属性统一为双引号)
|
|
93
|
+
|
|
94
|
+
15) vueIndentScriptAndStyle: Vue 的 <script>/<style> 是否缩进
|
|
95
|
+
- 取值: true | false
|
|
96
|
+
- 推荐: false(避免整体多缩进一层)
|
|
97
|
+
|
|
98
|
+
16) embeddedLanguageFormatting: 模板字符串、内嵌代码是否自动格式化
|
|
99
|
+
- 取值: "auto" | "off"
|
|
100
|
+
- 推荐: "auto"
|
|
101
|
+
|
|
102
|
+
17) proseWrap: Markdown 文本换行
|
|
103
|
+
- 取值: "preserve" | "always" | "never"
|
|
104
|
+
- 推荐: "preserve"(按原文保留)
|
|
105
|
+
|
|
106
|
+
【团队推荐组合】
|
|
107
|
+
{
|
|
108
|
+
"semi": true,
|
|
109
|
+
"singleQuote": false,
|
|
110
|
+
"tabWidth": 2,
|
|
111
|
+
"useTabs": false,
|
|
112
|
+
"printWidth": 100,
|
|
113
|
+
"trailingComma": "es5",
|
|
114
|
+
"arrowParens": "always",
|
|
115
|
+
"endOfLine": "lf",
|
|
116
|
+
"bracketSpacing": true,
|
|
117
|
+
"bracketSameLine": false,
|
|
118
|
+
"singleAttributePerLine": false,
|
|
119
|
+
"htmlWhitespaceSensitivity": "css",
|
|
120
|
+
"quoteProps": "as-needed",
|
|
121
|
+
"jsxSingleQuote": false,
|
|
122
|
+
"vueIndentScriptAndStyle": false,
|
|
123
|
+
"embeddedLanguageFormatting": "auto",
|
|
124
|
+
"proseWrap": "preserve"
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
备注:
|
|
128
|
+
- Prettier 专注“格式”,代码质量由 ESLint 负责;
|
|
129
|
+
- 若与 ESLint 规则冲突,请使用 eslint-config-prettier 关闭冲突项;
|
|
130
|
+
- Windows 团队注意将 endOfLine 固定为 lf,避免跨平台差异。
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
{
|
|
2
|
+
"plugins": ["stylelint-order"],
|
|
3
|
+
"extends": ["stylelint-config-standard-scss"],
|
|
4
|
+
"overrides": [
|
|
5
|
+
{
|
|
6
|
+
"files": ["**/*.vue"],
|
|
7
|
+
"customSyntax": "postcss-html"
|
|
8
|
+
}
|
|
9
|
+
],
|
|
10
|
+
"rules": {
|
|
11
|
+
"selector-class-pattern": null,
|
|
12
|
+
"font-family-no-missing-generic-family-keyword": null,
|
|
13
|
+
"selector-pseudo-class-no-unknown": [
|
|
14
|
+
true,
|
|
15
|
+
{
|
|
16
|
+
"ignorePseudoClasses": ["deep", "v-deep", "global", "slotted"]
|
|
17
|
+
}
|
|
18
|
+
],
|
|
19
|
+
"order/properties-order": [
|
|
20
|
+
{
|
|
21
|
+
"groupName": "1. 与外部关系 (布局/定位)",
|
|
22
|
+
"emptyLineBefore": "never",
|
|
23
|
+
"properties": [
|
|
24
|
+
"display",
|
|
25
|
+
"visibility",
|
|
26
|
+
"position",
|
|
27
|
+
"top",
|
|
28
|
+
"right",
|
|
29
|
+
"bottom",
|
|
30
|
+
"left",
|
|
31
|
+
"z-index",
|
|
32
|
+
"float",
|
|
33
|
+
"clear",
|
|
34
|
+
"flex",
|
|
35
|
+
"flex-direction",
|
|
36
|
+
"flex-wrap",
|
|
37
|
+
"justify-content",
|
|
38
|
+
"align-items",
|
|
39
|
+
"margin",
|
|
40
|
+
"margin-top",
|
|
41
|
+
"margin-right",
|
|
42
|
+
"margin-bottom",
|
|
43
|
+
"margin-left"
|
|
44
|
+
]
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
"groupName": "2. 整体 UI 定义 (盒模型/尺寸)",
|
|
48
|
+
"emptyLineBefore": "never",
|
|
49
|
+
"properties": [
|
|
50
|
+
"box-sizing",
|
|
51
|
+
"width",
|
|
52
|
+
"min-width",
|
|
53
|
+
"max-width",
|
|
54
|
+
"height",
|
|
55
|
+
"min-height",
|
|
56
|
+
"max-height",
|
|
57
|
+
"padding",
|
|
58
|
+
"padding-top",
|
|
59
|
+
"padding-right",
|
|
60
|
+
"padding-bottom",
|
|
61
|
+
"padding-left",
|
|
62
|
+
"border",
|
|
63
|
+
"border-width",
|
|
64
|
+
"border-style",
|
|
65
|
+
"border-color",
|
|
66
|
+
"border-radius",
|
|
67
|
+
"overflow"
|
|
68
|
+
]
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
"groupName": "3. 内部 UI 定义 (外观/文字)",
|
|
72
|
+
"emptyLineBefore": "never",
|
|
73
|
+
"properties": [
|
|
74
|
+
"color",
|
|
75
|
+
"font-size",
|
|
76
|
+
"font-family",
|
|
77
|
+
"font-weight",
|
|
78
|
+
"line-height",
|
|
79
|
+
"text-align",
|
|
80
|
+
"text-transform",
|
|
81
|
+
"text-decoration",
|
|
82
|
+
"background",
|
|
83
|
+
"background-color",
|
|
84
|
+
"background-image",
|
|
85
|
+
"opacity",
|
|
86
|
+
"box-shadow",
|
|
87
|
+
"cursor",
|
|
88
|
+
"transition",
|
|
89
|
+
"animation"
|
|
90
|
+
]
|
|
91
|
+
}
|
|
92
|
+
]
|
|
93
|
+
}
|
|
94
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# vue3_elementuiplus_ts
|
|
2
|
+
|
|
3
|
+
## Project setup
|
|
4
|
+
```
|
|
5
|
+
npm install
|
|
6
|
+
```
|
|
7
|
+
|
|
8
|
+
### Compiles and hot-reloads for development
|
|
9
|
+
```
|
|
10
|
+
npm run serve
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
### Compiles and minifies for production
|
|
14
|
+
```
|
|
15
|
+
npm run build
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
### Lints and fixes files
|
|
19
|
+
```
|
|
20
|
+
npm run lint
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
### Customize configuration
|
|
24
|
+
See [Configuration Reference](https://cli.vuejs.org/config/).
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8" />
|
|
5
|
+
<meta
|
|
6
|
+
http-equiv="X-UA-Compatible"
|
|
7
|
+
content="IE=edge"
|
|
8
|
+
/>
|
|
9
|
+
<meta
|
|
10
|
+
name="viewport"
|
|
11
|
+
content="width=device-width,initial-scale=1.0"
|
|
12
|
+
/>
|
|
13
|
+
<link
|
|
14
|
+
rel="icon"
|
|
15
|
+
href="/favicon.ico"
|
|
16
|
+
/>
|
|
17
|
+
<title>博汇科技</title>
|
|
18
|
+
</head>
|
|
19
|
+
<body>
|
|
20
|
+
<noscript>
|
|
21
|
+
<strong
|
|
22
|
+
>We're sorry but 博汇科技数智中台 doesn't work properly without JavaScript enabled.
|
|
23
|
+
Please enable it to continue.</strong
|
|
24
|
+
>
|
|
25
|
+
</noscript>
|
|
26
|
+
<div id="app"></div>
|
|
27
|
+
<script
|
|
28
|
+
type="module"
|
|
29
|
+
src="/src/main.ts"
|
|
30
|
+
></script>
|
|
31
|
+
<script src="/static/js/config.js"></script>
|
|
32
|
+
<script src="/static/js/dataConfig.js"></script>
|
|
33
|
+
</body>
|
|
34
|
+
</html>
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "vue3_elementuiplus_ts",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"private": true,
|
|
5
|
+
"preinstall": "npx only-allow pnpm",
|
|
6
|
+
"engines": {
|
|
7
|
+
"node": ">=22.0.0",
|
|
8
|
+
"pnpm": ">=10.28.0"
|
|
9
|
+
},
|
|
10
|
+
"scripts": {
|
|
11
|
+
"serve": "vite",
|
|
12
|
+
"build": "vite build",
|
|
13
|
+
"preview": "vite preview",
|
|
14
|
+
"test": "vitest",
|
|
15
|
+
"test:run": "vitest run",
|
|
16
|
+
"test:ui": "vitest --ui",
|
|
17
|
+
"test:coverage": "vitest run --coverage",
|
|
18
|
+
"lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore",
|
|
19
|
+
"lint:check": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts",
|
|
20
|
+
"format": "prettier --write \"src/**/*.{js,ts,vue,json,css,scss,md}\"",
|
|
21
|
+
"format:check": "prettier --check \"src/**/*.{js,ts,vue,json,css,scss,md}\""
|
|
22
|
+
},
|
|
23
|
+
"dependencies": {
|
|
24
|
+
"@element-plus/icons-vue": "^2.3.1",
|
|
25
|
+
"axios": "^1.6.5",
|
|
26
|
+
"core-js": "^3.6.5",
|
|
27
|
+
"echarts": "^6.0.0",
|
|
28
|
+
"element-plus": "^2.11.4",
|
|
29
|
+
"js-cookie": "^3.0.5",
|
|
30
|
+
"lodash": "^4.17.21",
|
|
31
|
+
"moment": "^2.30.1",
|
|
32
|
+
"pinia": "^3.0.4",
|
|
33
|
+
"qs": "^6.11.2",
|
|
34
|
+
"vue": "^3.0.0",
|
|
35
|
+
"vue-class-component": "^8.0.0-0",
|
|
36
|
+
"vue-router": "^4.0.0-0"
|
|
37
|
+
},
|
|
38
|
+
"devDependencies": {
|
|
39
|
+
"@types/js-cookie": "^3.0.6",
|
|
40
|
+
"@types/node": "^22.0.0",
|
|
41
|
+
"@types/qs": "^6.14.0",
|
|
42
|
+
"@typescript-eslint/eslint-plugin": "^8.0.0",
|
|
43
|
+
"@typescript-eslint/parser": "^8.0.0",
|
|
44
|
+
"@unocss/reset": "^0.62.3",
|
|
45
|
+
"@vitejs/plugin-vue": "^5.2.4",
|
|
46
|
+
"@vitest/coverage-v8": "^4.0.17",
|
|
47
|
+
"@vitest/ui": "^4.0.17",
|
|
48
|
+
"@vue/compiler-sfc": "^3.0.0",
|
|
49
|
+
"@vue/runtime-dom": "^3.5.13",
|
|
50
|
+
"@vue/test-utils": "^2.4.6",
|
|
51
|
+
"compression-webpack-plugin": "^6.1.1",
|
|
52
|
+
"eslint": "^8.57.1",
|
|
53
|
+
"eslint-config-prettier": "^10.1.8",
|
|
54
|
+
"eslint-plugin-prettier": "^5.5.4",
|
|
55
|
+
"eslint-plugin-vue": "^9.0.0",
|
|
56
|
+
"jsdom": "^27.4.0",
|
|
57
|
+
"mockjs": "^1.1.0",
|
|
58
|
+
"postcss-html": "^1.8.0",
|
|
59
|
+
"sass": "^1.26.5",
|
|
60
|
+
"sass-loader": "^8.0.2",
|
|
61
|
+
"stylelint": "^16.26.1",
|
|
62
|
+
"stylelint-config-standard-scss": "^14.0.0",
|
|
63
|
+
"stylelint-order": "^6.0.4",
|
|
64
|
+
"terser": "^5.44.0",
|
|
65
|
+
"typescript": "^5.9.3",
|
|
66
|
+
"unocss": "^0.62.3",
|
|
67
|
+
"unplugin-auto-import": "^0.19.0",
|
|
68
|
+
"unplugin-vue-components": "^0.28.0",
|
|
69
|
+
"vite": "^6.4.0",
|
|
70
|
+
"vite-plugin-compression": "^0.5.1",
|
|
71
|
+
"vite-plugin-mock": "^3.0.2",
|
|
72
|
+
"vitest": "^4.0.17",
|
|
73
|
+
"vue-eslint-parser": "^9.0.0"
|
|
74
|
+
}
|
|
75
|
+
}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|