feat: 我的志愿表页面编写中
parent
3c753725db
commit
207c569505
|
|
@ -18,6 +18,7 @@
|
||||||
</button>
|
</button>
|
||||||
<button
|
<button
|
||||||
class="w-[350rpx]! h-[88rpx]! text-[#fff]! text-[28rpx]! bg-[#1580FF]! font-normal flex! items-center! justify-center! rounded-[8rpx]!"
|
class="w-[350rpx]! h-[88rpx]! text-[#fff]! text-[28rpx]! bg-[#1580FF]! font-normal flex! items-center! justify-center! rounded-[8rpx]!"
|
||||||
|
@click="navigatorToAi"
|
||||||
>
|
>
|
||||||
智能填报
|
智能填报
|
||||||
</button>
|
</button>
|
||||||
|
|
@ -39,4 +40,10 @@ const navigatorTo = () => {
|
||||||
url: '/pages-sub/home/autoFill/index',
|
url: '/pages-sub/home/autoFill/index',
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const navigatorToAi = () => {
|
||||||
|
uni.navigateTo({
|
||||||
|
url: '/pages-evaluation-sub/aiAutoFill/index',
|
||||||
|
})
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
|
||||||
|
|
@ -1,20 +1,4 @@
|
||||||
import {
|
import { getUniversityType, getRegionInfo, getNature } from '@/service/index/api'
|
||||||
getUniversityType,
|
|
||||||
getRegionInfo,
|
|
||||||
getUniversityLevel,
|
|
||||||
getNature,
|
|
||||||
} from '@/service/index/api'
|
|
||||||
|
|
||||||
export const useUniversityLevel = () => {
|
|
||||||
const phaseList = ref([])
|
|
||||||
getUniversityLevel().then((res) => {
|
|
||||||
if (res.code === 200) {
|
|
||||||
phaseList.value = res.result as { code: number; name: string }[]
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
return { phaseList }
|
|
||||||
}
|
|
||||||
|
|
||||||
interface Region {
|
interface Region {
|
||||||
code: string
|
code: string
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,82 @@
|
||||||
|
export const renderEchart = ({ echart, echarts, pieChartData }) => {
|
||||||
|
const typeColorMap = {
|
||||||
|
需冲刺: { color: '#EB5241', simpleName: '冲' },
|
||||||
|
较稳妥: { color: '#F0BA16', simpleName: '稳' },
|
||||||
|
可保底: { color: '#15C496', simpleName: '保' },
|
||||||
|
}
|
||||||
|
const formattedData = pieChartData.value.map((item) => ({
|
||||||
|
...item,
|
||||||
|
|
||||||
|
itemStyle: {
|
||||||
|
color: typeColorMap[item.name]?.color,
|
||||||
|
},
|
||||||
|
label: {
|
||||||
|
formatter: (params) => typeColorMap[params.name]?.simpleName || params.name,
|
||||||
|
},
|
||||||
|
}))
|
||||||
|
echart.value.init(echarts, (chart) => {
|
||||||
|
let option = {
|
||||||
|
tooltip: {
|
||||||
|
trigger: 'item',
|
||||||
|
formatter: '{b}: {c} ({d}%)',
|
||||||
|
},
|
||||||
|
legend: {
|
||||||
|
orient: 'horizontal',
|
||||||
|
bottom: 0,
|
||||||
|
left: 'center',
|
||||||
|
icon: 'circle',
|
||||||
|
itemWidth: 10,
|
||||||
|
itemHeight: 10,
|
||||||
|
itemGap: 20,
|
||||||
|
},
|
||||||
|
series: [
|
||||||
|
{
|
||||||
|
type: 'pie',
|
||||||
|
radius: ['40%', '70%'],
|
||||||
|
data: formattedData,
|
||||||
|
emphasis: {
|
||||||
|
itemStyle: {
|
||||||
|
shadowBlur: 10,
|
||||||
|
shadowOffsetX: 0,
|
||||||
|
shadowColor: 'rgba(0, 0, 0, 0.5)',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
label: {
|
||||||
|
formatter: (params) => typeColorMap[params.name]?.simpleName || params.name,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
graphic: {
|
||||||
|
elements: [
|
||||||
|
{
|
||||||
|
type: 'text',
|
||||||
|
left: 'center',
|
||||||
|
top: '40%',
|
||||||
|
|
||||||
|
style: {
|
||||||
|
text: '适合的大学',
|
||||||
|
fontSize: 12,
|
||||||
|
fill: '#1F2329',
|
||||||
|
textAlign: 'center',
|
||||||
|
textVerticalAlign: 'middle',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 'text',
|
||||||
|
left: 'center',
|
||||||
|
top: '50%',
|
||||||
|
style: {
|
||||||
|
text: formattedData.reduce((acc, curr) => acc + curr.value, 0),
|
||||||
|
fontSize: 24,
|
||||||
|
fill: '#1F2329',
|
||||||
|
textAlign: 'center',
|
||||||
|
textVerticalAlign: 'middle',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
chart.setOption(option)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,105 @@
|
||||||
|
<route lang="json5" type="page">
|
||||||
|
{
|
||||||
|
style: {
|
||||||
|
navigationBarTitleText: 'AI智能填报',
|
||||||
|
},
|
||||||
|
needLogin: true,
|
||||||
|
}
|
||||||
|
</route>
|
||||||
|
<template>
|
||||||
|
<view class="bg-[#FAFAFA]">
|
||||||
|
<view class="text-[#000] text-[24rpx] p-[32rpx]">
|
||||||
|
{{ userInfo.estimatedAchievement.expectedScore }}分{{
|
||||||
|
userInfo.estimatedAchievement.subjectGroup.split(',').join('/')
|
||||||
|
}}
|
||||||
|
</view>
|
||||||
|
<view class="mx-[32rpx] h-[426rpx] bg-[#fff] rounded-[16rpx]">
|
||||||
|
<l-echart ref="echart"></l-echart>
|
||||||
|
</view>
|
||||||
|
<view class="mt-[32rpx] mx-[32rpx] bg-[#fff] rounded-[16rpx] p-[32rpx]">
|
||||||
|
<text class="text-[#000] text-[24rpx]">
|
||||||
|
{{ pieChartData.reduce((total, cur) => total + cur.value, 0) }}所适合我的大学
|
||||||
|
</text>
|
||||||
|
<view class="pl-[30rpx] mt-[22rpx] grid grid-cols-3 gap-x-[150rpx] gap-y-[30rpx]">
|
||||||
|
<view
|
||||||
|
class="flex flex-col items-center gap-[8rpx]"
|
||||||
|
v-for="item in universities"
|
||||||
|
:key="item.name"
|
||||||
|
>
|
||||||
|
<text class="text-[56rpx] text-[#1F2329] font-semibold">{{ item.count }}</text>
|
||||||
|
<text class="text-[24rpx] text-[#B6B6B6]">{{ item.name }}</text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="mt-[32rpx] mx-[32rpx] bg-[#FEF0F0] rounded-[16rpx] p-[32rpx]">
|
||||||
|
<view class="text-[#F56C6C] text-[28rpx] flex items-center gap-[8rpx]">
|
||||||
|
<view class="i-carbon-volume-down text-[32rpx]"></view>
|
||||||
|
说明
|
||||||
|
</view>
|
||||||
|
<view class="text-[20rpx] text-[#F56C6C] flex flex-col">
|
||||||
|
<text>
|
||||||
|
1.
|
||||||
|
本平台基于历史分数及等效位次进行志愿推荐和风险评估,由于志愿填报本身存在不确定性,请谨慎参考。
|
||||||
|
</text>
|
||||||
|
<text>
|
||||||
|
2.在正式填报时,院校/专业名称及代码请务必与官方信息平台核对,若发现差异则以官方数据为准,本平台数据仅供参考。
|
||||||
|
</text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="mt-[32rpx] bg-[#fff] rounded-[16rpx] p-[32rpx] box-shadow px-[32rpx] pt-[32rpx]">
|
||||||
|
<view
|
||||||
|
class="text-[#fff] text-[32rpx] rounded-[8rpx] bg-[#1580FF] text-center py-[26rpx]"
|
||||||
|
@click="navigatorTo"
|
||||||
|
>
|
||||||
|
智能选校
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup lang="ts">
|
||||||
|
import { useUserStore } from '@/store/user'
|
||||||
|
import { aiPreview, getBatchData } from '@/service/index/api'
|
||||||
|
|
||||||
|
import lEchart from '@/pages-evaluation-sub/uni_modules/lime-echart/components/l-echart/l-echart.vue'
|
||||||
|
import { renderEchart } from './echartRender'
|
||||||
|
const echarts = require('../uni_modules/lime-echart/static/echarts.min')
|
||||||
|
|
||||||
|
const userStore = useUserStore()
|
||||||
|
|
||||||
|
const userInfo = computed(() => userStore.userInfo)
|
||||||
|
|
||||||
|
const echart = ref(null)
|
||||||
|
|
||||||
|
const pieChartData = ref([])
|
||||||
|
const universities = ref([])
|
||||||
|
onLoad(() => {
|
||||||
|
aiPreview({
|
||||||
|
location: userInfo.value.estimatedAchievement.provinceCode,
|
||||||
|
p: userInfo.value.estimatedAchievement.sp,
|
||||||
|
score: userInfo.value.estimatedAchievement.expectedScore,
|
||||||
|
subjects: userInfo.value.estimatedAchievement.subjectGroup.split(','),
|
||||||
|
}).then((res) => {
|
||||||
|
let _result = res.result as {
|
||||||
|
pieChats: { name: string; value: number }[]
|
||||||
|
universities: { name: string; count: number }[]
|
||||||
|
}
|
||||||
|
pieChartData.value = _result.pieChats
|
||||||
|
universities.value = _result.universities
|
||||||
|
renderEchart({ echart, echarts, pieChartData })
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
const navigatorTo = () => {
|
||||||
|
uni.navigateTo({
|
||||||
|
url: '/pages-sub/home/wishesList/index',
|
||||||
|
})
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.box-shadow {
|
||||||
|
box-shadow: 0rpx -8rpx 8rpx 0rpx rgba(225, 225, 225, 0.2);
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
@ -11,8 +11,6 @@ const echarts = require('./uni_modules/lime-echart/static/echarts.min')
|
||||||
const echart = ref(null)
|
const echart = ref(null)
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
console.log(echarts, echart.value)
|
|
||||||
|
|
||||||
echart.value.init(echarts, (chart) => {
|
echart.value.init(echarts, (chart) => {
|
||||||
let option = {
|
let option = {
|
||||||
title: {
|
title: {
|
||||||
|
|
|
||||||
|
|
@ -10,9 +10,9 @@
|
||||||
<view class="action-sheet-header" v-if="title">
|
<view class="action-sheet-header" v-if="title">
|
||||||
<text class="action-sheet-title">{{ title }}</text>
|
<text class="action-sheet-title">{{ title }}</text>
|
||||||
</view>
|
</view>
|
||||||
<view class="action-sheet-content">
|
<scroll-view class="action-sheet-content" :scroll-y="true">
|
||||||
<slot></slot>
|
<slot></slot>
|
||||||
</view>
|
</scroll-view>
|
||||||
<view class="action-sheet-footer" v-if="$slots.footer">
|
<view class="action-sheet-footer" v-if="$slots.footer">
|
||||||
<slot name="footer"></slot>
|
<slot name="footer"></slot>
|
||||||
</view>
|
</view>
|
||||||
|
|
|
||||||
|
|
@ -358,7 +358,7 @@ const emitValueChange = () => {
|
||||||
|
|
||||||
border: 2px solid v-bind('activeColor');
|
border: 2px solid v-bind('activeColor');
|
||||||
box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
|
box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
|
||||||
z-index: 1;
|
z-index: 0;
|
||||||
top: 50%;
|
top: 50%;
|
||||||
transition:
|
transition:
|
||||||
transform 0.2s,
|
transform 0.2s,
|
||||||
|
|
|
||||||
|
|
@ -14,6 +14,7 @@
|
||||||
<view class="table-row">
|
<view class="table-row">
|
||||||
<view class="table-cell" :class="[`text-${indexColumn.align || 'center'} w-full`]">
|
<view class="table-cell" :class="[`text-${indexColumn.align || 'center'} w-full`]">
|
||||||
<TableCol
|
<TableCol
|
||||||
|
v-if="index"
|
||||||
:prop="indexColumn.prop"
|
:prop="indexColumn.prop"
|
||||||
:label="indexColumn.label"
|
:label="indexColumn.label"
|
||||||
:width="indexColumn.width"
|
:width="indexColumn.width"
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,7 @@
|
||||||
@click="handleRowClick(index)"
|
@click="handleRowClick(index)"
|
||||||
:style="cellStyle"
|
:style="cellStyle"
|
||||||
>
|
>
|
||||||
|
{{ $slots.value }}
|
||||||
<slot name="value" v-if="$slots.value" :row="getScope(index)" :index="index"></slot>
|
<slot name="value" v-if="$slots.value" :row="getScope(index)" :index="index"></slot>
|
||||||
<text :class="`table-value`" v-else>{{ row }}</text>
|
<text :class="`table-value`" v-else>{{ row }}</text>
|
||||||
</view>
|
</view>
|
||||||
|
|
|
||||||
|
|
@ -1,10 +0,0 @@
|
||||||
<route lang="json5" type="page">
|
|
||||||
{
|
|
||||||
style: {
|
|
||||||
navigationStyle: 'custom',
|
|
||||||
},
|
|
||||||
}
|
|
||||||
</route>
|
|
||||||
<template></template>
|
|
||||||
|
|
||||||
<script setup lang="ts"></script>
|
|
||||||
|
|
@ -40,6 +40,23 @@
|
||||||
custom-header-class="text-[36rpx]! text-[#303030]! font-medium!"
|
custom-header-class="text-[36rpx]! text-[#303030]! font-medium!"
|
||||||
>
|
>
|
||||||
<FilterMenu />
|
<FilterMenu />
|
||||||
|
<template #footer>
|
||||||
|
<view class="flex items-center">
|
||||||
|
<button
|
||||||
|
plain
|
||||||
|
class="border-[#f5f5f5]! flex-auto bg-[#f5f5f5]! rounded-[8rpx]! text-[#1580FF]! text-[32rpx]! font-normal! mr-[22rpx]"
|
||||||
|
@click="close"
|
||||||
|
>
|
||||||
|
清空
|
||||||
|
</button>
|
||||||
|
<button
|
||||||
|
class="border-[#1580FF]! flex-auto bg-[#1580FF]! rounded-[8rpx]! text-[#fff]! text-[32rpx]! font-normal!"
|
||||||
|
@click="handleResult"
|
||||||
|
>
|
||||||
|
查看结果
|
||||||
|
</button>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
</ActionSheet>
|
</ActionSheet>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|
@ -61,6 +78,12 @@ const badgeValue = ref(12)
|
||||||
const close = () => {
|
const close = () => {
|
||||||
show.value = false
|
show.value = false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const handleResult = () => {
|
||||||
|
uni.navigateTo({
|
||||||
|
url: `/pages-sub/home/wishesList/index`,
|
||||||
|
})
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
|
|
|
||||||
|
|
@ -43,7 +43,7 @@
|
||||||
@open="handleOpenSubMenu(item.id)"
|
@open="handleOpenSubMenu(item.id)"
|
||||||
custom-class="flex items-center"
|
custom-class="flex items-center"
|
||||||
>
|
>
|
||||||
<view class="">
|
<view class="mx-[24rpx] my-[16rpx]">
|
||||||
<Region v-if="currentMenu === 1" @changeName="handleRegionChange" />
|
<Region v-if="currentMenu === 1" @changeName="handleRegionChange" />
|
||||||
<Nature v-if="currentMenu === 2" @changeName="handleNatureChange" />
|
<Nature v-if="currentMenu === 2" @changeName="handleNatureChange" />
|
||||||
<UniType v-if="currentMenu === 3" @changeName="handleUniTypeChange" />
|
<UniType v-if="currentMenu === 3" @changeName="handleUniTypeChange" />
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,32 @@
|
||||||
|
<template>
|
||||||
|
<CheckGroup
|
||||||
|
:list="infoList"
|
||||||
|
@change="handleChange"
|
||||||
|
:default-value="defaultInfo"
|
||||||
|
value-key="id"
|
||||||
|
label-key="name"
|
||||||
|
v-bind="$attrs"
|
||||||
|
/>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script lang="ts" setup>
|
||||||
|
import { getUniversityFeature } from '@/service/index/api'
|
||||||
|
import CheckGroup from '@/pages-sub/components/check-group/CheckGroup.vue'
|
||||||
|
|
||||||
|
const infoList = ref()
|
||||||
|
|
||||||
|
getUniversityFeature().then((res) => {
|
||||||
|
if (res.code === 200) {
|
||||||
|
infoList.value = res.result as { id: number; name: string }[]
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
const defaultInfo = ref<string[]>([])
|
||||||
|
|
||||||
|
const emits = defineEmits(['changeName'])
|
||||||
|
|
||||||
|
const handleChange = (val: any) => {
|
||||||
|
const names = infoList.value.filter((item) => val.includes(item.id)).map((item) => item.name)
|
||||||
|
emits('changeName', names)
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
@ -11,8 +11,16 @@
|
||||||
{{ item.name }}
|
{{ item.name }}
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="flex-1 pb-[24rpx] h-[50vh] overflow-y-auto mt-[32rpx] mx-[32rpx]">
|
<scroll-view class="flex-1 pb-[24rpx] h-[50vh] mt-[32rpx] mx-[32rpx]" :scroll-y="true">
|
||||||
<Phase v-show="currentMenu === 1 && showPhase" />
|
<Phase v-show="currentMenu === 1" />
|
||||||
|
<CollegeFeature
|
||||||
|
v-show="currentMenu === 5"
|
||||||
|
width="240rpx"
|
||||||
|
height="60rpx"
|
||||||
|
class="justify-center!"
|
||||||
|
:defaultValue="defaultCollegeFeature"
|
||||||
|
@change-name="handleCollegeFeatureChange"
|
||||||
|
/>
|
||||||
<Region
|
<Region
|
||||||
width="240rpx"
|
width="240rpx"
|
||||||
height="60rpx"
|
height="60rpx"
|
||||||
|
|
@ -35,10 +43,10 @@
|
||||||
v-show="currentMenu === 4"
|
v-show="currentMenu === 4"
|
||||||
:defaultValue="defaultNature"
|
:defaultValue="defaultNature"
|
||||||
/>
|
/>
|
||||||
</view>
|
</scroll-view>
|
||||||
</view>
|
</view>
|
||||||
<view class="pt-[32rpx] px-[32rpx] wei-xin-pt box-shadow">
|
<!-- <view class="pt-[32rpx] px-[32rpx] wei-xin-pt box-shadow">
|
||||||
<!-- <view class="flex items-center flex-wrap gap-[24rpx]">
|
<view class="flex items-center flex-wrap gap-[24rpx]">
|
||||||
<view
|
<view
|
||||||
class="px-[20rpx] py-[12rpx] bg-[#f8f8f8] rounded-[8rpx]"
|
class="px-[20rpx] py-[12rpx] bg-[#f8f8f8] rounded-[8rpx]"
|
||||||
v-for="item in 4"
|
v-for="item in 4"
|
||||||
|
|
@ -48,23 +56,8 @@
|
||||||
<view class="i-carbon-close-filled"></view>
|
<view class="i-carbon-close-filled"></view>
|
||||||
|
|
||||||
</view>
|
</view>
|
||||||
</view> -->
|
|
||||||
<view class="flex items-center">
|
|
||||||
<button
|
|
||||||
plain
|
|
||||||
class="border-[#f5f5f5]! flex-auto bg-[#f5f5f5]! rounded-[8rpx]! text-[#1580FF]! text-[32rpx]! font-normal! mr-[22rpx]"
|
|
||||||
@click="close"
|
|
||||||
>
|
|
||||||
清空
|
|
||||||
</button>
|
|
||||||
<button
|
|
||||||
class="border-[#1580FF]! flex-auto bg-[#1580FF]! rounded-[8rpx]! text-[#fff]! text-[32rpx]! font-normal!"
|
|
||||||
@click="handleResult"
|
|
||||||
>
|
|
||||||
查看结果
|
|
||||||
</button>
|
|
||||||
</view>
|
|
||||||
</view>
|
</view>
|
||||||
|
</view> -->
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
@ -73,33 +66,29 @@ import Phase from './Phase.vue'
|
||||||
import Region from './Region.vue'
|
import Region from './Region.vue'
|
||||||
import UniType from './UniType.vue'
|
import UniType from './UniType.vue'
|
||||||
import Nature from './Nature.vue'
|
import Nature from './Nature.vue'
|
||||||
|
import CollegeFeature from './CollegeFeature.vue'
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
showPhase: {
|
menuBit: {
|
||||||
type: Boolean,
|
type: Number,
|
||||||
default: true,
|
default: 15, // 默认显示 (01111)
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
const close = () => {
|
|
||||||
defaultRegion.value = []
|
|
||||||
defaultNature.value = []
|
|
||||||
defaultUniType.value = []
|
|
||||||
}
|
|
||||||
|
|
||||||
const menus = [
|
const menus = [
|
||||||
{ id: 1, name: '阶段' },
|
{ id: 1, name: '阶段' },
|
||||||
{ id: 2, name: '院校省份' },
|
{ id: 2, name: '院校省份' },
|
||||||
|
{ id: 5, name: '院校特色' },
|
||||||
{ id: 3, name: '院校类型' },
|
{ id: 3, name: '院校类型' },
|
||||||
{ id: 4, name: '办学性质' },
|
{ id: 4, name: '办学性质' },
|
||||||
]
|
]
|
||||||
|
|
||||||
const splitMenus = computed(() => {
|
const splitMenus = computed(() => {
|
||||||
let _menus = menus
|
let effectiveBitMask = props.menuBit
|
||||||
if (!props.showPhase) {
|
return menus.filter((item) => {
|
||||||
_menus = menus.filter((item) => item.id !== 1)
|
const bitMask = 1 << (item.id - 1)
|
||||||
}
|
return (effectiveBitMask & bitMask) !== 0
|
||||||
return _menus
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
const currentMenu = ref(splitMenus.value[0].id)
|
const currentMenu = ref(splitMenus.value[0].id)
|
||||||
|
|
@ -110,10 +99,12 @@ const changeMenu = (item: { id: number; name: string }) => {
|
||||||
const defaultRegion = ref([])
|
const defaultRegion = ref([])
|
||||||
const defaultNature = ref([])
|
const defaultNature = ref([])
|
||||||
const defaultUniType = ref([])
|
const defaultUniType = ref([])
|
||||||
|
const defaultCollegeFeature = ref([])
|
||||||
|
|
||||||
const chooseRegion = ref([])
|
const chooseRegion = ref([])
|
||||||
const chooseNature = ref([])
|
const chooseNature = ref([])
|
||||||
const chooseUniType = ref([])
|
const chooseUniType = ref([])
|
||||||
|
const chooseCollegeFeature = ref([])
|
||||||
|
|
||||||
const handleRegionChange = (val: string[]) => {
|
const handleRegionChange = (val: string[]) => {
|
||||||
chooseRegion.value = val
|
chooseRegion.value = val
|
||||||
|
|
@ -126,11 +117,23 @@ const handleNatureChange = (val: string[]) => {
|
||||||
const handleUniTypeChange = (val: string[]) => {
|
const handleUniTypeChange = (val: string[]) => {
|
||||||
chooseUniType.value = val
|
chooseUniType.value = val
|
||||||
}
|
}
|
||||||
const handleResult = () => {
|
|
||||||
uni.navigateTo({
|
const handleCollegeFeatureChange = (val: string[]) => {
|
||||||
url: `/pages-sub/home/wishesList/index?province=${chooseRegion.value.join(',')}&nature=${chooseNature.value.join(',')}&uniType=${chooseUniType.value.join(',')}`,
|
chooseCollegeFeature.value = val
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const handleConfirm = () => {
|
||||||
|
console.log(
|
||||||
|
chooseRegion.value,
|
||||||
|
chooseNature.value,
|
||||||
|
chooseUniType.value,
|
||||||
|
chooseCollegeFeature.value,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
defineExpose({
|
||||||
|
handleConfirm,
|
||||||
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
<template>
|
<template>
|
||||||
<view class="">
|
<view class="">
|
||||||
<RadioGroup v-model="choosePhase" class="custom-radio-group">
|
<RadioGroup v-model="choosePhase" class="custom-radio-group" @change="handleChange">
|
||||||
<Radio v-for="item in phaseList" :key="item.batch" :name="item.batch" class="custom-radio">
|
<Radio v-for="item in phaseList" :key="item.batch" :name="item.batch" class="custom-radio">
|
||||||
{{ item.batch }}
|
{{ item.batch }}
|
||||||
</Radio>
|
</Radio>
|
||||||
|
|
@ -34,6 +34,8 @@ const phaseList = ref([])
|
||||||
|
|
||||||
const choosePhase = ref('')
|
const choosePhase = ref('')
|
||||||
|
|
||||||
|
const emits = defineEmits(['changeName', 'change'])
|
||||||
|
|
||||||
const fetchBatchData = () => {
|
const fetchBatchData = () => {
|
||||||
getBatchData(userStore.userInfo.batchDataUrl).then((res) => {
|
getBatchData(userStore.userInfo.batchDataUrl).then((res) => {
|
||||||
if (res.code === 200) {
|
if (res.code === 200) {
|
||||||
|
|
@ -65,6 +67,12 @@ onLoad(() => {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
const handleChange = (val: string) => {
|
||||||
|
choosePhase.value = val
|
||||||
|
emits('changeName', val)
|
||||||
|
emits('change', val)
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
|
|
|
||||||
|
|
@ -25,26 +25,32 @@
|
||||||
:title="searchParams.locationName || '省份'"
|
:title="searchParams.locationName || '省份'"
|
||||||
custom-class="flex items-center"
|
custom-class="flex items-center"
|
||||||
>
|
>
|
||||||
<Region
|
<view class="pl-[32rpx] pb-[32rpx]">
|
||||||
:defaultValue="searchParams.locationCode ? [searchParams.locationCode] : []"
|
<Region
|
||||||
:max="1"
|
:defaultValue="searchParams.locationCode ? [searchParams.locationCode] : []"
|
||||||
@changeName="handleRegionChange"
|
:max="1"
|
||||||
@change="handleRegionChangeCode"
|
@changeName="handleRegionChange"
|
||||||
/>
|
@change="handleRegionChangeCode"
|
||||||
|
/>
|
||||||
|
</view>
|
||||||
</drop-menu-item>
|
</drop-menu-item>
|
||||||
<drop-menu-item
|
<drop-menu-item
|
||||||
:key="2"
|
:key="2"
|
||||||
:title="searchParams.searchNature || '层次'"
|
:title="searchParams.searchNature || '层次'"
|
||||||
custom-class="flex items-center"
|
custom-class="flex items-center"
|
||||||
>
|
>
|
||||||
<Nature @changeName="handleNatureChange" />
|
<view class="pl-[32rpx] pb-[32rpx]">
|
||||||
|
<Nature @changeName="handleNatureChange" />
|
||||||
|
</view>
|
||||||
</drop-menu-item>
|
</drop-menu-item>
|
||||||
<drop-menu-item :key="3" title="类别" custom-class="flex items-center">
|
<drop-menu-item :key="3" title="类别" custom-class="flex items-center">
|
||||||
<UniType
|
<view class="pl-[32rpx] pb-[32rpx]">
|
||||||
@change="handleUniTypeChange"
|
<UniType
|
||||||
:max="1"
|
@change="handleUniTypeChange"
|
||||||
:default-value="searchParams.type ? [searchParams.type] : []"
|
:max="1"
|
||||||
/>
|
:default-value="searchParams.type ? [searchParams.type] : []"
|
||||||
|
/>
|
||||||
|
</view>
|
||||||
</drop-menu-item>
|
</drop-menu-item>
|
||||||
</drop-menu>
|
</drop-menu>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -20,38 +20,40 @@
|
||||||
<view class="custom-background h-[200rpx] w-full absolute top-0 left-0 z-[-1]"></view>
|
<view class="custom-background h-[200rpx] w-full absolute top-0 left-0 z-[-1]"></view>
|
||||||
</view>
|
</view>
|
||||||
<drop-menu>
|
<drop-menu>
|
||||||
<drop-menu-item
|
<drop-menu-item :key="1" :title="searchParams.locationName || '省份'">
|
||||||
:key="1"
|
<view class="pl-[32rpx] pb-[32rpx]">
|
||||||
:title="searchParams.locationName || '省份'"
|
<Region
|
||||||
custom-class="flex items-center"
|
:defaultValue="searchParams.locationCode ? [searchParams.locationCode] : []"
|
||||||
>
|
:max="1"
|
||||||
<Region
|
@changeName="handleRegionChange"
|
||||||
:defaultValue="searchParams.locationCode ? [searchParams.locationCode] : []"
|
@change="handleRegionChangeCode"
|
||||||
:max="1"
|
/>
|
||||||
@changeName="handleRegionChange"
|
</view>
|
||||||
@change="handleRegionChangeCode"
|
|
||||||
/>
|
|
||||||
</drop-menu-item>
|
</drop-menu-item>
|
||||||
<drop-menu-item
|
<drop-menu-item
|
||||||
:key="2"
|
:key="2"
|
||||||
:title="searchParams.year || '年份'"
|
:title="searchParams.year || '年份'"
|
||||||
custom-class="flex items-center"
|
custom-class="flex items-center"
|
||||||
>
|
>
|
||||||
<CheckGroup
|
<view class="pl-[32rpx] pb-[32rpx]">
|
||||||
:list="checkYearList"
|
<CheckGroup
|
||||||
:default-value="searchParams.year ? [searchParams.year] : []"
|
:list="checkYearList"
|
||||||
@change="handleYearChange"
|
:default-value="searchParams.year ? [searchParams.year] : []"
|
||||||
labelKey="year"
|
@change="handleYearChange"
|
||||||
valueKey="year"
|
labelKey="year"
|
||||||
:max="1"
|
valueKey="year"
|
||||||
/>
|
:max="1"
|
||||||
|
/>
|
||||||
|
</view>
|
||||||
</drop-menu-item>
|
</drop-menu-item>
|
||||||
<drop-menu-item :key="3" title="类别" custom-class="flex items-center">
|
<drop-menu-item :key="3" title="类别" custom-class="flex items-center">
|
||||||
<UniType
|
<view class="pl-[32rpx] pb-[32rpx]">
|
||||||
@change="handleUniTypeChange"
|
<UniType
|
||||||
:max="1"
|
@change="handleUniTypeChange"
|
||||||
:default-value="searchParams.type ? [searchParams.type] : []"
|
:max="1"
|
||||||
/>
|
:default-value="searchParams.type ? [searchParams.type] : []"
|
||||||
|
/>
|
||||||
|
</view>
|
||||||
</drop-menu-item>
|
</drop-menu-item>
|
||||||
</drop-menu>
|
</drop-menu>
|
||||||
<WXXTable :data="lineList" class="px-[32rpx] mt-[16rpx] pb-safe">
|
<WXXTable :data="lineList" class="px-[32rpx] mt-[16rpx] pb-safe">
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,27 @@
|
||||||
|
<template>
|
||||||
|
<view class="w-full">
|
||||||
|
<!-- 头部 -->
|
||||||
|
<view class="flex gap-[22rpx]">
|
||||||
|
<view v-for="item in columns" :key="item.prop" class="text-[#505050] text-[22rpx]">
|
||||||
|
{{ item.label }}
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view>
|
||||||
|
<view v-for="dataItem in data" :key="dataItem._id" class="flex gap-[22rpx]">
|
||||||
|
<view v-for="item in columns" :key="item.prop" class="text-[#505050] text-[22rpx]">
|
||||||
|
{{ dataItem[item.prop] }}
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup lang="ts">
|
||||||
|
const props = defineProps<{
|
||||||
|
columns: any[]
|
||||||
|
data: any[]
|
||||||
|
}>()
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="scss"></style>
|
||||||
|
|
@ -59,11 +59,8 @@
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<view class="flex gap-[10rpx] px-[32rpx] border-top">
|
<view class="flex gap-[10rpx] px-[32rpx] border-top">
|
||||||
<view
|
<view class="flex justify-between items-center text-[28rpx] line-height-none">
|
||||||
@click="handleShow(3)"
|
全部({{ total }})
|
||||||
class="flex justify-between items-center text-[28rpx] line-height-none"
|
|
||||||
>
|
|
||||||
全部(15)
|
|
||||||
<view class="i-carbon-caret-down"></view>
|
<view class="i-carbon-caret-down"></view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
|
|
@ -88,10 +85,72 @@
|
||||||
:key="item.zp_index"
|
:key="item.zp_index"
|
||||||
v-for="(item, index) in schoolList"
|
v-for="(item, index) in schoolList"
|
||||||
@click="itemClick(item, item.zp_index)"
|
@click="itemClick(item, item.zp_index)"
|
||||||
></view>
|
>
|
||||||
|
<view class="flex items-start p-[32rpx]">
|
||||||
|
<view class="flex flex-col items-center gap-[16rpx]">
|
||||||
|
<image :src="item.logo" mode="scaleToFill" class="w-[112rpx] h-[112rpx]" />
|
||||||
|
<view
|
||||||
|
class="w-[52rpx] h-[52rpx] rounded-[8rpx] font-semibold text-[28rpx] flex items-center justify-center"
|
||||||
|
:style="calcTypeName(item.type).style"
|
||||||
|
>
|
||||||
|
{{ calcTypeName(item.type).text }}
|
||||||
|
</view>
|
||||||
|
<text class="text-[32rpx] font-semibold">
|
||||||
|
{{
|
||||||
|
Math.round(
|
||||||
|
item.items.reduce((a, b) => a + Number(b.percentAge.replace('%', '')), 0) /
|
||||||
|
item.items.length,
|
||||||
|
)
|
||||||
|
}}
|
||||||
|
%
|
||||||
|
</text>
|
||||||
|
</view>
|
||||||
|
<view class="flex flex-col ml-[24rpx] justify-between flex-1">
|
||||||
|
<view class="flex justify-between mb-[14rpx]">
|
||||||
|
<view class="flex justify-between flex-col gap-[6rpx]">
|
||||||
|
<text class="text-[32rpx] font-semibold">{{ item.name }}</text>
|
||||||
|
<text class="text-[22rpx] text-[#505050]">
|
||||||
|
{{ item.city }}·{{ item.educationCategory }}
|
||||||
|
</text>
|
||||||
|
<view class="text-[22rpx] text-[#8F959E] flex items-center">
|
||||||
|
<text class="truncate max-w-[300rpx]" v-show="item.features.length > 0">
|
||||||
|
{{ item.features.slice(0, 3).join('/') }}/
|
||||||
|
</text>
|
||||||
|
<text>排名{{ item.rank }}</text>
|
||||||
|
</view>
|
||||||
|
<view class="text-[22rpx] text-[#1F2329] mt-[8rpx]">
|
||||||
|
<text class="">代码{{ item.collegeCode }}</text>
|
||||||
|
<text>
|
||||||
|
{{ item.year }}计划{{ item.items.reduce((a, b) => a + b.planCount, 0) }}人
|
||||||
|
</text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="flex flex-col gap-[8rpx] items-center">
|
||||||
|
<view
|
||||||
|
class="text-[24rpx] px-[16rpx] py-[12rpx] rounded-[8rpx] border-[2rpx] border-[#1580FF] border-solid"
|
||||||
|
>
|
||||||
|
专业{{ item.items.length }}
|
||||||
|
</view>
|
||||||
|
<text class="text-[20rpx] text-[#8F959E]">已填 1</text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<WXXTable :data="item.childItems">
|
||||||
|
<WXXTableCol label="年份" prop="year" />
|
||||||
|
<WXXTableCol label="录取" prop="planCount" />
|
||||||
|
<WXXTableCol label="线差" prop="lineDiff" />
|
||||||
|
<WXXTableCol label="最低分" prop="score" />
|
||||||
|
<WXXTableCol label="最低位次" prop="rankLine" />
|
||||||
|
<WXXTableCol label="位次差" prop="rankLine">
|
||||||
|
<template>hello</template>
|
||||||
|
</WXXTableCol>
|
||||||
|
</WXXTable>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
<ActionSheet v-model:show="show" :title="actionTitle">
|
<ActionSheet v-model:show="show" :title="actionTitle">
|
||||||
<view class="py-[16rpx]">
|
<view class="px-[36rpx]">
|
||||||
<Region
|
<Region
|
||||||
v-if="actionTitle === '地域'"
|
v-if="actionTitle === '地域'"
|
||||||
width="210rpx"
|
width="210rpx"
|
||||||
|
|
@ -99,12 +158,19 @@
|
||||||
class="px-[32rpx]"
|
class="px-[32rpx]"
|
||||||
@change-name="handleRegionName"
|
@change-name="handleRegionName"
|
||||||
/>
|
/>
|
||||||
<FilterMenu v-if="actionTitle === '院校'" :show-phase="false" />
|
|
||||||
</view>
|
|
||||||
<view class="flex items-center justify-between px-[32rpx]" v-show="actionTitle === '地域'">
|
|
||||||
<view class="cancel-btn" @click="show = false">取消</view>
|
|
||||||
<view class="submit-btn" @click="handleConfirm">确认</view>
|
|
||||||
</view>
|
</view>
|
||||||
|
<FilterMenu
|
||||||
|
v-if="actionTitle === '院校'"
|
||||||
|
:show-phase="false"
|
||||||
|
ref="filterMenuRef"
|
||||||
|
:menuBit="28"
|
||||||
|
/>
|
||||||
|
<template #footer>
|
||||||
|
<view class="flex items-center justify-between gap-[30rpx]">
|
||||||
|
<view class="cancel-btn" @click="show = false">取消</view>
|
||||||
|
<view class="submit-btn" @click="handleConfirm">确认</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
</ActionSheet>
|
</ActionSheet>
|
||||||
</z-paging>
|
</z-paging>
|
||||||
</template>
|
</template>
|
||||||
|
|
@ -115,18 +181,67 @@ import ActionSheet from '@/pages-sub/components/ActionSheet.vue'
|
||||||
import Region from '@/pages-sub/home/components/Region.vue'
|
import Region from '@/pages-sub/home/components/Region.vue'
|
||||||
import FilterMenu from '@/pages-sub/home/components/FilterMenu.vue'
|
import FilterMenu from '@/pages-sub/home/components/FilterMenu.vue'
|
||||||
import Slider from '@/pages-sub/components/Slider.vue'
|
import Slider from '@/pages-sub/components/Slider.vue'
|
||||||
|
import { getPlanProListByFilter } from '@/service/index/api'
|
||||||
|
import WXXTable from '@/pages-sub/components/table/Table.vue'
|
||||||
|
import WXXTableCol from '@/pages-sub/components/table/TableCol.vue'
|
||||||
|
// import DataTable from './DataTable.vue'
|
||||||
|
|
||||||
import { useUserStore } from '@/store/user'
|
import { useUserStore } from '@/store/user'
|
||||||
|
|
||||||
|
const columns = ref([
|
||||||
|
{
|
||||||
|
label: '年份',
|
||||||
|
prop: 'year',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '录取',
|
||||||
|
prop: 'planCount',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '线差',
|
||||||
|
prop: 'lineDiff',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '最低分',
|
||||||
|
prop: 'score',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '最低位次',
|
||||||
|
prop: 'rankLine',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '位次差',
|
||||||
|
prop: 'rankLine',
|
||||||
|
},
|
||||||
|
])
|
||||||
|
|
||||||
const userStore = useUserStore()
|
const userStore = useUserStore()
|
||||||
|
|
||||||
const sliderValue = ref([550, 590])
|
const sliderValue = ref([550, 590])
|
||||||
|
|
||||||
const schoolList = ref([])
|
const schoolList = ref([])
|
||||||
const paging = ref(null)
|
const paging = ref(null)
|
||||||
|
const filterMenuRef = ref(null)
|
||||||
|
|
||||||
|
const location = ref(userStore.userInfo.estimatedAchievement.provinceCode)
|
||||||
|
|
||||||
|
const total = ref(0)
|
||||||
|
|
||||||
const queryList = (page: number, pageSize: number) => {
|
const queryList = (page: number, pageSize: number) => {
|
||||||
paging.value.complete([])
|
getPlanProListByFilter({
|
||||||
|
pageIndex: page,
|
||||||
|
pageSize: pageSize,
|
||||||
|
location: userStore.userInfo.estimatedAchievement.provinceCode,
|
||||||
|
p: userStore.userInfo.estimatedAchievement.sp,
|
||||||
|
subjects: userStore.userInfo.estimatedAchievement.subjectGroup.split(','),
|
||||||
|
score: +userStore.userInfo.estimatedAchievement.expectedScore,
|
||||||
|
batchName: userStore.userInfo.batchName,
|
||||||
|
}).then((resp) => {
|
||||||
|
if (resp.code === 200) {
|
||||||
|
paging.value.complete((resp.result as { rows: any[] }).rows)
|
||||||
|
total.value = (resp.result as { totalRows: number }).totalRows
|
||||||
|
}
|
||||||
|
})
|
||||||
}
|
}
|
||||||
const virtualListChange = (_vList) => {
|
const virtualListChange = (_vList) => {
|
||||||
schoolList.value = _vList
|
schoolList.value = _vList
|
||||||
|
|
@ -146,6 +261,9 @@ const show = ref(false)
|
||||||
const actionTitle = ref('')
|
const actionTitle = ref('')
|
||||||
const handleConfirm = () => {
|
const handleConfirm = () => {
|
||||||
show.value = false
|
show.value = false
|
||||||
|
if (actionTitle.value === '院校') {
|
||||||
|
filterMenuRef.value.handleConfirm()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const handleShow = (type: number) => {
|
const handleShow = (type: number) => {
|
||||||
|
|
@ -165,6 +283,34 @@ const handleRegionName = (val: string[]) => {
|
||||||
const handleSliderChange = (val) => {
|
const handleSliderChange = (val) => {
|
||||||
console.log('滑块值变化:', val)
|
console.log('滑块值变化:', val)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const calcTypeName = (type: number) => {
|
||||||
|
const style = {
|
||||||
|
0: {
|
||||||
|
text: '冲',
|
||||||
|
color: '#EB5241',
|
||||||
|
bgColor: 'rgba(235,82,65,0.15)',
|
||||||
|
},
|
||||||
|
1: {
|
||||||
|
text: '稳',
|
||||||
|
color: '#FA8E23',
|
||||||
|
bgColor: 'rgba(250,142,35,0.15)',
|
||||||
|
},
|
||||||
|
2: {
|
||||||
|
text: '保',
|
||||||
|
color: '#15C496',
|
||||||
|
bgColor: 'rgba(21,196,150,0.15)',
|
||||||
|
},
|
||||||
|
}[type] || { text: '保', color: '#15C496', bgColor: 'rgba(21,196,150,0.15)' }
|
||||||
|
|
||||||
|
return {
|
||||||
|
text: style.text,
|
||||||
|
style: {
|
||||||
|
color: style.color,
|
||||||
|
backgroundColor: style.bgColor,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,16 @@
|
||||||
|
import { getBatchData } from '@/service/index/api'
|
||||||
|
import { useUserStore } from '@/store/user'
|
||||||
|
|
||||||
|
export const getPhaseLine = () => {
|
||||||
|
let phaseLine = ref(0)
|
||||||
|
const userStore = useUserStore()
|
||||||
|
getBatchData(userStore.userInfo.batchDataUrl).then((res) => {
|
||||||
|
if (res.code === 200) {
|
||||||
|
phaseLine.value = res.result[0].batches.find(
|
||||||
|
(item) => item.batch === userStore.userInfo.batchName,
|
||||||
|
).score
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
return { phaseLine }
|
||||||
|
}
|
||||||
|
|
@ -118,13 +118,6 @@
|
||||||
"navigationStyle": "custom"
|
"navigationStyle": "custom"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"path": "home/aiAutoFill/index",
|
|
||||||
"type": "page",
|
|
||||||
"style": {
|
|
||||||
"navigationStyle": "custom"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"path": "home/autoFill/index",
|
"path": "home/autoFill/index",
|
||||||
"type": "page",
|
"type": "page",
|
||||||
|
|
@ -246,6 +239,10 @@
|
||||||
"navigationStyle": "custom"
|
"navigationStyle": "custom"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"path": "home/wishesList/DataTable",
|
||||||
|
"type": "page"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"path": "home/wishesList/index",
|
"path": "home/wishesList/index",
|
||||||
"type": "page",
|
"type": "page",
|
||||||
|
|
@ -275,6 +272,14 @@
|
||||||
"path": "index",
|
"path": "index",
|
||||||
"type": "page"
|
"type": "page"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"path": "aiAutoFill/index",
|
||||||
|
"type": "page",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "AI智能填报"
|
||||||
|
},
|
||||||
|
"needLogin": true
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"path": "rank/index",
|
"path": "rank/index",
|
||||||
"type": "page",
|
"type": "page",
|
||||||
|
|
|
||||||
|
|
@ -25,6 +25,10 @@ export const getUniversityLevel = () => {
|
||||||
return http.get('/api/v1/base/un_level.json', { staticType: 'static' })
|
return http.get('/api/v1/base/un_level.json', { staticType: 'static' })
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export const getUniversityFeature = () => {
|
||||||
|
return http.get('/api/v1/base/features.json', { staticType: 'static' })
|
||||||
|
}
|
||||||
|
|
||||||
export const getRegionInfo = () => {
|
export const getRegionInfo = () => {
|
||||||
return http.get('/api/v1/base/regions.json', { staticType: 'static' })
|
return http.get('/api/v1/base/regions.json', { staticType: 'static' })
|
||||||
}
|
}
|
||||||
|
|
@ -236,3 +240,39 @@ export interface filterParams {
|
||||||
export const getFilterData = (params: filterParams) => {
|
export const getFilterData = (params: filterParams) => {
|
||||||
return http.get('/api/PlanPro/planList', params)
|
return http.get('/api/PlanPro/planList', params)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export interface AutoFillParams {
|
||||||
|
batchName?: null | string
|
||||||
|
endscore?: number | null
|
||||||
|
feature?: string[] | null
|
||||||
|
keyword?: null | string
|
||||||
|
location?: null | string
|
||||||
|
majors?: string[] | null
|
||||||
|
nature?: string[] | null
|
||||||
|
ownership?: string[] | null
|
||||||
|
p?: number | null
|
||||||
|
pageIndex?: number
|
||||||
|
pageSize?: number
|
||||||
|
province?: string[] | null
|
||||||
|
score?: number | null
|
||||||
|
startscore?: number | null
|
||||||
|
subjects?: string[] | null
|
||||||
|
subjectType?: string[] | null
|
||||||
|
type?: number | null
|
||||||
|
}
|
||||||
|
export const getUniversityListByFilter = (params: AutoFillParams) => {
|
||||||
|
return http.post('/api/PlanPro/v2/oneKey', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export const aiPreview = (params: {
|
||||||
|
location: string
|
||||||
|
p: number
|
||||||
|
score: string | number
|
||||||
|
subjects: string[]
|
||||||
|
}) => {
|
||||||
|
return http.post('/api/PlanPro/aiPerview', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export const getPlanProListByFilter = (params: AutoFillParams) => {
|
||||||
|
return http.post('/api/PlanPro/aiUniversity', params)
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -218,7 +218,6 @@ declare module 'vue' {
|
||||||
readonly useSlots: UnwrapRef<typeof import('vue')['useSlots']>
|
readonly useSlots: UnwrapRef<typeof import('vue')['useSlots']>
|
||||||
readonly useTemplateRef: UnwrapRef<typeof import('vue')['useTemplateRef']>
|
readonly useTemplateRef: UnwrapRef<typeof import('vue')['useTemplateRef']>
|
||||||
readonly useUnSortType: UnwrapRef<typeof import('../hooks/useUnSortType')['useUnSortType']>
|
readonly useUnSortType: UnwrapRef<typeof import('../hooks/useUnSortType')['useUnSortType']>
|
||||||
readonly useUniversityLevel: UnwrapRef<typeof import('../hooks/useFilterSchool')['useUniversityLevel']>
|
|
||||||
readonly useUniversityRank: UnwrapRef<typeof import('../hooks/useUnSortType')['useUniversityRank']>
|
readonly useUniversityRank: UnwrapRef<typeof import('../hooks/useUnSortType')['useUniversityRank']>
|
||||||
readonly useUniversityType: UnwrapRef<typeof import('../hooks/useFilterSchool')['useUniversityType']>
|
readonly useUniversityType: UnwrapRef<typeof import('../hooks/useFilterSchool')['useUniversityType']>
|
||||||
readonly useUpload: UnwrapRef<typeof import('../hooks/useUpload')['default']>
|
readonly useUpload: UnwrapRef<typeof import('../hooks/useUpload')['default']>
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,6 @@ interface NavigateToOptions {
|
||||||
"/pages/expert/index/index" |
|
"/pages/expert/index/index" |
|
||||||
"/pages/ucenter/index/index" |
|
"/pages/ucenter/index/index" |
|
||||||
"/pages-sub/customerService/index/index" |
|
"/pages-sub/customerService/index/index" |
|
||||||
"/pages-sub/home/aiAutoFill/index" |
|
|
||||||
"/pages-sub/home/autoFill/index" |
|
"/pages-sub/home/autoFill/index" |
|
||||||
"/pages-sub/home/career/index" |
|
"/pages-sub/home/career/index" |
|
||||||
"/pages-sub/home/career/info" |
|
"/pages-sub/home/career/info" |
|
||||||
|
|
@ -28,9 +27,11 @@ interface NavigateToOptions {
|
||||||
"/pages-sub/home/news/index" |
|
"/pages-sub/home/news/index" |
|
||||||
"/pages-sub/home/news/newsList" |
|
"/pages-sub/home/news/newsList" |
|
||||||
"/pages-sub/home/schoolRank/index" |
|
"/pages-sub/home/schoolRank/index" |
|
||||||
|
"/pages-sub/home/wishesList/DataTable" |
|
||||||
"/pages-sub/home/wishesList/index" |
|
"/pages-sub/home/wishesList/index" |
|
||||||
"/login-sub/index" |
|
"/login-sub/index" |
|
||||||
"/pages-evaluation-sub/index" |
|
"/pages-evaluation-sub/index" |
|
||||||
|
"/pages-evaluation-sub/aiAutoFill/index" |
|
||||||
"/pages-evaluation-sub/rank/index";
|
"/pages-evaluation-sub/rank/index";
|
||||||
}
|
}
|
||||||
interface RedirectToOptions extends NavigateToOptions {}
|
interface RedirectToOptions extends NavigateToOptions {}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue