create-young-proj 0.1.1 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (78) hide show
  1. package/README.md +11 -2
  2. package/dist/index.mjs +16 -16
  3. package/package.json +3 -3
  4. package/template-admin-server/package.json +2 -2
  5. package/template-vue-admin/Dockerfile +2 -2
  6. package/template-vue-admin/build/custom-plugin.ts +30 -3
  7. package/template-vue-admin/package.json +29 -28
  8. package/template-vue-admin/plugins/init.ts +31 -0
  9. package/template-vue-admin/src/apis/get.ts +1 -2
  10. package/template-vue-admin/src/apis/patch.ts +0 -1
  11. package/template-vue-admin/src/apis/post.ts +1 -2
  12. package/template-vue-admin/src/auto-components.d.ts +4 -2
  13. package/template-vue-admin/src/auto-imports.d.ts +21 -1
  14. package/template-vue-admin/src/main.ts +2 -0
  15. package/template-vue-admin/src/modules/1-router.ts +4 -22
  16. package/template-vue-admin/src/modules/3-net.ts +6 -2
  17. package/template-vue-admin/src/modules/4-auth.ts +16 -18
  18. package/template-vue-admin/src/modules/5-checkupdate.ts +38 -0
  19. package/template-vue-admin/src/stores/local/index.ts +9 -1
  20. package/template-vue-admin/src/typings/index.ts +1 -38
  21. package/template-vue-admin/src/typings/system.d.ts +46 -0
  22. package/template-vue-admin/src/views/403.vue +2 -1
  23. package/template-vue-admin/src/views/[...all_404].vue +3 -2
  24. package/template-vue-admin/src/views/base/login.vue +2 -1
  25. package/template-vue-admin/src/views/dashboard/[name].vue +7 -2
  26. package/template-vue-admin/src/views/index.vue +7 -1
  27. package/template-vue-admin/src/views/system/api.vue +0 -1
  28. package/template-vue-admin/src/views/system/menuList.vue +1 -2
  29. package/template-vue-admin/src/views/system/role.vue +0 -1
  30. package/template-vue-admin/src/views/system/user.vue +0 -1
  31. package/template-vue-mobile/.vscode/base.code-snippets +24 -0
  32. package/template-vue-mobile/.vscode/extensions.json +10 -0
  33. package/template-vue-mobile/.vscode/settings.json +7 -0
  34. package/template-vue-mobile/Dockerfile +42 -0
  35. package/template-vue-mobile/README.md +71 -0
  36. package/template-vue-mobile/_env +6 -0
  37. package/template-vue-mobile/_gitignore +30 -0
  38. package/template-vue-mobile/boot.mjs +16 -0
  39. package/template-vue-mobile/build/custom-plugin.ts +30 -0
  40. package/template-vue-mobile/build/index.ts +7 -0
  41. package/template-vue-mobile/build/plugins.ts +68 -0
  42. package/template-vue-mobile/config/.devrc +2 -0
  43. package/template-vue-mobile/config/.onlinerc +1 -0
  44. package/template-vue-mobile/config/.testrc +1 -0
  45. package/template-vue-mobile/index.html +25 -0
  46. package/template-vue-mobile/nitro.config.ts +19 -0
  47. package/template-vue-mobile/package.json +48 -0
  48. package/template-vue-mobile/public/vite.svg +1 -0
  49. package/template-vue-mobile/rome.json +24 -0
  50. package/template-vue-mobile/routes/[...all].ts +11 -0
  51. package/template-vue-mobile/routes/get/env.ts +25 -0
  52. package/template-vue-mobile/src/App.vue +29 -0
  53. package/template-vue-mobile/src/auto-components.d.ts +24 -0
  54. package/template-vue-mobile/src/auto-imports.d.ts +289 -0
  55. package/template-vue-mobile/src/components/Init.vue +36 -0
  56. package/template-vue-mobile/src/global.d.ts +7 -0
  57. package/template-vue-mobile/src/hooks/useVerifyCode.ts +46 -0
  58. package/template-vue-mobile/src/layouts/blank.vue +9 -0
  59. package/template-vue-mobile/src/layouts/default.vue +27 -0
  60. package/template-vue-mobile/src/layouts/sub.vue +20 -0
  61. package/template-vue-mobile/src/main.ts +35 -0
  62. package/template-vue-mobile/src/modules/1-router.ts +40 -0
  63. package/template-vue-mobile/src/modules/2-pinia.ts +10 -0
  64. package/template-vue-mobile/src/modules/3-net.ts +46 -0
  65. package/template-vue-mobile/src/modules/4-auth.ts +64 -0
  66. package/template-vue-mobile/src/views/[...all_404].vue +557 -0
  67. package/template-vue-mobile/src/views/base/login.vue +110 -0
  68. package/template-vue-mobile/src/views/base/resetPasswd.vue +88 -0
  69. package/template-vue-mobile/src/views/index.vue +18 -0
  70. package/template-vue-mobile/src/views/my.vue +15 -0
  71. package/template-vue-mobile/src/views/sub.vue +18 -0
  72. package/template-vue-mobile/src/vite-env.d.ts +43 -0
  73. package/template-vue-mobile/tsconfig.json +21 -0
  74. package/template-vue-mobile/tsconfig.node.json +9 -0
  75. package/template-vue-mobile/unocss.config.ts +47 -0
  76. package/template-vue-mobile/vite.config.ts +32 -0
  77. package/template-vue-mobile/yarn.lock +4395 -0
  78. /package/{template-vue-admin → template-vue-mobile}/plugins/env.ts +0 -0
