refactor: 页面优化

master
xjs 2025-04-07 15:00:35 +08:00
parent ab1beec959
commit 303284fd96
39 changed files with 206 additions and 139 deletions

View File

@ -26,6 +26,8 @@ export const initRankAreaEchart = ({
show: false, show: false,
}, },
grid: { grid: {
left: '16',
right: '16',
containLabel: false, containLabel: false,
}, },
series: [ series: [

View File

@ -7,7 +7,7 @@
</route> </route>
<template> <template>
<scroll-view :scroll-y="true" class="flex flex-col h-screen relative custom-bg"> <view class="flex flex-col h-screen relative custom-bg">
<Navbar <Navbar
safeAreaInsetTop safeAreaInsetTop
:bordered="false" :bordered="false"
@ -39,7 +39,7 @@
<text class="text-[#117CFC] text-[26rpx]">智能AI顾问</text> <text class="text-[#117CFC] text-[26rpx]">智能AI顾问</text>
</view> --> </view> -->
</view> </view>
</scroll-view> </view>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import Navbar from '@/pages-evaluation-sub/components/navbar/Navbar.vue' import Navbar from '@/pages-evaluation-sub/components/navbar/Navbar.vue'

View File

@ -7,7 +7,7 @@
</route> </route>
<template> <template>
<scroll-view :scroll-y="true" class="flex flex-col h-screen relative custom-bg"> <view class="flex flex-col h-screen relative custom-bg">
<Navbar <Navbar
safeAreaInsetTop safeAreaInsetTop
:bordered="false" :bordered="false"
@ -42,7 +42,7 @@
<text class="text-[#117CFC] text-[26rpx]">智能AI顾问</text> <text class="text-[#117CFC] text-[26rpx]">智能AI顾问</text>
</view> --> </view> -->
</view> </view>
</scroll-view> </view>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import Navbar from '@/pages-evaluation-sub/components/navbar/Navbar.vue' import Navbar from '@/pages-evaluation-sub/components/navbar/Navbar.vue'

View File

@ -7,7 +7,7 @@
</route> </route>
<template> <template>
<scroll-view :scroll-y="true" class="flex flex-col h-screen relative custom-bg"> <view class="flex flex-col h-screen relative custom-bg">
<Navbar <Navbar
safeAreaInsetTop safeAreaInsetTop
:bordered="false" :bordered="false"
@ -43,7 +43,7 @@
<text class="text-[#117CFC] text-[26rpx]">智能AI顾问</text> <text class="text-[#117CFC] text-[26rpx]">智能AI顾问</text>
</view> --> </view> -->
</view> </view>
</scroll-view> </view>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import Navbar from '@/pages-evaluation-sub/components/navbar/Navbar.vue' import Navbar from '@/pages-evaluation-sub/components/navbar/Navbar.vue'

View File

@ -7,7 +7,7 @@
</route> </route>
<template> <template>
<scroll-view :scroll-y="true" class="flex flex-col h-screen relative custom-bg"> <view :scroll-y="true" class="flex flex-col h-screen relative custom-bg">
<Navbar <Navbar
safeAreaInsetTop safeAreaInsetTop
:bordered="false" :bordered="false"
@ -35,7 +35,7 @@
<text class="text-[#117CFC] text-[26rpx]">智能AI顾问</text> <text class="text-[#117CFC] text-[26rpx]">智能AI顾问</text>
</view> --> </view> -->
</view> </view>
</scroll-view> </view>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import Navbar from '@/pages-evaluation-sub/components/navbar/Navbar.vue' import Navbar from '@/pages-evaluation-sub/components/navbar/Navbar.vue'

View File

@ -11,7 +11,7 @@
</view> </view>
<view <view
:class="`flex py-[15rpx] px-[36rpx] ${index % 2 === 0 ? 'bg-[#fff]' : 'bg-[#F5FAFF]'}`" :class="`flex py-[15rpx] text-[#333] text-[24rpx] px-[36rpx] ${index % 2 === 0 ? 'bg-[#fff]' : 'bg-[#F5FAFF]'}`"
v-for="(major, index) in majorList" v-for="(major, index) in majorList"
:key="index" :key="index"
> >

View File

@ -7,7 +7,9 @@
<view class="py-[12rpx] text-center bg-color flex-1">性格特点</view> <view class="py-[12rpx] text-center bg-color flex-1">性格特点</view>
</view> </view>
<view class="flex gap-[10rpx] w-full" v-for="(item, index) in reportItems" :key="index"> <view class="flex gap-[10rpx] w-full" v-for="(item, index) in reportItems" :key="index">
<view class="w-[94rpx] py-[12rpx] bg-color text-center"> <view
class="w-[94rpx] py-[12rpx] bg-color text-center flex flex-col justify-center items-center"
>
<view>{{ item.tag }}</view> <view>{{ item.tag }}</view>
<view>{{ item.title }}</view> <view>{{ item.title }}</view>
</view> </view>

View File

@ -145,6 +145,12 @@ const searchParams = ref({
}) })
const handleConfirm = () => { const handleConfirm = () => {
let maxSCore = betweenScores.value.split('到').map((item) => item.replace(/分/g, ''))
if (+searchParams.value.Score > +maxSCore[1]) {
searchParams.value.Score = maxSCore[1]
} else if (+searchParams.value.Score < +maxSCore[0]) {
searchParams.value.Score = maxSCore[0]
}
getScoreSectionData() getScoreSectionData()
} }

View File

@ -96,7 +96,7 @@ const handleClose = () => {
} }
&-content { &-content {
max-height: 75vh; max-height: 55vh;
min-height: 500rpx; min-height: 500rpx;
} }

File diff suppressed because one or more lines are too long

View File

