diff --git a/.eslintrc.cjs b/.eslintrc.cjs index 6f40582..497f1cd 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -2,6 +2,22 @@ require('@rushstack/eslint-patch/modern-module-resolution') module.exports = { +rules: { + // 忽略未使用的变量和参数 + '@typescript-eslint/no-unused-vars': 'off', + 'no-unused-vars': 'off', + + // 或者设置为警告级别 + // '@typescript-eslint/no-unused-vars': 'warn', + // 'no-unused-vars': 'warn', + + // Vue 相关规则 + 'vue/multi-word-component-names': 'off', + 'vue/no-unused-vars': 'off', + 'vue/no-mutating-props': 'off', + 'no-empty-pattern': 'off' + + }, root: true, 'extends': [ 'plugin:vue/vue3-essential', diff --git a/auto-imports.d.ts b/auto-imports.d.ts index 7274c7d..918aad8 100644 --- a/auto-imports.d.ts +++ b/auto-imports.d.ts @@ -4,85 +4,5 @@ // Generated by unplugin-auto-import export {} declare global { - const EffectScope: typeof import('vue')['EffectScope'] - const acceptHMRUpdate: typeof import('pinia')['acceptHMRUpdate'] - const computed: typeof import('vue')['computed'] - const createApp: typeof import('vue')['createApp'] - const createPinia: typeof import('pinia')['createPinia'] - const customRef: typeof import('vue')['customRef'] - const defineAsyncComponent: typeof import('vue')['defineAsyncComponent'] - const defineComponent: typeof import('vue')['defineComponent'] - const defineStore: typeof import('pinia')['defineStore'] - const effectScope: typeof import('vue')['effectScope'] - const flexible: typeof import('./src/utils/flexible.js')['default'] - const getActivePinia: typeof import('pinia')['getActivePinia'] - const getCurrentInstance: typeof import('vue')['getCurrentInstance'] - const getCurrentScope: typeof import('vue')['getCurrentScope'] - const getLocal: typeof import('./src/utils/local')['getLocal'] - const getMousePosition: typeof import('./src/utils/tools')['getMousePosition'] - const getUniversalZoomLevel: typeof import('./src/utils/tools')['getUniversalZoomLevel'] - const h: typeof import('vue')['h'] - const inject: typeof import('vue')['inject'] - const isProxy: typeof import('vue')['isProxy'] - const isReactive: typeof import('vue')['isReactive'] - const isReadonly: typeof import('vue')['isReadonly'] - const isRef: typeof import('vue')['isRef'] - const mapActions: typeof import('pinia')['mapActions'] - const mapGetters: typeof import('pinia')['mapGetters'] - const mapState: typeof import('pinia')['mapState'] - const mapStores: typeof import('pinia')['mapStores'] - const mapWritableState: typeof import('pinia')['mapWritableState'] - const markRaw: typeof import('vue')['markRaw'] - const nextTick: typeof import('vue')['nextTick'] - const onActivated: typeof import('vue')['onActivated'] - const onBeforeMount: typeof import('vue')['onBeforeMount'] - const onBeforeRouteLeave: typeof import('vue-router')['onBeforeRouteLeave'] - const onBeforeRouteUpdate: typeof import('vue-router')['onBeforeRouteUpdate'] - const onBeforeUnmount: typeof import('vue')['onBeforeUnmount'] - const onBeforeUpdate: typeof import('vue')['onBeforeUpdate'] - const onDeactivated: typeof import('vue')['onDeactivated'] - const onErrorCaptured: typeof import('vue')['onErrorCaptured'] - const onMounted: typeof import('vue')['onMounted'] - const onRenderTracked: typeof import('vue')['onRenderTracked'] - const onRenderTriggered: typeof import('vue')['onRenderTriggered'] - const onScopeDispose: typeof import('vue')['onScopeDispose'] - const onServerPrefetch: typeof import('vue')['onServerPrefetch'] - const onUnmounted: typeof import('vue')['onUnmounted'] - const onUpdated: typeof import('vue')['onUpdated'] - const provide: typeof import('vue')['provide'] - const reactive: typeof import('vue')['reactive'] - const readonly: typeof import('vue')['readonly'] - const ref: typeof import('vue')['ref'] - const removeLocal: typeof import('./src/utils/local')['removeLocal'] - const request: typeof import('./src/utils/request')['default'] - const resolveComponent: typeof import('vue')['resolveComponent'] - const setActivePinia: typeof import('pinia')['setActivePinia'] - const setLocal: typeof import('./src/utils/local')['setLocal'] - const setMapStoreSuffix: typeof import('pinia')['setMapStoreSuffix'] - const shallowReactive: typeof import('vue')['shallowReactive'] - const shallowReadonly: typeof import('vue')['shallowReadonly'] - const shallowRef: typeof import('vue')['shallowRef'] - const storeToRefs: typeof import('pinia')['storeToRefs'] - const stores: typeof import('./src/stores/index')['default'] - const toRaw: typeof import('vue')['toRaw'] - const toRef: typeof import('vue')['toRef'] - const toRefs: typeof import('vue')['toRefs'] - const triggerRef: typeof import('vue')['triggerRef'] - const unref: typeof import('vue')['unref'] - const useAttrs: typeof import('vue')['useAttrs'] - const useCssModule: typeof import('vue')['useCssModule'] - const useCssVars: typeof import('vue')['useCssVars'] - const useLink: typeof import('vue-router')['useLink'] - const useRoute: typeof import('vue-router')['useRoute'] - const useRouter: typeof import('vue-router')['useRouter'] - const useSlots: typeof import('vue')['useSlots'] - const watch: typeof import('vue')['watch'] - const watchEffect: typeof import('vue')['watchEffect'] - const watchPostEffect: typeof import('vue')['watchPostEffect'] - const watchSyncEffect: typeof import('vue')['watchSyncEffect'] -} -// for type re-export -declare global { - // @ts-ignore - export type { Component, ComponentPublicInstance, ComputedRef, InjectionKey, PropType, Ref, VNode } from 'vue' + } diff --git a/components.d.ts b/components.d.ts index e4ef250..8820594 100644 --- a/components.d.ts +++ b/components.d.ts @@ -9,16 +9,10 @@ export {} declare module '@vue/runtime-core' { export interface GlobalComponents { - HelloWorld: typeof import('./src/components/HelloWorld.vue')['default'] - IconCommunity: typeof import('./src/components/icons/IconCommunity.vue')['default'] - IconDocumentation: typeof import('./src/components/icons/IconDocumentation.vue')['default'] - IconEcosystem: typeof import('./src/components/icons/IconEcosystem.vue')['default'] - IconSupport: typeof import('./src/components/icons/IconSupport.vue')['default'] - IconTooling: typeof import('./src/components/icons/IconTooling.vue')['default'] RouterLink: typeof import('vue-router')['RouterLink'] RouterView: typeof import('vue-router')['RouterView'] SvgIcon: typeof import('./src/components/SvgIcon/index.vue')['default'] - TheWelcome: typeof import('./src/components/TheWelcome.vue')['default'] - WelcomeItem: typeof import('./src/components/WelcomeItem.vue')['default'] + VanSwipe: typeof import('vant/es')['Swipe'] + VanSwipeItem: typeof import('vant/es')['SwipeItem'] } } diff --git a/src/assets/images/entry_bg.png b/src/assets/images/entry_bg.png new file mode 100644 index 0000000..944e929 Binary files /dev/null and b/src/assets/images/entry_bg.png differ diff --git a/src/assets/images/female.png b/src/assets/images/female.png new file mode 100644 index 0000000..0fec1dc Binary files /dev/null and b/src/assets/images/female.png differ diff --git a/src/assets/images/login_bg.png b/src/assets/images/login_bg.png new file mode 100644 index 0000000..d28ae7d Binary files /dev/null and b/src/assets/images/login_bg.png differ diff --git a/src/assets/images/male.png b/src/assets/images/male.png new file mode 100644 index 0000000..4e9873d Binary files /dev/null and b/src/assets/images/male.png differ diff --git a/src/assets/images/sginup_bg.png b/src/assets/images/sginup_bg.png new file mode 100644 index 0000000..5713550 Binary files /dev/null and b/src/assets/images/sginup_bg.png differ diff --git a/src/assets/images/stylist_bg.png b/src/assets/images/stylist_bg.png new file mode 100644 index 0000000..fecffd2 Binary files /dev/null and b/src/assets/images/stylist_bg.png differ diff --git a/src/assets/main.css b/src/assets/main.css index 14121af..78bb472 100644 --- a/src/assets/main.css +++ b/src/assets/main.css @@ -17,6 +17,14 @@ a, } } +.safe-area-top { + padding-top: constant(safe-area-inset-top); + padding-top: env(safe-area-inset-top); +} +.safe-area-bottom{ + padding-bottom: constant(safe-area-inset-bottom); + padding-bottom: env(safe-area-inset-bottom); +} /* @media (min-width: 1024px) { body { display: flex; diff --git a/src/main.ts b/src/main.ts index 0901b59..ed8dfe2 100644 --- a/src/main.ts +++ b/src/main.ts @@ -7,6 +7,7 @@ import 'normalize.css/normalize.css' import './assets/css/style.css' import SvgIcon from "@/components/SvgIcon/index.vue"; import "virtual:svg-icons-register"; +import 'vant/lib/index.css' import flexible from "./utils/flexible.js"; diff --git a/src/router/index.ts b/src/router/index.ts index f4c5bc0..1806c61 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -1,32 +1,43 @@ import { createRouter, createWebHistory } from 'vue-router' const router = createRouter({ history: createWebHistory('/'), -// history: createWebHistory(import.meta.env.VITE_APP_URL), + // history: createWebHistory(import.meta.env.VITE_APP_URL), routes: [ { - path: '/', - redirect: "/workshop", - }, - { - path: '/workshop', - name: 'Workshop', - component: () => import('../views/Workshop/index.vue'), - children: [ - // { - // path: '', - // name: 'activitiesWorkshop', - // redirect: "/activities/workshop", - // }, + path: '/', + redirect: '/workshop' + }, + { + path: '/workshop', + name: 'Workshop', + component: () => import('../views/Workshop/index.vue'), + children: [ + // { + // path: '', + // name: 'activitiesWorkshop', + // redirect: "/activities/workshop", + // }, - { - path: '/workshop/selectStyle', - name: 'SelectStyle', - component: () => import('../views/Workshop/selectStyle.vue'), - }, - - - ] - }, + { + path: '/workshop/selectStyle', + name: 'SelectStyle', + component: () => import('../views/Workshop/selectStyle.vue') + } + ] + }, + { + path: '/login', + component: () => import('@/views/login/LoginPage.vue') + }, + { + path: '/signup', + component: () => import('@/views/login/SignupPage.vue') + }, + { path: '/welcome', component: () => import('@/views/login/WelcomePage.vue') }, + { + path:'/stylist', + component: () => import('@/views/stylist/index.vue') + } ] }) diff --git a/src/views/login/LoginPage.vue b/src/views/login/LoginPage.vue new file mode 100644 index 0000000..678c013 --- /dev/null +++ b/src/views/login/LoginPage.vue @@ -0,0 +1,445 @@ + + + + + diff --git a/src/views/login/SignupPage.vue b/src/views/login/SignupPage.vue new file mode 100644 index 0000000..10899af --- /dev/null +++ b/src/views/login/SignupPage.vue @@ -0,0 +1,397 @@ + + + + + diff --git a/src/views/login/WelcomePage.vue b/src/views/login/WelcomePage.vue new file mode 100644 index 0000000..59534a0 --- /dev/null +++ b/src/views/login/WelcomePage.vue @@ -0,0 +1,63 @@ + + + + + diff --git a/src/views/stylist/index.vue b/src/views/stylist/index.vue new file mode 100644 index 0000000..413a163 --- /dev/null +++ b/src/views/stylist/index.vue @@ -0,0 +1,256 @@ + + + + + diff --git a/vite.config.ts b/vite.config.ts index 4a8153e..128a084 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -19,13 +19,9 @@ export default defineConfig({ // ... AutoImport({ resolvers: [VantResolver()], - imports: ['vue', 'vue-router', 'pinia'], - dts: true, - dirs: ['src/stores', 'src/utils'] }), Components({ resolvers: [VantResolver()], - dts: false }), createSvgIconsPlugin({ // 指定需要缓存的图标文件夹