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.
Files changed (100) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/package.json +1 -1
  3. package/template-nuxt-admin/README.md +1 -1
  4. package/template-nuxt-admin/nuxt.config.ts +4 -5
  5. package/template-nuxt-admin/package.json +0 -1
  6. package/template-nuxt-admin/server/plugins/env.ts +8 -0
  7. package/template-nuxt-admin/yarn.lock +0 -5
  8. package/template-nuxt-mobile/.nvmrc +1 -0
  9. package/{template-vue-mobile → template-nuxt-mobile}/.vscode/extensions.json +5 -3
  10. package/template-nuxt-mobile/.vscode/settings.json +39 -0
  11. package/{template-vue-mobile → template-nuxt-mobile}/Dockerfile +12 -13
  12. package/template-nuxt-mobile/README.md +90 -0
  13. package/template-nuxt-mobile/_gitignore +26 -0
  14. package/template-nuxt-mobile/_npmrc +2 -0
  15. package/template-nuxt-mobile/_nvmrc +1 -0
  16. package/template-nuxt-mobile/app.vue +79 -0
  17. package/template-nuxt-mobile/boot.mjs +17 -0
  18. package/template-nuxt-mobile/components/young/CodeInput.vue +72 -0
  19. package/template-nuxt-mobile/composables/api.ts +57 -0
  20. package/template-nuxt-mobile/composables/apis/get.ts +22 -0
  21. package/template-nuxt-mobile/composables/apis/index.ts +8 -0
  22. package/template-nuxt-mobile/composables/apis/post.ts +39 -0
  23. package/template-nuxt-mobile/composables/share.ts +22 -0
  24. package/template-nuxt-mobile/composables/user.ts +48 -0
  25. package/template-nuxt-mobile/composables/utils.ts +80 -0
  26. package/template-nuxt-mobile/config/.devrc +2 -0
  27. package/template-nuxt-mobile/env.d.ts +65 -0
  28. package/template-nuxt-mobile/error.vue +69 -0
  29. package/template-nuxt-mobile/eslint.config.js +33 -0
  30. package/template-nuxt-mobile/layouts/blank.vue +11 -0
  31. package/template-nuxt-mobile/layouts/default.vue +32 -0
  32. package/template-nuxt-mobile/layouts/tabbar.vue +29 -0
  33. package/template-nuxt-mobile/middleware/auth.global.ts +34 -0
  34. package/template-nuxt-mobile/nuxt.config.ts +78 -0
  35. package/template-nuxt-mobile/package.json +40 -0
  36. package/template-nuxt-mobile/pages/base/login.vue +124 -0
  37. package/template-nuxt-mobile/pages/base/resetPasswd.vue +84 -0
  38. package/template-nuxt-mobile/pages/index.vue +22 -0
  39. package/template-nuxt-mobile/pages/my.vue +18 -0
  40. package/template-nuxt-mobile/pages/sub/[id].vue +21 -0
  41. package/template-nuxt-mobile/public/favicon.ico +0 -0
  42. package/template-nuxt-mobile/public/robots.txt +2 -0
  43. package/template-nuxt-mobile/server/plugins/init.ts +94 -0
  44. package/template-nuxt-mobile/server/routes/get/env.ts +13 -0
  45. package/template-nuxt-mobile/server/tsconfig.json +3 -0
  46. package/template-nuxt-mobile/server/utils/index.ts +12 -0
  47. package/template-nuxt-mobile/server/utils/proxy.ts +59 -0
  48. package/template-nuxt-mobile/tsconfig.json +4 -0
  49. package/template-nuxt-mobile/typings/system.d.ts +22 -0
  50. package/template-nuxt-mobile/uno.config.ts +40 -0
  51. package/template-nuxt-mobile/utils/tool.ts +153 -0
  52. package/template-nuxt-mobile/yarn.lock +7737 -0
  53. package/template-nuxt-website/README.md +3 -1
  54. package/template-nuxt-website/nuxt.config.ts +4 -5
  55. package/template-vue-mobile/.vscode/base.code-snippets +0 -24
  56. package/template-vue-mobile/.vscode/settings.json +0 -7
  57. package/template-vue-mobile/README.md +0 -71
  58. package/template-vue-mobile/_env +0 -6
  59. package/template-vue-mobile/_gitignore +0 -30
  60. package/template-vue-mobile/boot.mjs +0 -16
  61. package/template-vue-mobile/build/custom-plugin.ts +0 -30
  62. package/template-vue-mobile/build/index.ts +0 -7
  63. package/template-vue-mobile/build/plugins.ts +0 -68
  64. package/template-vue-mobile/config/.devrc +0 -2
  65. package/template-vue-mobile/index.html +0 -25
  66. package/template-vue-mobile/nitro.config.ts +0 -19
  67. package/template-vue-mobile/package.json +0 -48
  68. package/template-vue-mobile/plugins/env.ts +0 -26
  69. package/template-vue-mobile/public/vite.svg +0 -1
  70. package/template-vue-mobile/rome.json +0 -24
  71. package/template-vue-mobile/routes/[...all].ts +0 -11
  72. package/template-vue-mobile/routes/get/env.ts +0 -25
  73. package/template-vue-mobile/src/App.vue +0 -29
  74. package/template-vue-mobile/src/auto-components.d.ts +0 -24
  75. package/template-vue-mobile/src/auto-imports.d.ts +0 -289
  76. package/template-vue-mobile/src/components/Init.vue +0 -36
  77. package/template-vue-mobile/src/global.d.ts +0 -7
  78. package/template-vue-mobile/src/hooks/useVerifyCode.ts +0 -46
  79. package/template-vue-mobile/src/layouts/blank.vue +0 -9
  80. package/template-vue-mobile/src/layouts/default.vue +0 -27
  81. package/template-vue-mobile/src/layouts/sub.vue +0 -20
  82. package/template-vue-mobile/src/main.ts +0 -35
  83. package/template-vue-mobile/src/modules/1-router.ts +0 -40
  84. package/template-vue-mobile/src/modules/2-pinia.ts +0 -10
  85. package/template-vue-mobile/src/modules/3-net.ts +0 -46
  86. package/template-vue-mobile/src/modules/4-auth.ts +0 -64
  87. package/template-vue-mobile/src/views/[...all_404].vue +0 -557
  88. package/template-vue-mobile/src/views/base/login.vue +0 -110
  89. package/template-vue-mobile/src/views/base/resetPasswd.vue +0 -88
  90. package/template-vue-mobile/src/views/index.vue +0 -18
  91. package/template-vue-mobile/src/views/my.vue +0 -15
  92. package/template-vue-mobile/src/views/sub.vue +0 -18
  93. package/template-vue-mobile/src/vite-env.d.ts +0 -43
  94. package/template-vue-mobile/tsconfig.json +0 -21
  95. package/template-vue-mobile/tsconfig.node.json +0 -9
  96. package/template-vue-mobile/unocss.config.ts +0 -47
  97. package/template-vue-mobile/vite.config.ts +0 -32
  98. package/template-vue-mobile/yarn.lock +0 -4395
  99. /package/{template-vue-mobile → template-nuxt-mobile}/config/.onlinerc +0 -0
  100. /package/{template-vue-mobile → template-nuxt-mobile}/config/.testrc +0 -0