@ -15,10 +15,10 @@
</Navbar> </Navbar>
<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] radius-[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">
<image <image
class="w-[144rpx] h-[144rpx] rounded-full" class="min-w-[144rpx] min-h-[144rpx] w-[144rpx] h-[144rpx] 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 class="flex flex-col text-[#000] ml-[32rpx]"> <view class="flex flex-col text-[#000] ml-[32rpx]">

View File

@ -62,7 +62,7 @@
</view> </view>
</view> </view>
<MessageBox v-model:show="show" title="" :defaultPadding="false"> <MessageBox v-model:show="show" title="" :defaultPadding="false" defaultWidth="85%">
<template> <template>
<view class="custom-background"> <view class="custom-background">
<view class="px-[32rpx] pt-[48rpx]"> <view class="px-[32rpx] pt-[48rpx]">
@ -70,10 +70,12 @@
<view <view
class="bg-[rgba(21,128,255,0.1)] flex items-center gap-[10rpx] text-[24rpx] text-[#444] px-[24rpx] py-[6rpx] w-max rounded-[10rpx] mt-[10rpx]" class="bg-[rgba(21,128,255,0.1)] flex items-center gap-[10rpx] text-[24rpx] text-[#444] px-[24rpx] py-[6rpx] w-max rounded-[10rpx] mt-[10rpx]"
> >
<view class="i-carbon-time-filled text-[#1580FF]"></view> <view class="i-carbon-time-filled text-[#1580FF] w-[24rpx] h-[24rpx]"></view>
<view>{{ useTime }}</view> <view>{{ useTime }}</view>
</view> </view>
<view class="text-[30rpx] my-[40rpx]">{{ quesApplication }}</view> <view class="text-[30rpx] my-[40rpx] text-[#333] text-[28rpx]">
{{ quesApplication }}
</view>
</view> </view>
<view <view
class="text-center py-[26rpx] text-[#1580FF] text-[36rpx] font-medium start-border" class="text-center py-[26rpx] text-[#1580FF] text-[36rpx] font-medium start-border"
@ -317,4 +319,9 @@ const handleSubmit = () => {
transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0);
transition: all 0.3s ease; transition: all 0.3s ease;
} }
wx-button[disabled]:not([type]) {
background-color: rgba(255, 255, 255, 0.4);
color: #fff;
}
</style> </style>

View File

@ -21,7 +21,7 @@
</Badge> </Badge>
<image <image
class="w-[286rpx] h-[286rpx] mt-[134rpx] mix-blend-multiply bg-[#f8f8f8]" class="w-[286rpx] h-[286rpx] mt-[134rpx]"
src="https://api.static.ycymedu.com/sub/images/autoFill/auto-fill.jpg" src="https://api.static.ycymedu.com/sub/images/autoFill/auto-fill.jpg"
mode="widthFix" mode="widthFix"
@click="show = true" @click="show = true"
@ -66,10 +66,6 @@ import { useUserStore } from '@/store/user'
const userStore = useUserStore() const userStore = useUserStore()
const navigatorBack = () => {
uni.navigateBack()
}
const show = ref(false) const show = ref(false)
const badgeValue = ref(1) const badgeValue = ref(1)

View File

@ -2,14 +2,14 @@
<view class="flex flex-col"> <view class="flex flex-col">
<view class="flex flex-col px-[32rpx] mt-[40rpx]"> <view class="flex flex-col px-[32rpx] mt-[40rpx]">
<text class="text-[32rpx] text-[#333] font-semibold mb-[22rpx]">简介</text> <text class="text-[32rpx] text-[#333] font-semibold mb-[22rpx]">简介</text>
<text class="text-[22rpx] text-[#636363]"> <text class="text-[24rpx] text-[#636363]">
{{ careerInfo.intro }} {{ careerInfo.intro }}
</text> </text>
</view> </view>
<view class="h-[16rpx] bg-[#f8f8f8] mt-[36rpx] mb-[40rpx]"></view> <view class="h-[16rpx] bg-[#f8f8f8] mt-[36rpx] mb-[40rpx]"></view>
<view class="flex flex-col px-[32rpx] mt-[40rpx]"> <view class="flex flex-col px-[32rpx] mt-[40rpx]">
<text class="text-[32rpx] text-[#333] font-semibold mb-[22rpx]">职业定义</text> <text class="text-[32rpx] text-[#333] font-semibold mb-[22rpx]">职业定义</text>
<text class="text-[22rpx] text-[#636363]"> <text class="text-[24rpx] text-[#636363]">
{{ careerInfo.definition }} {{ careerInfo.definition }}
</text> </text>
</view> </view>

View File

@ -4,19 +4,19 @@
<text class="text-[32rpx] text-[#333] font-semibold mb-[23rpx]">发展前景</text> <text class="text-[32rpx] text-[#333] font-semibold mb-[23rpx]">发展前景</text>
<view class="mb-[36rpx]"> <view class="mb-[36rpx]">
<view class="text-[24rpx] text-[#333] font-semibold">行业发展前景</view> <view class="text-[24rpx] text-[#333] font-semibold">行业发展前景</view>
<text class="text-[22rpx] text-[#636363]"> <text class="text-[24rpx] text-[#636363]">
{{ prospect.industry }} {{ prospect.industry }}
</text> </text>
</view> </view>
<view class="mb-[36rpx]"> <view class="mb-[36rpx]">
<view class="text-[24rpx] text-[#333] font-semibold">个人发展路径</view> <view class="text-[24rpx] text-[#333] font-semibold">个人发展路径</view>
<text class="text-[22rpx] text-[#636363]"> <text class="text-[24rpx] text-[#636363]">
{{ prospect.person }} {{ prospect.person }}
</text> </text>
</view> </view>
<view class="mb-[36rpx]"> <view class="mb-[36rpx]">
<view class="text-[24rpx] text-[#333] font-semibold">职业的就业趋势</view> <view class="text-[24rpx] text-[#333] font-semibold">职业的就业趋势</view>
<text class="text-[22rpx] text-[#636363]"> <text class="text-[24rpx] text-[#636363]">
{{ prospect.career }} {{ prospect.career }}
</text> </text>
</view> </view>
@ -26,19 +26,19 @@
<text class="text-[32rpx] text-[#333] font-semibold mb-[23rpx]">薪资待遇</text> <text class="text-[32rpx] text-[#333] font-semibold mb-[23rpx]">薪资待遇</text>
<view class="mb-[36rpx]"> <view class="mb-[36rpx]">
<view class="text-[24rpx] text-[#333] font-semibold">薪资结构</view> <view class="text-[24rpx] text-[#333] font-semibold">薪资结构</view>
<text class="text-[22rpx] text-[#636363]"> <text class="text-[24rpx] text-[#636363]">
{{ salary.structure }} {{ salary.structure }}
</text> </text>
</view> </view>
<view class="mb-[36rpx]"> <view class="mb-[36rpx]">
<view class="text-[24rpx] text-[#333] font-semibold">满意度</view> <view class="text-[24rpx] text-[#333] font-semibold">满意度</view>
<text class="text-[22rpx] text-[#636363]"> <text class="text-[24rpx] text-[#636363]">
{{ salary.satisfaction }} {{ salary.satisfaction }}
</text> </text>
</view> </view>
<view class="mb-[36rpx]"> <view class="mb-[36rpx]">
<view class="text-[24rpx] text-[#333] font-semibold">福利制度</view> <view class="text-[24rpx] text-[#333] font-semibold">福利制度</view>
<text class="text-[22rpx] text-[#636363]"> <text class="text-[24rpx] text-[#636363]">
{{ salary.welfare }} {{ salary.welfare }}
</text> </text>
</view> </view>

