From 034ab631ce2145b0d08435c7d45d553f8b9cc9e3 Mon Sep 17 00:00:00 2001 From: bootx Date: Sat, 10 Feb 2024 22:51:02 +0800 Subject: [PATCH] =?UTF-8?q?feat=20=E8=B0=83=E6=95=B4=E5=90=84=E7=A7=8D?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=EF=BC=8C=E9=80=82=E5=BA=94=E5=AF=B9=E6=8E=A5?= =?UTF-8?q?=E5=88=B0DaxPay=E9=A1=B9=E7=9B=AE=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.production | 12 +- LICENSE | 214 ++++++++++++++++++++-- components.d.ts | 10 - src/layout/index.vue | 6 +- src/router/base.ts | 9 - src/router/demo.ts | 36 ++-- src/router/index.ts | 10 +- src/router/modules.ts | 77 -------- src/views/demo/cashier/AlipayCashier.vue | 12 ++ src/views/demo/cashier/WechatJsapiPay.vue | 11 ++ src/views/demo/exception/ErrorPay.vue | 11 ++ src/views/demo/exception/TimeoutPay.vue | 11 ++ src/views/login/ForgetPasswordForm.vue | 107 ----------- src/views/login/Login.vue | 28 --- src/views/login/LoginForm.vue | 116 ------------ src/views/login/LoginTitle.vue | 20 -- src/views/login/LoginWave.vue | 105 ----------- src/views/login/RegisterForm.vue | 188 ------------------- src/views/login/useLogin.ts | 97 ---------- src/views/my/AccountSetting.vue | 55 ------ src/views/my/ChangePassword.vue | 9 - src/views/my/EditNickname.vue | 87 --------- src/views/my/EditSign.vue | 70 ------- src/views/my/EditUserInfo.vue | 179 ------------------ src/views/my/ThemeSetting.vue | 105 ----------- src/views/my/components/NavBar.vue | 29 --- src/views/my/components/UploaderImage.vue | 32 ---- src/views/my/index.vue | 123 ------------- src/views/my/pickColumns.ts | 30 --- src/views/welcome/index.vue | 106 ----------- 30 files changed, 282 insertions(+), 1623 deletions(-) create mode 100644 src/views/demo/cashier/AlipayCashier.vue create mode 100644 src/views/demo/cashier/WechatJsapiPay.vue create mode 100644 src/views/demo/exception/ErrorPay.vue create mode 100644 src/views/demo/exception/TimeoutPay.vue delete mode 100644 src/views/login/ForgetPasswordForm.vue delete mode 100644 src/views/login/Login.vue delete mode 100644 src/views/login/LoginForm.vue delete mode 100644 src/views/login/LoginTitle.vue delete mode 100644 src/views/login/LoginWave.vue delete mode 100644 src/views/login/RegisterForm.vue delete mode 100644 src/views/login/useLogin.ts delete mode 100644 src/views/my/AccountSetting.vue delete mode 100644 src/views/my/ChangePassword.vue delete mode 100644 src/views/my/EditNickname.vue delete mode 100644 src/views/my/EditSign.vue delete mode 100644 src/views/my/EditUserInfo.vue delete mode 100644 src/views/my/ThemeSetting.vue delete mode 100644 src/views/my/components/NavBar.vue delete mode 100644 src/views/my/components/UploaderImage.vue delete mode 100644 src/views/my/index.vue delete mode 100644 src/views/my/pickColumns.ts delete mode 100644 src/views/welcome/index.vue diff --git a/.env.production b/.env.production index e6f3864..a59696b 100644 --- a/.env.production +++ b/.env.production @@ -1,5 +1,10 @@ -# 网站根目录 -VITE_PUBLIC_PATH = / +# 网站根目录 和 接口 (api) 前缀 这个是嵌入式模式 +VITE_PUBLIC_PATH = /h5 +VITE_GLOB_API_URL_PREFIX = / + +# 网站根目录 和 接口 (api) 前缀 这个是独立部署模式 +#VITE_PUBLIC_PATH = / +#VITE_GLOB_API_URL_PREFIX = /api # 是否删除console VITE_DROP_CONSOLE = true @@ -13,9 +18,6 @@ VITE_GLOB_UPLOAD_URL = # 图片前缀地址 VITE_GLOB_IMG_URL = -# 接口 (api) 前缀 -VITE_GLOB_API_URL_PREFIX = /api - # 是否启用gzip压缩或brotli压缩 # 可选: gzip | brotli | none # 如果你需要多种形式,你可以用','来分隔 diff --git a/LICENSE b/LICENSE index 453b9cd..bfa5a86 100644 --- a/LICENSE +++ b/LICENSE @@ -1,21 +1,201 @@ -MIT License + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ -Copyright (c) 2022 傲慢或香橙 + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: + 1. Definitions. -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright (c) 2021 bootx Authors. All Rights Reserved. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/components.d.ts b/components.d.ts index 9653c6a..351b008 100644 --- a/components.d.ts +++ b/components.d.ts @@ -8,20 +8,10 @@ export {} declare module '@vue/runtime-core' { export interface GlobalComponents { SvgIcon: typeof import('./src/components/SvgIcon.vue')['default'] - VanActionSheet: typeof import('vant/es')['ActionSheet'] VanButton: typeof import('vant/es')['Button'] - VanCell: typeof import('vant/es')['Cell'] VanConfigProvider: typeof import('vant/es')['ConfigProvider'] - VanDivider: typeof import('vant/es')['Divider'] - VanField: typeof import('vant/es')['Field'] - VanForm: typeof import('vant/es')['Form'] - VanImage: typeof import('vant/es')['Image'] VanNavBar: typeof import('vant/es')['NavBar'] - VanPicker: typeof import('vant/es')['Picker'] - VanPopup: typeof import('vant/es')['Popup'] - VanSwitch: typeof import('vant/es')['Switch'] VanTabbar: typeof import('vant/es')['Tabbar'] VanTabbarItem: typeof import('vant/es')['TabbarItem'] - VanUploader: typeof import('vant/es')['Uploader'] } } diff --git a/src/layout/index.vue b/src/layout/index.vue index 8b11f34..0350236 100644 --- a/src/layout/index.vue +++ b/src/layout/index.vue @@ -32,7 +32,7 @@ diff --git a/src/views/demo/cashier/WechatJsapiPay.vue b/src/views/demo/cashier/WechatJsapiPay.vue new file mode 100644 index 0000000..b1df8de --- /dev/null +++ b/src/views/demo/cashier/WechatJsapiPay.vue @@ -0,0 +1,11 @@ + + + + + diff --git a/src/views/demo/exception/ErrorPay.vue b/src/views/demo/exception/ErrorPay.vue new file mode 100644 index 0000000..95606d2 --- /dev/null +++ b/src/views/demo/exception/ErrorPay.vue @@ -0,0 +1,11 @@ + + + + + diff --git a/src/views/demo/exception/TimeoutPay.vue b/src/views/demo/exception/TimeoutPay.vue new file mode 100644 index 0000000..60a750c --- /dev/null +++ b/src/views/demo/exception/TimeoutPay.vue @@ -0,0 +1,11 @@ + + + + + diff --git a/src/views/login/ForgetPasswordForm.vue b/src/views/login/ForgetPasswordForm.vue deleted file mode 100644 index 76802f6..0000000 --- a/src/views/login/ForgetPasswordForm.vue +++ /dev/null @@ -1,107 +0,0 @@ - - - - - diff --git a/src/views/login/Login.vue b/src/views/login/Login.vue deleted file mode 100644 index ea8f2a8..0000000 --- a/src/views/login/Login.vue +++ /dev/null @@ -1,28 +0,0 @@ - - - - - diff --git a/src/views/login/LoginForm.vue b/src/views/login/LoginForm.vue deleted file mode 100644 index c5e76e1..0000000 --- a/src/views/login/LoginForm.vue +++ /dev/null @@ -1,116 +0,0 @@ - - - - - diff --git a/src/views/login/LoginTitle.vue b/src/views/login/LoginTitle.vue deleted file mode 100644 index 59d2cb7..0000000 --- a/src/views/login/LoginTitle.vue +++ /dev/null @@ -1,20 +0,0 @@ - - - - - diff --git a/src/views/login/LoginWave.vue b/src/views/login/LoginWave.vue deleted file mode 100644 index 14bf268..0000000 --- a/src/views/login/LoginWave.vue +++ /dev/null @@ -1,105 +0,0 @@ - - - - - diff --git a/src/views/login/RegisterForm.vue b/src/views/login/RegisterForm.vue deleted file mode 100644 index f329787..0000000 --- a/src/views/login/RegisterForm.vue +++ /dev/null @@ -1,188 +0,0 @@ - - - - - diff --git a/src/views/login/useLogin.ts b/src/views/login/useLogin.ts deleted file mode 100644 index 16caf0c..0000000 --- a/src/views/login/useLogin.ts +++ /dev/null @@ -1,97 +0,0 @@ -import type { FieldRule } from 'vant' -import { computed, ref, unref } from 'vue' - -export enum LoginStateEnum { - LOGIN, - REGISTER, - RESET_PASSWORD, -} - -const currentState = ref(LoginStateEnum.LOGIN) - -export function useLoginState() { - function setLoginState(state: LoginStateEnum) { - currentState.value = state - } - - const getLoginState = computed(() => currentState.value) - - function handleBackLogin() { - setLoginState(LoginStateEnum.LOGIN) - } - - return { setLoginState, getLoginState, handleBackLogin } -} - -export function useFormRules(formData?: Recordable) { - const getUsernameFormRule = computed(() => createRule('请输入用户名')) - const getPasswordFormRule = computed(() => createRule('请输入密码')) - const getSmsFormRule = computed(() => createRule('请输入短信验证码')) - const getMobileFormRule = computed(() => createRule('请输入手机号码')) - - const validatePolicy = async (value: any, _: FieldRule) => { - return !value ? Promise.resolve('勾选后才能注册') : Promise.resolve(true) - } - - const validateConfirmPassword = (password: string) => { - return async (value: string) => { - if (!value) { - return Promise.resolve('请输入确认密码') - } - if (value !== password) { - return Promise.resolve('两次输入密码不一致') - } - return Promise.resolve(true) - } - } - - const getFormRules = computed((): { [k: string]: FieldRule[] } => { - const usernameFormRule = unref(getUsernameFormRule) - const passwordFormRule = unref(getPasswordFormRule) - const smsFormRule = unref(getSmsFormRule) - const mobileFormRule = unref(getMobileFormRule) - - const mobileRule = { - sms: smsFormRule, - mobile: mobileFormRule, - } - switch (unref(currentState)) { - // register form rules - case LoginStateEnum.REGISTER: - return { - username: usernameFormRule, - password: passwordFormRule, - confirmPassword: [ - { validator: validateConfirmPassword(formData?.password), trigger: 'onChange' }, - ], - policy: [{ validator: validatePolicy, trigger: 'onBlur' }], - ...mobileRule, - } - - // reset password form rules - case LoginStateEnum.RESET_PASSWORD: - return { - username: usernameFormRule, - ...mobileRule, - } - - // login form rules - default: - return { - username: usernameFormRule, - password: passwordFormRule, - } - } - }) - return { getFormRules } -} - -function createRule(message: string): FieldRule[] { - return [ - { - required: true, - message, - trigger: 'onBlur', - }, - ] -} diff --git a/src/views/my/AccountSetting.vue b/src/views/my/AccountSetting.vue deleted file mode 100644 index ec698a0..0000000 --- a/src/views/my/AccountSetting.vue +++ /dev/null @@ -1,55 +0,0 @@ - - - - - diff --git a/src/views/my/ChangePassword.vue b/src/views/my/ChangePassword.vue deleted file mode 100644 index 5444b80..0000000 --- a/src/views/my/ChangePassword.vue +++ /dev/null @@ -1,9 +0,0 @@ - - - - - diff --git a/src/views/my/EditNickname.vue b/src/views/my/EditNickname.vue deleted file mode 100644 index bff7f49..0000000 --- a/src/views/my/EditNickname.vue +++ /dev/null @@ -1,87 +0,0 @@ - - - - - diff --git a/src/views/my/EditSign.vue b/src/views/my/EditSign.vue deleted file mode 100644 index da474f8..0000000 --- a/src/views/my/EditSign.vue +++ /dev/null @@ -1,70 +0,0 @@ - - - - - diff --git a/src/views/my/EditUserInfo.vue b/src/views/my/EditUserInfo.vue deleted file mode 100644 index 3f50347..0000000 --- a/src/views/my/EditUserInfo.vue +++ /dev/null @@ -1,179 +0,0 @@ - - - - - diff --git a/src/views/my/ThemeSetting.vue b/src/views/my/ThemeSetting.vue deleted file mode 100644 index cb9a125..0000000 --- a/src/views/my/ThemeSetting.vue +++ /dev/null @@ -1,105 +0,0 @@ - - - - - diff --git a/src/views/my/components/NavBar.vue b/src/views/my/components/NavBar.vue deleted file mode 100644 index 45d7734..0000000 --- a/src/views/my/components/NavBar.vue +++ /dev/null @@ -1,29 +0,0 @@ - - - - - diff --git a/src/views/my/components/UploaderImage.vue b/src/views/my/components/UploaderImage.vue deleted file mode 100644 index 92c517a..0000000 --- a/src/views/my/components/UploaderImage.vue +++ /dev/null @@ -1,32 +0,0 @@ - - - - - diff --git a/src/views/my/index.vue b/src/views/my/index.vue deleted file mode 100644 index eb67bdd..0000000 --- a/src/views/my/index.vue +++ /dev/null @@ -1,123 +0,0 @@ - - - - diff --git a/src/views/my/pickColumns.ts b/src/views/my/pickColumns.ts deleted file mode 100644 index f564bb3..0000000 --- a/src/views/my/pickColumns.ts +++ /dev/null @@ -1,30 +0,0 @@ -export interface FormColumns { - text: string - value: number -} - -export const genderColumns: FormColumns[] = [ - { text: '男', value: 0 }, - { text: '女', value: 1 }, -] - -export const industryColumns: FormColumns[] = [ - { text: '不展示', value: 0 }, - { text: '学生', value: 1 }, - { text: '自由职业', value: 2 }, - { text: 'IT/互联网/通信', value: 3 }, - { text: '金融', value: 4 }, - { text: '健康/医疗', value: 5 }, - { text: '工业/制造业', value: 6 }, - { text: '零售', value: 7 }, - { text: '贸易', value: 8 }, - { text: '教育/科研', value: 9 }, - { text: '培训', value: 10 }, - { text: '房地产/建筑', value: 11 }, - { text: '文化/艺术', value: 12 }, - { text: '影视/娱乐', value: 13 }, - { text: '法律/会计/咨询', value: 14 }, - { text: '媒体/广告/公关', value: 15 }, - { text: '体育/健身', value: 16 }, - { text: '企事业单位', value: 17 }, -] diff --git a/src/views/welcome/index.vue b/src/views/welcome/index.vue deleted file mode 100644 index 98c5696..0000000 --- a/src/views/welcome/index.vue +++ /dev/null @@ -1,106 +0,0 @@ - - - - -