From 0c27c03bd0a69271c385b0b53b5f9f9064c28e58 Mon Sep 17 00:00:00 2001 From: ZHANGFU <3079975645@qq.com> Date: Mon, 2 Dec 2024 20:11:31 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=E7=AB=A0=E5=AF=8C=20=E5=86=99=E5=AE=8C?= =?UTF-8?q?=E4=BA=86=E6=88=91=E7=9A=84=E6=9D=83=E7=9B=8A=E9=87=8C=E9=9D=A2?= =?UTF-8?q?=E7=9A=84=20=E6=88=91=E7=9A=84=E5=8D=A1=E5=88=B8=20=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- demo_module/package-lock.json | 308 ++++++++++++++++++++++++- demo_module/package.json | 2 + demo_module/src/router/index.jsx | 7 + demo_module/src/view/Mine.jsx | 7 +- demo_module/src/view/Mine/MyCode.css | 88 +++++++ demo_module/src/view/Mine/MyCode.jsx | 90 ++++++++ demo_module/src/view/Mine/Mycoupon.css | 104 +++++++++ demo_module/src/view/Mine/Mycoupon.jsx | 180 +++++++++++++++ 8 files changed, 782 insertions(+), 4 deletions(-) create mode 100644 demo_module/src/view/Mine/MyCode.css create mode 100644 demo_module/src/view/Mine/MyCode.jsx create mode 100644 demo_module/src/view/Mine/Mycoupon.css create mode 100644 demo_module/src/view/Mine/Mycoupon.jsx diff --git a/demo_module/package-lock.json b/demo_module/package-lock.json index 05ed575..907c3f3 100644 --- a/demo_module/package-lock.json +++ b/demo_module/package-lock.json @@ -11,6 +11,8 @@ "@reduxjs/toolkit": "^2.3.0", "antd-mobile": "^5.38.1", "axios": "^1.7.7", + "qrcode": "^1.5.4", + "qrcode.react": "^4.1.0", "react": "^18.3.1", "react-dom": "^18.3.1", "react-redux": "^9.1.2", @@ -1463,6 +1465,15 @@ "url": "https://github.com/sponsors/epoberezkin" } }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/ansi-styles": { "version": "3.2.1", "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-3.2.1.tgz", @@ -1773,6 +1784,15 @@ "node": ">=6" } }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmmirror.com/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/caniuse-lite": { "version": "1.0.30001669", "resolved": "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001669.tgz", @@ -1813,6 +1833,17 @@ "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==", "license": "MIT" }, + "node_modules/cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, "node_modules/color-convert": { "version": "1.9.3", "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-1.9.3.tgz", @@ -1945,6 +1976,15 @@ } } }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/deep-is": { "version": "0.1.4", "resolved": "https://registry.npmmirror.com/deep-is/-/deep-is-0.1.4.tgz", @@ -2002,6 +2042,12 @@ "node": ">=0.4.0" } }, + "node_modules/dijkstrajs": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/dijkstrajs/-/dijkstrajs-1.0.3.tgz", + "integrity": "sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA==", + "license": "MIT" + }, "node_modules/doctrine": { "version": "2.1.0", "resolved": "https://registry.npmmirror.com/doctrine/-/doctrine-2.1.0.tgz", @@ -2020,6 +2066,12 @@ "integrity": "sha512-NxnmFBHDl5Sachd2P46O7UJiMaMHMLSofoIWVJq3mj8NJgG0umiSeljAVP9lGzjI0UDLJJ5jjoGjcrB8RSbjLQ==", "dev": true }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, "node_modules/es-abstract": { "version": "1.23.3", "resolved": "https://registry.npmmirror.com/es-abstract/-/es-abstract-1.23.3.tgz", @@ -2681,6 +2733,15 @@ "node": ">=6.9.0" } }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, "node_modules/get-intrinsic": { "version": "1.2.4", "resolved": "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz", @@ -3050,6 +3111,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/is-generator-function": { "version": "1.0.10", "resolved": "https://registry.npmmirror.com/is-generator-function/-/is-generator-function-1.0.10.tgz", @@ -3641,6 +3711,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmmirror.com/parent-module/-/parent-module-1.0.1.tgz", @@ -3657,7 +3736,6 @@ "version": "4.0.0", "resolved": "https://registry.npmmirror.com/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, "engines": { "node": ">=8" } @@ -3683,6 +3761,15 @@ "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", "dev": true }, + "node_modules/pngjs": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/pngjs/-/pngjs-5.0.0.tgz", + "integrity": "sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==", + "license": "MIT", + "engines": { + "node": ">=10.13.0" + } + }, "node_modules/possible-typed-array-names": { "version": "1.0.0", "resolved": "https://registry.npmmirror.com/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", @@ -3754,6 +3841,32 @@ "node": ">=6" } }, + "node_modules/qrcode": { + "version": "1.5.4", + "resolved": "https://registry.npmmirror.com/qrcode/-/qrcode-1.5.4.tgz", + "integrity": "sha512-1ca71Zgiu6ORjHqFBDpnSMTR2ReToX4l1Au1VFLyVeBTFavzQnv5JxMFr3ukHVKpSrSA2MCk0lNJSykjUfz7Zg==", + "license": "MIT", + "dependencies": { + "dijkstrajs": "^1.0.1", + "pngjs": "^5.0.0", + "yargs": "^15.3.1" + }, + "bin": { + "qrcode": "bin/qrcode" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/qrcode.react": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/qrcode.react/-/qrcode.react-4.1.0.tgz", + "integrity": "sha512-uqXVIIVD/IPgWLYxbOczCNAQw80XCM/LulYDADF+g2xDsPj5OoRwSWtIS4jGyp295wyjKstfG1qIv/I2/rNWpQ==", + "license": "ISC", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, "node_modules/rc-field-form": { "version": "1.44.0", "resolved": "https://registry.npmmirror.com/rc-field-form/-/rc-field-form-1.44.0.tgz", @@ -3985,6 +4098,21 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "license": "ISC" + }, "node_modules/reselect": { "version": "5.1.1", "resolved": "https://registry.npmmirror.com/reselect/-/reselect-5.1.1.tgz", @@ -4127,6 +4255,12 @@ "semver": "bin/semver.js" } }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", + "license": "ISC" + }, "node_modules/set-function-length": { "version": "1.2.2", "resolved": "https://registry.npmmirror.com/set-function-length/-/set-function-length-1.2.2.tgz", @@ -4216,6 +4350,20 @@ "react": "^16.8.0 || ^17.0.0 || ^18.0.0" } }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/string.prototype.matchall": { "version": "4.0.11", "resolved": "https://registry.npmmirror.com/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz", @@ -4301,6 +4449,18 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmmirror.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz", @@ -4630,6 +4790,12 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/which-module": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/which-module/-/which-module-2.0.1.tgz", + "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", + "license": "ISC" + }, "node_modules/which-typed-array": { "version": "1.1.15", "resolved": "https://registry.npmmirror.com/which-typed-array/-/which-typed-array-1.1.15.tgz", @@ -4658,12 +4824,152 @@ "node": ">=0.10.0" } }, + "node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" + }, + "node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmmirror.com/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "license": "ISC" + }, "node_modules/yallist": { "version": "3.1.1", "resolved": "https://registry.npmmirror.com/yallist/-/yallist-3.1.1.tgz", "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "dev": true }, + "node_modules/yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmmirror.com/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "license": "MIT", + "dependencies": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmmirror.com/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "license": "ISC", + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yargs/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmmirror.com/yocto-queue/-/yocto-queue-0.1.0.tgz", diff --git a/demo_module/package.json b/demo_module/package.json index 1d67f21..3d55aac 100644 --- a/demo_module/package.json +++ b/demo_module/package.json @@ -13,6 +13,8 @@ "@reduxjs/toolkit": "^2.3.0", "antd-mobile": "^5.38.1", "axios": "^1.7.7", + "qrcode": "^1.5.4", + "qrcode.react": "^4.1.0", "react": "^18.3.1", "react-dom": "^18.3.1", "react-redux": "^9.1.2", diff --git a/demo_module/src/router/index.jsx b/demo_module/src/router/index.jsx index 6d36644..86c3637 100644 --- a/demo_module/src/router/index.jsx +++ b/demo_module/src/router/index.jsx @@ -15,6 +15,10 @@ const Settings = lazy(() => import("../view/Mine/Settings")) const Mycourse = lazy(() => import("../view/Mine/MyCourse")) const Mymock = lazy(() => import("../view/Mine/MyMock")) +//我的权益 +const Mycode = lazy(() => import("../view/Mine/MyCode")) +const Mycoupon = lazy(() => import("../view/Mine/Mycoupon")) + @@ -33,6 +37,9 @@ const routes = [ { path: '/mine/mycourse', element: < Mycourse /> }, { path: '/mine/mymock', element: < Mymock /> }, + //我的权益包含的路由 + { path: '/mine/mycode', element: < Mycode /> }, + { path: '/mine/mycoupon', element: < Mycoupon /> }, ] diff --git a/demo_module/src/view/Mine.jsx b/demo_module/src/view/Mine.jsx index d56f1a5..4100b9d 100644 --- a/demo_module/src/view/Mine.jsx +++ b/demo_module/src/view/Mine.jsx @@ -97,14 +97,14 @@ export default function Mine() { } ]) - //跳转页面 + //跳转页面方法 const goPage = (val_path) => { navigate(val_path) } - return ( <> + {/* 王卓岩要完成的任务 */} {/* 用户信息 */}
@@ -133,7 +133,6 @@ export default function Mine() {
- {/* 我的学习 */}
我的学习
@@ -152,6 +151,8 @@ export default function Mine() { }
+ + {/* 章富要完成的任务 */} {/* 我的权益 */}
我的权益
diff --git a/demo_module/src/view/Mine/MyCode.css b/demo_module/src/view/Mine/MyCode.css new file mode 100644 index 0000000..29a0326 --- /dev/null +++ b/demo_module/src/view/Mine/MyCode.css @@ -0,0 +1,88 @@ + +.nav { + padding: 10px; + box-sizing: border-box; + text-align: center; + /* border: 2px solid red; */ + +} + +.img1 { + width: 200px; + height: 200px; +} + +.box { + /* border: 2px solid blue; */ + width: 200px; + display: flex; + justify-content: space-around; + font-size: 1.5em; + margin: auto; +} + +.img2 { + width: 150px; + height: 80px; +} + + +.share1 { + width: 100%; + height: 40px; + line-height: 40px; + background-color: red; + color: white; + font-size: 1.5em; + font-weight: bold; + text-align: center; + border-radius: 10px; + position: fixed; + bottom: 0px; +} + + + +.share2 { + width: 100%; + display: flex; + align-items: center; + text-align: center; + justify-content: space-around; + padding: 10px; + box-sizing: border-box; + /* border: 2px solid red; */ +} + +.qx{ + margin-top: 50px; + background-color: yellow; +} + +.share img { + width: 50px; + height: 50px; +} + + +.item_box { + display: flex; + justify-content: space-around; + /* border: 2px solid red; */ + + box-sizing: border-box; + margin: 10px; +} + +.item_img { + width: 100px; + height: 100px; + border-radius: 10px; + /* border: 2px solid rgb(0, 174, 255); */ + +} + +.item_img img { + width: 100px; + height: 100px; +} \ No newline at end of file diff --git a/demo_module/src/view/Mine/MyCode.jsx b/demo_module/src/view/Mine/MyCode.jsx new file mode 100644 index 0000000..9c3e4ab --- /dev/null +++ b/demo_module/src/view/Mine/MyCode.jsx @@ -0,0 +1,90 @@ +import React, { useState } from 'react' +import { NavBar } from 'antd-mobile' + +import './MyCode.css' + + +export default function MyCode() { + + const [share, setShare] = useState(false) + const [imgurl, setImgurl] = useState([ + { + id: 1, + url: 'http://gips0.baidu.com/it/u=3822353666,2757632348&fm=3028&app=3028&f=JPEG&fmt=auto?w=720&h=1280' + }, + { + id: 2, + url: 'http://gips0.baidu.com/it/u=3822353666,2757632348&fm=3028&app=3028&f=JPEG&fmt=auto?w=720&h=1280' + }, + { + id: 3, + url: 'http://gips0.baidu.com/it/u=3822353666,2757632348&fm=3028&app=3028&f=JPEG&fmt=auto?w=720&h=1280' + } + ]) + + // 返回上一个页面 + const back = () => { + window.history.go(-1) + } + + return ( + <> + 我的邀请码 + + {/*邀请码页面 */} +
+ +
+ +
快来和我一起追逐梦想吧!
+
+
+ + {/* 轮播图选择样式 谢谢你因为有你温暖了四季*/} +
+ { + imgurl.map((item) => { + return ( +
+ +

快来和我一起追逐梦想吧!

+
+ ) + }) + } + +
+ + + + + + + + + {/* 分享到微信或朋友圈 */} + { + share ? + < > + +
+
+
+ +
微信好友
+
+
+ +
朋友圈
+
+
+
+ + + : + null + } +
setShare(true)} >一键分享
+ + ) +} diff --git a/demo_module/src/view/Mine/Mycoupon.css b/demo_module/src/view/Mine/Mycoupon.css new file mode 100644 index 0000000..211d31a --- /dev/null +++ b/demo_module/src/view/Mine/Mycoupon.css @@ -0,0 +1,104 @@ +* { + padding: 0; + margin: 0; +} + +.cort { + width: 100%; + height: 30px; + line-height: 30px; + font-size: 1.1rem; + font-weight: bold; + display: flex; + justify-content: space-around; + align-items: center; + background: #fff; + border-bottom: 0.01rem solid #ccc; +} + +.active { + color: #ff734c; + border-bottom: 2px solid #ff734c; +} + + +/* nav */ +.nav { + height: 100%; + /* background-color: #251; */ + color: white; +} + +.nav_item_box { + width: 100%; + height: 100px; + /* border: 1px solid #ccc; */ + display: flex; + justify-content: space-between; + align-items: center; + margin-top: 10px; +} + +p { + font-size: 1.2rem; + font-weight: bold; +} + + +.nav_item_box1 { + width: 25%; + height: 100px; + text-align: center; + background-color: #48cbc2; + display: flex; + justify-content: center; + align-items: center; + border-radius: 10px 0 0 10px; +} + +.nav_item_box2 { + width: 75%; + height: 100px; + padding: 10px; + box-sizing: border-box; + background-color: gainsboro; + display: flex; + justify-content: space-between; + flex-direction: column; + color: black; +} + +.yhq { + color: white; + padding: 2px 2px; + box-sizing: border-box; + border-radius: 5px; + background-color: #251; + margin-right: 10px; +} + +.bx_box { + display: flex; + justify-content: space-between; +} + +/* 立即使用 */ +.bor_box { + width: 30%; + border-radius: 20px; + text-align: center; + border: 2px solid rgb(0, 197, 164); + color: rgb(0, 197, 164); +} + +/* 转增 */ +.increase { + width: 20%; + border-radius: 20px; + padding: 2px; + box-sizing: border-box; + color: white; + text-align: center; + background-color: rgb(13, 139, 118); + +} \ No newline at end of file diff --git a/demo_module/src/view/Mine/Mycoupon.jsx b/demo_module/src/view/Mine/Mycoupon.jsx new file mode 100644 index 0000000..95c9889 --- /dev/null +++ b/demo_module/src/view/Mine/Mycoupon.jsx @@ -0,0 +1,180 @@ +import React, { useEffect, useState } from 'react' +import { NavBar } from 'antd-mobile' +import './Mycoupon.css' + + +export default function Mycoupon() { + const [status, setStatus] = useState(0) + + const [list, setList] = useState([ + { + id: 1, + title: '满100减10', + price: 100, + time: '2021.11.11-2021.12.12', + cate: '新人礼', + state: 0, + }, + { + id: 1001, + title: '满100减10', + price: 100, + time: '2021.11.11-2021.12.12', + cate: '新人礼', + state: 0 + }, + { + id: 1002, + title: '满100减10', + price: 100, + time: '2021.11.11-2021.12.12', + cate: '新人礼', + state: 0 + }, + { + id: 2, + title: '满200减20', + price: 200, + time: '2021.11.11-2021.12.12', + cate: '新人礼', + state: 1 + }, + { + id: 3, + title: '满300减30', + price: 300, + time: '2021.11.11-2021.12.12', + cate: '新人礼', + state: 2 + } + ]) + + const [active, setActive] = useState(0) + + //筛选状态 + const up = (val) => { + let ls = list.filter(ele => { return ele.state === val }).length + + if (ls < 1) { + setStatus(3) + } else { + setStatus(val) + console.log(status); + } + } + const [stop, setStop] = useState(0) + + useEffect(() => { + if (stop === 0) { + up(0) + setStop(1) + } + + }) + + // 返回上一个页面 + const back = () => { + window.history.go(-1) + } + return ( + <> + {/* 标头 */} + 我的卡券 + {/* cort */} +
+
{ + setActive(0) + up(0) + }}>未使用
+
{ + setActive(1) + up(1) + }}>已使用
+
{ + setActive(2) + up(2) + }}>已过期
+
+ {/* nav */} +
+ { + status === 0 ? + list.filter(ele => { return ele.state === 0 }).map(item => { + return ( +
+
+
+

¥{item.price}

+

全场通用

+
+
+
+
优惠券{item.cate}
+
+
{item.title}
+
立即使用
+
+
+
有效期:{item.time}
+
转增
+
+
+
+ ) + }) + : status === 1 ? + list.filter(ele => { return ele.state === 1 }).map(item => { + return ( +
+
+
+

¥{item.price}

+

全场通用

+
+
+
+
优惠券{item.cate}
+
+
{item.title}
+
已使用
+
+
+
有效期:{item.time}
+
+
+
+ ) + }) + : status === 2 ? + list.filter(ele => { return ele.state === 2 }).map(item => { + return ( +
+
+
+

¥{item.price}

+

全场通用

+
+
+
+
优惠券{item.cate}
+
+
{item.title}
+
已过期
+
+
+
有效期:{item.time}
+
+
+
+ ) + }) + : status === 3 ? +
还没有优惠券哦
+ : null + + } +
+ + + ) +} -- Gitee From b9c448d69148df1f9031b91a0fe4e1588cad7383 Mon Sep 17 00:00:00 2001 From: ZHANGFU <3079975645@qq.com> Date: Mon, 2 Dec 2024 20:28:51 +0800 Subject: [PATCH 2/5] =?UTF-8?q?=E7=AB=A0=E5=AF=8C=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E4=BA=86=20=E6=88=91=E7=9A=84=E5=8D=A1=E5=88=B8=E4=B8=AD?= =?UTF-8?q?=E5=B7=B2=E8=BF=87=E6=9C=9F=E7=9A=84=E6=A0=B7=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- demo_module/src/view/Mine/Mycoupon.css | 45 ++++++++++++++++++++++++++ demo_module/src/view/Mine/Mycoupon.jsx | 28 ++++++++++++++-- 2 files changed, 71 insertions(+), 2 deletions(-) diff --git a/demo_module/src/view/Mine/Mycoupon.css b/demo_module/src/view/Mine/Mycoupon.css index 211d31a..40b703a 100644 --- a/demo_module/src/view/Mine/Mycoupon.css +++ b/demo_module/src/view/Mine/Mycoupon.css @@ -27,6 +27,7 @@ height: 100%; /* background-color: #251; */ color: white; + } .nav_item_box { @@ -37,6 +38,7 @@ justify-content: space-between; align-items: center; margin-top: 10px; + position: relative; } p { @@ -66,6 +68,7 @@ p { justify-content: space-between; flex-direction: column; color: black; + } .yhq { @@ -101,4 +104,46 @@ p { text-align: center; background-color: rgb(13, 139, 118); +} + + + +/* 已过期 */ + +.watermark { + width: 5rem; + height: 5rem; + text-align: center; + line-height: 4rem; + font-size: 1rem; + border-radius: 5rem; + transform: rotate(-55deg); + position: absolute; + right: -0.5rem; + top: 0.5rem; + color: rgb(223, 162, 162); + border: .2rem solid; +} + +.watermark-dotted { + width: 4.5rem; + height: 4.5rem; + border-radius: 5rem; + border: .1rem dashed; + margin: auto; + margin-top: .1rem; +} + +.watermark-small { + width: 4rem; + height: 4rem; + border-radius: 5rem; + border: .1rem solid; + margin: auto; + margin-top: .1rem; +} + +.watermark-p { + font-weight: bold; + font-size: 1.2rem; } \ No newline at end of file diff --git a/demo_module/src/view/Mine/Mycoupon.jsx b/demo_module/src/view/Mine/Mycoupon.jsx index 95c9889..e9fb4eb 100644 --- a/demo_module/src/view/Mine/Mycoupon.jsx +++ b/demo_module/src/view/Mine/Mycoupon.jsx @@ -46,7 +46,23 @@ export default function Mycoupon() { time: '2021.11.11-2021.12.12', cate: '新人礼', state: 2 - } + }, + { + id: 3001, + title: '满300减30', + price: 300, + time: '2021.11.11-2021.12.12', + cate: '新人礼', + state: 2 + }, + { + id: 3002, + title: '满300减30', + price: 300, + time: '2021.11.11-2021.12.12', + cate: '新人礼', + state: 2 + }, ]) const [active, setActive] = useState(0) @@ -159,7 +175,13 @@ export default function Mycoupon() {
优惠券{item.cate}
{item.title}
-
已过期
+
+
+
+
+

已过期

+
+
有效期:{item.time}
@@ -175,6 +197,8 @@ export default function Mycoupon() { }
+ + ) } -- Gitee From 88723489cb80247b2f6654adb93b8e105a02ff88 Mon Sep 17 00:00:00 2001 From: ZHANGFU <3079975645@qq.com> Date: Thu, 5 Dec 2024 14:50:49 +0800 Subject: [PATCH 3/5] =?UTF-8?q?=E7=AB=A0=E5=AF=8C=E5=AE=8C=E6=88=90?= =?UTF-8?q?=E4=BA=86=20=E7=8A=B6=E5=85=83=E8=B1=86=E7=9A=84=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2=E4=BB=A3=E7=A0=81=EF=BC=8C=E6=9C=AA=E5=86=99=E5=90=8E?= =?UTF-8?q?=E7=AB=AF=E7=9A=84=E6=95=B0=E6=8D=AE=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- demo_module/public/imgs/1.png | Bin 0 -> 27222 bytes demo_module/src/router/index.jsx | 12 +- demo_module/src/view/Mine.jsx | 2 +- demo_module/src/view/Mine/Earnings.css | 112 +++++++++++++ demo_module/src/view/Mine/Earnings.jsx | 152 ++++++++++++++++++ demo_module/src/view/Mine/Mybean.css | 61 +++++++ demo_module/src/view/Mine/Mybean.jsx | 52 ++++++ demo_module/src/view/Mine/Mycustomer.css | 0 demo_module/src/view/Mine/Mycustomer.jsx | 26 +++ .../src/view/\346\250\241\346\235\277.jsx" | 24 +++ 10 files changed, 437 insertions(+), 4 deletions(-) create mode 100644 demo_module/public/imgs/1.png create mode 100644 demo_module/src/view/Mine/Earnings.css create mode 100644 demo_module/src/view/Mine/Earnings.jsx create mode 100644 demo_module/src/view/Mine/Mybean.css create mode 100644 demo_module/src/view/Mine/Mybean.jsx create mode 100644 demo_module/src/view/Mine/Mycustomer.css create mode 100644 demo_module/src/view/Mine/Mycustomer.jsx create mode 100644 "demo_module/src/view/\346\250\241\346\235\277.jsx" diff --git a/demo_module/public/imgs/1.png b/demo_module/public/imgs/1.png new file mode 100644 index 0000000000000000000000000000000000000000..2458062a2e7cf1b76e99f65c301e8f68b8f7360f GIT binary patch literal 27222 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 z import("../view/Mine/MyMock")) //我的权益 const Mycode = lazy(() => import("../view/Mine/MyCode")) const Mycoupon = lazy(() => import("../view/Mine/Mycoupon")) +const Mybean = lazy(() => import("../view/Mine/Mybean")) +const Earnings = lazy(() => import("../view/Mine/Earnings")) +const Mycustomer = lazy(() => import("../view/Mine/Mycustomer")) + +// 路由设置 const routes = [ { path: '/', element: }, { path: '/mine', element: < MineView />, }, @@ -30,9 +35,6 @@ const routes = [ { path: '/mine/settings', element: < Settings /> }, //我的荣誉包含的路由 { path: '/mine/myhonor', element: < My_honor /> }, - - - //我的学习包含的路由 { path: '/mine/mycourse', element: < Mycourse /> }, { path: '/mine/mymock', element: < Mymock /> }, @@ -40,6 +42,10 @@ const routes = [ //我的权益包含的路由 { path: '/mine/mycode', element: < Mycode /> }, { path: '/mine/mycoupon', element: < Mycoupon /> }, + { path: '/mine/mybean', element: < Mybean /> }, + { path: '/mine/mybean/earnings', element: }, + { path: '/mine/mycustomer', element: }, + ] diff --git a/demo_module/src/view/Mine.jsx b/demo_module/src/view/Mine.jsx index 4100b9d..c43ad5e 100644 --- a/demo_module/src/view/Mine.jsx +++ b/demo_module/src/view/Mine.jsx @@ -70,7 +70,7 @@ export default function Mine() { }, { id: 3, - title: '欢乐豆', + title: '状元豆', img: 'https://ts4.cn.mm.bing.net/th?id=ODLS.204fe2d2-8cd1-49ab-8525-0eb34d2e9eed&w=32&h=32&qlt=90&pcl=fffffa&o=6&pid=1.2', path: '/mine/mybean' }, diff --git a/demo_module/src/view/Mine/Earnings.css b/demo_module/src/view/Mine/Earnings.css new file mode 100644 index 0000000..faaa86e --- /dev/null +++ b/demo_module/src/view/Mine/Earnings.css @@ -0,0 +1,112 @@ +* { + padding: 0; + margin: 0; +} + +.cort { + width: 100%; + height: 30px; + line-height: 30px; + font-size: 1.1rem; + font-weight: bold; + display: flex; + justify-content: space-around; + align-items: center; + background: #fff; + border-bottom: 0.01rem solid #ccc; +} + +.active { + color: #ff0000; + /* border-bottom: 2px solid #ff734c; */ +} + + +.nav_item { + width: 100%; + height: 70px; + border: 1px solid #ff734c; + display: flex; + justify-content: space-between; +} + +.red { + color: red; +} + + +.item_box1 { + width: 80%; + /* background-color: #175cdb; */ + display: flex; + align-items: center; +} + + + +.item_box1>img { + width: 50px; + height: 50px; + border-radius: 50%; + margin: 20px; + box-sizing: border-box; +} + +.item_box2 { + width: 20%; + display: flex; + align-items: center; + /* background-color: greenyellow; */ +} + + + + + +.box1_item1 { + font-size: 1.2em; + font-weight: bold; +} + +.box1_item2 { + margin-top: 10px; + box-sizing: border-box; + color: #ccc; +} + + + +.box2_item1 { + width: 100%; + text-align: center; + font-size: 1.2em; + font-weight: bold; + +} + + + + + + + + + + + + + + + +.Nols { + width: 100%; + height: 89vh; + background: #d4d2d2; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + font-size: 2em; + font-weight: bold; + color: #615e5e +} \ No newline at end of file diff --git a/demo_module/src/view/Mine/Earnings.jsx b/demo_module/src/view/Mine/Earnings.jsx new file mode 100644 index 0000000..93ab12a --- /dev/null +++ b/demo_module/src/view/Mine/Earnings.jsx @@ -0,0 +1,152 @@ +import React, { useEffect, useState } from 'react' +import { NavBar } from 'antd-mobile' +import './Earnings.css' + + +export default function Mycoupon() { + const [list, setList] = useState([ + { + id: 1, + name: '森之介', + purposes: '购买课程', + time: '2021-10-12 12:12:12', + gains: 100, + state: 1 + }, + { + id: 2, + name: '森之介', + purposes: '课程抵扣', + time: '2021-10-11 15:37:58', + gains: -10, + state: 2 + }, + { + id: 3, + name: '森之介', + purposes: '课程抵扣', + time: '2021-10-11 15:37:58', + gains: -20, + state: 2 + } + ]) + const [status, setStatus] = useState(0) + const [active, setActive] = useState(0) + //筛选状态 + const up = (val) => { + console.log(val); + + if (val === 0) { + setStatus(0) + } else { + let ls = list.filter(ele => { return ele.state === val }).length + if (ls < 1) { + setStatus(3) + } else { + setStatus(val) + console.log(status); + } + } + } + const [stop, setStop] = useState(0) + useEffect(() => { + if (stop === 0) { + up(0) + setStop(1) + } + + }) + // 返回上一个页面 + const back = () => { + window.history.go(-1) + } + + + + return ( + <> + {/* 标头 */} + 收益记录 + {/* choose */} +
+
{ + setActive(0) + up(0) + }}>全部
+
{ + setActive(1) + up(1) + }}>收益
+
{ + setActive(2) + up(2) + }}>支出
+
+ {/* nav */} +
+ { + status === 0 ? + list.map(item => { + return ( +
+ {/* 头像和信息 */} +
+ +
+

{item.name} {item.purposes}

+

{item.time}

+
+
+ {/* 豆子 */} +
+
{0 + item.gains} 豆
+
+
+ ) + }) + : status === 1 ? + list.filter(ele => { return ele.state === 1 }).map(item => { + return ( +
+ {/* 头像和信息 */} +
+ +
+

{item.name} {item.purposes}

+

{item.time}

+
+
+ {/* 豆子 */} +
+
{0 + item.gains} 豆
+
+
+ ) + }) + : status === 2 ? + list.filter(ele => { return ele.state === 2 }).map(item => { + return ( +
+ {/* 头像和信息 */} +
+ +
+

{item.name} {item.purposes}

+

{item.time}

+
+
+ {/* 豆子 */} +
+
{0 + item.gains} 豆
+
+
+ ) + }) + : status === 3 ? +
还没有记录哦
+ :
还没有记录哦
+ } +
+ + ) +} diff --git a/demo_module/src/view/Mine/Mybean.css b/demo_module/src/view/Mine/Mybean.css new file mode 100644 index 0000000..3477990 --- /dev/null +++ b/demo_module/src/view/Mine/Mybean.css @@ -0,0 +1,61 @@ +.box { + background-color: rgb(216, 73, 73); + color: #ffffff; + display: flex; + justify-content: space-around; + align-items: center; + padding: 0 20px; + box-sizing: border-box; + width: 100%; + height: 150px; + + margin-top: 20px; + border-radius: 30px; +} + + +.bigtxt { + font-size: 2em; + font-weight: bold; + color: #ffffff; + margin-bottom: 0.5em; +} + +.img1 { + width: 150px; + height: 140px; + +} + + + + + +.box2 { + margin-top: 20px; + width: 100%; + height: 50px; + display: flex; + justify-content: space-between; + align-items: center; + font-size: 1.2em; + border-bottom: 1px solid #ccc; +} + +.box2-1 { + width: 100%; + height: 50px; + display: flex; + align-items: center; + font-size: 1.2em; +} + + + +.img2 { + margin-left: 20px; + margin-right: 20px; + width: 40px; + height: 40px; + border-radius: 50%; +} \ No newline at end of file diff --git a/demo_module/src/view/Mine/Mybean.jsx b/demo_module/src/view/Mine/Mybean.jsx new file mode 100644 index 0000000..e283fd9 --- /dev/null +++ b/demo_module/src/view/Mine/Mybean.jsx @@ -0,0 +1,52 @@ +import './Mybean.css' +import React from 'react' +import { useNavigate } from 'react-router-dom' +import { NavBar } from 'antd-mobile' + +export default function Mybean() { + const navigate = useNavigate() + // 返回上一个页面 + const back = () => { + navigate(-1) + // window.history.go(-1) + } + + + + return ( + <> + 我的状元豆 +
+
+ 状元豆: + 300 + (个) +
+
+ +
+
+
{ + navigate('/mine/mybean/earnings') + }} > +
+ + 收益记录 +
+
+ 》 +
+
+ {/* +
+
+ + 提现记录 +
+
+ 》 +
+
*/} + + ) +} diff --git a/demo_module/src/view/Mine/Mycustomer.css b/demo_module/src/view/Mine/Mycustomer.css new file mode 100644 index 0000000..e69de29 diff --git a/demo_module/src/view/Mine/Mycustomer.jsx b/demo_module/src/view/Mine/Mycustomer.jsx new file mode 100644 index 0000000..c300397 --- /dev/null +++ b/demo_module/src/view/Mine/Mycustomer.jsx @@ -0,0 +1,26 @@ +import './Mycustomer.css' +import React from 'react' +import { NavBar } from 'antd-mobile' +import { useNavigate } from 'react-router-dom' + + +export default function Earnings() { + const navigate = useNavigate() + + // 返回上一个页面 + const back = () => { + navigate(-1) + // window.history.go(-1) + } + + + + return ( + <> + 客服 +
+ +
+ + ) +} diff --git "a/demo_module/src/view/\346\250\241\346\235\277.jsx" "b/demo_module/src/view/\346\250\241\346\235\277.jsx" new file mode 100644 index 0000000..35ab7a0 --- /dev/null +++ "b/demo_module/src/view/\346\250\241\346\235\277.jsx" @@ -0,0 +1,24 @@ +import React from 'react' +import { NavBar } from 'antd-mobile' +import { useNavigate } from 'react-router-dom' + +export default function Earnings() { + const navigate = useNavigate() + + // 返回上一个页面 + const back = () => { + navigate(-1) + // window.history.go(-1) + } + + + + return ( + <> + 收益记录 +
+ +
+ + ) +} -- Gitee From b1a823d03f3d3e25d102144a5e6a3bc3c2190d3a Mon Sep 17 00:00:00 2001 From: ZHANGFU <3079975645@qq.com> Date: Thu, 5 Dec 2024 16:34:29 +0800 Subject: [PATCH 4/5] =?UTF-8?q?=E7=AB=A0=E5=AF=8C=E5=AE=8C=E6=88=90?= =?UTF-8?q?=E4=BA=86=E5=AE=A2=E6=9C=8D=E9=A1=B5=E9=9D=A2=20=E6=9C=AA?= =?UTF-8?q?=E5=86=99=E5=90=8E=E7=AB=AF=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- demo_module/package-lock.json | 1 + demo_module/package.json | 1 + demo_module/src/view/Mine/Mycustomer.css | 134 +++++++++++++++++ demo_module/src/view/Mine/Mycustomer.jsx | 91 +++++++++++- demo_module/src/view/endUser.jsx | 105 +++++++++++++ demo_module/src/view/endUser.less | 180 +++++++++++++++++++++++ 6 files changed, 508 insertions(+), 4 deletions(-) create mode 100644 demo_module/src/view/endUser.jsx create mode 100644 demo_module/src/view/endUser.less diff --git a/demo_module/package-lock.json b/demo_module/package-lock.json index 907c3f3..64cd862 100644 --- a/demo_module/package-lock.json +++ b/demo_module/package-lock.json @@ -10,6 +10,7 @@ "dependencies": { "@reduxjs/toolkit": "^2.3.0", "antd-mobile": "^5.38.1", + "antd-mobile-icons": "^0.3.0", "axios": "^1.7.7", "qrcode": "^1.5.4", "qrcode.react": "^4.1.0", diff --git a/demo_module/package.json b/demo_module/package.json index 3d55aac..8bf644b 100644 --- a/demo_module/package.json +++ b/demo_module/package.json @@ -12,6 +12,7 @@ "dependencies": { "@reduxjs/toolkit": "^2.3.0", "antd-mobile": "^5.38.1", + "antd-mobile-icons": "^0.3.0", "axios": "^1.7.7", "qrcode": "^1.5.4", "qrcode.react": "^4.1.0", diff --git a/demo_module/src/view/Mine/Mycustomer.css b/demo_module/src/view/Mine/Mycustomer.css index e69de29..34689b9 100644 --- a/demo_module/src/view/Mine/Mycustomer.css +++ b/demo_module/src/view/Mine/Mycustomer.css @@ -0,0 +1,134 @@ +.nav { + width: 100%; + height: 610px; + display: flex; + flex-direction: column; + justify-content: space-between; +} + +.messages1 { + /* border: 2px solid #77ff00; */ + +} + +.messages1_box1 { + /* border: 1px solid #f50000; */ + width: 100%; + display: flex; +} + +.messages1_box1>img { + width: 50px; + height: 50px; + border-radius: 50%; +} + +.messages1_box1_text { + margin-left: 10px; + display: flex; + flex-direction: column; + justify-content: space-between; + border: 1px solid #4b4949; + padding: 5px; + box-sizing: border-box; + border-radius: 15px; +} + +.consult { + width: 100%; + height: 100px; + display: flex; + flex-wrap: wrap; + justify-content: space-evenly; + align-items: center; + /* border: 1px solid #f50000; */ +} + +button { + border: none; + border-radius: 10%; + padding: 5px; + box-sizing: border-box; + background-color: aqua; + color: rgb(0, 115, 255); +} + + + +.item { + display: flex; + align-items: center; + width: 100%; + height: 50px; + box-sizing: border-box; + margin-top: 20px; + font-size: 1.1em; + font-weight: bold; +} + +.bubble { + border: 1px solid rgb(166, 112, 166); + padding: 15px; + box-sizing: border-box; + border-radius: 10px; + background-color: #d3f1fd; +} + + + +.item>img { + width: 50px; + height: 50px; + border-radius: 50%; + margin-right: 15px; +} + + + + + + + + + +.messages2 { + width: 100%; + height: 50px; + display: flex; + justify-content: space-between; + align-items: center; + /* border: 2px solid #77ff00; */ + font-size: 1.2em; + font-weight: bold +} + + + +.messages2>input { + width: 80%; + height: 40px; + border-radius: 10px; + padding: 10px; + box-sizing: border-box; + font-size: 1.2em; + font-weight: bold; + background-color: #d3f1fd; +} + +.send { + width: 20%; + height: 40px; + line-height: 40px; + text-align: center; + color: white; + background-color: red; + border-radius: 10px; + margin: 5px; + box-sizing: border-box; +} + +.Scroll_bar { + height: 420px; + overflow-y: scroll; + overflow-x: hidden; +} \ No newline at end of file diff --git a/demo_module/src/view/Mine/Mycustomer.jsx b/demo_module/src/view/Mine/Mycustomer.jsx index c300397..bd515b3 100644 --- a/demo_module/src/view/Mine/Mycustomer.jsx +++ b/demo_module/src/view/Mine/Mycustomer.jsx @@ -1,25 +1,108 @@ import './Mycustomer.css' -import React from 'react' +import React, { useState } from 'react' import { NavBar } from 'antd-mobile' import { useNavigate } from 'react-router-dom' export default function Earnings() { const navigate = useNavigate() + const [texta, setTexta] = useState('') + + + + const [list, setList] = useState([ + { + id: 1, + title: '线上课程咨询', + content: '线上课程咨询', + time: '2022-01-01 12:00:00', + status: '已回复', + content: '您好,请问有什么可以帮助您的吗?', + }, + { + id: 2, + title: '线下课程咨询', + content: '线下课程咨询', + time: '2022-01-02 12:00:00', + status: '未回复', + content: '您好,请问有什么可以帮助您的吗?', + } + ]) // 返回上一个页面 const back = () => { navigate(-1) - // window.history.go(-1) } + // 点击回复按钮 + const reply = (id) => { + navigate(`/reply/${id}`) + } + + //发送问题 + const pushList = () => { + if (texta === '') { + alert('请输入问题') + } else { + setList([...list, { + id: list.length + 1, + title: '其他问题咨询', + content: texta, + time: '2022-01-01 12:00:00', + status: '未回复', + // content: '您好,请稍后~', + }]) + setTexta('') + } + } return ( <> 客服 -
- +
+
+
+ +
+

+ 您好,请选择您想要咨询的问题类型: +

+
+ + + + + + +
+
+
+ {/* 用户咨询记录 */} +
+ { + list.map(item => { + return ( + <> +
+ +
{item.content}
+
+ + ) + }) + } +
+
+ {/* 咨询问题 */} +
+ { + setTexta(e.target.value) + }} /> +
{ + pushList() + }}>发送
+
) diff --git a/demo_module/src/view/endUser.jsx b/demo_module/src/view/endUser.jsx new file mode 100644 index 0000000..85a6509 --- /dev/null +++ b/demo_module/src/view/endUser.jsx @@ -0,0 +1,105 @@ +import { LeftOutline } from 'antd-mobile-icons' +import "./endUser.less" +import { useNavigate } from "react-router-dom" +import { useState } from 'react'; +import { ChevronLeftIcon } from 'tdesign-icons-react'; +import axios from '../../ulits/index'; +import { useEffect } from 'react'; +import { useParams } from 'react-router-dom'; + + +const EndUser = () => { + const navigate = useNavigate() + + const [userVal, serUserVal] = useState("") // 文本数据 + const [flags, setFlags] = useState(true) // 切换语音 + const { user_id, img } = useParams() + + const decodedImgUrl = decodeURIComponent(img); + + const hendleBack = () => { + navigate(sessionStorage.getItem('route')) + } + + const [chathistory, setChathistory] = useState([]) + + const chatHistory = async () => { + const res = await axios.post('/findChat', { user_id: user_id, rider_id: '674e7b9058fa18f9cad4799f' }) + if (res.data.code == 200) { + setChathistory(res.data.chat_list) + } + } + + const hendleAdd = () => { + + } + + useEffect(() => { + chatHistory() + }, []) + + return ( +
+
+
+ hendleBack()} /> +

