From f62289c97b76ca9cbb9b5ba0ffc8eec98e3717a3 Mon Sep 17 00:00:00 2001 From: liangzai <2440983361@qq.com> Date: Wed, 8 Apr 2026 14:14:10 +0800 Subject: [PATCH] first commit --- .cursorrules | 37 + .editorconfig | 9 + .gitignore | 23 + .hbuilderx/launch.json | 15 + .npmrc | 3 + .nvmrc | 1 + .vscode/extensions.json | 11 + .vscode/launch.json | 16 + .vscode/settings.json | 55 + .vscode/tasks.json | 16 + LICENSE | 21 + README.md | 31 + index.html | 21 + manifest.config.ts | 156 + package.json | 106 + pages.config.ts | 48 + pnpm-lock.yaml | 13160 +++++++++++++++++ renovate.json | 3 + src/App.vue | 104 + src/api/apis.js | 183 + src/apis/agent.js | 163 + src/app.scss | 50 + src/auto-imports.d.ts | 686 + src/components.d.ts | 33 + src/components/AgentApplicationForm.vue | 332 + src/components/EmptyState.vue | 12 + src/components/GzhQrcode.vue | 209 + src/components/Payment.vue | 180 + src/components/PriceInputPopup.vue | 175 + src/components/QRcode.vue | 522 + src/components/VipBanner.vue | 36 + src/composables/useHotUpdate.js | 341 + src/composables/usePromotionShareHandlers.ts | 45 + src/composables/useShare.ts | 45 + src/config/runtime.development.json | 14 + src/config/runtime.production.json | 14 + src/config/runtimeConfig.node.ts | 59 + src/env.d.ts | 28 + src/hooks/useColPickerData.ts | 38 + src/layouts/home.vue | 128 + src/layouts/login.vue | 31 + src/layouts/page.vue | 34 + src/main.ts | 41 + src/manifest.json | 120 + src/pages.json | 169 + src/pages/agent.vue | 261 + src/pages/agentVip.vue | 65 + src/pages/agentVipApply.vue | 734 + src/pages/agentVipConfig.vue | 421 + src/pages/agreement.vue | 73 + src/pages/h5open.vue | 93 + src/pages/index.vue | 112 + src/pages/invitation.vue | 55 + src/pages/invitationAgentApply.vue | 198 + src/pages/login.vue | 222 + src/pages/me.vue | 341 + src/pages/promote.vue | 268 + src/pages/promoteDetails.vue | 140 + src/pages/rewardsDetails.vue | 160 + src/pages/withdrawDetails.vue | 171 + src/shims.d.ts | 6 + src/static/image/banner_1.png | Bin 0 -> 138670 bytes src/static/image/banner_2.png | Bin 0 -> 95941 bytes src/static/image/banner_3.png | Bin 0 -> 113328 bytes src/static/image/empty.svg | 1 + src/static/image/footbanner.png | Bin 0 -> 68360 bytes src/static/image/head_shot.webp | Bin 0 -> 2196 bytes src/static/image/icon_1.png | Bin 0 -> 63741 bytes src/static/image/icon_2.png | Bin 0 -> 59804 bytes src/static/image/icon_share_friends.svg | 1 + src/static/image/icon_share_img.svg | 1 + src/static/image/icon_share_url.svg | 1 + src/static/image/icon_share_wechat.svg | 1 + src/static/image/invitation.png | Bin 0 -> 147490 bytes src/static/image/invitation_agent_apply.png | Bin 0 -> 175635 bytes src/static/image/login_bg.png | Bin 0 -> 26532 bytes src/static/image/logo.png | Bin 0 -> 268451 bytes src/static/image/shot_nonal.png | Bin 0 -> 18108 bytes src/static/image/shot_svip.png | Bin 0 -> 22523 bytes src/static/image/shot_vip.png | Bin 0 -> 18942 bytes src/static/poster/.gitkeep | 0 src/static/poster/tg_qrcode_1.png | Bin 0 -> 826035 bytes src/static/poster/tg_qrcode_2.png | Bin 0 -> 418939 bytes src/static/poster/tg_qrcode_3.png | Bin 0 -> 424772 bytes src/static/poster/tg_qrcode_4.png | Bin 0 -> 585720 bytes src/static/poster/tg_qrcode_5.png | Bin 0 -> 632374 bytes src/static/poster/tg_qrcode_6.png | Bin 0 -> 400891 bytes src/static/poster/tg_qrcode_7.png | Bin 0 -> 185497 bytes src/static/poster/tg_qrcode_8.jpg | Bin 0 -> 303960 bytes src/static/poster/tg_qrcode_8.png | Bin 0 -> 270347 bytes src/static/poster/yq_qrcode_1.png | Bin 0 -> 599044 bytes src/static/qrcode/fwhqrcode.jpg | Bin 0 -> 8847 bytes src/store/user.ts | 43 + src/theme.json | 26 + src/uni-pages.d.ts | 36 + src/uni.scss | 76 + src/utils/autoUpdateCheck.js | 64 + src/utils/chatCrypto.js | 174 + src/utils/chatEncrypt.js | 19 + src/utils/crypto.js | 85 + src/utils/format.js | 16 + src/utils/miniPromotionSharePayload.js | 17 + src/utils/posterQrWeixin.js | 164 + src/utils/promotionH5Url.js | 15 + src/utils/request.js | 67 + src/utils/routerGuard.js | 55 + src/utils/runtimeEnv.js | 68 + tsconfig.json | 28 + uno.config.ts | 30 + vite.config.ts | 56 + 110 files changed, 21888 insertions(+) create mode 100644 .cursorrules create mode 100644 .editorconfig create mode 100644 .gitignore create mode 100644 .hbuilderx/launch.json create mode 100644 .npmrc create mode 100644 .nvmrc create mode 100644 .vscode/extensions.json create mode 100644 .vscode/launch.json create mode 100644 .vscode/settings.json create mode 100644 .vscode/tasks.json create mode 100644 LICENSE create mode 100644 README.md create mode 100644 index.html create mode 100644 manifest.config.ts create mode 100644 package.json create mode 100644 pages.config.ts create mode 100644 pnpm-lock.yaml create mode 100644 renovate.json create mode 100644 src/App.vue create mode 100644 src/api/apis.js create mode 100644 src/apis/agent.js create mode 100644 src/app.scss create mode 100644 src/auto-imports.d.ts create mode 100644 src/components.d.ts create mode 100644 src/components/AgentApplicationForm.vue create mode 100644 src/components/EmptyState.vue create mode 100644 src/components/GzhQrcode.vue create mode 100644 src/components/Payment.vue create mode 100644 src/components/PriceInputPopup.vue create mode 100644 src/components/QRcode.vue create mode 100644 src/components/VipBanner.vue create mode 100644 src/composables/useHotUpdate.js create mode 100644 src/composables/usePromotionShareHandlers.ts create mode 100644 src/composables/useShare.ts create mode 100644 src/config/runtime.development.json create mode 100644 src/config/runtime.production.json create mode 100644 src/config/runtimeConfig.node.ts create mode 100644 src/env.d.ts create mode 100644 src/hooks/useColPickerData.ts create mode 100644 src/layouts/home.vue create mode 100644 src/layouts/login.vue create mode 100644 src/layouts/page.vue create mode 100644 src/main.ts create mode 100644 src/manifest.json create mode 100644 src/pages.json create mode 100644 src/pages/agent.vue create mode 100644 src/pages/agentVip.vue create mode 100644 src/pages/agentVipApply.vue create mode 100644 src/pages/agentVipConfig.vue create mode 100644 src/pages/agreement.vue create mode 100644 src/pages/h5open.vue create mode 100644 src/pages/index.vue create mode 100644 src/pages/invitation.vue create mode 100644 src/pages/invitationAgentApply.vue create mode 100644 src/pages/login.vue create mode 100644 src/pages/me.vue create mode 100644 src/pages/promote.vue create mode 100644 src/pages/promoteDetails.vue create mode 100644 src/pages/rewardsDetails.vue create mode 100644 src/pages/withdrawDetails.vue create mode 100644 src/shims.d.ts create mode 100644 src/static/image/banner_1.png create mode 100644 src/static/image/banner_2.png create mode 100644 src/static/image/banner_3.png create mode 100644 src/static/image/empty.svg create mode 100644 src/static/image/footbanner.png create mode 100644 src/static/image/head_shot.webp create mode 100644 src/static/image/icon_1.png create mode 100644 src/static/image/icon_2.png create mode 100644 src/static/image/icon_share_friends.svg create mode 100644 src/static/image/icon_share_img.svg create mode 100644 src/static/image/icon_share_url.svg create mode 100644 src/static/image/icon_share_wechat.svg create mode 100644 src/static/image/invitation.png create mode 100644 src/static/image/invitation_agent_apply.png create mode 100644 src/static/image/login_bg.png create mode 100644 src/static/image/logo.png create mode 100644 src/static/image/shot_nonal.png create mode 100644 src/static/image/shot_svip.png create mode 100644 src/static/image/shot_vip.png create mode 100644 src/static/poster/.gitkeep create mode 100644 src/static/poster/tg_qrcode_1.png create mode 100644 src/static/poster/tg_qrcode_2.png create mode 100644 src/static/poster/tg_qrcode_3.png create mode 100644 src/static/poster/tg_qrcode_4.png create mode 100644 src/static/poster/tg_qrcode_5.png create mode 100644 src/static/poster/tg_qrcode_6.png create mode 100644 src/static/poster/tg_qrcode_7.png create mode 100644 src/static/poster/tg_qrcode_8.jpg create mode 100644 src/static/poster/tg_qrcode_8.png create mode 100644 src/static/poster/yq_qrcode_1.png create mode 100644 src/static/qrcode/fwhqrcode.jpg create mode 100644 src/store/user.ts create mode 100644 src/theme.json create mode 100644 src/uni-pages.d.ts create mode 100644 src/uni.scss create mode 100644 src/utils/autoUpdateCheck.js create mode 100644 src/utils/chatCrypto.js create mode 100644 src/utils/chatEncrypt.js create mode 100644 src/utils/crypto.js create mode 100644 src/utils/format.js create mode 100644 src/utils/miniPromotionSharePayload.js create mode 100644 src/utils/posterQrWeixin.js create mode 100644 src/utils/promotionH5Url.js create mode 100644 src/utils/request.js create mode 100644 src/utils/routerGuard.js create mode 100644 src/utils/runtimeEnv.js create mode 100644 tsconfig.json create mode 100644 uno.config.ts create mode 100644 vite.config.ts diff --git a/.cursorrules b/.cursorrules new file mode 100644 index 0000000..d49e16f --- /dev/null +++ b/.cursorrules @@ -0,0 +1,37 @@ +// Uniapp Vue 3 best practices + +const vue3CompositionApiBestPractices = [ + "Use setup() function for component logic", + "Utilize ref and reactive for reactive state", + "Implement computed properties with computed()", + "Use watch and watchEffect for side effects", + "Implement lifecycle hooks with onMounted, onUpdated, etc.", + "Utilize provide/inject for dependency injection", +]; + +// Folder structure + +const folderStructure = ` +src/ + components/ + composables/ + views/ + static/ + ui/ + App.vue + main.ts +`; + +// Additional instructions + +const additionalInstructions = ` +1. Follow the uniapp vue3 version +2. Pay attention to the compatibility of mobile APP +3. Implement proper props and emits definitions +4. Utilize Vue 3's Teleport component when needed +5. Use Suspense for async components +6. Implement proper error handling +7. Follow Vue 3 style guide and naming conventions +8. Use Vite for fast development and building +`; + diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..9d08a1a --- /dev/null +++ b/.editorconfig @@ -0,0 +1,9 @@ +root = true + +[*] +charset = utf-8 +indent_style = space +indent_size = 2 +end_of_line = lf +insert_final_newline = true +trim_trailing_whitespace = true diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b732723 --- /dev/null +++ b/.gitignore @@ -0,0 +1,23 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +.DS_Store +dist +*.local + +# Editor directories and files +.idea +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? +./src/components.d.ts +./src/auto-imports.d.ts diff --git a/.hbuilderx/launch.json b/.hbuilderx/launch.json new file mode 100644 index 0000000..e0ba03e --- /dev/null +++ b/.hbuilderx/launch.json @@ -0,0 +1,15 @@ +{ + "version" : "1.0", + "configurations" : [ + { + "playground" : "standard", + "type" : "uni-app:app-ios" + }, + { + "app-plus" : { + "launchtype" : "local" + }, + "type" : "uniCloud" + } + ] +} diff --git a/.npmrc b/.npmrc new file mode 100644 index 0000000..d8b8386 --- /dev/null +++ b/.npmrc @@ -0,0 +1,3 @@ +strict-peer-dependencies=false +auto-install-peers=true +shamefully-hoist=true diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 0000000..209e3ef --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +20 diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 0000000..54d3dc3 --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,11 @@ +{ + "recommendations": [ + "antfu.vite", + "antfu.iconify", + "antfu.unocss", + "vue.volar", + "dbaeumer.vscode-eslint", + "editorConfig.editorConfig", + "uni-helper.uni-helper-vscode" + ] +} diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..f8e3c32 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,16 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "name": "Debug h5", + "type": "chrome", + "runtimeArgs": [ + "--remote-debugging-port=9222" + ], + "request": "launch", + "url": "http://localhost:5173", + "webRoot": "${workspaceFolder}", + "preLaunchTask": "uni:h5" + } + ] +} diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..c08e65a --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,55 @@ +{ + // Disable the default formatter, use eslint instead + "prettier.enable": false, + "editor.formatOnSave": false, + + // Auto fix + "editor.codeActionsOnSave": { + "source.organizeImports": "never" + }, + + // Silent the stylistic rules in you IDE, but still auto fix them + "eslint.rules.customizations": [ + { "rule": "style/*", "severity": "off", "fixable": true }, + { "rule": "format/*", "severity": "off", "fixable": true }, + { "rule": "*-indent", "severity": "off", "fixable": true }, + { "rule": "*-spacing", "severity": "off", "fixable": true }, + { "rule": "*-spaces", "severity": "off", "fixable": true }, + { "rule": "*-order", "severity": "off", "fixable": true }, + { "rule": "*-dangle", "severity": "off", "fixable": true }, + { "rule": "*-newline", "severity": "off", "fixable": true }, + { "rule": "*quotes", "severity": "off", "fixable": true }, + { "rule": "*semi", "severity": "off", "fixable": true } + ], + + // Enable eslint for all supported languages + "eslint.validate": [ + "javascript", + "javascriptreact", + "typescript", + "typescriptreact", + "vue", + "html", + "markdown", + "json", + "jsonc", + "yaml", + "toml", + "xml", + "gql", + "graphql", + "astro", + "svelte", + "css", + "less", + "scss", + "pcss", + "postcss" + ], + + // Enable file nesting + "explorer.fileNesting.enabled": true, + "explorer.fileNesting.patterns": { + "vite.config.*": "pages.config.*, manifest.config.*, uno.config.*, volar.config.*, *.env, .env.*" + } +} diff --git a/.vscode/tasks.json b/.vscode/tasks.json new file mode 100644 index 0000000..e8c343f --- /dev/null +++ b/.vscode/tasks.json @@ -0,0 +1,16 @@ +{ + "version": "2.0.0", + "tasks": [ + { + "label": "uni:h5", + "type": "npm", + "script": "dev --devtools", + "isBackground": true, + "problemMatcher": "$vite", + "group": { + "kind": "build", + "isDefault": true + } + } + ] +} diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..e321c3c --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2023-PRESENT KeJun + +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: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +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. \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..351d24e --- /dev/null +++ b/README.md @@ -0,0 +1,31 @@ +
+
+