@@ -1,289 +0,0 @@
1
- // Generated by 'unplugin-auto-import'
2
- export {}
3
- declare global {
4
- const EffectScope: typeof import('vue')['EffectScope']
5
- const acceptHMRUpdate: typeof import('pinia')['acceptHMRUpdate']
6
- const asyncComputed: typeof import('@vueuse/core')['asyncComputed']
7
- const autoResetRef: typeof import('@vueuse/core')['autoResetRef']
8
- const computed: typeof import('vue')['computed']
9
- const computedAsync: typeof import('@vueuse/core')['computedAsync']
10
- const computedEager: typeof import('@vueuse/core')['computedEager']
11
- const computedInject: typeof import('@vueuse/core')['computedInject']
12
- const computedWithControl: typeof import('@vueuse/core')['computedWithControl']
13
- const controlledComputed: typeof import('@vueuse/core')['controlledComputed']
14
- const controlledRef: typeof import('@vueuse/core')['controlledRef']
15
- const createApp: typeof import('vue')['createApp']
16
- const createEventHook: typeof import('@vueuse/core')['createEventHook']
17
- const createGlobalState: typeof import('@vueuse/core')['createGlobalState']
18
- const createInjectionState: typeof import('@vueuse/core')['createInjectionState']
19
- const createPinia: typeof import('pinia')['createPinia']
20
- const createReactiveFn: typeof import('@vueuse/core')['createReactiveFn']
21
- const createSharedComposable: typeof import('@vueuse/core')['createSharedComposable']
22
- const createUnrefFn: typeof import('@vueuse/core')['createUnrefFn']
23
- const customRef: typeof import('vue')['customRef']
24
- const debouncedRef: typeof import('@vueuse/core')['debouncedRef']
25
- const debouncedWatch: typeof import('@vueuse/core')['debouncedWatch']
26
- const defineAsyncComponent: typeof import('vue')['defineAsyncComponent']
27
- const defineComponent: typeof import('vue')['defineComponent']
28
- const defineStore: typeof import('pinia')['defineStore']
29
- const eagerComputed: typeof import('@vueuse/core')['eagerComputed']
30
- const effectScope: typeof import('vue')['effectScope']
31
- const extendRef: typeof import('@vueuse/core')['extendRef']
32
- const getActivePinia: typeof import('pinia')['getActivePinia']
33
- const getCurrentInstance: typeof import('vue')['getCurrentInstance']
34
- const getCurrentScope: typeof import('vue')['getCurrentScope']
35
- const h: typeof import('vue')['h']
36
- const ignorableWatch: typeof import('@vueuse/core')['ignorableWatch']
37
- const inject: typeof import('vue')['inject']
38
- const isDefined: typeof import('@vueuse/core')['isDefined']
39
- const isProxy: typeof import('vue')['isProxy']
40
- const isReactive: typeof import('vue')['isReactive']
41
- const isReadonly: typeof import('vue')['isReadonly']
42
- const isRef: typeof import('vue')['isRef']
43
- const makeDestructurable: typeof import('@vueuse/core')['makeDestructurable']
44
- const mapActions: typeof import('pinia')['mapActions']
45
- const mapGetters: typeof import('pinia')['mapGetters']
46
- const mapState: typeof import('pinia')['mapState']
47
- const mapStores: typeof import('pinia')['mapStores']
48
- const mapWritableState: typeof import('pinia')['mapWritableState']
49
- const markRaw: typeof import('vue')['markRaw']
50
- const nextTick: typeof import('vue')['nextTick']
51
- const onActivated: typeof import('vue')['onActivated']
52
- const onBeforeMount: typeof import('vue')['onBeforeMount']
53
- const onBeforeRouteLeave: typeof import('vue-router')['onBeforeRouteLeave']
54
- const onBeforeRouteUpdate: typeof import('vue-router')['onBeforeRouteUpdate']
55
- const onBeforeUnmount: typeof import('vue')['onBeforeUnmount']
56
- const onBeforeUpdate: typeof import('vue')['onBeforeUpdate']
57
- const onClickOutside: typeof import('@vueuse/core')['onClickOutside']
58
- const onDeactivated: typeof import('vue')['onDeactivated']
59
- const onErrorCaptured: typeof import('vue')['onErrorCaptured']
60
- const onKeyStroke: typeof import('@vueuse/core')['onKeyStroke']
61
- const onLongPress: typeof import('@vueuse/core')['onLongPress']
62
- const onMounted: typeof import('vue')['onMounted']
63
- const onRenderTracked: typeof import('vue')['onRenderTracked']
64
- const onRenderTriggered: typeof import('vue')['onRenderTriggered']
65
- const onScopeDispose: typeof import('vue')['onScopeDispose']
66
- const onServerPrefetch: typeof import('vue')['onServerPrefetch']
67
- const onStartTyping: typeof import('@vueuse/core')['onStartTyping']
68
- const onUnmounted: typeof import('vue')['onUnmounted']
69
- const onUpdated: typeof import('vue')['onUpdated']
70
- const pausableWatch: typeof import('@vueuse/core')['pausableWatch']
71
- const provide: typeof import('vue')['provide']
72
- const reactify: typeof import('@vueuse/core')['reactify']
73
- const reactifyObject: typeof import('@vueuse/core')['reactifyObject']
74
- const reactive: typeof import('vue')['reactive']
75
- const reactiveComputed: typeof import('@vueuse/core')['reactiveComputed']
76
- const reactiveOmit: typeof import('@vueuse/core')['reactiveOmit']
77
- const reactivePick: typeof import('@vueuse/core')['reactivePick']
78
- const readonly: typeof import('vue')['readonly']
79
- const ref: typeof import('vue')['ref']
80
- const refAutoReset: typeof import('@vueuse/core')['refAutoReset']
81
- const refDebounced: typeof import('@vueuse/core')['refDebounced']
82
- const refDefault: typeof import('@vueuse/core')['refDefault']
83
- const refThrottled: typeof import('@vueuse/core')['refThrottled']
84
- const refWithControl: typeof import('@vueuse/core')['refWithControl']
85
- const resolveComponent: typeof import('vue')['resolveComponent']
86
- const resolveDirective: typeof import('vue')['resolveDirective']
87
- const resolveRef: typeof import('@vueuse/core')['resolveRef']
88
- const resolveUnref: typeof import('@vueuse/core')['resolveUnref']
89
- const setActivePinia: typeof import('pinia')['setActivePinia']
90
- const setMapStoreSuffix: typeof import('pinia')['setMapStoreSuffix']
91
- const shallowReactive: typeof import('vue')['shallowReactive']
92
- const shallowReadonly: typeof import('vue')['shallowReadonly']
93
- const shallowRef: typeof import('vue')['shallowRef']
94
- const showConfirmDialog: typeof import('vant')['showConfirmDialog']
95
- const showDialog: typeof import('vant')['showDialog']
96
- const showFailToast: typeof import('vant')['showFailToast']
97
- const showImagePreview: typeof import('vant')['showImagePreview']
98
- const showLoadingToast: typeof import('vant')['showLoadingToast']
99
- const showNotify: typeof import('vant')['showNotify']
100
- const showSuccessToast: typeof import('vant')['showSuccessToast']
101
- const showToast: typeof import('vant')['showToast']
102
- const storeToRefs: typeof import('pinia')['storeToRefs']
103
- const syncRef: typeof import('@vueuse/core')['syncRef']
104
- const syncRefs: typeof import('@vueuse/core')['syncRefs']
105
- const templateRef: typeof import('@vueuse/core')['templateRef']
106
- const throttledRef: typeof import('@vueuse/core')['throttledRef']
107
- const throttledWatch: typeof import('@vueuse/core')['throttledWatch']
108
- const toRaw: typeof import('vue')['toRaw']
109
- const toReactive: typeof import('@vueuse/core')['toReactive']
110
- const toRef: typeof import('vue')['toRef']
111
- const toRefs: typeof import('vue')['toRefs']
112
- const triggerRef: typeof import('vue')['triggerRef']
113
- const tryOnBeforeMount: typeof import('@vueuse/core')['tryOnBeforeMount']
114
- const tryOnBeforeUnmount: typeof import('@vueuse/core')['tryOnBeforeUnmount']
115
- const tryOnMounted: typeof import('@vueuse/core')['tryOnMounted']
116
- const tryOnScopeDispose: typeof import('@vueuse/core')['tryOnScopeDispose']
117
- const tryOnUnmounted: typeof import('@vueuse/core')['tryOnUnmounted']
118
- const unref: typeof import('vue')['unref']
119
- const unrefElement: typeof import('@vueuse/core')['unrefElement']
120
- const until: typeof import('@vueuse/core')['until']
121
- const useActiveElement: typeof import('@vueuse/core')['useActiveElement']
122
- const useArrayEvery: typeof import('@vueuse/core')['useArrayEvery']
123
- const useArrayFilter: typeof import('@vueuse/core')['useArrayFilter']
124
- const useArrayFind: typeof import('@vueuse/core')['useArrayFind']
125
- const useArrayFindIndex: typeof import('@vueuse/core')['useArrayFindIndex']
126
- const useArrayJoin: typeof import('@vueuse/core')['useArrayJoin']
127
- const useArrayMap: typeof import('@vueuse/core')['useArrayMap']
128
- const useArrayReduce: typeof import('@vueuse/core')['useArrayReduce']
129
- const useArraySome: typeof import('@vueuse/core')['useArraySome']
130
- const useArrayUnique: typeof import('@vueuse/core')['useArrayUnique']
131
- const useAsyncQueue: typeof import('@vueuse/core')['useAsyncQueue']
132
- const useAsyncState: typeof import('@vueuse/core')['useAsyncState']
133
- const useAttrs: typeof import('vue')['useAttrs']
134
- const useBase64: typeof import('@vueuse/core')['useBase64']
135
- const useBattery: typeof import('@vueuse/core')['useBattery']
136
- const useBluetooth: typeof import('@vueuse/core')['useBluetooth']
137
- const useBreakpoints: typeof import('@vueuse/core')['useBreakpoints']
138
- const useBroadcastChannel: typeof import('@vueuse/core')['useBroadcastChannel']
139
- const useBrowserLocation: typeof import('@vueuse/core')['useBrowserLocation']
140
- const useCached: typeof import('@vueuse/core')['useCached']
141
- const useClipboard: typeof import('@vueuse/core')['useClipboard']
142
- const useCloned: typeof import('@vueuse/core')['useCloned']
143
- const useColorMode: typeof import('@vueuse/core')['useColorMode']
144
- const useConfirmDialog: typeof import('@vueuse/core')['useConfirmDialog']
145
- const useCounter: typeof import('@vueuse/core')['useCounter']
146
- const useCssModule: typeof import('vue')['useCssModule']
147
- const useCssVar: typeof import('@vueuse/core')['useCssVar']
148
- const useCssVars: typeof import('vue')['useCssVars']
149
- const useCurrentElement: typeof import('@vueuse/core')['useCurrentElement']
150
- const useCycleList: typeof import('@vueuse/core')['useCycleList']
151
- const useDark: typeof import('@vueuse/core')['useDark']
152
- const useDateFormat: typeof import('@vueuse/core')['useDateFormat']
153
- const useDebounce: typeof import('@vueuse/core')['useDebounce']
154
- const useDebounceFn: typeof import('@vueuse/core')['useDebounceFn']
155
- const useDebouncedRefHistory: typeof import('@vueuse/core')['useDebouncedRefHistory']
156
- const useDeviceMotion: typeof import('@vueuse/core')['useDeviceMotion']
157
- const useDeviceOrientation: typeof import('@vueuse/core')['useDeviceOrientation']
158
- const useDevicePixelRatio: typeof import('@vueuse/core')['useDevicePixelRatio']
159
- const useDevicesList: typeof import('@vueuse/core')['useDevicesList']
160
- const useDisplayMedia: typeof import('@vueuse/core')['useDisplayMedia']
161
- const useDocumentVisibility: typeof import('@vueuse/core')['useDocumentVisibility']
162
- const useDraggable: typeof import('@vueuse/core')['useDraggable']
163
- const useDropZone: typeof import('@vueuse/core')['useDropZone']
164
- const useElementBounding: typeof import('@vueuse/core')['useElementBounding']
165
- const useElementByPoint: typeof import('@vueuse/core')['useElementByPoint']
166
- const useElementHover: typeof import('@vueuse/core')['useElementHover']
167
- const useElementSize: typeof import('@vueuse/core')['useElementSize']
168
- const useElementVisibility: typeof import('@vueuse/core')['useElementVisibility']
169
- const useEventBus: typeof import('@vueuse/core')['useEventBus']
170
- const useEventListener: typeof import('@vueuse/core')['useEventListener']
171
- const useEventSource: typeof import('@vueuse/core')['useEventSource']
172
- const useEyeDropper: typeof import('@vueuse/core')['useEyeDropper']
173
- const useFavicon: typeof import('@vueuse/core')['useFavicon']
174
- const useFetch: typeof import('@vueuse/core')['useFetch']
175
- const useFileDialog: typeof import('@vueuse/core')['useFileDialog']
176
- const useFileSystemAccess: typeof import('@vueuse/core')['useFileSystemAccess']
177
- const useFocus: typeof import('@vueuse/core')['useFocus']
178
- const useFocusWithin: typeof import('@vueuse/core')['useFocusWithin']
179
- const useFps: typeof import('@vueuse/core')['useFps']
180
- const useFullscreen: typeof import('@vueuse/core')['useFullscreen']
181
- const useGamepad: typeof import('@vueuse/core')['useGamepad']
182
- const useGeolocation: typeof import('@vueuse/core')['useGeolocation']
183
- const useIdle: typeof import('@vueuse/core')['useIdle']
184
- const useImage: typeof import('@vueuse/core')['useImage']
185
- const useInfiniteScroll: typeof import('@vueuse/core')['useInfiniteScroll']
186
- const useIntersectionObserver: typeof import('@vueuse/core')['useIntersectionObserver']
187
- const useInterval: typeof import('@vueuse/core')['useInterval']
188
- const useIntervalFn: typeof import('@vueuse/core')['useIntervalFn']
189
- const useKeyModifier: typeof import('@vueuse/core')['useKeyModifier']
190
- const useLastChanged: typeof import('@vueuse/core')['useLastChanged']
191
- const useLink: typeof import('vue-router')['useLink']
192
- const useLocalStorage: typeof import('@vueuse/core')['useLocalStorage']
193
- const useMagicKeys: typeof import('@vueuse/core')['useMagicKeys']
194
- const useManualRefHistory: typeof import('@vueuse/core')['useManualRefHistory']
195
- const useMediaControls: typeof import('@vueuse/core')['useMediaControls']
196
- const useMediaQuery: typeof import('@vueuse/core')['useMediaQuery']
197
- const useMemoize: typeof import('@vueuse/core')['useMemoize']
198
- const useMemory: typeof import('@vueuse/core')['useMemory']
199
- const useMounted: typeof import('@vueuse/core')['useMounted']
200
- const useMouse: typeof import('@vueuse/core')['useMouse']
201
- const useMouseInElement: typeof import('@vueuse/core')['useMouseInElement']
202
- const useMousePressed: typeof import('@vueuse/core')['useMousePressed']
203
- const useMutationObserver: typeof import('@vueuse/core')['useMutationObserver']
204
- const useNavigatorLanguage: typeof import('@vueuse/core')['useNavigatorLanguage']
205
- const useNetwork: typeof import('@vueuse/core')['useNetwork']
206
- const useNow: typeof import('@vueuse/core')['useNow']
207
- const useObjectUrl: typeof import('@vueuse/core')['useObjectUrl']
208
- const useOffsetPagination: typeof import('@vueuse/core')['useOffsetPagination']
209
- const useOnline: typeof import('@vueuse/core')['useOnline']
210
- const usePageLeave: typeof import('@vueuse/core')['usePageLeave']
211
- const useParallax: typeof import('@vueuse/core')['useParallax']
212
- const usePermission: typeof import('@vueuse/core')['usePermission']
213
- const usePointer: typeof import('@vueuse/core')['usePointer']
214
- const usePointerLock: typeof import('@vueuse/core')['usePointerLock']
215
- const usePointerSwipe: typeof import('@vueuse/core')['usePointerSwipe']
216
- const usePreferredColorScheme: typeof import('@vueuse/core')['usePreferredColorScheme']
217
- const usePreferredContrast: typeof import('@vueuse/core')['usePreferredContrast']
218
- const usePreferredDark: typeof import('@vueuse/core')['usePreferredDark']
219
- const usePreferredLanguages: typeof import('@vueuse/core')['usePreferredLanguages']
220
- const usePreferredReducedMotion: typeof import('@vueuse/core')['usePreferredReducedMotion']
221
- const usePrevious: typeof import('@vueuse/core')['usePrevious']
222
- const useRafFn: typeof import('@vueuse/core')['useRafFn']
223
- const useRefHistory: typeof import('@vueuse/core')['useRefHistory']
224
- const useResizeObserver: typeof import('@vueuse/core')['useResizeObserver']
225
- const useRoute: typeof import('vue-router')['useRoute']
226
- const useRouter: typeof import('vue-router')['useRouter']
227
- const useScreenOrientation: typeof import('@vueuse/core')['useScreenOrientation']
228
- const useScreenSafeArea: typeof import('@vueuse/core')['useScreenSafeArea']
229
- const useScriptTag: typeof import('@vueuse/core')['useScriptTag']
230
- const useScroll: typeof import('@vueuse/core')['useScroll']
231
- const useScrollLock: typeof import('@vueuse/core')['useScrollLock']
232
- const useSessionStorage: typeof import('@vueuse/core')['useSessionStorage']
233
- const useShare: typeof import('@vueuse/core')['useShare']
234
- const useSlots: typeof import('vue')['useSlots']
235
- const useSorted: typeof import('@vueuse/core')['useSorted']
236
- const useSpeechRecognition: typeof import('@vueuse/core')['useSpeechRecognition']
237
- const useSpeechSynthesis: typeof import('@vueuse/core')['useSpeechSynthesis']
238
- const useStepper: typeof import('@vueuse/core')['useStepper']
239
- const useStorage: typeof import('@vueuse/core')['useStorage']
240
- const useStorageAsync: typeof import('@vueuse/core')['useStorageAsync']
241
- const useStyleTag: typeof import('@vueuse/core')['useStyleTag']
242
- const useSupported: typeof import('@vueuse/core')['useSupported']
243
- const useSwipe: typeof import('@vueuse/core')['useSwipe']
244
- const useTemplateRefsList: typeof import('@vueuse/core')['useTemplateRefsList']
245
- const useTextDirection: typeof import('@vueuse/core')['useTextDirection']
246
- const useTextSelection: typeof import('@vueuse/core')['useTextSelection']
247
- const useTextareaAutosize: typeof import('@vueuse/core')['useTextareaAutosize']
248
- const useThrottle: typeof import('@vueuse/core')['useThrottle']
249
- const useThrottleFn: typeof import('@vueuse/core')['useThrottleFn']
250
- const useThrottledRefHistory: typeof import('@vueuse/core')['useThrottledRefHistory']
251
- const useTimeAgo: typeof import('@vueuse/core')['useTimeAgo']
252
- const useTimeout: typeof import('@vueuse/core')['useTimeout']
253
- const useTimeoutFn: typeof import('@vueuse/core')['useTimeoutFn']
254
- const useTimeoutPoll: typeof import('@vueuse/core')['useTimeoutPoll']
255
- const useTimestamp: typeof import('@vueuse/core')['useTimestamp']
256
- const useTitle: typeof import('@vueuse/core')['useTitle']
257
- const useToNumber: typeof import('@vueuse/core')['useToNumber']
258
- const useToString: typeof import('@vueuse/core')['useToString']
259
- const useToggle: typeof import('@vueuse/core')['useToggle']
260
- const useTransition: typeof import('@vueuse/core')['useTransition']
261
- const useUrlSearchParams: typeof import('@vueuse/core')['useUrlSearchParams']
262
- const useUserMedia: typeof import('@vueuse/core')['useUserMedia']
263
- const useVModel: typeof import('@vueuse/core')['useVModel']
264
- const useVModels: typeof import('@vueuse/core')['useVModels']
265
- const useVibrate: typeof import('@vueuse/core')['useVibrate']
266
- const useVirtualList: typeof import('@vueuse/core')['useVirtualList']
267
- const useWakeLock: typeof import('@vueuse/core')['useWakeLock']
268
- const useWebNotification: typeof import('@vueuse/core')['useWebNotification']
269
- const useWebSocket: typeof import('@vueuse/core')['useWebSocket']
270
- const useWebWorker: typeof import('@vueuse/core')['useWebWorker']
271
- const useWebWorkerFn: typeof import('@vueuse/core')['useWebWorkerFn']
272
- const useWindowFocus: typeof import('@vueuse/core')['useWindowFocus']
273
- const useWindowScroll: typeof import('@vueuse/core')['useWindowScroll']
274
- const useWindowSize: typeof import('@vueuse/core')['useWindowSize']
275
- const watch: typeof import('vue')['watch']
276
- const watchArray: typeof import('@vueuse/core')['watchArray']
277
- const watchAtMost: typeof import('@vueuse/core')['watchAtMost']
278
- const watchDebounced: typeof import('@vueuse/core')['watchDebounced']
279
- const watchEffect: typeof import('vue')['watchEffect']
280
- const watchIgnorable: typeof import('@vueuse/core')['watchIgnorable']
281
- const watchOnce: typeof import('@vueuse/core')['watchOnce']
282
- const watchPausable: typeof import('@vueuse/core')['watchPausable']
283
- const watchPostEffect: typeof import('vue')['watchPostEffect']
284
- const watchSyncEffect: typeof import('vue')['watchSyncEffect']
285
- const watchThrottled: typeof import('@vueuse/core')['watchThrottled']
286
- const watchTriggerable: typeof import('@vueuse/core')['watchTriggerable']
287
- const watchWithFilter: typeof import('@vueuse/core')['watchWithFilter']
288
- const whenever: typeof import('@vueuse/core')['whenever']
289
- }
@@ -1,36 +0,0 @@
1
- <!--
2
- * @Author: zhangyang
3
- * @Date: 2023-02-01 11:54:25
4
- * @LastEditTime: 2023-02-01 11:59:36
5
- * @Description:
6
- -->
7
- <script lang="ts" setup>
8
- import { server } from 'virtual:local-server';
9
-
10
- (async () => {
11
- // 获取环境变量
12
- let viteEnv;
13
- // 注入此环境变量,可以兼容现有的部署方式
14
- if (import.meta.env.VITE_USE_DEFAULT_DEPLOY_METHOD) {
15
- viteEnv = import.meta.env;
16
- // console.log("🚀 ~ file: main.ts ~ line 19 ~ viteEnv", viteEnv)
17
- } else if (import.meta.env.DEV) {
18
- // 开发环境,局域网 ip
19
- viteEnv = await (await fetch(server + '/get/env')).json();
20
- // console.log("🚀 ~ file: main.ts ~ line 24 ~ viteEnv", viteEnv)
21
- } else {
22
- // 部署环境,需要配合 node server 使用
23
- viteEnv = await (await fetch(`/get/env`)).json();
24
- // console.log("🚀 ~ file: main.ts ~ line 28 ~ viteEnv", viteEnv)
25
- }
26
- window.__YOUNG_VITE_ENV__ = viteEnv;
27
-
28
- // 设定视口高度,防止软键盘影响布局
29
- const metaElement = document.querySelector('#viewportMeta');
30
- metaElement?.setAttribute('content', `maximum-scale=1.0,minimum-scale=1.0,user-scalable=0,width=device-width,initial-scale=1.0,viewport-fit=cover,height=${window.innerHeight}`);
31
-
32
- })();
33
- </script>
34
- <template>
35
- <div hidden></div>
36
- </template>
@@ -1,7 +0,0 @@
1
- /*
2
- * @Author: zhangyang
3
- * @Date: 2023-01-13 15:42:30
4
- * @LastEditTime: 2023-01-13 15:42:31
5
- * @Description:
6
- */
7
- type UserModule = (ctx: App<Element>, ...args: any[]) => void;
@@ -1,46 +0,0 @@
1
- /*
2
- * @Author: zhangyang
3
- * @Date: 2021-09-10 09:23:47
4
- * @LastEditTime: 2023-01-13 16:26:47
5
- * @Description: 发送短信验证码的逻辑抽离
6
- */
7
- import { useCountDown } from '@vant/use';
8
- interface UseVerifyOptions {
9
- t: number;
10
- cbk(): void;
11
- }
12
-
13
- const defaultOptions: UseVerifyOptions = {
14
- t: 60,
15
- cbk: async () => {
16
- // todo: 调用发送验证码的接口
17
- // await get_verify_code();
18
- showToast('验证码已发送\n请注意查收');
19
- },
20
- };
21
- export const useVerifyCode = (options: UseVerifyOptions = defaultOptions) => {
22
- options = Object.assign(defaultOptions, options);
23
- const countDown = useCountDown({
24
- time: options.t * 1000,
25
- });
26
- const isClicked = ref(false);
27
- const sendClick = async () => {
28
- if (!isClicked.value) {
29
- countDown.start();
30
- isClicked.value = true;
31
- await options.cbk();
32
- }
33
- };
34
- watchEffect(() => {
35
- if (countDown.current.value.seconds === 0) {
36
- isClicked.value = false;
37
- countDown.reset();
38
- }
39
- });
40
-
41
- return {
42
- countDown,
43
- sendClick,
44
- isClicked,
45
- };
46
- };
@@ -1,9 +0,0 @@
1
- <!--
2
- * @Author: zhangyang
3
- * @Date: 2022-12-03 16:22:39
4
- * @LastEditTime: 2022-12-03 16:22:40
5
- * @Description:
6
- -->
7
- <template>
8
- <RouterView />
9
- </template>
@@ -1,27 +0,0 @@
1
- <!--
2
- * @Author: zhangyang
3
- * @Date: 2022-12-03 16:20:06
4
- * @LastEditTime: 2023-02-01 11:16:19
5
- * @Description:
6
- -->
7
- <script lang="ts" setup>
8
- const route = useRoute();
9
- const title = computed(() => route.meta.title || import.meta.env.VITE_TITLE);
10
- </script>
11
-
12
- <template>
13
- <VanNavBar :border="false">
14
- <template #title>
15
- <span class="text-[#FFFFFF] text-16px font-700">{{ title }}</span>
16
- </template>
17
- </VanNavBar>
18
- <RouterView v-bind="$attrs" />
19
- <VanTabbar route>
20
- <VanTabbarItem to="/" icon="home-o">
21
- <span>首页</span>
22
- </VanTabbarItem>
23
- <VanTabbarItem to="/my" icon="user-o">
24
- <span>我的</span>
25
- </VanTabbarItem>
26
- </VanTabbar>
27
- </template>
@@ -1,20 +0,0 @@
1
- <!--
2
- * @Author: zhangyang
3
- * @Date: 2022-12-03 16:21:10
4
- * @LastEditTime: 2023-02-01 11:24:56
5
- * @Description:
6
- -->
7
- <script lang="ts" setup>
8
- const route = useRoute();
9
- const title = computed(() => route.meta.title || import.meta.env.VITE_TITLE);
10
- </script>
11
-
12
- <template>
13
- <VanNavBar :border="false" left-arrow @click-left="$router.back()">
14
- <template #title>
15
- <span class="text-[#FFFFFF] text-16px font-700">{{ title }}</span>
16
- </template>
17
- </VanNavBar>
18
- <RouterView v-bind="$attrs" />
19
- </template>
20
-
@@ -1,35 +0,0 @@
1
- /*
2
- * @Author: zhangyang
3
- * @Date: 2022-12-03 15:57:40
4
- * @LastEditTime: 2023-02-01 12:01:43
5
- * @Description:
6
- */
7
- // polyfill
8
- import 'core-js/stable';
9
- import 'regenerator-runtime/runtime';
10
- // 统一浏览器样式
11
- import '@unocss/reset/tailwind.css';
12
- import 'uno.css';
13
- // vant 指令的样式
14
- import 'vant/es/toast/style/index';
15
- import 'vant/es/dialog/style/index';
16
- import 'vant/es/notify/style/index';
17
- import 'vant/es/image-preview/style/index';
18
-
19
- import { createApp } from 'vue';
20
- import App from './App.vue';
21
-
22
- const app = createApp(App);
23
-
24
- Object.values(import.meta.glob<{ install: UserModule }>('./modules/*.ts', { eager: true })).map(
25
- ({ install }) => install(app),
26
- );
27
-
28
- setTimeout(async () => {
29
- if (window?.__YOUNG_VITE_ENV__?.VITE_ENABLE_VCONSOLE) {
30
- const VConsole = await (await import('vconsole')).default;
31
- new VConsole();
32
- }
33
- }, 1e4);
34
-
35
- app.mount('#app');
@@ -1,40 +0,0 @@
1
- /*
2
- * @Author: zhangyang
3
- * @Date: 2022-03-01 14:01:31
4
- * @LastEditTime: 2023-02-01 11:22:42
5
- * @Description: 路由模块
6
- */
7
- import { createRouter, createWebHashHistory } from 'vue-router';
8
- import { setupLayouts } from 'virtual:generated-layouts';
9
- import routes from '~pages';
10
-
11
- /**
12
- * 路由元数据类型扩展
13
- */
14
- declare module 'vue-router' {
15
- interface RouteMeta {
16
- /**
17
- * 页面标题
18
- */
19
- title: string;
20
- /**
21
- * 需要登录,不设置则为白名单页面
22
- */
23
- auth?: boolean;
24
- /**
25
- * 页面布局,对应 layouts 目录下的布局页面,默认为 default
26
- */
27
- layout?: 'default' | 'sub' | 'blank';
28
- }
29
- }
30
-
31
- export const finalRoutes = setupLayouts(routes);
32
-
33
- export const router = createRouter({
34
- history: createWebHashHistory(),
35
- routes: finalRoutes,
36
- });
37
-
38
- export const install: UserModule = (app) => {
39
- app.use(router);
40
- };
@@ -1,10 +0,0 @@
1
- /*
2
- * @Author: zhangyang
3
- * @Date: 2022-03-01 14:01:31
4
- * @LastEditTime: 2023-01-13 15:42:50
5
- * @Description: 状态管理
6
- */
7
- export const install: UserModule = (app) => {
8
- const pinia = createPinia();
9
- app.use(pinia);
10
- };
@@ -1,46 +0,0 @@
1
- /*
2
- * @Author: zhangyang
3
- * @Date: 2022-03-01 14:01:31
4
- * @LastEditTime: 2023-01-13 15:54:59
5
- * @Description: 网络请求
6
- */
7
- import { useHttp } from '@bluesyoung/http';
8
-
9
- let loadingInstance: ReturnType<typeof showLoadingToast>;
10
-
11
- export const startLoading = () => {
12
- loadingInstance = showLoadingToast({
13
- message: '拼命加载中...',
14
- forbidClick: true,
15
- });
16
- };
17
-
18
- export const endLoading = () => loadingInstance?.close?.();
19
-
20
- export const http = useHttp({
21
- timeout: -1,
22
- loading: {
23
- start: startLoading,
24
- end: endLoading,
25
- },
26
- fail(err) {
27
- console.log('🚀 ~ file: 3-net.ts:60 ~ err', err, typeof err);
28
- if (typeof err === 'string') {
29
- // 通用失败,弹出提示信息
30
- showFailToast(err);
31
- }
32
-
33
- if (err instanceof Error) {
34
- showFailToast(
35
- // @ts-ignore 接口出错
36
- err?.response?.data?.message || err?.response?.data?.msg || err.message || '网络错误!',
37
- );
38
- }
39
-
40
- throw err;
41
- },
42
- });
43
-
44
- export const apis = http.__mixin__({});
45
-
46
- export const install: UserModule = (ctx) => {};
@@ -1,64 +0,0 @@
1
- /*
2
- * @Author: zhangyang
3
- * @Date: 2022-03-01 19:40:13
4
- * @LastEditTime: 2023-02-01 11:46:18
5
- * @Description: 权限校验
6
- */
7
- import { router } from './1-router';
8
- import type { RouteLocationNormalized } from 'vue-router';
9
- import { YoungLocalStorage } from '@bluesyoung/utils';
10
-
11
- const changeTitle = (to: RouteLocationNormalized) => {
12
- document.title = to.meta.title || (import.meta.env.VITE_TITLE as string);
13
- };
14
-
15
- export const hasPermission = (path: string) => {};
16
-
17
- export const sureLeave = async () => {
18
- try {
19
- await showConfirmDialog({
20
- title: '温馨提示',
21
- message: '您确定要离开吗?',
22
- });
23
- return true;
24
- } catch (error) {
25
- return false;
26
- }
27
- };
28
-
29
- export const install: UserModule = (app) => {
30
- // todo: 按需替换为 api 操作
31
- const store = new YoungLocalStorage();
32
- const api = {
33
- getInfo: () => store.get('user.info'),
34
- setInfo: () => store.set('user.info', { key: 'cdcsdfdf' }),
35
- };
36
-
37
- router.beforeEach(async (to, from) => {
38
- // auth
39
- if (to.meta.auth) {
40
- const info = await api.getInfo();
41
- if (info) {
42
- return true;
43
- }
44
- try {
45
- // todo: 可根据情况替换为跳转登录页, /base/login
46
- await showDialog({
47
- title: '温馨提示',
48
- message: '我是默认的登录框,点击即登录',
49
- showCancelButton: true,
50
- });
51
- await api.setInfo();
52
- return true;
53
- } catch (error) {
54
- return false;
55
- }
56
- } else {
57
- return true;
58
- }
59
- });
60
-
61
- router.afterEach((to) => {
62
- changeTitle(to);
63
- });
64
- };