create-young-proj 1.5.0 → 1.6.0
Sign up to get free protection for your applications and to get access to all the features.
- package/CHANGELOG.md +20 -0
- package/package.json +1 -1
- package/template-nuxt-admin/README.md +1 -1
- package/template-nuxt-admin/nuxt.config.ts +4 -5
- package/template-nuxt-admin/package.json +0 -1
- package/template-nuxt-admin/server/plugins/env.ts +8 -0
- package/template-nuxt-admin/yarn.lock +0 -5
- package/template-nuxt-mobile/.nvmrc +1 -0
- package/{template-vue-mobile → template-nuxt-mobile}/.vscode/extensions.json +5 -3
- package/template-nuxt-mobile/.vscode/settings.json +39 -0
- package/{template-vue-mobile → template-nuxt-mobile}/Dockerfile +12 -13
- package/template-nuxt-mobile/README.md +90 -0
- package/template-nuxt-mobile/_gitignore +26 -0
- package/template-nuxt-mobile/_npmrc +2 -0
- package/template-nuxt-mobile/_nvmrc +1 -0
- package/template-nuxt-mobile/app.vue +79 -0
- package/template-nuxt-mobile/boot.mjs +17 -0
- package/template-nuxt-mobile/components/young/CodeInput.vue +72 -0
- package/template-nuxt-mobile/composables/api.ts +57 -0
- package/template-nuxt-mobile/composables/apis/get.ts +22 -0
- package/template-nuxt-mobile/composables/apis/index.ts +8 -0
- package/template-nuxt-mobile/composables/apis/post.ts +39 -0
- package/template-nuxt-mobile/composables/share.ts +22 -0
- package/template-nuxt-mobile/composables/user.ts +48 -0
- package/template-nuxt-mobile/composables/utils.ts +80 -0
- package/template-nuxt-mobile/config/.devrc +2 -0
- package/template-nuxt-mobile/env.d.ts +65 -0
- package/template-nuxt-mobile/error.vue +69 -0
- package/template-nuxt-mobile/eslint.config.js +33 -0
- package/template-nuxt-mobile/layouts/blank.vue +11 -0
- package/template-nuxt-mobile/layouts/default.vue +32 -0
- package/template-nuxt-mobile/layouts/tabbar.vue +29 -0
- package/template-nuxt-mobile/middleware/auth.global.ts +34 -0
- package/template-nuxt-mobile/nuxt.config.ts +78 -0
- package/template-nuxt-mobile/package.json +40 -0
- package/template-nuxt-mobile/pages/base/login.vue +124 -0
- package/template-nuxt-mobile/pages/base/resetPasswd.vue +84 -0
- package/template-nuxt-mobile/pages/index.vue +22 -0
- package/template-nuxt-mobile/pages/my.vue +18 -0
- package/template-nuxt-mobile/pages/sub/[id].vue +21 -0
- package/template-nuxt-mobile/public/favicon.ico +0 -0
- package/template-nuxt-mobile/public/robots.txt +2 -0
- package/template-nuxt-mobile/server/plugins/init.ts +94 -0
- package/template-nuxt-mobile/server/routes/get/env.ts +13 -0
- package/template-nuxt-mobile/server/tsconfig.json +3 -0
- package/template-nuxt-mobile/server/utils/index.ts +12 -0
- package/template-nuxt-mobile/server/utils/proxy.ts +59 -0
- package/template-nuxt-mobile/tsconfig.json +4 -0
- package/template-nuxt-mobile/typings/system.d.ts +22 -0
- package/template-nuxt-mobile/uno.config.ts +40 -0
- package/template-nuxt-mobile/utils/tool.ts +153 -0
- package/template-nuxt-mobile/yarn.lock +7737 -0
- package/template-nuxt-website/README.md +3 -1
- package/template-nuxt-website/nuxt.config.ts +4 -5
- package/template-vue-mobile/.vscode/base.code-snippets +0 -24
- package/template-vue-mobile/.vscode/settings.json +0 -7
- package/template-vue-mobile/README.md +0 -71
- package/template-vue-mobile/_env +0 -6
- package/template-vue-mobile/_gitignore +0 -30
- package/template-vue-mobile/boot.mjs +0 -16
- package/template-vue-mobile/build/custom-plugin.ts +0 -30
- package/template-vue-mobile/build/index.ts +0 -7
- package/template-vue-mobile/build/plugins.ts +0 -68
- package/template-vue-mobile/config/.devrc +0 -2
- package/template-vue-mobile/index.html +0 -25
- package/template-vue-mobile/nitro.config.ts +0 -19
- package/template-vue-mobile/package.json +0 -48
- package/template-vue-mobile/plugins/env.ts +0 -26
- package/template-vue-mobile/public/vite.svg +0 -1
- package/template-vue-mobile/rome.json +0 -24
- package/template-vue-mobile/routes/[...all].ts +0 -11
- package/template-vue-mobile/routes/get/env.ts +0 -25
- package/template-vue-mobile/src/App.vue +0 -29
- package/template-vue-mobile/src/auto-components.d.ts +0 -24
- package/template-vue-mobile/src/auto-imports.d.ts +0 -289
- package/template-vue-mobile/src/components/Init.vue +0 -36
- package/template-vue-mobile/src/global.d.ts +0 -7
- package/template-vue-mobile/src/hooks/useVerifyCode.ts +0 -46
- package/template-vue-mobile/src/layouts/blank.vue +0 -9
- package/template-vue-mobile/src/layouts/default.vue +0 -27
- package/template-vue-mobile/src/layouts/sub.vue +0 -20
- package/template-vue-mobile/src/main.ts +0 -35
- package/template-vue-mobile/src/modules/1-router.ts +0 -40
- package/template-vue-mobile/src/modules/2-pinia.ts +0 -10
- package/template-vue-mobile/src/modules/3-net.ts +0 -46
- package/template-vue-mobile/src/modules/4-auth.ts +0 -64
- package/template-vue-mobile/src/views/[...all_404].vue +0 -557
- package/template-vue-mobile/src/views/base/login.vue +0 -110
- package/template-vue-mobile/src/views/base/resetPasswd.vue +0 -88
- package/template-vue-mobile/src/views/index.vue +0 -18
- package/template-vue-mobile/src/views/my.vue +0 -15
- package/template-vue-mobile/src/views/sub.vue +0 -18
- package/template-vue-mobile/src/vite-env.d.ts +0 -43
- package/template-vue-mobile/tsconfig.json +0 -21
- package/template-vue-mobile/tsconfig.node.json +0 -9
- package/template-vue-mobile/unocss.config.ts +0 -47
- package/template-vue-mobile/vite.config.ts +0 -32
- package/template-vue-mobile/yarn.lock +0 -4395
- /package/{template-vue-mobile → template-nuxt-mobile}/config/.onlinerc +0 -0
- /package/{template-vue-mobile → template-nuxt-mobile}/config/.testrc +0 -0
@@ -1,88 +0,0 @@
|
|
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>
|
@@ -1,18 +0,0 @@
|
|
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>
|
@@ -1,18 +0,0 @@
|
|
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>
|
@@ -1,43 +0,0 @@
|
|
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
|
-
}
|
@@ -1,21 +0,0 @@
|
|
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
|
-
}
|
@@ -1,47 +0,0 @@
|
|
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
|
-
});
|
@@ -1,32 +0,0 @@
|
|
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
|
-
};
|