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 @@
+
+
+
+ {{ item[labelKey] }}
+
+
+
+
+
+
+
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 @@
+
+
+
+
+
+
+ {{ label }}
+
+
+
+
+
+
+
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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ title }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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 @@
+
+
+
+
+
+
+ {{ item }}
+
+
+
+
+
+
+
+
+
+
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',
+ },
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 查询
+
+ 分数范围:{{ betweenScores }}
+
+
+
+
+
+ 查询结果
+
+
+ 位次区间:
+ 21559-22548
+
+
+ 建议位次:
+ 22204
+
+
+ 同分人数:
+ 690
+
+
+
+
+
+
+
+ 暂无数据
+
+
+
+
+ *说明
+
+ 1.位次查询结果根据各省教育考试院发布的一分一段表计算。
+
+
+ 2.在正式填报时,请以各省教育考试院发布的数据为准,本平台数据仅供参考
+
+
+
+
+
+
+
+
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 0000000..0912398
Binary files /dev/null and b/src/pages-evaluation-sub/static/images/no-data.jpg differ
diff --git a/src/pages-evaluation-sub/styles/navbar-background.scss b/src/pages-evaluation-sub/styles/navbar-background.scss
new file mode 100644
index 0000000..5c3dd30
--- /dev/null
+++ b/src/pages-evaluation-sub/styles/navbar-background.scss
@@ -0,0 +1,13 @@
+.custom-background {
+ background-image: linear-gradient(
+ 173deg,
+ rgb(177, 221, 250) 0,
+ rgb(177, 221, 250) 13%,
+ rgba(255, 255, 255, 1) 80%,
+ rgba(255, 255, 255, 1) 100%
+ );
+ background-position: 50% 50%;
+ background-origin: padding-box;
+ background-clip: border-box;
+ background-size: auto auto;
+}
diff --git a/src/pages-evaluation-sub/styles/navbar-custom.scss b/src/pages-evaluation-sub/styles/navbar-custom.scss
new file mode 100644
index 0000000..df3e050
--- /dev/null
+++ b/src/pages-evaluation-sub/styles/navbar-custom.scss
@@ -0,0 +1,3 @@
+:deep(.z-tabs-bottom) {
+ border-bottom: 1px solid #f8f8f8;
+}
diff --git a/src/pages-sub/components/badge/Badge.vue b/src/pages-sub/components/badge/Badge.vue
index 2f1d0f8..8d682e2 100644
--- a/src/pages-sub/components/badge/Badge.vue
+++ b/src/pages-sub/components/badge/Badge.vue
@@ -1,13 +1,16 @@
-
+
{{ 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',
+ },
+}
+
+
- 查扩缩招
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 查询
+
+ 分数范围:{{ betweenScores }}
+
+
+
+
-
+
+
+
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 @@