fix: 样式更新
parent
afe68f1efc
commit
3288a7978d
|
|
@ -27,9 +27,9 @@ export function http<T>(options: CustomRequestOptions) {
|
||||||
|
|
||||||
// 检查是否是401错误(包括HTTP状态码401或业务码401)
|
// 检查是否是401错误(包括HTTP状态码401或业务码401)
|
||||||
const isTokenExpired = res.statusCode === 401 || code === 401
|
const isTokenExpired = res.statusCode === 401 || code === 401
|
||||||
|
const tokenStore = useTokenStore()
|
||||||
|
|
||||||
if (isTokenExpired) {
|
if (isTokenExpired) {
|
||||||
const tokenStore = useTokenStore()
|
|
||||||
if (!isDoubleTokenMode) {
|
if (!isDoubleTokenMode) {
|
||||||
// 未启用双token策略,清理用户信息,跳转到登录页
|
// 未启用双token策略,清理用户信息,跳转到登录页
|
||||||
tokenStore.logout()
|
tokenStore.logout()
|
||||||
|
|
@ -93,6 +93,12 @@ export function http<T>(options: CustomRequestOptions) {
|
||||||
return reject(res)
|
return reject(res)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 不存在的用户处理
|
||||||
|
if (responseData.code === 400) {
|
||||||
|
tokenStore.logout()
|
||||||
|
uni.navigateTo({ url: LOGIN_PAGE })
|
||||||
|
}
|
||||||
|
|
||||||
// 处理其他成功状态(HTTP状态码200-299)
|
// 处理其他成功状态(HTTP状态码200-299)
|
||||||
if (res.statusCode >= 200 && res.statusCode < 300) {
|
if (res.statusCode >= 200 && res.statusCode < 300) {
|
||||||
// 处理业务逻辑错误
|
// 处理业务逻辑错误
|
||||||
|
|
@ -106,6 +112,7 @@ export function http<T>(options: CustomRequestOptions) {
|
||||||
mask: true
|
mask: true
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
return resolve(responseData as T)
|
return resolve(responseData as T)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@
|
||||||
import {
|
import {
|
||||||
getSessionKey,
|
getSessionKey,
|
||||||
getWxUserInfo,
|
getWxUserInfo,
|
||||||
|
setWxInfo,
|
||||||
} from '@/service/'
|
} from '@/service/'
|
||||||
import Checkbox from '../components/check-group/Checkbox.vue'
|
import Checkbox from '../components/check-group/Checkbox.vue'
|
||||||
import CheckboxGroup from '../components/check-group/CheckboxGroup.vue'
|
import CheckboxGroup from '../components/check-group/CheckboxGroup.vue'
|
||||||
|
|
@ -91,6 +92,7 @@ const getUserInfo = async (_code: string) => {
|
||||||
|
|
||||||
tokenStore.setTokenInfo({ token: resp.result.accessToken, expiresIn: 7 * 24 * 60 * 60 })
|
tokenStore.setTokenInfo({ token: resp.result.accessToken, expiresIn: 7 * 24 * 60 * 60 })
|
||||||
userStore.setUserOpenId(resp.result.openId)
|
userStore.setUserOpenId(resp.result.openId)
|
||||||
|
setWxInfo({options:{query:{code:_code, openId:resp.result.openId}}})
|
||||||
getWxUserInfo().then(resp => {
|
getWxUserInfo().then(resp => {
|
||||||
if(resp.code == 200){
|
if(resp.code == 200){
|
||||||
userStore.setUserExtend(resp.result.userExtend)
|
userStore.setUserExtend(resp.result.userExtend)
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@ import { useTokenStore, useUserStore } from '@/store'
|
||||||
definePage({
|
definePage({
|
||||||
style: {
|
style: {
|
||||||
navigationBarTitleText: '关于我们',
|
navigationBarTitleText: '关于我们',
|
||||||
navigationBarBackgroundColor:"#fff"
|
navigationBarBackgroundColor: "#fff"
|
||||||
},
|
},
|
||||||
excludeLoginPath: false,
|
excludeLoginPath: false,
|
||||||
})
|
})
|
||||||
|
|
@ -28,7 +28,7 @@ const makePhoneCall = () => {
|
||||||
const handleLogout = () => {
|
const handleLogout = () => {
|
||||||
userStore.clearUserInfo()
|
userStore.clearUserInfo()
|
||||||
tokenStore.clearToken()
|
tokenStore.clearToken()
|
||||||
uni.switchTab({url:"/pages/index/index"})
|
uni.switchTab({ url: "/pages/index/index" })
|
||||||
}
|
}
|
||||||
|
|
||||||
const handleClickUserAgreement = () => {
|
const handleClickUserAgreement = () => {
|
||||||
|
|
@ -47,12 +47,15 @@ const handleClickPrivacyPolicy = () => {
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<view class="flex flex-col bg-[#f8f8f8] h-screen">
|
<view class="flex flex-col bg-[#f8f8f8] h-screen">
|
||||||
<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-[30rpx] text-[#303030]">
|
||||||
<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>客服电话</text>
|
<text>客服电话</text>
|
||||||
<view class="flex items-center gap-[16rpx]" @click="makePhoneCall">
|
<view class="flex items-center gap-[16rpx]" @click="makePhoneCall">
|
||||||
<text>{{ phoneNumber }}</text>
|
<text>{{ phoneNumber }}</text>
|
||||||
<view class="i-carbon-chevron-down rotate-270 text-[#BFBFBF]"></view>
|
<view class="w-[18rpx] h-[36rpx] ml-[14rpx] flex items-center">
|
||||||
|
<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] not-last-child">
|
<view class="flex items-center justify-between mx-[32rpx] py-[28rpx] not-last-child">
|
||||||
|
|
@ -62,22 +65,25 @@ const handleClickPrivacyPolicy = () => {
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<view class="flex items-center justify-between mx-[32rpx] py-[28rpx] not-last-child" @click="handleClickUserAgreement">
|
<view class="flex items-center justify-between mx-[32rpx] py-[28rpx] not-last-child"
|
||||||
|
@click="handleClickUserAgreement">
|
||||||
<text>用户协议</text>
|
<text>用户协议</text>
|
||||||
<view class="flex items-center">
|
<view class="w-[18rpx] h-[36rpx] ml-auto flex items-center">
|
||||||
<view class="i-carbon-chevron-down rotate-270 text-[#BFBFBF]"></view>
|
<image src="https://lwzk.ycymedu.com/img/qt/tb_jiantou.png" mode="scaleToFill" class="w-[18rpx] h-[36rpx]" />
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<view class="flex items-center justify-between mx-[32rpx] py-[28rpx]" @click="handleClickPrivacyPolicy">
|
<view class="flex items-center justify-between mx-[32rpx] py-[28rpx]" @click="handleClickPrivacyPolicy">
|
||||||
<text>隐私协议</text>
|
<text>隐私协议</text>
|
||||||
<view class="flex items-center">
|
<view class="w-[18rpx] h-[36rpx] ml-auto flex items-center">
|
||||||
<view class="i-carbon-chevron-down rotate-270 text-[#BFBFBF]"></view>
|
<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 :class="`${tokenStore.hasLogin?'text-black':'text-[#979797]'} text-[32rpx] text-center mx-[30rpx] bg-white rounded-full py-[22rpx] mt-[80rpx]`" @click="handleLogout">退出登录</view>
|
<view
|
||||||
|
:class="`${tokenStore.hasLogin ? 'text-[#979797]' : 'text-[#979797]'} text-[32rpx] text-center mx-[30rpx] bg-white rounded-full py-[22rpx] mt-[80rpx]`"
|
||||||
|
@click="handleLogout">退出登录</view>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -35,7 +35,7 @@ const onOverlayClick = () => {
|
||||||
/>
|
/>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="text-[#333] text-[26rpx] max-h-[50vh] overflow-y-auto">{{ paragraph }}</view>
|
<view class="text-[#333] text-[26rpx] max-h-[66vh] overflow-y-auto pb-[44rpx]">{{ paragraph }}</view>
|
||||||
</view>
|
</view>
|
||||||
</sar-popup>
|
</sar-popup>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
||||||
|
|
@ -1,23 +1,23 @@
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import {starCollection} from "@/service"
|
import { getSchoolCollection, starCollection } from "@/service"
|
||||||
import { useUserStore } from "@/store"
|
import { useUserStore } from "@/store"
|
||||||
import { storeToRefs } from "pinia";
|
import { storeToRefs } from "pinia";
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
schoolDetail: {
|
schoolDetail: {
|
||||||
type: Object,
|
type: Object,
|
||||||
default: () =>( {
|
default: () => ({
|
||||||
schoolName:'',
|
schoolName: '',
|
||||||
tags:'',
|
tags: '',
|
||||||
region:'',
|
region: '',
|
||||||
schoolNature:"",
|
schoolNature: "",
|
||||||
imageList:[]
|
imageList: []
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
const userStore = useUserStore();
|
const userStore = useUserStore();
|
||||||
const {userInfo} = storeToRefs(userStore)
|
const { userInfo } = storeToRefs(userStore)
|
||||||
const isStar = ref(false)
|
const isStar = ref(false)
|
||||||
|
|
||||||
const handlePreviewImage = (src: string, index: number) => {
|
const handlePreviewImage = (src: string, index: number) => {
|
||||||
|
|
@ -28,41 +28,58 @@ const handlePreviewImage = (src: string, index: number) => {
|
||||||
}
|
}
|
||||||
|
|
||||||
const starSchool = () => {
|
const starSchool = () => {
|
||||||
starCollection({data:{wxId:userInfo.value.userExtend.wxId,uId:props.schoolDetail.id}}).then(resp => {
|
starCollection({ data: { wxId: userInfo.value.userExtend.wxId, uId: props.schoolDetail.id } }).then(resp => {
|
||||||
if(resp.code === 200){
|
if (resp.code === 200) {
|
||||||
uni.showToast({title:"收藏成功"})
|
|
||||||
isStar.value = resp.result
|
isStar.value = resp.result
|
||||||
|
if (resp.result) {
|
||||||
|
uni.showToast({ title: "收藏成功" })
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
uni.showToast({ title: "已取消收藏" })
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
onLoad(() => {
|
||||||
|
getSchoolCollection().then((resp) => {
|
||||||
|
if (resp.code === 200) {
|
||||||
|
isStar.value = resp.result.some(school => school.id === props.schoolDetail.id)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<view class="flex items-center mx-[30rpx] flex-wrap">
|
<view class="mx-[30rpx]">
|
||||||
|
<view class="flex items-center">
|
||||||
<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] first:border-solid border-red border-[1rpx]"
|
<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>
|
</view>
|
||||||
<view
|
<view
|
||||||
class="flex items-center rounded-[8rpx] border-[2rpx] border-solid border-[#eee] bg-[#fff] py-[8rpx] px-[12rpx] ml-auto text-[#636363] text-[22rpx]" @click="starSchool">
|
class="flex items-center rounded-[8rpx] border-[2rpx] border-solid border-[#eee] bg-[#fff] py-[8rpx] px-[12rpx] ml-auto text-[#636363] text-[22rpx] min-w-max"
|
||||||
<sar-icon :name="!isStar ? 'star' : 'star-fill'" size="12" class="mr-[8rpx]" color="#636363" />
|
@click="starSchool">
|
||||||
|
<sar-icon :name="!isStar ? 'star' : 'star-fill'" size="12" class="mr-[8rpx]"
|
||||||
|
:color="!isStar ? '#636363' : '#73b3ff'" />
|
||||||
收藏
|
收藏
|
||||||
</view>
|
</view>
|
||||||
<swiper class="mx-[32rpx] basis-full h-[126rpx]" circular :autoplay="true" :indicator="false" v-if="schoolDetail.imageList"
|
</view>
|
||||||
:display-multiple-items="schoolDetail.imageList.length >2 ? 3 : 1">
|
<swiper class="basis-full h-[126rpx]" circular :autoplay="true" :indicator="false" v-if="schoolDetail.imageList"
|
||||||
|
:display-multiple-items="schoolDetail.imageList.length > 2 ? 3 : 1">
|
||||||
<swiper-item v-for="(item, index) in schoolDetail.imageList" :key="item" class="flex justify-center">
|
<swiper-item v-for="(item, index) in schoolDetail.imageList" :key="item" class="flex justify-center">
|
||||||
<image :src="item" mode="scaleToFill"
|
<image :src="item" mode="scaleToFill" class="w-full h-full mx-[4rpx] rounded-[8rpx]"
|
||||||
class="w-full h-full mx-[4rpx] rounded-[8rpx]" @click.stop="handlePreviewImage(item, index)" />
|
@click.stop="handlePreviewImage(item, index)" />
|
||||||
</swiper-item>
|
</swiper-item>
|
||||||
</swiper>
|
</swiper>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped></style>
|
||||||
</style>
|
|
||||||
|
|
|
||||||
|
|
@ -74,10 +74,10 @@ const makePhoneCall = (val: string) => {
|
||||||
<view
|
<view
|
||||||
class="flex items-center text-[26rpx] text-[#333] border-b-[2rpx] border-b-solid border-b-[#ededed] py-[22rpx]"
|
class="flex items-center text-[26rpx] text-[#333] border-b-[2rpx] border-b-solid border-b-[#ededed] py-[22rpx]"
|
||||||
v-for="(val, index) in contacts" :key="index">
|
v-for="(val, index) in contacts" :key="index">
|
||||||
<view class="">{{ val.title }}:</view>
|
<view class="min-w-max">{{ val.title }}:</view>
|
||||||
<view>{{ val.msg }}</view>
|
<view>{{ val.msg }}</view>
|
||||||
<view
|
<view
|
||||||
class="ml-auto border-[2rpx] border-solid text-[#1580FF] border-[#1580FF] rounded-[8rpx] px-[12rpx] py-[8rpx] text-[22rpx]"
|
class="ml-auto border-[2rpx] border-solid text-[#1580FF] border-[#1580FF] rounded-[8rpx] px-[12rpx] py-[8rpx] text-[22rpx] min-w-max"
|
||||||
@click="val.eventClick">{{ val.typeLabel }}</view>
|
@click="val.eventClick">{{ val.typeLabel }}</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
@ -102,13 +102,16 @@ const makePhoneCall = (val: string) => {
|
||||||
class="w-[36rpx] h-[36rpx]" />
|
class="w-[36rpx] h-[36rpx]" />
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="flex items-center justify-center mt-[80rpx]">
|
<view class="h-[560rpx] flex flex-col justify-center">
|
||||||
<view class="w-[332rpx] h-[332rpx]">
|
<view class="flex items-center justify-center">
|
||||||
|
<view class="p-[20rpx] border-[2rpx] border-solid border-[#3b9df4]">
|
||||||
|
<view class="w-[292rpx] h-[292rpx]">
|
||||||
<image :src="schoolDetail.wechatQrcode" mode="scaleToFill" :show-menu-by-longpress="true"
|
<image :src="schoolDetail.wechatQrcode" mode="scaleToFill" :show-menu-by-longpress="true"
|
||||||
class="w-[332rpx] h-[332rpx]" />
|
class="w-[292rpx] h-[292rpx]" />
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="flex justify-center">
|
</view>
|
||||||
|
<view class="flex justify-center mt-[20rpx]">
|
||||||
<view class="w-[28rpx] h-[34rpx flex items-center">
|
<view class="w-[28rpx] h-[34rpx flex items-center">
|
||||||
<image src="https://lwzk.ycymedu.com/img/qt/wd_zhiwen.png" mode="scaleToFill"
|
<image src="https://lwzk.ycymedu.com/img/qt/wd_zhiwen.png" mode="scaleToFill"
|
||||||
class="w-[28rpx] h-[34rpx]" />
|
class="w-[28rpx] h-[34rpx]" />
|
||||||
|
|
@ -116,6 +119,7 @@ const makePhoneCall = (val: string) => {
|
||||||
<view class="text-[28rpx]">扫码添加客服企业微信</view>
|
<view class="text-[28rpx]">扫码添加客服企业微信</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
</view>
|
||||||
</sar-popup>
|
</sar-popup>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
import { safeAreaInsets } from '@/utils/systemInfo'
|
import { safeAreaInsets } from '@/utils/systemInfo'
|
||||||
import MxSearch from "@/pages-sub/components/search/index.vue?async"
|
import MxSearch from "@/pages-sub/components/search/index.vue?async"
|
||||||
import MxRadioGroup from "@/pages-sub/components/radio/index.vue?async"
|
import MxRadioGroup from "@/pages-sub/components/radio/index.vue?async"
|
||||||
import { getAreaList, getSchoolHistoricalScores, getSchoolNature } from "@/service"
|
import { getAreaList, getHistoryYearList, getSchoolHistoricalScores, getSchoolNature } from "@/service"
|
||||||
|
|
||||||
// #ifdef MP-WEIXIN
|
// #ifdef MP-WEIXIN
|
||||||
definePage({
|
definePage({
|
||||||
|
|
@ -31,7 +31,7 @@ const handleBack = () => {
|
||||||
const areaList = ref([])
|
const areaList = ref([])
|
||||||
const natureList = ref([])
|
const natureList = ref([])
|
||||||
|
|
||||||
const years = ref([])
|
|
||||||
|
|
||||||
|
|
||||||
const searchParams = ref({
|
const searchParams = ref({
|
||||||
|
|
@ -58,7 +58,7 @@ const partialColumns = [
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '统招位次',
|
title: '统招位次',
|
||||||
prop: 'city',
|
prop: 'ranking',
|
||||||
width: '18%',
|
width: '18%',
|
||||||
align: "center"
|
align: "center"
|
||||||
},
|
},
|
||||||
|
|
@ -81,6 +81,7 @@ const visibleFlag2 = ref(false)
|
||||||
const visibleFlag3 = ref(false)
|
const visibleFlag3 = ref(false)
|
||||||
|
|
||||||
const partialData = ref([])
|
const partialData = ref([])
|
||||||
|
const yearList = ref([])
|
||||||
|
|
||||||
const handleChange = () => {
|
const handleChange = () => {
|
||||||
visibleFlag1.value = false;
|
visibleFlag1.value = false;
|
||||||
|
|
@ -111,6 +112,11 @@ onShow(() => {
|
||||||
natureList.value = [{ value: '', label: '不限' }, ...resp.result]
|
natureList.value = [{ value: '', label: '不限' }, ...resp.result]
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
getHistoryYearList().then(resp => {
|
||||||
|
if(resp.code ===200){
|
||||||
|
yearList.value = [{ value: '', label: '不限' },...resp.result]
|
||||||
|
}
|
||||||
|
})
|
||||||
handleChange()
|
handleChange()
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|
@ -138,7 +144,7 @@ onShow(() => {
|
||||||
custom-item-class="w-full py-[16rpx] text-center border-[1rpx] border-solid" @change="handleChange"/>
|
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:visible="visibleFlag3" v-model="searchParams.year" :title="searchParams.year || '年份'">
|
<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="yearList" 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]"
|
||||||
|
|
|
||||||
|
|
@ -234,19 +234,19 @@ onLoad(() => {
|
||||||
<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-[16rpx]"
|
||||||
custom-root-class="px-[30rpx] 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-[#e7f2ff] text-[#1580FF] border-none" />
|
||||||
|
|
||||||
<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-[16rpx]"
|
||||||
custom-root-class="px-[30rpx] 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-[#e7f2ff] text-[#1580FF] border-none" />
|
||||||
|
|
||||||
<MxRadio v-model:value="userInfo.talentExtend.specialtyDirection" v-if="activeType == 'artDirection'"
|
<MxRadio v-model:value="userInfo.talentExtend.specialtyDirection" v-if="activeType == 'artDirection'"
|
||||||
:options="artList" label-key="label" value-key="value"
|
:options="artList" 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-[16rpx]"
|
||||||
custom-root-class="px-[30rpx] 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-[#e7f2ff] text-[#1580FF] border-none" />
|
||||||
|
|
||||||
</view>
|
</view>
|
||||||
|
|
|
||||||
|
|
@ -46,7 +46,7 @@ const handleSubmit = () => {
|
||||||
}
|
}
|
||||||
}).then(resp => {
|
}).then(resp => {
|
||||||
if (resp.code === 200) {
|
if (resp.code === 200) {
|
||||||
uni.navigateTo({ url: `/pages-sub/ai-service/index?talentTypeId=2` })
|
uni.reLaunch({ url: `/pages-sub/ai-service/index?talentTypeId=2` })
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
@ -203,7 +203,7 @@ onLoad(() => {
|
||||||
<MxRadio v-model:value="userInfo.talentExtend.ageLimit" v-if="activeType == 'year'"
|
<MxRadio v-model:value="userInfo.talentExtend.ageLimit" v-if="activeType == 'year'"
|
||||||
:options="yearClassification" label-key="label" value-key="label"
|
:options="yearClassification" label-key="label" value-key="label"
|
||||||
custom-root-cols-class="grid grid-cols-3 items-center gap-[16rpx]"
|
custom-root-cols-class="grid grid-cols-3 items-center gap-[16rpx]"
|
||||||
custom-root-class="px-[30rpx] 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-[#e7f2ff] text-[#1580FF] border-none" />
|
||||||
|
|
||||||
</view>
|
</view>
|
||||||
|
|
|
||||||
|
|
@ -250,20 +250,19 @@ onShow(() => {
|
||||||
<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-[16rpx]"
|
||||||
custom-root-class="px-[30rpx] 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-[#e7f2ff] text-[#1580FF] border-none" />
|
||||||
|
|
||||||
|
|
||||||
<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-[16rpx]"
|
||||||
custom-root-class="px-[30rpx] 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-[#e7f2ff] text-[#1580FF] border-none" />
|
||||||
|
|
||||||
<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-[16rpx]"
|
||||||
custom-root-class="px-[30rpx] 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-[#e7f2ff] text-[#1580FF] border-none" />
|
||||||
|
|
||||||
</view>
|
</view>
|
||||||
|
|
|
||||||
|
|
@ -80,7 +80,7 @@ const navigateToAi = () => {
|
||||||
}
|
}
|
||||||
}).then(resp => {
|
}).then(resp => {
|
||||||
if (resp.code === 200) {
|
if (resp.code === 200) {
|
||||||
uni.navigateTo({ url: `/pages-sub/ai-service/index?talentTypeId=1` })
|
uni.reLaunch({ url: `/pages-sub/ai-service/index?talentTypeId=1` })
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
@ -251,13 +251,13 @@ onLoad(() => {
|
||||||
<MxRadio v-model:value="userInfo.talentExtend.specialtyDirection" v-if="activeType == 'project'"
|
<MxRadio v-model:value="userInfo.talentExtend.specialtyDirection" v-if="activeType == 'project'"
|
||||||
:options="projectClassification" label-key="label" value-key="value"
|
:options="projectClassification" label-key="label" value-key="value"
|
||||||
custom-root-cols-class="grid grid-cols-3 items-center gap-[16rpx]" :label-string="true"
|
custom-root-cols-class="grid grid-cols-3 items-center gap-[16rpx]" :label-string="true"
|
||||||
custom-root-class="px-[30rpx] 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-[#e7f2ff] text-[#1580FF] border-none" />
|
||||||
|
|
||||||
<MxRadio v-model:value="userInfo.talentExtend.ageLimit" v-if="activeType == 'year'"
|
<MxRadio v-model:value="userInfo.talentExtend.ageLimit" v-if="activeType == 'year'"
|
||||||
:options="yearClassification" label-key="label" value-key="label"
|
:options="yearClassification" label-key="label" value-key="label"
|
||||||
custom-root-cols-class="grid grid-cols-3 items-center gap-[16rpx]"
|
custom-root-cols-class="grid grid-cols-3 items-center gap-[16rpx]"
|
||||||
custom-root-class="px-[30rpx] 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-[#e7f2ff] text-[#1580FF] border-none" />
|
||||||
|
|
||||||
</view>
|
</view>
|
||||||
|
|
|
||||||
|
|
@ -64,6 +64,8 @@ const handleChangeSchool = () => {
|
||||||
label: `${item.value}(${item.value === '冲' ? resp.result.chongCount : item.value === '稳' ? resp.result.wenCount : resp.result.baoCount})`
|
label: `${item.value}(${item.value === '冲' ? resp.result.chongCount : item.value === '稳' ? resp.result.wenCount : resp.result.baoCount})`
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
console.log(cwbs.value);
|
||||||
|
|
||||||
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)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
@ -75,7 +77,7 @@ const handleCancel = () => {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
onMounted(() => {
|
onLoad(() => {
|
||||||
getAreaList().then(resp => {
|
getAreaList().then(resp => {
|
||||||
if (resp.code === 200) {
|
if (resp.code === 200) {
|
||||||
regions.value = resp.result
|
regions.value = resp.result
|
||||||
|
|
|
||||||
|
|
@ -27,7 +27,7 @@ const handleChoose = (val) => {
|
||||||
<image src="https://lwzk.ycymedu.com/img/tianbao/tb_moren.png" mode="scaleToFill"
|
<image src="https://lwzk.ycymedu.com/img/tianbao/tb_moren.png" mode="scaleToFill"
|
||||||
class="w-[148rpx] h-[148rpx]" />
|
class="w-[148rpx] h-[148rpx]" />
|
||||||
</view>
|
</view>
|
||||||
<view class="text-[26rpx] text-[#B2B2B2]">没用匹配数据</view>
|
<view class="text-[26rpx] text-[#B2B2B2]">没有匹配数据</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<view class="min-h-[240rpx]" v-if="tableData.length > 0">
|
<view class="min-h-[240rpx]" v-if="tableData.length > 0">
|
||||||
|
|
|
||||||
|
|
@ -62,6 +62,12 @@ const handleOpenPop = (type: string) => {
|
||||||
popType.value = type
|
popType.value = type
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const handleCancel = () => {
|
||||||
|
searchParams.value.region = []
|
||||||
|
popVisible.value = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
const handleChangeSchool = () => {
|
const handleChangeSchool = () => {
|
||||||
getBusSchoolAdmission({
|
getBusSchoolAdmission({
|
||||||
data: {
|
data: {
|
||||||
|
|
@ -84,7 +90,7 @@ const handleChangeSchool = () => {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
onBeforeMount(() => {
|
onLoad(() => {
|
||||||
|
|
||||||
getAreaList().then(resp => {
|
getAreaList().then(resp => {
|
||||||
if (resp.code === 200) {
|
if (resp.code === 200) {
|
||||||
|
|
@ -187,7 +193,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;" @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 === 'nature' ?
|
<view class="text-[34rpx] font-500">{{ popType === 'school' ? '全部学校' : (popType === 'nature' ?
|
||||||
|
|
@ -222,9 +228,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>
|
||||||
|
|
|
||||||
|
|
@ -42,7 +42,7 @@ const handleChoose = (val) => {
|
||||||
}
|
}
|
||||||
|
|
||||||
const popVisible = ref(false)
|
const popVisible = ref(false)
|
||||||
const cwbs = ref([])
|
const cwbs = ref([{ value: '冲', label: '冲' }, { value: '稳', label: '稳' }, { value: '保', label: '保' }])
|
||||||
const natureList = ref([])
|
const natureList = ref([])
|
||||||
const totalCount = ref(0)
|
const totalCount = ref(0)
|
||||||
const regions = ref([])
|
const regions = ref([])
|
||||||
|
|
@ -79,6 +79,8 @@ const handleChangeSchool = () => {
|
||||||
label: `${item.value}(${item.value === '冲' ? resp.result.chongCount : item.value === '稳' ? resp.result.wenCount : resp.result.baoCount})`
|
label: `${item.value}(${item.value === '冲' ? resp.result.chongCount : item.value === '稳' ? resp.result.wenCount : resp.result.baoCount})`
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
console.log(cwbs.value);
|
||||||
|
|
||||||
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)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
@ -88,7 +90,7 @@ const handleCancel = () => {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
onBeforeMount(() => {
|
onLoad(() => {
|
||||||
|
|
||||||
getAreaList().then(resp => {
|
getAreaList().then(resp => {
|
||||||
if (resp.code === 200) {
|
if (resp.code === 200) {
|
||||||
|
|
@ -189,7 +191,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;" @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 === 'nature' ?
|
<view class="text-[34rpx] font-500">{{ popType === 'school' ? '全部学校' : (popType === 'nature' ?
|
||||||
|
|
|
||||||
|
|
@ -31,7 +31,6 @@ const wishlistStore = useWishlistStore()
|
||||||
const {extendWishlist} = storeToRefs(wishlistStore)
|
const {extendWishlist} = storeToRefs(wishlistStore)
|
||||||
|
|
||||||
const handleBack = () => {
|
const handleBack = () => {
|
||||||
wishlistStore.clearExtendWishlist()
|
|
||||||
uni.navigateBack({ delta: 1 })
|
uni.navigateBack({ delta: 1 })
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,6 @@ definePage({
|
||||||
// #endif
|
// #endif
|
||||||
|
|
||||||
const handleBack = () => {
|
const handleBack = () => {
|
||||||
wishlistStore.clearExtendWishlist()
|
|
||||||
uni.navigateBack({ delta: 1 })
|
uni.navigateBack({ delta: 1 })
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
<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 { useUserStore, useWishlistStore } from '@/store'
|
||||||
import { storeToRefs } from 'pinia'
|
import { storeToRefs } from 'pinia'
|
||||||
import { getMyScore } from '@/service'
|
import { getMyScore } from '@/service'
|
||||||
|
|
||||||
|
|
@ -34,12 +34,16 @@ const show = ref(false)
|
||||||
const userStore = useUserStore()
|
const userStore = useUserStore()
|
||||||
const {userInfo} = storeToRefs(userStore)
|
const {userInfo} = storeToRefs(userStore)
|
||||||
|
|
||||||
|
const wishlistStore = useWishlistStore()
|
||||||
|
|
||||||
|
|
||||||
const activeIndex = ref(1)
|
const activeIndex = ref(1)
|
||||||
const handleActiveIndex = (index: number) => {
|
const handleActiveIndex = (index: number) => {
|
||||||
activeIndex.value = index;
|
activeIndex.value = index;
|
||||||
show.value = true;
|
show.value = true;
|
||||||
}
|
}
|
||||||
const navigateToBatchPage = (index: number) => {
|
const navigateToBatchPage = (index: number) => {
|
||||||
|
wishlistStore.clearExtendWishlist();
|
||||||
if (index === 0) {
|
if (index === 0) {
|
||||||
uni.navigateTo({ url: '/pages-sub/wishlist/create/firstBatch' })
|
uni.navigateTo({ url: '/pages-sub/wishlist/create/firstBatch' })
|
||||||
} else if (index === 1) {
|
} else if (index === 1) {
|
||||||
|
|
|
||||||
|
|
@ -34,7 +34,7 @@ onShareAppMessage(() => {
|
||||||
return {
|
return {
|
||||||
title: '六纬择校',
|
title: '六纬择校',
|
||||||
path: '/pages/index/index',
|
path: '/pages/index/index',
|
||||||
imageUrl: 'https://api.static.ycymedu.com/images/share.png',
|
imageUrl: 'https://lw-zk.oss-cn-hangzhou.aliyuncs.com/img/qt/qt_fenxiang.png',
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
onShareTimeline(() => {
|
onShareTimeline(() => {
|
||||||
|
|
|
||||||
|
|
@ -31,7 +31,7 @@ export const getSessionKey = (options: any) => {
|
||||||
export const setWxInfo = ({
|
export const setWxInfo = ({
|
||||||
options,
|
options,
|
||||||
}: {
|
}: {
|
||||||
options?: CustomRequestOptions;
|
options?: {query:{code:string, openId:string}};
|
||||||
}) => {
|
}) => {
|
||||||
return request<API.Response>('/api/sysWxOpen/wxPhone', {
|
return request<API.Response>('/api/sysWxOpen/wxPhone', {
|
||||||
method: 'GET',
|
method: 'GET',
|
||||||
|
|
@ -280,3 +280,9 @@ export const getFirstPageInfo = () => {
|
||||||
method: 'GET',
|
method: 'GET',
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export const getHistoryYearList = () => {
|
||||||
|
return request<API.Response>('/api/busSchoolAdmission/historicalYears', {
|
||||||
|
method: 'GET',
|
||||||
|
});
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue