352 lines
13 KiB
Vue
352 lines
13 KiB
Vue
<script setup lang="ts">
|
|
import { ref } from 'vue'
|
|
|
|
interface MajorInfo {
|
|
college: string
|
|
majors: {
|
|
name: string
|
|
degree: string
|
|
duration: number
|
|
category: string
|
|
description: string
|
|
tags: string[]
|
|
}[]
|
|
}
|
|
|
|
const searchKeyword = ref('')
|
|
const selectedCollege = ref('全部')
|
|
const selectedCategory = ref('全部')
|
|
|
|
const colleges = ['全部', '地球科学与技术学院', '石油工程学院', '化学化工学院', '机电工程学院', '储运与建筑工程学院']
|
|
const categories = ['全部', '工学', '理学', '管理学', '文学']
|
|
|
|
const majorsData: MajorInfo[] = [
|
|
{
|
|
college: '地球科学与技术学院',
|
|
majors: [
|
|
{
|
|
name: '勘查技术与工程',
|
|
degree: '工学学士',
|
|
duration: 4,
|
|
category: '工学',
|
|
description: '培养具备地质学、地球物理学等方面的基本理论和基本知识,能在资源勘查、工程勘察等部门从事勘查、设计、施工、管理等方面工作的高级工程技术人才。',
|
|
tags: ['国家级特色专业', '双一流学科'],
|
|
},
|
|
{
|
|
name: '地质学',
|
|
degree: '理学学士',
|
|
duration: 4,
|
|
category: '理学',
|
|
description: '培养具备地质学基本理论、基本知识,掌握地质调查、矿产资源勘查、地质工程设计等基本技能的专门人才。',
|
|
tags: ['省级重点学科'],
|
|
},
|
|
{
|
|
name: '资源勘查工程',
|
|
degree: '工学学士',
|
|
duration: 4,
|
|
category: '工学',
|
|
description: '培养具备扎实的地质学基础,掌握矿产资源勘查与评价的基本方法和技能,能在资源勘查、开发等领域从事技术和管理工作的复合型人才。',
|
|
tags: ['国家特色专业'],
|
|
},
|
|
{
|
|
name: '地球物理学',
|
|
degree: '理学学士',
|
|
duration: 4,
|
|
category: '理学',
|
|
description: '培养具备地球物理学的基础理论和基本技能,能在地球物理勘查、地震监测、工程物探等领域从事技术工作的专门人才。',
|
|
tags: ['省级特色专业'],
|
|
},
|
|
],
|
|
},
|
|
{
|
|
college: '石油工程学院',
|
|
majors: [
|
|
{
|
|
name: '海洋油气工程',
|
|
degree: '工学学士',
|
|
duration: 4,
|
|
category: '工学',
|
|
description: '培养具备海洋油气工程领域的专业知识,能在海洋油气田开发、海洋工程设计等方面工作的高级工程技术人才。',
|
|
tags: ['新兴专业', '国家战略专业'],
|
|
},
|
|
{
|
|
name: '石油工程',
|
|
degree: '工学学士',
|
|
duration: 4,
|
|
category: '工学',
|
|
description: '培养具备石油工程领域的基本理论和专业知识,能在油气田开发、钻井工程、采油工程等领域从事技术和管理工作的复合型人才。',
|
|
tags: ['国家级特色专业', '双一流学科'],
|
|
},
|
|
{
|
|
name: '碳储科学与工程',
|
|
degree: '工学学士',
|
|
duration: 4,
|
|
category: '工学',
|
|
description: '培养具备碳捕集、利用与封存(CCUS)领域的专业知识,能在碳减排、碳交易、碳中和等领域工作的创新型工程技术人才。',
|
|
tags: ['新兴专业', '绿色低碳'],
|
|
},
|
|
],
|
|
},
|
|
{
|
|
college: '化学化工学院',
|
|
majors: [
|
|
{
|
|
name: '化学',
|
|
degree: '理学学士',
|
|
duration: 4,
|
|
category: '理学',
|
|
description: '培养具备化学的基本理论、基本知识和基本技能,能在化学及相关领域从事科研、教学、技术等工作的高级专门人才。',
|
|
tags: ['省级重点学科'],
|
|
},
|
|
{
|
|
name: '化学工程与工艺',
|
|
degree: '工学学士',
|
|
duration: 4,
|
|
category: '工学',
|
|
description: '培养具备化学工程与工艺方面的基本理论和基本知识,能在化工、炼油、冶金、能源等部门从事工程设计、技术开发、生产管理等工作的高级工程技术人才。',
|
|
tags: ['国家级特色专业'],
|
|
},
|
|
{
|
|
name: '应用化学',
|
|
degree: '工学学士',
|
|
duration: 4,
|
|
category: '工学',
|
|
description: '培养具备应用化学方面的基本理论和基本知识,能在化工、材料、医药、环保等领域从事技术开发、生产管理等工作的高级工程技术人才。',
|
|
tags: ['省级特色专业'],
|
|
},
|
|
{
|
|
name: '环境工程',
|
|
degree: '工学学士',
|
|
duration: 4,
|
|
category: '工学',
|
|
description: '培养具备环境工程领域的基本理论和专业知识,能在环境污染防治、环境监测、环境规划等领域从事技术和管理工作的复合型人才。',
|
|
tags: ['绿色低碳', '新兴专业'],
|
|
},
|
|
{
|
|
name: '能源化学工程',
|
|
degree: '工学学士',
|
|
duration: 4,
|
|
category: '工学',
|
|
description: '培养具备能源化学工程领域的专业知识,能在新能源、清洁能源、能源转化等领域从事技术开发和工程设计工作的高级工程技术人才。',
|
|
tags: ['新兴专业', '国家战略专业'],
|
|
},
|
|
],
|
|
},
|
|
{
|
|
college: '机电工程学院',
|
|
majors: [
|
|
{
|
|
name: '安全工程',
|
|
degree: '工学学士',
|
|
duration: 4,
|
|
category: '工学',
|
|
description: '培养具备安全工程领域的专业知识,能在安全监察、安全管理、安全评价、安全设计等领域从事技术和管理工作的复合型人才。',
|
|
tags: ['国家级特色专业'],
|
|
},
|
|
{
|
|
name: '工业设计',
|
|
degree: '工学学士',
|
|
duration: 4,
|
|
category: '工学',
|
|
description: '培养具备工业设计的基本理论和基本技能,能在产品造型设计、视觉传达设计、环境设计等领域从事设计工作的复合型人才。',
|
|
tags: ['省级特色专业'],
|
|
},
|
|
{
|
|
name: '智能制造工程',
|
|
degree: '工学学士',
|
|
duration: 4,
|
|
category: '工学',
|
|
description: '培养具备智能制造领域的基本理论和专业知识,能在智能制造系统设计、智能装备开发、工业互联网等领域从事技术工作的复合型人才。',
|
|
tags: ['新兴专业', '国家战略专业'],
|
|
},
|
|
{
|
|
name: '机械设计制造及其自动化',
|
|
degree: '工学学士',
|
|
duration: 4,
|
|
category: '工学',
|
|
description: '培养具备机械设计制造及其自动化方面的基本理论和基本知识,能在机械制造、自动化控制等领域从事设计、制造、运行管理等工作的高级工程技术人才。',
|
|
tags: ['国家级特色专业'],
|
|
},
|
|
],
|
|
},
|
|
{
|
|
college: '储运与建筑工程学院',
|
|
majors: [
|
|
{
|
|
name: '土木工程',
|
|
degree: '工学学士',
|
|
duration: 4,
|
|
category: '工学',
|
|
description: '培养具备土木工程领域的基本理论和专业知识,能在房屋建筑、地下建筑、桥梁隧道等领域从事设计、施工、管理等工作的高级工程技术人才。',
|
|
tags: ['省级特色专业'],
|
|
},
|
|
{
|
|
name: '工程力学',
|
|
degree: '工学学士',
|
|
duration: 4,
|
|
category: '工学',
|
|
description: '培养具备工程力学的基本理论和基本技能,能在工程结构分析、强度计算、优化设计等领域从事技术工作的专门人才。',
|
|
tags: ['省级重点学科'],
|
|
},
|
|
{
|
|
name: '建筑环境与能源应用工程',
|
|
degree: '工学学士',
|
|
duration: 4,
|
|
category: '工学',
|
|
description: '培养具备建筑环境与能源应用工程领域的专业知识,能在暖通空调、燃气供应、建筑节能等领域从事设计、施工、管理等工作的高级工程技术人才。',
|
|
tags: ['省级特色专业', '绿色低碳'],
|
|
},
|
|
{
|
|
name: '油气储运工程',
|
|
degree: '工学学士',
|
|
duration: 4,
|
|
category: '工学',
|
|
description: '培养具备油气储运工程方面的基本理论和基本知识,能在油气储存、运输、配送等领域从事设计、施工、管理等工作的高级工程技术人才。',
|
|
tags: ['国家级特色专业', '双一流学科'],
|
|
},
|
|
],
|
|
},
|
|
]
|
|
|
|
const filteredMajors = computed(() => {
|
|
let result = majorsData
|
|
|
|
// 按学院筛选
|
|
if (selectedCollege.value !== '全部') {
|
|
result = result.filter(item => item.college === selectedCollege.value)
|
|
}
|
|
|
|
// 展开所有专业
|
|
let allMajors: { college: string, major: any }[] = []
|
|
result.forEach(item => {
|
|
item.majors.forEach(major => {
|
|
allMajors.push({ college: item.college, major })
|
|
})
|
|
})
|
|
|
|
// 按类别筛选
|
|
if (selectedCategory.value !== '全部') {
|
|
allMajors = allMajors.filter(item => item.major.category === selectedCategory.value)
|
|
}
|
|
|
|
// 按关键词搜索
|
|
if (searchKeyword.value) {
|
|
const keyword = searchKeyword.value.toLowerCase()
|
|
allMajors = allMajors.filter(item =>
|
|
item.major.name.toLowerCase().includes(keyword) ||
|
|
item.major.description.toLowerCase().includes(keyword),
|
|
)
|
|
}
|
|
|
|
return allMajors
|
|
})
|
|
</script>
|
|
|
|
<template>
|
|
<div class="rounded-lg bg-white p-5 shadow-sm dark:bg-slate-800">
|
|
<div class="mb-4 flex items-center justify-between">
|
|
<h2 class="border-l-4 border-orange-500 pl-3 text-lg text-gray-900 font-bold dark:text-white">
|
|
开设专业
|
|
</h2>
|
|
</div>
|
|
|
|
<!-- 搜索和筛选 -->
|
|
<div class="mb-5 space-y-3">
|
|
<!-- 搜索框 -->
|
|
<div class="relative">
|
|
<input
|
|
v-model="searchKeyword"
|
|
type="text"
|
|
placeholder="搜索专业名称或描述..."
|
|
class="w-full rounded border border-gray-200 bg-white px-4 py-2 pl-10 text-sm dark:border-slate-600 dark:bg-slate-700 dark:text-white"
|
|
>
|
|
<span class="absolute left-3 top-2.5 text-gray-400">🔍</span>
|
|
</div>
|
|
|
|
<!-- 筛选条件 -->
|
|
<div class="flex flex-wrap gap-3">
|
|
<select
|
|
v-model="selectedCollege"
|
|
class="rounded border border-gray-200 bg-white px-3 py-2 text-sm dark:border-slate-600 dark:bg-slate-700 dark:text-white"
|
|
>
|
|
<option v-for="college in colleges" :key="college" :value="college">
|
|
{{ college }}
|
|
</option>
|
|
</select>
|
|
<select
|
|
v-model="selectedCategory"
|
|
class="rounded border border-gray-200 bg-white px-3 py-2 text-sm dark:border-slate-600 dark:bg-slate-700 dark:text-white"
|
|
>
|
|
<option v-for="category in categories" :key="category" :value="category">
|
|
{{ category }}
|
|
</option>
|
|
</select>
|
|
<div class="ml-auto text-sm text-gray-500 dark:text-gray-400">
|
|
共找到 <span class="font-bold text-orange-600 dark:text-orange-400">{{ filteredMajors.length }}</span> 个专业
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- 专业列表 -->
|
|
<div v-if="filteredMajors.length > 0" class="space-y-4">
|
|
<div
|
|
v-for="(item, idx) in filteredMajors"
|
|
:key="idx"
|
|
class="overflow-hidden rounded-lg border border-gray-200 dark:border-slate-700"
|
|
>
|
|
<div class="bg-gray-50 px-4 py-2 text-sm font-medium text-gray-700 dark:bg-slate-700 dark:text-gray-200">
|
|
{{ item.college }}
|
|
</div>
|
|
<div class="p-4">
|
|
<div class="mb-2 flex items-start justify-between">
|
|
<h3 class="text-base font-bold text-gray-900 dark:text-white">
|
|
{{ item.major.name }}
|
|
</h3>
|
|
<span class="flex-shrink-0 rounded bg-blue-100 px-2 py-1 text-xs text-blue-700 dark:bg-blue-900/30 dark:text-blue-300">
|
|
{{ item.major.degree }}
|
|
</span>
|
|
</div>
|
|
<div class="mb-3 flex gap-2 text-sm text-gray-500 dark:text-gray-400">
|
|
<span>学制:{{ item.major.duration }}年</span>
|
|
<span>类别:{{ item.major.category }}</span>
|
|
</div>
|
|
<p class="mb-3 text-sm text-gray-600 leading-relaxed dark:text-gray-300">
|
|
{{ item.major.description }}
|
|
</p>
|
|
<div class="flex flex-wrap gap-2">
|
|
<span
|
|
v-for="(tag, tagIdx) in item.major.tags"
|
|
:key="tagIdx"
|
|
class="rounded bg-orange-100 px-2 py-0.5 text-xs text-orange-700 dark:bg-orange-900/30 dark:text-orange-300"
|
|
>
|
|
{{ tag }}
|
|
</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- 数据为空提示 -->
|
|
<div v-else class="py-12 text-center text-gray-500 dark:text-gray-400">
|
|
<div class="mb-2 text-4xl">
|
|
📚
|
|
</div>
|
|
<p>未找到符合条件的专业</p>
|
|
<p class="text-xs">
|
|
请尝试调整筛选条件或搜索关键词
|
|
</p>
|
|
</div>
|
|
|
|
<!-- 说明 -->
|
|
<div class="mt-4 rounded-lg bg-orange-50 p-4 text-xs text-gray-600 dark:bg-slate-700/30 dark:text-gray-300">
|
|
<p class="mb-1 font-bold">
|
|
💡 专业说明:
|
|
</p>
|
|
<ul class="list-inside list-disc space-y-1">
|
|
<li>专业设置以教育部最新公布为准</li>
|
|
<li>点击专业标签可查看详细信息</li>
|
|
<li>建议结合个人兴趣和就业前景选择专业</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</template> |