View File

@ -2,28 +2,28 @@
<view class="flex flex-col"> <view class="flex flex-col">
<view class="flex flex-col px-[32rpx] mt-[40rpx]"> <view class="flex flex-col px-[32rpx] mt-[40rpx]">
<text class="text-[32rpx] text-[#333] font-semibold mb-[22rpx]">学历要求</text> <text class="text-[32rpx] text-[#333] font-semibold mb-[22rpx]">学历要求</text>
<text class="text-[22rpx] text-[#636363]"> <text class="text-[24rpx] text-[#636363]">
{{ knowledgeInfo.diplomas }} {{ knowledgeInfo.diplomas }}
</text> </text>
</view> </view>
<view class="h-[16rpx] bg-[#f8f8f8] mt-[36rpx] mb-[40rpx]"></view> <view class="h-[16rpx] bg-[#f8f8f8] mt-[36rpx] mb-[40rpx]"></view>
<view class="flex flex-col px-[32rpx] mt-[40rpx]"> <view class="flex flex-col px-[32rpx] mt-[40rpx]">
<text class="text-[32rpx] text-[#333] font-semibold mb-[22rpx]">行业知识</text> <text class="text-[32rpx] text-[#333] font-semibold mb-[22rpx]">行业知识</text>
<text class="text-[22rpx] text-[#636363]"> <text class="text-[24rpx] text-[#636363]">
{{ knowledgeInfo.trade }} {{ knowledgeInfo.trade }}
</text> </text>
</view> </view>
<view class="h-[16rpx] bg-[#f8f8f8] mt-[36rpx] mb-[40rpx]"></view> <view class="h-[16rpx] bg-[#f8f8f8] mt-[36rpx] mb-[40rpx]"></view>
<view class="flex flex-col px-[32rpx] mt-[40rpx]"> <view class="flex flex-col px-[32rpx] mt-[40rpx]">
<text class="text-[32rpx] text-[#333] font-semibold mb-[22rpx]">专业知识</text> <text class="text-[32rpx] text-[#333] font-semibold mb-[22rpx]">专业知识</text>
<text class="text-[22rpx] text-[#636363]"> <text class="text-[24rpx] text-[#636363]">
{{ knowledgeInfo.pro }} {{ knowledgeInfo.pro }}
</text> </text>
</view> </view>
<view class="h-[16rpx] bg-[#f8f8f8] mt-[36rpx] mb-[40rpx]"></view> <view class="h-[16rpx] bg-[#f8f8f8] mt-[36rpx] mb-[40rpx]"></view>
<view class="flex flex-col px-[32rpx] mt-[40rpx]"> <view class="flex flex-col px-[32rpx] mt-[40rpx]">
<text class="text-[32rpx] text-[#333] font-semibold mb-[22rpx]">大学课程</text> <text class="text-[32rpx] text-[#333] font-semibold mb-[22rpx]">大学课程</text>
<text class="text-[22rpx] text-[#636363]"> <text class="text-[24rpx] text-[#636363]">
{{ jsonCurriculum.important }} {{ jsonCurriculum.important }}
</text> </text>
</view> </view>

View File

@ -1,11 +1,11 @@
<template> <template>
<view class="bg-white flex w-full flex-1"> <view class="bg-white flex h-full">
<view class="w-[260rpx] bg-[#F7F8FA] flex flex-col items-center"> <view class="w-[260rpx] bg-[#F7F8FA] flex flex-col items-center overflow-y-auto h-full">
<view <view
v-for="item in menus" v-for="item in menus"
:key="item._id" :key="item._id"
:class="[ :class="[
'flex items-center view-block pl-[32rpx] h-[96rpx] text-[28rpx] font-semibold', 'flex items-center view-block pl-[32rpx] min-h-[96rpx]! text-[28rpx] text-[#666]',
currentMenuObj?._id === item._id ? 'active' : '', currentMenuObj?._id === item._id ? 'active' : '',
]" ]"
@click="changeMenu(item)" @click="changeMenu(item)"
@ -13,7 +13,7 @@
{{ item.rootName }} {{ item.rootName }}
</view> </view>
</view> </view>
<view class="flex-1 mt-[40rpx] flex flex-col"> <view class="flex-1 mt-[40rpx] flex flex-col overflow-y-auto h-full">
<MajorTreeList v-if="currentMenuObj" :sub-major-list="currentMenuObj" /> <MajorTreeList v-if="currentMenuObj" :sub-major-list="currentMenuObj" />
</view> </view>
</view> </view>

View File

