fix: 样式更新

master
xjs 2025-11-26 14:19:36 +08:00
parent 6a463f08fd
commit dfb0661831
40 changed files with 355 additions and 277 deletions

2
env/.env vendored
View File

@ -1,4 +1,4 @@
VITE_APP_TITLE = '六择校' VITE_APP_TITLE = '六择校'
VITE_APP_PORT = 9000 VITE_APP_PORT = 9000
VITE_UNI_APPID = 'H57F2ACE4' VITE_UNI_APPID = 'H57F2ACE4'

View File

@ -4,8 +4,8 @@ import { tabBar } from './src/tabbar/config'
export default defineUniPages({ export default defineUniPages({
globalStyle: { globalStyle: {
navigationStyle: 'default', navigationStyle: 'default',
navigationBarTitleText: '六择校', navigationBarTitleText: '六择校',
navigationBarBackgroundColor: '#f8f8f8', navigationBarBackgroundColor: '#FFFFFF',
navigationBarTextStyle: 'black', navigationBarTextStyle: 'black',
backgroundColor: '#FFFFFF', backgroundColor: '#FFFFFF',
}, },

View File

@ -57,7 +57,7 @@
</view> </view>
</view> </view>
<MessageBox v-model:show="show" title="" :defaultPadding="false" defaultWidth="85%"> <MessageBox v-model:show="show" title="" :defaultPadding="false" defaultWidth="80%">
<template> <template>
<view class="custom-background"> <view class="custom-background">
<view class="px-[32rpx] pt-[48rpx]"> <view class="px-[32rpx] pt-[48rpx]">

View File

@ -118,7 +118,7 @@ const getUserInfo = async (_code: string) => {
</view> </view>
<!-- #ifdef MP-WEIXIN --> <!-- #ifdef MP-WEIXIN -->
<button <button
class="w-[493rpx]! mb-[40rpx] h-[88rpx]! rounded-[44rpx] text-[32rpx] text-white flex items-center justify-center border-1 border-solid border-[#BFBFBF]" 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" :class="checked.length > 0 ? 'bg-[#1580FF]' : 'bg-[#BFBFBF]'" @click.stop="handleClick"
open-type="getPhoneNumber" @getphonenumber="getPhoneNumber" :disabled="checked.length === 0"> open-type="getPhoneNumber" @getphonenumber="getPhoneNumber" :disabled="checked.length === 0">
一键登录 一键登录
@ -127,7 +127,7 @@ const getUserInfo = async (_code: string) => {
<!-- #ifdef MP-ALIPAY --> <!-- #ifdef MP-ALIPAY -->
<button <button
class="w-[493rpx]! mb-[40rpx] h-[88rpx]! rounded-[44rpx] text-[32rpx] text-white flex items-center justify-center border-1 border-solid border-[#BFBFBF]" 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"> :class="checked.length > 0 ? 'bg-[#1580FF]' : 'bg-[#BFBFBF]'" @click.stop="handleClick">
一键登录 一键登录
</button> </button>

View File

@ -91,14 +91,17 @@ onShow(() => {
<view class="mx-[32rpx] bg-[#fff] rounded-[20rpx] mt-[32rpx] text-[28rpx] text-[#303030] font-bold"> <view class="mx-[32rpx] bg-[#fff] rounded-[20rpx] mt-[32rpx] text-[28rpx] text-[#303030] font-bold">
<view class="flex items-center justify-between mr-[16rpx] ml-[32rpx] py-[28rpx] not-last-child"> <view class="flex items-center justify-between mr-[16rpx] ml-[32rpx] py-[28rpx] not-last-child">
<text class="text-[30rpx] text-[#404142] font-400">头像</text> <text class="text-[30rpx] text-[#404142] font-400">头像</text>
<MxUpload :custom-upload="true" :hiddenPreview="true" @change="handleChange" :signal="true" <MxUpload :custom-upload="true" root-class="w-[98rpx] h-[98rpx]" :hiddenPreview="true" @change="handleChange"
:outer-file-list="[{ url: `${userInfo.avatar}` }]"> :signal="true" :outer-file-list="[{ url: `${userInfo.avatar}` }]">
<template #default="{ fileList }"> <template #default="{ fileList }">
<view class="flex items-center gap-[16rpx]"> <view class="flex items-center gap-[16rpx]">
<view class="w-[96rpx] h-[96rpx] rounded-full"> <view class="w-[96rpx] h-[96rpx] rounded-full">
<image :src="fileList[0].url" mode="scaleToFill" class="w-[96rpx] h-[96rpx] rounded-full" /> <image :src="fileList[0].url" mode="scaleToFill" class="w-[96rpx] h-[96rpx] rounded-full" />
</view> </view>
<view class="i-carbon-chevron-down rotate-270 text-[#BFBFBF]"></view> <view class="w-[18rpx] h-[36rpx] flex items-center ml-[20rpx]">
<image src="https://lwzk.ycymedu.com/img/qt/tb_jiantou.png" mode="scaleToFill"
class="w-[18rpx] h-[36rpx]" />
</view>
</view> </view>
</template> </template>
</MxUpload> </MxUpload>
@ -114,23 +117,32 @@ onShow(() => {
<text class="text-[30rpx] text-[#404142] font-400">性别</text> <text class="text-[30rpx] text-[#404142] font-400">性别</text>
<view class="flex items-center" @click="handleOpenPopup('gender')"> <view class="flex items-center" @click="handleOpenPopup('gender')">
<text>{{ formData.genderLabel }}</text> <text>{{ formData.genderLabel }}</text>
<view class="i-carbon-chevron-down rotate-270 text-[#BFBFBF]"></view> <view class="w-[18rpx] h-[36rpx] flex items-center ml-[20rpx]">
<image src="https://lwzk.ycymedu.com/img/qt/tb_jiantou.png" mode="scaleToFill"
class="w-[18rpx] h-[36rpx]" />
</view>
</view> </view>
</view> </view>
<view class="flex items-center justify-between mx-[32rpx] py-[28rpx]"> <view class="flex items-center justify-between mx-[32rpx] py-[28rpx] not-last-child">
<text class="text-[30rpx] text-[#404142] font-400">年级</text> <text class="text-[30rpx] text-[#404142] font-400">年级</text>
<view class="flex items-center" @click="handleOpenPopup('grade')"> <view class="flex items-center" @click="handleOpenPopup('grade')">
<text>{{ userInfo.userExtend.gradeName }}</text> <text>{{ userInfo.userExtend.gradeName }}</text>
<view class="i-carbon-chevron-down rotate-270 text-[#BFBFBF]"></view> <view class="w-[18rpx] h-[36rpx] flex items-center ml-[20rpx]">
<image src="https://lwzk.ycymedu.com/img/qt/tb_jiantou.png" mode="scaleToFill"
class="w-[18rpx] h-[36rpx]" />
</view>
</view> </view>
</view> </view>
<view class="flex items-center justify-between mx-[32rpx] py-[28rpx]"> <view class="flex items-center justify-between mx-[32rpx] py-[28rpx] not-last-child">
<text class="text-[30rpx] text-[#404142] font-400">就读学校</text> <text class="text-[30rpx] text-[#404142] font-400">就读学校</text>
<view class="flex items-center" @click="navigateToSchool"> <view class="flex items-center" @click="navigateToSchool">
<text>{{ userInfo.userExtend.schoolName }}</text> <text>{{ userInfo.userExtend.schoolName }}</text>
<view class="i-carbon-chevron-down rotate-270 text-[#BFBFBF]"></view> <view class="w-[18rpx] h-[36rpx] flex items-center ml-[20rpx]">
<image src="https://lwzk.ycymedu.com/img/qt/tb_jiantou.png" mode="scaleToFill"
class="w-[18rpx] h-[36rpx]" />
</view>
</view> </view>
</view> </view>
@ -138,7 +150,10 @@ onShow(() => {
<text class="text-[30rpx] text-[#404142] font-400">中考所在区</text> <text class="text-[30rpx] text-[#404142] font-400">中考所在区</text>
<view class="flex items-center" @click="handleOpenPopup('area')"> <view class="flex items-center" @click="handleOpenPopup('area')">
<text>{{ userInfo.userExtend.area }}</text> <text>{{ userInfo.userExtend.area }}</text>
<view class="i-carbon-chevron-down rotate-270 text-[#BFBFBF]"></view> <view class="w-[18rpx] h-[36rpx] flex items-center ml-[20rpx]">
<image src="https://lwzk.ycymedu.com/img/qt/tb_jiantou.png" mode="scaleToFill"
class="w-[18rpx] h-[36rpx]" />
</view>
</view> </view>
</view> </view>
</view> </view>

View File

@ -1,11 +1,11 @@
<template> <template>
<sar-upload v-model="fileList" :after-read="afterRead" :multiple="multiple" :max-count="multiple ? 99 : 1" <sar-upload v-model="fileList" :root-class="rootClass" :after-read="afterRead" :multiple="multiple"
:root-style="`${customUpload ? '--sar-upload-select-width: min-content;--sar-upload-select-height: min-content;--sar-upload-select-color: transparent;--sar-upload-select-bg: transparent;--sar-upload-select-border-radius: 0;' : ''} ${hiddenPreview ? '--sar-upload-preview-width: 0;--sar-upload-preview-height: 0;' : ''}`"> :max-count="multiple ? 99 : 1"
:root-style="`--sar-upload-select-bg:#f7f7f7;--sar-upload-close-size:32rpx;${customUpload ? '--sar-upload-select-width: min-content;--sar-upload-select-height: min-content;--sar-upload-select-color: transparent;--sar-upload-select-bg: transparent;--sar-upload-select-border-radius: 0;' : ''} ${hiddenPreview ? '--sar-upload-preview-width: 0;--sar-upload-preview-height: 0;' : ''}`">
<template #select> <template #select>
<view style="display: flex; flex-direction: column; align-items: center" v-if="!customUpload"> <view style="display: flex; flex-direction: column; align-items: center" v-if="!customUpload">
<view class="w-[60rpx] h-[60rpx]"> <view class="w-[60rpx] h-[60rpx]">
<image src="https://lwzk.ycymedu.com/img/cpgx/cp_shangchuan.png" <image src="https://lwzk.ycymedu.com/img/cpgx/cp_shangchuan.png" mode="scaleToFill" />
mode="scaleToFill" />
</view> </view>
<view class="text-[30rpx] text-[#333] mt-[10rpx]">上传图片</view> <view class="text-[30rpx] text-[#333] mt-[10rpx]">上传图片</view>
</view> </view>
@ -40,6 +40,10 @@ const props = defineProps({
signal: { signal: {
type: Boolean, type: Boolean,
default: false default: false
},
rootClass: {
type: String,
default: ''
} }
}) })

View File

@ -3,21 +3,21 @@ import { getCountdown, getTimeList } from '@/service'
import { safeAreaInsets } from '@/utils/systemInfo' import { safeAreaInsets } from '@/utils/systemInfo'
// #ifdef MP-WEIXIN // #ifdef MP-WEIXIN
definePage({ definePage({
style: { style: {
navigationStyle: 'custom', navigationStyle: 'custom',
}, },
excludeLoginPath: false, excludeLoginPath: false,
}) })
// #endif // #endif
// #ifndef MP-WEIXIN // #ifndef MP-WEIXIN
definePage({ definePage({
style: { style: {
navigationStyle: 'custom', navigationStyle: 'custom',
transparentTitle: 'always', transparentTitle: 'always',
navigationBarTitleText: '' navigationBarTitleText: ''
}, },
excludeLoginPath: false, excludeLoginPath: false,
}) })
// #endif // #endif
@ -26,29 +26,48 @@ const processList = ref([])
const nativeBack = () => { const nativeBack = () => {
uni.navigateBack(); uni.navigateBack();
} }
const opacity = ref(0)
onPageScroll((e) => {
const scrollTop = e.scrollTop
opacity.value = Math.min(scrollTop / 100, 1)
})
const computeColor = computed(() => {
const alpha = opacity.value
const red = Math.round(255 + (0 - 255) * alpha)
const green = Math.round(255 + (0 - 255) * alpha)
const blue = Math.round(255 + (0 - 255) * alpha)
return `rgba(${red}, ${green}, ${blue}, ${alpha === 0 ? 1 : alpha})`
})
const countdown = ref(0) const countdown = ref(0)
onShow(() => { onShow(() => {
getCountdown().then(resp => { getCountdown().then(resp => {
if(resp.code === 200){ if (resp.code === 200) {
countdown.value = resp.result countdown.value = resp.result
} }
}) })
getTimeList().then((resp) =>{ getTimeList().then((resp) => {
if(resp.code === 200){ if (resp.code === 200) {
processList.value = resp.result processList.value = resp.result
} }
}) })
}) })
</script> </script>
<template> <template>
<view class="relative"> <view class="relative">
<sar-navbar root-class="bg-transparent" :fixed="true" fixation-style="top:unset;" <sar-navbar root-class="bg-transparent" :fixed="true" fixation-style="top:unset;"
:root-style="{ '--sar-navbar-bg': `transparent`, '--sar-navbar-height': `${safeAreaInsets?.top + 44}px` }"> :root-style="{ '--sar-navbar-bg': `rgba(255, 255, 255, ${opacity})`, '--sar-navbar-height': `${safeAreaInsets?.top + 44}px` }">
<template #title>
<view class="flex justify-center text-white mix-blend-difference" :style="{ 'padding-top': `${safeAreaInsets?.top}px` }">
中考倒计时</view>
</template>
<template #left> <template #left>
<view class="flex items-center justify-center text-white text-[32rpx] ml-[32rpx]" <view class="flex items-center justify-center text-[32rpx] ml-[32rpx]"
:style="{ 'padding-top': `${safeAreaInsets?.top}px` }" @click="nativeBack"> :style="{ 'padding-top': `${safeAreaInsets?.top}px` }" @click="nativeBack">
<sar-icon name="left" size="48rpx" /> <sar-icon name="left" size="48rpx" :color="computeColor"/>
</view> </view>
</template> </template>
</sar-navbar> </sar-navbar>
@ -62,7 +81,7 @@ onShow(() => {
<view class="text-[72rpx]"></view> <view class="text-[72rpx]"></view>
</view> </view>
<view <view
class="mt-[-14rpx] rounded-[40rpx_40rpx_0_0] min-h-[550rpx] relative z-[1] bg-white bg-opacity-70 backdrop-blur-[5px] pt-[38rpx] flex flex-col"> class="mt-[-14rpx] rounded-[40rpx_40rpx_0_0] min-h-[550rpx] relative z-[1] bg-white pt-[38rpx] flex flex-col">
<view class="flex items-center justify-center"> <view class="flex items-center justify-center">
<view class="w-[48rpx] h-[48rpx] mr-[16rpx]"> <view class="w-[48rpx] h-[48rpx] mr-[16rpx]">
<image src="https://lwzk.ycymedu.com/img/home/sy_riqi.png" mode="scaleToFill" <image src="https://lwzk.ycymedu.com/img/home/sy_riqi.png" mode="scaleToFill"

View File

@ -44,7 +44,7 @@ const starSchool = () => {
<view class="flex flex-col"> <view class="flex flex-col">
<text class="font-600 text-[40rpx] text-[#000]">{{ schoolDetail.schoolName }}</text> <text class="font-600 text-[40rpx] text-[#000]">{{ schoolDetail.schoolName }}</text>
<view class="flex items-center gap-[10rpx] my-[14rpx] flex-wrap" v-if="schoolDetail.tags"> <view class="flex items-center gap-[10rpx] my-[14rpx] flex-wrap" v-if="schoolDetail.tags">
<view class="rounded-[8rpx] bg-[#F8F8F8] px-[10rpx] py-[4rpx] text-[24rpx] text-[#666]" <view class="rounded-[8rpx] bg-[#F8F8F8] px-[10rpx] py-[4rpx] text-[24rpx] text-[#666] first:border-solid border-red border-[1rpx]"
v-for="feature in schoolDetail.tags.split('、')" :key="feature">{{ feature }}</view> v-for="feature in schoolDetail.tags.split('、')" :key="feature">{{ feature }}</view>
</view> </view>
<view class="text-[#303030] text-[24rpx] mb-[10rpx]">{{schoolDetail.region}}·{{ schoolDetail.schoolNature }}</view> <view class="text-[#303030] text-[24rpx] mb-[10rpx]">{{schoolDetail.region}}·{{ schoolDetail.schoolNature }}</view>

View File

@ -45,7 +45,9 @@ const navigateToDetail = (id:number) => {
uni.navigateTo({ url: `/pages-sub/information/highSchoolDetail?id=${id}` }) uni.navigateTo({ url: `/pages-sub/information/highSchoolDetail?id=${id}` })
} }
const visibleFlag1 = ref(false)
const visibleFlag2 = ref(false)
const visibleFlag3 = ref(false)
onLoad(() => { onLoad(() => {
getAreaList().then(resp => { getAreaList().then(resp => {
@ -89,6 +91,9 @@ const virtualListChange = (_vList) => {
} }
const handleComplete = () => { const handleComplete = () => {
visibleFlag1.value = false;
visibleFlag2.value = false;
visibleFlag3.value = false;
paging.value.reload() paging.value.reload()
} }
@ -111,28 +116,28 @@ const handleComplete = () => {
<sar-dropdown <sar-dropdown
root-style="--sar-dropdown-placeholder-color:#666;--sar-dropdown-value-font-size:28rpx;--sar-dropdown-option-active-color:#1580FF;--sar-dropdown-bg:transparent;--sar-dropdown-box-shadow:0rpx 6rpx 8rpx 0rpx rgba(0,0,0,0.04);"> root-style="--sar-dropdown-placeholder-color:#666;--sar-dropdown-value-font-size:28rpx;--sar-dropdown-option-active-color:#1580FF;--sar-dropdown-bg:transparent;--sar-dropdown-box-shadow:0rpx 6rpx 8rpx 0rpx rgba(0,0,0,0.04);">
<sar-dropdown-item :title="searchParams.region || '区域'" :before-close="handleComplete"> <sar-dropdown-item :title="searchParams.region || '区域'" v-model:visible="visibleFlag1">
<mx-radio-group v-model:value="searchParams.region" :options="regions" label-key="label" value-key="value" <mx-radio-group v-model:value="searchParams.region" :options="regions" label-key="label" value-key="value"
custom-root-class="px-[32rpx] pt-[30rpx] pb-[40rpx]" custom-root-class="px-[32rpx] pt-[30rpx] pb-[40rpx]"
active-item-class="bg-[#e7f2ff] text-[#1580FF] border-[#1580FF]" active-item-class="bg-[#e7f2ff] text-[#1580FF] border-[#1580FF]"
default-item-class="bg-[#F3F4F8] border-[#F3F4F8]" default-item-class="bg-[#F3F4F8] border-[#F3F4F8]"
custom-item-class="w-full py-[16rpx] text-center border-[1rpx] border-solid" /> custom-item-class="w-full py-[16rpx] text-center border-[1rpx] border-solid" @change="handleComplete"/>
</sar-dropdown-item> </sar-dropdown-item>
<sar-dropdown-item :title="searchParams.natureLabel || '办学性质'" :before-close="handleComplete"> <sar-dropdown-item :title="searchParams.natureLabel || '办学性质'" v-model:visible="visibleFlag2">
<mx-radio-group v-model:value="searchParams.nature" v-model:label="searchParams.natureLabel" <mx-radio-group v-model:value="searchParams.nature" v-model:label="searchParams.natureLabel"
:options="natureList" label-key="label" value-key="value" :options="natureList" label-key="label" value-key="value"
custom-root-class="px-[32rpx] pt-[30rpx] pb-[40rpx]" custom-root-class="px-[32rpx] pt-[30rpx] pb-[40rpx]"
active-item-class="bg-[#e7f2ff] text-[#1580FF] border-[#1580FF]" active-item-class="bg-[#e7f2ff] text-[#1580FF] border-[#1580FF]"
default-item-class="bg-[#F3F4F8] border-[#F3F4F8]" default-item-class="bg-[#F3F4F8] border-[#F3F4F8]"
custom-item-class="w-full py-[16rpx] text-center border-[1rpx] border-solid" /> custom-item-class="w-full py-[16rpx] text-center border-[1rpx] border-solid" @change="handleComplete" />
</sar-dropdown-item> </sar-dropdown-item>
<sar-dropdown-item v-model="searchParams.schoolType" :title="searchParams.schoolTypeLabel || '类型'" :before-close="handleComplete"> <sar-dropdown-item v-model="searchParams.schoolType" :title="searchParams.schoolTypeLabel || '类型'" v-model:visible="visibleFlag3">
<mx-radio-group v-model:value="searchParams.schoolType" v-model:label="searchParams.schoolTypeLabel" <mx-radio-group v-model:value="searchParams.schoolType" v-model:label="searchParams.schoolTypeLabel"
:options="schoolTypeList" label-key="label" value-key="value" :options="schoolTypeList" label-key="label" value-key="value"
custom-root-class="px-[32rpx] pt-[30rpx] pb-[40rpx]" custom-root-class="px-[32rpx] pt-[30rpx] pb-[40rpx]"
custom-item-class="w-full py-[16rpx] text-center border-[1rpx] border-solid" custom-item-class="w-full py-[16rpx] text-center border-[1rpx] border-solid"
active-item-class="bg-[#e7f2ff] text-[#1580FF] border-[#1580FF]" active-item-class="bg-[#e7f2ff] text-[#1580FF] border-[#1580FF]"
default-item-class="bg-[#F3F4F8] border-[#F3F4F8]" /> default-item-class="bg-[#F3F4F8] border-[#F3F4F8]" @change="handleComplete" />
</sar-dropdown-item> </sar-dropdown-item>
</sar-dropdown> </sar-dropdown>
</view> </view>

View File

@ -1,60 +1,13 @@
<script lang="ts" setup> <script lang="ts" setup>
import { getNewsDetail } from "@/service" import { getNewsDetail } from "@/service"
import { DomHandler, Parser } from 'htmlparser2'
type RichTextNode =
| { type: 'text'; text: string }
| { type: 'element'; name: string; attrs: Record<string, any>; children: RichTextNode[] }
const newsDetail = ref({ title: '', publishTime: "", remark: "",content:"" }) const newsDetail = ref({ title: '', publishTime: "", remark: "",content:"" })
const nodes = ref<any[]>([])
const parseHTMLToObject = (htmlString) => {
const handler = new DomHandler((error, dom) => {
if (error) {
console.error('Error parsing HTML:', error)
} else {
console.log('Parsed DOM:', dom)
}
})
const parser = new Parser(handler)
parser.write(htmlString)
parser.end()
return handler.dom
}
function traverseNodes(nodes: any[]): RichTextNode[] {
return nodes.flatMap((node) => {
if (node.type === 'text') {
const parts = node.data.split('\n')
return parts.flatMap((text, index) => {
const result: RichTextNode[] = [{ type: 'text', text }]
if (index < parts.length - 1) {
result.push({ type: 'element', name: 'br', attrs: {}, children: [] })
}
return result
})
} else if (node.type === 'tag') {
return [{
type: 'element',
name: node.name,
attrs: node.attribs,
children: traverseNodes(node.children || [])
}]
} else {
return []
}
})
}
onLoad(options => { onLoad(options => {
if (options.id) { if (options.id) {
getNewsDetail({ query: { id: options.id } }).then(resp => { getNewsDetail({ query: { id: options.id } }).then(resp => {
if (resp.code == 200) { if (resp.code == 200) {
newsDetail.value = resp.result newsDetail.value = resp.result
// const _nodes = parseHTMLToObject(resp.result.remark)
// nodes.value = traverseNodes(_nodes)
} }
}) })
} else { } else {
@ -73,7 +26,6 @@ const navigateToCustom = () => {
<view class="text-[#999] text-[28rpx] mt-[8rpx]">发布时间: {{ newsDetail.publishTime }}</view> <view class="text-[#999] text-[28rpx] mt-[8rpx]">发布时间: {{ newsDetail.publishTime }}</view>
<view class="border-b-[2rpx] border-b-dashed border-b-[#D8D8D8] mt-[20rpx] mb-[30rpx]"></view> <view class="border-b-[2rpx] border-b-dashed border-b-[#D8D8D8] mt-[20rpx] mb-[30rpx]"></view>
<view class="pt-[30rpx]"> <view class="pt-[30rpx]">
<!-- <rich-text :nodes="nodes"></rich-text> -->
<view v-html="newsDetail.content"></view> <view v-html="newsDetail.content"></view>
</view> </view>

View File

@ -109,8 +109,8 @@ const handleComplete = () => {
<text class="text-[30rpx] text-[#333]">{{ item.title }}</text> <text class="text-[30rpx] text-[#333]">{{ item.title }}</text>
<text class="text-[#999999] text-[26rpx]">{{ item.publishTime }}</text> <text class="text-[#999999] text-[26rpx]">{{ item.publishTime }}</text>
</view> </view>
<view class="w-[216rpx] h-[144rpx]"> <view class="w-[216rpx] h-[144rpx] rounded-[16rpx]">
<image :src="item.coverImage" mode="scaleToFill" class="w-[216rpx] h-[144rpx]" /> <image :src="item.coverImage" mode="scaleToFill" class="w-[216rpx] h-[144rpx] rounded-[16rpx]" />
</view> </view>
</view> </view>
</view> </view>

View File

@ -76,10 +76,16 @@ const partialColumns = [
}, },
] as const ] as const
const visibleFlag1 = ref(false)
const visibleFlag2 = ref(false)
const visibleFlag3 = ref(false)
const partialData = ref([]) const partialData = ref([])
const handleChange = () => { const handleChange = () => {
visibleFlag1.value = false;
visibleFlag2.value = false;
visibleFlag3.value = false;
getSchoolHistoricalScores({ getSchoolHistoricalScores({
query: { query: {
SchoolName: searchParams.value.keyword, SchoolName: searchParams.value.keyword,
@ -117,26 +123,26 @@ onShow(() => {
<mx-search v-model:searchText="searchParams.keyword" rootStyle="margin: 16rpx 30rpx 0;" @complete="handleChange"/> <mx-search v-model:searchText="searchParams.keyword" rootStyle="margin: 16rpx 30rpx 0;" @complete="handleChange"/>
<sar-dropdown <sar-dropdown
root-style="--sar-dropdown-placeholder-color:#666;--sar-dropdown-value-font-size:28rpx;--sar-dropdown-option-active-color:#1580FF;--sar-dropdown-box-shadow:0rpx 6rpx 8rpx 0rpx rgba(0,0,0,0.04);"> root-style="--sar-dropdown-placeholder-color:#666;--sar-dropdown-value-font-size:28rpx;--sar-dropdown-option-active-color:#1580FF;--sar-dropdown-box-shadow:0rpx 6rpx 8rpx 0rpx rgba(0,0,0,0.04);">
<sar-dropdown-item :title="searchParams.region || '区域'" :before-close="handleChange"> <sar-dropdown-item v-model:visible="visibleFlag1" :title="searchParams.region || '区域'" >
<mx-radio-group v-model:value="searchParams.region" :options="areaList" label-key="label" value-key="value" <mx-radio-group v-model:value="searchParams.region" :options="areaList" label-key="label" value-key="value"
custom-root-class="px-[32rpx] pt-[30rpx] pb-[40rpx]" custom-root-class="px-[32rpx] pt-[30rpx] pb-[40rpx]"
active-item-class="bg-[#e7f2ff] text-[#1580FF] border-[#1580FF]" active-item-class="bg-[#e7f2ff] text-[#1580FF] border-[#1580FF]"
default-item-class="bg-[#F3F4F8] border-[#F3F4F8]" default-item-class="bg-[#F3F4F8] border-[#F3F4F8]"
custom-item-class="w-full py-[16rpx] text-center border-[1rpx] border-solid" /> custom-item-class="w-full py-[16rpx] text-center border-[1rpx] border-solid" @change="handleChange"/>
</sar-dropdown-item> </sar-dropdown-item>
<sar-dropdown-item :title="searchParams.natureLabel || '办学性质'" :before-close="handleChange"> <sar-dropdown-item v-model:visible="visibleFlag2" :title="searchParams.natureLabel || '办学性质'" >
<mx-radio-group v-model:value="searchParams.nature" v-model:label="searchParams.natureLabel" <mx-radio-group v-model:value="searchParams.nature" v-model:label="searchParams.natureLabel"
:options="natureList" label-key="label" value-key="value" custom-root-class="px-[32rpx] pt-[30rpx] pb-[40rpx]" :options="natureList" label-key="label" value-key="value" custom-root-class="px-[32rpx] pt-[30rpx] pb-[40rpx]"
active-item-class="bg-[#e7f2ff] text-[#1580FF] border-[#1580FF]" active-item-class="bg-[#e7f2ff] text-[#1580FF] border-[#1580FF]"
default-item-class="bg-[#F3F4F8] border-[#F3F4F8]" default-item-class="bg-[#F3F4F8] border-[#F3F4F8]"
custom-item-class="w-full py-[16rpx] text-center border-[1rpx] border-solid" /> custom-item-class="w-full py-[16rpx] text-center border-[1rpx] border-solid" @change="handleChange"/>
</sar-dropdown-item> </sar-dropdown-item>
<sar-dropdown-item v-model="searchParams.year" :title="searchParams.year || '年份'" :before-close="handleChange"> <sar-dropdown-item v-model:visible="visibleFlag3" v-model="searchParams.year" :title="searchParams.year || '年份'">
<mx-radio-group v-model:value="searchParams.year" :options="years" label-key="label" value-key="value" <mx-radio-group v-model:value="searchParams.year" :options="years" label-key="label" value-key="value"
custom-root-class="px-[32rpx] pt-[30rpx] pb-[40rpx]" custom-root-class="px-[32rpx] pt-[30rpx] pb-[40rpx]"
custom-item-class="w-full py-[16rpx] text-center border-[1rpx] border-solid" custom-item-class="w-full py-[16rpx] text-center border-[1rpx] border-solid"
active-item-class="bg-[#e7f2ff] text-[#1580FF] border-[#1580FF]" active-item-class="bg-[#e7f2ff] text-[#1580FF] border-[#1580FF]"
default-item-class="bg-[#F3F4F8] border-[#F3F4F8]" /> default-item-class="bg-[#F3F4F8] border-[#F3F4F8]" @change="handleChange" />
</sar-dropdown-item> </sar-dropdown-item>
</sar-dropdown> </sar-dropdown>

View File

@ -83,7 +83,7 @@ onLoad(() => {
<scroll-view scroll-y class="flex-1"> <scroll-view scroll-y class="flex-1">
<view v-for="(val, index) in schools" :key="index" <view v-for="(val, index) in schools" :key="index"
class="flex items-center justify-between py-[28rpx] mx-[30rpx] border-b-1 border-b-solid border-[#f5f5f5] last:pb-safe" class="flex items-center justify-between py-[28rpx] mx-[30rpx] border-b-1 border-b-solid border-[#f5f5f5]"
@click="navigateToDetail(val.schoolName)"> @click="navigateToDetail(val.schoolName)">
<view class="text-[#333] text-[30rpx]">{{ val.schoolName }}</view> <view class="text-[#333] text-[30rpx]">{{ val.schoolName }}</view>
<view class="w-[18rpx] h-[36rpx]"> <view class="w-[18rpx] h-[36rpx]">
@ -91,9 +91,10 @@ onLoad(() => {
class="w-[18rpx] h-[36rpx]" /> class="w-[18rpx] h-[36rpx]" />
</view> </view>
</view> </view>
<view class="pb-safe"></view>
</scroll-view> </scroll-view>
<sar-popout :show-close="false" :show-footer="false" v-model:visible="regionVisible" :before-close="handleChange" <sar-popout :show-close="false" :show-footer="false" v-model:visible="regionVisible" @leave="handleChange"
root-style="--sar-popout-header-loose-padding-x:30rpx;"> root-style="--sar-popout-header-loose-padding-x:30rpx;">
<template #title> <template #title>
<view class="flex items-center justify-between w-full"> <view class="flex items-center justify-between w-full">
@ -105,12 +106,12 @@ onLoad(() => {
</view> </view>
</template> </template>
<view style="padding-left: 32rpx; padding-right: 32rpx"> <view class="px-[32rpx]">
<MxRadioGroup v-model:value="searchParams.region" v-model:label="searchParams.regionLabel" :options="regions" <MxRadioGroup v-model:value="searchParams.region" v-model:label="searchParams.regionLabel" :options="regions"
label-key="label" value-key="value" custom-root-class="" label-key="label" value-key="value" custom-root-class=""
custom-item-class="w-full py-[16rpx] text-center border-[1rpx] border-solid" custom-item-class="w-full py-[16rpx] text-center border-[1rpx] border-solid"
active-item-class="bg-[#e7f2ff] text-[#1580FF] border-[#1580FF]" active-item-class="bg-[#e7f2ff] text-[#1580FF] border-[#1580FF]"
default-item-class="bg-[#F3F4F8] border-[#F3F4F8]" /> default-item-class="bg-[#F3F4F8] border-[#F3F4F8]" @change="regionVisible = false"/>
</view> </view>
</sar-popout> </sar-popout>
</view> </view>

View File

@ -22,8 +22,8 @@ onShow(() => {
</script> </script>
<template> <template>
<view class="bg-[#F8F8F8] h-screen px-[30rpx]"> <view class="bg-[#F8F8F8] h-screen px-[30rpx] overflow-hidden">
<view v-for="(val, index) in list" :key="index" class="flex mb-[18rpx]" v-if="list.length > 0" @click="useRouterDetail(val)"> <view v-for="(val, index) in list" :key="index" class="flex first:mt-[30rpx]" v-if="list.length > 0" @click="useRouterDetail(val)">
<view <view
class="text-[30rpx] text-[#333] grid gap-[8rpx] bg-white px-[30rpx] py-[20rpx] not-last:mb-[30rpx] rounded-[16rpx] w-full flex items-center justify-between"> class="text-[30rpx] text-[#333] grid gap-[8rpx] bg-white px-[30rpx] py-[20rpx] not-last:mb-[30rpx] rounded-[16rpx] w-full flex items-center justify-between">

View File

@ -41,8 +41,8 @@ onLoad(() => {
</script> </script>
<template> <template>
<view class="bg-[#F8F8F8] h-screen px-[30rpx]"> <view class="bg-[#F8F8F8] h-screen px-[30rpx] overflow-hidden">
<view v-for="(val, index) in schools" :key="index" class="flex items-center mb-[18rpx] px-[30rpx] py-[20rpx] bg-white" <view v-for="(val, index) in schools" :key="index" class="flex items-center mb-[18rpx] px-[30rpx] py-[20rpx] bg-white first:mt-[30rpx]"
v-if="schools.length > 0" @click.stop="navigateToDetail(val.id)"> v-if="schools.length > 0" @click.stop="navigateToDetail(val.id)">
<view class="text-[30rpx] text-[#333] grid gap-[8rpx] not-last:mb-[30rpx] rounded-[16rpx] flex-1"> <view class="text-[30rpx] text-[#333] grid gap-[8rpx] not-last:mb-[30rpx] rounded-[16rpx] flex-1">
<view class="text-[32rpx] font-600">{{ val.schoolName }}</view> <view class="text-[32rpx] font-600">{{ val.schoolName }}</view>

View File

@ -47,8 +47,8 @@ onShow(() => {
</script> </script>
<template> <template>
<view class="bg-[#F8F8F8] h-screen px-[30rpx]"> <view class="bg-[#F8F8F8] h-screen px-[30rpx] overflow-hidden">
<view v-for="(val, index) in wishlist" :key="index" class="flex mb-[18rpx]" v-if="wishlist.length > 0" @click="navigateToDetail(val)"> <view v-for="(val, index) in wishlist" :key="index" class="flex first:mt-[30rpx]" v-if="wishlist.length > 0" @click="navigateToDetail(val)">
<view <view
class="text-[30rpx] text-[#333] grid gap-[8rpx] bg-white px-[30rpx] py-[20rpx] not-last:mb-[30rpx] rounded-[16rpx] w-full"> class="text-[30rpx] text-[#333] grid gap-[8rpx] bg-white px-[30rpx] py-[20rpx] not-last:mb-[30rpx] rounded-[16rpx] w-full">
<view class="text-[32rpx] font-600">{{ val.title }}</view> <view class="text-[32rpx] font-600">{{ val.title }}</view>

View File

@ -131,7 +131,7 @@ onLoad(() => {
</template> </template>
</sar-navbar> </sar-navbar>
<view class="flex items-center mx-[30rpx]"> <view class="flex items-center mx-[30rpx] mb-[20rpx]">
<view class="w-[112rpx] h-[104rpx] flex items-center"> <view class="w-[112rpx] h-[104rpx] flex items-center">
<image src="https://lwzk.ycymedu.com/img/tianbao/tb_01.png" mode="scaleToFill" <image src="https://lwzk.ycymedu.com/img/tianbao/tb_01.png" mode="scaleToFill"
class="w-[112rpx] h-[104rpx]" /> class="w-[112rpx] h-[104rpx]" />

View File

@ -153,7 +153,7 @@ onLoad(() => {
</view> </view>
</view> </view>
<view class="flex items-center text-[30rpx] mx-[40rpx] py-[34rpx]"> <view class="flex items-center text-[30rpx] mx-[40rpx] pt-[34rpx] mb-[20rpx]">
<view class="text-[#404142] text-left mr-[14rpx]">考级证书</view> <view class="text-[#404142] text-left mr-[14rpx]">考级证书</view>
<view class="w-[32rpx] h-[32rpx] flex items-center"> <view class="w-[32rpx] h-[32rpx] flex items-center">
<image src="https://lwzk.ycymedu.com/img/cpgx/cp_jieshi.png" <image src="https://lwzk.ycymedu.com/img/cpgx/cp_jieshi.png"
@ -165,7 +165,7 @@ onLoad(() => {
<MxUpload :multiple="true" :outerFileList="defaultImgs" @change="handleAwardUploadChange" /> <MxUpload :multiple="true" :outerFileList="defaultImgs" @change="handleAwardUploadChange" />
</view> </view>
<view class="flex items-center text-[30rpx] mx-[40rpx] py-[34rpx]"> <view class="flex items-center text-[30rpx] mx-[40rpx] pt-[34rpx] mb-[20rpx]">
<view class="text-[#404142] text-left mr-[14rpx]">作品上传</view> <view class="text-[#404142] text-left mr-[14rpx]">作品上传</view>
<view class="w-[32rpx] h-[32rpx] flex items-center"> <view class="w-[32rpx] h-[32rpx] flex items-center">
<image src="https://lwzk.ycymedu.com/img/cpgx/cp_jieshi.png" <image src="https://lwzk.ycymedu.com/img/cpgx/cp_jieshi.png"

View File

@ -107,6 +107,8 @@ onShow(() => {
userInfo.value.talentExtend = resp.result userInfo.value.talentExtend = resp.result
} else { } else {
userStore.initUserTalent() userStore.initUserTalent()
console.log(userInfo.value.talentExtend);
} }
} }
userInfo.value.talentExtend.type = 1 userInfo.value.talentExtend.type = 1
@ -125,7 +127,7 @@ onShow(() => {
</template> </template>
</sar-navbar> </sar-navbar>
<view class="flex items-center mx-[30rpx]"> <view class="flex items-center mx-[30rpx] mb-[20rpx]">
<view class="w-[112rpx] h-[104rpx] flex items-center"> <view class="w-[112rpx] h-[104rpx] flex items-center">
<image src="https://lwzk.ycymedu.com/img/tianbao/tb_01.png" mode="scaleToFill" <image src="https://lwzk.ycymedu.com/img/tianbao/tb_01.png" mode="scaleToFill"
class="w-[112rpx] h-[104rpx]" /> class="w-[112rpx] h-[104rpx]" />

View File

@ -116,7 +116,7 @@ onLoad(() => {
</template> </template>
</sar-navbar> </sar-navbar>
<view class="flex items-center mx-[30rpx]"> <view class="flex items-center mx-[30rpx] mb-[20rpx]">
<view class="w-[112rpx] h-[104rpx] flex items-center"> <view class="w-[112rpx] h-[104rpx] flex items-center">
<image src="https://lwzk.ycymedu.com/img/tianbao/tb_02.png" mode="scaleToFill" <image src="https://lwzk.ycymedu.com/img/tianbao/tb_02.png" mode="scaleToFill"
class="w-[112rpx] h-[104rpx]" /> class="w-[112rpx] h-[104rpx]" />
@ -136,8 +136,7 @@ onLoad(() => {
<view class="flex flex-col h-full"> <view class="flex flex-col h-full">
<view <view
class="flex items-center text-[30rpx] justify-between mx-[40rpx] py-[34rpx] border-b-1 border-b-[#eaeaea] border-b-solid"> class="flex items-center text-[30rpx] justify-between mx-[40rpx] py-[34rpx] border-b-1 border-b-[#eaeaea] border-b-solid">
<view class="text-[#404142] text-left min-w-[150rpx] mr-[40rpx]">体测成绩 <span <view class="text-[#404142] text-left min-w-[150rpx] mr-[40rpx]">体测成绩<span class="text-[#D42226] text-[30rpx]">*</span>
class="text-[#D42226]">*</span>
</view> </view>
<view class="flex-1"> <view class="flex-1">
<input type="number" input-mode="numeric" v-model="userInfo.talentExtend.fitnessResult" <input type="number" input-mode="numeric" v-model="userInfo.talentExtend.fitnessResult"
@ -149,7 +148,7 @@ onLoad(() => {
<view <view
class="flex items-center text-[30rpx] justify-between mx-[40rpx] py-[34rpx] border-b-1 border-b-[#eaeaea] border-b-solid"> class="flex items-center text-[30rpx] justify-between mx-[40rpx] py-[34rpx] border-b-1 border-b-[#eaeaea] border-b-solid">
<view class="text-[#404142] text-left min-w-[150rpx] mr-[40rpx] ">百米成绩<span <view class="text-[#404142] text-left min-w-[150rpx] mr-[40rpx] ">百米成绩<span
class="text-[#D42226]">*</span> class="text-[#D42226] text-[30rpx]">*</span>
</view> </view>
<view class="flex-1 flex items-center"> <view class="flex-1 flex items-center">
<view class="flex-1"> <view class="flex-1">
@ -166,7 +165,7 @@ onLoad(() => {
<view <view
class="flex items-center text-[30rpx] justify-between mx-[40rpx] py-[34rpx] border-b-1 border-b-[#eaeaea] border-b-solid"> class="flex items-center text-[30rpx] justify-between mx-[40rpx] py-[34rpx] border-b-1 border-b-[#eaeaea] border-b-solid">
<view class="text-[#404142] text-left min-w-[150rpx] mr-[40rpx] ">立定跳远<span <view class="text-[#404142] text-left min-w-[150rpx] mr-[40rpx] ">立定跳远<span
class="text-[#D42226]">*</span> class="text-[#D42226] text-[30rpx]">*</span>
</view> </view>
<view class="flex-1 flex items-center"> <view class="flex-1 flex items-center">
<view class="flex-1"> <view class="flex-1">
@ -183,7 +182,7 @@ onLoad(() => {
<view <view
class="flex items-center text-[30rpx] justify-between mx-[40rpx] py-[34rpx] border-b-1 border-b-[#eaeaea] border-b-solid"> class="flex items-center text-[30rpx] justify-between mx-[40rpx] py-[34rpx] border-b-1 border-b-[#eaeaea] border-b-solid">
<view class="text-[#404142] text-left min-w-[150rpx] mr-[40rpx]">专项项目<span <view class="text-[#404142] text-left min-w-[150rpx] mr-[40rpx]">专项项目<span
class="text-[#D42226]">*</span> class="text-[#D42226] text-[30rpx]">*</span>
</view> </view>
<view class="flex-1 flex items-center" @click="handleOpenPopup('project')"> <view class="flex-1 flex items-center" @click="handleOpenPopup('project')">
<view class="flex-1"> <view class="flex-1">
@ -214,7 +213,7 @@ onLoad(() => {
</view> </view>
</view> </view>
<view class="flex items-center text-[30rpx] mx-[40rpx] py-[34rpx]"> <view class="flex items-center text-[30rpx] mx-[40rpx] pt-[34rpx] mb-[20rpx]">
<view class="text-[#404142] text-left mr-[14rpx]">获奖经历</view> <view class="text-[#404142] text-left mr-[14rpx]">获奖经历</view>
<view class="w-[32rpx] h-[32rpx] flex items-center"> <view class="w-[32rpx] h-[32rpx] flex items-center">
<image src="https://lwzk.ycymedu.com/img/cpgx/cp_jieshi.png" <image src="https://lwzk.ycymedu.com/img/cpgx/cp_jieshi.png"

View File

@ -19,7 +19,7 @@ const handleChoose = (val) => {
chooseData.value.splice(0, 1, val.schoolId) chooseData.value.splice(0, 1, val.schoolId)
if(wishlistStore.getSchool()){ if(wishlistStore.getSchool()){
const exitsSchool = JSON.parse(wishlistStore.getSchool()) const exitsSchool = JSON.parse(wishlistStore.getSchool())
const willSchool = exitsSchool.filter((item)=>{item.type !== '指标生'}) const willSchool = exitsSchool.schools.filter((item)=>{item.type !== '指标生'})
wishlistStore.setSchool(JSON.stringify({schools:[{...val,type:'firstBatch'},...willSchool]})) wishlistStore.setSchool(JSON.stringify({schools:[{...val,type:'firstBatch'},...willSchool]}))
}else{ }else{
wishlistStore.setSchool(JSON.stringify({schools:[{...val,type:'firstBatch'}]})) wishlistStore.setSchool(JSON.stringify({schools:[{...val,type:'firstBatch'}]}))
@ -169,7 +169,7 @@ onMounted(() => {
</view> </view>
<sar-popout :show-close="false" :show-footer="false" v-model:visible="popVisible" <sar-popout :show-close="false" :show-footer="false" v-model:visible="popVisible"
root-style="--sar-popout-header-loose-padding-x:30rpx;" @leave="handleChangeSchool"> root-style="--sar-popout-header-loose-padding-x:30rpx;" root-class="min-h-[560rpx]" @leave="handleChangeSchool">
<template #title> <template #title>
<view class="flex items-center justify-between w-full"> <view class="flex items-center justify-between w-full">
<view class="text-[34rpx] font-500">{{ popType === 'school' ? '全部学校' : (popType === <view class="text-[34rpx] font-500">{{ popType === 'school' ? '全部学校' : (popType ===
@ -178,7 +178,6 @@ onMounted(() => {
<image src="https://lwzk.ycymedu.com/img/tianbao/tb_guanbi.png" mode="scaleToFill" <image src="https://lwzk.ycymedu.com/img/tianbao/tb_guanbi.png" mode="scaleToFill"
class="w-[36rpx] h-[36rpx]" /> class="w-[36rpx] h-[36rpx]" />
</view> </view>
</view> </view>
</template> </template>
<view> <view>
@ -188,13 +187,13 @@ onMounted(() => {
custom-root-class="pt-[30rpx] pb-[16rpx]" custom-root-class="pt-[30rpx] pb-[16rpx]"
custom-item-class="py-[12rpx] text-center border-1 border-solid border-[#F3F4F8]" custom-item-class="py-[12rpx] text-center border-1 border-solid border-[#F3F4F8]"
active-item-class="bg-white text-[#1580FF] border-1 border-solid border-[#1580FF]!" active-item-class="bg-white text-[#1580FF] border-1 border-solid border-[#1580FF]!"
v-if="popType === 'school'" /> v-if="popType === 'school'" @change="popVisible = false"/>
<MxRadio v-model:value="searchParams.nature" v-model:label="searchParams.natureLabel" :options="natureList" <MxRadio v-model:value="searchParams.nature" v-model:label="searchParams.natureLabel" :options="natureList"
label-key="label" value-key="value" custom-root-cols-class="grid grid-cols-2 items-center gap-[16rpx]" label-key="label" value-key="value" custom-root-cols-class="grid grid-cols-2 items-center gap-[16rpx]"
custom-root-class="pt-[30rpx] pb-[16rpx]" custom-root-class="pt-[30rpx] pb-[16rpx]"
custom-item-class="py-[12rpx] text-center border-1 border-solid border-[#F3F4F8]" custom-item-class="py-[12rpx] text-center border-1 border-solid border-[#F3F4F8]"
active-item-class="bg-white text-[#1580FF] border-1 border-solid border-[#1580FF]!" active-item-class="bg-white text-[#1580FF] border-1 border-solid border-[#1580FF]!"
v-if="popType === 'nature'" /> v-if="popType === 'nature'" @change="popVisible = false"/>
<MxCheckbox v-model:value="searchParams.region" :options="regions" label-key="label" value-key="value" <MxCheckbox v-model:value="searchParams.region" :options="regions" label-key="label" value-key="value"
custom-root-class="pt-[30rpx] pb-[16rpx]" custom-item-class="w-full py-[16rpx] text-center" custom-root-class="pt-[30rpx] pb-[16rpx]" custom-item-class="w-full py-[16rpx] text-center"
v-if="popType === 'region'" /> v-if="popType === 'region'" />

View File

@ -1,5 +1,5 @@
<script lang="ts" setup> <script lang="ts" setup>
// import MxSearch from "@/pages-sub/components/search/index.vue" import MxSearch from "@/pages-sub/components/search/index.vue"
import MxCheckbox from "@/pages-sub/components/checkbox/index.vue?async" import MxCheckbox from "@/pages-sub/components/checkbox/index.vue?async"
import MxRadio from "@/pages-sub/components/radio/index.vue?async" import MxRadio from "@/pages-sub/components/radio/index.vue?async"
import { getAreaList, getBusSchoolAdmission, getSchoolNature } from "@/service" import { getAreaList, getBusSchoolAdmission, getSchoolNature } from "@/service"
@ -34,11 +34,11 @@ const handleChoose = (val) => {
chooseDataMap.set(val.schoolId, val) chooseDataMap.set(val.schoolId, val)
} }
let tempSchool = [] let tempSchool = []
chooseDataMap.forEach((val,key)=>{ chooseDataMap.forEach((val, key) => {
tempSchool.push({...val,type:"secondBatch"}) tempSchool.push({ ...val, type: "secondBatch" })
}) })
wishlistStore.setSchool(JSON.stringify({schools:tempSchool})) wishlistStore.setSchool(JSON.stringify({ schools: tempSchool }))
} }
const popVisible = ref(false) const popVisible = ref(false)
@ -136,8 +136,9 @@ onBeforeMount(() => {
</view> </view>
</view> </view>
<!-- <MxSearch root-class="py-[14rpx]! px-[20rpx]! w-[166rpx] rounded-[12rpx]!" :clear-icon="false" <MxSearch v-model:searchText="searchParams.keyword"
placeholder="请输入" /> --> root-class="py-[14rpx]! px-[20rpx]! w-[166rpx] rounded-[12rpx]!" :clear-icon="false" placeholder="请输入"
@complete="handleChangeSchool" />
</view> </view>
<view v-if="tableData.length === 0" <view v-if="tableData.length === 0"
class="flex flex-col items-center justify-center bg-[#F7F7F7] min-h-[240rpx] rounded-[16rpx]"> class="flex flex-col items-center justify-center bg-[#F7F7F7] min-h-[240rpx] rounded-[16rpx]">
@ -175,8 +176,8 @@ onBeforeMount(() => {
<view class="flex items-center justify-center" @click="handleChoose(record)"> <view class="flex items-center justify-center" @click="handleChoose(record)">
<view class="w-[36rpx] h-[36rpx] flex items-center" <view class="w-[36rpx] h-[36rpx] flex items-center"
v-if="chooseData.includes(record.schoolId)"> v-if="chooseData.includes(record.schoolId)">
<image src="https://lwzk.ycymedu.com/img/tianbao/tb_duoxuan.png" <image src="https://lwzk.ycymedu.com/img/tianbao/tb_duoxuan.png" mode="scaleToFill"
mode="scaleToFill" class="w-[36rpx] h-[36rpx]" /> class="w-[36rpx] h-[36rpx]" />
</view> </view>
<sar-icon name="square" size="36rpx" color="#CCC" v-else></sar-icon> <sar-icon name="square" size="36rpx" color="#CCC" v-else></sar-icon>
</view> </view>
@ -192,8 +193,8 @@ onBeforeMount(() => {
<view class="text-[34rpx] font-500">{{ popType === 'school' ? '全部学校' : (popType === 'nature' ? <view class="text-[34rpx] font-500">{{ popType === 'school' ? '全部学校' : (popType === 'nature' ?
'请选择办学性质' : '请选择所在区(可多选)') }}</view> '请选择办学性质' : '请选择所在区(可多选)') }}</view>
<view class="w-[36rpx] h-[36rpx] flex items-center" @click="popVisible = false"> <view class="w-[36rpx] h-[36rpx] flex items-center" @click="popVisible = false">
<image src="https://lwzk.ycymedu.com/img/tianbao/tb_guanbi.png" <image src="https://lwzk.ycymedu.com/img/tianbao/tb_guanbi.png" mode="scaleToFill"
mode="scaleToFill" class="w-[36rpx] h-[36rpx]" /> class="w-[36rpx] h-[36rpx]" />
</view> </view>
</view> </view>
@ -206,14 +207,14 @@ onBeforeMount(() => {
custom-root-class="pt-[30rpx] pb-[16rpx]" custom-root-class="pt-[30rpx] pb-[16rpx]"
custom-item-class="py-[12rpx] text-center border-1 border-solid border-[#F3F4F8]" custom-item-class="py-[12rpx] text-center border-1 border-solid border-[#F3F4F8]"
active-item-class="bg-white text-[#1580FF] border-1 border-solid border-[#1580FF]!" active-item-class="bg-white text-[#1580FF] border-1 border-solid border-[#1580FF]!"
v-if="popType === 'school'" /> v-if="popType === 'school'" @change="popVisible = false"/>
<MxRadio v-model:value="searchParams.nature" v-model:label="searchParams.natureLabel" <MxRadio v-model:value="searchParams.nature" v-model:label="searchParams.natureLabel"
:options="natureList" label-key="label" value-key="value" :options="natureList" label-key="label" value-key="value"
custom-root-cols-class="grid grid-cols-2 items-center gap-[16rpx]" custom-root-cols-class="grid grid-cols-2 items-center gap-[16rpx]"
custom-root-class="pt-[30rpx] pb-[16rpx]" custom-root-class="pt-[30rpx] pb-[16rpx]"
custom-item-class="py-[12rpx] text-center border-1 border-solid border-[#F3F4F8]" custom-item-class="py-[12rpx] text-center border-1 border-solid border-[#F3F4F8]"
active-item-class="bg-white text-[#1580FF] border-1 border-solid border-[#1580FF]!" active-item-class="bg-white text-[#1580FF] border-1 border-solid border-[#1580FF]!"
v-if="popType === 'nature'" /> v-if="popType === 'nature'" @change="popVisible = false"/>
<MxCheckbox v-model:value="searchParams.region" :options="regions" label-key="label" <MxCheckbox v-model:value="searchParams.region" :options="regions" label-key="label"
value-key="value" custom-root-class="pt-[30rpx] pb-[16rpx]" value-key="value" custom-root-class="pt-[30rpx] pb-[16rpx]"
custom-item-class="w-full py-[16rpx] text-center" v-if="popType === 'region'" /> custom-item-class="w-full py-[16rpx] text-center" v-if="popType === 'region'" />

View File

@ -82,6 +82,10 @@ const handleChangeSchool = () => {
totalCount.value = Number(resp.result.chongCount) + Number(resp.result.wenCount) + Number(resp.result.baoCount) totalCount.value = Number(resp.result.chongCount) + Number(resp.result.wenCount) + Number(resp.result.baoCount)
}) })
} }
const handleCancel = () => {
searchParams.value.region = []
popVisible.value = false;
}
onBeforeMount(() => { onBeforeMount(() => {
@ -185,7 +189,7 @@ onBeforeMount(() => {
</view> </view>
<sar-popout :show-close="false" :show-footer="false" v-model:visible="popVisible" <sar-popout :show-close="false" :show-footer="false" v-model:visible="popVisible"
root-style="--sar-popout-header-loose-padding-x:30rpx;"> root-style="--sar-popout-header-loose-padding-x:30rpx;" @leave="handleChangeSchool">
<template #title> <template #title>
<view class="flex items-center justify-between w-full"> <view class="flex items-center justify-between w-full">
<view class="text-[34rpx] font-500">{{ popType === 'school' ? '全部学校' : (popType === 'nature' ? <view class="text-[34rpx] font-500">{{ popType === 'school' ? '全部学校' : (popType === 'nature' ?
@ -205,14 +209,14 @@ onBeforeMount(() => {
custom-root-class="pt-[30rpx] pb-[16rpx]" custom-root-class="pt-[30rpx] pb-[16rpx]"
custom-item-class="py-[12rpx] text-center border-1 border-solid border-[#F3F4F8]" custom-item-class="py-[12rpx] text-center border-1 border-solid border-[#F3F4F8]"
active-item-class="bg-white text-[#1580FF] border-1 border-solid border-[#1580FF]!" active-item-class="bg-white text-[#1580FF] border-1 border-solid border-[#1580FF]!"
v-if="popType === 'school'" /> v-if="popType === 'school'" @change="popVisible = false"/>
<MxRadio v-model:value="searchParams.nature" v-model:label="searchParams.natureLabel" <MxRadio v-model:value="searchParams.nature" v-model:label="searchParams.natureLabel"
:options="natureList" label-key="label" value-key="value" :options="natureList" label-key="label" value-key="value"
custom-root-cols-class="grid grid-cols-2 items-center gap-[16rpx]" custom-root-cols-class="grid grid-cols-2 items-center gap-[16rpx]"
custom-root-class="pt-[30rpx] pb-[16rpx]" custom-root-class="pt-[30rpx] pb-[16rpx]"
custom-item-class="py-[12rpx] text-center border-1 border-solid border-[#F3F4F8]" custom-item-class="py-[12rpx] text-center border-1 border-solid border-[#F3F4F8]"
active-item-class="bg-white text-[#1580FF] border-1 border-solid border-[#1580FF]!" active-item-class="bg-white text-[#1580FF] border-1 border-solid border-[#1580FF]!"
v-if="popType === 'nature'" /> v-if="popType === 'nature'" @change="popVisible = false"/>
<MxCheckbox v-model:value="searchParams.region" :options="regions" label-key="label" <MxCheckbox v-model:value="searchParams.region" :options="regions" label-key="label"
value-key="value" custom-root-class="pt-[30rpx] pb-[16rpx]" value-key="value" custom-root-class="pt-[30rpx] pb-[16rpx]"
custom-item-class="w-full py-[16rpx] text-center" v-if="popType === 'region'" /> custom-item-class="w-full py-[16rpx] text-center" v-if="popType === 'region'" />
@ -220,9 +224,9 @@ onBeforeMount(() => {
<view <view
class="grid grid-cols-2 gap-[20rpx] border-t-[1rpx] border-t-solid border-t-[#eee] pt-[16rpx] px-[30rpx]" class="grid grid-cols-2 gap-[20rpx] border-t-[1rpx] border-t-solid border-t-[#eee] pt-[16rpx] px-[30rpx]"
v-if="popType === 'region'"> v-if="popType === 'region'">
<view class="text-[34rpx] font-500 text-[#333] bg-[#F5F5F5] rounded-[12rpx] py-[20rpx] text-center"> <view class="text-[34rpx] font-500 text-[#333] bg-[#F5F5F5] rounded-[12rpx] py-[20rpx] text-center" @click="handleCancel">
取消</view> 取消</view>
<view class="text-[34rpx] font-500 text-white bg-[#1580FF] rounded-[12rpx] py-[20rpx] text-center"> <view class="text-[34rpx] font-500 text-white bg-[#1580FF] rounded-[12rpx] py-[20rpx] text-center" @click="handleChangeSchool">
确定</view> 确定</view>
</view> </view>
</view> </view>

View File

@ -29,13 +29,16 @@ definePage({
// #endif // #endif
const handleBack = () => { const handleBack = () => {
uni.navigateBack({ delta: 1 }) const pages = getCurrentPages()
if(pages.length <=1){
uni.switchTab({url:'/pages/index/index'})
return
}
uni.navigateBack()
} }
const formData = ref({ const formData = ref({
genderLabel: '', genderLabel: '',
}) })
const userStore = useUserStore(); const userStore = useUserStore();
@ -69,7 +72,7 @@ const onOverlayClick = () => {
visible.value = false visible.value = false
} }
const genderClassification = [{ label: '男', value: "1" }, { label: '女', value: "2" }] const genderClassification = [{ label: '男', value: 1 }, { label: '女', value: 2 }]
const gradeClassification = ref([]) const gradeClassification = ref([])
const areaList = ref([]) const areaList = ref([])
@ -113,7 +116,7 @@ onShow(() => {
</template> </template>
</sar-navbar> </sar-navbar>
<view class="flex items-center mx-[30rpx]"> <view class="flex items-center mx-[30rpx] mb-[20rpx]">
<view class="w-[112rpx] h-[104rpx] flex items-center"> <view class="w-[112rpx] h-[104rpx] flex items-center">
<image src="https://lwzk.ycymedu.com/img/tianbao/tb_01.png" mode="scaleToFill" <image src="https://lwzk.ycymedu.com/img/tianbao/tb_01.png" mode="scaleToFill"
class="w-[112rpx] h-[104rpx]" /> class="w-[112rpx] h-[104rpx]" />
@ -226,22 +229,22 @@ onShow(() => {
</view> </view>
<MxRadio v-model:value="userInfo.sex" v-model:label="formData.genderLabel" v-if="activeType == 'gender'" <MxRadio v-model:value="userInfo.sex" v-model:label="formData.genderLabel" v-if="activeType == 'gender'"
:options="genderClassification" label-key="label" value-key="value" :options="genderClassification" label-key="label" value-key="value"
custom-root-cols-class="grid grid-cols-2 items-center gap-[16rpx]" custom-root-cols-class="grid grid-cols-2 items-center gap-[20rpx]"
custom-root-class="pt-[22rpx] pb-[20rpx]" custom-item-class="py-[12rpx] text-center " custom-root-class="pb-[20rpx]" custom-item-class="py-[12rpx] text-center "
active-item-class="bg-[#e7f2ff] text-[#1580FF] border-none" /> active-item-class="bg-white text-[#1580FF] border-[#1580FF] border-[2rpx] border-solid" @change="visible = false" />
<MxRadio v-model:value="userInfo.userExtend.gradeId" v-model:label="userInfo.userExtend.gradeName" <MxRadio v-model:value="userInfo.userExtend.gradeId" v-model:label="userInfo.userExtend.gradeName"
v-if="activeType == 'grade'" :options="gradeClassification" label-key="label" value-key="value" v-if="activeType == 'grade'" :options="gradeClassification" label-key="label" value-key="value"
custom-root-cols-class="grid grid-cols-3 items-center gap-[16rpx]" custom-root-cols-class="grid grid-cols-3 items-center gap-[20rpx]"
custom-root-class="pt-[22rpx] pb-[20rpx]" custom-item-class="py-[12rpx] text-center " custom-root-class="pb-[20rpx]" custom-item-class="py-[12rpx] text-center "
active-item-class="bg-[#e7f2ff] text-[#1580FF] border-none" /> active-item-class="bg-white text-[#1580FF] border-[#1580FF] border-[2rpx] border-solid" @change="visible = false"/>
<MxRadio v-model:value="userInfo.userExtend.area" v-if="activeType == 'examinationArea'" <MxRadio v-model:value="userInfo.userExtend.area" v-if="activeType == 'examinationArea'"
:options="areaList" label-key="label" value-key="value" :options="areaList" label-key="label" value-key="value"
custom-root-cols-class="grid grid-cols-3 items-center gap-[16rpx]" custom-root-cols-class="grid grid-cols-3 items-center gap-[20rpx]"
custom-root-class="pt-[22rpx] pb-[20rpx]" custom-item-class="py-[12rpx] text-center " custom-root-class="pb-[20rpx]" custom-item-class="py-[12rpx] text-center "
active-item-class="bg-[#e7f2ff] text-[#1580FF] border-none" /> active-item-class="bg-white text-[#1580FF] border-[#1580FF] border-[2rpx] border-solid" @change="visible = false"/>
</view> </view>
</sar-popup> </sar-popup>
@ -250,7 +253,7 @@ onShow(() => {
<style lang="scss" scoped> <style lang="scss" scoped>
.custom-background { .custom-background {
background: linear-gradient(180deg, #D7E4FF 0%, #fff 556rpx); background: linear-gradient( 177deg, #E4EDFF 0%, #F0F5FF 180rpx, #FEFEFF 360rpx);
background-position: 50% 50%; background-position: 50% 50%;
background-origin: padding-box; background-origin: padding-box;
background-clip: border-box; background-clip: border-box;

View File

@ -3,6 +3,8 @@ import { safeAreaInsets } from '@/utils/systemInfo'
import ScheduleQuota from './components/ScheduleQuota.vue' import ScheduleQuota from './components/ScheduleQuota.vue'
import FirstBatchSchool from './components/FirstBatchSchool.vue' import FirstBatchSchool from './components/FirstBatchSchool.vue'
import MxDialog from "@/pages-sub/components/dialog/index.vue" import MxDialog from "@/pages-sub/components/dialog/index.vue"
import { useWishlistStore } from '@/store'
import { storeToRefs } from 'pinia'
// #ifdef MP-WEIXIN // #ifdef MP-WEIXIN
definePage({ definePage({
@ -24,7 +26,12 @@ definePage({
}) })
// #endif // #endif
const wishlistStore = useWishlistStore()
const {extendWishlist} = storeToRefs(wishlistStore)
const handleBack = () => { const handleBack = () => {
wishlistStore.clearExtendWishlist()
uni.navigateBack({ delta: 1 }) uni.navigateBack({ delta: 1 })
} }
@ -44,20 +51,20 @@ const show = ref(false)
<view class="flex justify-center">第一批次</view> <view class="flex justify-center">第一批次</view>
</template> </template>
</sar-navbar> </sar-navbar>
<view
class="bg-[#ddebfe] rounded-[16rpx] border-2rpx border-solid border-white flex items-center mx-[20rpx] py-[16rpx] px-[30rpx]"
@click="show = true">
<view class="w-[36rpx] h-[36rpx] flex items-center">
<image src="https://lwzk.ycymedu.com/img/tianbao/tb_tongzhi.png" mode="scaleToFill"
class="w-[36rpx] h-[36rpx]" />
</view>
<view class="text-[#1580FF] text-[30rpx] font-500 ml-[10rpx]">家长须知</view>
<view class="w-[14rpx] h-[18rpx] flex items-center ml-auto">
<image src="https://lwzk.ycymedu.com/img/tianbao/tb_lanjiantou.png" mode="scaleToFill"
class="w-[14rpx] h-[18rpx]" />
</view>
</view>
<view class="flex-1 overflow-y-auto"> <view class="flex-1 overflow-y-auto">
<view
class="bg-[#ddebfe] rounded-[16rpx] border-2rpx border-solid border-white flex items-center mx-[20rpx] py-[16rpx] px-[30rpx]"
@click="show = true">
<view class="w-[36rpx] h-[36rpx] flex items-center">
<image src="https://lwzk.ycymedu.com/img/tianbao/tb_tongzhi.png" mode="scaleToFill"
class="w-[36rpx] h-[36rpx]" />
</view>
<view class="text-[#1580FF] text-[30rpx] font-500 ml-[10rpx]">家长须知</view>
<view class="w-[14rpx] h-[18rpx] flex items-center ml-auto">
<image src="https://lwzk.ycymedu.com/img/tianbao/tb_lanjiantou.png" mode="scaleToFill"
class="w-[14rpx] h-[18rpx]" />
</view>
</view>
<view class="text-[32rpx] font-500 m-[20rpx] ">名额到校</view> <view class="text-[32rpx] font-500 m-[20rpx] ">名额到校</view>
<view class="px-[20rpx]"> <view class="px-[20rpx]">
<ScheduleQuota /> <ScheduleQuota />
@ -71,11 +78,11 @@ const show = ref(false)
<view class="border-t border-t-solid border-t-[#ededed] px-[40rpx] py-[16rpx]"> <view class="border-t border-t-solid border-t-[#ededed] px-[40rpx] py-[16rpx]">
<view class="pb-safe" <view class="pb-safe"
@click="navigateToList"> @click="navigateToList">
<button class="rounded-[16rpx] bg-[#1580FF] text-[#f7f7f7] submit-btn">确定</button> <button :disabled="extendWishlist.contents.length === 0" class="rounded-[16rpx] bg-[#1580FF] text-[#f7f7f7] submit-btn">确定</button>
</view> </view>
</view> </view>
<MxDialog v-model:show="show" title="" :defaultPadding="false" defaultWidth="85%" rootClass="rounded-[40rpx]" <MxDialog v-model:show="show" title="" :defaultPadding="false" defaultWidth="80%" rootClass="rounded-[40rpx]"
@overlay-click="show = false"> @overlay-click="show = false">
<template> <template>
<view class="rounded-[40rpx] bg-white p-[40rpx] custom-dialog-background"> <view class="rounded-[40rpx] bg-white p-[40rpx] custom-dialog-background">
@ -98,7 +105,9 @@ const show = ref(false)
</view> </view>
<view class="text-[#333]">本批次为顺序录取不实行平行志愿</view> <view class="text-[#333]">本批次为顺序录取不实行平行志愿</view>
</view> </view>
<view
class="text-[34rpx] font-500 text-white bg-[#1580FF] rounded-full py-[20rpx] text-center mx-[40rpx] mt-[40rpx]"
@click="show = false">我知道了</view>
</view> </view>
</template> </template>
</MxDialog> </MxDialog>
@ -121,4 +130,9 @@ const show = ref(false)
background-clip: border-box; background-clip: border-box;
background-size: auto auto; background-size: auto auto;
} }
.submit-btn[disabled] {
background-color: #73b3ff;
color: #fff;
}
</style> </style>

View File

@ -23,11 +23,13 @@ const handleSubmit = () =>{
saveWishlist({data:{title:wishListName.value,contents:extendWishlist.value.contents,batchName:'第一批次',TotalScore:totalScore.value}}).then(resp => { saveWishlist({data:{title:wishListName.value,contents:extendWishlist.value.contents,batchName:'第一批次',TotalScore:totalScore.value}}).then(resp => {
if(resp.code === 200){ if(resp.code === 200){
show.value = false show.value = false
wishlistStore.clearExtendWishlist();
uni.switchTab({url:"/pages/index/index"}) uni.switchTab({url:"/pages/index/index"})
} }
}) })
} }
const navigateToHome = () => { const navigateToHome = () => {
wishlistStore.clearExtendWishlist();
uni.switchTab({url:"/pages/index/index"}) uni.switchTab({url:"/pages/index/index"})
} }
@ -45,13 +47,17 @@ onShow(() => {
}) })
}) })
onBackPress(() => {
wishlistStore.clearExtendWishlist();
})
</script> </script>
<template> <template>
<view class="flex flex-col h-screen "> <view class="flex flex-col h-screen ">
<view class="pb-safe flex-1 flex flex-col overflow-hidden"> <view class="pb-safe flex-1 flex flex-col overflow-hidden">
<view class="flex-1 overflow-y-auto px-[30rpx] bg-[#F8F8F8]"> <view class="flex-1 overflow-y-auto px-[30rpx] bg-[#F8F8F8]">
<view v-for="(val, index) in schools" :key="index" class="flex"> <view v-for="(val, index) in schools" :key="index" class="flex first:mt-[30rpx]">
<view <view
class="text-[30rpx] text-[#333] grid gap-[8rpx] bg-white px-[30rpx] py-[20rpx] not-last:mb-[30rpx] rounded-[16rpx] w-full"> class="text-[30rpx] text-[#333] grid gap-[8rpx] bg-white px-[30rpx] py-[20rpx] not-last:mb-[30rpx] rounded-[16rpx] w-full">
<view class="text-[32rpx] font-600">{{ val.schoolName }}</view> <view class="text-[32rpx] font-600">{{ val.schoolName }}</view>
@ -69,7 +75,7 @@ onShow(() => {
mode="scaleToFill" class="w-[86rpx] h-[56rpx]" /> mode="scaleToFill" class="w-[86rpx] h-[56rpx]" />
</view> </view>
</view> </view>
<view class=" bg-[#FEF6F6] rounded-[16rpx] mt-20"> <view class=" bg-[#FEF6F6] rounded-[16rpx] mt-[30rpx]">
<view class="h-[52rpx] w-[178rpx] flex items-center m-[-8rpx] ml-[20rpx]"> <view class="h-[52rpx] w-[178rpx] flex items-center m-[-8rpx] ml-[20rpx]">
<image src="https://lwzk.ycymedu.com/img/tianbao/tb_shuoming.png" <image src="https://lwzk.ycymedu.com/img/tianbao/tb_shuoming.png"
mode="scaleToFill" class="h-[52rpx] w-[178rpx]" /> mode="scaleToFill" class="h-[52rpx] w-[178rpx]" />
@ -95,7 +101,7 @@ onShow(() => {
</view> </view>
</view> </view>
<MxDialog v-model:show="show" title="" :defaultPadding="false" defaultWidth="85%" rootClass="rounded-[40rpx]"> <MxDialog v-model:show="show" title="" :defaultPadding="false" defaultWidth="80%" rootClass="rounded-[40rpx]">
<template> <template>
<view class="rounded-[40rpx] bg-white p-[40rpx] custom-background" <view class="rounded-[40rpx] bg-white p-[40rpx] custom-background"
style="--status-bar-height:56rpx; --start-color:#ebf1ff"> style="--status-bar-height:56rpx; --start-color:#ebf1ff">
@ -103,7 +109,7 @@ onShow(() => {
<view class="rounded-full py-[20rpx] px-[30rpx] bg-[#F3F4F8] border-[#E5E5E5] border-solid border-[1rpx] flex items-center justify-between my-[60rpx]"> <view class="rounded-full py-[20rpx] px-[30rpx] bg-[#F3F4F8] border-[#E5E5E5] border-solid border-[1rpx] flex items-center justify-between my-[60rpx]">
<input type="text" v-model="wishListName" placeholder="请输入名字" confirm-type="done" <input type="text" v-model="wishListName" placeholder="请输入名字" confirm-type="done"
placeholder-style="color:#C5C8D1;font-size:30rpx;text-align:left;" class="text-left flex-1"> placeholder-style="color:#C5C8D1;font-size:30rpx;text-align:left;" class="text-left flex-1">
<view class="w-[40rpx] h-[40rpx] flex items-center" @click="wishListName = ''"> <view class="w-[40rpx] h-[40rpx] flex items-center" v-if="wishListName" @click="wishListName = ''">
<image <image
src="https://lwzk.ycymedu.com/img/tianbao/tb_shanchu.png" src="https://lwzk.ycymedu.com/img/tianbao/tb_shanchu.png"
mode="scaleToFill" mode="scaleToFill"

View File

@ -27,12 +27,14 @@ const handleSubmit = () =>{
saveWishlist({data:{title:wishListName.value,contents:extendWishlist.value.contents,batchName:'第二批次',TotalScore:totalScore.value}}).then(resp => { saveWishlist({data:{title:wishListName.value,contents:extendWishlist.value.contents,batchName:'第二批次',TotalScore:totalScore.value}}).then(resp => {
if(resp.code === 200){ if(resp.code === 200){
show.value = false show.value = false
wishlistStore.clearExtendWishlist();
uni.switchTab({url:"/pages/index/index"}) uni.switchTab({url:"/pages/index/index"})
} }
}) })
} }
const navigateToHome = () => { const navigateToHome = () => {
wishlistStore.clearExtendWishlist();
uni.switchTab({url:"/pages/index/index"}) uni.switchTab({url:"/pages/index/index"})
} }
@ -43,6 +45,10 @@ onShow(() => {
} }
}) })
}) })
onBackPress(() => {
wishlistStore.clearExtendWishlist();
})
</script> </script>
<template> <template>
@ -64,7 +70,7 @@ onShow(() => {
</view> </view>
</view> </view>
<view class=" bg-[#FEF6F6] rounded-[16rpx] mt-[26rpx]"> <view class=" bg-[#FEF6F6] rounded-[16rpx] mt-[30rpx]">
<view class="h-[52rpx] w-[178rpx] flex items-center m-[-8rpx] ml-[20rpx]"> <view class="h-[52rpx] w-[178rpx] flex items-center m-[-8rpx] ml-[20rpx]">
<image src="https://lwzk.ycymedu.com/img/tianbao/tb_shuoming.png" <image src="https://lwzk.ycymedu.com/img/tianbao/tb_shuoming.png"
mode="scaleToFill" class="h-[52rpx] w-[178rpx]" /> mode="scaleToFill" class="h-[52rpx] w-[178rpx]" />
@ -90,7 +96,7 @@ onShow(() => {
</view> </view>
</view> </view>
<MxDialog v-model:show="show" title="" :defaultPadding="false" defaultWidth="85%" rootClass="rounded-[40rpx]"> <MxDialog v-model:show="show" title="" :defaultPadding="false" defaultWidth="80%" rootClass="rounded-[40rpx]">
<template> <template>
<view class="rounded-[40rpx] bg-white p-[40rpx] custom-background" <view class="rounded-[40rpx] bg-white p-[40rpx] custom-background"
style="--status-bar-height:56rpx; --start-color:#ebf1ff"> style="--status-bar-height:56rpx; --start-color:#ebf1ff">
@ -98,7 +104,7 @@ onShow(() => {
<view class="rounded-full py-[20rpx] px-[30rpx] bg-[#F3F4F8] border-[#E5E5E5] border-solid border-[1rpx] flex items-center justify-between my-[60rpx]"> <view class="rounded-full py-[20rpx] px-[30rpx] bg-[#F3F4F8] border-[#E5E5E5] border-solid border-[1rpx] flex items-center justify-between my-[60rpx]">
<input type="text" v-model="wishListName" placeholder="请输入姓名" confirm-type="done" <input type="text" v-model="wishListName" placeholder="请输入姓名" confirm-type="done"
placeholder-style="color:#C5C8D1;font-size:30rpx;text-align:left;" class="text-left flex-1"> placeholder-style="color:#C5C8D1;font-size:30rpx;text-align:left;" class="text-left flex-1">
<view class="w-[40rpx] h-[40rpx] flex items-center" @click="wishListName = ''"> <view class="w-[40rpx] h-[40rpx] flex items-center" v-if="wishListName" @click="wishListName = ''">
<image <image
src="https://lwzk.ycymedu.com/img/tianbao/tb_shanchu.png" src="https://lwzk.ycymedu.com/img/tianbao/tb_shanchu.png"
mode="scaleToFill" mode="scaleToFill"

View File

@ -19,12 +19,14 @@ const handleSubmit = () =>{
saveWishlist({data:{title:wishListName.value,contents:extendWishlist.value.contents,batchName:'第三批次',TotalScore:totalScore.value}}).then(resp => { saveWishlist({data:{title:wishListName.value,contents:extendWishlist.value.contents,batchName:'第三批次',TotalScore:totalScore.value}}).then(resp => {
if(resp.code === 200){ if(resp.code === 200){
show.value = false show.value = false
wishlistStore.clearExtendWishlist();
uni.switchTab({url:"/pages/index/index"}) uni.switchTab({url:"/pages/index/index"})
} }
}) })
} }
const navigateToHome = () => { const navigateToHome = () => {
wishlistStore.clearExtendWishlist();
uni.switchTab({url:"/pages/index/index"}) uni.switchTab({url:"/pages/index/index"})
} }
@ -42,6 +44,10 @@ onShow(() => {
} }
}) })
}) })
onBackPress(() => {
wishlistStore.clearExtendWishlist();
})
</script> </script>
<template> <template>
@ -71,7 +77,7 @@ onShow(() => {
</view> </view>
</view> </view>
<MxDialog v-model:show="show" title="" :defaultPadding="false" defaultWidth="85%" rootClass="rounded-[40rpx]"> <MxDialog v-model:show="show" title="" :defaultPadding="false" defaultWidth="80%" rootClass="rounded-[40rpx]">
<template> <template>
<view class="rounded-[40rpx] bg-white p-[40rpx] custom-background" <view class="rounded-[40rpx] bg-white p-[40rpx] custom-background"
style="--status-bar-height:56rpx; --start-color:#ebf1ff"> style="--status-bar-height:56rpx; --start-color:#ebf1ff">
@ -80,7 +86,7 @@ onShow(() => {
class="rounded-full py-[20rpx] px-[30rpx] bg-[#F3F4F8] border-[#E5E5E5] border-solid border-[1rpx] flex items-center justify-between my-[60rpx]"> class="rounded-full py-[20rpx] px-[30rpx] bg-[#F3F4F8] border-[#E5E5E5] border-solid border-[1rpx] flex items-center justify-between my-[60rpx]">
<input type="text" v-model="wishListName" placeholder="请输入姓名" confirm-type="done" <input type="text" v-model="wishListName" placeholder="请输入姓名" confirm-type="done"
placeholder-style="color:#C5C8D1;font-size:30rpx;text-align:left;" class="text-left flex-1"> placeholder-style="color:#C5C8D1;font-size:30rpx;text-align:left;" class="text-left flex-1">
<view class="w-[40rpx] h-[40rpx] flex items-center" @click="wishListName = ''"> <view class="w-[40rpx] h-[40rpx] flex items-center" v-if="wishListName" @click="wishListName = ''">
<image src="https://lwzk.ycymedu.com/img/tianbao/tb_shanchu.png" <image src="https://lwzk.ycymedu.com/img/tianbao/tb_shanchu.png"
mode="scaleToFill" class="w-[40rpx] h-[40rpx]" /> mode="scaleToFill" class="w-[40rpx] h-[40rpx]" />
</view> </view>

View File

@ -132,7 +132,7 @@ onLoad(() => {
</template> </template>
</sar-navbar> </sar-navbar>
<view class="flex items-center mx-[30rpx]"> <view class="flex items-center mx-[30rpx] mb-[20rpx]">
<view class="w-[112rpx] h-[104rpx] flex items-center"> <view class="w-[112rpx] h-[104rpx] flex items-center">
<image src="https://lwzk.ycymedu.com/img/tianbao/tb_02.png" mode="scaleToFill" <image src="https://lwzk.ycymedu.com/img/tianbao/tb_02.png" mode="scaleToFill"
class="w-[112rpx] h-[104rpx]" /> class="w-[112rpx] h-[104rpx]" />
@ -162,17 +162,17 @@ onLoad(() => {
</view> </view>
</view> </view>
<view class="text-[34rpx] mt-[40rpx] ml-[40rpx]">等级考成绩</view> <view class="text-[34rpx] mt-[40rpx] ml-[40rpx] font-700">等级考成绩</view>
<view class="grid grid-cols-2 gap-[0_50rpx]"> <view class="grid grid-cols-2 gap-[0_50rpx] mx-[40rpx]">
<view <view
class="flex items-center text-[30rpx] justify-between mx-[40rpx] py-[34rpx] border-b-1 border-b-[#eaeaea] border-b-solid" class="flex items-center text-[30rpx] justify-between py-[34rpx] border-b-1 border-b-[#eaeaea] border-b-solid"
v-for="(val, key) of ctoEWithDegree" :key="key"> v-for="(val, key) of ctoEWithDegree" :key="key">
<view class="text-[#404142] text-left mr-[40rpx] ">{{ val }}</view> <view class="text-[#404142] text-left mr-[34rpx] ">{{ val }}</view>
<view class="flex-1 flex items-center" @click="handleOpenPopup(key)"> <view class="flex-1 flex items-center" @click="handleOpenPopup(key)">
<MxInput v-model:value="degreeFormData[key]" placeholder="请选择" root-class="text-left" <MxInput v-model:value="degreeFormData[key]" placeholder="请选择" root-class="text-left w-[92rpx]!"
:readonly="true" /> :readonly="true" />
<view class="w-[18rpx] h-[36rpx] flex items-center ml-auto"> <view class="w-[18rpx] h-[36rpx] flex items-center ml-auto mr-[30rpx]">
<image src="https://lwzk.ycymedu.com/img/tianbao/tb_jiantou.png" <image src="https://lwzk.ycymedu.com/img/tianbao/tb_jiantou.png"
mode="scaleToFill" class="w-[18rpx] h-[36rpx]" /> mode="scaleToFill" class="w-[18rpx] h-[36rpx]" />
</view> </view>
@ -196,10 +196,10 @@ onLoad(() => {
</view> </view>
</view> </view>
<MxRadio v-model:value="degreeFormData[activeType]" :options="gradeClassification" label-key="label" <MxRadio v-model:value="degreeFormData[activeType]" :options="gradeClassification" label-key="label"
value-key="label" custom-root-cols-class="grid grid-cols-3 items-center gap-[16rpx]" value-key="label" custom-root-cols-class="grid grid-cols-3 items-center gap-[20rpx]"
custom-root-class="px-[30rpx] pt-[22rpx] pb-[20rpx]" custom-root-class="pb-[20rpx]"
custom-item-class="py-[12rpx] text-center border-1 border-solid border-[#F3F4F8]" custom-item-class="py-[12rpx] text-center border-1 border-solid border-[#F3F4F8]"
active-item-class="bg-white text-[#1580FF] border-1 border-solid border-[#1580FF]!" /> active-item-class="bg-white text-[#1580FF] border-1 border-solid border-[#1580FF]!" @change="visible = false"/>
</view> </view>
</sar-popup> </sar-popup>
</view> </view>
@ -207,7 +207,7 @@ onLoad(() => {
<style lang="scss" scoped> <style lang="scss" scoped>
.custom-background { .custom-background {
background: linear-gradient(180deg, #D7E4FF 0%, #fff 556rpx); background: linear-gradient( 177deg, #E4EDFF 0%, #F0F5FF 180rpx, #FEFEFF 360rpx);
background-position: 50% 50%; background-position: 50% 50%;
background-origin: padding-box; background-origin: padding-box;
background-clip: border-box; background-clip: border-box;

View File

@ -2,6 +2,8 @@
import { safeAreaInsets } from '@/utils/systemInfo' import { safeAreaInsets } from '@/utils/systemInfo'
import SecondBatchSchool from './components/SecondBatchSchool.vue' import SecondBatchSchool from './components/SecondBatchSchool.vue'
import MxDialog from "@/pages-sub/components/dialog/index.vue" import MxDialog from "@/pages-sub/components/dialog/index.vue"
import { useWishlistStore } from '@/store'
import { storeToRefs } from 'pinia'
// #ifdef MP-WEIXIN // #ifdef MP-WEIXIN
definePage({ definePage({
@ -24,6 +26,7 @@ definePage({
// #endif // #endif
const handleBack = () => { const handleBack = () => {
wishlistStore.clearExtendWishlist()
uni.navigateBack({ delta: 1 }) uni.navigateBack({ delta: 1 })
} }
@ -33,6 +36,10 @@ const navigateToList = () => {
const show = ref(false) const show = ref(false)
const wishlistStore = useWishlistStore()
const {extendWishlist} = storeToRefs(wishlistStore)
</script> </script>
<template> <template>
@ -43,20 +50,20 @@ const show = ref(false)
<view class="flex justify-center">第二批次</view> <view class="flex justify-center">第二批次</view>
</template> </template>
</sar-navbar> </sar-navbar>
<view
class="bg-[#ddebfe] rounded-[16rpx] border-2rpx border-solid border-white flex items-center mx-[20rpx] py-[16rpx] px-[30rpx]"
@click="show = true">
<view class="w-[36rpx] h-[36rpx] flex items-center">
<image src="https://lwzk.ycymedu.com/img/tianbao/tb_tongzhi.png" mode="scaleToFill"
class="w-[36rpx] h-[36rpx]" />
</view>
<view class="text-[#1580FF] text-[30rpx] font-500 ml-[10rpx]">家长须知</view>
<view class="w-[14rpx] h-[18rpx] flex items-center ml-auto">
<image src="https://lwzk.ycymedu.com/img/tianbao/tb_lanjiantou.png" mode="scaleToFill"
class="w-[14rpx] h-[18rpx]" />
</view>
</view>
<view class="flex-1 overflow-y-auto"> <view class="flex-1 overflow-y-auto">
<view
class="bg-[#ddebfe] rounded-[16rpx] border-2rpx border-solid border-white flex items-center mx-[20rpx] py-[16rpx] px-[30rpx]"
@click="show = true">
<view class="w-[36rpx] h-[36rpx] flex items-center">
<image src="https://lwzk.ycymedu.com/img/tianbao/tb_tongzhi.png" mode="scaleToFill"
class="w-[36rpx] h-[36rpx]" />
</view>
<view class="text-[#1580FF] text-[30rpx] font-500 ml-[10rpx]">家长须知</view>
<view class="w-[14rpx] h-[18rpx] flex items-center ml-auto">
<image src="https://lwzk.ycymedu.com/img/tianbao/tb_lanjiantou.png" mode="scaleToFill"
class="w-[14rpx] h-[18rpx]" />
</view>
</view>
<view class="px-[20rpx] pt-[20rpx]"> <view class="px-[20rpx] pt-[20rpx]">
<SecondBatchSchool /> <SecondBatchSchool />
</view> </view>
@ -64,11 +71,11 @@ const show = ref(false)
<view class="border-t border-t-solid border-t-[#ededed] px-[40rpx] py-[16rpx]"> <view class="border-t border-t-solid border-t-[#ededed] px-[40rpx] py-[16rpx]">
<view class="pb-safe" @click="navigateToList"> <view class="pb-safe" @click="navigateToList">
<button form-type="submit" class="rounded-[16rpx] bg-[#1580FF] text-[#f7f7f7] submit-btn">确定</button> <button :disabled="extendWishlist.contents.length === 0" form-type="submit" class="rounded-[16rpx] bg-[#1580FF] text-[#f7f7f7] submit-btn">确定</button>
</view> </view>
</view> </view>
<MxDialog v-model:show="show" title="" :defaultPadding="false" defaultWidth="85%" rootClass="rounded-[40rpx]" <MxDialog v-model:show="show" title="" :defaultPadding="false" defaultWidth="80%" rootClass="rounded-[40rpx]"
@overlay-click="show = false"> @overlay-click="show = false">
<template> <template>
<view class="rounded-[40rpx] bg-white p-[40rpx] custom-dialog-background"> <view class="rounded-[40rpx] bg-white p-[40rpx] custom-dialog-background">
@ -115,7 +122,7 @@ const show = ref(false)
} }
.submit-btn[disabled] { .submit-btn[disabled] {
background-color: #a1cbff; background-color: #73b3ff;
color: #fff; color: #fff;
} }
</style> </style>

View File

@ -1,6 +1,9 @@
<script lang="ts" setup> <script lang="ts" setup>
import { safeAreaInsets } from '@/utils/systemInfo' import { safeAreaInsets } from '@/utils/systemInfo'
import MxDialog from "@/pages-sub/components/dialog/index.vue" import MxDialog from "@/pages-sub/components/dialog/index.vue"
import { useUserStore } from '@/store'
import { storeToRefs } from 'pinia'
import { getMyScore } from '@/service'
// #ifdef MP-WEIXIN // #ifdef MP-WEIXIN
definePage({ definePage({
@ -28,6 +31,9 @@ const handleBack = () => {
const show = ref(false) const show = ref(false)
const userStore = useUserStore()
const {userInfo} = storeToRefs(userStore)
const activeIndex = ref(1) const activeIndex = ref(1)
const handleActiveIndex = (index: number) => { const handleActiveIndex = (index: number) => {
activeIndex.value = index; activeIndex.value = index;
@ -42,17 +48,30 @@ const navigateToBatchPage = (index: number) => {
uni.navigateTo({ url: "/pages-sub/wishlist/create/thirdBatch" }) uni.navigateTo({ url: "/pages-sub/wishlist/create/thirdBatch" })
} }
} }
const navigateToFirst = () => {
uni.reLaunch({ url: '/pages-sub/wishlist/create/first' })
}
const totalScore = ref(0)
onLoad(()=>{
getMyScore().then(resp => {
if (resp.code === 200 && resp.result) {
totalScore.value = resp.result.totalScore
}
})
})
</script> </script>
<template> <template>
<view class="flex flex-col custom-background h-screen" style="--status-bar-height:556rpx;--start-color:#D7E4FF"> <view class="flex flex-col custom-background-bg h-screen" style="--status-bar-height:556rpx;--start-color:#D7E4FF">
<sar-navbar show-back @back="handleBack" :fixed="true" fixation-style="top:unset;" <sar-navbar show-back @back="handleBack" :fixed="true" fixation-style="top:unset;"
:root-style="{ '--sar-navbar-bg': `transparent`, '--sar-navbar-item-color': 'black', 'padding-top': `${safeAreaInsets?.top}px` }"> :root-style="{ '--sar-navbar-bg': `transparent`, '--sar-navbar-item-color': 'black', 'padding-top': `${safeAreaInsets?.top}px` }">
<template #title> <template #title>
<view class="flex justify-center">志愿填报</view> <view class="flex justify-center">志愿填报</view>
</template> </template>
</sar-navbar> </sar-navbar>
<view class="flex items-center mx-[30rpx]"> <view class="flex items-center mx-[30rpx] mb-[20rpx]">
<view class="w-[112rpx] h-[104rpx] flex items-center"> <view class="w-[112rpx] h-[104rpx] flex items-center">
<image src="https://lwzk.ycymedu.com/img/tianbao/tb_03.png" mode="scaleToFill" <image src="https://lwzk.ycymedu.com/img/tianbao/tb_03.png" mode="scaleToFill"
class="w-[112rpx] h-[104rpx]" /> class="w-[112rpx] h-[104rpx]" />
@ -66,8 +85,9 @@ const navigateToBatchPage = (index: number) => {
class="w-[160rpx] h-[160rpx]" /> class="w-[160rpx] h-[160rpx]" />
</view> </view>
</view> </view>
<view class="flex items-center text-[28rpx] text-[#666] mx-[30rpx] mb-[60rpx]">
<view>历下区 | 620 济南外国语学校</view> <view class="flex items-center text-[28rpx] text-[#666] mx-[30rpx] mb-[60rpx]" @click="navigateToFirst">
<view>{{ userInfo.userExtend.area }} | {{ totalScore }} {{ userInfo.userExtend.schoolName }}</view>
<view class="w-[28rpx] h-[28rpx] flex items-center ml-[10rpx]"> <view class="w-[28rpx] h-[28rpx] flex items-center ml-[10rpx]">
<image src="https://lwzk.ycymedu.com/img/tianbao/tb_bianji.png" mode="scaleToFill" <image src="https://lwzk.ycymedu.com/img/tianbao/tb_bianji.png" mode="scaleToFill"
class="w-[28rpx] h-[28rpx]" /> class="w-[28rpx] h-[28rpx]" />
@ -121,7 +141,7 @@ const navigateToBatchPage = (index: number) => {
</view> </view>
</view> </view>
<MxDialog v-model:show="show" title="" :defaultPadding="false" defaultWidth="85%" root-class="rounded-[40rpx]"> <MxDialog v-model:show="show" title="" :defaultPadding="false" defaultWidth="80%" root-class="rounded-[40rpx]">
<template> <template>
<view class="rounded-[40rpx] bg-white p-[40rpx] custom-background " <view class="rounded-[40rpx] bg-white p-[40rpx] custom-background "
style="--status-bar-height:56rpx; --start-color:#ebf1ff"> style="--status-bar-height:56rpx; --start-color:#ebf1ff">
@ -153,6 +173,13 @@ const navigateToBatchPage = (index: number) => {
</template> </template>
<style lang="scss" scoped> <style lang="scss" scoped>
.custom-background-bg {
background: linear-gradient( 177deg, #E4EDFF 0%, #F0F5FF 180rpx, #FEFEFF 360rpx);
background-position: 50% 50%;
background-origin: padding-box;
background-clip: border-box;
background-size: auto auto;
}
.custom-background { .custom-background {
background: linear-gradient(180deg, var(--start-color) 0%, #fff var(--status-bar-height)); background: linear-gradient(180deg, var(--start-color) 0%, #fff var(--status-bar-height));
background-position: 50% 50%; background-position: 50% 50%;

View File

@ -2,7 +2,11 @@
import { safeAreaInsets } from '@/utils/systemInfo' import { safeAreaInsets } from '@/utils/systemInfo'
import ThirdBatchSchool from './components/ThirdBatchSchool.vue' import ThirdBatchSchool from './components/ThirdBatchSchool.vue'
import MxDialog from "@/pages-sub/components/dialog/index.vue" import MxDialog from "@/pages-sub/components/dialog/index.vue"
import { useWishlistStore } from "@/store" import { useWishlistStore } from '@/store'
import { storeToRefs } from 'pinia'
// #ifdef MP-WEIXIN // #ifdef MP-WEIXIN
definePage({ definePage({
style: { style: {
@ -23,6 +27,8 @@ definePage({
}) })
// #endif // #endif
const wishlistStore = useWishlistStore() const wishlistStore = useWishlistStore()
const { extendWishlist } = storeToRefs(wishlistStore)
const handleBack = () => { const handleBack = () => {
uni.navigateBack({ delta: 1 }) uni.navigateBack({ delta: 1 })
} }
@ -35,7 +41,7 @@ const show = ref(false)
const handleSwitch = (event) => { const handleSwitch = (event) => {
const content = JSON.parse(wishlistStore.getSchool()) const content = JSON.parse(wishlistStore.getSchool())
wishlistStore.setSchool(JSON.stringify({adjust:event.detail.value,schools:content.school})) wishlistStore.setSchool(JSON.stringify({adjust:event.detail.value,schools:content.schools}))
} }
</script> </script>
@ -48,20 +54,20 @@ const handleSwitch = (event) => {
<view class="flex justify-center">第三批次</view> <view class="flex justify-center">第三批次</view>
</template> </template>
</sar-navbar> </sar-navbar>
<view
class="bg-[#ddebfe] rounded-[16rpx] border-2rpx border-solid border-white flex items-center mx-[20rpx] py-[16rpx] px-[30rpx]"
@click="show = true">
<view class="w-[36rpx] h-[36rpx] flex items-center">
<image src="https://lwzk.ycymedu.com/img/tianbao/tb_tongzhi.png" mode="scaleToFill"
class="w-[36rpx] h-[36rpx]" />
</view>
<view class="text-[#1580FF] text-[30rpx] font-500 ml-[10rpx]">家长须知</view>
<view class="w-[14rpx] h-[18rpx] flex items-center ml-auto">
<image src="https://lwzk.ycymedu.com/img/tianbao/tb_lanjiantou.png" mode="scaleToFill"
class="w-[14rpx] h-[18rpx]" />
</view>
</view>
<view class="flex-1 overflow-y-auto"> <view class="flex-1 overflow-y-auto">
<view
class="bg-[#ddebfe] rounded-[16rpx] border-2rpx border-solid border-white flex items-center mx-[20rpx] py-[16rpx] px-[30rpx]"
@click="show = true">
<view class="w-[36rpx] h-[36rpx] flex items-center">
<image src="https://lwzk.ycymedu.com/img/tianbao/tb_tongzhi.png" mode="scaleToFill"
class="w-[36rpx] h-[36rpx]" />
</view>
<view class="text-[#1580FF] text-[30rpx] font-500 ml-[10rpx]">家长须知</view>
<view class="w-[14rpx] h-[18rpx] flex items-center ml-auto">
<image src="https://lwzk.ycymedu.com/img/tianbao/tb_lanjiantou.png" mode="scaleToFill"
class="w-[14rpx] h-[18rpx]" />
</view>
</view>
<view class="px-[20rpx] pt-[20rpx]"> <view class="px-[20rpx] pt-[20rpx]">
<ThirdBatchSchool /> <ThirdBatchSchool />
</view> </view>
@ -73,12 +79,12 @@ const handleSwitch = (event) => {
<text>服从调剂:</text> <text>服从调剂:</text>
<switch @change="handleSwitch" color="#2F78FC" style="transform:scale(0.8)" /> <switch @change="handleSwitch" color="#2F78FC" style="transform:scale(0.8)" />
</view> </view>
<button form-type="submit" class="rounded-[16rpx] bg-[#1580FF] text-[#f7f7f7] submit-btn flex-1" <button :disabled="extendWishlist.contents.length === 0" form-type="submit" class="rounded-[16rpx] bg-[#1580FF] text-[#f7f7f7] submit-btn flex-1"
@click="navigateToList">确定</button> @click="navigateToList">确定</button>
</view> </view>
</view> </view>
<MxDialog v-model:show="show" title="" :defaultPadding="false" defaultWidth="85%" rootClass="rounded-[40rpx]" <MxDialog v-model:show="show" title="" :defaultPadding="false" defaultWidth="80%" rootClass="rounded-[40rpx]"
@overlay-click="show = false"> @overlay-click="show = false">
<template> <template>
<view class="rounded-[40rpx] bg-white p-[40rpx] custom-dialog-background"> <view class="rounded-[40rpx] bg-white p-[40rpx] custom-dialog-background">
@ -125,7 +131,7 @@ const handleSwitch = (event) => {
} }
.submit-btn[disabled] { .submit-btn[disabled] {
background-color: #a1cbff; background-color: #73b3ff;
color: #fff; color: #fff;
} }
</style> </style>

View File

@ -1,6 +1,6 @@
<template> <template>
<view <view
class="item-wrapper relative mt-[32rpx]" class="item-wrapper relative mb-[20rpx]"
:style="`--start-color: ${startColor}; --end-color: ${endColor}`" :style="`--start-color: ${startColor}; --end-color: ${endColor}`"
@click="toAssessmentPage" @click="toAssessmentPage"
> >

View File

@ -10,7 +10,7 @@
</template> </template>
</sar-navbar> </sar-navbar>
</view> </view>
<view class="px-[32rpx]"> <view class="px-[32rpx] mt-[30rpx]">
<EvaluationItem :item="value" <EvaluationItem :item="value"
v-for="value in evaluationList" :key="value.id" /> v-for="value in evaluationList" :key="value.id" />
</view> </view>
@ -59,7 +59,7 @@ onLoad(() => {
<style lang="scss" scoped> <style lang="scss" scoped>
.custom-background { .custom-background {
background: linear-gradient(180deg, #D7E4FF 0%, #fff 518rpx); background: linear-gradient(180deg, #ecf2ff 0%,#f6f8ff 40rpx, #fff 128rpx);
background-position: 50% 50%; background-position: 50% 50%;
background-origin: padding-box; background-origin: padding-box;
background-clip: border-box; background-clip: border-box;

View File

@ -48,9 +48,9 @@ const subMenus = [{ name: '中考资讯', imgPath: 'https://lwzk.ycymedu.com/img
const notifies = ref([]) const notifies = ref([])
const opacity = ref(0) const opacity = ref(0)
const totalScore = ref("??") const totalScore = ref("0")
const schoolCount = ref("??") const schoolCount = ref("0")
const wishlistCount = ref("??") const wishlistCount = ref("0")
const navigateToCreateWish = () => { const navigateToCreateWish = () => {
uni.navigateTo({ url: "/pages-sub/wishlist/create/first" }) uni.navigateTo({ url: "/pages-sub/wishlist/create/first" })

View File

@ -32,20 +32,20 @@ const { userInfo } = storeToRefs(userStore)
const topMenuList = [{ name: '我的志愿表', img: 'https://lwzk.ycymedu.com/img/qt/wd_biao.png',url:'/pages-sub/me/wishlist' }, { name: "我的测评", img: 'https://lwzk.ycymedu.com/img/qt/wd_cp.png',url:'/pages-sub/me/evaluation' }] const topMenuList = [{ name: '我的志愿表', img: 'https://lwzk.ycymedu.com/img/qt/wd_biao.png', url: '/pages-sub/me/wishlist' }, { name: "我的测评", img: 'https://lwzk.ycymedu.com/img/qt/wd_cp.png', url: '/pages-sub/me/evaluation' }]
const bottomMenuList = [{ name: '收藏院校', img: 'https://lwzk.ycymedu.com/img/qt/wd_shoucang.png',url:"/pages-sub/me/starSchool" }, { name: '联系客服', img: 'https://lwzk.ycymedu.com/img/qt/wd_kefu.png', url:"/pages-sub/about/onlineCustom" }, { name: '关于我们', img: 'https://lwzk.ycymedu.com/img/qt/wd_guanyu.png',url:'/pages-sub/about/about' }] const bottomMenuList = [{ name: '收藏院校', img: 'https://lwzk.ycymedu.com/img/qt/wd_shoucang.png', url: "/pages-sub/me/starSchool" }, { name: '联系客服', img: 'https://lwzk.ycymedu.com/img/qt/wd_kefu.png', url: "/pages-sub/about/onlineCustom" }, { name: '关于我们', img: 'https://lwzk.ycymedu.com/img/qt/wd_guanyu.png', url: '/pages-sub/about/about' }]
const navigateToUrl = (url:string) => { const navigateToUrl = (url: string) => {
uni.navigateTo({url}) uni.navigateTo({ url })
} }
const navigateToUserInfo = () => { const navigateToUserInfo = () => {
uni.navigateTo({url:"/pages-sub/about/userInfo"}) uni.navigateTo({ url: "/pages-sub/about/userInfo" })
} }
</script> </script>
<template> <template>
<view :class="`custom-background`" :style="{height:`calc(100vh - 50px - ${safeAreaInsets.bottom}px)`}"> <view :class="`custom-background`" :style="{ height: `calc(100vh - 50px - ${safeAreaInsets.bottom}px)` }">
<sar-navbar :fixed="true" fixation-style="top:unset;" <sar-navbar :fixed="true" fixation-style="top:unset;"
:root-style="{ '--sar-navbar-bg': `transparent`, '--sar-navbar-height': `${safeAreaInsets?.top + 44}px` }"> :root-style="{ '--sar-navbar-bg': `transparent`, '--sar-navbar-height': `${safeAreaInsets?.top + 44}px` }">
<template #title> <template #title>
@ -57,8 +57,7 @@ const navigateToUserInfo = () => {
<view class="flex items-center justify-between px-[50rpx] my-[50rpx]"> <view class="flex items-center justify-between px-[50rpx] my-[50rpx]">
<view class="flex"> <view class="flex">
<view class="w-[132rpx] h-[132rpx]"> <view class="w-[132rpx] h-[132rpx]">
<image :src="`${userInfo.avatar}`" mode="scaleToFill" <image :src="`${userInfo.avatar}`" mode="scaleToFill" class="w-[132rpx] h-[132rpx] rounded-full" />
class="w-[132rpx] h-[132rpx] rounded-full" />
</view> </view>
<view class="ml-[32rpx]"> <view class="ml-[32rpx]">
<view class="text-[44rpx] font-500 mb-[10rpx]">{{ userInfo.nickName }}</view> <view class="text-[44rpx] font-500 mb-[10rpx]">{{ userInfo.nickName }}</view>
@ -67,8 +66,7 @@ const navigateToUserInfo = () => {
</view> </view>
<view class="flex flex-col items-center" @click="navigateToUserInfo"> <view class="flex flex-col items-center" @click="navigateToUserInfo">
<view class="w-[48rpx] h-[48rpx]"> <view class="w-[48rpx] h-[48rpx]">
<image src="https://lwzk.ycymedu.com/img/qt/wd_bianji.png" mode="scaleToFill" <image src="https://lwzk.ycymedu.com/img/qt/wd_bianji.png" mode="scaleToFill" class="w-[48rpx] h-[48rpx]" />
class="w-[48rpx] h-[48rpx]" />
</view> </view>
<view class="text-[30rpx] text-[#333]">编辑</view> <view class="text-[30rpx] text-[#333]">编辑</view>
</view> </view>
@ -87,21 +85,15 @@ const navigateToUserInfo = () => {
<view class="p-[30rpx] mx-[30rpx] rounded-[20rpx] bg-white mt-[30rpx]"> <view class="p-[30rpx] mx-[30rpx] rounded-[20rpx] bg-white mt-[30rpx]">
<view class="text-[34rpx] font-500">其他功能</view> <view class="text-[34rpx] font-500">其他功能</view>
<view class="flex items-center py-[34rpx] not-last:border-b-[2rpx] not-last:border-b-solid not-last:border-b-[#EDEDED]" v-for="(value,index) in bottomMenuList" :key="index" @click="navigateToUrl(value.url)"> <view
class="flex items-center py-[34rpx] not-last:border-b-[2rpx] not-last:border-b-solid not-last:border-b-[#EDEDED]"
v-for="(value, index) in bottomMenuList" :key="index" @click="navigateToUrl(value.url)">
<view class="w-[44rpx] h-[44rpx] flex items-center"> <view class="w-[44rpx] h-[44rpx] flex items-center">
<image <image :src="value.img" mode="scaleToFill" class="w-[44rpx] h-[44rpx]" />
:src="value.img"
mode="scaleToFill"
class="w-[44rpx] h-[44rpx]"
/>
</view> </view>
<view class="text-[32rpx] ml-[16rpx]">{{ value.name }}</view> <view class="text-[32rpx] ml-[16rpx]">{{ value.name }}</view>
<view class="w-[18rpx] h-[36rpx] ml-auto flex items-center"> <view class="w-[18rpx] h-[36rpx] ml-auto flex items-center">
<image <image src="https://lwzk.ycymedu.com/img/qt/tb_jiantou.png" mode="scaleToFill" class="w-[18rpx] h-[36rpx]" />
src="https://lwzk.ycymedu.com/img/qt/tb_jiantou.png"
mode="scaleToFill"
class="w-[18rpx] h-[36rpx]"
/>
</view> </view>
</view> </view>
</view> </view>
@ -111,7 +103,7 @@ const navigateToUserInfo = () => {
<style lang="scss" scoped> <style lang="scss" scoped>
.custom-background { .custom-background {
background: linear-gradient(180deg, #C7E0FF 0%, #f8f8f8 530rpx); background: linear-gradient(180deg, #ecf2ff 0%, #f6f8ff 40rpx, #fff 128rpx);
background-position: 50% 50%; background-position: 50% 50%;
background-origin: padding-box; background-origin: padding-box;
background-clip: border-box; background-clip: border-box;

View File

@ -49,7 +49,7 @@ const navigateToPage = (type: string) => {
</template> </template>
</sar-navbar> </sar-navbar>
<view class="mt-[44rpx]"> <view class="mt-[30rpx]">
<view class="mx-[32rpx] rounded-[18rpx] mb-[20rpx] p-[32rpx] flex custom-item-bg" <view class="mx-[32rpx] rounded-[18rpx] mb-[20rpx] p-[32rpx] flex custom-item-bg"
v-for="(value, index) in testList" :key="index" @click="navigateToPage(value.type)"> v-for="(value, index) in testList" :key="index" @click="navigateToPage(value.type)">
<view class="flex flex-col justify-center"> <view class="flex flex-col justify-center">
@ -66,7 +66,7 @@ const navigateToPage = (type: string) => {
<style scoped> <style scoped>
.custom-background { .custom-background {
background: linear-gradient(180deg, #ebf1ff 0%, rgba(199, 224, 255, 0) 530rpx); background: linear-gradient(180deg, #ecf2ff 0%, #f6f8ff 40rpx, #fff 128rpx);
background-position: 50% 50%; background-position: 50% 50%;
background-origin: padding-box; background-origin: padding-box;
background-clip: border-box; background-clip: border-box;

View File

@ -69,7 +69,7 @@ export const useUserStore = defineStore(
} }
const initUserTalent = () => { const initUserTalent = () => {
userInfo.value.talentExtend = userInfoState.talentExtend userInfo.value.talentExtend = JSON.parse(JSON.stringify(userInfoState.talentExtend))
} }
return { return {

View File

@ -1,3 +1,7 @@
.gradient-custom { .gradient-custom {
background: linear-gradient(to bottom, #D7E4FF 0%, #fff 110rpx); background: linear-gradient(180deg, #ecf2ff 0%, #f6f8ff 40rpx, #fff 128rpx);
background-position: 50% 50%;
background-origin: padding-box;
background-clip: border-box;
background-size: auto auto;
} }

View File

@ -101,11 +101,11 @@ function getImageByIndex(index: number, item: CustomTabBarItem) {
<view :class="item.icon" class="text-20px" /> <view :class="item.icon" class="text-20px" />
</template> </template>
<template v-if="item.iconType === 'image'"> <template v-if="item.iconType === 'image'">
<view class="h-20px w-20px"> <view class="h-24px w-24px">
<image :src="getImageByIndex(index, item)" mode="scaleToFill" class="h-20px w-20px" /> <image :src="getImageByIndex(index, item)" mode="scaleToFill" class="h-24px w-24px" />
</view> </view>
</template> </template>
<view class="mt-2px text-12px"> <view class="mt-2px text-14px">
{{ item.text }} {{ item.text }}
</view> </view>
<!-- 角标显示 --> <!-- 角标显示 -->