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

View File

@ -174,6 +174,8 @@ import FilterMajorList from './components/FilterMajorList.vue'
const userStore = useUserStore() const userStore = useUserStore()
const navigatorBack = () => { const navigatorBack = () => {
userStore.clearWishListId()
userStore.clearWishList()
uni.navigateBack() uni.navigateBack()
} }
@ -332,16 +334,32 @@ watch(
{ immediate: true }, { immediate: true },
) )
const isEdit = ref(false)
const handlePreview = () => { const handlePreview = () => {
if (majorCount.value === 0) { if (majorCount.value === 0) {
return 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 = () => { const resetMajorList = () => {
filterMajorRef.value.handleClear() filterMajorRef.value.handleClear()
} }
onShow(() => {
if (userStore.userInfo.wishListId) {
isEdit.value = true
}
})
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>

View File

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