@ -3,14 +3,14 @@
<view class="flex flex-col px-[32rpx] mt-[40rpx]"> <view class="flex flex-col px-[32rpx] mt-[40rpx]">
<text class="text-[32rpx] text-[#333] font-semibold mb-[23rpx]">职业技能</text> <text class="text-[32rpx] text-[#333] font-semibold mb-[23rpx]">职业技能</text>
<view class="mb-[36rpx]"> <view class="mb-[36rpx]">
<view class="text-[24rpx] text-[#333] font-semibold">专业技能</view> <view class="text-[26rpx] text-[#333] font-semibold">专业技能</view>
<text class="text-[22rpx] text-[#636363]"> <text class="text-[24rpx] text-[#636363]">
{{ proSkill.skill_pro }} {{ proSkill.skill_pro }}
</text> </text>
</view> </view>
<view class="mb-[36rpx]"> <view class="mb-[36rpx]">
<view class="text-[24rpx] text-[#333] font-semibold">通用技能</view> <view class="text-[26rpx] text-[#333] font-semibold">通用技能</view>
<text class="text-[22rpx] text-[#636363]"> <text class="text-[24rpx] text-[#636363]">
{{ proSkill.skill_general }} {{ proSkill.skill_general }}
</text> </text>
</view> </view>
@ -19,14 +19,14 @@
<view class="flex flex-col px-[32rpx] mt-[40rpx]"> <view class="flex flex-col px-[32rpx] mt-[40rpx]">
<text class="text-[32rpx] text-[#333] font-semibold mb-[23rpx]">从业资格</text> <text class="text-[32rpx] text-[#333] font-semibold mb-[23rpx]">从业资格</text>
<view class="mb-[36rpx]"> <view class="mb-[36rpx]">
<view class="text-[24rpx] text-[#333] font-semibold">必须项</view> <view class="text-[26rpx] text-[#333] font-semibold">必须项</view>
<text class="text-[22rpx] text-[#636363]"> <text class="text-[24rpx] text-[#636363]">
{{ qualification.necessary }} {{ qualification.necessary }}
</text> </text>
</view> </view>
<view class="mb-[36rpx]"> <view class="mb-[36rpx]">
<view class="text-[24rpx] text-[#333] font-semibold">附加项</view> <view class="text-[26rpx] text-[#333] font-semibold">附加项</view>
<text class="text-[22rpx] text-[#636363]"> <text class="text-[24rpx] text-[#636363]">
{{ qualification.addition }} {{ qualification.addition }}
</text> </text>
</view> </view>
@ -34,7 +34,7 @@
<view class="h-[16rpx] bg-[#f8f8f8] mt-[36rpx] mb-[40rpx]"></view> <view class="h-[16rpx] bg-[#f8f8f8] mt-[36rpx] mb-[40rpx]"></view>
<view class="flex flex-col px-[32rpx] mt-[40rpx]"> <view class="flex flex-col px-[32rpx] mt-[40rpx]">
<text class="text-[32rpx] text-[#333] font-semibold mb-[22rpx]">职业道德</text> <text class="text-[32rpx] text-[#333] font-semibold mb-[22rpx]">职业道德</text>
<text class="text-[22rpx] text-[#636363]"> <text class="text-[24rpx] text-[#636363]">
{{ ethics }} {{ ethics }}
</text> </text>
</view> </view>

View File

@ -21,8 +21,8 @@
<view class="custom-background h-[200rpx] w-full absolute top-0 left-0 z-[-1]"></view> <view class="custom-background h-[200rpx] w-full absolute top-0 left-0 z-[-1]"></view>
</view> </view>
<view class="flex-1 h-[0] overflow-auto pb-safe"> <view class="flex-1 pb-safe flex flex-col overflow-y-auto">
<LeftMenu /> <LeftMenu class="h-full" />
</view> </view>
</view> </view>
</template> </template>

View File

@ -36,7 +36,7 @@
</button> </button>
<ActionSheet v-model:show="show" title="院校简介" :show-close="true"> <ActionSheet v-model:show="show" title="院校简介" :show-close="true">
<view class="text-[22rpx] text-[#636363] px-[32rpx] pt-[32rpx]"> <view class="text-[24rpx] text-[#636363] px-[32rpx] pt-[32rpx]">
{{ universityResult?.detail }} {{ universityResult?.detail }}
</view> </view>
</ActionSheet> </ActionSheet>

View File

@ -41,9 +41,9 @@
{{ universityBaseInfo?.universityResult.features.slice(0, 4).join('/&nbsp;') }} {{ universityBaseInfo?.universityResult.features.slice(0, 4).join('/&nbsp;') }}
</text> </text>
</view> </view>
<button class="collect-btn" plain @click="handleStar"> <button class="collect-btn whitespace-nowrap" plain @click="handleStar">
<view class="i-carbon-star-filled" v-if="startFlag"></view> <view class="i-carbon-star-filled min-w-[24rpx] min-h-[24rxp]" v-if="startFlag"></view>
<view class="i-carbon-star" v-else></view> <view class="i-carbon-star min-w-[24rpx] min-h-[24rxp]" v-else></view>
收藏 收藏
</button> </button>
</view> </view>
@ -203,8 +203,7 @@ const handleStar = () => {
border: 2rpx solid #eee !important; border: 2rpx solid #eee !important;
color: #636363 !important; color: #636363 !important;
width: unset !important; min-width: max-content !important;
min-width: unset !important;
border-radius: 12rpx !important; border-radius: 12rpx !important;
margin-right: 0 !important; margin-right: 0 !important;
padding: 12rpx !important; padding: 12rpx !important;
@ -215,5 +214,6 @@ const handleStar = () => {
align-items: center !important; align-items: center !important;
font-size: 24rpx !important; font-size: 24rpx !important;
width: max-content !important;
} }
</style> </style>

View File

