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.
Files changed (69) hide show
  1. package/bin/commands/demo1.js +1 -1
  2. package/bin/commands/init.js +3 -1
  3. package/bin/commands/sync.js +120 -16
  4. package/bin/templates/vue2.7.16/README.md +15 -13
  5. package/bin/templates/vue2.7.16/public/index.html +5 -5
  6. package/bin/templates/vue3.5.25-2025.12.4/.vscode/settings.json +1 -0
  7. package/bin/templates/vue3.5.25-2025.12.4/README.md +28 -17
  8. package/bin/templates/vue3.5.25-2025.12.4/auto-imports.d.ts +229 -0
  9. package/bin/templates/vue3.5.25-2025.12.4/components.d.ts +49 -0
  10. package/bin/templates/vue3.5.25-2025.12.4/eslint.config.ts +1 -0
  11. package/bin/templates/vue3.5.25-2025.12.4/index.html +2 -2
  12. package/bin/templates/vue3.5.25-2025.12.4/package.json +3 -1
  13. package/bin/templates/vue3.5.25-2025.12.4/pnpm-lock.yaml +480 -11
  14. package/bin/templates/vue3.5.25-2025.12.4/src/assets/images/login_bg.jpg +0 -0
  15. package/bin/templates/vue3.5.25-2025.12.4/src/assets/images/login_bg_black.jpg +0 -0
  16. package/bin/templates/vue3.5.25-2025.12.4/src/assets/images/sc_login_icon.png +0 -0
  17. package/bin/templates/vue3.5.25-2025.12.4/src/boot/el-icon.ts +9 -0
  18. package/bin/templates/vue3.5.25-2025.12.4/src/boot/index.ts +2 -0
  19. package/bin/templates/vue3.5.25-2025.12.4/src/boot/pinia.ts +8 -3
  20. package/bin/templates/vue3.5.25-2025.12.4/src/boot/style.ts +2 -1
  21. package/bin/templates/vue3.5.25-2025.12.4/src/components/layout/header.ts +97 -0
  22. package/bin/templates/vue3.5.25-2025.12.4/src/components/layout/header.vue +37 -13
  23. package/bin/templates/vue3.5.25-2025.12.4/src/components/layout/left-right.vue +3 -7
  24. package/bin/templates/vue3.5.25-2025.12.4/src/components/layout/menu.ts +19 -0
  25. package/bin/templates/vue3.5.25-2025.12.4/src/components/layout/menu.vue +89 -5
  26. package/bin/templates/vue3.5.25-2025.12.4/src/components/layout/up-down.vue +24 -0
  27. package/bin/templates/vue3.5.25-2025.12.4/src/components/login/change-password.vue +111 -0
  28. package/bin/templates/vue3.5.25-2025.12.4/src/components/login/user-login.vue +61 -0
  29. package/bin/templates/vue3.5.25-2025.12.4/src/css/base.css +204 -0
  30. package/bin/templates/vue3.5.25-2025.12.4/src/css/global.css +1596 -0
  31. package/bin/templates/vue3.5.25-2025.12.4/src/css/index.css +3 -0
  32. package/bin/templates/vue3.5.25-2025.12.4/src/css/theme.css +61 -0
  33. package/bin/templates/vue3.5.25-2025.12.4/src/dialogs/device/index.ts +1 -0
  34. package/bin/templates/vue3.5.25-2025.12.4/src/dialogs/dialog.vue +66 -0
  35. package/bin/templates/vue3.5.25-2025.12.4/src/dialogs/helper.ts +90 -0
  36. package/bin/templates/vue3.5.25-2025.12.4/src/dialogs/index.ts +2 -0
  37. package/bin/templates/vue3.5.25-2025.12.4/src/dialogs/template.ts +41 -0
  38. package/bin/templates/vue3.5.25-2025.12.4/src/dialogs/template.vue +29 -0
  39. package/bin/templates/vue3.5.25-2025.12.4/src/dialogs/user-info/index.ts +31 -0
  40. package/bin/templates/vue3.5.25-2025.12.4/src/dialogs/user-info/layout.ts +47 -0
  41. package/bin/templates/vue3.5.25-2025.12.4/src/dialogs/user-info/layout.vue +51 -0
  42. package/bin/templates/vue3.5.25-2025.12.4/src/dialogs/user-info/notification.ts +27 -0
  43. package/bin/templates/vue3.5.25-2025.12.4/src/dialogs/user-info/notification.vue +29 -0
  44. package/bin/templates/vue3.5.25-2025.12.4/src/dialogs/user-info/permission.ts +22 -0
  45. package/bin/templates/vue3.5.25-2025.12.4/src/dialogs/user-info/permission.vue +23 -0
  46. package/bin/templates/vue3.5.25-2025.12.4/src/directive/rememberScrollPosition.ts +1 -1
  47. package/bin/templates/vue3.5.25-2025.12.4/src/enums/device.ts +42 -0
  48. package/bin/templates/vue3.5.25-2025.12.4/src/enums/index.ts +2 -0
  49. package/bin/templates/vue3.5.25-2025.12.4/src/enums/status.ts +23 -0
  50. package/bin/templates/vue3.5.25-2025.12.4/src/pages/index/permission/role.ts +40 -0
  51. package/bin/templates/vue3.5.25-2025.12.4/src/pages/index/permission/role.vue +39 -0
  52. package/bin/templates/vue3.5.25-2025.12.4/src/pages/index/permission/user.vue +10 -0
  53. package/bin/templates/vue3.5.25-2025.12.4/src/pages/index/template/base-info.vue +5 -0
  54. package/bin/templates/vue3.5.25-2025.12.4/src/pages/index/template/base-info2.vue +5 -0
  55. package/bin/templates/vue3.5.25-2025.12.4/src/pages/index/template/list.ts +40 -0
  56. package/bin/templates/vue3.5.25-2025.12.4/src/pages/index/template/list.vue +39 -0
  57. package/bin/templates/vue3.5.25-2025.12.4/src/pages/index/template/store.vue +89 -0
  58. package/bin/templates/vue3.5.25-2025.12.4/src/pages/index.vue +7 -2
  59. package/bin/templates/vue3.5.25-2025.12.4/src/pages/login.vue +34 -64
  60. 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
  61. package/bin/templates/vue3.5.25-2025.12.4/src/stores/account.ts +46 -28
  62. package/bin/templates/vue3.5.25-2025.12.4/src/stores/dd.ts +85 -29
  63. package/bin/templates/vue3.5.25-2025.12.4/src/stores/layout.ts +99 -21
  64. package/bin/templates/vue3.5.25-2025.12.4/typed-router.d.ts +90 -0
  65. package/bin/templates/vue3.5.25-2025.12.4/uno.config.ts +53 -0
  66. package/bin/templates/vue3.5.25-2025.12.4/vite.config.ts +12 -1
  67. package/package.json +2 -2
  68. 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
  69. /package/bin/templates/vue3.5.25-2025.12.4/{public → src/assets}/favicon.svg +0 -0
@@ -1,22 +1,100 @@
1
- interface State {
2
- /** 布局 */
3
- layout: "top-bottom" | "left-right"
4
- /** 是否全屏 */
5
- fullScreen?: boolean
6
- /** 是否显示菜单 */
7
- showMenu: boolean
8
- }
9
-
10
- /**
11
- * 认证数据
12
- */
13
- export const useLayoutStore = defineStore("layout", {
14
- state: (): State => ({
15
- layout: "left-right",
16
- fullScreen: false,
17
- showMenu: true,
18
- }),
19
- persist: {
20
- storage: localStorage,
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.8",
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.5",
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
- )