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,
},
grid: {
left: '16',
right: '16',
containLabel: false,
},
series: [

View File

@ -7,7 +7,7 @@
</route>
<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
safeAreaInsetTop
:bordered="false"
@ -39,7 +39,7 @@
<text class="text-[#117CFC] text-[26rpx]">智能AI顾问</text>
</view> -->
</view>
</scroll-view>
</view>
</template>
<script setup lang="ts">
import Navbar from '@/pages-evaluation-sub/components/navbar/Navbar.vue'

View File

@ -7,7 +7,7 @@
</route>
<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
safeAreaInsetTop
:bordered="false"
@ -42,7 +42,7 @@
<text class="text-[#117CFC] text-[26rpx]">智能AI顾问</text>
</view> -->
</view>
</scroll-view>
</view>
</template>
<script setup lang="ts">
import Navbar from '@/pages-evaluation-sub/components/navbar/Navbar.vue'

View File

@ -7,7 +7,7 @@
</route>
<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
safeAreaInsetTop
:bordered="false"
@ -43,7 +43,7 @@
<text class="text-[#117CFC] text-[26rpx]">智能AI顾问</text>
</view> -->
</view>
</scroll-view>
</view>
</template>
<script setup lang="ts">
import Navbar from '@/pages-evaluation-sub/components/navbar/Navbar.vue'

View File

@ -7,7 +7,7 @@
</route>
<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
safeAreaInsetTop
:bordered="false"
@ -35,7 +35,7 @@
<text class="text-[#117CFC] text-[26rpx]">智能AI顾问</text>
</view> -->
</view>
</scroll-view>
</view>
</template>
<script setup lang="ts">
import Navbar from '@/pages-evaluation-sub/components/navbar/Navbar.vue'

View File

@ -11,7 +11,7 @@
</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"
:key="index"
>

View File

@ -7,7 +7,9 @@
<view class="py-[12rpx] text-center bg-color flex-1">性格特点</view>
</view>
<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.title }}</view>
</view>

View File

@ -145,6 +145,12 @@ const searchParams = ref({
})
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()
}

View File

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

File diff suppressed because one or more lines are too long

View File

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

View File

@ -62,7 +62,7 @@
</view>
</view>
<MessageBox v-model:show="show" title="" :defaultPadding="false">
<MessageBox v-model:show="show" title="" :defaultPadding="false" defaultWidth="85%">
<template>
<view class="custom-background">
<view class="px-[32rpx] pt-[48rpx]">
@ -70,10 +70,12 @@
<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]"
>
<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>
<view class="text-[30rpx] my-[40rpx]">{{ quesApplication }}</view>
<view class="text-[30rpx] my-[40rpx] text-[#333] text-[28rpx]">
{{ quesApplication }}
</view>
</view>
<view
class="text-center py-[26rpx] text-[#1580FF] text-[36rpx] font-medium start-border"
@ -317,4 +319,9 @@ const handleSubmit = () => {
transform: translate3d(0, 0, 0);
transition: all 0.3s ease;
}
wx-button[disabled]:not([type]) {
background-color: rgba(255, 255, 255, 0.4);
color: #fff;
}
</style>

View File

@ -21,7 +21,7 @@
</Badge>
<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"
mode="widthFix"
@click="show = true"
@ -66,10 +66,6 @@ import { useUserStore } from '@/store/user'
const userStore = useUserStore()
const navigatorBack = () => {
uni.navigateBack()
}
const show = ref(false)
const badgeValue = ref(1)

View File

@ -2,14 +2,14 @@
<view class="flex flex-col">
<view class="flex flex-col px-[32rpx] mt-[40rpx]">
<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 }}
</text>
</view>
<view class="h-[16rpx] bg-[#f8f8f8] mt-[36rpx] mb-[40rpx]"></view>
<view class="flex flex-col px-[32rpx] mt-[40rpx]">
<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 }}
</text>
</view>

View File

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

View File