@@ -0,0 +1,88 @@
1
+ <!--
2
+ * @Author: zhangyang
3
+ * @Date: 2021-09-09 12:07:27
4
+ * @LastEditTime: 2023-01-13 16:50:21
5
+ * @Description: 重置密码 | 修改密码
6
+ -->
7
+ <route lang="yaml">
8
+ meta:
9
+ title: 用户登录
10
+ layout: blank
11
+ </route>
12
+
13
+ <script lang="ts" setup>
14
+ import { isMobile } from '@bluesyoung/utils';
15
+ import { useVerifyCode } from '@/hooks/useVerifyCode';
16
+ import type { FormInstance } from 'vant';
17
+ import { router } from '@/modules/1-router';
18
+
19
+ const { countDown, isClicked, sendClick } = useVerifyCode();
20
+ const formRef = ref<FormInstance>();
21
+
22
+ const form = ref({
23
+ tel: '',
24
+ code: '',
25
+ passwd: '',
26
+ passwd_again: ''
27
+ });
28
+ const validPasswd = () => {
29
+ const { passwd: p1, passwd_again: p2 } = form.value;
30
+ return p1 === p2;
31
+ };
32
+ const [showPass1, toggle1] = useToggle(false);
33
+ const [showPass2, toggle2] = useToggle(false);
34
+ const sure = async () => {
35
+ try {
36
+ await formRef.value?.validate();
37
+ // todo: 修改密码,移除登录信息
38
+ // await mod_passwd(form.value);
39
+ showToast('修改成功,请重新登录!');
40
+ // removeToken();
41
+ router.push('/base/login');
42
+ } catch (error) {
43
+ return;
44
+ }
45
+ };
46
+
47
+ </script>
48
+ <template>
49
+ <VanNavBar title="重置密码" safe-area-inset-bottom @click-left="$router.back()" />
50
+ <div v-bind="$attrs" class="w-full h-full mt-10">
51
+ <VanForm ref="formRef">
52
+ <VanCellGroup inset>
53
+ <VanField v-model.trim="form.tel" placeholder="手机号" :rules="[
54
+ { required: true, message: '请填写手机号' },
55
+ { validator: isMobile, message: '请输入合法的手机号' }
56
+ ]" />
57
+ <VanField v-model.trim="form.code" placeholder="验证码" :rules="[{ required: true, message: '请填写验证码' }]">
58
+ <template #button>
59
+ <VanButton v-if="!isClicked" :disabled="!isMobile(form.tel)" size="small" type="primary" plain
60
+ @click="sendClick">发送验证码</VanButton>
61
+ <VanButton v-else size="small" :disabled="true">
62
+ {{ countDown.current.value.seconds }}秒后重发
63
+ </VanButton>
64
+ </template>
65
+ </VanField>
66
+ <VanField v-model.trim="form.passwd" placeholder="输入新密码" :type="showPass1 ? 'text' : 'password'" clearable
67
+ :rules="[{ required: true, message: '请填写新密码' }]">
68
+ <template #right-icon>
69
+ <VanIcon :name="showPass1 ? 'eye' : 'closed-eye'" @click="toggle1(!showPass1)" />
70
+ </template>
71
+ </VanField>
72
+ <VanField v-model.trim="form.passwd_again" placeholder="再次确认新密码" :type="showPass2 ? 'text' : 'password'" :rules="[
73
+ { required: true, message: '请确认新密码' },
74
+ { validator: validPasswd, message: '两次输入的密码不一致' }
75
+ ]">
76
+ <template #right-icon>
77
+ <VanIcon :name="showPass2 ? 'eye' : 'closed-eye'" @click="toggle2(!showPass2)" />
78
+ </template>
79
+ </VanField>
80
+ </VanCellGroup>
81
+ <div class="m-4">
82
+ <VanButton block type="primary" @click="sure">
83
+ 确定
84
+ </VanButton>
85
+ </div>
86
+ </VanForm>
87
+ </div>
88
+ </template>
@@ -0,0 +1,18 @@
1
+ <!--
2
+ * @Author: zhangyang
3
+ * @Date: 2022-12-03 16:23:19
4
+ * @LastEditTime: 2023-02-01 11:39:25
5
+ * @Description:
6
+ -->
7
+ <route lang="yaml">
8
+ meta:
9
+ title: 首页
10
+ </route>
11
+
12
+ <template>
13
+ <div>
14
+ 我是首页,我会使用默认布局
15
+ <br />
16
+ <RouterLink class="text-blue-500 mr-2" to="/sub">进入子页面</RouterLink>
17
+ </div>
18
+ </template>
@@ -0,0 +1,15 @@
1
+ <!--
2
+ * @Author: zhangyang
3
+ * @Date: 2023-02-01 11:25:59
4
+ * @LastEditTime: 2023-02-01 11:26:02
5
+ * @Description:
6
+ -->
7
+ <route lang="yaml">
8
+ meta:
9
+ auth: true
10
+ title: 我的
11
+ </route>
12
+
13
+ <template>
14
+ <div>我的</div>
15
+ </template>
@@ -0,0 +1,18 @@
1
+ <!--
2
+ * @Author: zhangyang
3
+ * @Date: 2022-12-03 16:23:19
4
+ * @LastEditTime: 2023-02-01 11:39:49
5
+ * @Description:
6
+ -->
7
+ <route lang="yaml">
8
+ meta:
9
+ auth: true
10
+ title: 子页面
11
+ layout: sub
12
+ </route>
13
+
14
+ <template>
15
+ <div>
16
+ 我是子页面,我会使用 sub 布局
17
+ </div>
18
+ </template>
@@ -0,0 +1,43 @@
1
+ /*
2
+ * @Author: zhangyang
3
+ * @Date: 2022-12-03 15:57:40
4
+ * @LastEditTime: 2023-02-01 11:55:56
5
+ * @Description:
6
+ */
7
+ /// <reference types="vite/client" />
8
+ /// <reference types="vite-plugin-pages/client" />
9
+ /// <reference types="vite-plugin-vue-layouts/client" />
10
+
11
+ declare module 'virtual:local-server' {
12
+ /**
13
+ * 本地服务地址
14
+ */
15
+ export const server: string;
16
+ }
17
+
18
+ declare module '*.vue' {
19
+ import type { DefineComponent } from 'vue'
20
+ const component: DefineComponent<{}, {}, any>
21
+ export default component
22
+ }
23
+
24
+ /**
25
+ * import.meta.env 类型提示
26
+ */
27
+ declare interface ImportMetaEnv {
28
+ /**
29
+ * 标题
30
+ */
31
+ VITE_TITLE: string;
32
+ /**
33
+ * 是否启用 VConsole
34
+ */
35
+ VITE_ENABLE_VCONSOLE?: string | boolean;
36
+ }
37
+
38
+ /**
39
+ * 扩充 window
40
+ */
41
+ interface Window {
42
+ __YOUNG_VITE_ENV__: ImportMetaEnv;
43
+ }
@@ -0,0 +1,21 @@
1
+ {
2
+ "compilerOptions": {
3
+ "target": "ESNext",
4
+ "useDefineForClassFields": true,
5
+ "module": "ESNext",
6
+ "moduleResolution": "Node",
7
+ "strict": true,
8
+ "jsx": "preserve",
9
+ "resolveJsonModule": true,
10
+ "isolatedModules": true,
11
+ "esModuleInterop": true,
12
+ "lib": ["ESNext", "DOM"],
13
+ "skipLibCheck": true,
14
+ "noEmit": true,
15
+ "paths": {
16
+ "@/*": ["./src/*"]
17
+ }
18
+ },
19
+ "include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue", "config/**/*", ".nitro/**/*"],
20
+ "references": [{ "path": "./tsconfig.node.json" }]
21
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "compilerOptions": {
3
+ "composite": true,
4
+ "module": "ESNext",
5
+ "moduleResolution": "Node",
6
+ "allowSyntheticDefaultImports": true
7
+ },
8
+ "include": ["vite.config.ts", "build/**/*.ts"]
9
+ }
@@ -0,0 +1,47 @@
1
+ /*
2
+ * @Author: zhangyang
3
+ * @Date: 2022-03-01 19:11:11
4
+ * @LastEditTime: 2022-05-21 18:32:05
5
+ * @Description:
6
+ */
7
+ import {
8
+ defineConfig,
9
+ presetAttributify,
10
+ presetIcons,
11
+ presetTypography,
12
+ presetUno,
13
+ presetWebFonts,
14
+ transformerDirectives,
15
+ transformerVariantGroup,
16
+ } from 'unocss';
17
+
18
+ export default defineConfig({
19
+ shortcuts: [
20
+ [
21
+ 'btn',
22
+ 'px-4 py-1 rounded inline-block bg-teal-700 text-white cursor-pointer hover:bg-teal-800 disabled:cursor-default disabled:bg-gray-600 disabled:opacity-50',
23
+ ],
24
+ [
25
+ 'icon-btn',
26
+ 'inline-block cursor-pointer select-none opacity-75 transition duration-200 ease-in-out hover:opacity-100 hover:text-teal-600',
27
+ ],
28
+ ],
29
+ presets: [
30
+ presetUno(),
31
+ presetAttributify(),
32
+ presetIcons({
33
+ scale: 1.2,
34
+ warn: true,
35
+ }),
36
+ presetTypography(),
37
+ presetWebFonts({
38
+ fonts: {
39
+ sans: 'DM Sans',
40
+ serif: 'DM Serif Display',
41
+ mono: 'DM Mono',
42
+ },
43
+ }),
44
+ ],
45
+ transformers: [transformerDirectives(), transformerVariantGroup()],
46
+ safelist: 'prose prose-sm m-auto text-left'.split(' '),
47
+ });
@@ -0,0 +1,32 @@
1
+ /*
2
+ * @Author: zhangyang
3
+ * @Date: 2022-12-03 15:57:40
4
+ * @LastEditTime: 2023-01-13 10:07:24
5
+ * @Description:
6
+ */
7
+ import { fileURLToPath, URL } from 'node:url';
8
+ import { defineConfig, loadEnv } from 'vite';
9
+ import type { ConfigEnv, UserConfigExport } from 'vite';
10
+ import { usePlugins, localServer } from './build';
11
+
12
+ // https://vitejs.dev/config/
13
+ export default ({ command, mode }: ConfigEnv): UserConfigExport => {
14
+ const root = process.cwd();
15
+ const viteEnv = loadEnv(mode, root);
16
+ console.log('🚀 ~ file: vite.config.ts ~ line 36 ~ viteEnv', viteEnv);
17
+ return defineConfig({
18
+ base: './',
19
+ plugins: usePlugins(),
20
+ resolve: {
21
+ alias: {
22
+ '@': fileURLToPath(new URL('./src', import.meta.url)),
23
+ },
24
+ },
25
+ server: {
26
+ host: true,
27
+ proxy: {
28
+ '/api': localServer,
29
+ },
30
+ },
31
+ });
32
+ };