diff --git a/app/api/auth/index.js b/app/api/auth/index.js index 66c5ee3..b1056b6 100644 --- a/app/api/auth/index.js +++ b/app/api/auth/index.js @@ -22,4 +22,18 @@ export async function userUpdate(data) { method: 'POST', data }) +} +export async function userCaptcha(data) { + return await request( { + url:'/api/v1/m/user/captcha', + method: 'POST', + data + }) +} +export async function userCaptchaValidate(data) { + return await request( { + url:'/mall/user/validate/captcha', + method: 'POST', + data + }) } \ No newline at end of file diff --git a/app/components/YourPuzzleComponent.vue b/app/components/YourPuzzleComponent.vue new file mode 100644 index 0000000..66f0562 --- /dev/null +++ b/app/components/YourPuzzleComponent.vue @@ -0,0 +1,307 @@ + + + + + diff --git a/app/pages/login/index.vue b/app/pages/login/index.vue index 29526bb..70176c7 100644 --- a/app/pages/login/index.vue +++ b/app/pages/login/index.vue @@ -1,15 +1,21 @@ @@ -238,4 +298,15 @@ onUnmounted(() => { width: 41px; height: 41px; } + +.verify-popup-content { + width: 90vw; + max-width: 350px; + padding: 20px; + box-sizing: border-box; +} + +:deep(.van-popup) { + background: transparent; +} diff --git a/app/static/images/reset.png b/app/static/images/reset.png new file mode 100644 index 0000000..f10bfe5 Binary files /dev/null and b/app/static/images/reset.png differ diff --git a/package.json b/package.json index b0a46f5..16eeaef 100644 --- a/package.json +++ b/package.json @@ -38,7 +38,8 @@ "vue-demi": "^0.14.10", "vue-pdf-embed": "^2.1.2", "vue-router": "^4.5.0", - "vue-signature-pad": "^3.0.2" + "vue-signature-pad": "^3.0.2", + "vue3-puzzle-vcode": "1.1.6-nuxt" }, "devDependencies": { "@iconify-json/carbon": "^1.2.5", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ea90507..dcd80b1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -77,6 +77,9 @@ importers: vue-signature-pad: specifier: ^3.0.2 version: 3.0.2(vue@3.5.13(typescript@5.7.3)) + vue3-puzzle-vcode: + specifier: 1.1.6-nuxt + version: 1.1.6-nuxt devDependencies: '@iconify-json/carbon': specifier: ^1.2.5 @@ -809,8 +812,8 @@ packages: resolution: {integrity: sha512-8tR1xe7ZEbkabTuE/tNhzpolygUn9OaYp9yuYAF4MgDNZg06C3Qny80bes2/e9/Wm3aVkPUlCw6WgU7mQd0yEg==} engines: {node: '>= 16'} - '@intlify/shared@11.1.1': - resolution: {integrity: sha512-2kGiWoXaeV8HZlhU/Nml12oTbhv7j2ufsJ5vQaa0VTjzUmZVdd/nmKFRAOJ/FtjO90Qba5AnZDwsrY7ZND5udA==} + '@intlify/shared@11.1.2': + resolution: {integrity: sha512-dF2iMMy8P9uKVHV/20LA1ulFLL+MKSbfMiixSmn6fpwqzvix38OIc7ebgnFbBqElvghZCW9ACtzKTGKsTGTWGA==} engines: {node: '>= 16'} '@intlify/unplugin-vue-i18n@6.0.3': @@ -4618,6 +4621,9 @@ packages: peerDependencies: vue: ^3.2.0 + vue3-puzzle-vcode@1.1.6-nuxt: + resolution: {integrity: sha512-V3DrPIYznxko8jBAtZtmsNPw9QmkPnFicQ0p9B192vC3ncRv4IDazhLC7D/cY/OGq0OeqXmk2DiOcBR7dyt8GQ==} + vue@3.5.13: resolution: {integrity: sha512-wmeiSMxkZCSc+PM2w2VRsOYAZC8GdipNFRTsLSfodVqI9mbejKeXEGr8SckuLnrQPGe3oJN5c3K0vpoU9q/wCQ==} peerDependencies: @@ -5342,14 +5348,14 @@ snapshots: '@intlify/shared@11.0.0-rc.1': {} - '@intlify/shared@11.1.1': {} + '@intlify/shared@11.1.2': {} '@intlify/unplugin-vue-i18n@6.0.3(@vue/compiler-dom@3.5.13)(eslint@9.20.1(jiti@2.4.2))(rollup@4.34.6)(typescript@5.7.3)(vue-i18n@10.0.5(vue@3.5.13(typescript@5.7.3)))(vue@3.5.13(typescript@5.7.3))': dependencies: '@eslint-community/eslint-utils': 4.4.1(eslint@9.20.1(jiti@2.4.2)) '@intlify/bundle-utils': 10.0.0(vue-i18n@10.0.5(vue@3.5.13(typescript@5.7.3))) - '@intlify/shared': 11.1.1 - '@intlify/vue-i18n-extensions': 8.0.0(@intlify/shared@11.1.1)(@vue/compiler-dom@3.5.13)(vue-i18n@10.0.5(vue@3.5.13(typescript@5.7.3)))(vue@3.5.13(typescript@5.7.3)) + '@intlify/shared': 11.1.2 + '@intlify/vue-i18n-extensions': 8.0.0(@intlify/shared@11.1.2)(@vue/compiler-dom@3.5.13)(vue-i18n@10.0.5(vue@3.5.13(typescript@5.7.3)))(vue@3.5.13(typescript@5.7.3)) '@rollup/pluginutils': 5.1.4(rollup@4.34.6) '@typescript-eslint/scope-manager': 8.24.0 '@typescript-eslint/typescript-estree': 8.24.0(typescript@5.7.3) @@ -5373,11 +5379,11 @@ snapshots: '@intlify/utils@0.13.0': {} - '@intlify/vue-i18n-extensions@8.0.0(@intlify/shared@11.1.1)(@vue/compiler-dom@3.5.13)(vue-i18n@10.0.5(vue@3.5.13(typescript@5.7.3)))(vue@3.5.13(typescript@5.7.3))': + '@intlify/vue-i18n-extensions@8.0.0(@intlify/shared@11.1.2)(@vue/compiler-dom@3.5.13)(vue-i18n@10.0.5(vue@3.5.13(typescript@5.7.3)))(vue@3.5.13(typescript@5.7.3))': dependencies: '@babel/parser': 7.26.8 optionalDependencies: - '@intlify/shared': 11.1.1 + '@intlify/shared': 11.1.2 '@vue/compiler-dom': 3.5.13 vue: 3.5.13(typescript@5.7.3) vue-i18n: 10.0.5(vue@3.5.13(typescript@5.7.3)) @@ -9896,6 +9902,8 @@ snapshots: signature_pad: 3.0.0-beta.4 vue: 3.5.13(typescript@5.7.3) + vue3-puzzle-vcode@1.1.6-nuxt: {} + vue@3.5.13(typescript@5.7.3): dependencies: '@vue/compiler-dom': 3.5.13