@ -21,6 +21,7 @@ import { getBatchDynamicData, getWxUserInfo } from '@/service/index/api'
import RadioGroup from '@/pages-sub/components/radio-group/RadioGroup.vue' import RadioGroup from '@/pages-sub/components/radio-group/RadioGroup.vue'
import Radio from '@/pages-sub/components/radio-group/Radio.vue' import Radio from '@/pages-sub/components/radio-group/Radio.vue'
import { useUserStore } from '@/store/user' import { useUserStore } from '@/store/user'
import { useRules } from '@/pages-sub/home/inputScore/useRules'
const userStore = useUserStore() const userStore = useUserStore()
@ -52,7 +53,8 @@ const fetchBatchData = () => {
} }
onLoad(() => { onLoad(() => {
fetchBatchData() useRules(fetchBatchData)
// if (userStore.userInfo.batchDataUrl) { // if (userStore.userInfo.batchDataUrl) {
// fetchBatchData() // fetchBatchData()
// } else { // } else {

File diff suppressed because one or more lines are too long

View File

@ -15,6 +15,7 @@
@virtualListChange="virtualListChange" @virtualListChange="virtualListChange"
@query="queryList" @query="queryList"
:auto-show-system-loading="true" :auto-show-system-loading="true"
:safe-area-inset-bottom="true"
> >
<template #top> <template #top>
<view class="relative"> <view class="relative">
@ -30,7 +31,7 @@
</view> </view>
<drop-menu> <drop-menu>
<drop-menu-item :key="1" :title="'省份'" custom-class="flex items-center"> <drop-menu-item :key="1" :title="'省份'" custom-class="flex items-center">
<view class="pl-[32rpx] pb-[32rpx]"> <view class="pl-[32rpx] pb-[32rpx] pt-[16rpx]">
<Region <Region
:defaultValue="searchParams.locationCode" :defaultValue="searchParams.locationCode"
@changeName="handleRegionChange" @changeName="handleRegionChange"
@ -39,12 +40,12 @@
</view> </view>
</drop-menu-item> </drop-menu-item>
<drop-menu-item :key="2" :title="'层次'" custom-class="flex items-center"> <drop-menu-item :key="2" :title="'层次'" custom-class="flex items-center">
<view class="pl-[32rpx] pb-[32rpx]"> <view class="pl-[32rpx] pb-[32rpx] pt-[16rpx]">
<Nature @changeName="handleNatureChange" /> <Nature @changeName="handleNatureChange" />
</view> </view>
</drop-menu-item> </drop-menu-item>
<drop-menu-item :key="3" title="类别" custom-class="flex items-center"> <drop-menu-item :key="3" title="类别" custom-class="flex items-center">
<view class="pl-[32rpx] pb-[32rpx]"> <view class="pl-[32rpx] pb-[32rpx] pt-[16rpx]">
<UniType @change-name="handleUniTypeChange" /> <UniType @change-name="handleUniTypeChange" />
</view> </view>
</drop-menu-item> </drop-menu-item>
@ -68,10 +69,14 @@
<view <view
class="bg-[#F7F7F7] flex items-center justify-between text-[20rpx] text-[#333] px-[28rpx] py-[16rpx] sticky top-0" class="bg-[#F7F7F7] flex items-center justify-between text-[20rpx] text-[#333] px-[28rpx] py-[16rpx] sticky top-0"
> >
<view class="flex-auto">院校</view> <view class="flex-auto text-[24rpx] font-semibold">院校</view>
<view class="w-[80rpx] text-center px-[25rpx]">招生专业</view> <view class="w-[96rpx] text-center px-[16rpx] text-[24rpx] font-semibold">招生专业</view>
<view class="w-[86rpx] text-center px-[25rpx]">{{ tModel.year }}计划</view> <view class="w-[116rpx] text-center px-[16rpx] text-[24rpx] font-semibold">
<view class="w-[66rpx] text-center pl-[25rpx]">{{ tModel.year - 1 }}</view> {{ tModel.year }}计划
</view>
<view class="w-[86rpx] text-center pl-[16rpx] text-[24rpx] font-semibold">
{{ tModel.year - 1 }}
</view>
</view> </view>
<view <view
@ -84,7 +89,7 @@
<view class="flex-1 flex items-center"> <view class="flex-1 flex items-center">
<image :src="item.logo" mode="scaleToFill" class="w-[72rpx] h-[72rpx] mr-[6rpx]" /> <image :src="item.logo" mode="scaleToFill" class="w-[72rpx] h-[72rpx] mr-[6rpx]" />
<view class="ml-[6rpx]"> <view class="ml-[6rpx]">
<view class="text-[32rpx] font-semibold"> <view class="text-[32rpx] font-semibold truncate max-w-[200rpx]">
{{ item.name }} {{ item.name }}
</view> </view>
<view class="mt-[6rpx] text-[22rpx]"> <view class="mt-[6rpx] text-[22rpx]">
@ -93,9 +98,9 @@
</view> </view>
</view> </view>
</view> </view>
<view class="w-[80rpx] text-center px-[25rpx]">{{ item.planCount }}</view> <view class="w-[96rpx] text-center px-[16rpx] text-[24rpx]">{{ item.planCount }}</view>
<view class="w-[86rpx] text-center px-[25rpx]">{{ item.newPlan }}</view> <view class="w-[116rpx] text-center px-[16rpx] text-[24rpx]">{{ item.newPlan }}</view>
<view class="w-[66rpx] text-center pl-[25rpx] pr-[28rpx]"> <view class="w-[86rpx] text-center pl-[16rpx] pr-[28rpx] text-[24rpx]">
<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>

View File

@ -12,7 +12,7 @@ export const requireSubject = ref('')
// 任意选择科目 // 任意选择科目
export const optionalSubject = ref([]) export const optionalSubject = ref([])
export const useRules = () => { export const useRules = (callback?: any) => {
getCountryRules().then((res) => { getCountryRules().then((res) => {
if (res.code === 200) { if (res.code === 200) {
const results = res.result as RuleResult[] const results = res.result as RuleResult[]
@ -26,6 +26,7 @@ export const useRules = () => {
return return
} }
splitSubject(requireSubjectList.value, optionalSubjectList.value) splitSubject(requireSubjectList.value, optionalSubjectList.value)
callback()
} }
}) })
} }

View File

@ -21,7 +21,7 @@
</view> </view>
<drop-menu> <drop-menu>
<drop-menu-item :key="1" :title="searchParams.locationName || '省份'"> <drop-menu-item :key="1" :title="searchParams.locationName || '省份'">
<view class="pl-[32rpx] pb-[32rpx]"> <view class="pl-[32rpx] pb-[32rpx] pt-[16rpx]">
<Region <Region
:defaultValue="searchParams.locationCode ? [searchParams.locationCode] : []" :defaultValue="searchParams.locationCode ? [searchParams.locationCode] : []"
:max="1" :max="1"
@ -35,7 +35,7 @@
:title="searchParams.year || '年份'" :title="searchParams.year || '年份'"
custom-class="flex items-center" custom-class="flex items-center"
> >
<view class="pl-[32rpx] pb-[32rpx]"> <view class="pl-[32rpx] pb-[32rpx] pt-[16rpx]">
<CheckGroup <CheckGroup
:list="checkYearList" :list="checkYearList"
:default-value="searchParams.year ? [searchParams.year] : []" :default-value="searchParams.year ? [searchParams.year] : []"
@ -47,7 +47,7 @@
</view> </view>
</drop-menu-item> </drop-menu-item>
<drop-menu-item :key="3" title="类别" custom-class="flex items-center"> <drop-menu-item :key="3" title="类别" custom-class="flex items-center">
<view class="pl-[32rpx] pb-[32rpx]"> <view class="pl-[32rpx] pb-[32rpx] pt-[16rpx]">
<UniType <UniType
@change="handleUniTypeChange" @change="handleUniTypeChange"
:max="1" :max="1"
@ -56,7 +56,7 @@
</view> </view>
</drop-menu-item> </drop-menu-item>
</drop-menu> </drop-menu>
<WXXTable :data="lineList" class="px-[32rpx] mt-[16rpx] pb-safe"> <WXXTable :data="lineList" class="px-[32rpx] mt-[16rpx] pb-safe flex-1">
<WXXTableCol prop="province_name" label="地区" width="14%"></WXXTableCol> <WXXTableCol prop="province_name" label="地区" width="14%"></WXXTableCol>
<WXXTableCol prop="year" label="年份" width="23%"></WXXTableCol> <WXXTableCol prop="year" label="年份" width="23%"></WXXTableCol>
<WXXTableCol prop="subject_name" label="类别" width="23%"></WXXTableCol> <WXXTableCol prop="subject_name" label="类别" width="23%"></WXXTableCol>

View File

@ -13,7 +13,6 @@
bg-color="transparent" bg-color="transparent"
:bordered="false" :bordered="false"
left-arrow left-arrow
title="查职业"
@click-left="navigatorBack" @click-left="navigatorBack"
content-class="justify-start" content-class="justify-start"
> >

View File

@ -1,7 +1,7 @@
.custom-background { .custom-background {
background-image: linear-gradient( background-image: linear-gradient(
173deg, 173deg,
rgb(177, 221, 250) 0, rgb(228, 241, 247) 0,
rgb(177, 221, 250) 13%, rgb(177, 221, 250) 13%,
rgba(255, 255, 255, 1) 80%, rgba(255, 255, 255, 1) 80%,
rgba(255, 255, 255, 1) 100% rgba(255, 255, 255, 1) 100%

View File

@ -2,7 +2,7 @@
<view <view
v-for="major in college.items" v-for="major in college.items"
:key="major.planId" :key="major.planId"
class="pt-[32rpx] pl-[58rpx] pr-[32rpx] pb-[30rpx] custom-background flex gap-[58rpx]" class="pt-[32rpx] px-[32rpx] pb-[30rpx] custom-background flex gap-[58rpx]"
:style="`--background-color:${calcTypeName(major.type).style.backgroundColor}`" :style="`--background-color:${calcTypeName(major.type).style.backgroundColor}`"
> >
<view class="flex flex-col gap-[16rpx]"> <view class="flex flex-col gap-[16rpx]">

View File

@ -6,7 +6,7 @@
<view <view
v-for="(headItem, index) in columns" v-for="(headItem, index) in columns"
:key="index" :key="index"
class="text-[22rpx] text-[#505050]" class="text-[24rpx] text-[#505050]"
:style="{ width: headItem.width }" :style="{ width: headItem.width }"
> >
{{ headItem.label }} {{ headItem.label }}
@ -26,7 +26,7 @@
> >
<view <view
v-for="(col, colIndex) in columns" v-for="(col, colIndex) in columns"
class="text-[22rpx] text-[#505050]" class="text-[24rpx] text-[#505050]"
:style="{ width: col.width }" :style="{ width: col.width }"
:key="colIndex" :key="colIndex"
> >

View File

@ -15,8 +15,7 @@
college.items.reduce((a, b) => a + Number(b.percentAge.replace('%', '')), 0) / college.items.reduce((a, b) => a + Number(b.percentAge.replace('%', '')), 0) /
college.items.length, college.items.length,
) )
}} }}%
%
</text> </text>
</view> </view>
<view class="flex flex-col ml-[24rpx] justify-between flex-1"> <view class="flex flex-col ml-[24rpx] justify-between flex-1">
@ -40,9 +39,9 @@
</view> </view>
</view> </view>
<view class="flex flex-col gap-[8rpx] items-center"> <view class="flex flex-col gap-[8rpx] items-center whitespace-nowrap">
<view <view
class="text-[24rpx] px-[16rpx] py-[12rpx] rounded-[8rpx] border-[2rpx] border-[#1580FF] border-solid" class="text-[24rpx] px-[16rpx] py-[12rpx] rounded-[8rpx] border-[2rpx] border-[#1580FF] border-solid whitespace-nowrap"
@click.stop="handleShow" @click.stop="handleShow"
> >
专业{{ college.items.length }} 专业{{ college.items.length }}

View File

@ -8,7 +8,7 @@
{{ college?.city }}·{{ college?.educationCategory }} {{ college?.city }}·{{ college?.educationCategory }}
</text> </text>
</view> </view>
<view class="flex flex-col items-end gap-[40rpx]"> <view class="flex flex-col items-end gap-[40rpx] whitespace-nowrap">
<view class="i-carbon-close-large w-[40rpx] h-[40rpx]" @click.stop="handleConfirm"></view> <view class="i-carbon-close-large w-[40rpx] h-[40rpx]" @click.stop="handleConfirm"></view>
<view class="text-[22rpx]"> <view class="text-[22rpx]">
<text>已填</text> <text>已填</text>
@ -18,7 +18,6 @@
</view> </view>
</view> </view>
</template> </template>
<CollegeMajor :college="college" v-bind="$attrs" v-if="college" /> <CollegeMajor :college="college" v-bind="$attrs" v-if="college" />
<template #footer> <template #footer>

View File

@ -1,7 +1,7 @@
<route lang="json5" type="page"> <route lang="json5" type="page">
{ {
style: { style: {
navigationBarTitleText: '我的志愿表', navigationStyle: 'custom',
}, },
} }
</route> </route>
@ -17,6 +17,14 @@
:auto-show-system-loading="true" :auto-show-system-loading="true"
> >
<template #top> <template #top>
<Navbar
safeAreaInsetTop
bg-color="transparent"
:bordered="false"
left-arrow
:title="`我的志愿表`"
@click-left="navigatorBack"
/>
<HeaderTip :user-info="userStore.userInfo" /> <HeaderTip :user-info="userStore.userInfo" />
<view class="flex justify-between items-center px-[32rpx] py-[16rpx]"> <view class="flex justify-between items-center px-[32rpx] py-[16rpx]">
<view class="flex items-center gap-[24rpx] text-[#303030]"> <view class="flex items-center gap-[24rpx] text-[#303030]">
@ -135,6 +143,8 @@ import ScrollListItemAction from './components/ScrollListItemAction.vue'
import ScrollListItem from './components/ScrollListItem.vue' import ScrollListItem from './components/ScrollListItem.vue'
import HeaderTip from './components/HeaderTip.vue' import HeaderTip from './components/HeaderTip.vue'
import Navbar from '@/pages-sub/components/navbar/Navbar.vue'
import { getPlanProListByFilter } from '@/service/index/api' import { getPlanProListByFilter } from '@/service/index/api'
import { useUserStore } from '@/store/user' import { useUserStore } from '@/store/user'
@ -142,6 +152,10 @@ import { coverTypeModel, useScore } from './composable/useWishesList'
const userStore = useUserStore() const userStore = useUserStore()
const navigatorBack = () => {
uni.navigateBack()
}
const schoolList = ref([]) const schoolList = ref([])
const paging = ref(null) const paging = ref(null)
const filterMenuRef = ref(null) const filterMenuRef = ref(null)

View File

@ -7,7 +7,7 @@
</route> </route>
<template> <template>
<view class="h-screen flex flex-col"> <view class="h-screen flex flex-col bg-[#f8f8f8] relative z-[-1]">
<view class="relative"> <view class="relative">
<Navbar <Navbar
safeAreaInsetTop safeAreaInsetTop
@ -18,7 +18,7 @@
@click-left="navigatorBack" @click-left="navigatorBack"
content-class="justify-between" content-class="justify-between"
></Navbar> ></Navbar>
<view class="bg-[#fff] rounded-[8rpx] px-[46rpx] pt-[40rpx] pb-[60rpx] mx-[30rpx] mt-[40rpx]"> <view class="bg-[#fff] rounded-[8rpx] px-[46rpx] pt-[40rpx] pb-[30rpx] mx-[30rpx] mt-[40rpx]">
<view class="flex items-center gap-[12rpx]"> <view class="flex items-center gap-[12rpx]">
<image <image
:src="userStore.userInfo?.avatar" :src="userStore.userInfo?.avatar"
@ -71,17 +71,16 @@
<button class="submit-button" @click="handleActive" :disabled="isVIP"> <button class="submit-button" @click="handleActive" :disabled="isVIP">
{{ isVIP ? '已开通' : '立即兑换' }} {{ isVIP ? '已开通' : '立即兑换' }}
</button> </button>
<view <view class="text-[#999] text-[24rpx] text-center mt-[20rpx] text-center" v-show="isVIP">
class="text-[#999] text-[24rpx] text-center mt-[20rpx] mb-[30rpx] text-center"
v-show="isVIP"
>
到期时间:{{ endTime }} 到期时间:{{ endTime }}
</view> </view>
</view> </view>
<view class="custom-background h-[780rpx] w-full absolute top-0 left-0 z-[-1]"></view> <view class="custom-background h-[780rpx] w-full absolute top-0 left-0 z-[-1]"></view>
</view> </view>
<view class="flex flex-col items-start justify-center text-[#999] text-[28rpx] px-[46rpx]"> <view
class="flex flex-col items-start justify-center text-[#999] text-[28rpx] px-[46rpx] mt-[60rpx]"
>
<text class="text-[#333] text-[30rpx] font-semibold mb-[20rpx]">兑换规则</text> <text class="text-[#333] text-[30rpx] font-semibold mb-[20rpx]">兑换规则</text>
<text class="mb-[20rpx]"> <text class="mb-[20rpx]">
1.适用对象普通类文理科考生新高考选科类考生 提前批次及艺术体育类考生暂不适用) 1.适用对象普通类文理科考生新高考选科类考生 提前批次及艺术体育类考生暂不适用)

