From b7b3baf17b79e1186c9e0272513f07724274b2a3 Mon Sep 17 00:00:00 2001 From: xjs Date: Mon, 1 Jun 2026 10:41:00 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=B0=E7=9A=84=E4=BF=9D=E5=AD=98?= =?UTF-8?q?=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages-sub/components/input/index.vue | 6 +- src/pages-sub/components/radio/index.vue | 143 ++++++++++-------- src/pages-sub/information/overTheYear.vue | 8 +- src/pages-sub/me/wishlist.vue | 10 +- .../create/components/SecondBatchSchool.vue | 10 +- src/pages-sub/wishlist/create/first.vue | 121 ++++----------- .../create/saveSecondBatchWishList.vue | 27 +--- src/pages-sub/wishlist/create/secondBatch.vue | 2 +- src/pages-sub/wishlist/create/third.vue | 2 +- src/service/requestApi.ts | 7 + 10 files changed, 142 insertions(+), 194 deletions(-) diff --git a/src/pages-sub/components/input/index.vue b/src/pages-sub/components/input/index.vue index 235af0c..9397f40 100644 --- a/src/pages-sub/components/input/index.vue +++ b/src/pages-sub/components/input/index.vue @@ -35,6 +35,10 @@ const props = defineProps({ readonly: { type: Boolean, default: false + }, + inputDirection: { + type: String as PropType<'text-left' | 'text-right' | 'text-center'>, + default: 'text-left' } }) @@ -52,7 +56,7 @@ const innerValue = computed({ diff --git a/src/pages-sub/components/radio/index.vue b/src/pages-sub/components/radio/index.vue index cb536ba..e6c2a5a 100644 --- a/src/pages-sub/components/radio/index.vue +++ b/src/pages-sub/components/radio/index.vue @@ -1,78 +1,89 @@ \ No newline at end of file + + + + diff --git a/src/pages-sub/information/overTheYear.vue b/src/pages-sub/information/overTheYear.vue index 06048c2..553310d 100644 --- a/src/pages-sub/information/overTheYear.vue +++ b/src/pages-sub/information/overTheYear.vue @@ -28,8 +28,8 @@ const handleBack = () => { uni.navigateBack({ delta: 1 }) } -const areaList = ref([]) -const natureList = ref([]) +const areaList = ref([]) +const natureList = ref() @@ -80,8 +80,8 @@ const visibleFlag1 = ref(false) const visibleFlag2 = ref(false) const visibleFlag3 = ref(false) -const partialData = ref([]) -const yearList = ref([]) +const partialData = ref([]) +const yearList = ref([]) const handleChange = () => { visibleFlag1.value = false; diff --git a/src/pages-sub/me/wishlist.vue b/src/pages-sub/me/wishlist.vue index d27ce9c..44a73c6 100644 --- a/src/pages-sub/me/wishlist.vue +++ b/src/pages-sub/me/wishlist.vue @@ -9,9 +9,9 @@ definePage({ }) const wishlistStore = useWishlistStore() -const wishlist = ref([]) +const wishlist = ref([]) -const handleDeleteWishlist = (val,index) => { +const handleDeleteWishlist = (val:any,index:number) => { uni.showModal({ title: "确认需要删除吗?", success: ({confirm,cancel}) => { if(confirm){ @@ -23,15 +23,15 @@ const handleDeleteWishlist = (val,index) => { }) } -const getTag = (val) => { +const getTag = (val:any) => { let content = JSON.parse(val.contents) let schools = content.schools - let zbsTag = schools.some(item => item.type === '指标生') + let zbsTag = schools.some((item:{type:string}) => item.type === '指标生') let adjustTag = content.adjust return zbsTag ? "指标生" : adjustTag ? "服从调剂" : false } -const navigateToDetail = (val) => { +const navigateToDetail = (val:any) => { let content = JSON.parse(val.contents) wishlistStore.setExtendWishlist({title:val.title,contents:val.contents,adjust:content.adjust,batchName:val.batchName}) uni.navigateTo({url:"/pages-sub/me/wishlistInfo"}) diff --git a/src/pages-sub/wishlist/create/components/SecondBatchSchool.vue b/src/pages-sub/wishlist/create/components/SecondBatchSchool.vue index b0fc204..ddf633b 100644 --- a/src/pages-sub/wishlist/create/components/SecondBatchSchool.vue +++ b/src/pages-sub/wishlist/create/components/SecondBatchSchool.vue @@ -5,7 +5,7 @@ import MxRadio from "@/pages-sub/components/radio/index.vue?async" import { getAreaList, getBusSchoolAdmission, getSchoolNature } from "@/service" import { useWishlistStore } from "@/store" -const tableData = ref([]) +const tableData = ref([]) const tableColumns = [ { title: '院校名称', prop: 'schoolName', width: '40%', align: 'left' }, { title: '冲稳保', prop: 'tags', width: "15%", align: "center" }, @@ -14,10 +14,10 @@ const tableColumns = [ ] as const const wishlistStore = useWishlistStore() -const chooseData = ref([]) +const chooseData = ref([]) const chooseDataMap = new Map() -const handleChoose = (val) => { +const handleChoose = (val:any) => { if (chooseData.value.includes(val.schoolId)) { const index = chooseData.value.indexOf(val.schoolId); @@ -27,13 +27,13 @@ const handleChoose = (val) => { } } else { if (chooseData.value.length > 2) { - uni.showToast({ title: "第二志愿最多只能3个", icon: "none" }) + uni.showToast({ title: "志愿最多只能3个", icon: "none" }) return; } chooseData.value.push(val.schoolId); chooseDataMap.set(val.schoolId, val) } - let tempSchool = [] + let tempSchool:any[] = [] chooseDataMap.forEach((val, key) => { tempSchool.push({ ...val, type: "secondBatch" }) }) diff --git a/src/pages-sub/wishlist/create/first.vue b/src/pages-sub/wishlist/create/first.vue index 3f6b3ae..114145c 100644 --- a/src/pages-sub/wishlist/create/first.vue +++ b/src/pages-sub/wishlist/create/first.vue @@ -2,11 +2,10 @@ import { systemInfo } from '@/utils/systemInfo' import MxRadio from "@/pages-sub/components/radio/index.vue" import MxInput from "@/pages-sub/components/input/index.vue" -import { getGradeList, getAreaList, saveUserInfo } from "@/service" +import { getGradeList, getAreaList, saveUserAreaScore } from "@/service" import { useUserStore } from "@/store" import { storeToRefs } from "pinia"; -import { checkEmptyValues } from '@/utils' // #ifdef MP-WEIXIN definePage({ @@ -45,22 +44,15 @@ const userStore = useUserStore(); const { userInfo } = storeToRefs(userStore) const handleSubmit = () => { - if (!userInfo.value.nickName || !userInfo.value.sex || checkEmptyValues(userInfo.value.userExtend, ["gradeId", "schoolName", "area"])) { - uni.showToast({ title: "完善所需信息", icon: "error" }) - return - } + let params = { - nickName: userInfo.value.nickName, - gradeId: userInfo.value.userExtend.gradeId, - gradeName: userInfo.value.userExtend.gradeName, areaName: userInfo.value.userExtend.area, - schoolName: userInfo.value.userExtend.schoolName, - sex: userInfo.value.sex, - rank: userInfo.value.userExtend.rank + totalScore: userInfo.value.userExtend.score, + id: userInfo.value.userExtend.id } - saveUserInfo({ data: params }).then((resp) => { + saveUserAreaScore({ data: params }).then((resp) => { if (resp.code === 200) { - uni.navigateTo({ url: '/pages-sub/wishlist/create/second' }) + uni.navigateTo({ url: '/pages-sub/wishlist/create/secondBatch' }) } }) } @@ -117,16 +109,13 @@ onShow(() => { - - - + - 完善基础信息 - 详细的信息获取精准推荐 + 一键生成志愿表 + 生成我的专属志愿表 - @@ -134,86 +123,47 @@ onShow(() => {
+ - 学生姓名 - - + class="flex items-center text-[30rpx] justify-between mx-[40rpx] py-[34rpx] px-[30rpx] bg-[#F7F8FA] mb-[20rpx]"> + 总分 + + + - - 性别 - - - - - - - - - - - 年级 - - - - - - - - - - + class="flex items-center text-[30rpx] justify-between mx-[40rpx] py-[34rpx] px-[30rpx] bg-[#F7F8FA]"> 中考所在区 + root-class="text-right" class="w-full" inputDirection="text-right" :readonly="true" /> - + - - 就读学校 - - - - - - + + + + + + + + 根据济南2026年中考招生政策,进入模拟志愿填报阶段的考生,默认历史、生物、地理、道法等水平考试等级均已达到普通高中基础填报要求(C级及以上),本产品仅用于统招平行志愿的模拟。 - - - 校内名次 - - - - - + @@ -227,19 +177,8 @@ onShow(() => { mode="scaleToFill" class="w-[36rpx] h-[36rpx]" /> - - - { - {{ val.schoolName }} + + + {{ val.tags }} + {{ val.schoolName }} {{new Date().getFullYear()}}计划招生:{{ val.planCount }}人 @@ -70,24 +75,6 @@ onBackPress(() => { - - - - - - - - - “二志愿录取成功后,不再进入后续批次。” - - - “建议选择目标明确的学校,同时关注第三批次平行志愿机会。” - - - - - 重新测评 diff --git a/src/pages-sub/wishlist/create/secondBatch.vue b/src/pages-sub/wishlist/create/secondBatch.vue index 551e582..38f5994 100644 --- a/src/pages-sub/wishlist/create/secondBatch.vue +++ b/src/pages-sub/wishlist/create/secondBatch.vue @@ -51,7 +51,7 @@ const disableSubmit = computed(() => { diff --git a/src/pages-sub/wishlist/create/third.vue b/src/pages-sub/wishlist/create/third.vue index 851b1dd..70bee5c 100644 --- a/src/pages-sub/wishlist/create/third.vue +++ b/src/pages-sub/wishlist/create/third.vue @@ -61,7 +61,7 @@ const navigateToFirst = () => { const totalScore = ref(0) onLoad(()=>{ - getMyScore().then(resp => { + getMyScore().then(resp => { if (resp.code === 200 && resp.result) { totalScore.value = resp.result.totalScore } diff --git a/src/service/requestApi.ts b/src/service/requestApi.ts index ff81bcb..e32b8de 100644 --- a/src/service/requestApi.ts +++ b/src/service/requestApi.ts @@ -299,4 +299,11 @@ export const getHistoryYearList = () => { return request('/api/busSchoolAdmission/historicalYears', { method: 'GET', }); +} + +export const saveUserAreaScore = (options: { data: any }) => { + return request('/api/busMiddleSchoolApply/add', { + method: "POST", + ...options + }) } \ No newline at end of file