feat: 钉钉适配
parent
4bcb347d4a
commit
7c4cedaeff
|
|
@ -59,8 +59,4 @@
|
||||||
"package.json": "pnpm-lock.yaml,pnpm-workspace.yaml,LICENSE,.gitattributes,.gitignore,.gitpod.yml,CNAME,.npmrc,.browserslistrc",
|
"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"
|
".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
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -106,6 +106,7 @@
|
||||||
"@tanstack/vue-query": "^5.62.16",
|
"@tanstack/vue-query": "^5.62.16",
|
||||||
"abortcontroller-polyfill": "^1.7.8",
|
"abortcontroller-polyfill": "^1.7.8",
|
||||||
"dayjs": "1.11.10",
|
"dayjs": "1.11.10",
|
||||||
|
"htmlparser2": "^10.0.0",
|
||||||
"pinia": "2.0.36",
|
"pinia": "2.0.36",
|
||||||
"pinia-plugin-persistedstate": "3.2.1",
|
"pinia-plugin-persistedstate": "3.2.1",
|
||||||
"pinyin-pro": "^3.26.0",
|
"pinyin-pro": "^3.26.0",
|
||||||
|
|
|
||||||
|
|
@ -68,6 +68,9 @@ importers:
|
||||||
dayjs:
|
dayjs:
|
||||||
specifier: 1.11.10
|
specifier: 1.11.10
|
||||||
version: 1.11.10
|
version: 1.11.10
|
||||||
|
htmlparser2:
|
||||||
|
specifier: ^10.0.0
|
||||||
|
version: 10.0.0
|
||||||
pinia:
|
pinia:
|
||||||
specifier: 2.0.36
|
specifier: 2.0.36
|
||||||
version: 2.0.36(typescript@5.7.2)(vue@3.4.21(typescript@5.7.2))
|
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:
|
domutils@3.1.0:
|
||||||
resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==}
|
resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==}
|
||||||
|
|
||||||
|
domutils@3.2.2:
|
||||||
|
resolution: {integrity: sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==}
|
||||||
|
|
||||||
dot-prop@5.3.0:
|
dot-prop@5.3.0:
|
||||||
resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==}
|
resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==}
|
||||||
engines: {node: '>=8'}
|
engines: {node: '>=8'}
|
||||||
|
|
@ -3129,6 +3135,10 @@ packages:
|
||||||
resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==}
|
resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==}
|
||||||
engines: {node: '>=0.12'}
|
engines: {node: '>=0.12'}
|
||||||
|
|
||||||
|
entities@6.0.1:
|
||||||
|
resolution: {integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==}
|
||||||
|
engines: {node: '>=0.12'}
|
||||||
|
|
||||||
env-paths@2.2.1:
|
env-paths@2.2.1:
|
||||||
resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==}
|
resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==}
|
||||||
engines: {node: '>=6'}
|
engines: {node: '>=6'}
|
||||||
|
|
@ -3825,6 +3835,9 @@ packages:
|
||||||
resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==}
|
resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==}
|
||||||
engines: {node: '>=8'}
|
engines: {node: '>=8'}
|
||||||
|
|
||||||
|
htmlparser2@10.0.0:
|
||||||
|
resolution: {integrity: sha512-TwAZM+zE5Tq3lrEHvOlvwgj1XLWQCtaaibSN11Q+gGBAS7Y1uZSWwXXRe4iF6OXnaq1riyQAPFOBtYc77Mxq0g==}
|
||||||
|
|
||||||
htmlparser2@3.10.1:
|
htmlparser2@3.10.1:
|
||||||
resolution: {integrity: sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==}
|
resolution: {integrity: sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==}
|
||||||
|
|
||||||
|
|
@ -10612,6 +10625,12 @@ snapshots:
|
||||||
domelementtype: 2.3.0
|
domelementtype: 2.3.0
|
||||||
domhandler: 5.0.3
|
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:
|
dot-prop@5.3.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
is-obj: 2.0.0
|
is-obj: 2.0.0
|
||||||
|
|
@ -10661,6 +10680,8 @@ snapshots:
|
||||||
|
|
||||||
entities@4.5.0: {}
|
entities@4.5.0: {}
|
||||||
|
|
||||||
|
entities@6.0.1: {}
|
||||||
|
|
||||||
env-paths@2.2.1: {}
|
env-paths@2.2.1: {}
|
||||||
|
|
||||||
environment@1.1.0: {}
|
environment@1.1.0: {}
|
||||||
|
|
@ -11631,6 +11652,13 @@ snapshots:
|
||||||
|
|
||||||
html-tags@3.3.1: {}
|
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:
|
htmlparser2@3.10.1:
|
||||||
dependencies:
|
dependencies:
|
||||||
domelementtype: 1.3.1
|
domelementtype: 1.3.1
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
<!-- TabBar占位块 - 与TabBar高度一致 -->
|
<!-- TabBar占位块 - 与TabBar高度一致 -->
|
||||||
<view
|
<view
|
||||||
v-if="showPlaceholder"
|
v-if="showPlaceholder"
|
||||||
class="tabbar-placeholder"
|
class="tabbar-placeholder mb-safe"
|
||||||
:style="{ height: `${tabbarTotalHeight}px` }"
|
:style="{ height: `${tabbarTotalHeight}px` }"
|
||||||
></view>
|
></view>
|
||||||
|
|
||||||
|
|
@ -71,7 +71,6 @@ const changeItem = (item: TabesItem) => {
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
uni.hideTabBar()
|
uni.hideTabBar()
|
||||||
|
|
||||||
// 获取系统信息以计算安全区域
|
// 获取系统信息以计算安全区域
|
||||||
uni.getSystemInfo({
|
uni.getSystemInfo({
|
||||||
success: (res) => {
|
success: (res) => {
|
||||||
|
|
@ -162,4 +161,9 @@ defineExpose({
|
||||||
padding-bottom: constant(safe-area-inset-bottom);
|
padding-bottom: constant(safe-area-inset-bottom);
|
||||||
padding-bottom: env(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);
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
||||||
|
|
@ -35,9 +35,7 @@
|
||||||
import { useCityNewTop, newsList } from '@/hooks/useCityInfoHook'
|
import { useCityNewTop, newsList } from '@/hooks/useCityInfoHook'
|
||||||
import { News } from '@/types/app-type'
|
import { News } from '@/types/app-type'
|
||||||
|
|
||||||
onShow(() => {
|
useCityNewTop()
|
||||||
useCityNewTop()
|
|
||||||
})
|
|
||||||
|
|
||||||
const handleClick = (item: News) => {
|
const handleClick = (item: News) => {
|
||||||
uni.navigateTo({
|
uni.navigateTo({
|
||||||
|
|
|
||||||
|
|
@ -1,22 +1,16 @@
|
||||||
<template>
|
<template>
|
||||||
<view class="navbar">
|
<view class="navbar">
|
||||||
<!-- 状态栏占位 -->
|
<!-- 状态栏占位 -->
|
||||||
<view
|
<view v-if="safeAreaInsetTop" class="status-bar"
|
||||||
v-if="safeAreaInsetTop"
|
:style="{ height: statusBarHeight + 'px', backgroundColor: bgColor }"></view>
|
||||||
class="status-bar"
|
|
||||||
:style="{ height: statusBarHeight + 'px', backgroundColor: bgColor }"
|
|
||||||
></view>
|
|
||||||
|
|
||||||
<!-- 导航栏主体 -->
|
<!-- 导航栏主体 -->
|
||||||
<view
|
<view class="navbar-content" :class="[contentClass, fixed ? 'navbar-fixed' : '', bordered ? 'navbar-border' : '']"
|
||||||
class="navbar-content"
|
|
||||||
:class="[contentClass, fixed ? 'navbar-fixed' : '', bordered ? 'navbar-border' : '']"
|
|
||||||
:style="{
|
:style="{
|
||||||
backgroundColor: bgColor,
|
backgroundColor: bgColor,
|
||||||
height: navHeight + 'px',
|
height: navHeight + 'px',
|
||||||
top: fixed ? (safeAreaInsetTop ? statusBarHeight : 0) + 'px' : '0',
|
top: fixed ? (safeAreaInsetTop ? statusBarHeight : 0) + 'px' : '0',
|
||||||
}"
|
}">
|
||||||
>
|
|
||||||
<!-- 左侧区域 -->
|
<!-- 左侧区域 -->
|
||||||
<view class="navbar-left" @click="handleClickLeft">
|
<view class="navbar-left" @click="handleClickLeft">
|
||||||
<view v-if="leftArrow" class="back-icon">
|
<view v-if="leftArrow" class="back-icon">
|
||||||
|
|
@ -39,13 +33,10 @@
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<!-- 占位元素 -->
|
<!-- 占位元素 -->
|
||||||
<view
|
<view v-if="placeholder && fixed" :style="{
|
||||||
v-if="placeholder && fixed"
|
height: `${navHeight}px`,
|
||||||
:style="{
|
backgroundColor: bgColor,
|
||||||
height: `${navHeight}px`,
|
}"></view>
|
||||||
backgroundColor: bgColor,
|
|
||||||
}"
|
|
||||||
></view>
|
|
||||||
<slot name="background"></slot>
|
<slot name="background"></slot>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|
@ -95,7 +86,6 @@ const emit = defineEmits(['clickLeft'])
|
||||||
const systemInfo = getWindowInfo()
|
const systemInfo = getWindowInfo()
|
||||||
const deviceInfo = getDeviceInfo()
|
const deviceInfo = getDeviceInfo()
|
||||||
|
|
||||||
|
|
||||||
const statusBarHeight = systemInfo.statusBarHeight || 0
|
const statusBarHeight = systemInfo.statusBarHeight || 0
|
||||||
|
|
||||||
// 动态计算导航栏高度
|
// 动态计算导航栏高度
|
||||||
|
|
@ -196,8 +186,7 @@ const handleClickLeft = () => {
|
||||||
|
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'iconfont';
|
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')
|
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');
|
||||||
format('woff2');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.back-text {
|
.back-text {
|
||||||
|
|
|
||||||
|
|
@ -101,11 +101,9 @@ const handleClickPrivacyPolicy = () => {
|
||||||
}
|
}
|
||||||
|
|
||||||
const getPhoneNumber = async (e: any) => {
|
const getPhoneNumber = async (e: any) => {
|
||||||
console.log(e);
|
|
||||||
|
|
||||||
if (e.detail.errMsg == 'getPhoneNumber:ok') {
|
if (e.detail.errMsg == 'getPhoneNumber:ok') {
|
||||||
const detail = e.detail
|
const detail = e.detail
|
||||||
let _getPhoneInfo = {
|
const _getPhoneInfo = {
|
||||||
iv: detail.iv,
|
iv: detail.iv,
|
||||||
encryptedData: detail.encryptedData,
|
encryptedData: detail.encryptedData,
|
||||||
code: detail.code,
|
code: detail.code,
|
||||||
|
|
@ -131,12 +129,11 @@ const handleClick = () => {
|
||||||
title: '您需先同意《服务条款》和《隐私条款》',
|
title: '您需先同意《服务条款》和《隐私条款》',
|
||||||
icon: 'none',
|
icon: 'none',
|
||||||
})
|
})
|
||||||
return
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const getUserInfo = async (_code: string) => {
|
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') {
|
if (userInfo.errMsg == 'login:ok') {
|
||||||
const resp = await getSessionKey({ JsCode: userInfo.code })
|
const resp = await getSessionKey({ JsCode: userInfo.code })
|
||||||
|
|
@ -167,8 +164,8 @@ const getUserInfo = async (_code: string) => {
|
||||||
if (resp.code === 200) {
|
if (resp.code === 200) {
|
||||||
// 根据用户信息中的城市设置对应城市的分数等信息
|
// 根据用户信息中的城市设置对应城市的分数等信息
|
||||||
getVolunteerInitialization().then((res) => {
|
getVolunteerInitialization().then((res) => {
|
||||||
let list = res.result as any[]
|
const list = res.result as any[]
|
||||||
let code = infoData.userExtend ? infoData.userExtend.provinceCode : ''
|
const code = infoData.userExtend ? infoData.userExtend.provinceCode : ''
|
||||||
let addressItem: City
|
let addressItem: City
|
||||||
if (code !== '') {
|
if (code !== '') {
|
||||||
for (let i = 0; i < list.length; i++) {
|
for (let i = 0; i < list.length; i++) {
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
<route lang="json5" type="page">
|
<route lang="json5" type="page">
|
||||||
{
|
{
|
||||||
style: {
|
style: {
|
||||||
navigationBarTitleText: '新高考选科'
|
navigationBarTitleText: '新高考选科',
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
</route>
|
</route>
|
||||||
|
|
@ -16,7 +16,7 @@
|
||||||
mode="aspectFit"
|
mode="aspectFit"
|
||||||
></image>
|
></image>
|
||||||
</view>
|
</view>
|
||||||
|
<!-- #ifdef MP-WEIXIN -->
|
||||||
<button
|
<button
|
||||||
class="w-[493rpx]! mb-[40rpx] h-[88rpx]! rounded-[44rpx] text-[32rpx] text-white flex items-center justify-center"
|
class="w-[493rpx]! mb-[40rpx] h-[88rpx]! rounded-[44rpx] text-[32rpx] text-white flex items-center justify-center"
|
||||||
:class="checked.length > 0 ? 'bg-[#1580FF]' : 'bg-[#BFBFBF]'"
|
:class="checked.length > 0 ? 'bg-[#1580FF]' : 'bg-[#BFBFBF]'"
|
||||||
|
|
@ -27,6 +27,17 @@
|
||||||
>
|
>
|
||||||
一键登录
|
一键登录
|
||||||
</button>
|
</button>
|
||||||
|
<!-- #endif -->
|
||||||
|
|
||||||
|
<!-- #ifdef MP-ALIPAY -->
|
||||||
|
<button
|
||||||
|
class="w-[493rpx]! mb-[40rpx] h-[88rpx]! rounded-[44rpx] text-[32rpx] text-white flex items-center justify-center"
|
||||||
|
:class="checked.length > 0 ? 'bg-[#1580FF]' : 'bg-[#BFBFBF]'"
|
||||||
|
@click.stop="handleClick"
|
||||||
|
>
|
||||||
|
一键登录
|
||||||
|
</button>
|
||||||
|
<!-- #endif -->
|
||||||
|
|
||||||
<view class="flex items-center flex-nowrap">
|
<view class="flex items-center flex-nowrap">
|
||||||
<CheckboxGroup v-model="checked" class="check-class mr-[10rpx]">
|
<CheckboxGroup v-model="checked" class="check-class mr-[10rpx]">
|
||||||
|
|
@ -72,11 +83,9 @@ const checked = ref([]) // 是否同意条款
|
||||||
const getPhoneInfo = ref(null)
|
const getPhoneInfo = ref(null)
|
||||||
|
|
||||||
const getPhoneNumber = async (e: any) => {
|
const getPhoneNumber = async (e: any) => {
|
||||||
console.log(e.detail);
|
|
||||||
|
|
||||||
if (e.detail.errMsg == 'getPhoneNumber:ok') {
|
if (e.detail.errMsg == 'getPhoneNumber:ok') {
|
||||||
const detail = e.detail
|
const detail = e.detail
|
||||||
let _getPhoneInfo = {
|
const _getPhoneInfo = {
|
||||||
iv: detail.iv,
|
iv: detail.iv,
|
||||||
encryptedData: detail.encryptedData,
|
encryptedData: detail.encryptedData,
|
||||||
code: detail.code,
|
code: detail.code,
|
||||||
|
|
@ -102,8 +111,18 @@ const handleClick = () => {
|
||||||
title: '您需先同意《服务条款》和《隐私条款》',
|
title: '您需先同意《服务条款》和《隐私条款》',
|
||||||
icon: 'none',
|
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 userStore = useUserStore()
|
||||||
|
|
||||||
const getUserInfo = async (_code: string) => {
|
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') {
|
if (userInfo.errMsg == 'login:ok') {
|
||||||
const resp = await getSessionKey({ JsCode: userInfo.code })
|
const resp = await getSessionKey({ JsCode: userInfo.code })
|
||||||
|
|
@ -165,8 +184,8 @@ const getUserInfo = async (_code: string) => {
|
||||||
// 根据用户信息中的城市设置对应城市的分数等信息
|
// 根据用户信息中的城市设置对应城市的分数等信息
|
||||||
getVolunteerInitialization()
|
getVolunteerInitialization()
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
let list = res.result as any[]
|
const list = res.result as any[]
|
||||||
let code = infoData.userExtend ? infoData.userExtend.provinceCode : ''
|
const code = infoData.userExtend ? infoData.userExtend.provinceCode : ''
|
||||||
let addressItem: City
|
let addressItem: City
|
||||||
if (code !== '') {
|
if (code !== '') {
|
||||||
for (let i = 0; i < list.length; i++) {
|
for (let i = 0; i < list.length; i++) {
|
||||||
|
|
|
||||||
|
|
@ -13,18 +13,21 @@
|
||||||
:class="[contentClass, fixed ? 'navbar-fixed' : '', bordered ? 'navbar-border' : '']"
|
:class="[contentClass, fixed ? 'navbar-fixed' : '', bordered ? 'navbar-border' : '']"
|
||||||
:style="{
|
:style="{
|
||||||
backgroundColor: bgColor,
|
backgroundColor: bgColor,
|
||||||
height: navHeight + 'px',
|
height: `${navHeight}px`,
|
||||||
top: fixed ? (safeAreaInsetTop ? statusBarHeight : 0) + 'px' : '0',
|
top: fixed ? (safeAreaInsetTop ? statusBarHeight : 0) + 'px' : '0',
|
||||||
}"
|
}"
|
||||||
>
|
>
|
||||||
<!-- 左侧区域 -->
|
<view
|
||||||
<view class="navbar-left" @click="handleClickLeft">
|
:class="`navbar-left ${leftWidthMin ? 'min-w-[48rpx]' : ''} min-w-[48rpx]`"
|
||||||
|
@click="handleClickLeft"
|
||||||
|
>
|
||||||
|
<!-- #ifndef MP-ALIPAY -->
|
||||||
<view v-if="leftArrow" class="back-icon">
|
<view v-if="leftArrow" class="back-icon">
|
||||||
<view class="i-carbon-chevron-left text-[40rpx] text-[#333] font-semibold icon-class" />
|
<view class="i-carbon-chevron-left text-[40rpx] text-[#333] font-semibold icon-class" />
|
||||||
</view>
|
</view>
|
||||||
|
<!-- #endif -->
|
||||||
<slot name="left"></slot>
|
<slot name="left"></slot>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<!-- 中间标题区域 -->
|
<!-- 中间标题区域 -->
|
||||||
<view class="navbar-title">
|
<view class="navbar-title">
|
||||||
<slot name="title">
|
<slot name="title">
|
||||||
|
|
@ -52,9 +55,8 @@
|
||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { getDeviceInfo, getWindowInfo } from '@/utils/tools'
|
import { getDeviceInfo, getWindowInfo } from '@/utils/tools'
|
||||||
import { computed } from 'vue'
|
|
||||||
|
|
||||||
const props = defineProps({
|
defineProps({
|
||||||
title: {
|
title: {
|
||||||
type: String,
|
type: String,
|
||||||
default: '',
|
default: '',
|
||||||
|
|
@ -87,13 +89,18 @@ const props = defineProps({
|
||||||
type: String,
|
type: String,
|
||||||
default: 'justify-between',
|
default: 'justify-between',
|
||||||
},
|
},
|
||||||
|
leftWidthMin: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false,
|
||||||
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
const emit = defineEmits(['clickLeft'])
|
const emit = defineEmits(['clickLeft'])
|
||||||
|
|
||||||
// 获取系统信息
|
// 获取系统信息
|
||||||
const systemInfo = getWindowInfo()
|
|
||||||
const deviceInfo = getDeviceInfo()
|
const deviceInfo = getDeviceInfo()
|
||||||
|
const systemInfo = getWindowInfo()
|
||||||
|
|
||||||
const statusBarHeight = systemInfo.statusBarHeight || 0
|
const statusBarHeight = systemInfo.statusBarHeight || 0
|
||||||
|
|
||||||
// 动态计算导航栏高度
|
// 动态计算导航栏高度
|
||||||
|
|
|
||||||
|
|
@ -26,10 +26,12 @@
|
||||||
<view class="overflow-auto relative mt-[40rpx] flex-1 pb-[20rpx]">
|
<view class="overflow-auto relative mt-[40rpx] flex-1 pb-[20rpx]">
|
||||||
<!-- 顶部卡片 -->
|
<!-- 顶部卡片 -->
|
||||||
<view class="flex flex-col pt-[32rpx] px-[84rpx] h-[244rpx] mb-[-116rpx] font-700">
|
<view class="flex flex-col pt-[32rpx] px-[84rpx] h-[244rpx] mb-[-116rpx] font-700">
|
||||||
<image
|
<view class="header-bg">
|
||||||
src="https://api.static.ycymedu.com/src/images/evaluate/bg.png"
|
<image
|
||||||
class="header-bg"
|
src="https://api.static.ycymedu.com/src/images/evaluate/bg.png"
|
||||||
/>
|
class="w-full h-full"
|
||||||
|
/>
|
||||||
|
</view>
|
||||||
<text class="text-[#333] text-[28rpx] mb-[14rpx] z-2">您的性格类型为</text>
|
<text class="text-[#333] text-[28rpx] mb-[14rpx] z-2">您的性格类型为</text>
|
||||||
<text class="text-[#117CFC] text-[36rpx] z-2">{{ studyRecord.title }}</text>
|
<text class="text-[#117CFC] text-[36rpx] z-2">{{ studyRecord.title }}</text>
|
||||||
</view>
|
</view>
|
||||||
|
|
|
||||||
|
|
@ -1,22 +1,23 @@
|
||||||
<route lang="json5" type="page">
|
<route lang="json5" type="page">
|
||||||
{
|
{
|
||||||
style: {
|
style: {
|
||||||
navigationBarTitleText: '兴趣测评报告'
|
navigationBarTitleText: '兴趣测评报告',
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
</route>
|
</route>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<view class="flex flex-col h-screen relative custom-bg">
|
<view class="flex flex-col h-screen relative custom-bg">
|
||||||
|
|
||||||
<view class="flex-1 overflow-auto relative mt-[40rpx]">
|
<view class="flex-1 overflow-auto relative mt-[40rpx]">
|
||||||
<view class="overflow-auto relative mt-[40rpx] flex-1 pb-[20rpx]">
|
<view class="overflow-auto relative mt-[40rpx] flex-1 pb-[20rpx]">
|
||||||
<!-- 顶部卡片 -->
|
<!-- 顶部卡片 -->
|
||||||
<view class="flex flex-col pt-[32rpx] px-[84rpx] h-[244rpx] mb-[-116rpx] font-700">
|
<view class="flex flex-col pt-[32rpx] px-[84rpx] h-[244rpx] mb-[-116rpx] font-700">
|
||||||
<image
|
<view class="header-bg">
|
||||||
src="https://api.static.ycymedu.com/src/images/evaluate/bg.png"
|
<image
|
||||||
class="header-bg"
|
src="https://api.static.ycymedu.com/src/images/evaluate/bg.png"
|
||||||
/>
|
class="w-full h-full"
|
||||||
|
/>
|
||||||
|
</view>
|
||||||
<text class="text-[#333] text-[28rpx] mb-[14rpx] z-2">您的兴趣类型为</text>
|
<text class="text-[#333] text-[28rpx] mb-[14rpx] z-2">您的兴趣类型为</text>
|
||||||
<text class="text-[#117CFC] text-[36rpx] z-2">{{ studyRecord.title }}</text>
|
<text class="text-[#117CFC] text-[36rpx] z-2">{{ studyRecord.title }}</text>
|
||||||
</view>
|
</view>
|
||||||
|
|
|
||||||
|
|
@ -26,10 +26,12 @@
|
||||||
<view class="overflow-auto relative mt-[40rpx] flex-1 pb-[20rpx]">
|
<view class="overflow-auto relative mt-[40rpx] flex-1 pb-[20rpx]">
|
||||||
<!-- 顶部卡片 -->
|
<!-- 顶部卡片 -->
|
||||||
<view class="flex flex-col pt-[32rpx] px-[84rpx] h-[244rpx] mb-[-116rpx] font-700">
|
<view class="flex flex-col pt-[32rpx] px-[84rpx] h-[244rpx] mb-[-116rpx] font-700">
|
||||||
<image
|
<view class="header-bg">
|
||||||
src="https://api.static.ycymedu.com/src/images/evaluate/bg.png"
|
<image
|
||||||
class="header-bg"
|
src="https://api.static.ycymedu.com/src/images/evaluate/bg.png"
|
||||||
/>
|
class="w-full h-full"
|
||||||
|
/>
|
||||||
|
</view>
|
||||||
<text class="text-[#333] text-[28rpx] mb-[14rpx] z-2">您的职业价值观</text>
|
<text class="text-[#333] text-[28rpx] mb-[14rpx] z-2">您的职业价值观</text>
|
||||||
<text class="text-[#117CFC] text-[40rpx] z-2">{{ studyRecord.tag }}</text>
|
<text class="text-[#117CFC] text-[40rpx] z-2">{{ studyRecord.tag }}</text>
|
||||||
</view>
|
</view>
|
||||||
|
|
|
||||||
|
|
@ -8,10 +8,12 @@
|
||||||
<view
|
<view
|
||||||
class="rounded-[8rpx] border-[#1580FF] border-[2rpx] border-solid w-full py-[14rpx] flex items-center justify-center"
|
class="rounded-[8rpx] border-[#1580FF] border-[2rpx] border-solid w-full py-[14rpx] flex items-center justify-center"
|
||||||
>
|
>
|
||||||
<image
|
<view class="w-[52rpx] h-[52rpx] mr-[10rpx]">
|
||||||
src="https://api.static.ycymedu.com/images/btn-bottom.png"
|
<image
|
||||||
class="w-[52rpx] h-[52rpx] mr-[10rpx]"
|
src="https://api.static.ycymedu.com/images/btn-bottom.png"
|
||||||
></image>
|
class="w-[52rpx] h-[52rpx]"
|
||||||
|
></image>
|
||||||
|
</view>
|
||||||
<text class="text-[#1580FF] text-[32rpx] font-700">智能AI顾问</text>
|
<text class="text-[#1580FF] text-[32rpx] font-700">智能AI顾问</text>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
|
||||||
|
|
@ -17,11 +17,13 @@
|
||||||
v-for="(person, index) in personList"
|
v-for="(person, index) in personList"
|
||||||
:key="index"
|
:key="index"
|
||||||
>
|
>
|
||||||
<image
|
<view class="w-[120rpx] h-[120rpx]">
|
||||||
:src="person.avatarUrl"
|
<image
|
||||||
class="w-[120rpx] h-[120rpx] rounded-full"
|
:src="person.avatarUrl"
|
||||||
mode="aspectFill"
|
class="w-[120rpx] h-[120rpx] rounded-full"
|
||||||
></image>
|
mode="aspectFill"
|
||||||
|
></image>
|
||||||
|
</view>
|
||||||
<text class="mt-[10rpx] text-[26rpx] text-[28rpx] font-normal text-center">
|
<text class="mt-[10rpx] text-[26rpx] text-[28rpx] font-normal text-center">
|
||||||
{{ person.nickName }}
|
{{ person.nickName }}
|
||||||
</text>
|
</text>
|
||||||
|
|
|
||||||
|
|
@ -13,11 +13,13 @@
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<view class="relative mt-[68rpx] bg-[#F5FAFF]">
|
<view class="relative mt-[68rpx] bg-[#F5FAFF]">
|
||||||
<image
|
<view class="absolute top-[-9rpx] left-[20rpx] w-[180rpx] h-[52rpx]">
|
||||||
src="https://api.static.ycymedu.com/src/images/home/test-icon.png"
|
<image
|
||||||
mode="scaleToFill"
|
src="https://api.static.ycymedu.com/src/images/home/test-icon.png"
|
||||||
class="w-[180rpx] h-[52rpx] absolute top-[-9rpx] left-[20rpx]"
|
mode="scaleToFill"
|
||||||
/>
|
class="w-[180rpx] h-[52rpx]"
|
||||||
|
/>
|
||||||
|
</view>
|
||||||
<view class="px-[20rpx] pb-[20rpx] pt-[58rpx] text-[#333] text-[26rpx]">
|
<view class="px-[20rpx] pb-[20rpx] pt-[58rpx] text-[#333] text-[26rpx]">
|
||||||
{{ description }}
|
{{ description }}
|
||||||
</view>
|
</view>
|
||||||
|
|
|
||||||
|
|
@ -2,11 +2,13 @@
|
||||||
<view class="flex flex-col bg-white rounded-[24rpx] p-[30rpx] gap-[40rpx]">
|
<view class="flex flex-col bg-white rounded-[24rpx] p-[30rpx] gap-[40rpx]">
|
||||||
<view class="flex flex-col gap-[12rpx]">
|
<view class="flex flex-col gap-[12rpx]">
|
||||||
<view class="flex items-center gap-[10rpx]">
|
<view class="flex items-center gap-[10rpx]">
|
||||||
<image
|
<view class="w-[38rpx] h-[38rpx]">
|
||||||
src="https://api.static.ycymedu.com/src/images/home/life-icon.png"
|
<image
|
||||||
mode="scaleToFill"
|
src="https://api.static.ycymedu.com/src/images/home/life-icon.png"
|
||||||
class="w-[38rpx] h-[38rpx]"
|
mode="scaleToFill"
|
||||||
/>
|
class="w-[38rpx] h-[38rpx]"
|
||||||
|
/>
|
||||||
|
</view>
|
||||||
<text class="text-[32rpx] text-[#000] font-700">生活建议</text>
|
<text class="text-[32rpx] text-[#000] font-700">生活建议</text>
|
||||||
</view>
|
</view>
|
||||||
<view class="text-[26rpx] text-[#666] font-400">
|
<view class="text-[26rpx] text-[#666] font-400">
|
||||||
|
|
@ -16,11 +18,13 @@
|
||||||
</view>
|
</view>
|
||||||
<view class="flex flex-col gap-[12rpx]">
|
<view class="flex flex-col gap-[12rpx]">
|
||||||
<view class="flex items-center gap-[10rpx]">
|
<view class="flex items-center gap-[10rpx]">
|
||||||
<image
|
<view class="w-[38rpx] h-[38rpx]">
|
||||||
src="https://api.static.ycymedu.com/src/images/home/diet-icon.png"
|
<image
|
||||||
mode="scaleToFill"
|
src="https://api.static.ycymedu.com/src/images/home/diet-icon.png"
|
||||||
class="w-[38rpx] h-[38rpx]"
|
mode="scaleToFill"
|
||||||
/>
|
class="w-[38rpx] h-[38rpx]"
|
||||||
|
/>
|
||||||
|
</view>
|
||||||
<text class="text-[32rpx] text-[#000] font-700">饮食建议</text>
|
<text class="text-[32rpx] text-[#000] font-700">饮食建议</text>
|
||||||
</view>
|
</view>
|
||||||
<view class="text-[26rpx] text-[#666] font-400">
|
<view class="text-[26rpx] text-[#666] font-400">
|
||||||
|
|
@ -30,11 +34,13 @@
|
||||||
</view>
|
</view>
|
||||||
<view class="flex flex-col gap-[12rpx]">
|
<view class="flex flex-col gap-[12rpx]">
|
||||||
<view class="flex items-center gap-[10rpx]">
|
<view class="flex items-center gap-[10rpx]">
|
||||||
<image
|
<view class="w-[38rpx] h-[38rpx]">
|
||||||
src="https://api.static.ycymedu.com/src/images/home/learn-icon.png"
|
<image
|
||||||
mode="scaleToFill"
|
src="https://api.static.ycymedu.com/src/images/home/learn-icon.png"
|
||||||
class="w-[38rpx] h-[38rpx]"
|
mode="scaleToFill"
|
||||||
/>
|
class="w-[38rpx] h-[38rpx]"
|
||||||
|
/>
|
||||||
|
</view>
|
||||||
<text class="text-[32rpx] text-[#000] font-700">学习建议</text>
|
<text class="text-[32rpx] text-[#000] font-700">学习建议</text>
|
||||||
</view>
|
</view>
|
||||||
<view class="text-[26rpx] text-[#666] font-400">
|
<view class="text-[26rpx] text-[#666] font-400">
|
||||||
|
|
|
||||||
|
|
@ -4,11 +4,13 @@
|
||||||
<LEchart ref="echart" :customStyle="`z-index:1;`"></LEchart>
|
<LEchart ref="echart" :customStyle="`z-index:1;`"></LEchart>
|
||||||
</view>
|
</view>
|
||||||
<view class="relative mt-[68rpx] bg-[#F5FAFF] mx-[20rpx] px-[24rpx] pt-[58rpx] pb-[20rpx]">
|
<view class="relative mt-[68rpx] bg-[#F5FAFF] mx-[20rpx] px-[24rpx] pt-[58rpx] pb-[20rpx]">
|
||||||
<image
|
<view class="w-[180rpx] h-[52rpx] absolute top-[-9rpx] left-[20rpx]">
|
||||||
src="https://api.static.ycymedu.com/src/images/home/test-icon.png"
|
<image
|
||||||
mode="scaleToFill"
|
src="https://api.static.ycymedu.com/src/images/home/test-icon.png"
|
||||||
class="w-[180rpx] h-[52rpx] absolute top-[-9rpx] left-[20rpx]"
|
mode="scaleToFill"
|
||||||
/>
|
class="w-[180rpx] h-[52rpx]"
|
||||||
|
/>
|
||||||
|
</view>
|
||||||
<view v-for="(item, index) in innerParsing" class="text-[26rpx] mb-[20rpx]" :key="index">
|
<view v-for="(item, index) in innerParsing" class="text-[26rpx] mb-[20rpx]" :key="index">
|
||||||
<text class="text-[#000] font-700">{{ item.title }}: </text>
|
<text class="text-[#000] font-700">{{ item.title }}: </text>
|
||||||
<text class="text-[#3d3d3d] font-400">{{ item.desc }}</text>
|
<text class="text-[#3d3d3d] font-400">{{ item.desc }}</text>
|
||||||
|
|
@ -57,7 +59,6 @@ watch(
|
||||||
_val.tags.forEach((item) => {
|
_val.tags.forEach((item) => {
|
||||||
if (item.title === '策略偏好') {
|
if (item.title === '策略偏好') {
|
||||||
policy.value = item
|
policy.value = item
|
||||||
return
|
|
||||||
} else {
|
} else {
|
||||||
innerParsing.value.push(...item.items)
|
innerParsing.value.push(...item.items)
|
||||||
}
|
}
|
||||||
|
|
@ -89,7 +90,7 @@ watch(
|
||||||
// 处理文字换行
|
// 处理文字换行
|
||||||
const maxLength = 4
|
const maxLength = 4
|
||||||
const result = []
|
const result = []
|
||||||
let _val = value.split(',')
|
const _val = value.split(',')
|
||||||
for (let i = 0; i < _val[0].length; i += maxLength) {
|
for (let i = 0; i < _val[0].length; i += maxLength) {
|
||||||
result.push(value.slice(i, i + maxLength))
|
result.push(value.slice(i, i + maxLength))
|
||||||
}
|
}
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -12,7 +12,9 @@
|
||||||
<view class="uni-collapse-item__title-wrap">
|
<view class="uni-collapse-item__title-wrap">
|
||||||
<slot name="title" :expanded="isOpen">
|
<slot name="title" :expanded="isOpen">
|
||||||
<view class="uni-collapse-item__title-box" :class="{ 'is-disabled': disabled }">
|
<view class="uni-collapse-item__title-box" :class="{ 'is-disabled': disabled }">
|
||||||
<image v-if="thumb" :src="thumb" class="uni-collapse-item__title-img" />
|
<view class="uni-collapse-item__title-img">
|
||||||
|
<image v-if="thumb" :src="thumb" class="uni-collapse-item__title-img" />
|
||||||
|
</view>
|
||||||
<text class="uni-collapse-item__title-text">{{ title }}</text>
|
<text class="uni-collapse-item__title-text">{{ title }}</text>
|
||||||
</view>
|
</view>
|
||||||
</slot>
|
</slot>
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<view class="flex items-center rounded-[48rpx] bg-[#F7F7F7] px-[24rpx] py-[12rpx] ml-[32rpx]">
|
<view class="flex items-center rounded-[48rpx] bg-[#F7F7F7] px-[24rpx] py-[12rpx] ml-[12rpx]">
|
||||||
<view class="i-carbon-search text-[#999]"></view>
|
<view class="i-carbon-search text-[#999]"></view>
|
||||||
<input
|
<input
|
||||||
v-model="searchValue"
|
v-model="searchValue"
|
||||||
|
|
|
||||||
|
|
@ -11,11 +11,13 @@
|
||||||
/>
|
/>
|
||||||
分
|
分
|
||||||
</view>
|
</view>
|
||||||
<image
|
<view class="mx-[20rpx] flex-1 h-[20rpx]">
|
||||||
src="https://api-static-zhiy.oss-cn-shanghai.aliyuncs.com/images/qujian.png"
|
<image
|
||||||
mode="scaleToFill"
|
src="https://api-static-zhiy.oss-cn-shanghai.aliyuncs.com/images/qujian.png"
|
||||||
class="mx-[20rpx] flex-1 h-[20rpx]"
|
mode="scaleToFill"
|
||||||
/>
|
class="h-[20rpx]"
|
||||||
|
/>
|
||||||
|
</view>
|
||||||
<view
|
<view
|
||||||
class="w-[84rpx] h-[36rpx] rounded-full border-[#187CFF] border-solid border-[2rpx] flex items-center px-[18rpx] py-[10rpx] text-[#1580FF] text-[26rpx] bg-[rgba(21,128,255,0.1)]"
|
class="w-[84rpx] h-[36rpx] rounded-full border-[#187CFF] border-solid border-[2rpx] flex items-center px-[18rpx] py-[10rpx] text-[#1580FF] text-[26rpx] bg-[rgba(21,128,255,0.1)]"
|
||||||
>
|
>
|
||||||
|
|
@ -92,7 +94,7 @@ const handleNumberChange = () => {
|
||||||
}
|
}
|
||||||
|
|
||||||
const handleRightThumbTouchEnd = () => {
|
const handleRightThumbTouchEnd = () => {
|
||||||
let changeValue = [currentLeftValue.value, currentRightValue.value]
|
const changeValue = [currentLeftValue.value, currentRightValue.value]
|
||||||
emits('change', changeValue)
|
emits('change', changeValue)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -17,14 +17,17 @@
|
||||||
top: fixed ? (safeAreaInsetTop ? statusBarHeight : 0) + 'px' : '0',
|
top: fixed ? (safeAreaInsetTop ? statusBarHeight : 0) + 'px' : '0',
|
||||||
}"
|
}"
|
||||||
>
|
>
|
||||||
<!-- 左侧区域 -->
|
<view
|
||||||
<view :class="`navbar-left ${leftWidthMin ? 'w-m-[100rpx]' : ''}`" @click="handleClickLeft">
|
:class="`navbar-left ${leftWidthMin ? 'min-w-[48rpx]' : ''} min-w-[48rpx]`"
|
||||||
|
@click="handleClickLeft"
|
||||||
|
>
|
||||||
|
<!-- #ifndef MP-ALIPAY -->
|
||||||
<view v-if="leftArrow" class="back-icon">
|
<view v-if="leftArrow" class="back-icon">
|
||||||
<view class="i-carbon-chevron-left text-[40rpx] text-[#333] font-semibold icon-class" />
|
<view class="i-carbon-chevron-left text-[40rpx] text-[#333] font-semibold icon-class" />
|
||||||
</view>
|
</view>
|
||||||
|
<!-- #endif -->
|
||||||
<slot name="left"></slot>
|
<slot name="left"></slot>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<!-- 中间标题区域 -->
|
<!-- 中间标题区域 -->
|
||||||
<view class="navbar-title">
|
<view class="navbar-title">
|
||||||
<slot name="title">
|
<slot name="title">
|
||||||
|
|
@ -53,7 +56,6 @@
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { getDeviceInfo, getWindowInfo } from '@/utils/tools'
|
import { getDeviceInfo, getWindowInfo } from '@/utils/tools'
|
||||||
|
|
||||||
|
|
||||||
defineProps({
|
defineProps({
|
||||||
title: {
|
title: {
|
||||||
type: String,
|
type: String,
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -1,20 +1,19 @@
|
||||||
<route lang="json5" type="page">
|
<route lang="json5" type="page">
|
||||||
{
|
{
|
||||||
style: {
|
style: {
|
||||||
navigationBarTitleText: '在线客服'
|
navigationBarTitleText: '在线客服',
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
</route>
|
</route>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<view class="bg-[#fff] h-[100vh] flex flex-col">
|
<view class="bg-[#fff] h-[100vh] flex flex-col">
|
||||||
|
|
||||||
<view class="flex-1 bg-[#F8F8F8] px-[32rpx] pb-safe">
|
<view class="flex-1 bg-[#F8F8F8] px-[32rpx] pb-safe">
|
||||||
<view class="mt-[84rpx] h-[754rpx] rounded-[16rpx] bg-[#fff]">
|
<view class="mt-[84rpx] h-[754rpx] rounded-[16rpx] bg-[#fff]">
|
||||||
<view class="py-[48rpx] mx-[48rpx] avatar-border flex justify-center items-center">
|
<view class="py-[48rpx] mx-[48rpx] avatar-border flex justify-center items-center">
|
||||||
<view class="min-w-[144rpx] min-h-[144rpx] w-[144rpx] h-[144rpx]">
|
<view class="min-w-[144rpx] min-h-[144rpx] w-[144rpx] h-[144rpx]">
|
||||||
<image
|
<image
|
||||||
class=" rounded-full"
|
class="rounded-full"
|
||||||
src="https://api.static.ycymedu.com/sub/images/customerService/avatar.jpg"
|
src="https://api.static.ycymedu.com/sub/images/customerService/avatar.jpg"
|
||||||
></image>
|
></image>
|
||||||
</view>
|
</view>
|
||||||
|
|
@ -33,11 +32,13 @@
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<view class="px-[168rpx] pt-[48rpx]">
|
<view class="px-[168rpx] pt-[48rpx]">
|
||||||
<image
|
<view class="w-[352rpx] h-[352rpx]">
|
||||||
class="w-[352rpx] h-[352rpx]"
|
<image
|
||||||
:src="qrCodeUrl"
|
class="w-[352rpx] h-[352rpx]"
|
||||||
:show-menu-by-longpress="true"
|
:src="qrCodeUrl"
|
||||||
></image>
|
:show-menu-by-longpress="true"
|
||||||
|
></image>
|
||||||
|
</view>
|
||||||
|
|
||||||
<view class="flex items-center justify-center mt-[34rpx]">
|
<view class="flex items-center justify-center mt-[34rpx]">
|
||||||
<view class="i-carbon-fingerprint-recognition text-[#E75859] text-[28rpx]"></view>
|
<view class="i-carbon-fingerprint-recognition text-[#E75859] text-[28rpx]"></view>
|
||||||
|
|
|
||||||
|
|
@ -122,12 +122,12 @@
|
||||||
<view class="text-[24rpx] text-[#1580FF] mr-[8rpx]">
|
<view class="text-[24rpx] text-[#1580FF] mr-[8rpx]">
|
||||||
{{ isExpand ? '展开' : '收起' }}
|
{{ isExpand ? '展开' : '收起' }}
|
||||||
</view>
|
</view>
|
||||||
<image
|
<view class="w-[16rpx] h-[12rpx]" :style="isExpand ? 'transform:rotate(180deg)' : ''">
|
||||||
src="https://api-static-zhiy.oss-cn-shanghai.aliyuncs.com/images/ad-banner/shouqi.png"
|
<image
|
||||||
mode="scaleToFill"
|
src="https://api-static-zhiy.oss-cn-shanghai.aliyuncs.com/images/ad-banner/shouqi.png"
|
||||||
class="w-[16rpx] h-[12rpx]"
|
class="w-[16rpx] h-[12rpx]"
|
||||||
:style="isExpand ? 'transform:rotate(180deg)' : ''"
|
/>
|
||||||
/>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
||||||
|
|
@ -42,11 +42,12 @@
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<view class="top-[50%] left-[50%] absolute translate-x-[-50%] translate-y-[-50%]">
|
<view class="top-[50%] left-[50%] absolute translate-x-[-50%] translate-y-[-50%]">
|
||||||
<image
|
<view class="w-[184rpx] h-[184rpx]">
|
||||||
src="https://api-static-zhiy.oss-cn-shanghai.aliyuncs.com/images/ad-banner/zhongjian.png"
|
<image
|
||||||
mode="scaleToFill"
|
src="https://api-static-zhiy.oss-cn-shanghai.aliyuncs.com/images/ad-banner/zhongjian.png"
|
||||||
class="w-[184rpx] h-[184rpx]"
|
mode="scaleToFill"
|
||||||
/>
|
/>
|
||||||
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
||||||
|
|
@ -1,43 +1,53 @@
|
||||||
<template>
|
<template>
|
||||||
<view class="w-full flex flex-col">
|
<view class="w-full flex flex-col">
|
||||||
<view class="flex flex-col items-center">
|
<view class="flex flex-col items-center">
|
||||||
<image
|
<view class="w-full h-[538rpx]">
|
||||||
src="https://api-static-zhiy.oss-cn-shanghai.aliyuncs.com/images/ad-banner/toubu.png "
|
<image
|
||||||
mode="scaleToFill"
|
src="https://api-static-zhiy.oss-cn-shanghai.aliyuncs.com/images/ad-banner/toubu.png "
|
||||||
class="w-full h-[538rpx]"
|
mode="scaleToFill"
|
||||||
/>
|
class="w-full h-[538rpx]"
|
||||||
<image
|
/>
|
||||||
src="https://api-static-zhiy.oss-cn-shanghai.aliyuncs.com/images/ad-banner/mingzi.png"
|
</view>
|
||||||
mode="scaleToFill"
|
<view class="h-[44rpx] w-[420rpx] mt-[-78rpx]">
|
||||||
class="h-[44rpx] w-[420rpx] bg-transparent mt-[-78rpx]"
|
<image
|
||||||
/>
|
src="https://api-static-zhiy.oss-cn-shanghai.aliyuncs.com/images/ad-banner/mingzi.png"
|
||||||
|
mode="scaleToFill"
|
||||||
|
class="h-[44rpx] w-[420rpx] bg-transparent"
|
||||||
|
/>
|
||||||
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<view
|
<view
|
||||||
class="rounded-[0rpx_0rpx_20rpx_20rpx] h-[474rpx] ml-[36rpx] mr-[38rpx] bg-white px-[24rpx] pt-[28rpx] pb-[18rpx]"
|
class="rounded-[0rpx_0rpx_20rpx_20rpx] h-[474rpx] ml-[36rpx] mr-[38rpx] bg-white px-[24rpx] pt-[28rpx] pb-[18rpx]"
|
||||||
>
|
>
|
||||||
<view class="flex items-center">
|
<view class="flex items-center">
|
||||||
<image
|
<view class="w-[214rpx] h-[180rpx] min-w-[214rpx]">
|
||||||
src="https://api-static-zhiy.oss-cn-shanghai.aliyuncs.com/images/ad-banner/xuexiao.png"
|
<image
|
||||||
mode="scaleToFill"
|
src="https://api-static-zhiy.oss-cn-shanghai.aliyuncs.com/images/ad-banner/xuexiao.png"
|
||||||
class="w-[214rpx] h-[180rpx] min-w-[214rpx]"
|
mode="scaleToFill"
|
||||||
@click="
|
class="w-[214rpx] h-[180rpx] min-w-[214rpx]"
|
||||||
previewImg(
|
@click="
|
||||||
['https://api-static-zhiy.oss-cn-shanghai.aliyuncs.com/images/ad-banner/xuexiao.png'],
|
previewImg(
|
||||||
0,
|
[
|
||||||
)
|
'https://api-static-zhiy.oss-cn-shanghai.aliyuncs.com/images/ad-banner/xuexiao.png',
|
||||||
"
|
],
|
||||||
/>
|
0,
|
||||||
|
)
|
||||||
|
"
|
||||||
|
/>
|
||||||
|
</view>
|
||||||
|
|
||||||
<view class="text-[26rpx] text-[#3d3d3d] ml-[16rpx] text-wrap">
|
<view class="text-[26rpx] text-[#3d3d3d] ml-[16rpx] text-wrap">
|
||||||
经济南市教育局批准成立的十二年一贯制学校,由山东锦泽实业集团投资创办,坐落于济南市平阴县深泉路1号,占地12万平方米,环境清幽,设施一流。
|
经济南市教育局批准成立的十二年一贯制学校,由山东锦泽实业集团投资创办,坐落于济南市平阴县深泉路1号,占地12万平方米,环境清幽,设施一流。
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<image
|
<view class="h-[234rpx]">
|
||||||
src="https://api-static-zhiy.oss-cn-shanghai.aliyuncs.com/images/ad-banner/tifen.png"
|
<image
|
||||||
mode="scaleToFill"
|
src="https://api-static-zhiy.oss-cn-shanghai.aliyuncs.com/images/ad-banner/tifen.png"
|
||||||
class="h-[234rpx]"
|
mode="scaleToFill"
|
||||||
/>
|
class="h-[234rpx]"
|
||||||
|
/>
|
||||||
|
</view>
|
||||||
<view class="grid grid-cols-[1fr_2fr_1fr] text-[#333] text-[26rpx] gap-[10prx] mt-[6rpx]">
|
<view class="grid grid-cols-[1fr_2fr_1fr] text-[#333] text-[26rpx] gap-[10prx] mt-[6rpx]">
|
||||||
<view class="justify-self-center">轻松可提</view>
|
<view class="justify-self-center">轻松可提</view>
|
||||||
<view class="justify-self-center">复读生平均提分</view>
|
<view class="justify-self-center">复读生平均提分</view>
|
||||||
|
|
|
||||||
|
|
@ -11,14 +11,16 @@
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<view class="grid grid-cols-2 gap-x-[16rpx] gap-y-[10rpx]">
|
<view class="grid grid-cols-2 gap-x-[16rpx] gap-y-[10rpx]">
|
||||||
<image
|
<view class="w-full h-[170rpx]">
|
||||||
:src="item"
|
<image
|
||||||
mode="scaleToFill"
|
:src="item"
|
||||||
v-for="(item, index) in imageList"
|
mode="scaleToFill"
|
||||||
:key="index"
|
v-for="(item, index) in imageList"
|
||||||
class="w-full h-[170rpx]"
|
:key="index"
|
||||||
@click="previewImg(imageList, index)"
|
class="w-full h-[170rpx]"
|
||||||
/>
|
@click="previewImg(imageList, index)"
|
||||||
|
/>
|
||||||
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,13 @@
|
||||||
<template>
|
<template>
|
||||||
<view class="flex mx-[20rpx] flex-col">
|
<view class="flex mx-[20rpx] flex-col">
|
||||||
<view class="w-full relative z-2">
|
<view class="w-full relative z-2">
|
||||||
<image
|
<view class="w-full h-[100rpx]">
|
||||||
src="https://api-static-zhiy.oss-cn-shanghai.aliyuncs.com/images/ad-banner/biaoti.png"
|
<image
|
||||||
mode="widthFix"
|
src="https://api-static-zhiy.oss-cn-shanghai.aliyuncs.com/images/ad-banner/biaoti.png"
|
||||||
class="w-full h-[100rpx]"
|
mode="widthFix"
|
||||||
/>
|
class="w-full h-[100rpx]"
|
||||||
|
/>
|
||||||
|
</view>
|
||||||
<view
|
<view
|
||||||
class="text-[40rpx] font-700 absolute top-[12rpx] left-[50rpx] tracking-[10rpx] text-white italic"
|
class="text-[40rpx] font-700 absolute top-[12rpx] left-[50rpx] tracking-[10rpx] text-white italic"
|
||||||
>
|
>
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,9 @@
|
||||||
class="rounded-[40rpx] bg-white px-[36rpx] pt-[38rpx] pb-[20rpx] grid grid-cols-4 gap-x-[0rpx] gap-y-[28rpx]"
|
class="rounded-[40rpx] bg-white px-[36rpx] pt-[38rpx] pb-[20rpx] grid grid-cols-4 gap-x-[0rpx] gap-y-[28rpx]"
|
||||||
>
|
>
|
||||||
<view class="flex flex-col items-center" v-for="(item, index) in schools" :key="index">
|
<view class="flex flex-col items-center" v-for="(item, index) in schools" :key="index">
|
||||||
<image :src="item.badge" mode="scaleToFill" class="w-[120rpx] h-[120rpx]" />
|
<view class="w-[120rpx] h-[120rpx]">
|
||||||
|
<image :src="item.badge" mode="scaleToFill" class="w-[120rpx] h-[120rpx]" />
|
||||||
|
</view>
|
||||||
<span class="text-[26rpx] text-[#333]">{{ item.name }}</span>
|
<span class="text-[26rpx] text-[#333]">{{ item.name }}</span>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -15,12 +15,14 @@
|
||||||
|
|
||||||
<MessageBox v-model:show="show" title="好友添加">
|
<MessageBox v-model:show="show" title="好友添加">
|
||||||
<template>
|
<template>
|
||||||
<image
|
<view class="w-full h-[80vh] py-[20rpx]">
|
||||||
:src="friendImage"
|
<image
|
||||||
mode="scaleToFill"
|
:src="friendImage"
|
||||||
class="w-full h-[80vh] py-[20rpx]"
|
mode="scaleToFill"
|
||||||
:show-menu-by-longpress="true"
|
class="w-full h-[80vh]"
|
||||||
/>
|
:show-menu-by-longpress="true"
|
||||||
|
/>
|
||||||
|
</view>
|
||||||
</template>
|
</template>
|
||||||
</MessageBox>
|
</MessageBox>
|
||||||
</view>
|
</view>
|
||||||
|
|
|
||||||
|
|
@ -20,12 +20,14 @@
|
||||||
</button>
|
</button>
|
||||||
</Badge>
|
</Badge>
|
||||||
|
|
||||||
<image
|
<view class="w-[286rpx] h-[286rpx] mt-[134rpx]">
|
||||||
class="w-[286rpx] h-[286rpx] mt-[134rpx] mix-blend-darken"
|
<image
|
||||||
src="https://api.static.ycymedu.com/sub/images/autoFill/auto-fill.jpg"
|
class="w-[286rpx] h-[286rpx] mix-blend-darken"
|
||||||
mode="widthFix"
|
src="https://api.static.ycymedu.com/sub/images/autoFill/auto-fill.jpg"
|
||||||
@click="show = true"
|
mode="widthFix"
|
||||||
></image>
|
@click="show = true"
|
||||||
|
></image>
|
||||||
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<ActionSheet
|
<ActionSheet
|
||||||
v-model:show="show"
|
v-model:show="show"
|
||||||
|
|
@ -76,9 +78,9 @@ const handleChange = (params) => {
|
||||||
}
|
}
|
||||||
|
|
||||||
const handleResult = () => {
|
const handleResult = () => {
|
||||||
let _params = filterMenuRef.value.handleConfirm()
|
const _params = filterMenuRef.value.handleConfirm()
|
||||||
|
|
||||||
let params = {
|
const params = {
|
||||||
p: userStore.userInfo.estimatedAchievement.sp,
|
p: userStore.userInfo.estimatedAchievement.sp,
|
||||||
location: userStore.userInfo.estimatedAchievement.provinceCode,
|
location: userStore.userInfo.estimatedAchievement.provinceCode,
|
||||||
subjects: userStore.userInfo.estimatedAchievement.subjectGroup.split(','),
|
subjects: userStore.userInfo.estimatedAchievement.subjectGroup.split(','),
|
||||||
|
|
@ -91,9 +93,9 @@ const handleResult = () => {
|
||||||
|
|
||||||
getUniversityListByFilter(params).then((res) => {
|
getUniversityListByFilter(params).then((res) => {
|
||||||
if (res.code === 200) {
|
if (res.code === 200) {
|
||||||
let collegeList = (res.result as { rows: any[] }).rows
|
const collegeList = (res.result as { rows: any[] }).rows
|
||||||
let wishList = collegeList.map((item) => {
|
const wishList = collegeList.map((item) => {
|
||||||
let _major = {
|
const _major = {
|
||||||
...item,
|
...item,
|
||||||
name: item.universityName,
|
name: item.universityName,
|
||||||
vItems: item.majorItems.map((majorItem) => ({
|
vItems: item.majorItems.map((majorItem) => ({
|
||||||
|
|
|
||||||
|
|
@ -27,11 +27,13 @@
|
||||||
<text class="text-[36rpx] text-[#000] font-bold mt-[24rpx] mb-[22rpx]">
|
<text class="text-[36rpx] text-[#000] font-bold mt-[24rpx] mb-[22rpx]">
|
||||||
{{ professionInfo.career }}
|
{{ professionInfo.career }}
|
||||||
</text>
|
</text>
|
||||||
<image
|
<view class="w-full h-[264rpx]">
|
||||||
class="w-full h-[264rpx] rounded-[8rpx]"
|
<image
|
||||||
:src="professionInfo.img_url"
|
class="w-full h-[264rpx] rounded-[8rpx]"
|
||||||
mode="aspectFill"
|
:src="professionInfo.img_url"
|
||||||
/>
|
mode="aspectFill"
|
||||||
|
/>
|
||||||
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="h-[18rpx] bg-[#F8F8F8] mt-[24rpx] mb-[16rpx]"></view>
|
<view class="h-[18rpx] bg-[#F8F8F8] mt-[24rpx] mb-[16rpx]"></view>
|
||||||
<view class="">
|
<view class="">
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,13 @@
|
||||||
<template>
|
<template>
|
||||||
<view class="flex flex-col px-[32rpx] pt-[32rpx] bg-[#fff] mt-16rpx">
|
<view class="flex flex-col px-[32rpx] pt-[32rpx] bg-[#fff] mt-16rpx">
|
||||||
<view class="flex items-center gap-[10rpx]">
|
<view class="flex items-center gap-[10rpx]">
|
||||||
<image
|
<view class="w-[48rpx] h-[48rpx]">
|
||||||
class="w-[48rpx] h-[48rpx]"
|
<image
|
||||||
src="https://api.static.ycymedu.com/zdx/faculty.png"
|
class="w-[48rpx] h-[48rpx]"
|
||||||
mode="scaleToFill"
|
src="https://api.static.ycymedu.com/zdx/faculty.png"
|
||||||
/>
|
mode="scaleToFill"
|
||||||
|
/>
|
||||||
|
</view>
|
||||||
<text class="text-[32rpx] font-semibold text-[#333]">院系设置</text>
|
<text class="text-[32rpx] font-semibold text-[#333]">院系设置</text>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
|
|
@ -51,9 +53,9 @@ watch(
|
||||||
(newVal) => {
|
(newVal) => {
|
||||||
getUniversityListByProvince({ id: newVal }).then((resp) => {
|
getUniversityListByProvince({ id: newVal }).then((resp) => {
|
||||||
if (resp.code === 200) {
|
if (resp.code === 200) {
|
||||||
let _res = (originTableData = resp.result as { name: string; item: { name: string }[] }[])
|
const _res = (originTableData = resp.result as { name: string; item: { name: string }[] }[])
|
||||||
_res.forEach((college) => {
|
_res.forEach((college) => {
|
||||||
let _college = { name: college.name, major: '' }
|
const _college = { name: college.name, major: '' }
|
||||||
_college.major = college.item.map((item) => item.name).join(',')
|
_college.major = college.item.map((item) => item.name).join(',')
|
||||||
tableData.value.push(_college)
|
tableData.value.push(_college)
|
||||||
})
|
})
|
||||||
|
|
|
||||||
|
|
@ -37,11 +37,13 @@
|
||||||
v-show="assessmentSubjectList.length > 0"
|
v-show="assessmentSubjectList.length > 0"
|
||||||
>
|
>
|
||||||
<view class="flex items-center gap-[10rpx]">
|
<view class="flex items-center gap-[10rpx]">
|
||||||
<image
|
<view class="w-[48rpx] h-[48rpx]">
|
||||||
class="w-[48rpx] h-[48rpx]"
|
<image
|
||||||
src="https://api.static.ycymedu.com/zdx/subject.png"
|
class="w-[48rpx] h-[48rpx]"
|
||||||
mode="scaleToFill"
|
src="https://api.static.ycymedu.com/zdx/subject.png"
|
||||||
/>
|
mode="scaleToFill"
|
||||||
|
/>
|
||||||
|
</view>
|
||||||
<text class="text-[30rpx] font-600 text-[#000]">
|
<text class="text-[30rpx] font-600 text-[#000]">
|
||||||
学科评估·{{ assessmentSubjectList.length }}
|
学科评估·{{ assessmentSubjectList.length }}
|
||||||
</text>
|
</text>
|
||||||
|
|
@ -72,11 +74,13 @@
|
||||||
</view>
|
</view>
|
||||||
<view class="flex flex-col p-[32rpx] bg-[#fff] mt-[16rpx]" v-show="featureSubjectList.length > 0">
|
<view class="flex flex-col p-[32rpx] bg-[#fff] mt-[16rpx]" v-show="featureSubjectList.length > 0">
|
||||||
<view class="flex items-center gap-[10rpx]">
|
<view class="flex items-center gap-[10rpx]">
|
||||||
<image
|
<view class="w-[48rpx] h-[48rpx]">
|
||||||
class="w-[48rpx] h-[48rpx]"
|
<image
|
||||||
src="https://api.static.ycymedu.com/zdx/profession.png"
|
class="w-[48rpx] h-[48rpx]"
|
||||||
mode="scaleToFill"
|
src="https://api.static.ycymedu.com/zdx/profession.png"
|
||||||
/>
|
mode="scaleToFill"
|
||||||
|
/>
|
||||||
|
</view>
|
||||||
<text class="text-[30rpx] font-600 text-[#000]">
|
<text class="text-[30rpx] font-600 text-[#000]">
|
||||||
特色专业·{{ featureSubjectList.length }}
|
特色专业·{{ featureSubjectList.length }}
|
||||||
</text>
|
</text>
|
||||||
|
|
@ -207,7 +211,7 @@ const parsedNames = (name: string) => {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return {
|
return {
|
||||||
name: name,
|
name,
|
||||||
grade: '',
|
grade: '',
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -84,7 +84,9 @@
|
||||||
>
|
>
|
||||||
<view class="flex items-center p-[32rpx]">
|
<view class="flex items-center p-[32rpx]">
|
||||||
<view class="w-[80rpx] h-[80rpx] ml-[18rpx] mr-[24rpx]">
|
<view class="w-[80rpx] h-[80rpx] ml-[18rpx] mr-[24rpx]">
|
||||||
<image class="w-[80rpx] h-[80rpx]" :src="item.logo"></image>
|
<view class="w-[80rpx] h-[80rpx]">
|
||||||
|
<image class="w-[80rpx] h-[80rpx] rounded-full" :src="item.logo"></image>
|
||||||
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="flex justify-between items-center flex-1 overflow-y-hidden">
|
<view class="flex justify-between items-center flex-1 overflow-y-hidden">
|
||||||
<view class="flex flex-col w-full" hover-class="none">
|
<view class="flex flex-col w-full" hover-class="none">
|
||||||
|
|
|
||||||
|
|
@ -26,11 +26,13 @@
|
||||||
|
|
||||||
<view class="flex-1 flex flex-col pb-safe overflow-y-auto">
|
<view class="flex-1 flex flex-col pb-safe overflow-y-auto">
|
||||||
<view class="flex items-center p-[32rpx]" hover-class="none">
|
<view class="flex items-center p-[32rpx]" hover-class="none">
|
||||||
<image
|
<view class="w-[104rpx] h-[104rpx]">
|
||||||
class="w-[104rpx] h-[104rpx]"
|
<image
|
||||||
:src="universityBaseInfo?.universityResult.logo"
|
class="w-[104rpx] h-[104rpx]"
|
||||||
:lazy-load="true"
|
:src="universityBaseInfo?.universityResult.logo"
|
||||||
></image>
|
:lazy-load="true"
|
||||||
|
></image>
|
||||||
|
</view>
|
||||||
<view class="flex flex-col ml-[24rpx]">
|
<view class="flex flex-col ml-[24rpx]">
|
||||||
<text class="text-[32rpx] font-semibold text-[#303030]">
|
<text class="text-[32rpx] font-semibold text-[#303030]">
|
||||||
{{ universityBaseInfo?.universityResult.name }}
|
{{ universityBaseInfo?.universityResult.name }}
|
||||||
|
|
|
||||||
|
|
@ -127,9 +127,6 @@ const handleRegionChangeCode = (val) => {
|
||||||
getUniversityList()
|
getUniversityList()
|
||||||
}
|
}
|
||||||
|
|
||||||
const navigatorBack = () => {
|
|
||||||
uni.navigateBack()
|
|
||||||
}
|
|
||||||
|
|
||||||
const tableData = ref([])
|
const tableData = ref([])
|
||||||
const getUniversityList = () => {
|
const getUniversityList = () => {
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
<route lang="json5" type="page">
|
<route lang="json5" type="page">
|
||||||
{
|
{
|
||||||
style: {
|
style: {
|
||||||
navigationBarTitleText:'查扩缩招'
|
navigationBarTitleText: '查扩缩招',
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
</route>
|
</route>
|
||||||
|
|
@ -109,18 +109,20 @@
|
||||||
<text v-if="item.newPlan - item.oldPlan === 0">相同</text>
|
<text v-if="item.newPlan - item.oldPlan === 0">相同</text>
|
||||||
<view v-else class="flex items-center justify-center gap-[10rpx]">
|
<view v-else class="flex items-center justify-center gap-[10rpx]">
|
||||||
<text>{{ item.newPlan - item.oldPlan }}</text>
|
<text>{{ item.newPlan - item.oldPlan }}</text>
|
||||||
<image
|
<view class="w-[16rpx] h-[16rpx]">
|
||||||
v-if="item.newPlan - item.oldPlan < 0"
|
<image
|
||||||
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAATCAYAAACORR0GAAAAAXNSR0IArs4c6QAAARRJREFUSEu91EFOhDAYhuH370TXHGGOwMaEuNJM4jnKCYwnEE4yeAoTE0LcsZwb6BE8wFC1OBBGO6UmZboikPTJ9/Uvkj3rtbqkMUqK9nb7xEJLrmv9Bqzt/kaJXgqTrNZawXYIshQmFjgH1kPnwEboP9jVi05XkLZ3VRU6O0dQCGaRixUNkBgo2k1VhmB/IB82RcbhCcSckBMzlEpxb5MckI/hOSTZSciFTVLkXcduqLC/gzPJvJAzGeTt5mcIflfpw2ah6YYGHgZkSBeKBUFzU+XDslo/YniNAp2q0b5XUNCRR4Nc2NiEoYwKebAqOmTPpK/reMU7o8NVcCH203vURDeNTvZ7UhGS7pMUIUFI5ftv8gVvqo+bwdfwaAAAAABJRU5ErkJggg=="
|
v-if="item.newPlan - item.oldPlan < 0"
|
||||||
mode="scaleToFill"
|
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAATCAYAAACORR0GAAAAAXNSR0IArs4c6QAAARRJREFUSEu91EFOhDAYhuH370TXHGGOwMaEuNJM4jnKCYwnEE4yeAoTE0LcsZwb6BE8wFC1OBBGO6UmZboikPTJ9/Uvkj3rtbqkMUqK9nb7xEJLrmv9Bqzt/kaJXgqTrNZawXYIshQmFjgH1kPnwEboP9jVi05XkLZ3VRU6O0dQCGaRixUNkBgo2k1VhmB/IB82RcbhCcSckBMzlEpxb5MckI/hOSTZSciFTVLkXcduqLC/gzPJvJAzGeTt5mcIflfpw2ah6YYGHgZkSBeKBUFzU+XDslo/YniNAp2q0b5XUNCRR4Nc2NiEoYwKebAqOmTPpK/reMU7o8NVcCH203vURDeNTvZ7UhGS7pMUIUFI5ftv8gVvqo+bwdfwaAAAAABJRU5ErkJggg=="
|
||||||
class="w-[16rpx] h-[16rpx]"
|
mode="scaleToFill"
|
||||||
/>
|
class="w-[16rpx] h-[16rpx]"
|
||||||
<image
|
/>
|
||||||
v-if="item.newPlan - item.oldPlan > 0"
|
<image
|
||||||
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAATCAYAAACORR0GAAAAAXNSR0IArs4c6QAAATlJREFUSEu11eFNwzAQBeB3gQEyAIV2g67QDewJgBGYgHYCRmhH8AbABHSDRhSJvxmA5sEFtTKuk7jIza9EivP57l0SQcZjY8z0ApgSGAtwI0ApInpdSkYH78bcicjy6JnkOiukQAwj8Jod+rD29qd1K78qkqusUAxRsCEX2aAQIXmviGam58mQTtTEuXVseGLItXNt+zSzAkgbhq0xjxCZg5yPnFv4WB/i3zdY0QHZr/KwAKlB2pFzL7Gqe6EjxMNEpPKmqxZydtXR2jarrhc2QGoNtBB50rc+WDOIdEIhst/tpzHjncizhyUhUagL2VfhYeVQuzqHYQj5gwFlXyZhJIeMUpH/foRb6NxIm5GPEKgK0p7SktQKZWvtG35/VtWOnE2cq1IXn3KfbIwpL4ti+dU0D+dCdEPf+I3M1u2H9e8AAAAASUVORK5CYII="
|
v-if="item.newPlan - item.oldPlan > 0"
|
||||||
mode="scaleToFill"
|
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAATCAYAAACORR0GAAAAAXNSR0IArs4c6QAAATlJREFUSEu11eFNwzAQBeB3gQEyAIV2g67QDewJgBGYgHYCRmhH8AbABHSDRhSJvxmA5sEFtTKuk7jIza9EivP57l0SQcZjY8z0ApgSGAtwI0ApInpdSkYH78bcicjy6JnkOiukQAwj8Jod+rD29qd1K78qkqusUAxRsCEX2aAQIXmviGam58mQTtTEuXVseGLItXNt+zSzAkgbhq0xjxCZg5yPnFv4WB/i3zdY0QHZr/KwAKlB2pFzL7Gqe6EjxMNEpPKmqxZydtXR2jarrhc2QGoNtBB50rc+WDOIdEIhst/tpzHjncizhyUhUagL2VfhYeVQuzqHYQj5gwFlXyZhJIeMUpH/foRb6NxIm5GPEKgK0p7SktQKZWvtG35/VtWOnE2cq1IXn3KfbIwpL4ti+dU0D+dCdEPf+I3M1u2H9e8AAAAASUVORK5CYII="
|
||||||
class="w-[16rpx] h-[16rpx]"
|
mode="scaleToFill"
|
||||||
/>
|
class="w-[16rpx] h-[16rpx]"
|
||||||
|
/>
|
||||||
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<view class="flex flex-col h-screen">
|
<view class="flex flex-col h-screen">
|
||||||
<view class="relative">
|
<view class="relative z-11">
|
||||||
<Navbar
|
<Navbar
|
||||||
safeAreaInsetTop
|
safeAreaInsetTop
|
||||||
bg-color="transparent"
|
bg-color="transparent"
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,13 @@
|
||||||
<route lang="json5" type="page">
|
<route lang="json5" type="page">
|
||||||
{
|
{
|
||||||
style: {
|
style: {
|
||||||
navigationBarTitleText: '详细信息'
|
navigationBarTitleText: '详细信息',
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
</route>
|
</route>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<view class="flex flex-col h-screen">
|
<view class="flex flex-col h-screen bg-white">
|
||||||
<view class="flex-1 overflow-auto pb-safe">
|
<view class="flex-1 overflow-auto pb-safe">
|
||||||
<view class="flex flex-col px-[32rpx]">
|
<view class="flex flex-col px-[32rpx]">
|
||||||
<text class="font-semibold text-[28rpx] text-[#1F2329]">
|
<text class="font-semibold text-[28rpx] text-[#1F2329]">
|
||||||
|
|
@ -21,16 +21,58 @@
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="w-full h-[1px] bg-[#E5E5E5] my-[16rpx]"></view>
|
<view class="w-full h-[1px] bg-[#E5E5E5] my-[16rpx]"></view>
|
||||||
<view class="px-[32rpx]" v-html="newsDetail.detail"></view>
|
<view class="px-[32rpx]">
|
||||||
|
<rich-text :nodes="nodes"></rich-text>
|
||||||
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { useCityNewDetail, newsDetail } from '@/hooks/useCityInfoHook'
|
import { useCityNewDetail, newsDetail } from '@/hooks/useCityInfoHook'
|
||||||
|
import * as htmlparser from 'htmlparser2'
|
||||||
|
|
||||||
onLoad((option) => {
|
onLoad((option) => {
|
||||||
let newsId = option.newsId
|
const newsId = option.newsId
|
||||||
useCityNewDetail(newsId)
|
useCityNewDetail(newsId)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
const nodes = ref<any[]>([])
|
||||||
|
|
||||||
|
const parseHTMLToObject = (htmlString) => {
|
||||||
|
const handler = new htmlparser.DomHandler((error, dom) => {
|
||||||
|
if (error) {
|
||||||
|
console.error('Error parsing HTML:', error)
|
||||||
|
} else {
|
||||||
|
console.log('Parsed DOM:', dom)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
const parser = new htmlparser.Parser(handler)
|
||||||
|
parser.write(htmlString)
|
||||||
|
parser.end()
|
||||||
|
return handler.dom
|
||||||
|
}
|
||||||
|
|
||||||
|
function traverseNodes(nodes) {
|
||||||
|
return nodes.map((node) => {
|
||||||
|
if (node.type === 'text') {
|
||||||
|
return { type: 'text', text: node.data }
|
||||||
|
} else if (node.type === 'tag') {
|
||||||
|
return {
|
||||||
|
name: node.name,
|
||||||
|
attrs: node.attribs,
|
||||||
|
children: traverseNodes(node.children || []),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
watch(
|
||||||
|
() => newsDetail.value.detail,
|
||||||
|
(newV: string) => {
|
||||||
|
const _nodes = parseHTMLToObject(newV)
|
||||||
|
nodes.value = traverseNodes(_nodes)
|
||||||
|
},
|
||||||
|
)
|
||||||
</script>
|
</script>
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
<route lang="json5" type="page">
|
<route lang="json5" type="page">
|
||||||
{
|
{
|
||||||
style: {
|
style: {
|
||||||
navigationBarTitleText: '院校排行榜'
|
navigationBarTitleText: '院校排行榜',
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
</route>
|
</route>
|
||||||
|
|
@ -18,26 +18,25 @@
|
||||||
<!-- 需要固定在顶部不滚动的view放在slot="top"的view中,如果需要跟着滚动,则不要设置slot="top" -->
|
<!-- 需要固定在顶部不滚动的view放在slot="top"的view中,如果需要跟着滚动,则不要设置slot="top" -->
|
||||||
<template #top>
|
<template #top>
|
||||||
<view class="relative h-[400rpx]" hover-class="none" :hover-stop-propagation="false">
|
<view class="relative h-[400rpx]" hover-class="none" :hover-stop-propagation="false">
|
||||||
<view class="absolute top-0 z-[-1]">
|
<view class="absolute top-0 z-[-1] w-full h-full">
|
||||||
<image
|
<image
|
||||||
class=""
|
class=""
|
||||||
src="https://api.static.ycymedu.com/sub/images/schoolRank/background.svg"
|
src="https://api.static.ycymedu.com/sub/images/schoolRank/background.svg"
|
||||||
/>
|
/>
|
||||||
</view>
|
</view>
|
||||||
<view class="h-[78rpx] w-[270rpx] absolute top-[249rpx] left-[102rpx] z-[-1]">
|
<view class="h-[78rpx] w-[270rpx] absolute top-[249rpx] left-[102rpx] z-[-1]">
|
||||||
<image
|
<image class="" src="https://api.static.ycymedu.com/sub/images/schoolRank/title.svg" />
|
||||||
class=""
|
|
||||||
src="https://api.static.ycymedu.com/sub/images/schoolRank/title.svg"
|
|
||||||
/>
|
|
||||||
</view>
|
</view>
|
||||||
<view class="h-[190rpx] w-[190rpx] absolute top-[194rpx] left-[460rpx] mix-blend-multiply z-[-1]">
|
<view
|
||||||
|
class="h-[190rpx] w-[190rpx] absolute top-[194rpx] left-[460rpx] mix-blend-multiply z-[-1]"
|
||||||
|
>
|
||||||
<image
|
<image
|
||||||
class=""
|
class="w-full h-full"
|
||||||
src="https://api.static.ycymedu.com/sub/images/schoolRank/trophy.png"
|
src="https://api.static.ycymedu.com/sub/images/schoolRank/trophy.png"
|
||||||
/>
|
/>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="my-[24rpx]">
|
<view class="my-[24rpx] mx-[8rpx]">
|
||||||
<z-tabs
|
<z-tabs
|
||||||
:current="tabIndex"
|
:current="tabIndex"
|
||||||
:list="unSortTypeList"
|
:list="unSortTypeList"
|
||||||
|
|
@ -53,7 +52,7 @@
|
||||||
top: '0',
|
top: '0',
|
||||||
zIndex: '99',
|
zIndex: '99',
|
||||||
height: '52rpx',
|
height: '52rpx',
|
||||||
background:'transparent'
|
background: 'transparent',
|
||||||
}"
|
}"
|
||||||
:active-style="{
|
:active-style="{
|
||||||
background: 'linear-gradient( 270deg, #F2CE95 0%, #F8DEBA 100%)',
|
background: 'linear-gradient( 270deg, #F2CE95 0%, #F8DEBA 100%)',
|
||||||
|
|
@ -73,7 +72,7 @@
|
||||||
<view class="flex items-center py-[32rpx] w-full">
|
<view class="flex items-center py-[32rpx] w-full">
|
||||||
<text class="text-[28rpx] text-[#999] font-normal">{{ item.rank }}</text>
|
<text class="text-[28rpx] text-[#999] font-normal">{{ item.rank }}</text>
|
||||||
<view class="w-[80rpx] h-[80rpx] ml-[18rpx] mr-[24rpx]">
|
<view class="w-[80rpx] h-[80rpx] ml-[18rpx] mr-[24rpx]">
|
||||||
<image class="" :src="item.logo"></image>
|
<image class="rounded-full" :src="item.logo"></image>
|
||||||
</view>
|
</view>
|
||||||
<view class="flex justify-between items-center flex-1">
|
<view class="flex justify-between items-center flex-1">
|
||||||
<view class="flex flex-col" hover-class="none">
|
<view class="flex flex-col" hover-class="none">
|
||||||
|
|
@ -100,16 +99,13 @@
|
||||||
import { getUniversityRank, getUnSortType } from '@/service/index/api'
|
import { getUniversityRank, getUnSortType } from '@/service/index/api'
|
||||||
import zTabs from '@/pages-sub/uni_modules/z-tabs/components/z-tabs/z-tabs.vue'
|
import zTabs from '@/pages-sub/uni_modules/z-tabs/components/z-tabs/z-tabs.vue'
|
||||||
|
|
||||||
|
|
||||||
type UnSortType = { type: number; name: string }[]
|
type UnSortType = { type: number; name: string }[]
|
||||||
|
|
||||||
let unSortTypeList = ref([])
|
const unSortTypeList = ref([])
|
||||||
getUnSortType().then((res) => {
|
getUnSortType().then((res) => {
|
||||||
unSortTypeList.value = res.result as UnSortType
|
unSortTypeList.value = res.result as UnSortType
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
const tabIndex = ref<number>(0)
|
const tabIndex = ref<number>(0)
|
||||||
const tabsRef = ref(null)
|
const tabsRef = ref(null)
|
||||||
|
|
||||||
|
|
@ -192,10 +188,9 @@ const handleTabChange = (index: number) => {
|
||||||
background-color: #f5efe1;
|
background-color: #f5efe1;
|
||||||
border-radius: 8rpx;
|
border-radius: 8rpx;
|
||||||
padding: 0 !important;
|
padding: 0 !important;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
:deep(.z-tabs-item):not(:last-child){
|
:deep(.z-tabs-item):not(:last-child) {
|
||||||
margin-right: 16rpx;
|
margin-right: 16rpx;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -205,7 +200,7 @@ const handleTabChange = (index: number) => {
|
||||||
gap: 16rpx;
|
gap: 16rpx;
|
||||||
}
|
}
|
||||||
|
|
||||||
:deep(.z-tabs-list){
|
:deep(.z-tabs-list) {
|
||||||
margin-top: 0 !important;
|
margin-top: 0 !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -38,18 +38,20 @@
|
||||||
</view>
|
</view>
|
||||||
<view class="flex items-center gap-[8rpx]" v-else-if="col.key === 'rankDiff'">
|
<view class="flex items-center gap-[8rpx]" v-else-if="col.key === 'rankDiff'">
|
||||||
{{ item['rankDiff'] }}
|
{{ item['rankDiff'] }}
|
||||||
<image
|
<view class="w-[16rpx] h-[16rpx]">
|
||||||
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAATCAYAAACORR0GAAAAAXNSR0IArs4c6QAAATlJREFUSEu11eFNwzAQBeB3gQEyAIV2g67QDewJgBGYgHYCRmhH8AbABHSDRhSJvxmA5sEFtTKuk7jIza9EivP57l0SQcZjY8z0ApgSGAtwI0ApInpdSkYH78bcicjy6JnkOiukQAwj8Jod+rD29qd1K78qkqusUAxRsCEX2aAQIXmviGam58mQTtTEuXVseGLItXNt+zSzAkgbhq0xjxCZg5yPnFv4WB/i3zdY0QHZr/KwAKlB2pFzL7Gqe6EjxMNEpPKmqxZydtXR2jarrhc2QGoNtBB50rc+WDOIdEIhst/tpzHjncizhyUhUagL2VfhYeVQuzqHYQj5gwFlXyZhJIeMUpH/foRb6NxIm5GPEKgK0p7SktQKZWvtG35/VtWOnE2cq1IXn3KfbIwpL4ti+dU0D+dCdEPf+I3M1u2H9e8AAAAASUVORK5CYII="
|
<image
|
||||||
mode="scaleToFill"
|
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAATCAYAAACORR0GAAAAAXNSR0IArs4c6QAAATlJREFUSEu11eFNwzAQBeB3gQEyAIV2g67QDewJgBGYgHYCRmhH8AbABHSDRhSJvxmA5sEFtTKuk7jIza9EivP57l0SQcZjY8z0ApgSGAtwI0ApInpdSkYH78bcicjy6JnkOiukQAwj8Jod+rD29qd1K78qkqusUAxRsCEX2aAQIXmviGam58mQTtTEuXVseGLItXNt+zSzAkgbhq0xjxCZg5yPnFv4WB/i3zdY0QHZr/KwAKlB2pFzL7Gqe6EjxMNEpPKmqxZydtXR2jarrhc2QGoNtBB50rc+WDOIdEIhst/tpzHjncizhyUhUagL2VfhYeVQuzqHYQj5gwFlXyZhJIeMUpH/foRb6NxIm5GPEKgK0p7SktQKZWvtG35/VtWOnE2cq1IXn3KfbIwpL4ti+dU0D+dCdEPf+I3M1u2H9e8AAAAASUVORK5CYII="
|
||||||
class="w-[16rpx] h-[16rpx]"
|
mode="scaleToFill"
|
||||||
v-if="item['rankDiff'] > 0"
|
class="w-[16rpx] h-[16rpx]"
|
||||||
/>
|
v-if="item['rankDiff'] > 0"
|
||||||
<image
|
/>
|
||||||
v-else
|
<image
|
||||||
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAATCAYAAACORR0GAAAAAXNSR0IArs4c6QAAARRJREFUSEu91EFOhDAYhuH370TXHGGOwMaEuNJM4jnKCYwnEE4yeAoTE0LcsZwb6BE8wFC1OBBGO6UmZboikPTJ9/Uvkj3rtbqkMUqK9nb7xEJLrmv9Bqzt/kaJXgqTrNZawXYIshQmFjgH1kPnwEboP9jVi05XkLZ3VRU6O0dQCGaRixUNkBgo2k1VhmB/IB82RcbhCcSckBMzlEpxb5MckI/hOSTZSciFTVLkXcduqLC/gzPJvJAzGeTt5mcIflfpw2ah6YYGHgZkSBeKBUFzU+XDslo/YniNAp2q0b5XUNCRR4Nc2NiEoYwKebAqOmTPpK/reMU7o8NVcCH203vURDeNTvZ7UhGS7pMUIUFI5ftv8gVvqo+bwdfwaAAAAABJRU5ErkJggg=="
|
v-else
|
||||||
mode="scaleToFill"
|
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAATCAYAAACORR0GAAAAAXNSR0IArs4c6QAAARRJREFUSEu91EFOhDAYhuH370TXHGGOwMaEuNJM4jnKCYwnEE4yeAoTE0LcsZwb6BE8wFC1OBBGO6UmZboikPTJ9/Uvkj3rtbqkMUqK9nb7xEJLrmv9Bqzt/kaJXgqTrNZawXYIshQmFjgH1kPnwEboP9jVi05XkLZ3VRU6O0dQCGaRixUNkBgo2k1VhmB/IB82RcbhCcSckBMzlEpxb5MckI/hOSTZSciFTVLkXcduqLC/gzPJvJAzGeTt5mcIflfpw2ah6YYGHgZkSBeKBUFzU+XDslo/YniNAp2q0b5XUNCRR4Nc2NiEoYwKebAqOmTPpK/reMU7o8NVcCH203vURDeNTvZ7UhGS7pMUIUFI5ftv8gVvqo+bwdfwaAAAAABJRU5ErkJggg=="
|
||||||
class="w-[16rpx] h-[16rpx]"
|
mode="scaleToFill"
|
||||||
/>
|
class="w-[16rpx] h-[16rpx]"
|
||||||
|
/>
|
||||||
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view v-else>
|
<view v-else>
|
||||||
{{ item[col.key] }}
|
{{ item[col.key] }}
|
||||||
|
|
@ -135,20 +137,20 @@ const columns = ref([
|
||||||
|
|
||||||
const rankDiff = (index: number, item) => {
|
const rankDiff = (index: number, item) => {
|
||||||
return index === props.data.length - 1
|
return index === props.data.length - 1
|
||||||
? item['rankLine']
|
? item.rankLine
|
||||||
: item['rankLine'] - props.data[index + 1]['rankLine']
|
: item.rankLine - props.data[index + 1].rankLine
|
||||||
}
|
}
|
||||||
|
|
||||||
const recompileData = computed(() => {
|
const recompileData = computed(() => {
|
||||||
if (!props.data) return []
|
if (!props.data) return []
|
||||||
let _data = props.data.map((item, index) => {
|
const _data = props.data.map((item, index) => {
|
||||||
item['rankDiff'] =
|
item.rankDiff =
|
||||||
props.lowscoreRank !== -1
|
props.lowscoreRank !== -1
|
||||||
? props.lowscoreRank === 0
|
? props.lowscoreRank === 0
|
||||||
? '--'
|
? '--'
|
||||||
: item['rankLine'] - props.lowscoreRank
|
: item.rankLine - props.lowscoreRank
|
||||||
: rankDiff(index, item)
|
: rankDiff(index, item)
|
||||||
item['lineDiff'] = item['score'] - props.score
|
item.lineDiff = item.score - props.score
|
||||||
return item
|
return item
|
||||||
})
|
})
|
||||||
return _data
|
return _data
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,9 @@
|
||||||
<view class="h-[16rpx] bg-[#F5F5F5]"></view>
|
<view class="h-[16rpx] bg-[#F5F5F5]"></view>
|
||||||
<view class="flex items-start p-[32rpx]">
|
<view class="flex items-start p-[32rpx]">
|
||||||
<view class="flex flex-col items-center gap-[16rpx]">
|
<view class="flex flex-col items-center gap-[16rpx]">
|
||||||
<image :src="college.logo" mode="scaleToFill" class="w-[112rpx] h-[112rpx]" />
|
<view class="w-[112rpx] h-[112rpx]">
|
||||||
|
<image :src="college.logo" mode="scaleToFill" class="w-[112rpx] h-[112rpx]" />
|
||||||
|
</view>
|
||||||
<view
|
<view
|
||||||
class="w-[52rpx] h-[52rpx] rounded-[8rpx] font-semibold text-[28rpx] flex items-center justify-center"
|
class="w-[52rpx] h-[52rpx] rounded-[8rpx] font-semibold text-[28rpx] flex items-center justify-center"
|
||||||
:style="calcTypeName(college.type).style"
|
:style="calcTypeName(college.type).style"
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -40,11 +40,9 @@
|
||||||
v-if="currentTab === 0"
|
v-if="currentTab === 0"
|
||||||
@click.stop="navigatorTo(item)"
|
@click.stop="navigatorTo(item)"
|
||||||
>
|
>
|
||||||
<image
|
<view class="min-w-[112rpx] min-h-[112rpx] w-[112rpx] h-[112rpx]">
|
||||||
class="min-w-[112rpx] min-h-[112rpx] w-[112rpx] h-[112rpx]"
|
<image class="" :src="item.logo" mode="scaleToFill" />
|
||||||
:src="item.logo"
|
</view>
|
||||||
mode="scaleToFill"
|
|
||||||
/>
|
|
||||||
<view class="flex flex-col flex-1">
|
<view class="flex flex-col flex-1">
|
||||||
<text class="text-[28rpx] text-[#333] font-semibold mb-[6rpx]">
|
<text class="text-[28rpx] text-[#333] font-semibold mb-[6rpx]">
|
||||||
{{ item.name }}
|
{{ item.name }}
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@
|
||||||
<!-- 表头 -->
|
<!-- 表头 -->
|
||||||
<view class="vip-table-header">
|
<view class="vip-table-header">
|
||||||
<view class="feature-column">功能</view>
|
<view class="feature-column">功能</view>
|
||||||
<view class="vip-column vip-header">
|
<view class="vip-column vip-header w-[66rpx] h-[46rpx]">
|
||||||
<image
|
<image
|
||||||
src="https://api.static.ycymedu.com/sub/images/ucenter/vip-crown.png"
|
src="https://api.static.ycymedu.com/sub/images/ucenter/vip-crown.png"
|
||||||
class="vip-icon"
|
class="vip-icon"
|
||||||
|
|
|
||||||
|
|
@ -9,11 +9,13 @@
|
||||||
<template>
|
<template>
|
||||||
<view class="h-screen flex flex-col bg-[#f8f8f8]">
|
<view class="h-screen flex flex-col bg-[#f8f8f8]">
|
||||||
<view class="px-[32rpx]">
|
<view class="px-[32rpx]">
|
||||||
<image
|
<view class="mt-[32rpx] h-[400rpx]">
|
||||||
src="https://api.static.ycymedu.com/sub/images/ucenter/vip-back.png"
|
<image
|
||||||
class="mt-[32rpx] h-[400rpx]"
|
src="https://api.static.ycymedu.com/sub/images/ucenter/vip-back.png"
|
||||||
mode="aspectFit"
|
class="w-full h-full"
|
||||||
/>
|
mode="aspectFit"
|
||||||
|
/>
|
||||||
|
</view>
|
||||||
<view
|
<view
|
||||||
class="flex flex-col rounded-[16rpx] bg-[#fff] mt-[30rpx] pt-[24rpx] pl-[18rpx] pr-[20rpx] pb-[32rpx]"
|
class="flex flex-col rounded-[16rpx] bg-[#fff] mt-[30rpx] pt-[24rpx] pl-[18rpx] pr-[20rpx] pb-[32rpx]"
|
||||||
>
|
>
|
||||||
|
|
@ -108,10 +110,10 @@ const requestPay = (res) => {
|
||||||
provider: 'wxpay',
|
provider: 'wxpay',
|
||||||
timeStamp: res.timeStamp,
|
timeStamp: res.timeStamp,
|
||||||
orderInfo: '',
|
orderInfo: '',
|
||||||
nonceStr: res.nonceStr, //随机字符串,长度为32个字符以下。
|
nonceStr: res.nonceStr, // 随机字符串,长度为32个字符以下。
|
||||||
package: res.package, //prepay_id 参数值,提交格式如:prepay_id=xx
|
package: res.package, // prepay_id 参数值,提交格式如:prepay_id=xx
|
||||||
signType: res.signType, //MD5类型
|
signType: res.signType, // MD5类型
|
||||||
paySign: res.paySign, //签名
|
paySign: res.paySign, // 签名
|
||||||
success: (result) => {
|
success: (result) => {
|
||||||
uni.showToast({
|
uni.showToast({
|
||||||
title: '支付成功!',
|
title: '支付成功!',
|
||||||
|
|
|
||||||
|
|
@ -9,11 +9,13 @@
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<view class="flex flex-col items-center">
|
<view class="flex flex-col items-center">
|
||||||
<image
|
<view class="w-[440rpx] h-[440rpx] mt-[136rpx]">
|
||||||
class="w-[440rpx] h-[440rpx] mt-[136rpx]"
|
<image
|
||||||
src="https://api.static.ycymedu.com/images/logo.png"
|
class="w-[440rpx] h-[440rpx]"
|
||||||
mode="aspectFit"
|
src="https://api.static.ycymedu.com/images/logo.png"
|
||||||
></image>
|
mode="aspectFit"
|
||||||
|
></image>
|
||||||
|
</view>
|
||||||
|
|
||||||
<button
|
<button
|
||||||
class="w-[493rpx]! mb-[40rpx] h-[88rpx]! rounded-[44rpx] text-[32rpx] text-white flex items-center justify-center bg-[#1580FF]"
|
class="w-[493rpx]! mb-[40rpx] h-[88rpx]! rounded-[44rpx] text-[32rpx] text-white flex items-center justify-center bg-[#1580FF]"
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@
|
||||||
* @see [uni.getDeviceInfo](https://uniapp.dcloud.net.cn/api/system/getDeviceInfo.html)
|
* @see [uni.getDeviceInfo](https://uniapp.dcloud.net.cn/api/system/getDeviceInfo.html)
|
||||||
*/
|
*/
|
||||||
export function getDeviceInfo() {
|
export function getDeviceInfo() {
|
||||||
if(uni.getSystemInfoSync || uni.canIUse("getSystemInfoSync")){
|
if (uni.getSystemInfoSync || uni.canIUse('getSystemInfoSync')) {
|
||||||
return uni.getSystemInfoSync()
|
return uni.getSystemInfoSync()
|
||||||
} else {
|
} else {
|
||||||
return uni.getDeviceInfo()
|
return uni.getDeviceInfo()
|
||||||
|
|
|
||||||
|
|
@ -131,6 +131,9 @@ export default ({ command, mode }) => {
|
||||||
alias: {
|
alias: {
|
||||||
'@': path.join(process.cwd(), './src'),
|
'@': path.join(process.cwd(), './src'),
|
||||||
'@img': path.join(process.cwd(), './src/static/images'),
|
'@img': path.join(process.cwd(), './src/static/images'),
|
||||||
|
// 修复部分三方库引用 entities/decode / entities/encode 的子路径导入在 exports 下无法解析的问题
|
||||||
|
'entities/decode': 'entities/lib/decode.js',
|
||||||
|
'entities/encode': 'entities/lib/encode.js',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
server: {
|
server: {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue