ljr-cli 1.0.8 → 1.0.10
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/bin/commands/demo1.js +1 -1
- package/bin/commands/init.js +3 -1
- package/bin/commands/sync.js +120 -16
- package/bin/templates/vue2.7.16/README.md +15 -13
- package/bin/templates/vue2.7.16/public/index.html +5 -5
- package/bin/templates/vue3.5.25-2025.12.4/.vscode/settings.json +1 -0
- package/bin/templates/vue3.5.25-2025.12.4/README.md +28 -17
- package/bin/templates/vue3.5.25-2025.12.4/auto-imports.d.ts +229 -0
- package/bin/templates/vue3.5.25-2025.12.4/components.d.ts +49 -0
- package/bin/templates/vue3.5.25-2025.12.4/eslint.config.ts +1 -0
- package/bin/templates/vue3.5.25-2025.12.4/index.html +2 -2
- package/bin/templates/vue3.5.25-2025.12.4/package.json +3 -1
- package/bin/templates/vue3.5.25-2025.12.4/pnpm-lock.yaml +480 -11
- package/bin/templates/vue3.5.25-2025.12.4/src/assets/images/login_bg.jpg +0 -0
- package/bin/templates/vue3.5.25-2025.12.4/src/assets/images/login_bg_black.jpg +0 -0
- package/bin/templates/vue3.5.25-2025.12.4/src/assets/images/sc_login_icon.png +0 -0
- package/bin/templates/vue3.5.25-2025.12.4/src/boot/el-icon.ts +9 -0
- package/bin/templates/vue3.5.25-2025.12.4/src/boot/index.ts +2 -0
- package/bin/templates/vue3.5.25-2025.12.4/src/boot/pinia.ts +8 -3
- package/bin/templates/vue3.5.25-2025.12.4/src/boot/style.ts +2 -1
- package/bin/templates/vue3.5.25-2025.12.4/src/components/layout/header.ts +97 -0
- package/bin/templates/vue3.5.25-2025.12.4/src/components/layout/header.vue +37 -13
- package/bin/templates/vue3.5.25-2025.12.4/src/components/layout/left-right.vue +3 -7
- package/bin/templates/vue3.5.25-2025.12.4/src/components/layout/menu.ts +19 -0
- package/bin/templates/vue3.5.25-2025.12.4/src/components/layout/menu.vue +89 -5
- package/bin/templates/vue3.5.25-2025.12.4/src/components/layout/up-down.vue +24 -0
- package/bin/templates/vue3.5.25-2025.12.4/src/components/login/change-password.vue +111 -0
- package/bin/templates/vue3.5.25-2025.12.4/src/components/login/user-login.vue +61 -0
- package/bin/templates/vue3.5.25-2025.12.4/src/css/base.css +204 -0
- package/bin/templates/vue3.5.25-2025.12.4/src/css/global.css +1596 -0
- package/bin/templates/vue3.5.25-2025.12.4/src/css/index.css +3 -0
- package/bin/templates/vue3.5.25-2025.12.4/src/css/theme.css +61 -0
- package/bin/templates/vue3.5.25-2025.12.4/src/dialogs/device/index.ts +1 -0
- package/bin/templates/vue3.5.25-2025.12.4/src/dialogs/dialog.vue +66 -0
- package/bin/templates/vue3.5.25-2025.12.4/src/dialogs/helper.ts +90 -0
- package/bin/templates/vue3.5.25-2025.12.4/src/dialogs/index.ts +2 -0
- package/bin/templates/vue3.5.25-2025.12.4/src/dialogs/template.ts +41 -0
- package/bin/templates/vue3.5.25-2025.12.4/src/dialogs/template.vue +29 -0
- package/bin/templates/vue3.5.25-2025.12.4/src/dialogs/user-info/index.ts +31 -0
- package/bin/templates/vue3.5.25-2025.12.4/src/dialogs/user-info/layout.ts +47 -0
- package/bin/templates/vue3.5.25-2025.12.4/src/dialogs/user-info/layout.vue +51 -0
- package/bin/templates/vue3.5.25-2025.12.4/src/dialogs/user-info/notification.ts +27 -0
- package/bin/templates/vue3.5.25-2025.12.4/src/dialogs/user-info/notification.vue +29 -0
- package/bin/templates/vue3.5.25-2025.12.4/src/dialogs/user-info/permission.ts +22 -0
- package/bin/templates/vue3.5.25-2025.12.4/src/dialogs/user-info/permission.vue +23 -0
- package/bin/templates/vue3.5.25-2025.12.4/src/directive/rememberScrollPosition.ts +1 -1
- package/bin/templates/vue3.5.25-2025.12.4/src/enums/device.ts +42 -0
- package/bin/templates/vue3.5.25-2025.12.4/src/enums/index.ts +2 -0
- package/bin/templates/vue3.5.25-2025.12.4/src/enums/status.ts +23 -0
- package/bin/templates/vue3.5.25-2025.12.4/src/pages/index/permission/role.ts +40 -0
- package/bin/templates/vue3.5.25-2025.12.4/src/pages/index/permission/role.vue +39 -0
- package/bin/templates/vue3.5.25-2025.12.4/src/pages/index/permission/user.vue +10 -0
- package/bin/templates/vue3.5.25-2025.12.4/src/pages/index/template/base-info.vue +5 -0
- package/bin/templates/vue3.5.25-2025.12.4/src/pages/index/template/base-info2.vue +5 -0
- package/bin/templates/vue3.5.25-2025.12.4/src/pages/index/template/list.ts +40 -0
- package/bin/templates/vue3.5.25-2025.12.4/src/pages/index/template/list.vue +39 -0
- package/bin/templates/vue3.5.25-2025.12.4/src/pages/index/template/store.vue +89 -0
- package/bin/templates/vue3.5.25-2025.12.4/src/pages/index.vue +7 -2
- package/bin/templates/vue3.5.25-2025.12.4/src/pages/login.vue +34 -64
- package/bin/templates/vue3.5.25-2025.12.4/src/stores/account(/351/200/211/351/241/271/345/274/217api/345/206/231/346/263/225/347/244/272/344/276/213).ts +49 -0
- package/bin/templates/vue3.5.25-2025.12.4/src/stores/account.ts +46 -28
- package/bin/templates/vue3.5.25-2025.12.4/src/stores/dd.ts +85 -29
- package/bin/templates/vue3.5.25-2025.12.4/src/stores/layout.ts +99 -21
- package/bin/templates/vue3.5.25-2025.12.4/typed-router.d.ts +90 -0
- package/bin/templates/vue3.5.25-2025.12.4/uno.config.ts +53 -0
- package/bin/templates/vue3.5.25-2025.12.4/vite.config.ts +12 -1
- package/package.json +2 -2
- package/bin/templates/vue3.5.25-2025.12.4/src/stores//347/273/204/345/220/210/345/274/217pinia/345/206/231/346/263/225(/344/273/245account/344/270/272/344/276/213).ts +0 -28
- /package/bin/templates/vue3.5.25-2025.12.4/{public → src/assets}/favicon.svg +0 -0
|
@@ -1,22 +1,100 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
1
|
+
type Layout = "up-down" | "left-right"
|
|
2
|
+
|
|
3
|
+
/** 布局 */
|
|
4
|
+
export const useLayoutStore = defineStore(
|
|
5
|
+
"layout",
|
|
6
|
+
() => {
|
|
7
|
+
const layout = ref<Layout>("left-right")
|
|
8
|
+
/** 是否显示头部 */
|
|
9
|
+
const showHeader = ref(true)
|
|
10
|
+
// 切换显示头部快捷键
|
|
11
|
+
const showHeaderShortcutKey = ref("ctrl + alt + space")
|
|
12
|
+
|
|
13
|
+
// 是否显示菜单
|
|
14
|
+
const showMenu = ref(true)
|
|
15
|
+
// 切换显示菜单快捷键
|
|
16
|
+
const showMenuShortcutKey = ref("ctrl + alt + b")
|
|
17
|
+
|
|
18
|
+
// 是否仅显示内容
|
|
19
|
+
const onlyShowContent = ref(false)
|
|
20
|
+
// 切换仅显示内容快捷键
|
|
21
|
+
const onlyShowContentShortcutKey = ref("ctrl + alt + e")
|
|
22
|
+
|
|
23
|
+
// 是否显示logo
|
|
24
|
+
const showLogo = ref(false)
|
|
25
|
+
|
|
26
|
+
/** 设置布局 */
|
|
27
|
+
function setLayout(e: Layout) {
|
|
28
|
+
layout.value = e
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/** 改变是否显示头部 */
|
|
32
|
+
function changeShowHeader(e?: boolean) {
|
|
33
|
+
if (typeof e === "boolean") {
|
|
34
|
+
showHeader.value = e
|
|
35
|
+
} else {
|
|
36
|
+
showHeader.value = !showHeader.value
|
|
37
|
+
}
|
|
38
|
+
computeOnlyShowContent()
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/** 改变是否显示菜单 */
|
|
42
|
+
function changeShowMenu(e?: boolean) {
|
|
43
|
+
if (typeof e === "boolean") {
|
|
44
|
+
showMenu.value = e
|
|
45
|
+
} else {
|
|
46
|
+
showMenu.value = !showMenu.value
|
|
47
|
+
}
|
|
48
|
+
computeOnlyShowContent()
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/** 计算是否仅显示内容 */
|
|
52
|
+
function computeOnlyShowContent() {
|
|
53
|
+
// 头部或者菜单有任意一个为true,仅显示内容就为false,否则为真
|
|
54
|
+
if (showHeader.value || showMenu.value) {
|
|
55
|
+
onlyShowContent.value = false
|
|
56
|
+
} else {
|
|
57
|
+
onlyShowContent.value = true
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/** 改变是否仅显示内容 */
|
|
62
|
+
function changeOnlyShowContent(e?: boolean) {
|
|
63
|
+
if (typeof e === "boolean") {
|
|
64
|
+
onlyShowContent.value = e
|
|
65
|
+
} else {
|
|
66
|
+
onlyShowContent.value = !onlyShowContent.value
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
showHeader.value = !onlyShowContent.value
|
|
70
|
+
showMenu.value = !onlyShowContent.value
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
/** 改变是否显示logo */
|
|
74
|
+
function changeShowLogo() {
|
|
75
|
+
showLogo.value = !showLogo.value
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
return {
|
|
79
|
+
layout,
|
|
80
|
+
showHeader,
|
|
81
|
+
showHeaderShortcutKey,
|
|
82
|
+
showMenu,
|
|
83
|
+
showMenuShortcutKey,
|
|
84
|
+
onlyShowContent,
|
|
85
|
+
onlyShowContentShortcutKey,
|
|
86
|
+
showLogo,
|
|
87
|
+
|
|
88
|
+
setLayout,
|
|
89
|
+
changeShowHeader,
|
|
90
|
+
changeShowMenu,
|
|
91
|
+
changeOnlyShowContent,
|
|
92
|
+
changeShowLogo,
|
|
93
|
+
}
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
persist: {
|
|
97
|
+
storage: localStorage,
|
|
98
|
+
},
|
|
21
99
|
},
|
|
22
|
-
|
|
100
|
+
)
|
|
@@ -30,6 +30,12 @@ declare module 'vue-router/auto-routes' {
|
|
|
30
30
|
Record<never, never>,
|
|
31
31
|
| '//'
|
|
32
32
|
| '//about'
|
|
33
|
+
| '//permission/role'
|
|
34
|
+
| '//permission/user'
|
|
35
|
+
| '//template/base-info'
|
|
36
|
+
| '//template/base-info2'
|
|
37
|
+
| '//template/list'
|
|
38
|
+
| '//template/store'
|
|
33
39
|
>,
|
|
34
40
|
'//': RouteRecordInfo<
|
|
35
41
|
'//',
|
|
@@ -45,6 +51,48 @@ declare module 'vue-router/auto-routes' {
|
|
|
45
51
|
Record<never, never>,
|
|
46
52
|
| never
|
|
47
53
|
>,
|
|
54
|
+
'//permission/role': RouteRecordInfo<
|
|
55
|
+
'//permission/role',
|
|
56
|
+
'/permission/role',
|
|
57
|
+
Record<never, never>,
|
|
58
|
+
Record<never, never>,
|
|
59
|
+
| never
|
|
60
|
+
>,
|
|
61
|
+
'//permission/user': RouteRecordInfo<
|
|
62
|
+
'//permission/user',
|
|
63
|
+
'/permission/user',
|
|
64
|
+
Record<never, never>,
|
|
65
|
+
Record<never, never>,
|
|
66
|
+
| never
|
|
67
|
+
>,
|
|
68
|
+
'//template/base-info': RouteRecordInfo<
|
|
69
|
+
'//template/base-info',
|
|
70
|
+
'/template/base-info',
|
|
71
|
+
Record<never, never>,
|
|
72
|
+
Record<never, never>,
|
|
73
|
+
| never
|
|
74
|
+
>,
|
|
75
|
+
'//template/base-info2': RouteRecordInfo<
|
|
76
|
+
'//template/base-info2',
|
|
77
|
+
'/template/base-info2',
|
|
78
|
+
Record<never, never>,
|
|
79
|
+
Record<never, never>,
|
|
80
|
+
| never
|
|
81
|
+
>,
|
|
82
|
+
'//template/list': RouteRecordInfo<
|
|
83
|
+
'//template/list',
|
|
84
|
+
'/template/list',
|
|
85
|
+
Record<never, never>,
|
|
86
|
+
Record<never, never>,
|
|
87
|
+
| never
|
|
88
|
+
>,
|
|
89
|
+
'//template/store': RouteRecordInfo<
|
|
90
|
+
'//template/store',
|
|
91
|
+
'/template/store',
|
|
92
|
+
Record<never, never>,
|
|
93
|
+
Record<never, never>,
|
|
94
|
+
| never
|
|
95
|
+
>,
|
|
48
96
|
'/[...404]': RouteRecordInfo<
|
|
49
97
|
'/[...404]',
|
|
50
98
|
'/:404(.*)',
|
|
@@ -77,6 +125,12 @@ declare module 'vue-router/auto-routes' {
|
|
|
77
125
|
| '/'
|
|
78
126
|
| '//'
|
|
79
127
|
| '//about'
|
|
128
|
+
| '//permission/role'
|
|
129
|
+
| '//permission/user'
|
|
130
|
+
| '//template/base-info'
|
|
131
|
+
| '//template/base-info2'
|
|
132
|
+
| '//template/list'
|
|
133
|
+
| '//template/store'
|
|
80
134
|
views:
|
|
81
135
|
| 'default'
|
|
82
136
|
}
|
|
@@ -92,6 +146,42 @@ declare module 'vue-router/auto-routes' {
|
|
|
92
146
|
views:
|
|
93
147
|
| never
|
|
94
148
|
}
|
|
149
|
+
'src/pages/index/permission/role.vue': {
|
|
150
|
+
routes:
|
|
151
|
+
| '//permission/role'
|
|
152
|
+
views:
|
|
153
|
+
| never
|
|
154
|
+
}
|
|
155
|
+
'src/pages/index/permission/user.vue': {
|
|
156
|
+
routes:
|
|
157
|
+
| '//permission/user'
|
|
158
|
+
views:
|
|
159
|
+
| never
|
|
160
|
+
}
|
|
161
|
+
'src/pages/index/template/base-info.vue': {
|
|
162
|
+
routes:
|
|
163
|
+
| '//template/base-info'
|
|
164
|
+
views:
|
|
165
|
+
| never
|
|
166
|
+
}
|
|
167
|
+
'src/pages/index/template/base-info2.vue': {
|
|
168
|
+
routes:
|
|
169
|
+
| '//template/base-info2'
|
|
170
|
+
views:
|
|
171
|
+
| never
|
|
172
|
+
}
|
|
173
|
+
'src/pages/index/template/list.vue': {
|
|
174
|
+
routes:
|
|
175
|
+
| '//template/list'
|
|
176
|
+
views:
|
|
177
|
+
| never
|
|
178
|
+
}
|
|
179
|
+
'src/pages/index/template/store.vue': {
|
|
180
|
+
routes:
|
|
181
|
+
| '//template/store'
|
|
182
|
+
views:
|
|
183
|
+
| never
|
|
184
|
+
}
|
|
95
185
|
'src/pages/[...404].vue': {
|
|
96
186
|
routes:
|
|
97
187
|
| '/[...404]'
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { defineConfig } from "unocss"
|
|
2
|
+
|
|
3
|
+
export default defineConfig({
|
|
4
|
+
// ...UnoCSS options
|
|
5
|
+
theme: {
|
|
6
|
+
colors: {
|
|
7
|
+
/** 主色 */
|
|
8
|
+
primary: {
|
|
9
|
+
DEFAULT: "#0D99FF",
|
|
10
|
+
7: " #0077D9",
|
|
11
|
+
6: " #0D99FF",
|
|
12
|
+
5: " #39ABFF",
|
|
13
|
+
4: " #65BDFF",
|
|
14
|
+
3: " #91CFFE",
|
|
15
|
+
2: " #BDE1FE",
|
|
16
|
+
1: " #E9F3FE",
|
|
17
|
+
},
|
|
18
|
+
/** 成功色 */
|
|
19
|
+
success: {
|
|
20
|
+
DEFAULT: "#00B42A",
|
|
21
|
+
7: " #008F26",
|
|
22
|
+
6: " #00B42A",
|
|
23
|
+
5: " #1FC240",
|
|
24
|
+
4: " #42CF5A",
|
|
25
|
+
3: " #69DB78",
|
|
26
|
+
2: " #95E89D",
|
|
27
|
+
1: " #DCF5DE",
|
|
28
|
+
},
|
|
29
|
+
/** 警告色 */
|
|
30
|
+
warning: {
|
|
31
|
+
DEFAULT: "#FF7D00",
|
|
32
|
+
7: " #D96200",
|
|
33
|
+
6: " #FF7D00",
|
|
34
|
+
5: " #FF9729",
|
|
35
|
+
4: " #FFB152",
|
|
36
|
+
3: " #FFC87A",
|
|
37
|
+
2: " #FFDCA3",
|
|
38
|
+
1: " #FFF6E6",
|
|
39
|
+
},
|
|
40
|
+
/** 危险色 */
|
|
41
|
+
danger: {
|
|
42
|
+
DEFAULT: "#F53F3F",
|
|
43
|
+
7: " #CF2B31",
|
|
44
|
+
6: " #F53F3F",
|
|
45
|
+
5: " #FF706B",
|
|
46
|
+
4: " #FF9B94",
|
|
47
|
+
3: " #FFC3BD",
|
|
48
|
+
2: " #FFE9E6",
|
|
49
|
+
1: " #FFF2F0",
|
|
50
|
+
},
|
|
51
|
+
},
|
|
52
|
+
},
|
|
53
|
+
})
|
|
@@ -8,22 +8,33 @@ import ViteAutoImport from "unplugin-auto-import/vite"
|
|
|
8
8
|
import Components from "unplugin-vue-components/vite"
|
|
9
9
|
import { ElementPlusResolver } from "unplugin-vue-components/resolvers"
|
|
10
10
|
import VueRouter from "unplugin-vue-router/vite"
|
|
11
|
+
import UnoCSS from "unocss/vite"
|
|
11
12
|
|
|
12
13
|
// https://vite.dev/config/
|
|
13
14
|
export default defineConfig({
|
|
14
15
|
base: "./", // 公共路径
|
|
16
|
+
// 开发服务器配置
|
|
17
|
+
server: {
|
|
18
|
+
// 指定端口号
|
|
19
|
+
port: 8001,
|
|
20
|
+
// 可选:如果指定的端口被占用,自动尝试下一个可用端口
|
|
21
|
+
strictPort: true,
|
|
22
|
+
// 可选:启动时自动打开浏览器
|
|
23
|
+
open: true,
|
|
24
|
+
},
|
|
15
25
|
plugins: [
|
|
16
26
|
VueRouter(), // 必须在 vue() 之前
|
|
17
27
|
vue(),
|
|
18
28
|
vueJsx(),
|
|
19
29
|
vueDevTools(),
|
|
20
30
|
ViteAutoImport({
|
|
21
|
-
imports: ["vue", "vue-router", "pinia"],
|
|
31
|
+
imports: ["vue", "vue-router", "pinia", "@vueuse/core"],
|
|
22
32
|
resolvers: [ElementPlusResolver()],
|
|
23
33
|
}),
|
|
24
34
|
Components({
|
|
25
35
|
resolvers: [ElementPlusResolver()],
|
|
26
36
|
}),
|
|
37
|
+
UnoCSS(),
|
|
27
38
|
],
|
|
28
39
|
resolve: {
|
|
29
40
|
alias: {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ljr-cli",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.10",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"type": "module",
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"download-git-repo": "^3.0.2",
|
|
25
25
|
"fs-extra": "^11.3.3",
|
|
26
26
|
"gradient-string": "^3.0.0",
|
|
27
|
-
"l-global": "^1.0.
|
|
27
|
+
"l-global": "^1.0.6",
|
|
28
28
|
"replace-in-file": "^8.4.0",
|
|
29
29
|
"update-notifier": "^7.3.1"
|
|
30
30
|
}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 认证数据,组合式API写法,不管是选项式API写法还是组合式API写法,同一个项目里,最好是同一种写法,此项目统一采用选项式API写法
|
|
3
|
-
*/
|
|
4
|
-
export const useAccountStore = defineStore(
|
|
5
|
-
"pinia-account",
|
|
6
|
-
() => {
|
|
7
|
-
/** 是否需要登录 */
|
|
8
|
-
const needLogin = ref(false)
|
|
9
|
-
/** 改变是否需要登录 */
|
|
10
|
-
const changeNeedLogin = () => {
|
|
11
|
-
needLogin.value = !needLogin.value
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
/** 登录状态 */
|
|
15
|
-
const loginStatus = ref(false)
|
|
16
|
-
/** 改变登录状态 */
|
|
17
|
-
const changeLoginStatus = () => {
|
|
18
|
-
loginStatus.value = !loginStatus.value
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
return { needLogin, changeNeedLogin, loginStatus, changeLoginStatus }
|
|
22
|
-
},
|
|
23
|
-
{
|
|
24
|
-
persist: {
|
|
25
|
-
storage: localStorage,
|
|
26
|
-
},
|
|
27
|
-
},
|
|
28
|
-
)
|
|
File without changes
|