diff --git a/src/components/home/Banner.vue b/src/components/home/Banner.vue
index d5724ef..154db35 100644
--- a/src/components/home/Banner.vue
+++ b/src/components/home/Banner.vue
@@ -18,6 +18,7 @@
@@ -39,4 +40,10 @@ const navigatorTo = () => {
url: '/pages-sub/home/autoFill/index',
})
}
+
+const navigatorToAi = () => {
+ uni.navigateTo({
+ url: '/pages-evaluation-sub/aiAutoFill/index',
+ })
+}
diff --git a/src/hooks/useFilterSchool.ts b/src/hooks/useFilterSchool.ts
index 9325737..362fa9e 100644
--- a/src/hooks/useFilterSchool.ts
+++ b/src/hooks/useFilterSchool.ts
@@ -1,20 +1,4 @@
-import {
- 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 }
-}
+import { getUniversityType, getRegionInfo, getNature } from '@/service/index/api'
interface Region {
code: string
diff --git a/src/pages-evaluation-sub/aiAutoFill/echartRender.ts b/src/pages-evaluation-sub/aiAutoFill/echartRender.ts
new file mode 100644
index 0000000..c81fb6d
--- /dev/null
+++ b/src/pages-evaluation-sub/aiAutoFill/echartRender.ts
@@ -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)
+ })
+}
diff --git a/src/pages-evaluation-sub/aiAutoFill/index.vue b/src/pages-evaluation-sub/aiAutoFill/index.vue
new file mode 100644
index 0000000..8a419a9
--- /dev/null
+++ b/src/pages-evaluation-sub/aiAutoFill/index.vue
@@ -0,0 +1,105 @@
+
+{
+ style: {
+ navigationBarTitleText: 'AI智能填报',
+ },
+ needLogin: true,
+}
+
+
+
+
+ {{ userInfo.estimatedAchievement.expectedScore }}分{{
+ userInfo.estimatedAchievement.subjectGroup.split(',').join('/')
+ }}
+
+
+
+
+
+
+ {{ pieChartData.reduce((total, cur) => total + cur.value, 0) }}所适合我的大学
+
+
+
+ {{ item.count }}
+ {{ item.name }}
+
+
+
+
+
+
+ 说明
+
+
+
+ 1.
+ 本平台基于历史分数及等效位次进行志愿推荐和风险评估,由于志愿填报本身存在不确定性,请谨慎参考。
+
+
+ 2.在正式填报时,院校/专业名称及代码请务必与官方信息平台核对,若发现差异则以官方数据为准,本平台数据仅供参考。
+
+
+
+
+
+
+ 智能选校
+
+
+
+
+
+
+
+
diff --git a/src/pages-evaluation-sub/index.vue b/src/pages-evaluation-sub/index.vue
index fb9a991..265fd66 100644
--- a/src/pages-evaluation-sub/index.vue
+++ b/src/pages-evaluation-sub/index.vue
@@ -11,8 +11,6 @@ const echarts = require('./uni_modules/lime-echart/static/echarts.min')
const echart = ref(null)
onMounted(() => {
- console.log(echarts, echart.value)
-
echart.value.init(echarts, (chart) => {
let option = {
title: {
diff --git a/src/pages-sub/components/ActionSheet.vue b/src/pages-sub/components/ActionSheet.vue
index 035b713..fedf479 100644
--- a/src/pages-sub/components/ActionSheet.vue
+++ b/src/pages-sub/components/ActionSheet.vue
@@ -10,9 +10,9 @@
-
+
-
+
diff --git a/src/pages-sub/components/Slider.vue b/src/pages-sub/components/Slider.vue
index 28a86c8..249caf6 100644
--- a/src/pages-sub/components/Slider.vue
+++ b/src/pages-sub/components/Slider.vue
@@ -358,7 +358,7 @@ const emitValueChange = () => {
border: 2px solid v-bind('activeColor');
box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
- z-index: 1;
+ z-index: 0;
top: 50%;
transition:
transform 0.2s,
diff --git a/src/pages-sub/components/table/WXXTable.vue b/src/pages-sub/components/table/WXXTable.vue
index 6c6caba..71917bf 100644
--- a/src/pages-sub/components/table/WXXTable.vue
+++ b/src/pages-sub/components/table/WXXTable.vue
@@ -14,6 +14,7 @@
+ {{ $slots.value }}
{{ row }}
diff --git a/src/pages-sub/home/aiAutoFill/index.vue b/src/pages-sub/home/aiAutoFill/index.vue
deleted file mode 100644
index 0661cf7..0000000
--- a/src/pages-sub/home/aiAutoFill/index.vue
+++ /dev/null
@@ -1,10 +0,0 @@
-
-{
- style: {
- navigationStyle: 'custom',
- },
-}
-
-
-
-
diff --git a/src/pages-sub/home/autoFill/index.vue b/src/pages-sub/home/autoFill/index.vue
index 9343874..0b1cfca 100644
--- a/src/pages-sub/home/autoFill/index.vue
+++ b/src/pages-sub/home/autoFill/index.vue
@@ -40,6 +40,23 @@
custom-header-class="text-[36rpx]! text-[#303030]! font-medium!"
>
+
+
+
+
+
+
@@ -61,6 +78,12 @@ const badgeValue = ref(12)
const close = () => {
show.value = false
}
+
+const handleResult = () => {
+ uni.navigateTo({
+ url: `/pages-sub/home/wishesList/index`,
+ })
+}
diff --git a/src/pages-sub/home/wishesList/index.vue b/src/pages-sub/home/wishesList/index.vue
index 05a1450..b91afec 100644
--- a/src/pages-sub/home/wishesList/index.vue
+++ b/src/pages-sub/home/wishesList/index.vue
@@ -59,11 +59,8 @@
-
- 全部(15)
+
+ 全部({{ total }})
@@ -88,10 +85,72 @@
:key="item.zp_index"
v-for="(item, index) in schoolList"
@click="itemClick(item, item.zp_index)"
- >
+ >
+
+
+
+
+ {{ calcTypeName(item.type).text }}
+
+
+ {{
+ Math.round(
+ item.items.reduce((a, b) => a + Number(b.percentAge.replace('%', '')), 0) /
+ item.items.length,
+ )
+ }}
+ %
+
+
+
+
+
+ {{ item.name }}
+
+ {{ item.city }}·{{ item.educationCategory }}
+
+
+
+ {{ item.features.slice(0, 3).join('/') }}/
+
+ 排名{{ item.rank }}
+
+
+ 代码{{ item.collegeCode }}
+
+ {{ item.year }}计划{{ item.items.reduce((a, b) => a + b.planCount, 0) }}人
+
+
+
+
+
+
+ 专业{{ item.items.length }}
+
+ 已填 1
+
+
+
+
+
+
+
+
+
+ hello
+
+
+
+
+
-
+
-
-
-
- 取消
- 确认
+
+
+
+ 取消
+ 确认
+
+
@@ -115,18 +181,67 @@ import ActionSheet from '@/pages-sub/components/ActionSheet.vue'
import Region from '@/pages-sub/home/components/Region.vue'
import FilterMenu from '@/pages-sub/home/components/FilterMenu.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'
+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 sliderValue = ref([550, 590])
const schoolList = ref([])
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) => {
- 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) => {
schoolList.value = _vList
@@ -146,6 +261,9 @@ const show = ref(false)
const actionTitle = ref('')
const handleConfirm = () => {
show.value = false
+ if (actionTitle.value === '院校') {
+ filterMenuRef.value.handleConfirm()
+ }
}
const handleShow = (type: number) => {
@@ -165,6 +283,34 @@ const handleRegionName = (val: string[]) => {
const handleSliderChange = (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,
+ },
+ }
+}