@ -2,28 +2,28 @@
<view class="flex flex-col">
<view class="flex flex-col px-[32rpx] mt-[40rpx]">
<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 }}
</text>
</view>
<view class="h-[16rpx] bg-[#f8f8f8] mt-[36rpx] mb-[40rpx]"></view>
<view class="flex flex-col px-[32rpx] mt-[40rpx]">
<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 }}
</text>
</view>
<view class="h-[16rpx] bg-[#f8f8f8] mt-[36rpx] mb-[40rpx]"></view>
<view class="flex flex-col px-[32rpx] mt-[40rpx]">
<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 }}
</text>
</view>
<view class="h-[16rpx] bg-[#f8f8f8] mt-[36rpx] mb-[40rpx]"></view>
<view class="flex flex-col px-[32rpx] mt-[40rpx]">
<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 }}
</text>
</view>

View File

@ -1,11 +1,11 @@
<template>
<view class="bg-white flex w-full flex-1">
<view class="w-[260rpx] bg-[#F7F8FA] flex flex-col items-center">
<view class="bg-white flex h-full">
<view class="w-[260rpx] bg-[#F7F8FA] flex flex-col items-center overflow-y-auto h-full">
<view
v-for="item in menus"
:key="item._id"
: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' : '',
]"
@click="changeMenu(item)"
@ -13,7 +13,7 @@
{{ item.rootName }}
</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" />
</view>
</view>

View File

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

View File

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

View File

@ -36,7 +36,7 @@
</button>
<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 }}
</view>
</ActionSheet>

View File