View File

@ -16,7 +16,7 @@
@query="queryList" @query="queryList"
:auto-show-system-loading="true" :auto-show-system-loading="true"
> >
<template #top> <!-- <template #top>
<z-tabs <z-tabs
:current="currentTab" :current="currentTab"
:list="tabsList" :list="tabsList"
@ -28,7 +28,7 @@
@change="handleTabChange" @change="handleTabChange"
v-bind="{} as any" v-bind="{} as any"
/> />
</template> </template> -->
<view <view
class="item-wrapper" class="item-wrapper"
:id="`zp-id-${item.zp_index}`" :id="`zp-id-${item.zp_index}`"

View File

@ -248,7 +248,7 @@
"path": "home/wishesList/index", "path": "home/wishesList/index",
"type": "page", "type": "page",
"style": { "style": {
"navigationBarTitleText": "我的志愿表" "navigationStyle": "custom"
} }
}, },
{ {

View File

@ -7,7 +7,7 @@
} }
</route> </route>
<template> <template>
<view class="h-screen flex flex-col bg-[#F9F9F9]"> <view class="h-screen flex flex-col bg-[#F9F9F9] overflow-y-auto">
<view class="flex-1 m-[32rpx] rounded-t-[32rpx] gap-[30rpx] flex flex-col"> <view class="flex-1 m-[32rpx] rounded-t-[32rpx] gap-[30rpx] flex flex-col">
<view <view
class="flex items-start gap-[24rpx] pl-[24rpx] pr-[38rpx] pt-[24rpx] pb-[12rpx] bg-[#fff]" class="flex items-start gap-[24rpx] pl-[24rpx] pr-[38rpx] pt-[24rpx] pb-[12rpx] bg-[#fff]"
@ -89,34 +89,43 @@ const handleAppointment = (
item: { id: number; isAppointment: boolean; appointId: number }, item: { id: number; isAppointment: boolean; appointId: number },
index: number, index: number,
) => { ) => {
if (item.isAppointment) { uni.showModal({
deleteMyAppointment({ id: item.appointId }).then((res) => { title: '预约',
if (res.code === 200) { content: item.isAppointment ? '是否取消预约' : '是否预约',
list.value[index].isAppointment = !item.isAppointment success: (res) => {
delete list.value[index].appointId if (res.confirm) {
if (item.isAppointment) {
deleteMyAppointment({ id: item.appointId }).then((res) => {
if (res.code === 200) {
list.value[index].isAppointment = !item.isAppointment
delete list.value[index].appointId
}
})
} else {
addSpecial({
sId: item.id,
openId: userStore.userInfo?.estimatedAchievement.wxId.toString(),
appointmentTime: '2025-07-31',
isDelete: item.isAppointment,
}).then((res) => {
if (res.code === 200) {
list.value[index].isAppointment = !item.isAppointment
list.value[index].appointId = res.result
uni.showToast({
title: item.isAppointment ? '预约成功' : '取消预约成功',
})
} else {
uni.showToast({
title: res.message,
icon: 'none',
})
}
})
}
} else if (res.cancel) {
} }
}) },
} else { })
addSpecial({
sId: item.id,
openId: userStore.userInfo?.estimatedAchievement.wxId.toString(),
appointmentTime: '2025-07-31',
isDelete: item.isAppointment,
}).then((res) => {
if (res.code === 200) {
list.value[index].isAppointment = !item.isAppointment
list.value[index].appointId = res.result
uni.showToast({
title: item.isAppointment ? '预约成功' : '取消预约成功',
})
} else {
uni.showToast({
title: res.message,
icon: 'none',
})
}
})
}
} }
</script> </script>

