From d1f2b31260375990dc9af577a18bf8e15597cd97 Mon Sep 17 00:00:00 2001 From: xjs Date: Tue, 11 Mar 2025 18:09:06 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=9F=A5=E4=BD=8D=E6=AC=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/home/SubMenu.vue | 2 +- .../components/check-group/CheckGroup.vue | 121 +++++++++ .../components/check-group/Checkbox.vue | 133 +++++++++ .../components/check-group/CheckboxGroup.vue | 69 +++++ .../components/drop-menu/DropMenu.vue | 158 +++++++++++ .../components/drop-menu/DropMenuItem.vue | 202 ++++++++++++++ .../components/navbar/Navbar.vue | 205 ++++++++++++++ .../pickerView/CustomPickerView.vue | 194 +++++++++++++ .../composable/rankAreaEchart.ts | 130 +++++++++ .../rank/components/Region.vue | 35 +++ .../rank/components/UniType.vue | 31 +++ src/pages-evaluation-sub/rank/index.vue | 257 ++++++++++++++++++ .../static/images/no-data.jpg | Bin 0 -> 14449 bytes .../styles/navbar-background.scss | 13 + .../styles/navbar-custom.scss | 3 + src/pages-sub/components/badge/Badge.vue | 39 ++- .../components/check-group/CheckGroup.vue | 39 ++- src/pages-sub/components/table/Table.vue | 60 ++-- src/pages-sub/components/table/TableCol.vue | 56 ++++ src/pages-sub/components/table/useTable.ts | 40 +++ .../home/college/components/Colleges.vue | 23 +- .../college/components/EnrollmentMark.vue | 26 +- .../college/components/EnrollmentPlan.vue | 47 ++-- .../home/college/components/FirstClass.vue | 24 +- .../home/college/components/Profile.vue | 9 +- .../home/college/components/Situation.vue | 45 +-- src/pages-sub/home/college/index.vue | 2 +- src/pages-sub/home/college/info.vue | 13 +- src/pages-sub/home/components/FilterMenu.vue | 45 ++- src/pages-sub/home/components/MessageBox.vue | 9 +- src/pages-sub/home/distinguish/index.vue | 4 +- src/pages-sub/home/expand/index.vue | 170 +++++++++++- src/pages-sub/home/inputScore/index.vue | 6 +- src/pages-sub/home/line/index.vue | 27 +- .../major/components/EmploymentProspects.vue | 16 +- .../home/major/components/MajorBaseInfo.vue | 56 ++-- .../home/major/components/MajorTreeList.vue | 7 +- .../home/major/components/MajorUniversity.vue | 2 +- src/pages-sub/home/major/info.vue | 2 +- src/pages.json | 20 +- src/pages/home/index/index.vue | 2 +- src/service/index/api.ts | 9 + src/types/uni-pages.d.ts | 3 +- src/utils/http.ts | 11 +- 44 files changed, 2136 insertions(+), 229 deletions(-) create mode 100644 src/pages-evaluation-sub/components/check-group/CheckGroup.vue create mode 100644 src/pages-evaluation-sub/components/check-group/Checkbox.vue create mode 100644 src/pages-evaluation-sub/components/check-group/CheckboxGroup.vue create mode 100644 src/pages-evaluation-sub/components/drop-menu/DropMenu.vue create mode 100644 src/pages-evaluation-sub/components/drop-menu/DropMenuItem.vue create mode 100644 src/pages-evaluation-sub/components/navbar/Navbar.vue create mode 100644 src/pages-evaluation-sub/components/pickerView/CustomPickerView.vue create mode 100644 src/pages-evaluation-sub/composable/rankAreaEchart.ts create mode 100644 src/pages-evaluation-sub/rank/components/Region.vue create mode 100644 src/pages-evaluation-sub/rank/components/UniType.vue create mode 100644 src/pages-evaluation-sub/rank/index.vue create mode 100644 src/pages-evaluation-sub/static/images/no-data.jpg create mode 100644 src/pages-evaluation-sub/styles/navbar-background.scss create mode 100644 src/pages-evaluation-sub/styles/navbar-custom.scss create mode 100644 src/pages-sub/components/table/TableCol.vue create mode 100644 src/pages-sub/components/table/useTable.ts diff --git a/src/components/home/SubMenu.vue b/src/components/home/SubMenu.vue index 0d9ba62..aaa150b 100644 --- a/src/components/home/SubMenu.vue +++ b/src/components/home/SubMenu.vue @@ -44,7 +44,7 @@ const subMenus = [ { id: 5, name: '查位次', - path: '/pages-sub/home/rank/index', + path: '/pages-evaluation-sub/rank/index', icon: '/static/images/home/rank.svg', }, // 查扩缩招 diff --git a/src/pages-evaluation-sub/components/check-group/CheckGroup.vue b/src/pages-evaluation-sub/components/check-group/CheckGroup.vue new file mode 100644 index 0000000..cd8d9fd --- /dev/null +++ b/src/pages-evaluation-sub/components/check-group/CheckGroup.vue @@ -0,0 +1,121 @@ + + + + + diff --git a/src/pages-evaluation-sub/components/check-group/Checkbox.vue b/src/pages-evaluation-sub/components/check-group/Checkbox.vue new file mode 100644 index 0000000..39d7bcf --- /dev/null +++ b/src/pages-evaluation-sub/components/check-group/Checkbox.vue @@ -0,0 +1,133 @@ + + + + + diff --git a/src/pages-evaluation-sub/components/check-group/CheckboxGroup.vue b/src/pages-evaluation-sub/components/check-group/CheckboxGroup.vue new file mode 100644 index 0000000..c1194e8 --- /dev/null +++ b/src/pages-evaluation-sub/components/check-group/CheckboxGroup.vue @@ -0,0 +1,69 @@ + + + + + diff --git a/src/pages-evaluation-sub/components/drop-menu/DropMenu.vue b/src/pages-evaluation-sub/components/drop-menu/DropMenu.vue new file mode 100644 index 0000000..87ba2c9 --- /dev/null +++ b/src/pages-evaluation-sub/components/drop-menu/DropMenu.vue @@ -0,0 +1,158 @@ + + + + + diff --git a/src/pages-evaluation-sub/components/drop-menu/DropMenuItem.vue b/src/pages-evaluation-sub/components/drop-menu/DropMenuItem.vue new file mode 100644 index 0000000..6a6c018 --- /dev/null +++ b/src/pages-evaluation-sub/components/drop-menu/DropMenuItem.vue @@ -0,0 +1,202 @@ + + + + + diff --git a/src/pages-evaluation-sub/components/navbar/Navbar.vue b/src/pages-evaluation-sub/components/navbar/Navbar.vue new file mode 100644 index 0000000..b1557e8 --- /dev/null +++ b/src/pages-evaluation-sub/components/navbar/Navbar.vue @@ -0,0 +1,205 @@ + + + + + diff --git a/src/pages-evaluation-sub/components/pickerView/CustomPickerView.vue b/src/pages-evaluation-sub/components/pickerView/CustomPickerView.vue new file mode 100644 index 0000000..86dd6b4 --- /dev/null +++ b/src/pages-evaluation-sub/components/pickerView/CustomPickerView.vue @@ -0,0 +1,194 @@ + + + + + diff --git a/src/pages-evaluation-sub/composable/rankAreaEchart.ts b/src/pages-evaluation-sub/composable/rankAreaEchart.ts new file mode 100644 index 0000000..60d9a3a --- /dev/null +++ b/src/pages-evaluation-sub/composable/rankAreaEchart.ts @@ -0,0 +1,130 @@ +export const initRankAreaEchart = ({ + echart, + echarts, + xAxisData, + yAxisData, + Score, + currentCount, + areaIndex, +}) => { + echart.value.init(echarts, (chart) => { + let option = { + xAxis: { + type: 'category', + data: xAxisData, + axisLine: { + lineStyle: { + color: '#E5E5E5', + }, + }, + axisLabel: { + color: '#999999', + }, + }, + yAxis: { + type: 'value', + show: false, + }, + grid: { + containLabel: false, + }, + series: [ + { + data: yAxisData, + type: 'line', + smooth: 0.6, + smoothMonotone: 'x', + symbol: 'none', + lineStyle: { + width: 2, + color: new echarts.graphic.LinearGradient(0, 0, 1, 0, [ + { + offset: 0, + color: 'rgba(30, 231, 255, 1)', + }, + { + offset: 0.33, + color: 'rgba(36, 154, 255, 1)', + }, + { + offset: 0.66, + color: 'rgba(111, 66, 251, 1)', + }, + { + offset: 1, + color: 'rgba(111, 66, 251, 1)', + }, + ]), + }, + areaStyle: { + opacity: 1, + color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ + { + offset: 0, + color: 'rgba(17,126,255,0.16)', + }, + { + offset: 1, + color: 'rgba(17,128,255,0)', + }, + ]), + }, + markPoint: { + symbol: 'circle', + symbolSize: 8, + itemStyle: { + color: '#4080FF', + borderColor: '#259BFF', + borderWidth: 2, + }, + data: [ + { + xAxis: Score, + yAxis: currentCount, + label: { + show: true, + position: 'top', + color: '#4080FF', + fontSize: 12, + }, + }, + ], + }, + markArea: { + itemStyle: { + color: 'rgba(64, 128, 255, 0.1)', + }, + data: [ + [ + { + xAxis: areaIndex + 30, + }, + { + xAxis: areaIndex - 30, + }, + ], + ], + }, + markLine: { + symbol: ['none', 'none'], + lineStyle: { + type: 'dashed', + color: '#4080FF', + width: 1, + opacity: 0.5, + }, + data: [ + { + xAxis: Score, + label: { + show: false, + }, + }, + ], + }, + }, + ], + } + chart.setOption(option) + }) +} diff --git a/src/pages-evaluation-sub/rank/components/Region.vue b/src/pages-evaluation-sub/rank/components/Region.vue new file mode 100644 index 0000000..4521ccf --- /dev/null +++ b/src/pages-evaluation-sub/rank/components/Region.vue @@ -0,0 +1,35 @@ + + + diff --git a/src/pages-evaluation-sub/rank/components/UniType.vue b/src/pages-evaluation-sub/rank/components/UniType.vue new file mode 100644 index 0000000..b20ae8c --- /dev/null +++ b/src/pages-evaluation-sub/rank/components/UniType.vue @@ -0,0 +1,31 @@ + + + diff --git a/src/pages-evaluation-sub/rank/index.vue b/src/pages-evaluation-sub/rank/index.vue new file mode 100644 index 0000000..df9ca76 --- /dev/null +++ b/src/pages-evaluation-sub/rank/index.vue @@ -0,0 +1,257 @@ + +{ + layout: 'page', + style: { + navigationStyle: 'custom', + }, + usingComponents: { + LEchart: '../uni_modules/lime-echart/components/l-echart/l-echart', + }, + componentPlaceholder: { + LEchart: 'view', + }, +} + + + + + + + diff --git a/src/pages-evaluation-sub/static/images/no-data.jpg b/src/pages-evaluation-sub/static/images/no-data.jpg new file mode 100644 index 0000000000000000000000000000000000000000..09123988ba78c5d8ace41db77e47a134c230f0c4 GIT binary patch literal 14449 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 - + {{ finalContent }} @@ -43,6 +46,14 @@ const props = defineProps({ type: String, default: '#fff', }, + customClass: { + type: String, + default: '', + }, + customContentClass: { + type: String, + default: '', + }, }) // 是否显示徽标 @@ -84,6 +95,10 @@ const badgeStyle = computed(() => { position: relative; display: inline-flex; vertical-align: middle; + // 定义默认变量 + --badge-size: 32rpx; + --badge-font-size: 20rpx; + --badge-dot-size: 16rpx; &__content { position: absolute; @@ -92,21 +107,21 @@ const badgeStyle = computed(() => { transform: translate(50%, -50%); transform-origin: 100% 0%; z-index: 10; - min-width: 32rpx; - height: 32rpx; + min-width: var(--badge-size); + height: var(--badge-size); padding: 0 8rpx; color: #fff; - font-size: 20rpx; - line-height: 32rpx; + font-size: var(--badge-font-size); + line-height: var(--badge-size); white-space: nowrap; text-align: center; background-color: #ff4d4f; - border-radius: 16rpx; + border-radius: calc(var(--badge-size) / 2); box-shadow: 0 0 0 2rpx #fff; &--dot { - width: 16rpx; - height: 16rpx; + width: var(--badge-dot-size); + height: var(--badge-dot-size); padding: 0; min-width: auto; border-radius: 50%; diff --git a/src/pages-sub/components/check-group/CheckGroup.vue b/src/pages-sub/components/check-group/CheckGroup.vue index 38fc909..cd8d9fd 100644 --- a/src/pages-sub/components/check-group/CheckGroup.vue +++ b/src/pages-sub/components/check-group/CheckGroup.vue @@ -7,7 +7,7 @@ cell shape="button" class="custom-checkbox" - custom-label-class="min-w-[152rpx]! h-[76rpx]! rounded-[8rpx]! checkbox-item-border bg-[#f7f8fa]!" + :style="checkboxStyle" > {{ item[labelKey] }} @@ -34,6 +34,14 @@ const props = defineProps({ type: Array, default: () => [], }, + width: { + type: [String, Number], + default: '216rpx', + }, + height: { + type: [String, Number], + default: '60rpx', + }, }) defineOptions({ options: { @@ -61,19 +69,36 @@ watch( defValue.value = [...newVal] }, ) + +// 计算复选框样式 +const checkboxStyle = computed(() => { + const width = typeof props.width === 'number' ? `${props.width}rpx` : props.width + const height = typeof props.height === 'number' ? `${props.height}rpx` : props.height + return { + '--checkbox-width': width, + '--checkbox-height': height, + } +}) diff --git a/src/pages-sub/components/table/TableCol.vue b/src/pages-sub/components/table/TableCol.vue new file mode 100644 index 0000000..147d543 --- /dev/null +++ b/src/pages-sub/components/table/TableCol.vue @@ -0,0 +1,56 @@ + + + + + diff --git a/src/pages-sub/components/table/useTable.ts b/src/pages-sub/components/table/useTable.ts new file mode 100644 index 0000000..f288368 --- /dev/null +++ b/src/pages-sub/components/table/useTable.ts @@ -0,0 +1,40 @@ +import { inject, provide, ref } from 'vue' + +export type Column = { + prop: string + label: string + width?: string + align?: 'left' | 'center' | 'right' +} + +type TableContext = { + columns: ReturnType> + addColumn: (column: Column) => void +} + +const key = Symbol('table') + +export function useTable() { + const columns = ref([]) + + const addColumn = (column: Column) => { + columns.value.push(column) + } + + provide(key, { + columns, + addColumn, + } as TableContext) + + return { + columns, + } +} + +export function useTableInject() { + const table = inject(key) + if (!table) { + throw new Error('useTable must be used within Table component') + } + return table +} diff --git a/src/pages-sub/home/college/components/Colleges.vue b/src/pages-sub/home/college/components/Colleges.vue index 52a4607..c45fcff 100644 --- a/src/pages-sub/home/college/components/Colleges.vue +++ b/src/pages-sub/home/college/components/Colleges.vue @@ -2,20 +2,26 @@ 院系设置 - - + + + + @@ -24,6 +30,7 @@ diff --git a/src/pages-sub/home/expand/index.vue b/src/pages-sub/home/expand/index.vue index a42323e..9fed2dd 100644 --- a/src/pages-sub/home/expand/index.vue +++ b/src/pages-sub/home/expand/index.vue @@ -1,5 +1,171 @@ + +{ + layout: 'page', + style: { + navigationStyle: 'custom', + }, +} + + - + + + diff --git a/src/pages-sub/home/inputScore/index.vue b/src/pages-sub/home/inputScore/index.vue index 81ccf09..c84025f 100644 --- a/src/pages-sub/home/inputScore/index.vue +++ b/src/pages-sub/home/inputScore/index.vue @@ -86,14 +86,14 @@ - 保存 - + diff --git a/src/pages-sub/home/line/index.vue b/src/pages-sub/home/line/index.vue index 3f2fada..d39a256 100644 --- a/src/pages-sub/home/line/index.vue +++ b/src/pages-sub/home/line/index.vue @@ -15,7 +15,7 @@ bg-color="transparent" :bordered="false" left-arrow - :title="`近4年批次线(${userStore.userInfo.estimatedAchievement.provinceName})`" + :title="`近4年批次线(${searchParams.locationName})`" @click-left="navigatorBack" /> @@ -55,11 +55,13 @@ /> - + + + + + + + @@ -73,14 +75,15 @@ import UniType from '@/pages-sub/home/components/UniType.vue' import CheckGroup from '@/pages-sub/components/check-group/CheckGroup.vue' import WXXTable from '@/pages-sub/components/table/Table.vue' +import WXXTableCol from '@/pages-sub/components/table/TableCol.vue' import { getBatchList } from '@/service/index/api' const userStore = useUserStore() const searchParams = ref({ - locationCode: userStore.userInfo.estimatedAchievement.provinceCode, - locationName: userStore.userInfo.estimatedAchievement.provinceName, + locationCode: userStore.userInfo.estimatedAchievement.provinceCode || '370000', + locationName: userStore.userInfo.estimatedAchievement.provinceName || '山东省', year: '', type: '', }) @@ -117,14 +120,6 @@ const handleYearChange = (val) => { getBatchListData() } -const columns = [ - { name: '地区', key: 'province_name', width: '14%' }, - { name: '年份', key: 'year', width: '23%' }, - { name: '类别', key: 'subject_name', width: '23%' }, - { name: '批次', key: 'batch_name', width: '23%' }, - { name: '分数线', key: 'score', width: '17%' }, -] - type LineItem = { batch_id: number batch_name: string diff --git a/src/pages-sub/home/major/components/EmploymentProspects.vue b/src/pages-sub/home/major/components/EmploymentProspects.vue index b9f67c0..972d58d 100644 --- a/src/pages-sub/home/major/components/EmploymentProspects.vue +++ b/src/pages-sub/home/major/components/EmploymentProspects.vue @@ -4,14 +4,14 @@ {{ careerInfo.jobs || '暂无' }} - 查看全部 - - + + @@ -19,14 +19,14 @@ {{ careerInfo.profession || '暂无' }} - 查看全部 - - + + diff --git a/src/pages-sub/home/major/components/MajorBaseInfo.vue b/src/pages-sub/home/major/components/MajorBaseInfo.vue index e11e62f..e774853 100644 --- a/src/pages-sub/home/major/components/MajorBaseInfo.vue +++ b/src/pages-sub/home/major/components/MajorBaseInfo.vue @@ -5,14 +5,14 @@ {{ zyjx || '暂无' }} - 查看全部 - - + + @@ -21,33 +21,34 @@ {{ kyfx.map((item) => item.zymc).join(',') || '暂无' }} - 查看全部 - - + + 课程列表 - + + + + + - 查看全部 - - + + @@ -55,12 +56,14 @@ {{ innerContent }} - + + + > + + + + + @@ -68,6 +71,7 @@