OMINI.BASS

+

拨打电话

+
+
+
+ +
+ { + chathistory.map((item, index) => { + return ( +
+ +
+ {item.message} +
+
+ ) + }) + } +
+
+ 啊啊啊啊 +
+ +
+
+ +
+
+ { + flags ? setFlags(false)} /> + : + setFlags(true)} /> + } +
+
+ { + flags ? serUserVal(e.target.value)} /> : + } + + { + flags ? : null + } +
+
+ { + userVal ? + + : + + } + +
+
+
+
+ ) +} + +export default EndUser \ No newline at end of file diff --git a/demo_module/src/view/endUser.less b/demo_module/src/view/endUser.less new file mode 100644 index 0000000..c31c654 --- /dev/null +++ b/demo_module/src/view/endUser.less @@ -0,0 +1,180 @@ +*{ + padding: 0; + margin: 0%; +} +#endUser { + width: 100%; + height: 100vh; + box-sizing: border-box; + position: relative; + .user-header { + width: 100%; + height: 20vh; + background-color: #2ecc71; + border-bottom-left-radius: 15%; + border-bottom-right-radius: 15%; + position: relative; + .header-ellipse { + width: 85%; + height: 100%; + text-align: center; + background-color: #2aba66; + border-top-right-radius: 4rem; + border-bottom-right-radius: 6rem; + border-bottom-left-radius: 15%; + line-height: 4rem; + display: flex; + + } + } + + .y_bottom { + width: 100% !important; + height: 90vh; + background-color: #ecfdfa; + box-sizing: border-box; + // position: absolute; + top: -6rem; + position: relative; + .websocket { + width: 100%; + height: 100%; + overflow-y: scroll; + box-sizing: border-box; + + .left { + width: 100%; + height: 4rem; + display: flex; + align-items: center; + + img { + width: 3rem; + height: 3rem; + border-radius: 3rem; + background-color: white; + margin: 0 0.5rem; + } + + .contL { + max-width: 12rem; + box-sizing: border-box; + padding: 1rem; + border-radius: 2rem 2rem 2rem 0.5rem; + background-color: white; + } + } + + .right { + width: 100%; + height: 6rem; + margin: 2.5rem 0; + display: flex; + align-items: center; + justify-content: right; + + img { + width: 3rem; + height: 3rem; + border-radius: 3rem; + background-color: white; + margin: 0 0.5rem; + } + + .contL { + box-sizing: border-box; + max-width: 12rem; + padding: 1rem; + border-radius: 2rem 2rem 0.5rem 2rem; + background-color: #ff5980; + color: white; + } + } + + } + + .bottomPut { + width: 100%; + position: absolute; + bottom: 0; + height: 5rem; + background-color: #f2f2f2; + display: flex; + align-items: center; + + .speech-to-text { + img { + width: 2rem; + height: 2rem; + margin-left: .7rem; + } + } + + .TextSpeech { + display: flex; + width: 30rem; + align-items: center; + box-sizing: border-box; + position: relative; + + input { + margin-left: 0.5rem; + width: 15rem; + height: 2.5rem; + border-radius: 3rem; + padding-left: 1rem; + border: 0; + outline: none; + } + + button { + margin-left: 1.5rem; + width: 17rem; + height: 2.5rem; + border-radius: 3rem; + padding-left: 1rem; + border: 0; + background-color: white; + text-align: center; + } + + .img1 { + width: 2rem; + height: 2rem; + border-radius: 3rem; + padding: 0.2rem; + } + + .img2 { + width: 2rem; + height: 2rem; + border-radius: 3rem; + right: 2rem; + position: absolute; + padding: 0.2rem; + background-color: white; + } + } + + .jiajia { + img { + width: 2rem; + height: 2rem; + border-radius: 3rem; + margin-right: .5rem; + margin-top: .2rem; + } + + button { + color: white; + background-color: #2aba66; + width: 4rem; + height: 2.2rem; + border-radius: 3rem; + border: 0; + margin-right: .1rem; + } + } + } + } +} \ No newline at end of file -- Gitee From 5fe64c70c79c921259437babfb6a0731d8fd5176 Mon Sep 17 00:00:00 2001 From: ZHANGFU <3079975645@qq.com> Date: Thu, 5 Dec 2024 16:37:38 +0800 Subject: [PATCH 5/5] =?UTF-8?q?=E5=B0=86=E6=B2=A1=E7=94=A8=E7=9A=84?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E8=BF=9B=E8=A1=8C=E4=BA=86=E5=BD=92=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/view/\344\274\232\350\257\235/endUser.jsx" | 0 .../src/view/\344\274\232\350\257\235/endUser.less" | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename demo_module/src/view/endUser.jsx => "demo_module/src/view/\344\274\232\350\257\235/endUser.jsx" (100%) rename demo_module/src/view/endUser.less => "demo_module/src/view/\344\274\232\350\257\235/endUser.less" (100%) diff --git a/demo_module/src/view/endUser.jsx "b/demo_module/src/view/\344\274\232\350\257\235/endUser.jsx" similarity index 100% rename from demo_module/src/view/endUser.jsx rename to "demo_module/src/view/\344\274\232\350\257\235/endUser.jsx" diff --git a/demo_module/src/view/endUser.less "b/demo_module/src/view/\344\274\232\350\257\235/endUser.less" similarity index 100% rename from demo_module/src/view/endUser.less rename to "demo_module/src/view/\344\274\232\350\257\235/endUser.less" -- Gitee