From 7c4cedaeff83bb277e08beb5a29cc064849bcca3 Mon Sep 17 00:00:00 2001 From: xjs Date: Fri, 5 Sep 2025 09:30:04 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E9=92=89=E9=92=89=E9=80=82=E9=85=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .vscode/settings.json | 4 -- package.json | 1 + pnpm-lock.yaml | 28 +++++++++ src/components/bar/CustomTabBar.vue | 8 ++- src/components/home/Consultation.vue | 4 +- src/components/navbar/Navbar.vue | 29 +++------ src/login-sub/components/LoginMask.vue | 11 ++-- src/login-sub/index.vue | 37 ++++++++--- .../components/navbar/Navbar.vue | 21 ++++--- .../academicReport/CharacterReport.vue | 10 +-- .../academicReport/InterestReport.vue | 13 ++-- .../academicReport/opinionAboutReport.vue | 10 +-- .../evaluate/components/AiFooter.vue | 10 +-- .../evaluate/components/InterestingThings.vue | 12 ++-- .../evaluate/components/StatusCard.vue | 12 ++-- .../evaluate/components/SuggestionCard.vue | 36 ++++++----- .../components/studyChart/LearnStyleChart.vue | 15 ++--- src/pages-evaluation-sub/rank/index.vue | 18 +++--- .../components/collapse/CollapseItem.vue | 4 +- .../components/input/SearchInput.vue | 2 +- .../components/interval/NumberInterval.vue | 14 +++-- src/pages-sub/components/navbar/Navbar.vue | 12 ++-- src/pages-sub/components/table/Table.vue | 14 ++--- src/pages-sub/customerService/index/index.vue | 17 ++--- .../components/AdmissionInformation.vue | 12 ++-- .../adPoster/components/FeatureOfTeaching.vue | 11 ++-- .../home/adPoster/components/HeaderBg.vue | 62 +++++++++++-------- .../adPoster/components/LivingGuarantee.vue | 18 +++--- .../adPoster/components/RoundedBorder.vue | 12 ++-- .../home/adPoster/components/Schools.vue | 4 +- .../adPoster/components/ShareButtonGroup.vue | 14 +++-- src/pages-sub/home/autoFill/index.vue | 24 +++---- src/pages-sub/home/career/info.vue | 12 ++-- .../home/college/components/Colleges.vue | 16 ++--- .../home/college/components/FirstClass.vue | 26 ++++---- .../home/college/components/Situation.vue | 12 ++-- src/pages-sub/home/college/index.vue | 4 +- src/pages-sub/home/college/info.vue | 12 ++-- src/pages-sub/home/distinguish/index.vue | 3 - src/pages-sub/home/expand/index.vue | 28 +++++---- src/pages-sub/home/line/index.vue | 2 +- src/pages-sub/home/news/index.vue | 50 +++++++++++++-- src/pages-sub/home/schoolRank/index.vue | 31 ++++------ .../home/wishesList/components/DataTable.vue | 38 ++++++------ .../wishesList/components/ScrollListItem.vue | 4 +- src/pages-sub/ucenter/active/activePage.vue | 21 +++---- .../ucenter/appointment/appointment.vue | 12 ++-- .../ucenter/evaluate/evaluateList.vue | 12 ++-- src/pages-sub/ucenter/star/myStar.vue | 8 +-- .../ucenter/vip/components/VipTable.vue | 2 +- src/pages-sub/ucenter/vip/openVip.vue | 20 +++--- src/pages/index/index.vue | 12 ++-- src/utils/tools.ts | 2 +- vite.config.ts | 3 + 54 files changed, 488 insertions(+), 341 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index b590be8..c2bede0 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -59,8 +59,4 @@ "package.json": "pnpm-lock.yaml,pnpm-workspace.yaml,LICENSE,.gitattributes,.gitignore,.gitpod.yml,CNAME,.npmrc,.browserslistrc", ".eslintrc.cjs": ".eslintignore,.prettierignore,.stylelintignore,.commitlintrc.*,.prettierrc.*,.stylelintrc.*,.eslintrc-auto-import.json,.editorconfig,.commitlint.cjs" }, - "vetur.validation.template": false, - "vetur.validation.script": false, - "vetur.validation.style": false, - "vetur.experimental.templateInterpolationService": true } diff --git a/package.json b/package.json index e547905..c02c2b2 100644 --- a/package.json +++ b/package.json @@ -106,6 +106,7 @@ "@tanstack/vue-query": "^5.62.16", "abortcontroller-polyfill": "^1.7.8", "dayjs": "1.11.10", + "htmlparser2": "^10.0.0", "pinia": "2.0.36", "pinia-plugin-persistedstate": "3.2.1", "pinyin-pro": "^3.26.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5244d70..9ab6003 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -68,6 +68,9 @@ importers: dayjs: specifier: 1.11.10 version: 1.11.10 + htmlparser2: + specifier: ^10.0.0 + version: 10.0.0 pinia: specifier: 2.0.36 version: 2.0.36(typescript@5.7.2)(vue@3.4.21(typescript@5.7.2)) @@ -3063,6 +3066,9 @@ packages: domutils@3.1.0: resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==} + domutils@3.2.2: + resolution: {integrity: sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==} + dot-prop@5.3.0: resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} engines: {node: '>=8'} @@ -3129,6 +3135,10 @@ packages: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} + entities@6.0.1: + resolution: {integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==} + engines: {node: '>=0.12'} + env-paths@2.2.1: resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} engines: {node: '>=6'} @@ -3825,6 +3835,9 @@ packages: resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==} engines: {node: '>=8'} + htmlparser2@10.0.0: + resolution: {integrity: sha512-TwAZM+zE5Tq3lrEHvOlvwgj1XLWQCtaaibSN11Q+gGBAS7Y1uZSWwXXRe4iF6OXnaq1riyQAPFOBtYc77Mxq0g==} + htmlparser2@3.10.1: resolution: {integrity: sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==} @@ -10612,6 +10625,12 @@ snapshots: domelementtype: 2.3.0 domhandler: 5.0.3 + domutils@3.2.2: + dependencies: + dom-serializer: 2.0.0 + domelementtype: 2.3.0 + domhandler: 5.0.3 + dot-prop@5.3.0: dependencies: is-obj: 2.0.0 @@ -10661,6 +10680,8 @@ snapshots: entities@4.5.0: {} + entities@6.0.1: {} + env-paths@2.2.1: {} environment@1.1.0: {} @@ -11631,6 +11652,13 @@ snapshots: html-tags@3.3.1: {} + htmlparser2@10.0.0: + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + domutils: 3.2.2 + entities: 6.0.1 + htmlparser2@3.10.1: dependencies: domelementtype: 1.3.1 diff --git a/src/components/bar/CustomTabBar.vue b/src/components/bar/CustomTabBar.vue index 99b33fc..5f49224 100644 --- a/src/components/bar/CustomTabBar.vue +++ b/src/components/bar/CustomTabBar.vue @@ -2,7 +2,7 @@ @@ -71,7 +71,6 @@ const changeItem = (item: TabesItem) => { onMounted(() => { uni.hideTabBar() - // 获取系统信息以计算安全区域 uni.getSystemInfo({ success: (res) => { @@ -162,4 +161,9 @@ defineExpose({ padding-bottom: constant(safe-area-inset-bottom); padding-bottom: env(safe-area-inset-bottom); } + +.mb-safe { + margin-bottom: constant(safe-area-inset-bottom); + margin-bottom: env(safe-area-inset-bottom); +} diff --git a/src/components/home/Consultation.vue b/src/components/home/Consultation.vue index 93e02f5..52c73d0 100644 --- a/src/components/home/Consultation.vue +++ b/src/components/home/Consultation.vue @@ -35,9 +35,7 @@ import { useCityNewTop, newsList } from '@/hooks/useCityInfoHook' import { News } from '@/types/app-type' -onShow(() => { - useCityNewTop() -}) +useCityNewTop() const handleClick = (item: News) => { uni.navigateTo({ diff --git a/src/components/navbar/Navbar.vue b/src/components/navbar/Navbar.vue index 846cb4e..e7413ca 100644 --- a/src/components/navbar/Navbar.vue +++ b/src/components/navbar/Navbar.vue @@ -1,22 +1,16 @@ @@ -95,7 +86,6 @@ const emit = defineEmits(['clickLeft']) const systemInfo = getWindowInfo() const deviceInfo = getDeviceInfo() - const statusBarHeight = systemInfo.statusBarHeight || 0 // 动态计算导航栏高度 @@ -196,8 +186,7 @@ const handleClickLeft = () => { @font-face { font-family: 'iconfont'; - src: url('data:font/woff2;charset=utf-8;base64,d09GMgABAAAAAAKYAAsAAAAABlAAAAJMAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHFQGYACCcApcdgE2AiQDCAsGAAQgBYRnBzYbmQXIHpIkBQQKkYCABBEPz2/t/XN3twEbowBkQTxQEQ1RKaKSxEOi0agkJKF5Qvj/f037IFKwlZ2dWU2tJu0EhPwHkBwgOVAclKcvAQpI/v/fz/08XECy+YBymmPQiwIcSmhAY4uSFcgJ+IaxC1zCYwLtRjWSnZ2rGgQWBowLxCPrVBBYllQqNTQ0VISaBXEHtTRNUwW4jb4f/xYEC0kqMzDx6CGrQuKXxKc6Zf7POYQgQHs5kIwjYwEoxK3G/DpRwbi0dlNwKKjAL4lf6vw/R2zVWvTPIwuiCnp2wCRUZ3yJX5pJFVDfByyAFR2AblMAX/OR3t7+zOJi8GyyfzC1uQXLZvtnk/0zyfTy+PvH0/Xp5OzR98/H797/+/fDu3d/3739+/fd+/+nmxvLc5vrS+sry2vz84tLs9Mzc4vzs9NTM/Ozc1OzM3MzU/Mz0wvTU4vTk0tTE8uTEyuT4yv/G0E3XUxv7wwNbu/s9G8fbO9v7+3sb+3ubW4dbO4dbO3vbu4dbO3JzqPFtRE4gEGAX0NBkL+hpCZALkEp5FKUQqE0NHlXJIGrDNAOcEQBCHU+kXT5QNblC7kEv1EK9Y9SB/8o7YYu2m0YXrJLouNIjQJhH+QbVkVZrUQ+YuqzUJdzxPMHhdIj0+hg4o0D8ogj5r5bSoQUxjADz+A8hBDQFEYwh3mommXTul7Vm5ZtqAqJHIdoKCDYDyQ3mCqUG1YKn5+C0s0yiJ/qKVAQedKAhg6Y3mEHJBQaWKnvLVMiiEIxGAY8Aw6HIAhAJmEIzIIOUjLTTAB1taL1QvNq+fYN7QDjcc2okeioaOmy5LFXt3QAAAAA') - format('woff2'); + src: url('data:font/woff2;charset=utf-8;base64,d09GMgABAAAAAAKYAAsAAAAABlAAAAJMAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHFQGYACCcApcdgE2AiQDCAsGAAQgBYRnBzYbmQXIHpIkBQQKkYCABBEPz2/t/XN3twEbowBkQTxQEQ1RKaKSxEOi0agkJKF5Qvj/f037IFKwlZ2dWU2tJu0EhPwHkBwgOVAclKcvAQpI/v/fz/08XECy+YBymmPQiwIcSmhAY4uSFcgJ+IaxC1zCYwLtRjWSnZ2rGgQWBowLxCPrVBBYllQqNTQ0VISaBXEHtTRNUwW4jb4f/xYEC0kqMzDx6CGrQuKXxKc6Zf7POYQgQHs5kIwjYwEoxK3G/DpRwbi0dlNwKKjAL4lf6vw/R2zVWvTPIwuiCnp2wCRUZ3yJX5pJFVDfByyAFR2AblMAX/OR3t7+zOJi8GyyfzC1uQXLZvtnk/0zyfTy+PvH0/Xp5OzR98/H797/+/fDu3d/3739+/fd+/+nmxvLc5vrS+sry2vz84tLs9Mzc4vzs9NTM/Ozc1OzM3MzU/Mz0wvTU4vTk0tTE8uTEyuT4yv/G0E3XUxv7wwNbu/s9G8fbO9v7+3sb+3ubW4dbO4dbO3vbu4dbO3JzqPFtRE4gEGAX0NBkL+hpCZALkEp5FKUQqE0NHlXJIGrDNAOcEQBCHU+kXT5QNblC7kEv1EK9Y9SB/8o7YYu2m0YXrJLouNIjQJhH+QbVkVZrUQ+YuqzUJdzxPMHhdIj0+hg4o0D8ogj5r5bSoQUxjADz+A8hBDQFEYwh3mommXTul7Vm5ZtqAqJHIdoKCDYDyQ3mCqUG1YKn5+C0s0yiJ/qKVAQedKAhg6Y3mEHJBQaWKnvLVMiiEIxGAY8Aw6HIAhAJmEIzIIOUjLTTAB1taL1QvNq+fYN7QDjcc2okeioaOmy5LFXt3QAAAAA') format('woff2'); } .back-text { diff --git a/src/login-sub/components/LoginMask.vue b/src/login-sub/components/LoginMask.vue index e7e38fd..23439af 100644 --- a/src/login-sub/components/LoginMask.vue +++ b/src/login-sub/components/LoginMask.vue @@ -101,11 +101,9 @@ const handleClickPrivacyPolicy = () => { } const getPhoneNumber = async (e: any) => { - console.log(e); - if (e.detail.errMsg == 'getPhoneNumber:ok') { const detail = e.detail - let _getPhoneInfo = { + const _getPhoneInfo = { iv: detail.iv, encryptedData: detail.encryptedData, code: detail.code, @@ -131,12 +129,11 @@ const handleClick = () => { title: '您需先同意《服务条款》和《隐私条款》', icon: 'none', }) - return } } const getUserInfo = async (_code: string) => { - let userInfo = (await useLogin()) as { code: string; errMsg: string } + const userInfo = (await useLogin()) as { code: string; errMsg: string } if (userInfo.errMsg == 'login:ok') { const resp = await getSessionKey({ JsCode: userInfo.code }) @@ -167,8 +164,8 @@ const getUserInfo = async (_code: string) => { if (resp.code === 200) { // 根据用户信息中的城市设置对应城市的分数等信息 getVolunteerInitialization().then((res) => { - let list = res.result as any[] - let code = infoData.userExtend ? infoData.userExtend.provinceCode : '' + const list = res.result as any[] + const code = infoData.userExtend ? infoData.userExtend.provinceCode : '' let addressItem: City if (code !== '') { for (let i = 0; i < list.length; i++) { diff --git a/src/login-sub/index.vue b/src/login-sub/index.vue index 267c2ff..5499e36 100644 --- a/src/login-sub/index.vue +++ b/src/login-sub/index.vue @@ -1,7 +1,7 @@ { style: { - navigationBarTitleText: '新高考选科' + navigationBarTitleText: '新高考选科', }, } @@ -16,7 +16,7 @@ mode="aspectFit" > - + + + + + + @@ -72,11 +83,9 @@ const checked = ref([]) // 是否同意条款 const getPhoneInfo = ref(null) const getPhoneNumber = async (e: any) => { - console.log(e.detail); - if (e.detail.errMsg == 'getPhoneNumber:ok') { const detail = e.detail - let _getPhoneInfo = { + const _getPhoneInfo = { iv: detail.iv, encryptedData: detail.encryptedData, code: detail.code, @@ -102,8 +111,18 @@ const handleClick = () => { title: '您需先同意《服务条款》和《隐私条款》', icon: 'none', }) - return } + // #ifdef MP-ALIPAY + dd.getAuthCode({ + corpId: '3912995586', + success: (res) => { + const { authCode } = res + console.log(res) + }, + fail: () => {}, + complete: () => {}, + }) + // #endif } // 授权完成之后返回到上一个目录去 @@ -130,7 +149,7 @@ const handleClickPrivacyPolicy = () => { const userStore = useUserStore() const getUserInfo = async (_code: string) => { - let userInfo = (await useLogin()) as { code: string; errMsg: string } + const userInfo = (await useLogin()) as { code: string; errMsg: string } if (userInfo.errMsg == 'login:ok') { const resp = await getSessionKey({ JsCode: userInfo.code }) @@ -165,8 +184,8 @@ const getUserInfo = async (_code: string) => { // 根据用户信息中的城市设置对应城市的分数等信息 getVolunteerInitialization() .then((res) => { - let list = res.result as any[] - let code = infoData.userExtend ? infoData.userExtend.provinceCode : '' + const list = res.result as any[] + const code = infoData.userExtend ? infoData.userExtend.provinceCode : '' let addressItem: City if (code !== '') { for (let i = 0; i < list.length; i++) { diff --git a/src/pages-evaluation-sub/components/navbar/Navbar.vue b/src/pages-evaluation-sub/components/navbar/Navbar.vue index 874b75f..6e47321 100644 --- a/src/pages-evaluation-sub/components/navbar/Navbar.vue +++ b/src/pages-evaluation-sub/components/navbar/Navbar.vue @@ -13,18 +13,21 @@ :class="[contentClass, fixed ? 'navbar-fixed' : '', bordered ? 'navbar-border' : '']" :style="{ backgroundColor: bgColor, - height: navHeight + 'px', + height: `${navHeight}px`, top: fixed ? (safeAreaInsetTop ? statusBarHeight : 0) + 'px' : '0', }" > - - + + + - @@ -52,9 +55,8 @@ diff --git a/src/pages-sub/home/schoolRank/index.vue b/src/pages-sub/home/schoolRank/index.vue index 0854dec..73df1da 100644 --- a/src/pages-sub/home/schoolRank/index.vue +++ b/src/pages-sub/home/schoolRank/index.vue @@ -1,7 +1,7 @@ { style: { - navigationBarTitleText: '院校排行榜' + navigationBarTitleText: '院校排行榜', }, } @@ -18,26 +18,25 @@