@ -41,9 +41,9 @@
{{ universityBaseInfo?.universityResult.features.slice(0, 4).join('/&nbsp;') }}
</text>
</view>
<button class="collect-btn" plain @click="handleStar">
<view class="i-carbon-star-filled" v-if="startFlag"></view>
<view class="i-carbon-star" v-else></view>
<button class="collect-btn whitespace-nowrap" plain @click="handleStar">
<view class="i-carbon-star-filled min-w-[24rpx] min-h-[24rxp]" v-if="startFlag"></view>
<view class="i-carbon-star min-w-[24rpx] min-h-[24rxp]" v-else></view>
收藏
</button>
</view>
@ -203,8 +203,7 @@ const handleStar = () => {
border: 2rpx solid #eee !important;
color: #636363 !important;
width: unset !important;
min-width: unset !important;
min-width: max-content !important;
border-radius: 12rpx !important;
margin-right: 0 !important;
padding: 12rpx !important;
@ -215,5 +214,6 @@ const handleStar = () => {
align-items: center !important;
font-size: 24rpx !important;
width: max-content !important;
}
</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 Radio from '@/pages-sub/components/radio-group/Radio.vue'
import { useUserStore } from '@/store/user'
import { useRules } from '@/pages-sub/home/inputScore/useRules'
const userStore = useUserStore()
@ -52,7 +53,8 @@ const fetchBatchData = () => {
}
onLoad(() => {
fetchBatchData()
useRules(fetchBatchData)
// if (userStore.userInfo.batchDataUrl) {
// fetchBatchData()
// } else {

File diff suppressed because one or more lines are too long

View File

@ -15,6 +15,7 @@
@virtualListChange="virtualListChange"
@query="queryList"
:auto-show-system-loading="true"
:safe-area-inset-bottom="true"
>
<template #top>
<view class="relative">
@ -30,7 +31,7 @@
</view>
<drop-menu>
<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
:defaultValue="searchParams.locationCode"
@changeName="handleRegionChange"
@ -39,12 +40,12 @@
</view>
</drop-menu-item>
<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" />
</view>
</drop-menu-item>
<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" />
</view>
</drop-menu-item>
@ -68,10 +69,14 @@
<view
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="w-[80rpx] text-center px-[25rpx]">招生专业</view>
<view class="w-[86rpx] text-center px-[25rpx]">{{ tModel.year }}计划</view>
<view class="w-[66rpx] text-center pl-[25rpx]">{{ tModel.year - 1 }}</view>
<view class="flex-auto text-[24rpx] font-semibold">院校</view>
<view class="w-[96rpx] text-center px-[16rpx] text-[24rpx] font-semibold">招生专业</view>
<view class="w-[116rpx] text-center px-[16rpx] text-[24rpx] font-semibold">
{{ tModel.year }}计划
</view>
<view class="w-[86rpx] text-center pl-[16rpx] text-[24rpx] font-semibold">
{{ tModel.year - 1 }}
</view>
</view>
<view
@ -84,7 +89,7 @@
<view class="flex-1 flex items-center">
<image :src="item.logo" mode="scaleToFill" class="w-[72rpx] h-[72rpx] mr-[6rpx]" />
<view class="ml-[6rpx]">
<view class="text-[32rpx] font-semibold">
<view class="text-[32rpx] font-semibold truncate max-w-[200rpx]">
{{ item.name }}
</view>
<view class="mt-[6rpx] text-[22rpx]">
@ -93,9 +98,9 @@
</view>
</view>
</view>
<view class="w-[80rpx] text-center px-[25rpx]">{{ item.planCount }}</view>
<view class="w-[86rpx] text-center px-[25rpx]">{{ item.newPlan }}</view>
<view class="w-[66rpx] text-center pl-[25rpx] pr-[28rpx]">
<view class="w-[96rpx] text-center px-[16rpx] text-[24rpx]">{{ item.planCount }}</view>
<view class="w-[116rpx] text-center px-[16rpx] text-[24rpx]">{{ item.newPlan }}</view>
<view class="w-[86rpx] text-center pl-[16rpx] pr-[28rpx] text-[24rpx]">
<text v-if="item.newPlan - item.oldPlan === 0"></text>
<view v-else class="flex items-center justify-center gap-[10rpx]">
<text>{{ item.newPlan - item.oldPlan }}</text>

View File

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

View File

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

View File

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

View File

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

View File

@ -2,7 +2,7 @@
<view
v-for="major in college.items"
: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}`"
>
<view class="flex flex-col gap-[16rpx]">

View File

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

View File

@ -15,8 +15,7 @@
college.items.reduce((a, b) => a + Number(b.percentAge.replace('%', '')), 0) /
college.items.length,
)
}}
%
}}%
</text>
</view>
<view class="flex flex-col ml-[24rpx] justify-between flex-1">
@ -40,9 +39,9 @@
</view>
</view>
<view class="flex flex-col gap-[8rpx] items-center">
<view class="flex flex-col gap-[8rpx] items-center whitespace-nowrap">
<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"
>
专业{{ college.items.length }}

View File

@ -8,7 +8,7 @@
{{ college?.city }}·{{ college?.educationCategory }}
</text>
</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="text-[22rpx]">
<text>已填</text>
@ -18,7 +18,6 @@
</view>
</view>
</template>
<CollegeMajor :college="college" v-bind="$attrs" v-if="college" />
<template #footer>

View File

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

View File

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

View File

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

View File

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

View File

@ -7,7 +7,7 @@
}
</route>
<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 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 },
index: number,
) => {
if (item.isAppointment) {
deleteMyAppointment({ id: item.appointId }).then((res) => {
if (res.code === 200) {
list.value[index].isAppointment = !item.isAppointment
delete list.value[index].appointId
uni.showModal({
title: '预约',
content: item.isAppointment ? '是否取消预约' : '是否预约',
success: (res) => {
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>

View File

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

View File

@ -8,7 +8,7 @@
</route>
<template>
<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>
<view class="flex px-[32rpx] gap-[24rpx] custom-user-info">
<image
@ -29,7 +29,6 @@
<view
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
src="https://api.static.ycymedu.com/src/images/ucenter/vip.png"
@ -40,6 +39,7 @@
<text class="text-white text-[24rpx]">诸多分析特权免费查看</text>
<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]!"
@click="goVip"
>
@ -173,7 +173,7 @@ const toSetting = () => {
</script>
<style lang="scss" scoped>
.background {
.background-wrapper {
position: relative;
width: 100%;
height: 420rpx;
@ -182,12 +182,12 @@ const toSetting = () => {
}
/* 左下角大圆 */
.background::before {
.background-wrapper::before {
content: '';
position: absolute;
width: 400rpx;
height: 400rpx;
bottom: -200rpx;
width: 300rpx;
height: 300rpx;
bottom: -150rpx;
left: -100rpx;
border-radius: 50%;
background-color: rgba(150, 230, 255, 0.4);
@ -195,7 +195,7 @@ const toSetting = () => {
}
/* 左上角中等圆 */
.background::after {
.background-wrapper::after {
content: '';
position: absolute;
width: 300rpx;