View File

@ -76,9 +76,13 @@ onShow(() => {
getWxUserInfo().then((resp) => { getWxUserInfo().then((resp) => {
const infoData = resp.result as unknown as { const infoData = resp.result as unknown as {
userExtend: { provinceCode: string } userExtend: { provinceCode: string }
batchName: string
batchDataUrl: string
} }
if (userStore.userInfo.city.code === infoData.userExtend.provinceCode) { if (userStore.userInfo.city.code === infoData.userExtend.provinceCode) {
userStore.setEstimatedAchievement(infoData.userExtend) userStore.setEstimatedAchievement(infoData.userExtend)
userStore.setBatchName(infoData.batchName)
userStore.setBatchDataUrl(infoData.batchDataUrl)
return return
} }
}) })

View File

@ -8,7 +8,7 @@
</route> </route>
<template> <template>
<view class="bg-[#F8F8F8] h-screen flex flex-col gap-[32rpx]"> <view class="bg-[#F8F8F8] h-screen flex flex-col gap-[32rpx]">
<view class="background"> <view class="background-wrapper">
<Navbar safeAreaInsetTop bg-color="transparent" placeholder :bordered="false"></Navbar> <Navbar safeAreaInsetTop bg-color="transparent" placeholder :bordered="false"></Navbar>
<view class="flex px-[32rpx] gap-[24rpx] custom-user-info"> <view class="flex px-[32rpx] gap-[24rpx] custom-user-info">
<image <image
@ -29,7 +29,6 @@
<view <view
class="absolute bottom-0 py-[16rpx] pl-[32rpx] pr-[24rpx] left-[50%] translate-x-[-50%] flex items-center w-max custom-vip-bg" class="absolute bottom-0 py-[16rpx] pl-[32rpx] pr-[24rpx] left-[50%] translate-x-[-50%] flex items-center w-max custom-vip-bg"
v-if="!userStore.userInfo.estimatedAchievement.isVIP"
> >
<image <image
src="https://api.static.ycymedu.com/src/images/ucenter/vip.png" src="https://api.static.ycymedu.com/src/images/ucenter/vip.png"
@ -40,6 +39,7 @@
<text class="text-white text-[24rpx]">诸多分析特权免费查看</text> <text class="text-white text-[24rpx]">诸多分析特权免费查看</text>
<button <button
v-if="!userStore.userInfo.estimatedAchievement.isVIP"
class="w-[136rpx]! h-[52rpx]! text-[#803D00]! text-[24rpx]! custom-button-bg font-normal flex! items-center! justify-center! rounded-[80rpx]! p-[0]! ml-[70rpx]!" class="w-[136rpx]! h-[52rpx]! text-[#803D00]! text-[24rpx]! custom-button-bg font-normal flex! items-center! justify-center! rounded-[80rpx]! p-[0]! ml-[70rpx]!"
@click="goVip" @click="goVip"
> >
@ -173,7 +173,7 @@ const toSetting = () => {
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.background { .background-wrapper {
position: relative; position: relative;
width: 100%; width: 100%;
height: 420rpx; height: 420rpx;
@ -182,12 +182,12 @@ const toSetting = () => {
} }
/* 左下角大圆 */ /* 左下角大圆 */
.background::before { .background-wrapper::before {
content: ''; content: '';
position: absolute; position: absolute;
width: 400rpx; width: 300rpx;
height: 400rpx; height: 300rpx;
bottom: -200rpx; bottom: -150rpx;
left: -100rpx; left: -100rpx;
border-radius: 50%; border-radius: 50%;
background-color: rgba(150, 230, 255, 0.4); background-color: rgba(150, 230, 255, 0.4);
@ -195,7 +195,7 @@ const toSetting = () => {
} }
/* 左上角中等圆 */ /* 左上角中等圆 */
.background::after { .background-wrapper::after {
content: ''; content: '';
position: absolute; position: absolute;
width: 300rpx; width: 300rpx;