fix: 志愿表回退

master
xjs 2025-06-27 11:53:38 +08:00
parent e57d5015fe
commit 37c66c6919
4 changed files with 66 additions and 19 deletions

View File

@ -25,18 +25,20 @@
<scroll-view class="mt-[38rpx] flex-1 pb-safe">
<WXXTable :data="tableData" v-if="!flag">
<!-- <WXXTableCol prop="universityName" label="院校名称" width="25%"></WXXTableCol> -->
<WXXTableCol prop="major" label="招生专业" width="62%"></WXXTableCol>
<WXXTableCol prop="major" label="招生专业" width="47%"></WXXTableCol>
<WXXTableCol prop="selectsubject" label="选科" width="15%"></WXXTableCol>
<WXXTableCol prop="plancount" label="计划数" width="13%"></WXXTableCol>
<WXXTableCol prop="academic" label="学制" width="10%"></WXXTableCol>
<WXXTableCol prop="fee" label="学费" width="15%"></WXXTableCol>
</WXXTable>
<WXXTable :data="tableData" v-else>
<!-- <WXXTableCol prop="universityName" label="院校名称" width="20%"></WXXTableCol> -->
<WXXTableCol prop="majorgroupname" label="专业组" width="35%"></WXXTableCol>
<WXXTableCol prop="major" label="招生专业" width="30%"></WXXTableCol>
<WXXTableCol prop="majorgroupname" label="专业组" width="15%"></WXXTableCol>
<WXXTableCol prop="major" label="招生专业" width="33%"></WXXTableCol>
<WXXTableCol prop="selectsubject" label="选科" width="15%"></WXXTableCol>
<WXXTableCol prop="plancount" label="计划数" width="15%"></WXXTableCol>
<WXXTableCol prop="academic" label="学制" width="10%"></WXXTableCol>
<WXXTableCol prop="fee" label="学费" width="15%"></WXXTableCol>
<WXXTableCol prop="fee" label="学费" width="12%"></WXXTableCol>
</WXXTable>
</scroll-view>

View File

@ -174,6 +174,8 @@ import FilterMajorList from './components/FilterMajorList.vue'
const userStore = useUserStore()
const navigatorBack = () => {
userStore.clearWishListId()
userStore.clearWishList()
uni.navigateBack()
}
@ -332,16 +334,32 @@ watch(
{ immediate: true },
)
const isEdit = ref(false)
const handlePreview = () => {
if (majorCount.value === 0) {
return
}
uni.navigateTo({ url: '/pages-sub/home/wishesList/wishesList?editType=add&typeName=智能填报' })
if (isEdit.value) {
uni.navigateTo({
url: `/pages-sub/home/wishesList/wishesList?editType=edit&typeName=智能填报&id=${userStore.userInfo.wishListId}&change=true`,
})
} else {
uni.navigateTo({
url: `/pages-sub/home/wishesList/wishesList?editType=add&typeName=智能填报`,
})
}
}
const resetMajorList = () => {
filterMajorRef.value.handleClear()
}
onShow(() => {
if (userStore.userInfo.wishListId) {
isEdit.value = true
}
})
</script>
<style lang="scss" scoped>

View File

@ -23,16 +23,16 @@ const wishListName = ref('')
const editWishList = (_wishList: any[]) => {
let _vTbDetails = _wishList.map((item, index) => {
return {
unId: item.unId,
unName: item.unName,
unCode: item.unCode,
unId: item.unId || item.uId,
unName: item.unName || item.universityName,
unCode: item.unCode || item.collegeCode,
type: item.type,
sort: index + 1,
percentAge: item.percentAge,
vItems: item.vItems.map((vItem, vIndex) => {
return {
sort: vIndex + 1,
_pId: vItem._pId,
_pId: vItem._pId || vItem.planId,
major: vItem.major,
majorCode: vItem.majorCode,
majorGroup: vItem.majorGroup,
@ -57,8 +57,11 @@ const editWishList = (_wishList: any[]) => {
putWishList(params).then((res) => {
if (res.code === 200) {
userStore.clearWishList()
vTbId.value = res.result as number
if (!changeFlag) {
userStore.clearWishList()
userStore.clearWishListId()
}
} else {
uni.showToast({
title: res.message || '保存失败',
@ -104,6 +107,7 @@ const addWishList = () => {
saveWishList(params).then((res) => {
if (res.code === 200) {
vTbId.value = res.result as number
userStore.setWishListId({ id: vTbId.value })
} else {
uni.showToast({
title: res.message || '保存失败',
@ -115,6 +119,7 @@ const addWishList = () => {
let typeName = ''
let editType = ''
let changeFlag = false
let vTbId = ref(0)
let webUrl = computed(() => {
@ -126,16 +131,32 @@ let webUrl = computed(() => {
})
const handleMessage = (evt) => {
// let saveItem = JSON.parse(evt.message)
let data = JSON.parse(evt.detail.data[0].message)
editWishList(data)
const actionsData = evt.detail.data as any[]
actionsData.forEach((item) => {
if (item.action === 'delete' && item.deleteType === 'major') {
let deleteObj = JSON.parse(item.deleteObj)
let deleteCollege = JSON.parse(item.deleteCollege)
userStore.deleteWishListMajor({ uId: deleteCollege.unId, planId: deleteObj._pId })
} else if (item.action === 'delete' && item.deleteType === 'college') {
let deleteObj = JSON.parse(item.deleteObj)
userStore.deleteWishListCollege({ uId: deleteObj.unId })
} else if (item.action === 'message') {
let data = JSON.parse(item.message)
changeFlag = false
editWishList(data)
}
})
}
onLoad((options) => {
typeName = options.typeName
editType = options.editType
changeFlag = options.change || false
if (editType === 'edit') {
vTbId.value = options.id
if (changeFlag) {
editWishList(userStore.userInfo.wishList)
}
} else {
addWishList()
}

View File

@ -155,14 +155,19 @@ export const useUserStore = defineStore(
}
}
const deleteWishListCollege = ({ uId }) => {
userInfo.value.wishList = userInfo.value.wishList.filter((item) => item.uId !== uId)
}
const deleteWishListMajor = ({ uId, planId }: { uId: string; planId: string }) => {
userInfo.value.wishList = userInfo.value.wishList.map((item) => {
if (item.uId === uId) {
item.vItems = item.vItems.filter((vItem) => vItem.planId !== planId)
userInfo.value.wishList = userInfo.value.wishList
.map((item) => {
if (item.uId === uId) {
item.vItems = item.vItems.filter((vItem) => vItem.planId !== planId)
return item
}
return item
}
return item
})
})
.filter((item) => item.vItems.length > 0)
}
const setWishListMajorWithUn = (val) => {
userInfo.value.wishList.push({ ...val, sort: userInfo.value.wishList.length + 1 })
@ -234,6 +239,7 @@ export const useUserStore = defineStore(
setWishListMajor,
setWishListMajorWithUn,
deleteWishListMajor,
deleteWishListCollege,
sortWishMajorList,
sortWishCollegeList,
setIsVIP,