updates
|
|
@ -1,7 +1,7 @@
|
|||
# .env.production 和这个一样
|
||||
# the APP baseURL
|
||||
VITE_APP_BASE_URL = 'http://192.168.0.102:8080/jeecg-boot/'
|
||||
|
||||
# VITE_APP_BASE_URL = 'http://127.0.0.1:8080/jeecg-boot/'
|
||||
VITE_APP_BASE_URL = 'https://www.yitisheng.vip/jbt/'
|
||||
# the token key
|
||||
VITE_APP_TOKEN_KEY = 'your_token_key'
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,12 @@
|
|||
# .env.production 和这个一样
|
||||
# the APP baseURL
|
||||
VITE_APP_BASE_URL = 'https://www.yitisheng.vip/jbt/'
|
||||
|
||||
# the token key
|
||||
VITE_APP_TOKEN_KEY = 'your_token_key'
|
||||
|
||||
# the upload url
|
||||
VITE_UPLOAD_URL = '/'
|
||||
|
||||
# app title
|
||||
VITE_APP_TITLE = '艺体志愿宝'
|
||||
|
|
@ -7,7 +7,7 @@ yarn-error.log*
|
|||
pnpm-debug.log*
|
||||
lerna-debug.log*
|
||||
|
||||
node_modules
|
||||
*node_modules*
|
||||
dist
|
||||
dist-ssr
|
||||
*.local
|
||||
|
|
|
|||
|
|
@ -2,12 +2,14 @@
|
|||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
|
||||
<link rel="icon" type="image/svg+xml" href="/icon.svg" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>Vite + Vue</title>
|
||||
<title></title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="app"></div>
|
||||
<script type="module" src="/src/main.js"></script>
|
||||
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-3298682935034485"
|
||||
crossorigin="anonymous"></script>
|
||||
<script type="module" src="/src/main.ts"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
|||
10
package.json
|
|
@ -9,9 +9,16 @@
|
|||
"preview": "vite preview"
|
||||
},
|
||||
"dependencies": {
|
||||
"@element-plus/icons-vue": "^2.3.1",
|
||||
"@types/echarts": "^4.9.22",
|
||||
"axios": "^1.3.2",
|
||||
"echarts": "^5.5.0",
|
||||
"el-table-infinite-scroll": "^3.0.3",
|
||||
"element-plus": "^2.2.16",
|
||||
"less": "^4.2.0",
|
||||
"lodash": "^4.17.21",
|
||||
"mitt": "^3.0.1",
|
||||
"sass": "^1.75.0",
|
||||
"swiper": "^7.4.1",
|
||||
"vue": "^3.2.37",
|
||||
"vue-i18n": "^9.2.2",
|
||||
|
|
@ -23,6 +30,7 @@
|
|||
"@vitejs/plugin-vue": "^3.1.0",
|
||||
"unplugin-auto-import": "^0.11.5",
|
||||
"unplugin-vue-components": "^0.22.12",
|
||||
"vite": "^3.1.0"
|
||||
"vite": "^3.1.0",
|
||||
"vite-plugin-svg-icons": "^2.0.1"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,566 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="132px" height="132px" viewBox="0 0 132 132" enable-background="new 0 0 132 132" xml:space="preserve"> <image id="image0" width="132" height="132" x="0" y="0"
|
||||
xlink:href="data:image/png;base64,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
|
||||
rkJggg==" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 43 KiB |
128
src/App.vue
|
|
@ -11,66 +11,99 @@
|
|||
</el-footer>
|
||||
</el-container>
|
||||
</div>
|
||||
<div v-if="false">
|
||||
<el-config-provider :locale="elLocale">
|
||||
<div>
|
||||
<a href="https://vitejs.dev" target="_blank">
|
||||
<img src="/vite.svg" class="logo" alt="Vite logo" />
|
||||
</a>
|
||||
<a href="https://vuejs.org/" target="_blank">
|
||||
<img src="./assets/vue.svg" class="logo vue" alt="Vue logo" />
|
||||
</a>
|
||||
</div>
|
||||
<!--登录弹框-->
|
||||
<el-dialog
|
||||
v-model="state.loginDialogVisible"
|
||||
title=" "
|
||||
width="20em"
|
||||
:closeOnClickModal="false"
|
||||
:show-close="false"
|
||||
>
|
||||
<template #header>
|
||||
<div style="display: flex; justify-content: space-between; align-items: center;">
|
||||
<h3 style="margin: 0;">登录</h3>
|
||||
<el-icon @click="closeLoginDialog" class="el-dialog__headerbtn"><Close /></el-icon>
|
||||
</div>
|
||||
</template>
|
||||
<!-- 在这里放置登录内 容 -->
|
||||
<Login/>
|
||||
</el-dialog>
|
||||
|
||||
<el-switch
|
||||
v-model="langSwitch"
|
||||
style="
|
||||
--el-switch-on-color: #13ce66;
|
||||
--el-switch-off-color: #ff4949;
|
||||
margin: 10px auto 20px;
|
||||
display: block;
|
||||
"
|
||||
inline-prompt
|
||||
active-text="中"
|
||||
inactive-text="英"
|
||||
@change="handleChangeI18n"
|
||||
/>
|
||||
|
||||
<el-color-picker v-model="colorPicker" />
|
||||
|
||||
<!-- <Login /> -->
|
||||
<router-view></router-view>
|
||||
</el-config-provider>
|
||||
</div>
|
||||
<!--更改成绩弹框-->
|
||||
<el-dialog
|
||||
v-model="state.editScoreDialogVisible"
|
||||
title=" "
|
||||
width="40em"
|
||||
:closeOnClickModal="false"
|
||||
:show-close="false"
|
||||
>
|
||||
<template #header>
|
||||
<div style="display: flex; justify-content: space-between; align-items: center;">
|
||||
<h3 style="margin: 0;">请填写您的高考信息</h3>
|
||||
<el-icon @click="closeLoginDialog" class="el-dialog__headerbtn"><Close /></el-icon>
|
||||
</div>
|
||||
</template>
|
||||
<!-- 在这里放置登录内 容 -->
|
||||
<EditScoreInfo/>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { ref, computed } from "vue";
|
||||
import { ref, computed ,provide, reactive} from "vue";
|
||||
import { useRouter } from 'vue-router';
|
||||
// i18n
|
||||
import { useI18n } from "vue-i18n";
|
||||
// Element Plus全局配置国际化
|
||||
import zhCn from "element-plus/dist/locale/zh-cn.mjs";
|
||||
import en from "element-plus/dist/locale/en.mjs";
|
||||
import Header from "@/components/Header.vue";
|
||||
|
||||
const state = reactive({
|
||||
loginDialogVisible:false,//登录弹框是否显示
|
||||
editScoreDialogVisible:false,//更改成绩弹框是否显示
|
||||
})
|
||||
const router = useRouter();
|
||||
const { locale } = useI18n({ useScope: "global" }); // vue-i18n提供了一个钩子函数 useI18n(),暴露出locale属性用于切换语言
|
||||
locale.value = localStorage.getItem("locale") || "zh_CN"; // 页面首次加载显示的语言
|
||||
if (localStorage.getItem("locale") === undefined ||localStorage.getItem("locale") === null || localStorage.getItem("locale") === '') {
|
||||
//默认是中文
|
||||
localStorage.setItem("locale",'zh_CN')
|
||||
}
|
||||
locale.value = localStorage.getItem("locale") || "zh_CN"; // 页面首次加载显示的语言
|
||||
const elLocale = computed(() => (locale.value === "zh_CN" ? zhCn : en)); // Element Plus组件国际化
|
||||
// 中英文切换开关
|
||||
const langSwitch = ref(locale.value === "zh_CN");
|
||||
// 中英文切换事件
|
||||
const handleChangeI18n = (val) => {
|
||||
// console.log(val);
|
||||
locale.value = val ? "zh_CN" : "en_US"; // true为中文,false为英文
|
||||
localStorage.setItem("locale", locale.value); // 本地缓存当前页面语言
|
||||
};
|
||||
|
||||
// 取色器
|
||||
const colorPicker = ref("#409EFF");
|
||||
|
||||
//打开登录弹框
|
||||
const openLogin = () => {
|
||||
state.loginDialogVisible=true
|
||||
};
|
||||
provide('openLogin', openLogin);
|
||||
|
||||
//打开更改成绩弹框
|
||||
const openEditScore = () => {
|
||||
state.editScoreDialogVisible=true
|
||||
};
|
||||
provide('openEditScore', openEditScore);
|
||||
|
||||
//关闭登录弹框
|
||||
const closeLoginDialog=()=>{
|
||||
// 在这里可以处理弹出层关闭时的逻辑
|
||||
state.loginDialogVisible = false
|
||||
state.editScoreDialogVisible = false
|
||||
//console.log(router.currentRoute.value.path)
|
||||
// let nowPath = router.currentRoute.value.path
|
||||
// if(nowPath === '/fillVolunteer'){
|
||||
// router.push({path: "/index"});
|
||||
// }else if(nowPath === '/index'){
|
||||
// }
|
||||
}
|
||||
|
||||
|
||||
// Element Plus全局配置国际化
|
||||
//import zhCn from "element-plus/dist/locale/zh-cn.mjs";
|
||||
//import en from "element-plus/dist/locale/en.mjs";
|
||||
// const elLocale = computed(() => (locale.value === "zh_CN" ? zhCn : en)); // Element Plus组件国际化
|
||||
// // 中英文切换开关
|
||||
// const langSwitch = ref(locale.value === "zh_CN");
|
||||
// // 中英文切换事件
|
||||
// const handleChangeI18n = (val) => {
|
||||
// locale.value = val ? "zh_CN" : "en_US"; // true为中文,false为英文
|
||||
// localStorage.setItem("locale", locale.value); // 本地缓存当前页面语言
|
||||
// };
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
|
@ -90,5 +123,6 @@ const colorPicker = ref("#409EFF");
|
|||
margin: 0;
|
||||
padding: 10px 0;
|
||||
width: auto;
|
||||
min-height: 700px;
|
||||
}
|
||||
</style>
|
||||
|
|
|
|||
71
src/App2.vue
|
|
@ -1,71 +0,0 @@
|
|||
<!-- src/App.vue -->
|
||||
<template>
|
||||
<el-config-provider :locale="elLocale">
|
||||
<div>
|
||||
<a href="https://vitejs.dev" target="_blank">
|
||||
<img src="/vite.svg" class="logo" alt="Vite logo" />
|
||||
</a>
|
||||
<a href="https://vuejs.org/" target="_blank">
|
||||
<img src="./assets/vue.svg" class="logo vue" alt="Vue logo" />
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<el-switch
|
||||
v-model="langSwitch"
|
||||
style="
|
||||
--el-switch-on-color: #13ce66;
|
||||
--el-switch-off-color: #ff4949;
|
||||
margin: 10px auto 20px;
|
||||
display: block;
|
||||
"
|
||||
inline-prompt
|
||||
active-text="中"
|
||||
inactive-text="英"
|
||||
@change="handleChangeI18n"
|
||||
/>
|
||||
|
||||
<el-color-picker v-model="colorPicker" />
|
||||
|
||||
<!-- <Login /> -->
|
||||
<router-view></router-view>
|
||||
</el-config-provider>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
// import Login from "./components/Login.vue";
|
||||
import { ref, computed } from "vue";
|
||||
// i18n
|
||||
import { useI18n } from "vue-i18n";
|
||||
// Element Plus全局配置国际化
|
||||
import zhCn from "element-plus/dist/locale/zh-cn.mjs";
|
||||
import en from "element-plus/dist/locale/en.mjs";
|
||||
|
||||
const { locale } = useI18n({ useScope: "global" }); // vue-i18n提供了一个钩子函数 useI18n(),暴露出locale属性用于切换语言
|
||||
locale.value = localStorage.getItem("locale") || "zh_CN"; // 页面首次加载显示的语言
|
||||
const elLocale = computed(() => (locale.value === "zh_CN" ? zhCn : en)); // Element Plus组件国际化
|
||||
// 中英文切换开关
|
||||
const langSwitch = ref(locale.value === "zh_CN");
|
||||
// 中英文切换事件
|
||||
const handleChangeI18n = (val) => {
|
||||
// console.log(val);
|
||||
locale.value = val ? "zh_CN" : "en_US"; // true为中文,false为英文
|
||||
localStorage.setItem("locale", locale.value); // 本地缓存当前页面语言
|
||||
};
|
||||
|
||||
// 取色器
|
||||
const colorPicker = ref("#409EFF");
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.logo {
|
||||
height: 6em;
|
||||
padding: 1.5em;
|
||||
will-change: filter;
|
||||
}
|
||||
.logo:hover {
|
||||
filter: drop-shadow(0 0 2em #646cffaa);
|
||||
}
|
||||
.logo.vue:hover {
|
||||
filter: drop-shadow(0 0 2em #42b883aa);
|
||||
}
|
||||
</style>
|
||||
|
|
@ -0,0 +1,37 @@
|
|||
//注意:Sass定义私有成员是使用-或开头,例如定义$--color-black-10这种是私有变量,使用additionalData: `@use 引入时无法读取
|
||||
//黑色
|
||||
$color-black-10: #f7f8fa;
|
||||
$color-black-20: #f2f3f5;
|
||||
$color-black-23: #eeeff2;
|
||||
$color-black-25: #ebecf0;
|
||||
$color-black-30: #e5e6eb;
|
||||
$color-black-35: #d7dae0;
|
||||
$color-black-40: #c9cdd4;
|
||||
$color-black-45: #b9bdc6;
|
||||
$color-black-50: #a9aeb8;
|
||||
$color-black-60: #86909c;
|
||||
$color-black-70: #6b7785;
|
||||
$color-black-80: #4e5969;
|
||||
$color-black-90: #272e3b;
|
||||
$color-black-100: #1d2129;
|
||||
|
||||
//蓝色
|
||||
$color-blue-05:#eaf1f9;
|
||||
$color-blue-10:#ecf5ff;
|
||||
$color-blue-20:#d9ecff;
|
||||
$color-blue-30:#c6e2ff;
|
||||
$color-blue-40:#a0cfff;
|
||||
$color-blue-50:#79bbff;
|
||||
$color-blue-60:#409eff;
|
||||
$color-blue-70:#337ecc;
|
||||
|
||||
//外边距
|
||||
@for $i from 5 through 50 {
|
||||
.margin-#{$i} {
|
||||
margin: #{$i}px;
|
||||
}
|
||||
}
|
||||
|
||||
.a-button{
|
||||
cursor: pointer;
|
||||
}
|
||||
|
|
@ -1,21 +0,0 @@
|
|||
.wrap {
|
||||
width: 1210px;
|
||||
}
|
||||
|
||||
.flexWrap {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
flex-wrap: wrap
|
||||
}
|
||||
|
||||
.main-container {
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
.cms-back-to-top:before {
|
||||
content: "\e903";
|
||||
}
|
||||
|
||||
.margin-top-5 {
|
||||
margin-top: 5px;
|
||||
}
|
||||
|
|
@ -0,0 +1,421 @@
|
|||
.wrap {
|
||||
//width: 1210px;
|
||||
width: 80%;
|
||||
}
|
||||
// 单行显示
|
||||
.flex{
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.flexWrap{
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
.align-items{
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
//悬浮有小手指
|
||||
.pointer{
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.flex-item-03 {
|
||||
width: 3%;
|
||||
}
|
||||
|
||||
.flex-item-05 {
|
||||
width: 5%;
|
||||
}
|
||||
|
||||
.flex-item-06 {
|
||||
width: 6%;
|
||||
}
|
||||
|
||||
.flex-item-07 {
|
||||
width: 7%;
|
||||
}
|
||||
|
||||
.flex-item-09 {
|
||||
width: 9%;
|
||||
}
|
||||
|
||||
.flex-item-1 {
|
||||
width: 10%;
|
||||
}
|
||||
|
||||
.flex-item-12 {
|
||||
width: 12%;
|
||||
}
|
||||
|
||||
.flex-item-15 {
|
||||
width: 15%;
|
||||
}
|
||||
|
||||
.flex-item-17 {
|
||||
width: 17%;
|
||||
}
|
||||
|
||||
.flex-item-2 {
|
||||
width: 20%;
|
||||
}
|
||||
|
||||
.flex-item-21 {
|
||||
width: 21%;
|
||||
}
|
||||
|
||||
.flex-item-22 {
|
||||
width: 22%;
|
||||
}
|
||||
|
||||
.flex-item-25 {
|
||||
width: 25%;
|
||||
}
|
||||
|
||||
.flex-item-26 {
|
||||
width: 26%;
|
||||
}
|
||||
|
||||
.flex-item-28 {
|
||||
width: 28%;
|
||||
}
|
||||
|
||||
.flex-item-3 {
|
||||
width: 30%;
|
||||
}
|
||||
|
||||
.flex-item-33 {
|
||||
width: 33%;
|
||||
}
|
||||
|
||||
.flex-item-36 {
|
||||
width: 36%;
|
||||
}
|
||||
|
||||
.flex-item-38 {
|
||||
width: 38%;
|
||||
}
|
||||
|
||||
.flex-item-35 {
|
||||
width: 35%;
|
||||
}
|
||||
|
||||
.flex-item-4 {
|
||||
width: 40%;
|
||||
}
|
||||
|
||||
.flex-item-42 {
|
||||
width: 42%;
|
||||
}
|
||||
|
||||
.flex-item-45 {
|
||||
width: 45%;
|
||||
}
|
||||
|
||||
.flex-item-5 {
|
||||
width: 50%;
|
||||
}
|
||||
|
||||
.flex-item-55 {
|
||||
width: 55%;
|
||||
}
|
||||
|
||||
.flex-item-58 {
|
||||
width: 58%;
|
||||
}
|
||||
|
||||
.flex-item-6 {
|
||||
width: 60%;
|
||||
}
|
||||
|
||||
.flex-item-65 {
|
||||
width: 65%;
|
||||
}
|
||||
|
||||
.flex-item-7 {
|
||||
width: 70%;
|
||||
}
|
||||
|
||||
.flex-item-73 {
|
||||
width: 73%;
|
||||
}
|
||||
|
||||
.flex-item-75 {
|
||||
width: 75%;
|
||||
}
|
||||
|
||||
.flex-item-77 {
|
||||
width: 77%;
|
||||
}
|
||||
|
||||
.flex-item-8 {
|
||||
width: 80%;
|
||||
}
|
||||
|
||||
.flex-item-85 {
|
||||
width: 85%;
|
||||
}
|
||||
|
||||
.flex-item-87 {
|
||||
width: 87%;
|
||||
}
|
||||
|
||||
.flex-item-88 {
|
||||
width: 88%;
|
||||
}
|
||||
|
||||
.flex-item-9 {
|
||||
width: 90%;
|
||||
}
|
||||
|
||||
.flex-item-10 {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.main-container {
|
||||
margin: auto auto;
|
||||
}
|
||||
|
||||
.cms-back-to-top:before {
|
||||
content: "\e903";
|
||||
}
|
||||
|
||||
.icon20 {
|
||||
width: 20px;
|
||||
}
|
||||
|
||||
.icon32 {
|
||||
width: 32px;
|
||||
}
|
||||
|
||||
.icon64 {
|
||||
width: 64px;
|
||||
}
|
||||
|
||||
|
||||
//行高
|
||||
.lh-30 {
|
||||
line-height: 30px;
|
||||
}
|
||||
|
||||
.lh-50 {
|
||||
line-height: 50px;
|
||||
}
|
||||
|
||||
/*-----------字体大小start---------*/
|
||||
.font-size-10 {
|
||||
font-size: 10px;
|
||||
}
|
||||
|
||||
.font-size-13 {
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
.font-size-14 {
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.font-size-15 {
|
||||
font-size: 15px;
|
||||
}
|
||||
|
||||
.font-size-16 {
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.font-size-17 {
|
||||
font-size: 17px;
|
||||
}
|
||||
|
||||
.fs-20 {
|
||||
font-size: 20px;
|
||||
}
|
||||
|
||||
.font-size-20 {
|
||||
font-size: 20px;
|
||||
}
|
||||
|
||||
.fs-25 {
|
||||
font-size: 25px;
|
||||
}
|
||||
|
||||
.font-size-25 {
|
||||
font-size: 25px;
|
||||
}
|
||||
|
||||
.font-size-30 {
|
||||
font-size: 30px;
|
||||
}
|
||||
|
||||
.fw-5 {
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.fw-52 {
|
||||
font-weight: 520;
|
||||
}
|
||||
|
||||
.fw-55 {
|
||||
font-weight: 550;
|
||||
}
|
||||
|
||||
.fw-6 {
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
/*-----------字体大小end---------*/
|
||||
|
||||
|
||||
/*-----------外边距start---------*/
|
||||
.m-5 {
|
||||
margin: 5px;
|
||||
}
|
||||
|
||||
.m-10 {
|
||||
margin: 10px;
|
||||
}
|
||||
|
||||
.m-15 {
|
||||
margin: 15px;
|
||||
}
|
||||
|
||||
.m-20 {
|
||||
margin: 20px;
|
||||
}
|
||||
|
||||
.mt-5 {
|
||||
margin-top: 5px;
|
||||
}
|
||||
|
||||
.mt-10 {
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.mt-15 {
|
||||
margin-top: 15px;
|
||||
}
|
||||
|
||||
.mt-20 {
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
.mt-30 {
|
||||
margin-top: 30px;
|
||||
}
|
||||
|
||||
.mb-5 {
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
.mb-10 {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.mb-15 {
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
|
||||
.mb-30 {
|
||||
margin-bottom: 30px;
|
||||
}
|
||||
|
||||
.mr-2 {
|
||||
margin-right: 2px;
|
||||
}
|
||||
|
||||
.mr-5 {
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
.mr-10 {
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
/*-----------外边距end-----------*/
|
||||
/*-----------内边距start-----------*/
|
||||
.pt-5 {
|
||||
padding-top: 5px;
|
||||
}
|
||||
|
||||
.pt-10 {
|
||||
padding-top: 10px;
|
||||
}
|
||||
|
||||
.pb-5 {
|
||||
padding-bottom: 5px;
|
||||
}
|
||||
|
||||
.pb-10 {
|
||||
padding-bottom: 10px;
|
||||
}
|
||||
|
||||
.pl-5 {
|
||||
padding-left: 5px;
|
||||
}
|
||||
|
||||
.pl-10 {
|
||||
padding-left: 10px;
|
||||
}
|
||||
|
||||
.pl-20 {
|
||||
padding-left: 20px;
|
||||
}
|
||||
|
||||
.pr-5 {
|
||||
padding-right: 5px;
|
||||
}
|
||||
|
||||
.pr-10 {
|
||||
padding-right: 10px;
|
||||
}
|
||||
|
||||
.pd-5 {
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
.pd-15 {
|
||||
padding: 15px;
|
||||
}
|
||||
|
||||
.p-20 {
|
||||
padding: 20px;
|
||||
}
|
||||
.pd-0-15{
|
||||
padding: 0 15px;
|
||||
}
|
||||
|
||||
/*-----------内边距end-----------*/
|
||||
/*-----------颜色start-----------*/
|
||||
.black {
|
||||
color: black;
|
||||
}
|
||||
|
||||
.black1 {
|
||||
color: #111111;
|
||||
}
|
||||
|
||||
/*-----------颜色end-----------*/
|
||||
.trans3{
|
||||
transition: all 0.3s;
|
||||
}
|
||||
|
||||
.trans-10 {
|
||||
transition: all 1s;
|
||||
}
|
||||
|
||||
.textCenter {
|
||||
text-align: center;
|
||||
}
|
||||
.showClick{
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
/*通用上边框*/
|
||||
.border-top {
|
||||
border-top: 2px solid #f2f2f2;
|
||||
}
|
||||
|
||||
.border-bottom {
|
||||
border-bottom: 2px solid #f2f2f2;
|
||||
}
|
||||
|
|
@ -0,0 +1,168 @@
|
|||
@use "_global" as *;
|
||||
|
||||
.active-blue{
|
||||
color: $color-blue-60;
|
||||
font-weight: 600;
|
||||
}
|
||||
/*开设院校 start*/
|
||||
//院校列表
|
||||
.schoolList {
|
||||
.schoolItem {
|
||||
cursor: pointer;
|
||||
border-bottom: 1px solid #e4e7ed;
|
||||
padding: 15px 0;
|
||||
|
||||
.right {
|
||||
padding-left: 10px;
|
||||
}
|
||||
|
||||
.schoolName {
|
||||
padding-top: 30px;
|
||||
font-size: 25px;
|
||||
transition: all 0.3s;
|
||||
}
|
||||
|
||||
.schoolName-active {
|
||||
color: $color-blue-60;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.tags {
|
||||
padding-top: 20px;
|
||||
|
||||
.tag {
|
||||
height: 10px;
|
||||
line-height: 10px;
|
||||
border-right: 2px solid #e4e7ed;
|
||||
padding-right: 10px;
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
.tag:last-child {
|
||||
border: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.schoolItem:last-child {
|
||||
border: none;
|
||||
}
|
||||
|
||||
.schoolItem:hover .schoolName {
|
||||
color: $color-blue-60;
|
||||
}
|
||||
}
|
||||
|
||||
/*开设院校 end */
|
||||
|
||||
/**专业列表 start*/
|
||||
.majorList {
|
||||
overflow-y: auto;
|
||||
max-height: 300px;
|
||||
.majorItem {
|
||||
cursor: pointer;
|
||||
// margin: 15px 0;
|
||||
padding: 15px 0;
|
||||
font-size: 15px;
|
||||
border-bottom: 1px solid #ebeef5;
|
||||
}
|
||||
.majorItem:last-child{
|
||||
border-bottom: none;
|
||||
}
|
||||
.majorItem .majorName {
|
||||
font-size: 17px;
|
||||
font-weight: 550;
|
||||
transition: all 0.3s;
|
||||
}
|
||||
.majorItem:hover .majorName {
|
||||
color: $color-blue-60;
|
||||
}
|
||||
}
|
||||
/**专业列表 end*/
|
||||
|
||||
|
||||
/**筛选栏 start*/
|
||||
.filterBody {
|
||||
background-color: white;
|
||||
border-radius: 0 0 5px 0;
|
||||
padding: 15px;
|
||||
color: #86909c;
|
||||
border-bottom: 1px solid #ebeef5;
|
||||
line-height: 35px;
|
||||
}
|
||||
|
||||
.filterBody .clearFilterButton {
|
||||
cursor: pointer;
|
||||
line-height: 50px;
|
||||
color: $color-blue-60;
|
||||
}
|
||||
|
||||
.filterBody .tags {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.filterBody .tags .tag {
|
||||
cursor: pointer;
|
||||
margin-bottom: 10px;
|
||||
margin-right: 15px;
|
||||
color: black;
|
||||
font-size: 14px;
|
||||
padding: 0 7px;
|
||||
border-radius: 4px;
|
||||
border: 1px solid white;
|
||||
}
|
||||
|
||||
.filterBody .tags .tag-active {
|
||||
color: $color-blue-60;
|
||||
border: 1px solid $color-blue-60;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
/**筛选栏 end*/
|
||||
|
||||
/**微信登录二维码 start*/
|
||||
.w-qr-status-text {
|
||||
text-align: center;
|
||||
display: flex;
|
||||
width: 250px;
|
||||
height: 48px;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
color: #aaa;
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.w-qr-dead:before {
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background-color: rgba(0, 0, 0, .9);
|
||||
border-radius: 50%;
|
||||
color: #fff;
|
||||
content: '码已过期,点击刷新';
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.w-qr_message {
|
||||
cursor: pointer;
|
||||
position: absolute;
|
||||
width: 15em;
|
||||
height: 178px;
|
||||
left: 160px;
|
||||
top: 80px;
|
||||
transform: translateX(-50%);
|
||||
background: #fff;
|
||||
opacity: .9;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
/**微信登录二维码 end*/
|
||||
|
|
@ -1,6 +1,4 @@
|
|||
//注意:Sass定义私有成员是使用-或开头,例如定义$--color-black-10这种是私有变量,使用additionalData: `@use 引入时无法读取
|
||||
|
||||
|
||||
//黑色
|
||||
$color-black-10: #f7f8fa;
|
||||
$color-black-20: #f2f3f5;
|
||||
|
|
@ -18,6 +16,7 @@ $color-black-90: #272e3b;
|
|||
$color-black-100: #1d2129;
|
||||
|
||||
//蓝色
|
||||
$color-blue-05:#eaf1f9;
|
||||
$color-blue-10:#ecf5ff;
|
||||
$color-blue-20:#d9ecff;
|
||||
$color-blue-30:#c6e2ff;
|
||||
|
|
|
|||
|
|
@ -0,0 +1,70 @@
|
|||
.border-t{
|
||||
border-top: 1px solid #ebeef5;
|
||||
}
|
||||
.border-b{
|
||||
border-bottom: 1px solid #ebeef5;
|
||||
}
|
||||
.border-l{
|
||||
border-left: 1px solid #ebeef5;
|
||||
}
|
||||
.border-r{
|
||||
border-right: 1px solid #ebeef5;
|
||||
}
|
||||
.border-eb{
|
||||
border: 1px solid #e4e7ed;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.bgd-while{
|
||||
background-color: white;
|
||||
}
|
||||
|
||||
/*-----------颜色start-----------*/
|
||||
.black{
|
||||
color: black;
|
||||
}
|
||||
.black1{
|
||||
color: #111111;
|
||||
}
|
||||
.while{
|
||||
color: #ffffff;
|
||||
}
|
||||
.darkturquoise {
|
||||
color: darkturquoise !important;
|
||||
}
|
||||
|
||||
.blue {
|
||||
color: #4975fd !important;
|
||||
}
|
||||
|
||||
.green {
|
||||
color: #3e8e43 !important;
|
||||
}
|
||||
.lightGreen {
|
||||
color: #85e689 !important;
|
||||
}
|
||||
|
||||
.red {
|
||||
color: red !important;
|
||||
}
|
||||
.redBlack{
|
||||
color: #bb0303 !important;
|
||||
}
|
||||
|
||||
.orange {
|
||||
color: #f9ca1b !important;
|
||||
}
|
||||
|
||||
.redOrange2 {
|
||||
color :#f2891b !important;
|
||||
/*color: #f2891b !important;*/
|
||||
}
|
||||
|
||||
.redOrange {
|
||||
color :#f96543 !important;
|
||||
/*color: #f2891b !important;*/
|
||||
}
|
||||
.royalBlue{
|
||||
color: #4975fd;
|
||||
}
|
||||
/*-----------颜色end-----------*/
|
||||
|
|
@ -0,0 +1 @@
|
|||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1715146263108" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="20749" width="128" height="128" xmlns:xlink="http://www.w3.org/1999/xlink"><path d="M242.190871 182.705394h531.120332v658.589212H242.190871z" fill="#FFFFFF" p-id="20750"></path><path d="M509.985992 288.258124h-10.32498c-18.954622 0-36.855502 7.456929-50.396946 20.998374-13.541444 13.545693-20.998373 31.442324-20.998373 50.401195v103.262539h153.128365V359.657693c-0.004249-39.370888-32.037178-71.399568-71.408066-71.399569z m-1.427652-257.261941c-273.382506 0-495.004149 221.621643-495.004149 495.004149 0 273.386755 221.621643 495.004149 495.004149 495.004149 273.382506 0 495.004149-221.617394 495.00415-495.004149-0.004249-273.382506-221.621643-495.004149-495.00415-495.004149z m205.445843 734.067784H295.655568V462.924481h68.875685V359.657693c0-35.980216 14.085311-69.886938 39.664067-95.465693 25.578755-25.583004 59.485477-39.668315 95.465692-39.668315h10.32498c74.522556 0 135.138257 60.61995 135.138257 135.134008v103.262539h68.879934v302.143735z" fill="#F06262" p-id="20751"></path></svg>
|
||||
|
After Width: | Height: | Size: 1.2 KiB |
|
|
@ -0,0 +1 @@
|
|||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1715144038215" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1680" width="128" height="128" xmlns:xlink="http://www.w3.org/1999/xlink"><path d="M352.814545 385.396364m-33.512727 0a33.512727 33.512727 0 1 0 67.025455 0 33.512727 33.512727 0 1 0-67.025455 0Z" fill="#2ccd1d" p-id="1681"></path><path d="M502.690909 384.465455m-33.512727 0a33.512727 33.512727 0 1 0 67.025454 0 33.512727 33.512727 0 1 0-67.025454 0Z" fill="#2ccd1d" p-id="1682"></path><path d="M576.232727 534.341818m-23.272727 0a23.272727 23.272727 0 1 0 46.545455 0 23.272727 23.272727 0 1 0-46.545455 0Z" fill="#2ccd1d" p-id="1683"></path><path d="M694.458182 536.203636m-23.272727 0a23.272727 23.272727 0 1 0 46.545454 0 23.272727 23.272727 0 1 0-46.545454 0Z" fill="#2ccd1d" p-id="1684"></path><path d="M512 0C229.003636 0 0 229.003636 0 512s229.003636 512 512 512 512-229.003636 512-512S794.996364 0 512 0z m-87.505455 630.225455c-26.996364 0-48.407273-5.585455-75.403636-11.17091l-75.403636 37.236364 21.410909-64.232727c-53.992727-37.236364-85.643636-85.643636-85.643637-145.221818 0-102.4 96.814545-182.458182 215.04-182.458182 105.192727 0 198.283636 64.232727 216.901819 150.807273-6.516364-0.930909-13.963636-0.930909-20.48-0.93091-102.4 0-182.458182 76.334545-182.458182 170.356364 0 15.825455 2.792727 30.72 6.516363 44.683636-7.447273 0-13.963636 0.930909-20.48 0.93091z m314.647273 75.403636l15.825455 53.992727-58.647273-32.581818c-21.410909 5.585455-42.821818 11.170909-64.232727 11.170909-102.4 0-182.458182-69.818182-182.458182-155.461818s80.058182-155.461818 182.458182-155.461818c96.814545 0 182.458182 69.818182 182.458182 155.461818 0 47.476364-31.650909 90.298182-75.403637 122.88z" fill="#2ccd1d" p-id="1685"></path></svg>
|
||||
|
After Width: | Height: | Size: 1.9 KiB |
|
After Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 295 KiB |
|
After Width: | Height: | Size: 2.3 KiB |
|
After Width: | Height: | Size: 2.1 KiB |
|
After Width: | Height: | Size: 2.3 KiB |
|
After Width: | Height: | Size: 2.3 KiB |
|
Before Width: | Height: | Size: 184 KiB |
|
Before Width: | Height: | Size: 156 KiB |
|
After Width: | Height: | Size: 66 KiB |
|
Before Width: | Height: | Size: 2.0 KiB |
|
Before Width: | Height: | Size: 765 B After Width: | Height: | Size: 45 KiB |
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 944 B |
|
After Width: | Height: | Size: 8.9 KiB |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 6.6 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
|
@ -1 +0,0 @@
|
|||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1587309384021" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1846" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M1010.8 628c0-141.2-141.3-256.2-299.9-256.2-168 0-300.3 115.1-300.3 256.2 0 141.4 132.3 256.2 300.3 256.2 35.2 0 70.7-8.9 106-17.7l96.8 53-26.6-88.2c70.9-53.2 123.7-123.7 123.7-203.3zM618 588.8c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40c0 22-17.9 40-40 40z m194.3-0.3c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40z" fill="#00C800" p-id="1847"></path><path d="M366.3 106.9c-194.1 0-353.1 132.3-353.1 300.3 0 97 52.9 176.6 141.3 238.4l-35.3 106.2 123.4-61.9c44.2 8.7 79.6 17.7 123.7 17.7 11.1 0 22.1-0.5 33-1.4-6.9-23.6-10.9-48.3-10.9-74 0-154.3 132.5-279.5 300.2-279.5 11.5 0 22.8 0.8 34 2.1C692 212.6 539.9 106.9 366.3 106.9zM247.7 349.2c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z m246.6 0c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z" fill="#00C800" p-id="1848"></path></svg>
|
||||
|
Before Width: | Height: | Size: 1.2 KiB |
|
|
@ -1 +0,0 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="37.07" height="36" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 198"><path fill="#41B883" d="M204.8 0H256L128 220.8L0 0h97.92L128 51.2L157.44 0h47.36Z"></path><path fill="#41B883" d="m0 0l128 220.8L256 0h-51.2L128 132.48L50.56 0H0Z"></path><path fill="#35495E" d="M50.56 0L128 133.12L204.8 0h-47.36L128 51.2L97.92 0H50.56Z"></path></svg>
|
||||
|
Before Width: | Height: | Size: 496 B |
|
|
@ -0,0 +1,119 @@
|
|||
// src/axios/api.js
|
||||
import ApiConstant from "@/utils/ApiConstant";
|
||||
import axiosInstance from '@/utils/http';
|
||||
|
||||
export const getScore = () =>{
|
||||
axiosInstance({
|
||||
url: ApiConstant.Score.getScore,
|
||||
method: 'get',
|
||||
params: {},
|
||||
showLoading: false,//是否显示加载图标
|
||||
}).then((response) => {
|
||||
return response.data
|
||||
}).then((data) => {
|
||||
if(data.success){
|
||||
//将成绩信息保存到缓存中
|
||||
localStorage.setItem('scoreInfo',JSON.stringify(data.result.scoreInfo))
|
||||
localStorage.setItem('fillVolunteer',JSON.stringify(data.result.fillVolunteer))
|
||||
localStorage.setItem('volunteer',JSON.stringify(data.result.volunteer))
|
||||
}
|
||||
//有数据情况下
|
||||
}).catch((error: any) => {
|
||||
console.log(error);
|
||||
}).finally(() => {
|
||||
});
|
||||
}
|
||||
|
||||
export const registerUser = (params:any) => {
|
||||
return axiosInstance({
|
||||
url: ApiConstant.User.register,
|
||||
method: 'POST',
|
||||
data: params,
|
||||
showLoading:true
|
||||
}).then((response) => {
|
||||
return response.data;
|
||||
}).catch((error: any) => {
|
||||
console.log(error);
|
||||
throw error;
|
||||
});
|
||||
};
|
||||
|
||||
export const passwordChanger = (params:any) => {
|
||||
return axiosInstance({
|
||||
url: ApiConstant.User.passwordChanger,
|
||||
method: 'POST',
|
||||
data: params,
|
||||
showLoading:true
|
||||
}).then((response) => {
|
||||
return response.data;
|
||||
}).catch((error: any) => {
|
||||
console.log(error);
|
||||
throw error;
|
||||
});
|
||||
};
|
||||
|
||||
// // 登录
|
||||
// export const Login = (data) => {
|
||||
// return service({
|
||||
// url: "/login",
|
||||
// method: "post",
|
||||
// data,
|
||||
// });
|
||||
// };
|
||||
|
||||
// // Get请求
|
||||
// export const Get = (url, data) => {
|
||||
// return service({
|
||||
// url,
|
||||
// method: "get",
|
||||
// params: data,
|
||||
// });
|
||||
// };
|
||||
|
||||
// // Delete请求
|
||||
// export const Delete = (url) => {
|
||||
// return service({
|
||||
// url,
|
||||
// method: "delete",
|
||||
// });
|
||||
// };
|
||||
|
||||
// // Post请求
|
||||
// export const Post = (url, data) => {
|
||||
// return service({
|
||||
// url,
|
||||
// method: "post",
|
||||
// data,
|
||||
// });
|
||||
// };
|
||||
|
||||
// // 上传文件请求
|
||||
// export const PostFile = (url, data, onUploadProgress) => {
|
||||
// return service({
|
||||
// url,
|
||||
// method: "post",
|
||||
// data,
|
||||
// headers: {
|
||||
// "Content-Type": "multipart/form-data",
|
||||
// },
|
||||
// onUploadProgress,
|
||||
// });
|
||||
// };
|
||||
|
||||
// // Put请求
|
||||
// export const Put = (url, data) => {
|
||||
// return service({
|
||||
// url,
|
||||
// method: "put",
|
||||
// data,
|
||||
// });
|
||||
// };
|
||||
|
||||
// // Patch请求
|
||||
// export const Patch = (url, data) => {
|
||||
// return service({
|
||||
// url,
|
||||
// method: "patch",
|
||||
// data,
|
||||
// });
|
||||
// };
|
||||
|
|
@ -1,68 +0,0 @@
|
|||
// src/axios/api.js
|
||||
import service from "./request";
|
||||
|
||||
// 登录
|
||||
export const Login = (data) => {
|
||||
return service({
|
||||
url: "/login",
|
||||
method: "post",
|
||||
data,
|
||||
});
|
||||
};
|
||||
|
||||
// Get请求
|
||||
export const Get = (url, data) => {
|
||||
return service({
|
||||
url,
|
||||
method: "get",
|
||||
params: data,
|
||||
});
|
||||
};
|
||||
|
||||
// Delete请求
|
||||
export const Delete = (url) => {
|
||||
return service({
|
||||
url,
|
||||
method: "delete",
|
||||
});
|
||||
};
|
||||
|
||||
// Post请求
|
||||
export const Post = (url, data) => {
|
||||
return service({
|
||||
url,
|
||||
method: "post",
|
||||
data,
|
||||
});
|
||||
};
|
||||
|
||||
// 上传文件请求
|
||||
export const PostFile = (url, data, onUploadProgress) => {
|
||||
return service({
|
||||
url,
|
||||
method: "post",
|
||||
data,
|
||||
headers: {
|
||||
"Content-Type": "multipart/form-data",
|
||||
},
|
||||
onUploadProgress,
|
||||
});
|
||||
};
|
||||
|
||||
// Put请求
|
||||
export const Put = (url, data) => {
|
||||
return service({
|
||||
url,
|
||||
method: "put",
|
||||
data,
|
||||
});
|
||||
};
|
||||
|
||||
// Patch请求
|
||||
export const Patch = (url, data) => {
|
||||
return service({
|
||||
url,
|
||||
method: "patch",
|
||||
data,
|
||||
});
|
||||
};
|
||||
|
|
@ -0,0 +1,160 @@
|
|||
// src/axios/api.js
|
||||
import ApiConstant from "@/utils/ApiConstant";
|
||||
import axiosInstance from '@/utils/http';
|
||||
|
||||
export const getScore = () =>{
|
||||
axiosInstance({
|
||||
url: ApiConstant.Score.getScore,
|
||||
method: 'get',
|
||||
params: {},
|
||||
showLoading: false,//是否显示加载图标
|
||||
}).then((response) => {
|
||||
return response.data
|
||||
}).then((data) => {
|
||||
if(data.success){
|
||||
//将成绩信息保存到缓存中
|
||||
localStorage.setItem('scoreInfo',JSON.stringify(data.result.scoreInfo))
|
||||
localStorage.setItem('fillVolunteer',JSON.stringify(data.result.fillVolunteer))
|
||||
localStorage.setItem('volunteer',JSON.stringify(data.result.volunteer))
|
||||
}
|
||||
//有数据情况下
|
||||
}).catch((error: any) => {
|
||||
console.log(error);
|
||||
}).finally(() => {
|
||||
});
|
||||
}
|
||||
export const getRulesEnrollrobabilityMenuList =async (professionalCategory:string) =>{
|
||||
try {
|
||||
const response = await axiosInstance({
|
||||
url: ApiConstant.Major.rulesEnrollrobabilityMenuList,
|
||||
method: 'get',
|
||||
params: { professionalCategory: professionalCategory },
|
||||
showLoading: false, // 是否显示加载图标
|
||||
});
|
||||
const data = response.data;
|
||||
if (data.success) {
|
||||
// 将成绩信息保存到缓存中
|
||||
return data.result;
|
||||
} else {
|
||||
return [];
|
||||
}
|
||||
} catch (error) {
|
||||
console.log(error);
|
||||
return [];
|
||||
}
|
||||
}
|
||||
|
||||
export const checkPhoneAvailable = (phone: any) => {
|
||||
return axiosInstance({
|
||||
url: ApiConstant.User.checkPhoneAvailable,
|
||||
method: 'get',
|
||||
params: { phone: phone },
|
||||
showLoading: false, // 是否显示加载图标
|
||||
}).then((response) => {
|
||||
return response.data;
|
||||
}).then((data) => {
|
||||
if (data.success) {
|
||||
// 将成绩信息保存到缓存中
|
||||
return data.result;
|
||||
}
|
||||
// 有数据情况下
|
||||
}).catch((error: any) => {
|
||||
console.log(error);
|
||||
throw error; // 抛出错误以便在调用处处理
|
||||
});
|
||||
};
|
||||
|
||||
// 获取资讯信息列表
|
||||
export const getArticleList = async (type:any,pageNum:Number) =>{
|
||||
if(!pageNum){
|
||||
pageNum = 1;
|
||||
}
|
||||
try {
|
||||
const response =await axiosInstance({
|
||||
url: ApiConstant.Article.articlePage,
|
||||
method: 'get',
|
||||
params: {
|
||||
type: type,
|
||||
pageNum:pageNum,
|
||||
pageSize:5
|
||||
},
|
||||
showLoading: false, // 是否显示加载图标
|
||||
});
|
||||
const data = response.data;
|
||||
if (data.success) {
|
||||
// 将成绩信息保存到缓存中
|
||||
return data.result.records;
|
||||
} else {
|
||||
return [];
|
||||
}
|
||||
} catch (error) {
|
||||
console.log(error);
|
||||
return [];
|
||||
}
|
||||
}
|
||||
|
||||
// // 登录
|
||||
// export const Login = (data) => {
|
||||
// return service({
|
||||
// url: "/login",
|
||||
// method: "post",
|
||||
// data,
|
||||
// });
|
||||
// };
|
||||
|
||||
// // Get请求
|
||||
// export const Get = (url, data) => {
|
||||
// return service({
|
||||
// url,
|
||||
// method: "get",
|
||||
// params: data,
|
||||
// });
|
||||
// };
|
||||
|
||||
// // Delete请求
|
||||
// export const Delete = (url) => {
|
||||
// return service({
|
||||
// url,
|
||||
// method: "delete",
|
||||
// });
|
||||
// };
|
||||
|
||||
// // Post请求
|
||||
// export const Post = (url, data) => {
|
||||
// return service({
|
||||
// url,
|
||||
// method: "post",
|
||||
// data,
|
||||
// });
|
||||
// };
|
||||
|
||||
// // 上传文件请求
|
||||
// export const PostFile = (url, data, onUploadProgress) => {
|
||||
// return service({
|
||||
// url,
|
||||
// method: "post",
|
||||
// data,
|
||||
// headers: {
|
||||
// "Content-Type": "multipart/form-data",
|
||||
// },
|
||||
// onUploadProgress,
|
||||
// });
|
||||
// };
|
||||
|
||||
// // Put请求
|
||||
// export const Put = (url, data) => {
|
||||
// return service({
|
||||
// url,
|
||||
// method: "put",
|
||||
// data,
|
||||
// });
|
||||
// };
|
||||
|
||||
// // Patch请求
|
||||
// export const Patch = (url, data) => {
|
||||
// return service({
|
||||
// url,
|
||||
// method: "patch",
|
||||
// data,
|
||||
// });
|
||||
// };
|
||||
|
|
@ -0,0 +1,113 @@
|
|||
// src/axios/api.js
|
||||
import ApiConstant from "@/utils/ApiConstant";
|
||||
import axiosInstance from '@/utils/http';
|
||||
|
||||
//获取院校的专业列表
|
||||
export const getSchoolMajorList =async (params:{schoolCode:string}) =>{
|
||||
let scoreInfo = localStorage.getItem('scoreInfo')
|
||||
let cognitioPolyclinic =JSON.parse(scoreInfo as string).cognitioPolyclinic
|
||||
try {
|
||||
const response = await axiosInstance({
|
||||
url: ApiConstant.Major.schoolMajorList,
|
||||
method: 'get',
|
||||
params: {schoolCode:params.schoolCode,cognitioPolyclinic:cognitioPolyclinic},
|
||||
showLoading: false, // 是否显示加载图标
|
||||
});
|
||||
const data = response.data;
|
||||
if (data.success) {
|
||||
return data.result;
|
||||
} else {
|
||||
return [];
|
||||
}
|
||||
} catch (error) {
|
||||
console.log(error);
|
||||
return [];
|
||||
}
|
||||
}
|
||||
|
||||
//获取院校的专业列表
|
||||
export const getTestCultural =async (params:{schoolCode:string,year:string}) =>{
|
||||
try {
|
||||
const response = await axiosInstance({
|
||||
url: ApiConstant.Major.testCultural,
|
||||
method: 'get',
|
||||
params: {schoolCode:params.schoolCode,year:params.year},
|
||||
showLoading: false, // 是否显示加载图标
|
||||
});
|
||||
const data = response.data;
|
||||
if (data.success) {
|
||||
return data.result;
|
||||
} else {
|
||||
return [];
|
||||
}
|
||||
} catch (error) {
|
||||
console.log(error);
|
||||
return [];
|
||||
}
|
||||
}
|
||||
|
||||
// // 登录
|
||||
// export const Login = (data) => {
|
||||
// return service({
|
||||
// url: "/login",
|
||||
// method: "post",
|
||||
// data,
|
||||
// });
|
||||
// };
|
||||
|
||||
// // Get请求
|
||||
// export const Get = (url, data) => {
|
||||
// return service({
|
||||
// url,
|
||||
// method: "get",
|
||||
// params: data,
|
||||
// });
|
||||
// };
|
||||
|
||||
// // Delete请求
|
||||
// export const Delete = (url) => {
|
||||
// return service({
|
||||
// url,
|
||||
// method: "delete",
|
||||
// });
|
||||
// };
|
||||
|
||||
// // Post请求
|
||||
// export const Post = (url, data) => {
|
||||
// return service({
|
||||
// url,
|
||||
// method: "post",
|
||||
// data,
|
||||
// });
|
||||
// };
|
||||
|
||||
// // 上传文件请求
|
||||
// export const PostFile = (url, data, onUploadProgress) => {
|
||||
// return service({
|
||||
// url,
|
||||
// method: "post",
|
||||
// data,
|
||||
// headers: {
|
||||
// "Content-Type": "multipart/form-data",
|
||||
// },
|
||||
// onUploadProgress,
|
||||
// });
|
||||
// };
|
||||
|
||||
// // Put请求
|
||||
// export const Put = (url, data) => {
|
||||
// return service({
|
||||
// url,
|
||||
// method: "put",
|
||||
// data,
|
||||
// });
|
||||
// };
|
||||
|
||||
// // Patch请求
|
||||
// export const Patch = (url, data) => {
|
||||
// return service({
|
||||
// url,
|
||||
// method: "patch",
|
||||
// data,
|
||||
// });
|
||||
// };
|
||||
|
|
@ -0,0 +1,315 @@
|
|||
<template>
|
||||
<div class="container">
|
||||
<el-form :model="form" :rules="rules" ref="formRef" label-width="120px">
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="考生省份" prop="province">
|
||||
<el-select v-model="form.province" placeholder="请选择省份">
|
||||
<el-option v-for="(item,index) in state.provinceList" :key="index" :label="item.name" :value="item.code"/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="考生科目" prop="cognitioPolyclinic">
|
||||
<el-radio-group v-model="form.cognitioPolyclinic">
|
||||
<el-radio label="文科">文科</el-radio>
|
||||
<el-radio label="理科">理科</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="专业类别" prop="professionalCategory">
|
||||
<el-select v-model="form.professionalCategory" placeholder="请选择专业类别" @change="handleProfessionalCateGoryChange">
|
||||
<el-option v-for="(item,index) in state.professionalCategoryList" :key="index" :label="item.label" :value="item.value"/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12" v-if="state.subjectsList && state.subjectsList.length>0">
|
||||
<el-form-item label="专业选课" prop="subjects">
|
||||
<el-select v-model="form.subjects" multiple @change="handleSubjectsSelectChange">
|
||||
<el-option v-for="(item,index) in state.subjectsList" :key="index" :label="item.label" :value="item.value" :disabled="item.exclude && form.subjects.includes(item.exclude)"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="20" v-if="form.subjects && form.subjects.length>0">
|
||||
<el-col :span="12" v-for="(item,index) in form.subjects" :key="index">
|
||||
<!--音乐-->
|
||||
<el-form-item label="音表声乐" :prop="convertSubjectToField(item)" v-if="item ==='音乐表演声乐'">
|
||||
<el-input type="number" min="0" max="300" v-model="form.yybysy" @input="validateInput(item)" :placeholder="'请输入'+item"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="音表器乐" :prop="convertSubjectToField(item)" v-else-if="item ==='音乐表演器乐'">
|
||||
<el-input type="number" min="0" max="300" v-model="form.yybyqy" @input="validateInput(item)" :placeholder="'请输入'+item"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item :label="item" :prop="convertSubjectToField(item)" v-else-if="item ==='音乐教育'">
|
||||
<el-input type="number" min="0" max="300" v-model="form.yyjy" @input="validateInput(item)" :placeholder="'请输入'+item"></el-input>
|
||||
</el-form-item>
|
||||
<!--表演-->
|
||||
<el-form-item :label="item" :prop="convertSubjectToField(item)" v-else-if="item ==='服装表演'">
|
||||
<el-input type="number" min="0" max="300" v-model="form.fzby" @input="validateInput(item)" :placeholder="'请输入'+item"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item :label="item" :prop="convertSubjectToField(item)" v-else-if="item ==='戏剧影视导演'">
|
||||
<el-input type="number" min="0" max="300" v-model="form.xjysdy" @input="validateInput(item)" :placeholder="'请输入'+item"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item :label="item" :prop="convertSubjectToField(item)" v-else-if="item ==='戏剧影视表演'">
|
||||
<el-input type="number" min="0" max="300" v-model="form.xjysby" @input="validateInput(item)" :placeholder="'请输入'+item"></el-input>
|
||||
</el-form-item>
|
||||
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12" v-if="form.professionalCategory!=='表演类'">
|
||||
<el-form-item :label="dynamicProfessionalCategoryLabel()" prop="professionalScore">
|
||||
<el-input type="number" min="0" max="300" v-model="form.professionalScore" :placeholder="'请输入'+dynamicProfessionalCategoryLabel()"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="文化成绩" prop="culturalScore">
|
||||
<el-input type="number" min="0" max="300" v-model="form.culturalScore" placeholder="请输入文化成绩"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
</el-row>
|
||||
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="语文成绩" prop="chineseScore">
|
||||
<el-input type="number" min="0" max="300" v-model="form.chineseScore" placeholder="请输入语文成绩"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="英语成绩" prop="englishScore">
|
||||
<el-input type="number" min="0" max="300" v-model="form.englishScore" placeholder="请输入英语成绩"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-form-item>
|
||||
<el-button style="width: 300px;" type="primary" @click="submitForm">确定</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { onMounted, reactive, ref} from 'vue';
|
||||
import StaticConstant from '@/utils/StaticConstant';
|
||||
import {SubjectsEntity} from '@/types/index'
|
||||
import ApiConstant from "@/utils/ApiConstant";
|
||||
import axiosInstance from '@/utils/http';
|
||||
import { getScore } from '@/axios/api';
|
||||
import { ElMessage } from "element-plus";
|
||||
import { useRouter } from "vue-router";
|
||||
const router = useRouter();
|
||||
const state= reactive({
|
||||
provinceList:[
|
||||
{name: "河南", code: "河南"},
|
||||
],
|
||||
professionalCategoryList:StaticConstant.professionalCategoryList,
|
||||
subjectsList:[] as Array<SubjectsEntity>,//专业选课
|
||||
})
|
||||
const form = reactive({
|
||||
province: '河南',//省份
|
||||
cognitioPolyclinic: '文科',//科类
|
||||
professionalCategory: '',//报考方向
|
||||
culturalScore: '',//文化分
|
||||
professionalScore: '',//统考分
|
||||
chineseScore: '',//语文成绩
|
||||
englishScore: '',//英语成绩
|
||||
subjects:[] as Array<string>,//专业选课
|
||||
yybysy:'',//音乐表演声乐
|
||||
yybyqy:'',//音乐表演器乐
|
||||
yyjy:'',//音乐教育
|
||||
fzby:'',//服装表演
|
||||
xjysdy:'',//戏剧影视导演
|
||||
xjysby:'',//戏剧影视表演
|
||||
});
|
||||
const rules = ref({})
|
||||
|
||||
const formRef = ref<HTMLFormElement | any>({});
|
||||
|
||||
const submitForm = () => {
|
||||
formRef.value.validate((valid: boolean) => {
|
||||
if(!valid){
|
||||
// 表单验证失败
|
||||
console.log('Validation failed');
|
||||
return false
|
||||
}
|
||||
// 表单验证通过,可以提交表单数据
|
||||
let submitForm = {
|
||||
...form,
|
||||
professionalCategoryChildren: form.subjects.join(',')
|
||||
}
|
||||
console.log('Form submitted:', submitForm);
|
||||
axiosInstance({
|
||||
url: ApiConstant.Score.scoreSave,
|
||||
method: 'post',
|
||||
data: submitForm,
|
||||
/*showLoading: false,//是否显示加载图标*/
|
||||
}).then((response) => {
|
||||
return response.data
|
||||
}).then((data) => {
|
||||
console.log('qqq')
|
||||
console.log(data)
|
||||
if(data.success){
|
||||
ElMessage.success('保存成功');
|
||||
getScore()
|
||||
setTimeout(function(){
|
||||
router.push({
|
||||
path: "/index"
|
||||
});
|
||||
window.location.reload()
|
||||
}, 1000);
|
||||
}else{
|
||||
ElMessage.error(data.message);
|
||||
}
|
||||
//有数据情况下
|
||||
}).catch((error: any) => {
|
||||
console.log(error);
|
||||
}).finally(() => {
|
||||
});
|
||||
|
||||
});
|
||||
};
|
||||
|
||||
onMounted(()=>{
|
||||
try {
|
||||
reloadScore()
|
||||
} catch (error) {
|
||||
getScore()
|
||||
}
|
||||
})
|
||||
|
||||
function reloadScore(){
|
||||
let scoreInfoStr = localStorage.getItem('scoreInfo')
|
||||
if(scoreInfoStr){
|
||||
let scoreInfo = JSON.parse(scoreInfoStr)
|
||||
form.professionalCategory = scoreInfo.professionalCategory
|
||||
form.cognitioPolyclinic = scoreInfo.cognitioPolyclinic
|
||||
form.province = scoreInfo.province
|
||||
form.culturalScore = scoreInfo.culturalScore
|
||||
form.professionalScore = scoreInfo.professionalScore
|
||||
form.chineseScore = scoreInfo.chineseScore
|
||||
form.englishScore = scoreInfo.englishScore
|
||||
handleProfessionalCateGoryChange()
|
||||
if(scoreInfo.professionalCategoryChildren){
|
||||
form.subjects = scoreInfo.professionalCategoryChildren.split(',')
|
||||
}
|
||||
form.yybysy = scoreInfo.yybysy
|
||||
form.yybyqy = scoreInfo.yybyqy
|
||||
form.yyjy = scoreInfo.yyjy
|
||||
form.fzby = scoreInfo.fzby
|
||||
form.xjysdy = scoreInfo.xjysdy
|
||||
form.xjysby = scoreInfo.xjysby
|
||||
console.log(scoreInfo)
|
||||
}
|
||||
|
||||
reloadRules()
|
||||
}
|
||||
|
||||
//切换专业类别事件
|
||||
const handleProfessionalCateGoryChange=()=>{
|
||||
form.subjects = []
|
||||
state.subjectsList = []
|
||||
//判断选择专业是不是有专业选课
|
||||
state.professionalCategoryList.forEach(item=>{
|
||||
if(item.value === form.professionalCategory && item.children){
|
||||
//有专业选课
|
||||
state.subjectsList = item.children as Array<SubjectsEntity>
|
||||
}
|
||||
})
|
||||
reloadRules()
|
||||
}
|
||||
|
||||
//选择专业选课事件
|
||||
const handleSubjectsSelectChange=(value:string[])=>{
|
||||
if (value.includes('a')) {
|
||||
form.subjects = value.filter((item) => item !== 'b');
|
||||
} else if (value.includes('b')) {
|
||||
form.subjects = value.filter((item) => item !== 'a');
|
||||
}
|
||||
reloadRules()
|
||||
}
|
||||
|
||||
//动态更改统考成绩文本
|
||||
const dynamicProfessionalCategoryLabel=()=>{
|
||||
if(form.professionalCategory === '音乐类'){
|
||||
return "主项成绩";
|
||||
}
|
||||
return "统考成绩";
|
||||
}
|
||||
|
||||
// 将专业选课转换成字段
|
||||
const convertSubjectToField = (subjects: string) => {
|
||||
switch (subjects) {
|
||||
case '音乐表演声乐':
|
||||
return 'yybysy';
|
||||
case '音乐表演器乐':
|
||||
return 'yybyqy';
|
||||
case '音乐教育':
|
||||
return 'yyjy';
|
||||
case '服装表演':
|
||||
return 'fzby';
|
||||
case '戏剧影视导演':
|
||||
return 'xjysdy';
|
||||
case '戏剧影视表演':
|
||||
return 'xjysby';
|
||||
}
|
||||
}
|
||||
const validateInput = (subjects:any)=>{
|
||||
if(subjects === '音乐表演声乐'){
|
||||
form.yybysy = form.yybysy.replace(/\D/g, '')
|
||||
}else if(subjects === '音乐表演器乐'){
|
||||
form.yybyqy = form.yybyqy.replace(/\D/g, '')
|
||||
}else if(subjects === '音乐教育'){
|
||||
form.yyjy = form.yyjy.replace(/\D/g, '')
|
||||
}else if(subjects === '服装表演'){
|
||||
form.fzby = form.fzby.replace(/\D/g, '')
|
||||
}else if(subjects === '戏剧影视导演'){
|
||||
form.xjysdy = form.xjysdy.replace(/\D/g, '')
|
||||
}else if(subjects === '戏剧影视表演'){
|
||||
form.xjysby = form.xjysby.replace(/\D/g, '')
|
||||
}
|
||||
}
|
||||
|
||||
function reloadRules(){
|
||||
if(state.subjectsList){
|
||||
let ru = {
|
||||
province: [{ required: true, message: '请选择省份', trigger: 'change' }],
|
||||
professionalCategory: [{ required: true, message: '请选择专业类别', trigger: 'change' }],
|
||||
cognitioPolyclinic: [{ required: true, message: '请选择考生科目', trigger: 'change' }],
|
||||
professionalScore: [{ required: true, message: '请输入'+dynamicProfessionalCategoryLabel(), trigger: 'blur' }],
|
||||
culturalScore: [{ required: true, message: '请输入文化成绩', trigger: 'blur' }],
|
||||
chineseScore: [{ required: true, message: '请输入语文成绩', trigger: 'blur' }],
|
||||
englishScore: [{ required: true, message: '请输入英语成绩', trigger: 'blur' }],
|
||||
subjects: [{ required: true, message: '请选择专业选课', trigger: 'change' }],
|
||||
}
|
||||
if(form.subjects && form.subjects.length>0){
|
||||
form.subjects.forEach(item=>{
|
||||
ru[convertSubjectToField(item)] = [{ required: true, message: '请输入'+item, trigger: 'change' }]
|
||||
})
|
||||
}
|
||||
rules.value = ru
|
||||
}else{
|
||||
rules.value = {
|
||||
province: [{ required: true, message: '请选择省份', trigger: 'change' }],
|
||||
professionalCategory: [{ required: true, message: '请选择专业类别', trigger: 'change' }],
|
||||
cognitioPolyclinic: [{ required: true, message: '请选择考生科目', trigger: 'change' }],
|
||||
professionalScore: [{ required: true, message: '请输入'+dynamicProfessionalCategoryLabel(), trigger: 'blur' }],
|
||||
culturalScore: [{ required: true, message: '请输入文化成绩', trigger: 'blur' }],
|
||||
chineseScore: [{ required: true, message: '请输入语文成绩', trigger: 'blur' }],
|
||||
englishScore: [{ required: true, message: '请输入英语成绩', trigger: 'blur' }],
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.container {
|
||||
margin: 20px;
|
||||
}
|
||||
:deep(.el-form-item__content){
|
||||
max-width: 80%;
|
||||
}
|
||||
</style>
|
||||
|
|
@ -2,18 +2,29 @@
|
|||
<template>
|
||||
<div class="footer">
|
||||
<div class="message"></div>
|
||||
<div class="copyright">版权所有<em>©xxx.com</em>
|
||||
<router-link tag="a" :to="'/feedback'" target="_blank">联系我们</router-link>
|
||||
<div class="copyright">
|
||||
</div>
|
||||
|
||||
<div class="copyright">
|
||||
<a href="https://beian.mps.gov.cn/#/query/websearch?code=41140002800770" rel="noreferrer" target="_blank">
|
||||
<img src="@/assets/images/1d192ed1f2bd061200df8b9122a0fd9.png" style="width: 16px;height: 16px;"/>
|
||||
豫公网安备41140002000770号</a>
|
||||
<a href="https://beian.miit.gov.cn/" target="_Blank">豫ICP备2024048033号</a>
|
||||
</div>
|
||||
<div class="copyright">版权所有:<em style="margin: 0 5px;">河南及第生涯信息科技有限公司</em>
|
||||
<!-- <router-link tag="a" :to="'/feedback'" target="_blank">联系我们</router-link> -->
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<style scoped lang="scss">
|
||||
/* 页脚 border-top: 1px solid #e1e1e1; */
|
||||
.footer {
|
||||
margin: 0 auto;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
width: 100%;
|
||||
margin: 0 auto;
|
||||
background: #fff;
|
||||
height: 90px;
|
||||
box-shadow: 0 0 3px 0 rgba(0, 0, 0, .02), 0 4px 8px 0 rgba(0, 0, 0, .02);
|
||||
|
|
@ -40,10 +51,9 @@
|
|||
}
|
||||
|
||||
.copyright {
|
||||
margin: 0 auto;
|
||||
margin: 5px auto;
|
||||
color: $color-black-60;
|
||||
text-align: center;
|
||||
margin-top: 18px;
|
||||
font-size: 14px;
|
||||
|
||||
em {
|
||||
|
|
|
|||
|
|
@ -3,6 +3,9 @@
|
|||
:class="{ 'collapsed': !state.isNavVisible && state.scrolledPastThreshold, 'animatable': state.isNavVisible || !state.isNavVisible }">
|
||||
<div class="box">
|
||||
<!--导航栏-->
|
||||
<div style="padding: 10px 0">
|
||||
<img :src="logo" alt="" style="width:130px;height: 36px;"/>
|
||||
</div>
|
||||
<div class="nav">
|
||||
<ul>
|
||||
<li v-for="column in state.columnList" :key="column.id">
|
||||
|
|
@ -14,7 +17,7 @@
|
|||
</div>
|
||||
<!--登录菜单项-->
|
||||
<div class="menu">
|
||||
<ul>
|
||||
<ul v-if="!state.userInfo || state.userInfo.id===null || !state.token">
|
||||
<li>
|
||||
<router-link tag="a" :to="'/register'">注册</router-link>
|
||||
</li>
|
||||
|
|
@ -22,67 +25,173 @@
|
|||
<a @click="openLogin" class="a-button">登录</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul v-else>
|
||||
<!--有成绩-->
|
||||
<li v-if="state.scoreInfo.culturalScore">
|
||||
<div class="flexWrap">
|
||||
<span class="pr-10 mr-10" style="border-right:2px solid #e4e7ed;">
|
||||
{{ state.scoreInfo.professionalCategory }}
|
||||
</span>
|
||||
<span v-if="state.scoreInfo.professionalCategory==='音乐类'">
|
||||
<span class="pr-10 mr-10" style="border-right:2px solid #e4e7ed;" v-show="state.scoreInfo.yybysy && state.scoreInfo.yybysy!==0">
|
||||
声乐分·{{ state.scoreInfo.yybysy }}
|
||||
</span>
|
||||
<span class="pr-10 mr-10" style="border-right:2px solid #e4e7ed;" v-show="state.scoreInfo.yybysy && state.scoreInfo.yybyqy!==0">
|
||||
器乐分·{{ state.scoreInfo.yybyqy }}
|
||||
</span>
|
||||
<span class="pr-10 mr-10" style="border-right:2px solid #e4e7ed;" v-show="state.scoreInfo.yybysy && state.scoreInfo.yyjy!==0">
|
||||
音教分·{{ state.scoreInfo.yyjy }}
|
||||
</span>
|
||||
</span>
|
||||
<span v-if="state.scoreInfo.professionalCategory==='表演类'">
|
||||
<span class="pr-10 mr-10" style="border-right:2px solid #e4e7ed;" v-show="state.scoreInfo.xjysdy && state.scoreInfo.xjysdy!==0">
|
||||
戏导分·{{ state.scoreInfo.xjysdy }}
|
||||
</span>
|
||||
<span class="pr-10 mr-10" style="border-right:2px solid #e4e7ed;" v-show="state.scoreInfo.xjysby && state.scoreInfo.xjysby!==0">
|
||||
戏表分·{{ state.scoreInfo.xjysby }}
|
||||
</span>
|
||||
<span class="pr-10 mr-10" style="border-right:2px solid #e4e7ed;" v-show="state.scoreInfo.fzby && state.scoreInfo.fzby!==0">
|
||||
服装表演分·{{ state.scoreInfo.fzby }}
|
||||
</span>
|
||||
</span>
|
||||
<span class="pr-10 mr-10" style="border-right:2px solid #e4e7ed;">
|
||||
文化成绩·{{ state.scoreInfo.culturalScore }}
|
||||
</span>
|
||||
<span class="mr-10">{{state.scoreInfo.professionalCategory==='音乐类'?'主项成绩':'统考成绩'}}·{{ state.scoreInfo.professionalScore }}</span>
|
||||
<span @click="openEditScore" style="cursor: pointer;"><el-icon><EditPen /></el-icon></span>
|
||||
</div>
|
||||
</li>
|
||||
<!--无成绩-->
|
||||
<li v-else>
|
||||
<div class="flexWrap">
|
||||
<span @click="openEditScore" style="cursor: pointer;">创建分数<el-icon style="padding-left: 10px;"><EditPen /></el-icon></span>
|
||||
</div>
|
||||
</li>
|
||||
|
||||
<el-dropdown trigger="hover" @command="handleCommand" style="margin: 0 0 0 50px;">
|
||||
<span class="el-dropdown-link">
|
||||
我的<el-icon class="el-icon--right"><arrow-down /></el-icon>
|
||||
</span>
|
||||
<template #dropdown>
|
||||
<el-dropdown-menu>
|
||||
<el-dropdown-item command="passwordChanger">更改密码</el-dropdown-item>
|
||||
<el-dropdown-item command="logout">退出登录</el-dropdown-item>
|
||||
</el-dropdown-menu>
|
||||
</template>
|
||||
</el-dropdown>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
|
||||
<!--登录弹框-->
|
||||
<el-dialog
|
||||
v-model="state.loginDialogVisible"
|
||||
title=" "
|
||||
width="30%"
|
||||
:closeOnClickModal="false"
|
||||
width="20em"
|
||||
:closeOnClickModal="false" :show-close="false"
|
||||
>
|
||||
<template #header>
|
||||
<div style="display: flex; margin: 5px;justify-content: space-between; align-items: center;">
|
||||
<el-icon @click="closeLoginDialog" class="el-dialog__headerbtn"><Close /></el-icon>
|
||||
</div>
|
||||
</template>
|
||||
<Login/>
|
||||
</el-dialog>
|
||||
<!--修改成绩弹框-->
|
||||
<el-dialog
|
||||
v-model="state.editScoreDialogVisible"
|
||||
title=" "
|
||||
width="40em"
|
||||
:closeOnClickModal="false" :show-close="false"
|
||||
>
|
||||
<template #header>
|
||||
<div style="display: flex; justify-content: space-between; align-items: center;">
|
||||
<h3 style="margin: 0;">登录</h3>
|
||||
<button @click="closeDialog" class="el-dialog__headerbtn">
|
||||
<i class="el-icon-close"></i>
|
||||
</button>
|
||||
<h3 style="margin: 0;">请填写您的高考信息</h3>
|
||||
<el-icon @click="closeEditScoreDialog" class="el-dialog__headerbtn"><Close /></el-icon>
|
||||
</div>
|
||||
</template>
|
||||
<!-- 在这里放置登录内容 -->
|
||||
<Login/>
|
||||
<EditScoreInfo/>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
|
||||
<script setup lang="ts">
|
||||
import {reactive, onMounted, ref} from "vue";
|
||||
import {ElMessage} from 'element-plus'
|
||||
import {useRouter} from 'vue-router';
|
||||
import {ElMessage} from 'element-plus';
|
||||
import axiosInstance from '@/utils/http';
|
||||
import { clearUserIocalStorage } from "@/utils/tool";
|
||||
import ApiConstant from "@/utils/ApiConstant";
|
||||
import StaticConstant from "@/utils/StaticConstant";
|
||||
import { RouterEntity, ScoreInfoEntity } from "@/types";
|
||||
import EditScoreInfo from "./EditScoreInfo.vue";
|
||||
import logo from '@/assets/images/logo.png';
|
||||
import {
|
||||
ArrowDown,
|
||||
Plus,
|
||||
} from '@element-plus/icons-vue'
|
||||
const router = useRouter();
|
||||
|
||||
const state = reactive({
|
||||
activeIndex: '/index',
|
||||
columnList: [] as Array<Object>,
|
||||
columnList: [] as Array<RouterEntity>,
|
||||
isNavVisible: ref(true), // 跟踪导航栏的可见性
|
||||
prevScrollPos: ref(0), // 跟踪先前的滚动位置
|
||||
scrolledPastThreshold: ref(false), // 跟踪是否已滚动超过阈值
|
||||
loginDialogVisible:ref(false),
|
||||
editScoreDialogVisible:ref(false),//更改成绩弹框判断
|
||||
loginDialogVisible:ref(false),//登录弹框判断
|
||||
userInfo:{
|
||||
id:null,
|
||||
phone:null,
|
||||
} as any,//用户信息
|
||||
scoreInfo:{
|
||||
professionalCategory:null,
|
||||
culturalScore:null,
|
||||
professionalScore:null,
|
||||
yybysy:null,
|
||||
yybyqy:null,
|
||||
yyjy:null,
|
||||
xjysdy:null,
|
||||
xjysby:null,
|
||||
fzby:null,
|
||||
|
||||
},
|
||||
token:'' as any,//token
|
||||
})
|
||||
|
||||
// 组件挂载时清空本地token
|
||||
onMounted(() => {
|
||||
let columnList = [{
|
||||
"id": 1,
|
||||
"name": "首页",
|
||||
"parentId": 0,
|
||||
"childColumn": [],
|
||||
"sort": 100,
|
||||
"linkMode": 3,
|
||||
"url": "index"
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"name": "模拟报志愿",
|
||||
"parentId": 0,
|
||||
"childColumn": [],
|
||||
"sort": 30,
|
||||
"linkMode": 3,
|
||||
"url": "fillVolunteer"
|
||||
},
|
||||
{"id": 3, "name": "找大学", "parentId": 0, "childColumn": [], "sort": 75, "linkMode": 3, "url": "school/search"},
|
||||
{"id": 4, "name": "查专业", "parentId": 0, "childColumn": [], "sort": 75, "linkMode": 3, "url": "major/search"},
|
||||
];
|
||||
state.columnList = columnList
|
||||
//判断是否已登录
|
||||
state.token = localStorage.getItem("X-Access-Token") as string;
|
||||
let userInfo = localStorage.getItem('userInfo')
|
||||
if(userInfo!==null){
|
||||
state.userInfo = JSON.parse(userInfo)
|
||||
let scoreInfo = localStorage.getItem('scoreInfo')
|
||||
if(scoreInfo){
|
||||
let a = JSON.parse(scoreInfo)
|
||||
state.scoreInfo.culturalScore = a.culturalScore
|
||||
state.scoreInfo.professionalScore = a.professionalScore
|
||||
state.scoreInfo.professionalCategory = a.professionalCategory
|
||||
state.scoreInfo.yybysy = a.yybysy
|
||||
state.scoreInfo.yybyqy = a.yybyqy
|
||||
state.scoreInfo.yyjy = a.yyjy
|
||||
state.scoreInfo.xjysdy = a.xjysdy
|
||||
state.scoreInfo.xjysby = a.xjysby
|
||||
state.scoreInfo.fzby = a.fzby
|
||||
|
||||
|
||||
userInfo = null
|
||||
a = null
|
||||
scoreInfo = null
|
||||
}
|
||||
}else{
|
||||
state.token = ''
|
||||
state.userInfo = null
|
||||
|
||||
}
|
||||
state.columnList = StaticConstant.defaultRouterList
|
||||
});
|
||||
|
||||
// 监听滚动事件
|
||||
|
|
@ -106,15 +215,66 @@ window.addEventListener('scroll', () => {
|
|||
state.prevScrollPos = currentScrollPos;
|
||||
});
|
||||
|
||||
|
||||
// 用户下拉菜单
|
||||
const handleCommand = (command: string | number | object) => {
|
||||
if(command === 'logout'){
|
||||
openLogout()
|
||||
}else if(command === 'passwordChanger'){
|
||||
//跳转更改密码页
|
||||
router.push({
|
||||
path: "/passwordChanger"
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
//打开登录界面
|
||||
function openLogin(){
|
||||
console.log('登录')
|
||||
state.loginDialogVisible = true
|
||||
}
|
||||
function closeDialog() {
|
||||
|
||||
//退出登录
|
||||
function openLogout(){
|
||||
axiosInstance({
|
||||
url: ApiConstant.User.logout,
|
||||
method: 'get',
|
||||
params:{},
|
||||
/*showLoading: false,//是否显示加载图标*/
|
||||
}).then((response) => {
|
||||
return response.data
|
||||
}).then((data) => {
|
||||
clearUserIocalStorage();
|
||||
if(data.success){
|
||||
ElMessage.success(data.message);
|
||||
setTimeout(function(){
|
||||
state.token=''
|
||||
router.push({
|
||||
path: "/index"
|
||||
});
|
||||
}, 1000);
|
||||
}else{
|
||||
clearUserIocalStorage();
|
||||
ElMessage.error('已退出');
|
||||
}
|
||||
//有数据情况下
|
||||
}).catch((error: any) => {
|
||||
console.log(error);
|
||||
}).finally(() => {
|
||||
});
|
||||
}
|
||||
|
||||
function openEditScore(){
|
||||
state.editScoreDialogVisible = true
|
||||
}
|
||||
|
||||
function closeLoginDialog() {
|
||||
// 在这里可以处理弹出层关闭时的逻辑
|
||||
state.loginDialogVisible = false
|
||||
}
|
||||
|
||||
function closeEditScoreDialog(){
|
||||
state.editScoreDialogVisible = false
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
|
|
@ -129,11 +289,11 @@ function closeDialog() {
|
|||
.navbar {
|
||||
position: fixed;
|
||||
left: 0;
|
||||
right: 10;
|
||||
width: 100%;
|
||||
background-color: #ffffff;
|
||||
color: #000000;
|
||||
z-index: 1000; /* 可以根据需要调整 z-index 值 */
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
box-shadow: 0 0 3px rgba(0, 0, 0, .02), 0 4px 8px rgba(0, 0, 0, .02);
|
||||
ul {
|
||||
|
|
@ -149,7 +309,8 @@ function closeDialog() {
|
|||
/*导航栏左侧*/
|
||||
.box {
|
||||
margin: 0 auto;
|
||||
width: 1210px;
|
||||
min-width: 710px;
|
||||
max-width: 1510px;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
flex-wrap: wrap
|
||||
|
|
@ -196,4 +357,16 @@ function closeDialog() {
|
|||
border: none;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
|
||||
//用户下拉菜单
|
||||
.el-dropdown{
|
||||
line-height: 24px;
|
||||
color: #000000;
|
||||
font-size: 16px;
|
||||
.el-icon{
|
||||
position: relative;
|
||||
top: 2px;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
|
|||
|
|
@ -1,73 +0,0 @@
|
|||
<template>
|
||||
<!-- 当前路由如果包含“已登录”字段,则隐藏该按钮并显示“已登录” -->
|
||||
<el-button
|
||||
type="danger"
|
||||
@click="toLogin"
|
||||
v-if="!isLogged"
|
||||
style="width: 100%; margin: 20px auto"
|
||||
>
|
||||
{{ t("button.login") }}
|
||||
</el-button>
|
||||
<h1 v-else>{{ t("button.isLogged") }}</h1>
|
||||
|
||||
<!-- 退出登录 -->
|
||||
<el-button
|
||||
type="warning"
|
||||
@click="toLogout"
|
||||
v-if="isLogged"
|
||||
style="width: 100%; margin: 20px auto"
|
||||
>
|
||||
{{ t("button.logout") }}
|
||||
</el-button>
|
||||
|
||||
<!-- 打开抽屉 -->
|
||||
<el-button
|
||||
type="success"
|
||||
@click="handleOpenChildrenDrawer"
|
||||
style="width: 100%; margin: 20px auto"
|
||||
>
|
||||
{{ t("button.openDrawer") }}
|
||||
</el-button>
|
||||
<SideDrawer></SideDrawer>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { onMounted, ref, provide } from "vue";
|
||||
import { useRouter, useRoute } from "vue-router";
|
||||
import { useI18n } from "vue-i18n";
|
||||
import SideDrawer from "./SideDrawer.vue";
|
||||
|
||||
/**
|
||||
* vue-router
|
||||
*/
|
||||
// 导入t函数
|
||||
const { t } = useI18n();
|
||||
// 操作路由跳转
|
||||
const router = useRouter();
|
||||
// 获取路由参数
|
||||
const route = useRoute();
|
||||
const isLogged = route.params.isLogged;
|
||||
// 登录
|
||||
const toLogin = () => {
|
||||
router.push("/login");
|
||||
};
|
||||
// 退出登录
|
||||
const toLogout = () => {
|
||||
localStorage.removeItem("token");
|
||||
router.push("/login");
|
||||
};
|
||||
// 组件挂载时清空本地token
|
||||
onMounted(() => {
|
||||
localStorage.removeItem("token");
|
||||
});
|
||||
|
||||
/**
|
||||
* 自定义组件
|
||||
*/
|
||||
const isDrawerOpen = ref(false);
|
||||
// 提供响应式的值
|
||||
provide("isDrawerOpen", isDrawerOpen);
|
||||
const handleOpenChildrenDrawer = () => {
|
||||
isDrawerOpen.value = true;
|
||||
};
|
||||
</script>
|
||||
|
|
@ -0,0 +1,346 @@
|
|||
<!--系统使用说明-->
|
||||
<template>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="24">
|
||||
<div class="hot_school" v-if="state.hotSchoolList && state.hotSchoolList.length > 0">
|
||||
<div class="l_title clearfix">
|
||||
<div class="left_title">热门院校</div>
|
||||
<div class="right_tab clearfix">
|
||||
<div class="hot_school_tab am_l set_hoverl" :class="{ 'active': 1 == state.hotTabActive }"
|
||||
@click="switchHotTab(1)">河南本科院校
|
||||
</div>
|
||||
<div class="hot_school_tab am_l set_hoverl" :class="{ 'active': 2 == state.hotTabActive }"
|
||||
@click="switchHotTab(2)">河南专科院校
|
||||
</div>
|
||||
<div class="hot_school_tab am_l set_hoverl" :class="{ 'active': 3 == state.hotTabActive }"
|
||||
@click="switchHotTab(3)">省外本科院校
|
||||
</div>
|
||||
<div class="hot_school_tab am_l set_hoverl" :class="{ 'active': 4 == state.hotTabActive }"
|
||||
@click="switchHotTab(4)">省外专科院校
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="hot_school_box clearfix">
|
||||
<div class="left" style="background: rgb(255, 141, 66);">
|
||||
<a :href="'/school/' + state.hotSchoolList[0].schoolCode" target="_blank">
|
||||
<h3>{{ state.hotSchoolList[0].schoolName }}</h3>
|
||||
<p class="tag">
|
||||
<span v-for="item in state.hotSchoolList[0].tagsList">{{ item }}</span>
|
||||
</p>
|
||||
<div class="tuijian" v-if="state.hotSchoolList[0].schoolIcon">
|
||||
<div class="school_tuijian">
|
||||
<div class="school_img"><img :src="state.hotSchoolList[0].schoolIcon" alt=""></div>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
<div class="right">
|
||||
<div v-for="(item, index) in state.hotSchoolList">
|
||||
<div class="school_item" data-growing-container="" v-if="index > 0">
|
||||
<a :href="'/school/' + item.schoolCode" target="_blank">
|
||||
<img :src="item.schoolIcon" alt="">
|
||||
<div class="school_msg">
|
||||
<h3>{{ item.schoolName }}</h3>
|
||||
<div class="clearfix check_btn">
|
||||
<span class="school_class">{{ item.institutionType + '类' }}</span>
|
||||
<span>查看院校<i></i></span>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
import { ref, reactive } from "vue";
|
||||
import ApiConstant from "@/utils/ApiConstant";
|
||||
import axiosInstance from '@/utils/http'
|
||||
//主数据对象
|
||||
const state = reactive({
|
||||
hotSchoolList: [] as any,
|
||||
hotTabActive: 1,
|
||||
})
|
||||
const hotSchoolList = reactive({
|
||||
nowProvinceBenSchoolList: [],//本省,本科
|
||||
nowProvinceZhuanSchoolList: [],//本省,专科
|
||||
otherProvinceBenSchoolList: [],//外省,本科
|
||||
otherProvinceZhuanSchoolList: []//外省,专科
|
||||
})
|
||||
|
||||
getHotSchoolList()
|
||||
|
||||
//获取热门院校
|
||||
function getHotSchoolList() {
|
||||
axiosInstance({
|
||||
url: ApiConstant.School.hotSchoolList,
|
||||
method: 'get',
|
||||
params: {},
|
||||
showLoading: false,//是否显示加载图标
|
||||
}).then((response) => {
|
||||
return response.data
|
||||
}).then((data) => {
|
||||
//console.log(data)
|
||||
//有数据情况下
|
||||
hotSchoolList.nowProvinceBenSchoolList = data.result.nowProvinceBenSchoolList
|
||||
hotSchoolList.nowProvinceZhuanSchoolList = data.result.nowProvinceZhuanSchoolList
|
||||
hotSchoolList.otherProvinceBenSchoolList = data.result.otherProvinceBenSchoolList
|
||||
hotSchoolList.otherProvinceZhuanSchoolList = data.result.otherProvinceZhuanSchoolList
|
||||
if (state.hotTabActive == 1) {
|
||||
state.hotSchoolList = hotSchoolList.nowProvinceBenSchoolList
|
||||
}
|
||||
}).catch((error: any) => {
|
||||
console.log(error);
|
||||
}).finally(() => {
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
//切换 热门学院
|
||||
function switchHotTab(index: number) {
|
||||
state.hotTabActive = index
|
||||
//切换数据
|
||||
if (index == 1) {
|
||||
state.hotSchoolList = hotSchoolList.nowProvinceBenSchoolList
|
||||
} else if (index == 2) {
|
||||
state.hotSchoolList = hotSchoolList.nowProvinceZhuanSchoolList
|
||||
} else if (index == 3) {
|
||||
state.hotSchoolList = hotSchoolList.otherProvinceBenSchoolList
|
||||
} else if (index == 4) {
|
||||
state.hotSchoolList = hotSchoolList.otherProvinceZhuanSchoolList
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style scoped lang="scss">
|
||||
//热门院校
|
||||
.hot_school {
|
||||
margin-bottom: 40px;
|
||||
/*padding: 0 20px;*/
|
||||
.l_title {
|
||||
height: 44px;
|
||||
line-height: 44px;
|
||||
border-bottom: 2px solid var(--el-color-primary);
|
||||
width: 100%;
|
||||
|
||||
.left_title {
|
||||
font-size: 20px;
|
||||
color: #000;
|
||||
position: relative;
|
||||
padding-left: 12px;
|
||||
width: 330px;
|
||||
float: left;
|
||||
font-weight: 700;
|
||||
|
||||
.right_tab {
|
||||
margin-left: 10px;
|
||||
float: left;
|
||||
width: 820px;
|
||||
}
|
||||
}
|
||||
|
||||
.right_tab .hot_school_tab.active {
|
||||
color: var(--el-color-primary);
|
||||
}
|
||||
|
||||
|
||||
.right_tab .hot_school_tab {
|
||||
float: left;
|
||||
font-size: 18px;
|
||||
color: #000;
|
||||
margin-right: 32px;
|
||||
cursor: pointer;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.right_tab .hot_school_tab:hover {
|
||||
color: var(--el-color-primary);
|
||||
}
|
||||
|
||||
.am_l {
|
||||
transition: all .4s;
|
||||
}
|
||||
|
||||
.change_group {
|
||||
float: right;
|
||||
color: #f60;
|
||||
font-size: 14px;
|
||||
text-align: right;
|
||||
cursor: pointer;
|
||||
width: 68px;
|
||||
height: 44px;
|
||||
position: relative;
|
||||
-webkit-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
}
|
||||
}
|
||||
|
||||
.hot_school_box {
|
||||
.left {
|
||||
float: left;
|
||||
width: 330px;
|
||||
height: 332px;
|
||||
background: #ffeaea;
|
||||
text-align: center;
|
||||
padding-top: 28px;
|
||||
cursor: pointer;
|
||||
|
||||
h3 {
|
||||
font-size: 24px;
|
||||
color: #fff;
|
||||
margin-bottom: 20px;
|
||||
overflow: hidden;
|
||||
/*text-overflow: ellipsis;*/
|
||||
white-space: nowrap;
|
||||
transition: all .4s;
|
||||
padding: 0 10px;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.tag {
|
||||
margin-bottom: 54px;
|
||||
|
||||
span {
|
||||
display: inline-block;
|
||||
padding: 4px 5px;
|
||||
margin-right: 10px;
|
||||
border-radius: 4px;
|
||||
border: 1px solid hsla(0, 0%, 100%, .4);
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
span:last-child {
|
||||
margin: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.tuijian {
|
||||
width: 195px;
|
||||
height: 159px;
|
||||
position: relative;
|
||||
margin: 0 auto;
|
||||
|
||||
.school_tuijian {
|
||||
width: 170px;
|
||||
height: 187px;
|
||||
background: #fff;
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
-webkit-transform: translate(-50%, -50%);
|
||||
transform: translate(-50%, -50%);
|
||||
}
|
||||
}
|
||||
|
||||
.school_img {
|
||||
height: 100%;
|
||||
position: relative;
|
||||
|
||||
img {
|
||||
width: 128px;
|
||||
height: 128px;
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
-webkit-transform: translate(-50%, -50%);
|
||||
transform: translate(-50%, -50%);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.right {
|
||||
float: right;
|
||||
width: 820px;
|
||||
height: 350px;
|
||||
margin: 10px 0 0 10px;
|
||||
|
||||
.school_item:hover {
|
||||
top: -2px;
|
||||
box-shadow: 0 10px 20px rgb(0 0 0 / 10%);
|
||||
}
|
||||
|
||||
.school_item:hover .school_msg h3 {
|
||||
color: var(--el-color-primary);
|
||||
}
|
||||
|
||||
.school_item {
|
||||
cursor: pointer;
|
||||
float: left;
|
||||
height: 110px;
|
||||
width: 263px;
|
||||
overflow: hidden;
|
||||
margin-right: 10px;
|
||||
margin-bottom: 10px;
|
||||
position: relative;
|
||||
transition: all .2s linear;
|
||||
top: 0;
|
||||
box-shadow: 0 0 15px #e6e6e6;
|
||||
background-color: white;
|
||||
|
||||
img {
|
||||
width: 65px;
|
||||
height: 65px;
|
||||
position: absolute;
|
||||
left: 15px;
|
||||
top: 50%;
|
||||
-webkit-transform: translateY(-50%);
|
||||
transform: translateY(-50%);
|
||||
border: 0;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
.school_msg {
|
||||
margin-left: 100px;
|
||||
margin-top: 21px;
|
||||
padding-right: 16px;
|
||||
|
||||
h3 {
|
||||
color: #000;
|
||||
font-size: 16px;
|
||||
margin-bottom: 23px;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
transition: all .4s;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.check_btn {
|
||||
.school_class {
|
||||
display: inline-block;
|
||||
padding: 0 6px;
|
||||
border: 1px solid #eee;
|
||||
}
|
||||
|
||||
span {
|
||||
float: left;
|
||||
font-size: 12px;
|
||||
color: #999;
|
||||
}
|
||||
|
||||
span + span {
|
||||
margin-right: 12px;
|
||||
float: right;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
span + span i {
|
||||
display: inline-block;
|
||||
width: 5px;
|
||||
height: 9px;
|
||||
background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAASCAYAAABit09LAAAAoklEQVQoU43SsQ0CMQwFUPsaZqOlp4wLdDRQMAUVXBEzABWiSwkbMEX2+OgiOOlIHOL6+cuyPlPj8OhU9UpEDxG5WHsJeu9vRLTquq53zg0lnGAIYRFjvANYWjjBFjzBf3gGaziDFi7CAl6b8PPfAcCGiA4mVNUTgJ6ZzyKyLcJfNKZnsIQyaKEZrKEJquoRwO57uFkK7/2LmZ8isq/WrKW7b6OXhYE4bznBAAAAAElFTkSuQmCC);
|
||||
background-size: cover;
|
||||
margin: 0 0 0 5px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
@ -0,0 +1,109 @@
|
|||
<script setup lang="ts">
|
||||
import { reactive, ref } from "vue";
|
||||
import { useRouter } from 'vue-router';
|
||||
//首先在setup中定义
|
||||
const router = useRouter();
|
||||
const state = reactive({
|
||||
options: [
|
||||
{
|
||||
title: '省控线', img: 'https://mp-7a4eecb1-2a04-4d36-b050-1c4a78cc31a4.cdn.bspapp.com/images/icons/menu/shengkongxian.png',
|
||||
linkUrl: '/scoreControlLine'
|
||||
},
|
||||
{
|
||||
title: '测文化', img: 'https://mp-7a4eecb1-2a04-4d36-b050-1c4a78cc31a4.cdn.bspapp.com/images/icons/menu/cewenhua.png',
|
||||
linkUrl: '/school/search'
|
||||
},
|
||||
{
|
||||
title: '查位次', img: 'https://mp-7a4eecb1-2a04-4d36-b050-1c4a78cc31a4.cdn.bspapp.com/images/icons/menu/chaweici.png',
|
||||
linkUrl: '/checkRanking'
|
||||
},
|
||||
{
|
||||
title: '算投档', img: 'https://mp-7a4eecb1-2a04-4d36-b050-1c4a78cc31a4.cdn.bspapp.com/images/icons/menu/suantoudang.png',
|
||||
linkUrl: '/calculateInvestment'
|
||||
},
|
||||
|
||||
]
|
||||
})
|
||||
const flag = ref(false);
|
||||
let flagStr = window.localStorage.getItem('leftNavFlag')
|
||||
if (flagStr == null || flagStr == undefined || flagStr == 'true') {
|
||||
flag.value = true
|
||||
window.localStorage.setItem('leftNavFlag', 'true')
|
||||
} else {
|
||||
flag.value = false
|
||||
}
|
||||
const close = () => {
|
||||
flag.value = false
|
||||
//window.localStorage.setItem('leftNavFlag', 'false')
|
||||
}
|
||||
const open = () => {
|
||||
flag.value = true
|
||||
//window.localStorage.setItem('leftNavFlag', 'false')
|
||||
}
|
||||
const openPage = (e: string) => {
|
||||
if(!window.location.href.includes(e)){
|
||||
window.open(e, '_self')
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div class="left-nav-wrapper flexWrap" :class="flag ? '' : 'close'">
|
||||
<div class="position-box">
|
||||
<div class="item" @click="openPage(item.linkUrl)" v-for="(item, index) in state.options" :key="index">
|
||||
<img :src="item.img" class="icon64" :alt="item.title" />
|
||||
<div>{{ item.title }}</div>
|
||||
</div>
|
||||
<div class="open" v-show="!flag" @click="open">
|
||||
<el-icon><Expand /></el-icon>
|
||||
</div>
|
||||
<div class="close" v-show="flag" @click="close">
|
||||
<el-icon><Fold /></el-icon>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.left-nav-wrapper {
|
||||
position: fixed;
|
||||
width: 65px;
|
||||
top: 25%;
|
||||
left: 15px;
|
||||
z-index: 999;
|
||||
padding: 20px 0;
|
||||
color: #595553;
|
||||
line-height: 15px;
|
||||
text-align: center;
|
||||
border-radius: 50px;
|
||||
background: $color-blue-10;
|
||||
border: 1px solid $color-blue-40;
|
||||
transition: all 0.3s;
|
||||
.item {
|
||||
cursor: pointer;
|
||||
margin: 10px 0;
|
||||
}
|
||||
}
|
||||
.open{
|
||||
color: #595553;
|
||||
text-align: right;
|
||||
line-height: 15px;
|
||||
padding: 10px 0;
|
||||
border-radius: 50px;
|
||||
background: $color-blue-10;
|
||||
border: 1px solid $color-blue-40;
|
||||
cursor: pointer;
|
||||
z-index: 100;
|
||||
position: relative;
|
||||
left: 20px;
|
||||
}
|
||||
|
||||
.close {
|
||||
left: -67px;
|
||||
cursor: pointer;
|
||||
border-radius: 100%;
|
||||
width: 50px;
|
||||
height: 10px;
|
||||
margin: 20px auto 0 auto;
|
||||
}
|
||||
</style>
|
||||
|
|
@ -1,44 +1,66 @@
|
|||
<template>
|
||||
<!-- <div style="padding: 50px 0 0">
|
||||
<h1 style="font-size: 50px; font-weight: bolder">{{ t("title.login") }}</h1>
|
||||
</div>-->
|
||||
|
||||
<el-form
|
||||
ref="loginFormRef"
|
||||
:model="loginForm"
|
||||
status-icon
|
||||
:rules="loginFormRules"
|
||||
label-width="120px"
|
||||
>
|
||||
<el-form-item :label="t('label.phone')" prop="phone">
|
||||
<el-input v-model="loginForm.phone"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item :label="t('label.password')" prop="pass">
|
||||
<el-input v-model="loginForm.pass" type="password" autocomplete="off" />
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="submitForm(loginFormRef)">
|
||||
{{ t("button.submit") }}
|
||||
<div class="textCenter fs-25 mb-15">
|
||||
<span class="mt-5">艺体生 更轻松的报志愿</span>
|
||||
</div>
|
||||
<div v-show="loginForm.type === 'pwd'" style="min-height: 250px;">
|
||||
<el-form ref="loginFormRef" :model="loginForm" status-icon :rules="loginFormRules">
|
||||
<el-form-item prop="phone">
|
||||
<el-input v-model="loginForm.phone" style="height: 50px;font-size: 30px" :placeholder="t('label.phone')"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item prop="pass">
|
||||
<el-input v-model="loginForm.pass" style="height: 50px;font-size: 30px" :placeholder="t('label.password')" type="password" autocomplete="off" />
|
||||
</el-form-item>
|
||||
<div style="padding: 10px;text-align: center">
|
||||
<el-button type="primary" @click="submitForm(loginFormRef)">
|
||||
{{ t("button.submit") }}
|
||||
</el-button>
|
||||
<el-button @click="resetForm(loginFormRef)">
|
||||
{{ t("button.reset") }}
|
||||
</el-button>
|
||||
</div>
|
||||
</el-form>
|
||||
</div>
|
||||
<div v-show="loginForm.type === 'weixin'" style="min-height: 250px;">
|
||||
<div class="" style="text-align: center;">
|
||||
<div class="w-img">
|
||||
<el-avatar id="qrcode" :size="170" @click="getImgQrCode" style="border-radius: 0%"
|
||||
class="">
|
||||
<img :src="state.qrcode" alt=""/>
|
||||
</el-avatar>
|
||||
<div class="w-qr_message" @click="getImgQrCode" v-show="state.qrcode && state.qrcodeStatus !=='NOT_SCAN'">
|
||||
<div >{{getQrCodeStatus(state.qrcodeStatus)}}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="w-qr-status-text" style="width: 100%;" v-if="state.qrcode">
|
||||
<span class="textCenter">请确保使用微信移动客户端版本为6.7.2及以上进行扫描</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!--loginType-->
|
||||
<div style="padding: 10px;text-align: center">
|
||||
<el-tooltip class="box-item" effect="light" content="微信登录" placement="bottom">
|
||||
<el-button circle style="margin: 0 20px;" @click="switchType('weixin')" v-show="loginForm.type === 'pwd'">
|
||||
<svg-icon icon-class="weixin" size="3" />
|
||||
</el-button>
|
||||
<el-button @click="resetForm(loginFormRef)">
|
||||
{{ t("button.reset") }}
|
||||
</el-tooltip>
|
||||
<el-tooltip class="box-item" effect="light" content="密码登录" placement="bottom">
|
||||
<el-button circle style="margin: 0 20px;" @click="switchType('pwd')" v-show="loginForm.type === 'weixin'">
|
||||
<svg-icon icon-class="lock" size="3" />
|
||||
</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-tooltip>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { ref, reactive} from "vue";
|
||||
import { ref, reactive } from "vue";
|
||||
import { useRouter } from "vue-router";
|
||||
// 导入t函数
|
||||
import { useI18n } from "vue-i18n";
|
||||
import ApiConstant from "@/utils/ApiConstant";
|
||||
import axiosInstance from '@/utils/http'
|
||||
import { ElMessage } from "element-plus";
|
||||
import { json } from "stream/consumers";
|
||||
import { getScore } from "@/axios/api";
|
||||
import { clearUserIocalStorage } from "@/utils/tool";
|
||||
const { t } = useI18n();
|
||||
// 配置了按需导入Element-Plus则不用引入,否则反而会丢失样式
|
||||
// import { ElMessage } from "element-plus";
|
||||
// 路由对象
|
||||
const router = useRouter();
|
||||
// 表单数据
|
||||
|
|
@ -46,10 +68,16 @@ const loginFormRef = ref();
|
|||
const loginForm = reactive({
|
||||
phone: "",
|
||||
pass: "",
|
||||
type: 'pwd',
|
||||
});
|
||||
const state = reactive({
|
||||
qrcode:'https://i.gifer.com/embedded/download/74H8.gif',//登录二维码
|
||||
qrcodeStatus:'START',//二维码状态
|
||||
uuid:'',//uuid
|
||||
})
|
||||
|
||||
// 表单规则
|
||||
const validatePass = (rule, value, callback) => {
|
||||
const validatePass = (rule: any, value: any, callback: any) => {
|
||||
if (value === "") {
|
||||
callback(new Error(t("placeholder.password")));
|
||||
} else {
|
||||
|
|
@ -83,32 +111,39 @@ const loginFormRules = reactive({
|
|||
});
|
||||
|
||||
// 表单方法
|
||||
const submitForm = (formEl) => {
|
||||
const submitForm = (formEl: any) => {
|
||||
if (!formEl) return;
|
||||
formEl.validate((valid) => {
|
||||
if (valid) {
|
||||
clearUserIocalStorage();
|
||||
axiosInstance({
|
||||
url: ApiConstant.User.login,
|
||||
method: 'post',
|
||||
data: {
|
||||
username:loginForm.phone,
|
||||
password:loginForm.pass
|
||||
username: loginForm.phone,
|
||||
password: loginForm.pass
|
||||
},
|
||||
/*showLoading: false,//是否显示加载图标*/
|
||||
}).then((response) => {
|
||||
return response.data
|
||||
}).then((data) => {
|
||||
console.log('q')
|
||||
if(data.success){
|
||||
if (data.success) {
|
||||
//将 用户数据保存到缓存中
|
||||
localStorage.setItem('vipInfo',JSON.stringify(data.result.vipInfo))
|
||||
localStorage.setItem('userInfo',JSON.stringify(data.result.userInfo))
|
||||
localStorage.setItem("token", data.result.token);
|
||||
localStorage.setItem('vipInfo', JSON.stringify(data.result.vipInfo))
|
||||
localStorage.setItem('userInfo', JSON.stringify(data.result.userInfo))
|
||||
localStorage.setItem("X-Access-Token", data.result.token);
|
||||
getScore()
|
||||
ElMessage.success(
|
||||
localStorage.getItem("locale") === "zh_CN" ? "登录成功!" : "Submitted!"
|
||||
);
|
||||
//window.location.reload()
|
||||
}else{
|
||||
setTimeout(function () {
|
||||
router.push({
|
||||
path: "/index"
|
||||
});
|
||||
window.location.reload()
|
||||
}, 1000);
|
||||
} else {
|
||||
ElMessage.error(data.message);
|
||||
}
|
||||
//有数据情况下
|
||||
|
|
@ -116,42 +151,130 @@ const submitForm = (formEl) => {
|
|||
console.log(error);
|
||||
}).finally(() => {
|
||||
});
|
||||
|
||||
// // axios接口
|
||||
/*Login(loginForm).then((response) => {
|
||||
const { code, msg, data: res } = response.data;
|
||||
if (code === 0) {
|
||||
localStorage.setItem("token", res.token);
|
||||
ElMessage.success(msg ?? "Submitted!");
|
||||
router.push({
|
||||
path: "/", // HelloWorld.vue在路由配置文件中定义的路径
|
||||
params: {
|
||||
isLogged: true,
|
||||
},
|
||||
});
|
||||
} else {
|
||||
ElMessage.error(msg);
|
||||
}
|
||||
});*/
|
||||
|
||||
// Demo 直接登录
|
||||
//localStorage.setItem("token", "test token");
|
||||
/*router.push({
|
||||
// path: "/", // HelloWorld.vue在路由配置文件中定义的路径
|
||||
name: "/index", // name 搭配 params 传参、path 搭配 query 传参
|
||||
params: {
|
||||
isLogged: true,
|
||||
},
|
||||
});*/
|
||||
//window.location.reload()
|
||||
} else {
|
||||
ElMessage.error(localStorage.getItem("locale") === "zh_CN" ? "登录失败!" : "Oops, error submit!");
|
||||
//ElMessage.error(localStorage.getItem("locale") === "zh_CN" ? "登录失败!" : "Oops, error submit!");
|
||||
return false;
|
||||
}
|
||||
});
|
||||
};
|
||||
const resetForm = (formEl) => {
|
||||
const resetForm = (formEl: any) => {
|
||||
if (!formEl) return;
|
||||
formEl.resetFields();
|
||||
};
|
||||
|
||||
const switchType = (type: any) => {
|
||||
if (loginForm.type !== type) {
|
||||
loginForm.type = type
|
||||
}
|
||||
if(loginForm.type === 'weixin'){
|
||||
getImgQrCode()
|
||||
}
|
||||
}
|
||||
const time = ref()
|
||||
//获取微信登录二维码
|
||||
function getImgQrCode(){
|
||||
if(state.qrcodeStatus === 'NULL' || state.qrcodeStatus === 'START'){
|
||||
axiosInstance({
|
||||
url: "/wx/getQRCode",
|
||||
method: 'get',
|
||||
params: {},
|
||||
showLoading: false,//是否显示加载图标
|
||||
}).then((response) => {
|
||||
return response.data
|
||||
}).then((data) => {
|
||||
console.log(data)
|
||||
if(data && data.result){
|
||||
state.qrcode = data.result.img
|
||||
state.uuid = data.result.scene
|
||||
state.qrcodeStatus = 'NOT_SCAN'
|
||||
clearTimeout(time.value)
|
||||
getStatus()
|
||||
}
|
||||
}).catch((error: any) => {
|
||||
console.log(error);
|
||||
}).finally(() => {
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
function getQrCodeStatus(status:string){
|
||||
if(!status){
|
||||
return '';
|
||||
}else if(status === 'SUCCESS'){
|
||||
return '通过';
|
||||
}else if(status === 'SCAN'){
|
||||
return '扫码成功,请在手机确认';
|
||||
}
|
||||
// else if(status === 'NOT_SCAN'){
|
||||
// return '请确保使用微信移动客户端版本为6.7.2及以上进行扫描';
|
||||
// }
|
||||
else if (status ==='NULL'){
|
||||
return '已失效,点击刷新';
|
||||
}
|
||||
}
|
||||
function getStatus(){
|
||||
time.value = setInterval(() => {
|
||||
axiosInstance({
|
||||
url: "/wx/user/getQrCodeStatus/"+state.uuid,
|
||||
method: 'get',
|
||||
params: {},
|
||||
showLoading: false,//是否显示加载图标
|
||||
}).then((response) => {
|
||||
return response.data
|
||||
}).then((data) => {
|
||||
if(data && data.result){
|
||||
state.qrcodeStatus = data.result.qr_state
|
||||
if ('NOT_SCAN' === data.result.qr_state) {
|
||||
//等待扫描
|
||||
///document.querySelector('#qrcode')!.className = (`${document.querySelector('#qrcode')!.className} w-qr-dead`)
|
||||
//clearTimeout(time.value)
|
||||
}else if ('SCAN' === data.result.qr_state) {
|
||||
//已扫码,等待操作
|
||||
}else if ('SUCCESS' === data.result.qr_state) {
|
||||
//扫描成功
|
||||
clearTimeout(time.value)
|
||||
//将 用户数据保存到缓存中
|
||||
localStorage.setItem('vipInfo',JSON.stringify(data.result.vipInfo))
|
||||
localStorage.setItem('userInfo',JSON.stringify(data.result.userInfo))
|
||||
localStorage.setItem("X-Access-Token", data.result.token);
|
||||
setTimeout(function(){
|
||||
getScore()
|
||||
}, 100);
|
||||
ElMessage.success(
|
||||
localStorage.getItem("locale") === "zh_CN" ? "登录成功!" : "Submitted!"
|
||||
);
|
||||
setTimeout(function(){
|
||||
window.location.reload()
|
||||
}, 1000);
|
||||
}else{
|
||||
//已失效
|
||||
clearTimeout(time.value)
|
||||
}
|
||||
}
|
||||
}).catch((error: any) => {
|
||||
console.log(error);
|
||||
}).finally(() => {
|
||||
});
|
||||
}, 2000)
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
//二维码 start
|
||||
.qrcode {
|
||||
margin: 50px 0;
|
||||
}
|
||||
|
||||
.qrcode .qrcode-item {
|
||||
width: 135px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.qrcode .qrcode-item .qrcode-text {
|
||||
font-weight: bold;
|
||||
color: #000000;
|
||||
}
|
||||
|
||||
//二维码 end
|
||||
</style>
|
||||
|
|
@ -0,0 +1,331 @@
|
|||
<template>
|
||||
<div class="" style="background-color: #ffffff;height:500px;">
|
||||
<el-form :model="form" :rules="rules" ref="formRef" label-width="80px" v-if="state.userFlag==='1'">
|
||||
<div class="flexWrap" style="line-height: 30px;height: 30px;padding: 5px;">
|
||||
<div class="flex-item-6">
|
||||
<span class="fw-6 font-size-20">模拟报志愿</span>
|
||||
</div>
|
||||
<div class="flex-item-4">
|
||||
<div style="line-height: 30px;">
|
||||
<el-radio-group v-model="form.cognitioPolyclinic" size="small" style="margin: 0 0 0 auto;float: left;">
|
||||
<el-radio-button label="文科" value="文科" />
|
||||
<el-radio-button label="理科" value="理科" />
|
||||
</el-radio-group>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="flexWrap mt-10" style="line-height: 30px;height: 300px;padding: 5px 10px;">
|
||||
<div class="flex-item-10">
|
||||
<el-form-item label="专业类别" prop="professionalCategory">
|
||||
<el-select v-model="form.professionalCategory" placeholder="请选择专业类别" @change="handleProfessionalCateGoryChange">
|
||||
<el-option v-for="(item,index) in state.professionalCategoryList" :key="index" :label="item.label" :value="item.value"/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</div>
|
||||
<div class="flex-item-10">
|
||||
<div v-if="state.subjectsList && state.subjectsList.length>0">
|
||||
<el-form-item label="专业选课" prop="subjects">
|
||||
<el-select v-model="form.subjects" multiple @change="handleSubjectsSelectChange" collapse-tags collapse-tags-tooltip>
|
||||
<el-option v-for="(item,index) in state.subjectsList" :key="index" :label="item.label" :value="item.value" :disabled="item.exclude && form.subjects.includes(item.exclude)"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</div>
|
||||
</div>
|
||||
<div class="flex-item-10" v-if="form.subjects && form.subjects.length>0">
|
||||
<div v-for="(item,index) in form.subjects" :key="index">
|
||||
<!--音乐-->
|
||||
<el-form-item label="音表声乐" :prop="convertSubjectToField(item)" v-if="item ==='音乐表演声乐'">
|
||||
<el-input type="number" min="0" max="300" v-model="form.yybysy" @input="validateInput(item)" :placeholder="'请输入'+item"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="音表器乐" :prop="convertSubjectToField(item)" v-else-if="item ==='音乐表演器乐'">
|
||||
<el-input type="number" min="0" max="300" v-model="form.yybyqy" @input="validateInput(item)" :placeholder="'请输入'+item"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item :label="item" :prop="convertSubjectToField(item)" v-else-if="item ==='音乐教育'">
|
||||
<el-input type="number" min="0" max="300" v-model="form.yyjy" @input="validateInput(item)" :placeholder="'请输入'+item"></el-input>
|
||||
</el-form-item>
|
||||
<!--表演-->
|
||||
<el-form-item :label="item" :prop="convertSubjectToField(item)" v-else-if="item ==='服装表演'">
|
||||
<el-input type="number" min="0" max="300" v-model="form.fzby" @input="validateInput(item)" :placeholder="'请输入'+item"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="影视导演" :prop="convertSubjectToField(item)" v-else-if="item ==='戏剧影视导演'">
|
||||
<el-input type="number" min="0" max="300" v-model="form.xjysdy" @input="validateInput(item)" :placeholder="'请输入'+item"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="影视表演" :prop="convertSubjectToField(item)" v-else-if="item ==='戏剧影视表演'">
|
||||
<el-input type="number" min="0" max="300" v-model="form.xjysby" @input="validateInput(item)" :placeholder="'请输入'+item"></el-input>
|
||||
</el-form-item>
|
||||
</div>
|
||||
</div>
|
||||
<div class="flex-item-10" v-if="form.professionalCategory!=='表演类'">
|
||||
<el-form-item :label="dynamicProfessionalCategoryLabel()" prop="professionalScore">
|
||||
<el-input type="number" min="0" max="300" v-model="form.professionalScore" :placeholder="'请输入'+dynamicProfessionalCategoryLabel()"></el-input>
|
||||
</el-form-item>
|
||||
</div>
|
||||
<div class="flex-item-10">
|
||||
<el-form-item label="文化成绩" prop="culturalScore">
|
||||
<el-input type="number" min="0" max="300" v-model="form.culturalScore" placeholder="请输入文化成绩"></el-input>
|
||||
</el-form-item>
|
||||
</div>
|
||||
<div class="flex-item-5" style="">
|
||||
<el-form-item label="语文成绩" prop="chineseScore">
|
||||
<el-input type="number" min="0" max="300" v-model="form.chineseScore" placeholder="请输入语文成绩"></el-input>
|
||||
</el-form-item>
|
||||
</div>
|
||||
<div class="flex-item-5" style="">
|
||||
<el-form-item label="英语成绩" prop="englishScore">
|
||||
<el-input type="number" min="0" max="300" v-model="form.englishScore" placeholder="请输入英语成绩"></el-input>
|
||||
</el-form-item>
|
||||
</div>
|
||||
</div>
|
||||
<div class="flexWrap mt-10" style="line-height: 30px;padding: 5px 10px;">
|
||||
<div class="flex-item-10">
|
||||
<el-button style="width: 100%;" type="primary" @click="submitForm">确定</el-button>
|
||||
</div>
|
||||
</div>
|
||||
</el-form>
|
||||
<div v-else-if="state.userFlag==='0'">
|
||||
<div style="cursor: pointer;">
|
||||
<div style="text-align: center;padding-top: 50px;color:#d3d3d3" class="font-size-25">
|
||||
登录账号后
|
||||
</div>
|
||||
<div style="text-align: center;padding: 50px 0;color:#728090" class="font-size-30">
|
||||
查看可报院校
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { onMounted, reactive, ref} from 'vue';
|
||||
import StaticConstant from '@/utils/StaticConstant';
|
||||
import {SubjectsEntity} from '@/types/index'
|
||||
import ApiConstant from "@/utils/ApiConstant";
|
||||
import axiosInstance from '@/utils/http';
|
||||
import { getScore } from '@/axios/api';
|
||||
import { ElMessage } from "element-plus";
|
||||
import { useRouter } from "vue-router";
|
||||
const router = useRouter();
|
||||
const state= reactive({
|
||||
userFlag:'',
|
||||
provinceList:[
|
||||
{name: "河南", code: "河南"},
|
||||
],
|
||||
professionalCategoryList:StaticConstant.professionalCategoryList,
|
||||
subjectsList:[] as Array<SubjectsEntity>,//专业选课
|
||||
})
|
||||
const form = reactive({
|
||||
province: '河南',//省份
|
||||
cognitioPolyclinic: '文科',//科类
|
||||
professionalCategory: '',//报考方向
|
||||
culturalScore: '',//文化分
|
||||
professionalScore: '',//统考分
|
||||
chineseScore: '',//语文成绩
|
||||
englishScore: '',//英语成绩
|
||||
subjects:[] as Array<string>,//专业选课
|
||||
yybysy:'',//音乐表演声乐
|
||||
yybyqy:'',//音乐表演器乐
|
||||
yyjy:'',//音乐教育
|
||||
fzby:'',//服装表演
|
||||
xjysdy:'',//戏剧影视导演
|
||||
xjysby:'',//戏剧影视表演
|
||||
});
|
||||
const rules = ref({})
|
||||
|
||||
const formRef = ref<HTMLFormElement | any>({});
|
||||
|
||||
const submitForm = () => {
|
||||
formRef.value.validate((valid: boolean) => {
|
||||
if(!valid){
|
||||
// 表单验证失败
|
||||
console.log('Validation failed');
|
||||
return false
|
||||
}
|
||||
// 表单验证通过,可以提交表单数据
|
||||
let submitForm = {
|
||||
...form,
|
||||
professionalCategoryChildren: form.subjects.join(',')
|
||||
}
|
||||
console.log('Form submitted:', submitForm);
|
||||
axiosInstance({
|
||||
url: ApiConstant.Score.scoreSave,
|
||||
method: 'post',
|
||||
data: submitForm,
|
||||
showLoading:true,
|
||||
/*showLoading: false,//是否显示加载图标*/
|
||||
}).then((response) => {
|
||||
return response.data
|
||||
}).then((data) => {
|
||||
console.log('qqq')
|
||||
console.log(data)
|
||||
if(data.success){
|
||||
ElMessage.success('保存成功');
|
||||
getScore()
|
||||
setTimeout(function(){
|
||||
router.push({
|
||||
path: "/index"
|
||||
});
|
||||
window.location.reload()
|
||||
}, 1000);
|
||||
}else{
|
||||
ElMessage.error(data.message);
|
||||
}
|
||||
//有数据情况下
|
||||
}).catch((error: any) => {
|
||||
console.log(error);
|
||||
}).finally(() => {
|
||||
});
|
||||
|
||||
});
|
||||
};
|
||||
|
||||
onMounted(()=>{
|
||||
try {
|
||||
let userInfo = localStorage.getItem('userInfo')
|
||||
if(!userInfo){
|
||||
state.userFlag = '0'
|
||||
return false
|
||||
}else{
|
||||
state.userFlag = '1'
|
||||
}
|
||||
reloadScore()
|
||||
} catch (error) {
|
||||
getScore()
|
||||
}
|
||||
})
|
||||
|
||||
function reloadScore(){
|
||||
let scoreInfoStr = localStorage.getItem('scoreInfo')
|
||||
if(scoreInfoStr){
|
||||
let scoreInfo = JSON.parse(scoreInfoStr)
|
||||
form.professionalCategory = scoreInfo.professionalCategory
|
||||
form.cognitioPolyclinic = scoreInfo.cognitioPolyclinic
|
||||
form.province = scoreInfo.province
|
||||
form.culturalScore = scoreInfo.culturalScore
|
||||
form.professionalScore = scoreInfo.professionalScore
|
||||
form.chineseScore = scoreInfo.chineseScore
|
||||
form.englishScore = scoreInfo.englishScore
|
||||
handleProfessionalCateGoryChange()
|
||||
if(scoreInfo.professionalCategoryChildren){
|
||||
form.subjects = scoreInfo.professionalCategoryChildren.split(',')
|
||||
}
|
||||
form.yybysy = scoreInfo.yybysy
|
||||
form.yybyqy = scoreInfo.yybyqy
|
||||
form.yyjy = scoreInfo.yyjy
|
||||
form.fzby = scoreInfo.fzby
|
||||
form.xjysdy = scoreInfo.xjysdy
|
||||
form.xjysby = scoreInfo.xjysby
|
||||
console.log(scoreInfo)
|
||||
}
|
||||
|
||||
//reloadRules()
|
||||
}
|
||||
|
||||
//切换专业类别事件
|
||||
const handleProfessionalCateGoryChange=()=>{
|
||||
form.subjects = []
|
||||
state.subjectsList = []
|
||||
//判断选择专业是不是有专业选课
|
||||
state.professionalCategoryList.forEach(item=>{
|
||||
if(item.value === form.professionalCategory && item.children){
|
||||
//有专业选课
|
||||
state.subjectsList = item.children as Array<SubjectsEntity>
|
||||
}
|
||||
})
|
||||
reloadRules()
|
||||
}
|
||||
|
||||
//选择专业选课事件
|
||||
const handleSubjectsSelectChange=(value:string[])=>{
|
||||
if (value.includes('a')) {
|
||||
form.subjects = value.filter((item) => item !== 'b');
|
||||
} else if (value.includes('b')) {
|
||||
form.subjects = value.filter((item) => item !== 'a');
|
||||
}
|
||||
reloadRules()
|
||||
}
|
||||
|
||||
//动态更改统考成绩文本
|
||||
const dynamicProfessionalCategoryLabel=()=>{
|
||||
if(form.professionalCategory === '音乐类'){
|
||||
return "主项成绩";
|
||||
}
|
||||
return "统考成绩";
|
||||
}
|
||||
|
||||
// 将专业选课转换成字段
|
||||
const convertSubjectToField = (subjects: string) => {
|
||||
switch (subjects) {
|
||||
case '音乐表演声乐':
|
||||
return 'yybysy';
|
||||
case '音乐表演器乐':
|
||||
return 'yybyqy';
|
||||
case '音乐教育':
|
||||
return 'yyjy';
|
||||
case '服装表演':
|
||||
return 'fzby';
|
||||
case '戏剧影视导演':
|
||||
return 'xjysdy';
|
||||
case '戏剧影视表演':
|
||||
return 'xjysby';
|
||||
}
|
||||
}
|
||||
const validateInput = (subjects:any)=>{
|
||||
if(subjects === '音乐表演声乐'){
|
||||
form.yybysy = form.yybysy.replace(/\D/g, '')
|
||||
}else if(subjects === '音乐表演器乐'){
|
||||
form.yybyqy = form.yybyqy.replace(/\D/g, '')
|
||||
}else if(subjects === '音乐教育'){
|
||||
form.yyjy = form.yyjy.replace(/\D/g, '')
|
||||
}else if(subjects === '服装表演'){
|
||||
form.fzby = form.fzby.replace(/\D/g, '')
|
||||
}else if(subjects === '戏剧影视导演'){
|
||||
form.xjysdy = form.xjysdy.replace(/\D/g, '')
|
||||
}else if(subjects === '戏剧影视表演'){
|
||||
form.xjysby = form.xjysby.replace(/\D/g, '')
|
||||
}
|
||||
}
|
||||
|
||||
function reloadRules(){
|
||||
if(state.subjectsList){
|
||||
let ru = {
|
||||
province: [{ required: true, message: '请选择省份', trigger: 'change' }],
|
||||
professionalCategory: [{ required: true, message: '请选择专业类别', trigger: 'change' }],
|
||||
cognitioPolyclinic: [{ required: true, message: '请选择考生科目', trigger: 'change' }],
|
||||
professionalScore: [{ required: true, message: '请输入'+dynamicProfessionalCategoryLabel(), trigger: 'blur' }],
|
||||
culturalScore: [{ required: true, message: '请输入文化成绩', trigger: 'blur' }],
|
||||
chineseScore: [{ required: true, message: '请输入语文成绩', trigger: 'blur' }],
|
||||
englishScore: [{ required: true, message: '请输入英语成绩', trigger: 'blur' }],
|
||||
subjects: [{ required: true, message: '请选择专业选课', trigger: 'change' }],
|
||||
}
|
||||
if(form.subjects && form.subjects.length>0){
|
||||
form.subjects.forEach(item=>{
|
||||
ru[convertSubjectToField(item)] = [{ required: true, message: '请输入'+item, trigger: 'change' }]
|
||||
})
|
||||
}
|
||||
rules.value = ru
|
||||
}else{
|
||||
rules.value = {
|
||||
province: [{ required: true, message: '请选择省份', trigger: 'change' }],
|
||||
professionalCategory: [{ required: true, message: '请选择专业类别', trigger: 'change' }],
|
||||
cognitioPolyclinic: [{ required: true, message: '请选择考生科目', trigger: 'change' }],
|
||||
professionalScore: [{ required: true, message: '请输入'+dynamicProfessionalCategoryLabel(), trigger: 'blur' }],
|
||||
culturalScore: [{ required: true, message: '请输入文化成绩', trigger: 'blur' }],
|
||||
chineseScore: [{ required: true, message: '请输入语文成绩', trigger: 'blur' }],
|
||||
englishScore: [{ required: true, message: '请输入英语成绩', trigger: 'blur' }],
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.container {
|
||||
margin: 20px;
|
||||
}
|
||||
:deep(.el-form-item){
|
||||
margin-bottom: 14px !important;
|
||||
}
|
||||
:deep(.el-form-item__content){
|
||||
max-width: 80%;
|
||||
}
|
||||
</style>
|
||||
|
|
@ -1,21 +0,0 @@
|
|||
<template>
|
||||
<el-drawer
|
||||
v-model="drawer"
|
||||
title="I am the title"
|
||||
direction="rtl"
|
||||
:before-close="handleClose"
|
||||
>
|
||||
<span>Hi, there!</span>
|
||||
</el-drawer>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { inject } from "vue";
|
||||
|
||||
// 注入一个值,若为空则使用提供的默认值
|
||||
const drawer = inject("isDrawerOpen", false);
|
||||
const handleClose = (done) => {
|
||||
ElMessage("Drawer closed.");
|
||||
done();
|
||||
};
|
||||
</script>
|
||||
|
|
@ -0,0 +1,63 @@
|
|||
<!-- 注册自定义图标 -->
|
||||
<template>
|
||||
<svg :class="svgClass" aria-hidden="true" :style="svgStyle">
|
||||
<use :xlink:href="iconName" :fill="color" />
|
||||
</svg>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { computed } from 'vue';
|
||||
const props = defineProps({
|
||||
iconClass: { // 图标名称与assets/icon/svg下使用的文件名一致
|
||||
type: String,
|
||||
required: true
|
||||
},
|
||||
className: { // 给图标添加class
|
||||
type: String,
|
||||
default: ''
|
||||
},
|
||||
color: { // 设置图标颜色
|
||||
type: String,
|
||||
default: '#333'
|
||||
},
|
||||
size:{
|
||||
type: String,
|
||||
default: '2'
|
||||
}
|
||||
});
|
||||
const iconName = computed(() => {
|
||||
return `#icon-${props.iconClass}`;
|
||||
});
|
||||
const svgClass = computed(() => {
|
||||
if (props.className) {
|
||||
return `svg-icon ${props.className}`;
|
||||
}
|
||||
return 'svg-icon';
|
||||
});
|
||||
const svgStyle = computed(()=>{
|
||||
try {
|
||||
if(props.size && parseInt(props.size)>0){
|
||||
return "width: "+props.size+"em;height: "+props.size+"em;";
|
||||
}else{
|
||||
return "width: 1em;height: 1em;";
|
||||
}
|
||||
} catch (error) {
|
||||
return "width: 1em;height: 1em;";
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
<style>
|
||||
.sub-el-icon,.nav-icon {
|
||||
display: inline-block;
|
||||
font-size: 35px;
|
||||
margin-right: 12px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.svg-icon {
|
||||
position: relative;
|
||||
fill: currentColor;
|
||||
vertical-align: -2px;
|
||||
}
|
||||
</style>
|
||||
|
|
@ -0,0 +1,63 @@
|
|||
<!-- 注册自定义图标 -->
|
||||
<template>
|
||||
<svg :class="svgClass" aria-hidden="true" :style="svgStyle">
|
||||
<use :xlink:href="iconName" :fill="color" />
|
||||
</svg>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { computed } from 'vue';
|
||||
const props = defineProps({
|
||||
iconClass: { // 图标名称与assets/icon/svg下使用的文件名一致
|
||||
type: String,
|
||||
required: true
|
||||
},
|
||||
className: { // 给图标添加class
|
||||
type: String,
|
||||
default: ''
|
||||
},
|
||||
color: { // 设置图标颜色
|
||||
type: String,
|
||||
default: '#333'
|
||||
},
|
||||
size:{
|
||||
type: String,
|
||||
default: '2'
|
||||
}
|
||||
});
|
||||
const iconName = computed(() => {
|
||||
return `#icon-${props.iconClass}`;
|
||||
});
|
||||
const svgClass = computed(() => {
|
||||
if (props.className) {
|
||||
return `svg-icon ${props.className}`;
|
||||
}
|
||||
return 'svg-icon';
|
||||
});
|
||||
const svgStyle = computed(()=>{
|
||||
try {
|
||||
if(props.size && parseInt(props.size)>0){
|
||||
return "width: "+props.size+"em;height: "+props.size+"em;";
|
||||
}else{
|
||||
return "width: 1em;height: 1em;";
|
||||
}
|
||||
} catch (error) {
|
||||
return "width: 1em;height: 1em;";
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.sub-el-icon,.nav-icon {
|
||||
display: inline-block;
|
||||
font-size: 35px;
|
||||
margin-right: 12px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.svg-icon {
|
||||
position: relative;
|
||||
fill: currentColor;
|
||||
vertical-align: -2px;
|
||||
}
|
||||
</style>
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
// 注册所有 @element-plus/icons-vue 图标
|
||||
import * as ElementPlusIconsVue from '@element-plus/icons-vue';
|
||||
import { App } from 'vue';
|
||||
export default {
|
||||
install: (app: App<Element>) => {
|
||||
for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
|
||||
app.component(key, component);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
|
@ -0,0 +1,106 @@
|
|||
<!--系统使用说明-->
|
||||
<template>
|
||||
<el-row :gutter="20" class="mt-5">
|
||||
<el-col :span="14">
|
||||
<div class="school-footer_footerBox">
|
||||
<div class="school-footer_leftIntroduce">
|
||||
<div class="school-footer_useIntro"><h3>系统使用说明</h3>
|
||||
</div>
|
||||
<p>1、本查询系统的信息仅供参考,具体数据请以学校官网或考试院公布为准。</p>
|
||||
<p>2、本站数据未经授权严禁转载,违者将依法追究责任。</p>
|
||||
<p>3、如有任何疑问,可发送邮件至:<a class="a-button hover_style"
|
||||
style="color:var(--el-color-primary);">yitisheng@163.com</a></p>
|
||||
<!-- <p>4、志愿填报服务客服专线:xxx-xxxx-xxx,高校合作或其他商务客服电话:xxx-xxxx-xxx。</p> -->
|
||||
<p class="school-footer_friendChain"><span>友情链接:</span><a href="https://www.haeea.cn/"
|
||||
target="_blank">河南教育考试院</a><a
|
||||
href="https://pzwb.haeea.cn/" target="_blank">高校招生考生服务平台</a><a href="http://gaokao.chsi.com.cn"
|
||||
target="_blank">阳光高考</a><a
|
||||
href="http://jyt.henan.gov.cn/" target="_blank">河南省教育厅</a><a href="https://yz.chsi.com.cn/"
|
||||
target="_blank">中国研究生招生信息网</a><a
|
||||
href="https://www.chsi.com.cn/" target="_blank">学信网</a></p></div>
|
||||
</div>
|
||||
</el-col>
|
||||
<el-col :span="2"></el-col>
|
||||
<el-col :span="8">
|
||||
<!-- <div class="qrcode">
|
||||
<div class="qrcode-item">
|
||||
<img src="@/assets/images/qrcode/wx_gh_cbefbadc1f1f_344.jpg" alt="" width="135">
|
||||
<div class="qrcode-text" style="">微信小程序</div>
|
||||
</div>
|
||||
</div> -->
|
||||
</el-col>
|
||||
</el-row>
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
</script>
|
||||
<style scoped lang="scss">
|
||||
//系统使用说明
|
||||
.school-footer_footerBox {
|
||||
width: 1200px;
|
||||
/*margin: 0 auto;*/
|
||||
background: hsla(0, 0%, 98%, .96);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
|
||||
.school-footer_leftIntroduce {
|
||||
padding: 18px;
|
||||
|
||||
h3 {
|
||||
font-size: 20px;
|
||||
color: #000;
|
||||
margin: 0 20px 0 0;
|
||||
}
|
||||
|
||||
a {
|
||||
color: #666;
|
||||
text-decoration: none !important;
|
||||
}
|
||||
|
||||
.school-footer_useIntro {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-bottom: 30px;
|
||||
}
|
||||
|
||||
.school-footer_friendChain a {
|
||||
margin-right: 15px;
|
||||
transition: all .3s;
|
||||
}
|
||||
|
||||
.school-footer_friendChain a:hover {
|
||||
color: var(--el-color-primary);
|
||||
}
|
||||
|
||||
p {
|
||||
font-size: 14px;
|
||||
color: #000;
|
||||
margin-bottom: 15px;
|
||||
word-break: break-all;
|
||||
|
||||
a {
|
||||
font-size: 14px;
|
||||
color: #000;
|
||||
}
|
||||
}
|
||||
|
||||
p:last-child {
|
||||
margin: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
//二维码 start
|
||||
.qrcode {
|
||||
margin: 50px 0;
|
||||
}
|
||||
|
||||
.qrcode .qrcode-item {
|
||||
width: 135px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.qrcode .qrcode-item .qrcode-text {
|
||||
font-weight: bold;
|
||||
color: #000000;
|
||||
}
|
||||
</style>
|
||||
|
|
@ -0,0 +1,191 @@
|
|||
<!-- 院校硕士点列表 -->
|
||||
<template>
|
||||
<div class="flexWrap">
|
||||
<div style="width: 40%;">
|
||||
<Tip title="硕士专业学位授权点"/>
|
||||
<el-table :data="state.professionalMasterDegreeList" border="false" style="width: 100%;margin: 30px 0">
|
||||
<el-table-column type="expand">
|
||||
<template #default="props">
|
||||
<div style="padding:0 30px;">
|
||||
<div class="flexWrap mt-10 mb-10" style="display: flex;flex-direction: row;flex-wrap: wrap;" v-for="(child,chi) in props.row.schoolGraduateDegreeList" :key="chi">
|
||||
<div style="width: 50%;">
|
||||
{{child.researchDirection }}
|
||||
</div>
|
||||
<div style="width: 10%;">
|
||||
<a class="showClick" @click="selectMasterDegree(child.id)">详情</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="学科类别">
|
||||
<template #default="scope">
|
||||
({{ scope.row.subjectCode }}){{ scope.row.disciplineField }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="专业">
|
||||
<template #default="scope">
|
||||
{{ scope.row.majorName.replace('(专业学位)',"") }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<Tip title="硕士学术学位授权点"/>
|
||||
<el-table :data="state.academicMasterDegreeList" border="false" style="width: 100%;margin: 30px 0">
|
||||
<el-table-column type="expand">
|
||||
<template #default="props">
|
||||
<div style="padding:0 30px;">
|
||||
<div class="flexWrap mt-10 mb-10" style="display: flex;flex-direction: row;flex-wrap: wrap;" v-for="(child,chi) in props.row.schoolGraduateDegreeList" :key="chi">
|
||||
<div style="width: 50%;">
|
||||
{{child.researchDirection }}
|
||||
</div>
|
||||
<div style="width: 10%;">
|
||||
<a class="showClick" @click="selectMasterDegree(child.id)">详情</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="学科类别">
|
||||
<template #default="scope">
|
||||
({{ scope.row.subjectCode }}){{ scope.row.disciplineField }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="专业">
|
||||
<template #default="scope">
|
||||
{{ scope.row.majorName.replace('(专业学位)',"") }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
<div style="width: 10%;"></div>
|
||||
<div style="width: 50%;" v-if="state.detail">
|
||||
<div class="flexWrap" style="background-color: #eeeef0;padding: 10px;border-radius: 10px;">
|
||||
<div class="flex-item-3">
|
||||
<div class="fw-6 font-size-20">{{ state.detail.disciplineField }}</div>
|
||||
<div>学科类别</div>
|
||||
</div>
|
||||
<div class="flex-item-3" style="">
|
||||
<div class="fw-6 font-size-20">{{ state.detail.majorNameLimit }}</div>
|
||||
<div>专业</div>
|
||||
</div>
|
||||
<div class="flex-item-3" style="">
|
||||
<div class="fw-6 font-size-20">{{state.detail.researchDirectionLimit}}</div>
|
||||
<div>研究方向</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 信息 -->
|
||||
<div class="flexWrap mt-10 mb-10 pb-10" style="font-size: 20px;" v-for="(key,index) in Object.keys(state.detailKeyList)" :class="index!==Object.keys(state.detailKeyList).length-1?'border-bottom':''" :key="index">
|
||||
<div class="flex-item-3 darkGray">
|
||||
<div class="float-right">{{state.detailKeyList[key]}}</div>
|
||||
</div>
|
||||
<div class="flex-item-7 margin-left-30">
|
||||
<div>{{state.detail[key]||''}}</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 考试范围 -->
|
||||
<Tip title="考试范围" class="mt-30 mb-30"/>
|
||||
<div v-for="(item,index) in state.detail.schoolGraduateDegreeList" :key="index">
|
||||
<div>({{ (index+1) }})</div>
|
||||
<div class="flexWrap mt-10 mb-10 pb-10" style="font-size: 20px;" v-for="(k,iii) in Object.keys(state.categoryList)" :class="iii!==3?'border-bottom':''" :key="k">
|
||||
<div class="flex-item-3 darkGray">
|
||||
<div class="float-right">{{state.categoryList[k]}}</div>
|
||||
</div>
|
||||
<div class="flex-item-7 margin-left-30">
|
||||
<div>{{item[k]||''}}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</template>
|
||||
<script lang="ts" setup>
|
||||
import Tip from '../tip.vue';
|
||||
import { ref, onMounted, reactive } from 'vue';
|
||||
import axiosInstance from '@/utils/http';
|
||||
import { ElMessage } from 'element-plus';
|
||||
import { useRouter } from 'vue-router';
|
||||
import ApiConstant from '@/utils/ApiConstant';
|
||||
const router = useRouter();
|
||||
const props = defineProps({
|
||||
schoolId: {
|
||||
type: String,
|
||||
default: ''
|
||||
}
|
||||
});
|
||||
onMounted(() => {
|
||||
getMasterDegreeList()
|
||||
});
|
||||
const state = reactive({
|
||||
professionalMasterDegreeList:[] as any,// 专硕列表
|
||||
academicMasterDegreeList:[] as any,// 学硕列表
|
||||
detailKeyList:{
|
||||
schoolName:'招生单位',
|
||||
departmentsAndFaculties:'院系所',
|
||||
majorName:'专业',
|
||||
researchDirection:'研究方向',
|
||||
teacher:'指导老师',
|
||||
intendedEnrollment:'拟招人数'
|
||||
} as any,
|
||||
categoryList:{
|
||||
politics:'政治',
|
||||
foreignLanguage:'英语',
|
||||
businessCourse1:'业务课一',
|
||||
businessCourse2:'业务课二'
|
||||
} as any,
|
||||
detail:null as any,
|
||||
})
|
||||
|
||||
// 获取数据
|
||||
const getMasterDegreeList=()=>{
|
||||
if(props.schoolId){
|
||||
axiosInstance({
|
||||
url: ApiConstant.GraduateDegree.findSchoolGraduateDegreeList,
|
||||
method: 'get',
|
||||
params: {
|
||||
schoolId: props.schoolId
|
||||
},
|
||||
// showLoading: false,//是否显示加载图标
|
||||
}).then((response) => {
|
||||
const data = response.data
|
||||
if (data.success) {
|
||||
state.professionalMasterDegreeList = data.result.professionalMasterDegreeList
|
||||
state.academicMasterDegreeList = data.result.academicMasterDegreeList
|
||||
}
|
||||
}).catch((error: any) => {
|
||||
console.log(error);
|
||||
}).finally(() => {
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
//选择硕士专业学位
|
||||
const selectMasterDegree = (e:any)=>{
|
||||
if(props.schoolId){
|
||||
axiosInstance({
|
||||
url: ApiConstant.GraduateDegree.getSchoolGraduateDegreeDetail,
|
||||
method: 'get',
|
||||
params: {
|
||||
id: e
|
||||
},
|
||||
// showLoading: false,//是否显示加载图标
|
||||
}).then((response) => {
|
||||
const data = response.data
|
||||
if (data.success) {
|
||||
state.detail = data.result
|
||||
}
|
||||
}).catch((error: any) => {
|
||||
console.log(error);
|
||||
}).finally(() => {
|
||||
});
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
.flexWrap{
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
</style>
|
||||
|
|
@ -0,0 +1,51 @@
|
|||
<template>
|
||||
<div :style="styleObject">
|
||||
<div :style="textStyleObject">
|
||||
{{ title }}
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { defineProps, computed } from 'vue';
|
||||
// 定义组件属性
|
||||
const props = defineProps({
|
||||
title: {
|
||||
type: String,
|
||||
default: ''
|
||||
},
|
||||
size: {
|
||||
type: String,
|
||||
default: '20px'
|
||||
},
|
||||
color: {
|
||||
type: String,
|
||||
default: '#409eff'
|
||||
}
|
||||
});
|
||||
// 根据传入的颜色生成样式对象
|
||||
const styleObject = computed(() => {
|
||||
let size = props.size
|
||||
if(Number.isNaN(size)){
|
||||
size+= 'px';
|
||||
}
|
||||
return {
|
||||
height: size,
|
||||
borderLeft: `3px solid ${props.color}`,
|
||||
padding: '0 10px'
|
||||
};
|
||||
});
|
||||
const textStyleObject = computed(() => {
|
||||
let size = props.size
|
||||
if(Number.isNaN(size)){
|
||||
size+= 'px';
|
||||
}
|
||||
return {
|
||||
lineHeight: size,
|
||||
fontSize: `${props.size}`,
|
||||
fontWeight: 600
|
||||
};
|
||||
});
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss"></style>
|
||||
|
|
@ -1,7 +1,8 @@
|
|||
// src/main.js
|
||||
// src/main.ts
|
||||
import { createApp } from "vue";
|
||||
import "./style.css";
|
||||
import ElementPlus from "element-plus";
|
||||
import * as ElementPlusIconsVue from '@element-plus/icons-vue';
|
||||
//import VueAxios from 'vue-axios'
|
||||
import 'element-plus/theme-chalk/el-message.css'//全局 Message 消息提示(js文件中使用不支持自动导入的样式)
|
||||
import "element-plus/theme-chalk/el-message-box.css";// messageBox的样式
|
||||
|
|
@ -13,11 +14,11 @@ import "element-plus/theme-chalk/el-notification.css";//Notification的样式
|
|||
import 'element-plus/es/components/form/style/css'//script setup中使用组件时不支持自动导入的样式
|
||||
import 'element-plus/theme-chalk/el-affix.css'//全局 固钉
|
||||
|
||||
import App from "./App.vue";
|
||||
import ElTableInfiniteScroll from "el-table-infinite-scroll";
|
||||
|
||||
import App from "./App.vue";
|
||||
// 引入Vue-Router
|
||||
import Router from "./router";
|
||||
|
||||
// 引入Vue-i18n
|
||||
import i18n from "./lang";
|
||||
// Element Plus全局配置国际化
|
||||
|
|
@ -27,31 +28,25 @@ import en from "element-plus/dist/locale/en.mjs";
|
|||
import axiosInstance from '@/utils/http'//导入请求拦截器request
|
||||
const app = createApp(App);
|
||||
|
||||
for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
|
||||
app.component(key, component)
|
||||
}
|
||||
//axios
|
||||
app.config.globalProperties.$axios=axiosInstance;
|
||||
|
||||
// // 引入Axios
|
||||
// import axios from "axios";
|
||||
// // 后端接口域名
|
||||
// axios.defaults.baseURL = "https://XXX.com";
|
||||
// /**
|
||||
// * 将axios挂载为app的全局自定义属性后,每个组件可以通过this直接访问到全局挂载的自定义属性
|
||||
// * e.g. this.$http.get('/login');
|
||||
// * ===================================
|
||||
// * 如果使用组合式API【setup()语法】,由于vue3.0没有this,需要使用getCurrentInstance来获取上下文
|
||||
// * e.g.如下
|
||||
// */
|
||||
// // const { proxy } = getCurrentInstance();
|
||||
// // proxy.$http.get("/api/getNewsList").then((response) => {
|
||||
// // console.log(response);
|
||||
// // });
|
||||
// app.config.globalProperties.$http = axios; // 关键语句
|
||||
|
||||
// app.use(ElementPlus);
|
||||
app.use(ElementPlus, {
|
||||
// locale: zhCn,
|
||||
locale: localStorage.getItem("locale") === "zh_CN" ? zhCn : en,
|
||||
});
|
||||
app.use(Router);
|
||||
app.use(i18n);
|
||||
app.use(ElTableInfiniteScroll);
|
||||
|
||||
|
||||
// 注册所有图标
|
||||
import 'virtual:svg-icons-register'; // 引入注册脚本
|
||||
import SvgIcon from '@/components/SvgIcon/index.vue';
|
||||
app.component('SvgIcon', SvgIcon);
|
||||
|
||||
//app.provide('$echarts', echarts);
|
||||
app.mount("#app");
|
||||
|
|
@ -6,43 +6,48 @@ const routes = [
|
|||
name: 'index',
|
||||
component: () => import('@/views/index.vue')
|
||||
},
|
||||
/*{
|
||||
{
|
||||
path: '/fillVolunteer',//模拟填报
|
||||
name: 'fillVolunteer',
|
||||
component: () => import('@/views/fillVolunteer/index.vue')
|
||||
},
|
||||
{
|
||||
path: '/myVolunteer',//我的志愿表
|
||||
name: 'myVolunteer',
|
||||
component: () => import('@/views/fillVolunteer/my.vue')
|
||||
},*/
|
||||
path: '/fillVolunteer/:rulesEnrollProbability',//模拟填报
|
||||
name: 'fillVolunteer2',
|
||||
component: () => import('@/views/fillVolunteer/index.vue')
|
||||
},
|
||||
// {
|
||||
// path: '/myVolunteer',//我的志愿表
|
||||
// name: 'myVolunteer',
|
||||
// component: () => import('@/views/fillVolunteer/my.vue')
|
||||
// },
|
||||
{
|
||||
path: '/school/search',//找大学
|
||||
name: 'schoolSearch',
|
||||
component: () => import('@/views/school/search.vue')
|
||||
},
|
||||
/*{
|
||||
{
|
||||
path: '/school/:schoolCode',//学校详情页
|
||||
name: 'school',
|
||||
component: () => import('@/views/school/schoolInfo.vue'),
|
||||
component: () => import('@/views/school/detail.vue'),
|
||||
meta:{
|
||||
title:"学院介绍"
|
||||
}
|
||||
},*/
|
||||
},
|
||||
{
|
||||
path: '/major/search',//查专业
|
||||
name: 'majorSearch',
|
||||
component: () => import('@/views/major/search.vue')
|
||||
},
|
||||
/*{
|
||||
{
|
||||
path: '/major/:majorCode',//专业详情页
|
||||
name: 'major',
|
||||
component: () => import('@/views/major/majorInfo.vue'),
|
||||
meta:{
|
||||
title:"专业概括"
|
||||
}
|
||||
},*/
|
||||
/*{
|
||||
},
|
||||
{
|
||||
path: '/scoreControlLine',//省控线
|
||||
name: 'scoreControlLine',
|
||||
component: () => import('@/views/other/historyScoreControlLine.vue'),
|
||||
|
|
@ -50,14 +55,50 @@ const routes = [
|
|||
title:"省控线"
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
{
|
||||
path: '/checkRanking',//查位次
|
||||
name: 'checkRanking',
|
||||
component: () => import('@/views/other/checkRanking.vue'),
|
||||
meta:{
|
||||
title:"查位次"
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/calculateInvestment',//算投档
|
||||
name: 'calculateInvestment',
|
||||
component: () => import('@/views/other/calculateInvestment.vue'),
|
||||
meta:{
|
||||
title:"算投档"
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/testCultural',//测文化
|
||||
name: 'testCultural',
|
||||
component: () => import('@/views/other/testCultural.vue'),
|
||||
meta:{
|
||||
title:"测文化"
|
||||
}
|
||||
},{
|
||||
path: '/article/search',//
|
||||
name: 'articleSearch',
|
||||
component: () => import('@/views/article/list.vue'),
|
||||
meta:{
|
||||
title:"资讯信息"
|
||||
}
|
||||
},{
|
||||
path: '/article/:articleId',//资讯详情
|
||||
name: 'article',
|
||||
component: () => import('@/views/article/detail.vue'),
|
||||
meta:{
|
||||
title:"资讯详情"
|
||||
}
|
||||
},
|
||||
|
||||
/*{
|
||||
path: '/search',//搜索
|
||||
name: 'search',
|
||||
component: () => import('@/views/search.vue')
|
||||
},
|
||||
|
||||
{
|
||||
path: '/membershipCardList',//会员卡列表
|
||||
name: 'membershipCardList',
|
||||
|
|
@ -82,13 +123,18 @@ const routes = [
|
|||
path: '/login',//登录
|
||||
name: 'login',
|
||||
component: () => import('@/views/login.vue')
|
||||
},
|
||||
},*/
|
||||
{
|
||||
path: '/register',//注册
|
||||
name: 'register',
|
||||
component: () => import('@/views/register.vue')
|
||||
},*/
|
||||
|
||||
},
|
||||
{
|
||||
path: '/passwordChanger',//更改密码
|
||||
name: 'passwordChanger',
|
||||
component: () => import('@/views/passwordChanger.vue')
|
||||
},
|
||||
|
||||
// {path : '/:pathMatch(.*)*', redirect:{name:'index'}}//其余路由重定向至首页。
|
||||
{ path: '/:pathMatch(.*)*', redirect: () => {
|
||||
return { name: 'index' };//重定向的 字符串路径/路径对象
|
||||
|
|
|
|||
|
|
@ -0,0 +1,9 @@
|
|||
import mitt from "mitt";
|
||||
|
||||
type Events = {
|
||||
sendMsg: string;
|
||||
sendNum: number;
|
||||
};
|
||||
|
||||
const bus = mitt<Events>();
|
||||
export default bus;
|
||||
|
|
@ -1,12 +1,13 @@
|
|||
:root {
|
||||
font-family: Inter, Avenir, Helvetica, Arial, sans-serif;
|
||||
/* font-family: Inter, Avenir, Helvetica, Arial, sans-serif; */
|
||||
font-family:Microsoft Yahei, 微软雅黑, Arial, Helvetica, sans-serif !important;
|
||||
font-size: 16px;
|
||||
line-height: 24px;
|
||||
font-weight: 400;
|
||||
|
||||
color-scheme: light dark;
|
||||
color: rgba(255, 255, 255, 0.87);
|
||||
background-color: #242424;
|
||||
/* background-color: #242424; */
|
||||
|
||||
font-synthesis: none;
|
||||
text-rendering: optimizeLegibility;
|
||||
|
|
@ -53,22 +54,24 @@ h1 {
|
|||
|
||||
button {
|
||||
border-radius: 8px;
|
||||
border: 1px solid transparent;
|
||||
/* border: 1px solid transparent; */
|
||||
padding: 0.6em 1.2em;
|
||||
font-size: 1em;
|
||||
font-weight: 500;
|
||||
font-family: inherit;
|
||||
background-color: #1a1a1a;
|
||||
/* background-color: #1a1a1a; */
|
||||
cursor: pointer;
|
||||
transition: border-color 0.25s;
|
||||
}
|
||||
|
||||
button:hover {
|
||||
border-color: #646cff;
|
||||
}
|
||||
button:focus,
|
||||
/* button 点击后移出按钮时增加边框 */
|
||||
/* button:focus,
|
||||
button:focus-visible {
|
||||
outline: 4px auto -webkit-focus-ring-color;
|
||||
}
|
||||
} */
|
||||
|
||||
.card {
|
||||
padding: 2em;
|
||||
|
|
|
|||
|
|
@ -1,3 +1,14 @@
|
|||
//路由参数
|
||||
export interface RouterEntity{
|
||||
id:number,
|
||||
name:string,
|
||||
url:string,
|
||||
parentId:number,
|
||||
childColumn:Array,
|
||||
sort:number,
|
||||
linkMode:number,
|
||||
}
|
||||
|
||||
///艺考
|
||||
export interface FillVolunteer{
|
||||
type:string,
|
||||
|
|
@ -35,6 +46,12 @@ export interface MajorEntity{
|
|||
}
|
||||
|
||||
export interface SchoolEntity{
|
||||
id:string,
|
||||
arwuRanking:string,//软科排名
|
||||
schoolResearchTeaching:any,//科研教学
|
||||
femaleRatio:Number,//男生占比
|
||||
maleRatio:Number,//女生占比
|
||||
|
||||
schoolName:string,
|
||||
schoolCode:string,
|
||||
schoolIcon:string,
|
||||
|
|
@ -66,3 +83,32 @@ export interface ScoreControlLineEntity{
|
|||
}
|
||||
|
||||
//========================================
|
||||
//专业选课对象
|
||||
export interface SubjectsEntity{
|
||||
label:string,//名称
|
||||
value:string,//值
|
||||
exclude:string,//排斥选课
|
||||
scoreMax:number,//最高分
|
||||
children:Array,//子级
|
||||
}
|
||||
|
||||
//用户成绩对象
|
||||
export interface ScoreInfoEntity{
|
||||
meBatchLevel:number,//我的批次等级
|
||||
province:string,//省份
|
||||
cognitioPolyclinic:string,//科类 文科/理科
|
||||
professionalCategory:string,//报考方向 美术与设计类/音乐类....
|
||||
batch:string,
|
||||
culturalScore: number,//文化分
|
||||
professionalScore: number,//统考分
|
||||
chineseScore: number,//语文成绩
|
||||
englishScore: number,//英语成绩
|
||||
subjects:Array<string>,//专业选课
|
||||
professionalCategoryChildren:string,//专业选课 strs 拼接
|
||||
yybysy:number,//音乐表演声乐
|
||||
yybyqy:number,//音乐表演器乐
|
||||
yyjy:number,//音乐教育
|
||||
fzby:number,//服装表演
|
||||
xjysdy:number,//戏剧影视导演
|
||||
xjysby:number,//戏剧影视表演
|
||||
}
|
||||
|
|
@ -1,46 +1,79 @@
|
|||
// @ts-ignore
|
||||
const Major={
|
||||
majorList:'/web/major/list',//获取专业信息表
|
||||
majorTypeList:'/web/major/typeList',//专业类型列表
|
||||
recommendMajorPage:'/art/recommendMajor/page',//获取推荐专业列表
|
||||
recommendMajorList:'/art/recommendMajor/list',//获取学校的其他专业
|
||||
schoolMajorDtoPage:'/yx/yxSchoolMajor/dtoPage',//获取学校开设专业分页数据
|
||||
schoolHistoryMajorEnrollList:'/yx/yxHistoryMajorEnroll/list',//获取学校的分数计划
|
||||
schoolMajorList:'/yx/yxSchoolMajor/list',//获取school_major 数据
|
||||
majorList:'/yx/yxMajor/list',//获取专业信息表-分页列表查询
|
||||
majorInfo:'/art/major/majorInfo',//获取专业详情
|
||||
schoolMajorList:'/web/major/schoolMajorList',//获取school_major 数据
|
||||
|
||||
majorInfo:'/mini/major/majorInfo',//获取专业详情
|
||||
rulesEnrollrobabilityMenuList: '/mini/major/rulesEnrollrobabilityMenuList',
|
||||
testCultural:'/web/major/testCultural',//测文化
|
||||
}
|
||||
//用户类
|
||||
const User={
|
||||
exchangeVipCard:'/yx/yxVipCard/exchange',//兑换vip卡
|
||||
login:'/web/user/login/passwd',//登录
|
||||
register:'/web/user/register',//注册
|
||||
logout:'/sys/logout',//退出
|
||||
checkPhoneAvailable:'/web/user/checkPhoneAvailable',
|
||||
passwordChanger:'/web/user/passwordChanger',//更改密码
|
||||
}
|
||||
const System={
|
||||
findPassWord:'/sys/findPassWord',//找回密码
|
||||
}
|
||||
//高考分数类
|
||||
const Score={
|
||||
scoreList:'/web/user/score/scoreList',//用戶成績列表
|
||||
scoreSave:"/yx/yxScore/save",//保存用户专业得分
|
||||
getScore:"/yx/yxScore/getUserScoreInfo",//获取当前用户的高考分数信息
|
||||
getScore:"/web/user/score/getUserScoreInfo",//获取当前用户的高考分数信息
|
||||
todayOfEditScoreCount:'/web/user/score/todayOfEditScoreCount',//今天可编辑成绩次数
|
||||
conversionScoreBatch:"/yx/yxHistoryScoreBatch/conversionScoreBatch",//获取分数批次段
|
||||
historyScoreControlLineList:'/yx/yxHistoryScoreControlLine/list',//省控线分页列表
|
||||
scoreSegmentSearchByScore: '/yx/yxScoreSegment/searchByScore',//获取五分一段信息
|
||||
testCultural: '/art/recommendMajor/testCultural',//文化分测算
|
||||
calculateInvestment: '/art/recommendMajor/calculateInvestment',//投档分测算
|
||||
|
||||
scoreSegmentList:'/web/scoreSegment/list',//五分一段表
|
||||
}
|
||||
//学校类
|
||||
const School = {
|
||||
searchSchoolList:"/art/school/search",//搜索 学校列表
|
||||
schoolInfo:"/art/school/schoolInfo",//学校介绍详情
|
||||
hotSchoolList:'/art/school/hotList',//热门院校 列表
|
||||
searchSchoolList:"/web/school/search",//搜索 学校列表
|
||||
schoolInfo:"/web/school/schoolInfo",//学校介绍详情
|
||||
hotSchoolList:'/web/school/hotList',//热门院校 列表
|
||||
doubleFirstPlan:'/mini/school/doubleFirstPlan',//院校双万计划
|
||||
subjectEvaluation:'/mini/school/subjectEvaluation',//院校第四轮学科评估
|
||||
}
|
||||
//志愿
|
||||
const Volunteer={
|
||||
volunteerList:'/web/volunteer/volunteerList',//我的志愿表列表
|
||||
volunteerSaveBatch:'/web/volunteer/saveBatch',//批量添加志愿明细信息
|
||||
volunteerDeleteBatch:'/web/volunteer/deleteBatch',//批量删除志愿明细信息
|
||||
switchVolunteer: '/art/volunteer/switchVolunteer',//切换志愿及成绩
|
||||
volunteerDelete: '/art/volunteer/delete',//志愿表删除
|
||||
editNowVolunteerName:'/web/volunteer/editNowVolunteerName',//更改当前志愿表名称
|
||||
exchangeIndexs:'art/volunteer/exchangeIndexs',//切换志愿顺序
|
||||
///========================
|
||||
volunteerDetail:'/art/volunteer/artVolunteerDetail',//查看已报志愿信息
|
||||
recommendMajorPage:'/web/major/recommendMajor/page',//推荐志愿专业列表
|
||||
volunteerSave:"/art/volunteer/save",//保存用户的志愿
|
||||
volunteerList:'/art/volunteer/list',
|
||||
volunteerInfo:'/art/volunteer/info',
|
||||
volunteerPage:'/art/volunteer/page',
|
||||
volunteerRecordDel:'/art/volunteer/recordDel',//删除志愿明细
|
||||
volunteerRecordReplace:'/art/volunteer/replaceVolunteer',//替换志愿明细
|
||||
}
|
||||
const Article={
|
||||
articlePage: '/mini/article/page',//文章列表
|
||||
articleContent: '/mini/article/articleContent',//文章详细内容
|
||||
}
|
||||
const GraduateDegree={
|
||||
findSchoolGraduateDegreeList:'/mini/schoolGraduateDegree/findSchoolGraduateDegreeList',//获取院校下的研究生点列表
|
||||
getSchoolGraduateDegreeDetail:'/mini/schoolGraduateDegree/getSchoolGraduateDegreeDetail',//获取院校下的研究生点列表
|
||||
majorGroupAll:'/mini/schoolGraduateDegree/majorGroupAll',//艺考考研列表数据
|
||||
}//研究生点信息
|
||||
|
||||
export default
|
||||
{
|
||||
Major,User,Score,School,Volunteer,System
|
||||
Major,User,Score,School,Volunteer,System,Article,GraduateDegree
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,16 @@
|
|||
// @ts-ignore
|
||||
import img1 from '@/assets/images/bao/较稳妥.png'
|
||||
import img2 from '@/assets/images/bao/可保底.png'
|
||||
import img3 from '@/assets/images/bao/可冲击.png'
|
||||
import img4 from '@/assets/images/bao/难录取.png'
|
||||
|
||||
//录取概率图片
|
||||
const enrollProbability={
|
||||
jwt:img1,//较稳妥
|
||||
kbd:img2,//可保底
|
||||
kcj:img3,//可冲击
|
||||
nan:img4,//难录取
|
||||
}
|
||||
export default{
|
||||
enrollProbability
|
||||
}
|
||||
|
|
@ -1,4 +1,14 @@
|
|||
// @ts-ignore
|
||||
|
||||
//默认导航栏
|
||||
const defaultRouterList = [
|
||||
{id: 1,name: "首页",parentId: 0,childColumn: [],sort: 100,linkMode: 3,url: "index"},
|
||||
{id: 2,name: "模拟报志愿",parentId: 0,childColumn: [],sort: 30,linkMode: 3,url: "fillVolunteer"},
|
||||
{id: 3, name: "找大学", parentId: 0, childColumn: [], sort: 75, linkMode: 3, url: "school/search"},
|
||||
{id: 4, name: "查专业", parentId: 0, childColumn: [], sort: 75, linkMode: 3, url: "major/search"},
|
||||
]
|
||||
|
||||
|
||||
/*就读地域编码列表*/
|
||||
const addressList = [
|
||||
{name: "北京", code: "北京"},
|
||||
|
|
@ -49,21 +59,22 @@ const institutionTypeList = [
|
|||
]
|
||||
/*学校类型标签*/
|
||||
const schoolTypeList = [
|
||||
{name: "本科", code: "本科"},
|
||||
{name: "专科", code: "专科"},
|
||||
// {name: "本科", code: "本科"},
|
||||
// {name: "专科", code: "专科"},
|
||||
{name: "公办", code: "公办"},
|
||||
{name: "民办", code: "民办"},
|
||||
{name: "中外合作办学", code: "中外合作办学"},
|
||||
{name: "内地与港澳台地区合作办学", code: "内地与港澳台地区合作办学"},
|
||||
// {name: "内地与港澳台地区合作办学", code: "内地与港澳台地区合作办学"},
|
||||
]
|
||||
|
||||
const tagsList = [
|
||||
{name: "211", code: "211"},
|
||||
{name: "985", code: "985"},
|
||||
{name: "211", code: "211,"},
|
||||
{name: "双一流", code: "双一流"},
|
||||
{name: "教育部直属", code: "教育部直属"},
|
||||
{name: "中央部委", code: "中央部委"},
|
||||
{name: "强基计划", code: "强基计划"},
|
||||
{name: "全国重点大学", code: "全国重点大学"},
|
||||
// {name: "教育部直属", code: "教育部直属"},
|
||||
// {name: "中央部委", code: "中央部委"},
|
||||
// {name: "强基计划", code: "强基计划"},
|
||||
]
|
||||
|
||||
const tagsList2 = [
|
||||
|
|
@ -91,6 +102,7 @@ const hostoryYear = [
|
|||
]
|
||||
|
||||
const allYear = [
|
||||
{label: "2024"},
|
||||
{label: "2023"},
|
||||
{label: "2022"},
|
||||
{label: "2021"},
|
||||
|
|
@ -106,8 +118,33 @@ const batchOptions = [
|
|||
]
|
||||
|
||||
//专业类型
|
||||
const professionalCategoryList= [
|
||||
{value: '美术与设计类', label: '美术与设计类', scoreMax: 300,},
|
||||
{value: '播音与主持类', label: '播音与主持类', scoreMax: 300,},
|
||||
{
|
||||
value: '表演类', label: '表演类', scoreMax: 300, children: [
|
||||
{label: '服装表演', value: '服装表演'},
|
||||
{label: '戏剧影视导演', value: '戏剧影视导演'},
|
||||
{label: '戏剧影视表演', value: '戏剧影视表演'}
|
||||
]
|
||||
},
|
||||
{
|
||||
value: '音乐类', label: '音乐类', scoreMax: 300, children: [
|
||||
{label: '音乐表演声乐', value: '音乐表演声乐', exclude: '音乐表演器乐'},
|
||||
{label: '音乐表演器乐', value: '音乐表演器乐', exclude: '音乐表演声乐'},
|
||||
{label: '音乐教育', value: '音乐教育'}
|
||||
]
|
||||
},
|
||||
{value: '舞蹈类', label: '舞蹈类', scoreMax: 300,},
|
||||
|
||||
{value: '书法类', label: '书法类', scoreMax: 300,},
|
||||
{value: '戏曲类', label: '戏曲类', scoreMax: 300},
|
||||
{value: '体育类', label: '体育类', scoreMax: 150,},
|
||||
/*{value: '艺术舞蹈类', label: '艺术舞蹈类', scoreMax: 200},
|
||||
{value: '国际标准舞类', label: '国际标准舞类', scoreMax: 200},*/
|
||||
]
|
||||
const zyOptions = [
|
||||
{value: '美术类', label: '美术类', scoreMax: 300},
|
||||
{value: '美术与设计类', label: '美术与设计类', scoreMax: 300},
|
||||
{value: '体育类', label: '体育类', scoreMax: 150},
|
||||
{value: '音乐类', label: '音乐类', scoreMax: 200},
|
||||
{value: '艺术舞蹈类', label: '艺术舞蹈类', scoreMax: 200},
|
||||
|
|
@ -150,5 +187,5 @@ const subjectCategorys = {
|
|||
}
|
||||
|
||||
export default {
|
||||
addressList, institutionTypeList, schoolTypeList, tagsList, tagsList2, hostoryYear, batchOptions, zyOptions, klOptions,subjectCategorys,allYear,rulesEnrollProbabilityList
|
||||
professionalCategoryList,defaultRouterList,addressList, institutionTypeList, schoolTypeList, tagsList, tagsList2, hostoryYear, batchOptions, zyOptions, klOptions,subjectCategorys,allYear,rulesEnrollProbabilityList
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ import { LoadingInstance } from 'element-plus/lib/components/loading/src/loading
|
|||
import createRouter from '@/router'
|
||||
import debounce from "lodash/debounce";
|
||||
import store from "@/store";
|
||||
import {isNotNull, isNull} from "@/utils/tool";
|
||||
import {clearUserIocalStorage, isNotNull, isNull} from "@/utils/tool";
|
||||
|
||||
//获取TOken
|
||||
export const getAccessToken = ()=>{
|
||||
|
|
@ -103,10 +103,8 @@ axiosInstance.interceptors.request.use((config: any) => {
|
|||
if(config.isCorsDefaultHeaders == undefined || config.isCorsDefaultHeaders == false){
|
||||
config.headers['X-Requested-With'] = 'XMLHttpRequest';
|
||||
}
|
||||
|
||||
|
||||
//判断当前请求是否设置了不显示Loading
|
||||
if(config.showLoading !== false){
|
||||
if(config.showLoading === undefined ||config.showLoading !== false){
|
||||
showLoading(config.loadingTarget as string | HTMLElement,config.loadingMask as boolean);
|
||||
}
|
||||
if (config.method === 'get' && config.timestamp !== false){
|
||||
|
|
@ -208,6 +206,7 @@ axiosInstance.interceptors.response.use((response: AxiosResponse) => {
|
|||
},
|
||||
// 请求失败
|
||||
(error: any) => {
|
||||
console.log('请求失败')
|
||||
if(error.response){
|
||||
switch (error.response.status) {
|
||||
case 400:
|
||||
|
|
@ -220,22 +219,35 @@ axiosInstance.interceptors.response.use((response: AxiosResponse) => {
|
|||
break;
|
||||
case 401:
|
||||
console.log('登录失效')
|
||||
let token = getAccessToken() as string
|
||||
//有token情况
|
||||
if (isNull(getAccessToken() as string)) {
|
||||
if (isNotNull(token)) {
|
||||
//如果没有登录过
|
||||
//直接跳转到登录页
|
||||
//删除会话token
|
||||
removeAccessToken()
|
||||
clearUserIocalStorage();
|
||||
ElMessage({
|
||||
showClose: true,
|
||||
message: '登录状态失效',
|
||||
type: 'error',
|
||||
})
|
||||
createRouter.push({
|
||||
path : '/index'
|
||||
});
|
||||
setTimeout(function(){
|
||||
window.location.reload()
|
||||
}, 1000);
|
||||
}else{
|
||||
ElMessage({
|
||||
showClose: true,
|
||||
message: '请先登录',
|
||||
type: 'error',
|
||||
})
|
||||
createRouter.push({
|
||||
path : '/login'
|
||||
path : '/index'
|
||||
});
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case 403:
|
||||
ElMessage({
|
||||
showClose: true,
|
||||
|
|
|
|||
|
|
@ -1,5 +1,29 @@
|
|||
import { number } from 'echarts';
|
||||
import { ElMessageBox, MessageBoxState } from 'element-plus'
|
||||
import type { Action } from 'element-plus'
|
||||
/**
|
||||
* 清除用户的一些缓存数据
|
||||
*/
|
||||
export const clearUserIocalStorage = () =>{
|
||||
localStorage.removeItem('vipInfo');
|
||||
localStorage.removeItem('scoreInfo');
|
||||
localStorage.removeItem('userInfo');
|
||||
localStorage.removeItem('volunteer');
|
||||
localStorage.removeItem('fillVolunteer');
|
||||
localStorage.removeItem('X-Access-Token');
|
||||
}
|
||||
//判断vip等级
|
||||
export const checkLevel = (level:number) =>{
|
||||
if(level===0){
|
||||
return true;
|
||||
}
|
||||
let vipInfo = localStorage.getItem('vipInfo') as any
|
||||
if(vipInfo){
|
||||
vipInfo = JSON.parse(vipInfo);
|
||||
return vipInfo.vipLevel >= number
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
/**
|
||||
* 判断 Array 对象参数不为null且其size不等于0
|
||||
|
|
@ -74,3 +98,11 @@ export function convertToChinaNum(num: number) {
|
|||
result = result.replace(/^一十/g, '十');
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取系统名称
|
||||
*/
|
||||
export function getSystemName(){
|
||||
let systemName = '艺体志愿宝'
|
||||
return systemName;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,11 +0,0 @@
|
|||
<script setup>
|
||||
|
||||
</script>
|
||||
|
||||
<template>
|
||||
Major
|
||||
</template>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
|
|
@ -0,0 +1,83 @@
|
|||
<template>
|
||||
<div style="background-color: white">
|
||||
<div class="main-container wrap main-fullScreen">
|
||||
<div v-if="state.flag" class="rich-text" v-html="state.richTextContent"></div>
|
||||
<div v-else>
|
||||
<div class="not-found">
|
||||
<h1>404 - 页面未找到</h1>
|
||||
<p>抱歉,您要访问的页面不存在。</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<el-backtop :bottom="100" :visibility-height="100">
|
||||
<el-icon color="#409efc" class="no-inherit">
|
||||
<ArrowUpBold />
|
||||
</el-icon>
|
||||
</el-backtop>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import {onMounted, reactive} from 'vue';
|
||||
import ApiConstant from '@/utils/ApiConstant';
|
||||
import axiosInstance from '@/utils/http';
|
||||
import { useRoute } from 'vue-router';
|
||||
const { query, params } = useRoute();
|
||||
document.title = '招生章程|艺体志愿宝';
|
||||
//获取页面传参
|
||||
let articleId = params.articleId
|
||||
const state = reactive({
|
||||
flag:true,
|
||||
richTextContent: ''
|
||||
})
|
||||
onMounted(() => {
|
||||
getArticleDetail()
|
||||
})
|
||||
|
||||
function getArticleDetail(){
|
||||
if(!articleId || articleId===undefined || articleId===null){
|
||||
state.flag = false
|
||||
return false
|
||||
}
|
||||
axiosInstance({
|
||||
url: ApiConstant.Article.articleContent+'/'+articleId,
|
||||
method: 'get',
|
||||
params:{},
|
||||
showLoading: false,//是否显示加载图标
|
||||
}).then((response) => {
|
||||
return response.data
|
||||
}).then((data) => {
|
||||
if(data.result){
|
||||
state.richTextContent = data.result.content
|
||||
document.title = data.result.title+'|艺体志愿宝';
|
||||
}else{
|
||||
state.flag = false
|
||||
}
|
||||
}).catch((error: any) => {
|
||||
console.log(error);
|
||||
}).finally(() => {
|
||||
});
|
||||
}
|
||||
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
*{
|
||||
background-color: white;
|
||||
}
|
||||
.rich-text{
|
||||
margin: 0 auto;
|
||||
}
|
||||
.not-found {
|
||||
text-align: center;
|
||||
margin-top: 50px;
|
||||
}
|
||||
|
||||
.not-found h1 {
|
||||
font-size: 2em;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.not-found p {
|
||||
font-size: 1.2em;
|
||||
}
|
||||
</style>
|
||||
|
|
@ -0,0 +1,202 @@
|
|||
<template>
|
||||
<div class="margin-5"></div>
|
||||
<div class="main-container wrap main-fullScreen">
|
||||
<!--筛选项-->
|
||||
<div class="filterTable">
|
||||
<div class="filterBody">
|
||||
<div class="flexWrap">
|
||||
<div class="flex-item-5 tags">
|
||||
<span class="tag" :class="state.selectForm.type === item.type ? 'tag-active' : ''"
|
||||
v-for="(item, index) in state.articleTypeList" :key="index" @click="selectArticleType(item)">
|
||||
{{ item.name }}
|
||||
</span>
|
||||
</div>
|
||||
<div class="flex-item-5">
|
||||
<div class="searchSchool">
|
||||
<el-input v-model="state.selectForm.title" maxlength="24" show-word-limit
|
||||
style="max-width: 230px;height: 40px;line-height: 40px;" placeholder="输入院校名称"
|
||||
class="input-with-select" clearable/>
|
||||
<el-button :icon="Search" @click="reloadSearch"
|
||||
style="border-left: none;height: 40px;line-height: 40px;" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="articleList" style="background-color: white">
|
||||
<div class="item" v-for="(item,index) in state.articleList" :key="index">
|
||||
<div class="">
|
||||
<router-link :to="{ path: '/article/'+item.id, query: { } }" target="_blank">
|
||||
<div class="item-title">{{ item.title }}</div>
|
||||
<div class="item-other-info">{{ item.date||'' }}</div>
|
||||
</router-link>
|
||||
</div>
|
||||
</div>
|
||||
<div style="padding: 20px">
|
||||
<el-pagination
|
||||
@current-change="handleCurrentChange"
|
||||
:current-page="state.articlePage.currentPage"
|
||||
:page-size="state.selectForm.pageSize"
|
||||
background
|
||||
:total="state.articlePage.total"
|
||||
layout="prev, pager, next"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
import { onMounted, reactive } from 'vue';
|
||||
import { Search } from '@element-plus/icons-vue';
|
||||
import ApiConstant from '@/utils/ApiConstant';
|
||||
import axiosInstance from '@/utils/http';
|
||||
import { useRoute } from "vue-router";
|
||||
const route = useRoute();
|
||||
const state = reactive({
|
||||
selectForm: {
|
||||
type: '1',
|
||||
title:'',
|
||||
pageNum: 1,
|
||||
pageSize: 10
|
||||
} as any,
|
||||
articleTypeList: [{
|
||||
type: '1',
|
||||
name: '招生章程'
|
||||
}, {
|
||||
type: '2',
|
||||
name: '高考动态'
|
||||
}, {
|
||||
type: '3',
|
||||
name: '校内资讯'
|
||||
}] as any,
|
||||
articlePage:{
|
||||
currentPage:0,
|
||||
total:0,
|
||||
} as any,
|
||||
articleList:[] as any,
|
||||
articleList2: [
|
||||
{
|
||||
id:'1765345402544730114',
|
||||
title: "北京市2024年艺术类专业招生工作实施办法公布!",
|
||||
author: "圣达信教育",
|
||||
date: "2024-05-08 18:27:33",
|
||||
read_count: 7
|
||||
},
|
||||
{
|
||||
title: "北京市2024年高校艺术类专业招生问答来了!",
|
||||
author: "圣达信教育",
|
||||
date: "2024-05-08 18:27:25",
|
||||
read_count: 1
|
||||
},
|
||||
{
|
||||
title: "北京市2024年高招工作规定出炉!本科普通批可填报30个志愿",
|
||||
author: "圣达信教育",
|
||||
date: "2024-05-08 18:22:15",
|
||||
read_count: 0
|
||||
},
|
||||
{
|
||||
title: "北京高招体检3月10日启动,体检注意事项来啦",
|
||||
author: "圣达信教育",
|
||||
date: "2024-02-28 17:49:47",
|
||||
read_count: 1
|
||||
},
|
||||
{
|
||||
title: "北京市2024年艺术类统考合格分数线公布",
|
||||
author: "圣达信教育",
|
||||
date: "2024-01-08 11:33:52",
|
||||
read_count: 2
|
||||
},
|
||||
{
|
||||
title: "2024年北京美术类专业统考成绩查询开通",
|
||||
author: "圣达信教育",
|
||||
date: "2024-01-08 10:18:01",
|
||||
read_count: 0
|
||||
},
|
||||
{
|
||||
title: "2024年九大美院美术类校考专业有这些变化!",
|
||||
"category": "解读与指导",
|
||||
author: "圣达信教育",
|
||||
date: "2023-12-18 17:14:19",
|
||||
read_count: 0
|
||||
},
|
||||
{
|
||||
title: "北京明天9时起!高考网上填报个人信息并缴费",
|
||||
author: "圣达信教育",
|
||||
date: "2023-10-31 17:26:58",
|
||||
read_count: 0
|
||||
},
|
||||
{
|
||||
title: "北京艺术类考试招生专业目录来了",
|
||||
author: "圣达信教育",
|
||||
date: "2023-10-30 20:10:39",
|
||||
read_count: 0
|
||||
},
|
||||
{
|
||||
title: "京籍考生明起报名,报名详细流程和注意事项请收藏",
|
||||
author: "圣达信教育",
|
||||
date: "2023-10-24 17:40:41",
|
||||
read_count: 0
|
||||
}
|
||||
] as any
|
||||
})
|
||||
|
||||
onMounted(()=>{
|
||||
if(route.query.type && ['1','2','3'].includes(route.query.type as any)){
|
||||
state.selectForm.type = route.query.type
|
||||
}
|
||||
getArticleList()
|
||||
})
|
||||
|
||||
function getArticleList() {
|
||||
axiosInstance({
|
||||
url: ApiConstant.Article.articlePage,
|
||||
method: 'get',
|
||||
params: state.selectForm
|
||||
}).then((res: any) => {
|
||||
if(res.data.result){
|
||||
console.log(res.data.result)
|
||||
state.articlePage.currentPage = res.data.result.current
|
||||
state.articlePage.total = res.data.result.total
|
||||
state.articleList = res.data.result.records
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
function handleCurrentChange(val:any){
|
||||
state.selectForm.pageNum = val;
|
||||
getArticleList()
|
||||
}
|
||||
function reloadSearch(){
|
||||
state.selectForm.pageNum = 1
|
||||
getArticleList()
|
||||
}
|
||||
|
||||
function selectArticleType(e: any) {
|
||||
state.selectForm.type = e.type
|
||||
state.selectForm.pageNum = 1
|
||||
getArticleList()
|
||||
}
|
||||
</script>
|
||||
<style scoped lang="scss">
|
||||
.wrap {
|
||||
width: 1210px;
|
||||
}
|
||||
|
||||
.item{
|
||||
padding: 10px 20px;
|
||||
border-bottom: 1px solid #f4f4f4;
|
||||
.item-title{
|
||||
color: #111111;
|
||||
font-weight: 700;
|
||||
font-size: 16px;
|
||||
line-height: 30px;
|
||||
}
|
||||
.item-other-info{
|
||||
font-size: 14px;
|
||||
color:#bbb;
|
||||
cursor: text;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
</style>
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
<script setup>
|
||||
|
||||
</script>
|
||||
|
||||
<template>
|
||||
fillVolunteer
|
||||
</template>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
|
|
@ -0,0 +1,179 @@
|
|||
<script lang="ts" setup>
|
||||
import {ref, getCurrentInstance, ComponentInternalInstance, reactive} from 'vue'
|
||||
import {ElMessage} from 'element-plus'
|
||||
//图片
|
||||
import image1 from '@/assets/images/gk/2023/sxznps.jpg';
|
||||
import image2 from '@/assets/images/gk/2023/ddps.jpg';
|
||||
import image3 from '@/assets/images/gk/2023/gzdz1200.jpg';
|
||||
|
||||
//=============
|
||||
import {Swiper, SwiperSlide} from "swiper/vue";
|
||||
import {Navigation, Pagination, Scrollbar, A11y, Autoplay} from 'swiper';
|
||||
import "swiper/css";
|
||||
import ApiConstant from "@/utils/ApiConstant";
|
||||
import { getScore } from '@/axios/api';
|
||||
import SystemHelp from '@/components/SystemHelp.vue';
|
||||
|
||||
document.title = '河南艺体考生专属VIP|艺体志愿宝';
|
||||
//轮播图组件参数
|
||||
const {proxy} = getCurrentInstance() as ComponentInternalInstance;
|
||||
const modules = [Navigation, Pagination, Scrollbar, A11y, Autoplay];
|
||||
const onSwiper = (swiper: any) => {
|
||||
//console.log(swiper);
|
||||
};
|
||||
const navigation = ref({
|
||||
nextEl: '.button-next',
|
||||
prevEl: '.button-prev',
|
||||
})
|
||||
const prevEl = () => {
|
||||
// console.log('上一张' + index + item)
|
||||
}
|
||||
const nextEl = () => {
|
||||
// console.log('下一张')
|
||||
}
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div class="margin-5"></div>
|
||||
<div class="main-container wrap main-fullScreen">
|
||||
<el-row :gutter="20">
|
||||
<!-- 轮播图-->
|
||||
<el-col :span="18">
|
||||
<div class="header_swiper">
|
||||
<Swiper
|
||||
:modules="modules"
|
||||
:pagination="true"
|
||||
:mousewheel="true"
|
||||
:keyboard="true"
|
||||
@swiper="onSwiper"
|
||||
:navigation="navigation"
|
||||
:autoplay="{ delay: 3000, disableOnInteraction: false }"
|
||||
:loop="true"
|
||||
>
|
||||
<swiper-slide style="width: 1200px">
|
||||
<img :src="image1" alt="Image"/>
|
||||
</swiper-slide>
|
||||
<swiper-slide style="width: 1200px">
|
||||
<img :src="image2" alt="Image"/>
|
||||
</swiper-slide>
|
||||
<swiper-slide style="width: 1200px">
|
||||
<img :src="image3" alt="Image"/>
|
||||
</swiper-slide>
|
||||
</Swiper>
|
||||
</div>
|
||||
<div class="swiper-scrollbar"></div>
|
||||
<div class='button-prev' @click.stop='prevEl'>
|
||||
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAwCAYAAAAPfWqeAAADpUlEQVRYR73YX2gcRRwH8N9v7vyDIiJSqtJaFEVRLBSs+CAotNogRZTs7s2sUEgFhQr1QR/aBxVsH3xRWvtQqf9Q4TZOdtOeOUOjbc4HoYpBQfClD75JIzHV9BrTO2/zlc3NJmtzyf3bu31clt9nfjO/mZ0Zph49ANjzRg4x0xDAR7kXDgAxPDxyAqAXovjM9HvqUIR4nv8JEfbESTDzgVQhrXUmDPlzACqBHFbKfj01qFQqZaen/8wDsGNECHpTSuetpe5LY4ympqauOX/+N01EzyaQg1I6by9n1i00Pj5+3dzcvA9g90osfs117XeSsbvKqFQqXT89PXMSoIGVMRGvKGW9d3UCHUNjY2M3lMsLBSLaWS9hBjNeltI53qiXOoImJiZuvHjxUhHAEyboohD8kpT2h2sNRdtQoVC4aX6+Mk5Ej8UIkdjrutan6413W5DW+uYwpNMAPWpmfEhEe5Ry8s2KqmWoWCzeUi7/MwHQdjMmNYCfd10rKuumT0vQ6OjorZVK+A2AbSbiv8yUU8o52VQwHzSFtNYbwpDPANhqMqkIwXYuZ421ijRdGfL5wkaiyiQRPWCCXiGi51zXOd0Osi7keYU7gCXkPjPwC0JknsnlBs+0i6wJBUGwqVoNSwDdY4LOM/NupexvO0EaQkEQbDHIXfWgXM5m8bTjON91iqyCgiC4u1JZnCTCFhP0UjZLA47jnOsG+R/k+/691SoiZJPJ5G8hxFNSDv7YLbIM+b5/v0FuN8isQX5KA1mC8nn/QebFswBtNNU1A4idrmv9khZiIP0DET1ikD8AscN1rV/TRPoN9anrorQaFQMzP6mU9XNaXbi8qK4ub/pLiMyuVMs7bnU0Yc2qcKcpjjnmzICUg993m9mq30RflqC41Z53ajNRdbKni+oK1offRIxprW+r1ehsT398CWyDwR6qFwhXmMmS0i62UyBN9wxRsL5sTuJW17dbC18DeNhkVmMmV0p7pJXMWsoo0Y2930DGWKMtsRA8JKX92XqZtZVRHCja5M/Ozn1FRI+bd4vM9KJSzkdrYR1BUbDo2HL58pUvAewwYwYi3qeU9X4jrGMoChYdxC5cmDlFRLtWgvN+17WPXY11BUXBGh0thaBXpXTeTWJdQ1EwrfW1tRp90dPDctzq+vF/xgPIit8x8xtK2YeWxrCVydbqN3250EhM6kytxh8nr2iEoIOpZhRj9Usn/wMAe+ul34NLpwTGw8P+YYCGiOjIf5yH1rQHeb5wAAAAAElFTkSuQmCC"
|
||||
alt="">
|
||||
</div>
|
||||
<div class='button-next' @click.stop='nextEl'>
|
||||
<img
|
||||
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAwCAYAAAAPfWqeAAADa0lEQVRYR9XYX4hUVRwH8O9v7zTjto5buy6N9OaDL0FQrJBQ0IzW2jbb6M7sae+CiSRhD/2hIHrQQHvopR4KCgp0Qejeu/fOmoTFmgoFPYQFgYIUiWIuqUREhKI1c74x3jPuqOvuzu6Zge7rDL8P5/x+55zfOeJ50RsifIXEuOuO7BIRogWf+H44TeL+WmwR7B0dHXlBRLRtS4IgfFNrvDMTWPa7bmmbbUxqgO9Hb5PcWcdExHccblFKVW2N7DpU+4IgfEtr7G7Aokxm5Vg2m63YwG5ABrtlGnFwzZrVqr+//9+lYjdBtWCeF70O8N2GkR3q7u4qDQ4OXlsKdhsU56z8Mqnfn8Ewlcn0bc5ms1cXi80KmWl8kZQPSdb/czSd7iwMDQ1dWQx2RyjGou1a82MAHfE6k697elbkBwYGLjeLzQnFOStvBfS+Ogbg266u1GChUPi7GWxeKM5ZOAZgPwnH7CDfOQ42KqX+Wii2IMiMTInwU5IJg32fTt89kM/n/1wItmDIjGwziQkAd5mc/ZhKOU8MDw//MR/WFFQLNjFRHtKaEcmUwU44DjcopX6fC2saMtX4lNY8AGCZCX4KSOXGxgqX7oQtCopHNrlB6+rnJDpN8J9FUjnXLfw2G7ZoKM5Z9DjJQwC6TIGcTiadbLFYnL4VWxJksMdIfAEwbbCzBjvXiC0ZqgULw3BdpYIpACvi4HIulerIFYvFM3XMChQXyORarfVXAO8x2HQyKblSqfTLdXq++m/m9yCYfJisHiHRY7ALBvvJKmR2kAdF9FESfSZnl8iO9dYhgz0goo+RuM/MyPH/L+R55dZPne+XHyJ5BGBvy4ohLu/qYQD3tqy8g2DyEbI6RaLbVNqvZnewt2DDMHy0UpEvW7oFzbapAsmc6246b21Tbcsx4XnhRgCfNR58iQTWK6UuWjv4giDKkyjXj3IAJw1i7yj3/bD1zUkQRCMkvJl2S35IpzuftNputaWBDILoOa053tKW2PfD50l80oB809vb/bTVJt/3yzsAflS/tojIseXLlz1j9driedFLAD9oWBOHV63q22T1IhYE4Wta470b3YuI/avl7W8OOJhI4Fml1D/NNClzdqq+H+0iuWdmJChnMn2u1et/Wx402vZE07ZHp9ozGoBXRTA+Olra2apntP8AQCOqBFQ0cxQAAAAASUVORK5CYII="
|
||||
alt="">
|
||||
</div>
|
||||
</el-col>
|
||||
<!-- 表单-->
|
||||
<el-col :span="6" style="z-index: 5">
|
||||
<div class="" style="background-color: #ffffff;height:420px"></div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<HotSchool/>
|
||||
<SystemHelp/>
|
||||
</div>
|
||||
<el-backtop :bottom="100" :visibility-height="100">
|
||||
<el-icon color="#409efc" class="no-inherit">
|
||||
<ArrowUpBold />
|
||||
</el-icon>
|
||||
</el-backtop>
|
||||
<div class="margin-5"></div>
|
||||
</template>
|
||||
|
||||
<style scoped lang="scss">
|
||||
root {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
/*轮播图 start*/
|
||||
.header_swiper {
|
||||
z-index: -1;
|
||||
width: 1200px !important;
|
||||
height: 420px !important;
|
||||
}
|
||||
|
||||
.swiper {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.swiper-wrapper {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
z-index: 1;
|
||||
display: -webkit-flex;
|
||||
display: -ms-flexbox;
|
||||
display: flex;
|
||||
-webkit-transition-property: -webkit-transform;
|
||||
transition-property: -webkit-transform;
|
||||
-o-transition-property: transform;
|
||||
transition-property: transform;
|
||||
transition-property: transform, -webkit-transform;
|
||||
-webkit-box-sizing: content-box;
|
||||
box-sizing: content-box;
|
||||
}
|
||||
|
||||
.swiper-slide {
|
||||
text-align: center;
|
||||
font-size: 18px;
|
||||
background: #fff;
|
||||
/* Center slide text vertically */
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
width: 1200px;
|
||||
height: 420px !important;
|
||||
}
|
||||
|
||||
.swiper-slide img {
|
||||
-webkit-flex-shrink: 0;
|
||||
flex-shrink: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
position: relative;
|
||||
-webkit-transition-property: -webkit-transform;
|
||||
transition-property: -webkit-transform;
|
||||
-o-transition-property: transform;
|
||||
transition-property: transform;
|
||||
transition-property: transform, -webkit-transform;
|
||||
}
|
||||
|
||||
swiper-slide img {
|
||||
display: block;
|
||||
margin: 0 auto;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
}
|
||||
|
||||
.button-prev {
|
||||
position: absolute;
|
||||
top: 185px;
|
||||
left: 10px;
|
||||
z-index: 99;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.button-next {
|
||||
position: absolute;
|
||||
top: 185px;
|
||||
right: 300px;
|
||||
z-index: 99;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
/*轮播图 end*/
|
||||
|
||||
|
||||
</style>
|
||||
|
|
@ -1,23 +1,83 @@
|
|||
<script lang="ts" setup>
|
||||
import {ref, getCurrentInstance, ComponentInternalInstance, reactive} from 'vue'
|
||||
import {ElMessage} from 'element-plus'
|
||||
import { ref, ComponentInternalInstance, reactive } from 'vue';
|
||||
import { useRouter } from "vue-router";
|
||||
|
||||
import { getArticleList } from '@/axios/api';
|
||||
//图片
|
||||
import image1 from '@/assets/images/gk/2023/sxznps.jpg';
|
||||
import image2 from '@/assets/images/gk/2023/ddps.jpg';
|
||||
import image3 from '@/assets/images/gk/2023/gzdz1200.jpg';
|
||||
|
||||
import image1 from 'https://mp-7a4eecb1-2a04-4d36-b050-1c4a78cc31a4.cdn.bspapp.com/images/web-bakground/9af57e5023e220c08f9e746c48efd2c.png';
|
||||
import image2 from 'https://mp-7a4eecb1-2a04-4d36-b050-1c4a78cc31a4.cdn.bspapp.com/images/web-bakground/2f7805626e85d9fec0ea40573b86886.png';
|
||||
import image3 from 'https://mp-7a4eecb1-2a04-4d36-b050-1c4a78cc31a4.cdn.bspapp.com/images/web-bakground/42bf964bb240d8571c8d2258a1f74e5.png';
|
||||
import cdx from '@/assets/images/options/chayuanxiao.png';//查大学
|
||||
import czy from '@/assets/images/options/chazhuanye.png';//查专业
|
||||
import skx from '@/assets/images/options/shengkongxian.png';//省控线
|
||||
import cwh from '@/assets/images/options/cewenhua.png';//测文化
|
||||
import cwc from '@/assets/images/options/chaweici.png';//查位次
|
||||
import std from '@/assets/images/options/suantoudang.png';//算投档
|
||||
import ykky from '@/assets/images/options/tongji.png';//艺考考研
|
||||
import zszc from '@/assets/images/options/zhaoshengzhangcheng.png';//招生章程
|
||||
//=============
|
||||
import {Swiper, SwiperSlide} from "swiper/vue";
|
||||
import {Navigation, Pagination, Scrollbar, A11y, Autoplay} from 'swiper';
|
||||
import { Swiper, SwiperSlide } from "swiper/vue";
|
||||
import { Navigation, Pagination, Scrollbar, A11y, Autoplay } from 'swiper';
|
||||
import "swiper/css";
|
||||
import {SchoolEntity} from "@/types";
|
||||
import ApiConstant from "@/utils/ApiConstant";
|
||||
|
||||
import SystemHelp from '@/components/SystemHelp.vue';
|
||||
import ImagesConstant from '@/utils/ImagesConstant';
|
||||
import { onMounted } from 'vue';
|
||||
document.title = '河南艺体考生专属VIP|艺体志愿宝';
|
||||
const router = useRouter()
|
||||
//轮播图组件参数
|
||||
const {proxy} = getCurrentInstance() as ComponentInternalInstance;
|
||||
const modules = [Navigation, Pagination, Scrollbar, A11y, Autoplay];
|
||||
const images = [
|
||||
{ url: 'https://mp-7a4eecb1-2a04-4d36-b050-1c4a78cc31a4.cdn.bspapp.com/images/web-bakground/9af57e5023e220c08f9e746c48efd2c.png', link: '' },
|
||||
// { url: 'https://mp-7a4eecb1-2a04-4d36-b050-1c4a78cc31a4.cdn.bspapp.com/images/web-bakground/2f7805626e85d9fec0ea40573b86886.png', link: '' },
|
||||
{ url: 'https://mp-7a4eecb1-2a04-4d36-b050-1c4a78cc31a4.cdn.bspapp.com/images/web-bakground/42bf964bb240d8571c8d2258a1f74e5.png', link: '' },
|
||||
] as any
|
||||
|
||||
const homeOptions = [
|
||||
{
|
||||
title: "查大学",
|
||||
icon: cdx,
|
||||
link: "/school/search"
|
||||
},
|
||||
{
|
||||
title: "查专业",
|
||||
icon: czy,
|
||||
link: "/major/search",
|
||||
},
|
||||
{
|
||||
title: "省控线",
|
||||
icon: skx,
|
||||
link: "/scoreControlLine"
|
||||
},
|
||||
{
|
||||
title: "测文化",
|
||||
icon: cwh,
|
||||
link: "/school/search"
|
||||
},
|
||||
{
|
||||
title: "查位次",
|
||||
icon: cwc,
|
||||
link: "/checkRanking"
|
||||
},
|
||||
{
|
||||
title: "算投档",
|
||||
icon: std,
|
||||
link: "/calculateInvestment"
|
||||
},
|
||||
|
||||
{
|
||||
title: "艺考考研",
|
||||
icon: ykky,
|
||||
link: "/"
|
||||
},
|
||||
{
|
||||
title: "招生章程",
|
||||
icon: zszc,
|
||||
link: "/article/search"
|
||||
}
|
||||
] as any
|
||||
|
||||
const onSwiper = (swiper: any) => {
|
||||
console.log(swiper);
|
||||
//console.log(swiper);
|
||||
};
|
||||
const navigation = ref({
|
||||
nextEl: '.button-next',
|
||||
|
|
@ -30,73 +90,32 @@ const nextEl = () => {
|
|||
// console.log('下一张')
|
||||
}
|
||||
|
||||
//主数据对象
|
||||
const state = reactive({
|
||||
hotSchoolList: [] as Array<SchoolEntity>,
|
||||
hotTabActive: 1
|
||||
})
|
||||
const hotSchoolList = reactive({
|
||||
nowProvinceBenSchoolList: [],//本省,本科
|
||||
nowProvinceZhuanSchoolList: [],//本省,专科
|
||||
otherProvinceBenSchoolList: [],//外省,本科
|
||||
otherProvinceZhuanSchoolList: []//外省,专科
|
||||
})
|
||||
|
||||
getHotSchoolList()
|
||||
|
||||
//获取热门院校
|
||||
function getHotSchoolList() {
|
||||
proxy?.$axios({
|
||||
url: ApiConstant.School.hotSchoolList,
|
||||
method: 'get',
|
||||
params: {},
|
||||
showLoading: false,//是否显示加载图标
|
||||
}).then((response) => {
|
||||
return response.data
|
||||
}).then((data) => {
|
||||
console.log(data)
|
||||
//有数据情况下
|
||||
hotSchoolList.nowProvinceBenSchoolList = data.result.nowProvinceBenSchoolList
|
||||
hotSchoolList.nowProvinceZhuanSchoolList = data.result.nowProvinceZhuanSchoolList
|
||||
hotSchoolList.otherProvinceBenSchoolList = data.result.otherProvinceBenSchoolList
|
||||
hotSchoolList.otherProvinceZhuanSchoolList = data.result.otherProvinceZhuanSchoolList
|
||||
if (state.hotTabActive == 1) {
|
||||
state.hotSchoolList = hotSchoolList.nowProvinceBenSchoolList
|
||||
}
|
||||
}).catch((error: any) => {
|
||||
console.log(error);
|
||||
}).finally(() => {
|
||||
});
|
||||
}
|
||||
|
||||
function copyText(textToCopy) {
|
||||
const textField = document.createElement('textarea');
|
||||
textField.innerText = textToCopy;
|
||||
document.body.appendChild(textField);
|
||||
textField.select();
|
||||
document.execCommand('copy');
|
||||
textField.remove();
|
||||
ElMessage({
|
||||
message: '已复制.',
|
||||
type: 'success',
|
||||
})
|
||||
}
|
||||
|
||||
//切换 热门学院
|
||||
function switchHotTab(index: number) {
|
||||
state.hotTabActive = index
|
||||
//切换数据
|
||||
if (index == 1) {
|
||||
state.hotSchoolList = hotSchoolList.nowProvinceBenSchoolList
|
||||
} else if (index == 2) {
|
||||
state.hotSchoolList = hotSchoolList.nowProvinceZhuanSchoolList
|
||||
} else if (index == 3) {
|
||||
state.hotSchoolList = hotSchoolList.otherProvinceBenSchoolList
|
||||
} else if (index == 4) {
|
||||
state.hotSchoolList = hotSchoolList.otherProvinceZhuanSchoolList
|
||||
const openTab = (e: any) => {
|
||||
if(e.link && e.link!==''){
|
||||
window.open(e.link)
|
||||
}
|
||||
}
|
||||
const articleData = reactive({
|
||||
articleList1:[] as any,
|
||||
articleList2:[] as any,
|
||||
})
|
||||
|
||||
onMounted(() => {
|
||||
getData()
|
||||
})
|
||||
|
||||
const getData = async() => {
|
||||
articleData.articleList1 =await getArticleList(1, 1)
|
||||
articleData.articleList2 =await getArticleList(3, 1)
|
||||
console.log(articleData.articleList1)
|
||||
}
|
||||
|
||||
const open = (e: any) => {
|
||||
router.push(e)
|
||||
}
|
||||
const openArticleDetail =(e:any) =>{
|
||||
router.push('/article/'+e.id)
|
||||
}
|
||||
</script>
|
||||
|
||||
<template>
|
||||
|
|
@ -106,143 +125,96 @@ function switchHotTab(index: number) {
|
|||
<!-- 轮播图-->
|
||||
<el-col :span="18">
|
||||
<div class="header_swiper">
|
||||
<Swiper
|
||||
:modules="modules"
|
||||
:pagination="true"
|
||||
:mousewheel="true"
|
||||
:keyboard="true"
|
||||
@swiper="onSwiper"
|
||||
:navigation="navigation"
|
||||
:autoplay="{ delay: 3000, disableOnInteraction: false }"
|
||||
:loop="true"
|
||||
>
|
||||
<swiper-slide style="width: 1200px">
|
||||
<img :src="image1" alt="Image"/>
|
||||
</swiper-slide>
|
||||
<swiper-slide style="width: 1200px">
|
||||
<img :src="image2" alt="Image"/>
|
||||
</swiper-slide>
|
||||
<swiper-slide style="width: 1200px">
|
||||
<img :src="image3" alt="Image"/>
|
||||
<Swiper :modules="modules" :pagination="true" :mousewheel="true" :keyboard="true" @swiper="onSwiper"
|
||||
:navigation="navigation" :autoplay="{ delay: 3000, disableOnInteraction: false }" :loop="true">
|
||||
<swiper-slide class="swiper-img" v-for="(item, index) in images" :key="index">
|
||||
<img :src="item.url" alt="" @click="openTab(item)" />
|
||||
</swiper-slide>
|
||||
</Swiper>
|
||||
</div>
|
||||
<div class="swiper-scrollbar"></div>
|
||||
<div class='button-prev' @click.stop='prevEl'><img
|
||||
<div class='button-prev' @click.stop='prevEl'>
|
||||
<img
|
||||
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAwCAYAAAAPfWqeAAADpUlEQVRYR73YX2gcRRwH8N9v7vyDIiJSqtJaFEVRLBSs+CAotNogRZTs7s2sUEgFhQr1QR/aBxVsH3xRWvtQqf9Q4TZOdtOeOUOjbc4HoYpBQfClD75JIzHV9BrTO2/zlc3NJmtzyf3bu31clt9nfjO/mZ0Zph49ANjzRg4x0xDAR7kXDgAxPDxyAqAXovjM9HvqUIR4nv8JEfbESTDzgVQhrXUmDPlzACqBHFbKfj01qFQqZaen/8wDsGNECHpTSuetpe5LY4ympqauOX/+N01EzyaQg1I6by9n1i00Pj5+3dzcvA9g90osfs117XeSsbvKqFQqXT89PXMSoIGVMRGvKGW9d3UCHUNjY2M3lMsLBSLaWS9hBjNeltI53qiXOoImJiZuvHjxUhHAEyboohD8kpT2h2sNRdtQoVC4aX6+Mk5Ej8UIkdjrutan6413W5DW+uYwpNMAPWpmfEhEe5Ry8s2KqmWoWCzeUi7/MwHQdjMmNYCfd10rKuumT0vQ6OjorZVK+A2AbSbiv8yUU8o52VQwHzSFtNYbwpDPANhqMqkIwXYuZ421ijRdGfL5wkaiyiQRPWCCXiGi51zXOd0Osi7keYU7gCXkPjPwC0JknsnlBs+0i6wJBUGwqVoNSwDdY4LOM/NupexvO0EaQkEQbDHIXfWgXM5m8bTjON91iqyCgiC4u1JZnCTCFhP0UjZLA47jnOsG+R/k+/691SoiZJPJ5G8hxFNSDv7YLbIM+b5/v0FuN8isQX5KA1mC8nn/QebFswBtNNU1A4idrmv9khZiIP0DET1ikD8AscN1rV/TRPoN9anrorQaFQMzP6mU9XNaXbi8qK4ub/pLiMyuVMs7bnU0Yc2qcKcpjjnmzICUg993m9mq30RflqC41Z53ajNRdbKni+oK1offRIxprW+r1ehsT398CWyDwR6qFwhXmMmS0i62UyBN9wxRsL5sTuJW17dbC18DeNhkVmMmV0p7pJXMWsoo0Y2930DGWKMtsRA8JKX92XqZtZVRHCja5M/Ozn1FRI+bd4vM9KJSzkdrYR1BUbDo2HL58pUvAewwYwYi3qeU9X4jrGMoChYdxC5cmDlFRLtWgvN+17WPXY11BUXBGh0thaBXpXTeTWJdQ1EwrfW1tRp90dPDctzq+vF/xgPIit8x8xtK2YeWxrCVydbqN3250EhM6kytxh8nr2iEoIOpZhRj9Usn/wMAe+ul34NLpwTGw8P+YYCGiOjIf5yH1rQHeb5wAAAAAElFTkSuQmCC"
|
||||
alt="">
|
||||
</div>
|
||||
<div class='button-next' @click.stop='nextEl'><img
|
||||
<div class='button-next' @click.stop='nextEl'>
|
||||
<img
|
||||
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAwCAYAAAAPfWqeAAADa0lEQVRYR9XYX4hUVRwH8O9v7zTjto5buy6N9OaDL0FQrJBQ0IzW2jbb6M7sae+CiSRhD/2hIHrQQHvopR4KCgp0Qejeu/fOmoTFmgoFPYQFgYIUiWIuqUREhKI1c74x3jPuqOvuzu6Zge7rDL8P5/x+55zfOeJ50RsifIXEuOuO7BIRogWf+H44TeL+WmwR7B0dHXlBRLRtS4IgfFNrvDMTWPa7bmmbbUxqgO9Hb5PcWcdExHccblFKVW2N7DpU+4IgfEtr7G7Aokxm5Vg2m63YwG5ABrtlGnFwzZrVqr+//9+lYjdBtWCeF70O8N2GkR3q7u4qDQ4OXlsKdhsU56z8Mqnfn8Ewlcn0bc5ms1cXi80KmWl8kZQPSdb/czSd7iwMDQ1dWQx2RyjGou1a82MAHfE6k697elbkBwYGLjeLzQnFOStvBfS+Ogbg266u1GChUPi7GWxeKM5ZOAZgPwnH7CDfOQ42KqX+Wii2IMiMTInwU5IJg32fTt89kM/n/1wItmDIjGwziQkAd5mc/ZhKOU8MDw//MR/WFFQLNjFRHtKaEcmUwU44DjcopX6fC2saMtX4lNY8AGCZCX4KSOXGxgqX7oQtCopHNrlB6+rnJDpN8J9FUjnXLfw2G7ZoKM5Z9DjJQwC6TIGcTiadbLFYnL4VWxJksMdIfAEwbbCzBjvXiC0ZqgULw3BdpYIpACvi4HIulerIFYvFM3XMChQXyORarfVXAO8x2HQyKblSqfTLdXq++m/m9yCYfJisHiHRY7ALBvvJKmR2kAdF9FESfSZnl8iO9dYhgz0goo+RuM/MyPH/L+R55dZPne+XHyJ5BGBvy4ohLu/qYQD3tqy8g2DyEbI6RaLbVNqvZnewt2DDMHy0UpEvW7oFzbapAsmc6246b21Tbcsx4XnhRgCfNR58iQTWK6UuWjv4giDKkyjXj3IAJw1i7yj3/bD1zUkQRCMkvJl2S35IpzuftNputaWBDILoOa053tKW2PfD50l80oB809vb/bTVJt/3yzsAflS/tojIseXLlz1j9driedFLAD9oWBOHV63q22T1IhYE4Wta470b3YuI/avl7W8OOJhI4Fml1D/NNClzdqq+H+0iuWdmJChnMn2u1et/Wx402vZE07ZHp9ozGoBXRTA+Olra2apntP8AQCOqBFQ0cxQAAAAASUVORK5CYII="
|
||||
alt="">
|
||||
</div>
|
||||
</el-col>
|
||||
<!-- 表单-->
|
||||
<el-col :span="6" style="z-index: 5">
|
||||
<div class="" style="background-color: #ffffff;height:420px ">待补充</div>
|
||||
<ScoreInfo />
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="24">
|
||||
<div class="hot_school" v-if="state.hotSchoolList && state.hotSchoolList.length>0">
|
||||
<div class="l_title clearfix">
|
||||
<div class="left_title">热门院校</div>
|
||||
<div class="right_tab clearfix">
|
||||
<div class="hot_school_tab am_l set_hoverl" :class="{'active':1==state.hotTabActive}"
|
||||
@click="switchHotTab(1)">河南本科院校
|
||||
<!--跳转工具栏-->
|
||||
<el-row class="quickList align-items"
|
||||
style="background-color: white;padding-right: 10px;padding-left: 10px;margin-top: 20px">
|
||||
<el-col :span="3" v-for="(item, index) in homeOptions" :key="index">
|
||||
<a @click="open(item.link)">
|
||||
<img class="icon" alt="" :src="item.icon" />
|
||||
<p>{{ item.title }}</p>
|
||||
</a>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row class="news align-items" style="background-color: #fcfcfc;margin-top: 20px">
|
||||
<el-col :span="12">
|
||||
<div class="flexWrap" style="padding: 5px 15px;">
|
||||
<div style="width: 20%;margin: auto 0;">
|
||||
<Tip title="招生章程" size="15px" style="width: 80%;margin: auto 0" />
|
||||
</div>
|
||||
<div style="width: 13%;" class="showMore">
|
||||
<span @click="open('/article/search?type=1')">查看更多</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="flexWrap pt-5" style="background-color: #fff">
|
||||
<div class="content" style="padding: 5px 15px;">
|
||||
<div class="item flex align-items" v-for="(item,index) in articleData.articleList1" :key="index">
|
||||
<div class="pointer" style="width:550px" @click="openArticleDetail(item)">
|
||||
{{ item.title }}
|
||||
</div>
|
||||
<div class="hot_school_tab am_l set_hoverl" :class="{'active':2==state.hotTabActive}"
|
||||
@click="switchHotTab(2)">河南专科院校
|
||||
</div>
|
||||
<div class="hot_school_tab am_l set_hoverl" :class="{'active':3==state.hotTabActive}"
|
||||
@click="switchHotTab(3)">省外本科院校
|
||||
</div>
|
||||
<div class="hot_school_tab am_l set_hoverl" :class="{'active':4==state.hotTabActive}"
|
||||
@click="switchHotTab(4)">省外专科院校
|
||||
</div>
|
||||
<!-- <div class="change_group">换一换<i></i></div>-->
|
||||
</div>
|
||||
</div>
|
||||
<div class="hot_school_box clearfix">
|
||||
<div class="left" style="background: rgb(255, 141, 66);">
|
||||
<a :href="'/school/'+state.hotSchoolList[0].schoolCode" target="_blank">
|
||||
<h3>{{ state.hotSchoolList[0].schoolName }}</h3>
|
||||
<p class="tag">
|
||||
<span v-for="item in state.hotSchoolList[0].tagsList">{{ item }}</span>
|
||||
</p>
|
||||
<div class="tuijian" v-if="state.hotSchoolList[0].schoolIcon">
|
||||
<div class="school_tuijian">
|
||||
<div class="school_img"><img :src="state.hotSchoolList[0].schoolIcon" alt=""></div>
|
||||
</div>
|
||||
</div>
|
||||
</a></div>
|
||||
<div class="right">
|
||||
<div v-for="(item,index) in state.hotSchoolList">
|
||||
<div class="school_item" data-growing-container="" v-if="index>0">
|
||||
<a :href="'/school/'+item.schoolCode" target="_blank">
|
||||
<img :src="item.schoolIcon" alt="">
|
||||
<div class="school_msg"><h3>{{ item.schoolName }}</h3>
|
||||
<div class="clearfix check_btn">
|
||||
<span class="school_class">{{ item.institutionType + '类' }}</span>
|
||||
<span>查看院校<i></i></span>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<div class="flexWrap" style="padding: 5px 15px;">
|
||||
<div style="width: 20%;margin: auto 0">
|
||||
<Tip title="校内资讯" size="15px" style="width: 80%;margin: auto 0" />
|
||||
</div>
|
||||
<div style="width: 13%;" class="showMore">
|
||||
<span @click="open('/article/search?type=3')">查看更多</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="flexWrap pt-5" style="background-color: #fff">
|
||||
<div class="content" style="padding: 5px 15px;">
|
||||
<div class="item flex align-items" v-for="(item,index) in articleData.articleList2" :key="index">
|
||||
<div class="pointer" style="width:550px" @click="openArticleDetail(item)">
|
||||
{{ item.title }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="20" class="margin-top-5">
|
||||
<el-col :span="14">
|
||||
<div class="school-footer_footerBox">
|
||||
<div class="school-footer_leftIntroduce">
|
||||
<div class="school-footer_useIntro"><h3>系统使用说明</h3>
|
||||
</div>
|
||||
<p>1、本查询系统的信息仅供参考,具体数据请以学校官网或考试院公布为准。</p>
|
||||
<p>2、本站数据未经授权严禁转载,违者将依法追究责任。</p>
|
||||
<p>3、如有任何疑问,可发送邮件至:<a @click="copyText('yitisheng@163.com')" class="a-button hover_style"
|
||||
style="color:var(--el-color-primary);">yitisheng@163.com</a></p>
|
||||
<p>4、志愿填报服务客服专线:xxx-xxxx-xxx,高校合作或其他商务客服电话:xxx-xxxx-xxx。</p>
|
||||
<p class="school-footer_friendChain"><span>友情链接:</span><a href="https://www.eol.cn/"
|
||||
target="_blank">中国教育在线</a><a
|
||||
href="https://gaokao.eol.cn/" target="_blank">高考频道</a><a href="https://www.kaoyan.cn/"
|
||||
target="_blank">掌上考研</a><a
|
||||
href="https://kaoyan.eol.cn/" target="_blank">考研频道</a><a href="https://www.zhijiao.cn/"
|
||||
target="_blank">职教网</a><a
|
||||
href="https://www.gaokao.cn/px/" target="_blank">掌上培训</a><a href="https://www.jiuyeqiao.cn/"
|
||||
target="_blank">就业桥</a><a
|
||||
href="https://yun.eol.cn/" target="_blank">数智云服</a></p></div>
|
||||
<!-- <div class="school-footer_rightCode__3VuW7 clearfix">
|
||||
<div class="school-footer_codeItem__1Spmk"><img src="/static/media/gzh.ab190311.jpg">
|
||||
<p>掌上高考公众号</p></div>
|
||||
<div class="school-footer_codeItem__1Spmk"><img src="/static/media/app.289cbf0b.png">
|
||||
<p>掌上高考APP</p></div>
|
||||
</div>-->
|
||||
</div>
|
||||
</el-col>
|
||||
<el-col :span="2"></el-col>
|
||||
<el-col :span="8">
|
||||
<div class="qrcode">
|
||||
<div class="qrcode-item">
|
||||
<img src="@/assets/images/qrcode/wx_gh_cbefbadc1f1f_344.jpg" alt="" width="135">
|
||||
<div class="qrcode-text" style="">微信小程序</div>
|
||||
</div>
|
||||
</div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<HotSchool />
|
||||
<SystemHelp />
|
||||
</div>
|
||||
<el-backtop :bottom="100" :visibility-height="100">
|
||||
<el-icon color="#409efc" class="no-inherit">
|
||||
<Share/>
|
||||
<ArrowUpBold />
|
||||
</el-icon>
|
||||
</el-backtop>
|
||||
<div class="margin-5"></div>
|
||||
</template>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.wrap {
|
||||
width: 1210px;
|
||||
}
|
||||
|
||||
root {
|
||||
width: 100%;
|
||||
}
|
||||
|
|
@ -250,8 +222,8 @@ root {
|
|||
/*轮播图 start*/
|
||||
.header_swiper {
|
||||
z-index: -1;
|
||||
width: 1200px !important;
|
||||
height: 420px !important;
|
||||
// width: 1005px !important;
|
||||
height: 500px !important;
|
||||
}
|
||||
|
||||
.swiper {
|
||||
|
|
@ -259,6 +231,10 @@ root {
|
|||
height: 100%;
|
||||
}
|
||||
|
||||
.swiswiper-img {
|
||||
width: 1200px
|
||||
}
|
||||
|
||||
.swiper-wrapper {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
|
|
@ -285,7 +261,7 @@ root {
|
|||
justify-content: center;
|
||||
align-items: center;
|
||||
width: 1200px;
|
||||
height: 420px !important;
|
||||
height: 500px !important;
|
||||
}
|
||||
|
||||
.swiper-slide img {
|
||||
|
|
@ -301,15 +277,17 @@ root {
|
|||
transition-property: transform, -webkit-transform;
|
||||
}
|
||||
|
||||
swiper-slide img {
|
||||
display: block;
|
||||
margin: 0 auto;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
}
|
||||
|
||||
|
||||
// swiper-slide img {
|
||||
// display: block;
|
||||
// margin: 0 auto;
|
||||
// position: absolute;
|
||||
// top: 0;
|
||||
// bottom: 0;
|
||||
// left: 0;
|
||||
// right: 0;
|
||||
// }
|
||||
|
||||
.button-prev {
|
||||
position: absolute;
|
||||
|
|
@ -322,331 +300,66 @@ swiper-slide img {
|
|||
.button-next {
|
||||
position: absolute;
|
||||
top: 185px;
|
||||
right: 300px;
|
||||
right: 320px;
|
||||
z-index: 99;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
/*轮播图 end*/
|
||||
|
||||
// 快捷导航
|
||||
.quickList {
|
||||
height: 156px;
|
||||
|
||||
//热门院校
|
||||
.hot_school {
|
||||
margin-bottom: 40px;
|
||||
/*padding: 0 20px;*/
|
||||
.l_title {
|
||||
height: 44px;
|
||||
line-height: 44px;
|
||||
border-bottom: 2px solid var(--el-color-primary);
|
||||
width: 100%;
|
||||
|
||||
.left_title {
|
||||
font-size: 20px;
|
||||
color: #000;
|
||||
position: relative;
|
||||
padding-left: 12px;
|
||||
width: 330px;
|
||||
float: left;
|
||||
font-weight: 700;
|
||||
|
||||
.right_tab {
|
||||
margin-left: 10px;
|
||||
float: left;
|
||||
width: 820px;
|
||||
}
|
||||
}
|
||||
|
||||
.right_tab .hot_school_tab.active {
|
||||
color: var(--el-color-primary);
|
||||
}
|
||||
|
||||
|
||||
.right_tab .hot_school_tab {
|
||||
float: left;
|
||||
font-size: 18px;
|
||||
color: #000;
|
||||
margin-right: 32px;
|
||||
cursor: pointer;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.right_tab .hot_school_tab:hover {
|
||||
color: var(--el-color-primary);
|
||||
}
|
||||
|
||||
.am_l {
|
||||
transition: all .4s;
|
||||
}
|
||||
|
||||
.change_group {
|
||||
float: right;
|
||||
color: #f60;
|
||||
font-size: 14px;
|
||||
text-align: right;
|
||||
cursor: pointer;
|
||||
width: 68px;
|
||||
height: 44px;
|
||||
position: relative;
|
||||
-webkit-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
}
|
||||
a {
|
||||
text-align: center;
|
||||
color: black;
|
||||
background: 0 0;
|
||||
text-decoration: none;
|
||||
outline: 0;
|
||||
cursor: pointer;
|
||||
transition: color .2s ease;
|
||||
}
|
||||
|
||||
.hot_school_box {
|
||||
.left {
|
||||
float: left;
|
||||
width: 330px;
|
||||
height: 332px;
|
||||
background: #ffeaea;
|
||||
text-align: center;
|
||||
padding-top: 28px;
|
||||
cursor: pointer;
|
||||
|
||||
h3 {
|
||||
font-size: 24px;
|
||||
color: #fff;
|
||||
margin-bottom: 20px;
|
||||
overflow: hidden;
|
||||
/*text-overflow: ellipsis;*/
|
||||
white-space: nowrap;
|
||||
transition: all .4s;
|
||||
padding: 0 10px;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.tag {
|
||||
margin-bottom: 54px;
|
||||
|
||||
span {
|
||||
display: inline-block;
|
||||
padding: 4px 5px;
|
||||
margin-right: 10px;
|
||||
border-radius: 4px;
|
||||
border: 1px solid hsla(0, 0%, 100%, .4);
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
span:last-child {
|
||||
margin: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.tuijian {
|
||||
width: 195px;
|
||||
height: 159px;
|
||||
position: relative;
|
||||
margin: 0 auto;
|
||||
|
||||
.school_tuijian {
|
||||
width: 170px;
|
||||
height: 187px;
|
||||
background: #fff;
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
-webkit-transform: translate(-50%, -50%);
|
||||
transform: translate(-50%, -50%);
|
||||
}
|
||||
}
|
||||
|
||||
.school_img {
|
||||
height: 100%;
|
||||
position: relative;
|
||||
|
||||
img {
|
||||
width: 128px;
|
||||
height: 128px;
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
-webkit-transform: translate(-50%, -50%);
|
||||
transform: translate(-50%, -50%);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.right {
|
||||
float: right;
|
||||
width: 820px;
|
||||
height: 350px;
|
||||
margin: 10px 0 0 10px;
|
||||
|
||||
.school_item:hover {
|
||||
top: -2px;
|
||||
box-shadow: 0 10px 20px rgb(0 0 0 / 10%);
|
||||
}
|
||||
|
||||
.school_item:hover .school_msg h3 {
|
||||
color: var(--el-color-primary);
|
||||
}
|
||||
|
||||
.school_item {
|
||||
cursor: pointer;
|
||||
float: left;
|
||||
height: 110px;
|
||||
width: 263px;
|
||||
overflow: hidden;
|
||||
margin-right: 10px;
|
||||
margin-bottom: 10px;
|
||||
position: relative;
|
||||
transition: all .2s linear;
|
||||
top: 0;
|
||||
box-shadow: 0 0 15px #e6e6e6;
|
||||
background-color: white;
|
||||
|
||||
img {
|
||||
width: 65px;
|
||||
height: 65px;
|
||||
position: absolute;
|
||||
left: 15px;
|
||||
top: 50%;
|
||||
-webkit-transform: translateY(-50%);
|
||||
transform: translateY(-50%);
|
||||
border: 0;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
.school_msg {
|
||||
margin-left: 100px;
|
||||
margin-top: 21px;
|
||||
padding-right: 16px;
|
||||
|
||||
h3 {
|
||||
color: #000;
|
||||
font-size: 16px;
|
||||
margin-bottom: 23px;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
transition: all .4s;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.check_btn {
|
||||
.school_class {
|
||||
display: inline-block;
|
||||
padding: 0 6px;
|
||||
border: 1px solid #eee;
|
||||
}
|
||||
|
||||
span {
|
||||
float: left;
|
||||
font-size: 12px;
|
||||
color: #999;
|
||||
}
|
||||
|
||||
span + span {
|
||||
margin-right: 12px;
|
||||
float: right;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
span + span i {
|
||||
display: inline-block;
|
||||
width: 5px;
|
||||
height: 9px;
|
||||
background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAASCAYAAABit09LAAAAoklEQVQoU43SsQ0CMQwFUPsaZqOlp4wLdDRQMAUVXBEzABWiSwkbMEX2+OgiOOlIHOL6+cuyPlPj8OhU9UpEDxG5WHsJeu9vRLTquq53zg0lnGAIYRFjvANYWjjBFjzBf3gGaziDFi7CAl6b8PPfAcCGiA4mVNUTgJ6ZzyKyLcJfNKZnsIQyaKEZrKEJquoRwO57uFkK7/2LmZ8isq/WrKW7b6OXhYE4bznBAAAAAElFTkSuQmCC);
|
||||
background-size: cover;
|
||||
margin: 0 0 0 5px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.icon {
|
||||
width: 80px;
|
||||
height: 80px;
|
||||
display: block;
|
||||
margin: 0 auto 16px;
|
||||
}
|
||||
}
|
||||
|
||||
.l_title .change_group i {
|
||||
display: inline-block;
|
||||
width: 16px;
|
||||
height: 13px;
|
||||
background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAaCAYAAADWm14/AAADS0lEQVRIS73WXYjUZRTH8c8ZV8ylV8J8IagwCqOiqKTwppIogjIMC40oQmdmV0zWCgyKll4IwcwybeeP0U0k1UUpRV70Kt3ZC3RRhGhZmVEWdtFW6848Mf9mZXVndnYd6H875/k93/Ob85xzwiS+1ONqNcsk84VzcJrksPCz5DMFO9W8G5nBicpGu8DUr+CgxVgjueaY+FCTFI7TOCRscIrnY70/2+mPC5BWOdWQbZKbc6HwHQaE3abYa4Yf/KLbsLOFa7FYckMj9hthaQz4YjyIlgCp1/mG7cA87FfQ53o74g7V8QRT2eWSTZIFwj+4LSp2tjrTFCCtMsOQLyWzhA8kd0bmUDs7R35Pr5vifU9IHsbfwo1RsavZ+eYAJTsktwhvWmhJu6xbgaWix9AvHDDdxbHR4eNjxwCksnvVvJzb3u2yZocm6kQ9Lo0kw9bIrGgP0K/LQbfi+6j4dDKXNYtNq830l32YquC8GHBgdFzbZ9gpQO5C0XO4X3gyKh79/wF6XKGau7k7MvNbAuTV+5ELYouvO8089TgDl+Y6Sb1lvYNpprgJR1RVI/PJ0b8gv/w9r+F2YW1UrOsEIpXdp+allhphWDg3B2i021ckS48eCA9FxfqOIEqekawZo1G/PFkWmTci1e0p5c/unjGBBWtiwLMdQmyUrB6lURXuikrutkhFW9AzjlXLozKOlROgSyUvSFbmlZDcHZlXR47VAdYJsxrFsgBzRd4264On/u3qGOA/lx/Ensi81foVlJXUDODFyPROILmOQ45pRKnsLDU/YtBUc2Oz3zq+oY3A2FlQslnKs69EptwpQD6eT/Jtq5kyFqBoNr7C6eiLzMYThUi9rlL1sSTpcmWzBtdqHC+S8mKpl8+KEynC1Guear5L1Av8qcg80iyR1htR0QNY33g6j5vj6eg3NBE3UklRyvtHt/C22RZFv9qkAPIOWbRc5G94mrAHGyTbIvPH8WKpz3SDlqB8dHmtL6fJ2sgcaQXedhynkouwddRGXN8JP8de4XfJzHpPx4WSkxsX/ST0RsX2do61BRgRSEXXYSUWNgp0jAnCh8IWs2yPfsPtLs9b8USCRsc0RvYlquYIZ0p+1WWfgv2xKd+CJ/X9Czm9FazO5CrrAAAAAElFTkSuQmCC);
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 36%;
|
||||
margin-top: -6 px;
|
||||
transition: all .4s;
|
||||
-webkit-transform-origin: center;
|
||||
transform-origin: center;
|
||||
background-size: cover;
|
||||
.a {
|
||||
cursor: pointer;
|
||||
color: #409eff;
|
||||
}
|
||||
|
||||
.showMore {
|
||||
font-size: 15px;
|
||||
line-height: 30px;
|
||||
cursor: pointer;
|
||||
color: $color-blue-60;
|
||||
float: right;
|
||||
margin: 0 0 0 auto;
|
||||
}
|
||||
|
||||
//系统使用说明
|
||||
.school-footer_footerBox {
|
||||
width: 1200px;
|
||||
/*margin: 0 auto;*/
|
||||
background: hsla(0, 0%, 98%, .96);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
// 资讯信息
|
||||
.news {
|
||||
.content {
|
||||
min-height: 210px;
|
||||
font-size: 14px;
|
||||
|
||||
.school-footer_leftIntroduce {
|
||||
padding: 18px;
|
||||
|
||||
h3 {
|
||||
font-size: 20px;
|
||||
color: #000;
|
||||
margin: 0 20px 0 0;
|
||||
}
|
||||
|
||||
a {
|
||||
color: #666;
|
||||
text-decoration: none !important;
|
||||
}
|
||||
|
||||
.school-footer_useIntro {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-bottom: 30px;
|
||||
}
|
||||
|
||||
.school-footer_friendChain a {
|
||||
margin-right: 15px;
|
||||
transition: all .3s;
|
||||
}
|
||||
|
||||
.school-footer_friendChain a:hover {
|
||||
color: var(--el-color-primary);
|
||||
}
|
||||
|
||||
p {
|
||||
font-size: 14px;
|
||||
color: #000;
|
||||
.item {
|
||||
margin-bottom: 15px;
|
||||
word-break: break-all;
|
||||
|
||||
a {
|
||||
font-size: 14px;
|
||||
color: #000;
|
||||
}
|
||||
width: 100%;
|
||||
overflow:hidden; //超出的文本隐藏
|
||||
text-overflow:ellipsis; //溢出用省略号显示
|
||||
white-space:nowrap; //溢出不换行
|
||||
}
|
||||
|
||||
p:last-child {
|
||||
margin: 0;
|
||||
.item:hover>.pointer {
|
||||
color: #409eff;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//二维码 start
|
||||
.qrcode {
|
||||
margin: 50px 0;
|
||||
}
|
||||
|
||||
.qrcode .qrcode-item {
|
||||
width: 135px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.qrcode .qrcode-item .qrcode-text {
|
||||
font-weight: bold;
|
||||
color: #000000;
|
||||
}
|
||||
|
||||
//二维码 end
|
||||
</style>
|
||||
|
|
|
|||
|
|
@ -1,15 +1,645 @@
|
|||
<script lang="ts">
|
||||
import {defineComponent} from 'vue'
|
||||
|
||||
export default defineComponent({
|
||||
name: "MajorInfo"
|
||||
})
|
||||
</script>
|
||||
|
||||
<template>
|
||||
|
||||
<div class="main-container wrap">
|
||||
<div></div>
|
||||
<!--上部分-->
|
||||
<div class="header">
|
||||
<el-breadcrumb separator="/">
|
||||
<el-breadcrumb-item :to="{ path: '/major/search' }">
|
||||
专业大全
|
||||
</el-breadcrumb-item>
|
||||
<el-breadcrumb-item v-if="state.majorInfo.zyl"><a>{{ state.majorInfo.zyl }}</a></el-breadcrumb-item>
|
||||
</el-breadcrumb>
|
||||
<div class="majorName">
|
||||
{{ state.majorInfo.majorName }}
|
||||
</div>
|
||||
<div class="flexWrap mt-10">
|
||||
<el-space spacer="|">
|
||||
<div>{{ state.majorInfo.educationalLevel === '1' ? '本科' : '专科' }}</div>
|
||||
<div>专业代码:{{ state.majorInfo.majorCode }}{{ state.majorInfo.majorCodeChar }}</div>
|
||||
<div>学制:{{ state.majorInfo.semester ? state.majorInfo.semester + '年' : '--' }}
|
||||
</div>
|
||||
<div>
|
||||
学位:{{ state.majorInfo.degree || '--' }}
|
||||
</div>
|
||||
</el-space>
|
||||
</div>
|
||||
</div>
|
||||
<div class="paneTypes flexWrap">
|
||||
<div class="panetype" :class="state.paneName === '专业概况' ? 'panetype-active' : ''" @click="switchPane('专业概况')">专业概况
|
||||
</div>
|
||||
<div class="panetype" :class="state.paneName === '开设院校' ? 'panetype-active' : ''" @click="switchPane('开设院校')">开设院校
|
||||
</div>
|
||||
</div>
|
||||
<div class="bodyr">
|
||||
<div v-show="state.paneName === '专业概况'">
|
||||
<Tip :title="'专业简介'" :size="'18px'" />
|
||||
<div class="text">
|
||||
{{ state.majorInfo.ssm || '--' }}
|
||||
</div>
|
||||
<Tip :title="'学什么'" :size="'18px'" />
|
||||
<div class="text">
|
||||
{{ state.majorInfo.xsm || '--' }}
|
||||
</div>
|
||||
<Tip :title="'干什么'" :size="'18px'" />
|
||||
<div class="text">
|
||||
{{ state.majorInfo.gsm || '--' }}
|
||||
</div>
|
||||
<el-row :gutter="20" class="mt-10">
|
||||
<!--男女比例-->
|
||||
<el-col :span="12">
|
||||
<div class="mt-15" ref="chartSexRef" :style="{ height: '400px' }"></div>
|
||||
</el-col>
|
||||
<!--就业岗位-->
|
||||
<el-col :span="12">
|
||||
<div class="mt-15" ref="chartJobDistributionRef" :style="{ height: '400px' }"></div>
|
||||
</el-col>
|
||||
<!--就业行业-->
|
||||
<el-col :span="12">
|
||||
<div class="mt-15" ref="chartIndustryDistributionRef" :style="{ height: '400px' }"></div>
|
||||
</el-col>
|
||||
<!--就业地区-->
|
||||
<el-col :span="12">
|
||||
<div class="mt-15" ref="chartRegionDistributionRef" :style="{ height: '400px' }"></div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</div>
|
||||
<div v-show="state.paneName === '开设院校'">
|
||||
<!--筛选项-->
|
||||
<div class="filterTable">
|
||||
<div class="filterTitle flexWrap">
|
||||
<div class="flex-item-75">
|
||||
<div class="searchSchool">
|
||||
<el-input v-model="state.selectForm.schoolName" maxlength="24" show-word-limit
|
||||
style="max-width: 230px;height: 40px;line-height: 40px;" placeholder="请输入院校或专业名称"
|
||||
class="input-with-select" />
|
||||
<el-button :icon="Search" @click="reloadSchoolList"
|
||||
style="border-left: none;height: 40px;line-height: 40px;" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="filterBody">
|
||||
<div class="flexWrap">
|
||||
<div class="flex-item-1">就读地域</div>
|
||||
<div class="flex-item-9 tags">
|
||||
<span class="tag" :class="state.selectForm.addressList.length === 0 ? 'tag-active' : ''"
|
||||
@click="checkboxAddress('')">不限</span>
|
||||
<span class="tag" :class="state.selectForm.addressList.includes(item.code) ? 'tag-active' : ''"
|
||||
v-for="(item, index) in state.addressList" :key="index" @click="checkboxAddress(item.code)">
|
||||
{{ item.name }}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<!-- <div class="flexWrap">
|
||||
<div class="flex-item-1">科研教学</div>
|
||||
<div class="flex-item-9 tags">
|
||||
<span class="tag" :class="state.selectForm.kyjxList.length === 0 ? 'tag-active' : ''"
|
||||
@click="checkboxKyjx('')">不限</span>
|
||||
<span class="tag" :class="state.selectForm.kyjxList.includes(item) ? 'tag-active' : ''"
|
||||
v-for="(item, index) in state.kyjxList" :key="index" @click="checkboxKyjx(item)">
|
||||
{{ item }}
|
||||
</span>
|
||||
</div>
|
||||
</div> -->
|
||||
<div class="flexWrap">
|
||||
<div class="flex-item-1">院校标签</div>
|
||||
<div class="flex-item-9 tags">
|
||||
<span class="tag" :class="state.selectForm.tagsList.length === 0 ? 'tag-active' : ''"
|
||||
@click="checkboxSchoolTags('')">不限</span>
|
||||
<span class="tag" :class="state.selectForm.tagsList.includes(item.code) ? 'tag-active' : ''"
|
||||
v-for="(item, index) in state.tagsList" :key="index" @click="checkboxSchoolTags(item.code)">
|
||||
{{ item.name }}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="flexWrap">
|
||||
<div class="flex-item-1">办学类型</div>
|
||||
<div class="flex-item-9 tags">
|
||||
<span class="tag" :class="state.selectForm.schoolNatureList && state.selectForm.schoolNatureList.length === 0 ? 'tag-active' : ''"
|
||||
@click="checkboxSchoolNature('')">不限</span>
|
||||
<span class="tag" :class="state.selectForm.schoolNatureList.includes(item.code) ? 'tag-active' : ''"
|
||||
v-for="(item, index) in state.schoolNatureList" :key="index" @click="checkboxSchoolNature(item.code)">
|
||||
{{ item.name }}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="border-b"></div>
|
||||
<div class="flexWrap">
|
||||
<span class="clearFilterButton" @click="clearFilter">重置已选</span>
|
||||
</div>
|
||||
</div>
|
||||
<!--院校列表-->
|
||||
<div ref="scrollContainer" style="height: 800px; overflow-y: scroll;" @scroll="handleScroll" class="scroll-container schoolList" v-show="state.schoolResult.list">
|
||||
<div class="schoolItem" v-for="(item,index) in state.schoolResult.list" :key="index">
|
||||
<div class="flexWrap" @click="showSchoolInfo(item.schoolCode)">
|
||||
<div class="flex-item-13 left">
|
||||
<img :src="item.schoolIcon" :alt="item.schoolName" style="width: 128px;border-radius: 50%"/>
|
||||
</div>
|
||||
<div class="flex-item-87 right">
|
||||
<div class="flexWrap schoolName" style="">
|
||||
{{ item.schoolName }}
|
||||
</div>
|
||||
<div class="flexWrap tags">
|
||||
<span class="tag" v-for="(tag,i) in item.tagsList" :key="i">
|
||||
{{ tag }}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 加载更多提示 -->
|
||||
<p v-if="state.schoolResult.status==='loading'">加载中...</p>
|
||||
<p v-if="state.schoolResult.status==='noMore'">没有更多数据了</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<style scoped>
|
||||
<script setup lang="ts">
|
||||
import { h, ref, onMounted, reactive } from 'vue';
|
||||
import { useRoute } from 'vue-router';
|
||||
import * as echarts from 'echarts';
|
||||
import { Search } from '@element-plus/icons-vue';
|
||||
import {ElMessage} from 'element-plus';
|
||||
import ApiConstant from '@/utils/ApiConstant';
|
||||
import StaticConstant from '@/utils/StaticConstant';
|
||||
import axiosInstance from '@/utils/http';
|
||||
const { query, params } = useRoute();
|
||||
document.title = '专业介绍|艺体志愿宝';
|
||||
//获取页面传参
|
||||
let majorCode = params.majorCode
|
||||
const state = reactive({
|
||||
paneName: '专业概况',
|
||||
addressList: [...StaticConstant.addressList] as any,//就读地域筛选项
|
||||
kyjxList: ['硕士点', '博士点', '保研'] as Array<string>,//科研教学筛选项
|
||||
rulesEnrollProbabilityList: [] as Array<any>,//录取方式
|
||||
tagsList: StaticConstant.tagsList as Array<any>,//院校标签
|
||||
schoolNatureList: [...StaticConstant.schoolTypeList] as Array<any>,//办学类型
|
||||
majorInfo: {
|
||||
majorName: '',
|
||||
majorTypeName: '',
|
||||
majorCode: '',
|
||||
majorCodeChar: "",
|
||||
educationalLevel: '',
|
||||
semester: '',
|
||||
degree: '',
|
||||
zyl:'未知',
|
||||
ssm: '',
|
||||
xsm: '',//学什么
|
||||
gsm: '',//干什么
|
||||
sexRatio: '',
|
||||
jobDistribution: '',//就业岗位分布
|
||||
industryDistribution: '',//就业行业分布
|
||||
regionDistribution: '',//就业地区分布
|
||||
},
|
||||
schoolList:[] as any,
|
||||
selectForm: {
|
||||
schoolName: '',
|
||||
current:1,
|
||||
size:10,
|
||||
addressList: [] as any,
|
||||
kyjxList: [] as any,
|
||||
tagsList: [] as any,
|
||||
schoolNatureList:[] as any,
|
||||
},
|
||||
schoolResult:{
|
||||
list:[] as any,
|
||||
status:'more',
|
||||
},
|
||||
})
|
||||
const chartSexRef = ref<HTMLDivElement | null>(null);
|
||||
const chartJobDistributionRef = ref<HTMLDivElement | null>(null);
|
||||
const chartIndustryDistributionRef = ref<HTMLDivElement | null>(null);
|
||||
const chartRegionDistributionRef = ref<HTMLDivElement | null>(null);
|
||||
const scrollContainer = ref<HTMLElement | null>(null);
|
||||
onMounted(() => {
|
||||
reloadMajorInfo()
|
||||
getSchoolList()
|
||||
})
|
||||
|
||||
const handleScroll = () => {
|
||||
console.log(111);
|
||||
const container = scrollContainer.value
|
||||
if (container) {
|
||||
const { scrollTop, scrollHeight, clientHeight } = container;
|
||||
if (scrollTop + clientHeight >= scrollHeight) {
|
||||
loadMore();
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
function loadMore(){
|
||||
if(state.paneName ==='开设院校' && state.schoolResult.status === 'more'){
|
||||
state.schoolResult.status = 'loading'
|
||||
state.selectForm.current++;
|
||||
getSchoolList();
|
||||
}
|
||||
}
|
||||
|
||||
//选择pane
|
||||
function switchPane(e: string) {
|
||||
if (state.paneName !== e) {
|
||||
state.paneName = e
|
||||
}
|
||||
}
|
||||
|
||||
//写入男女比例图
|
||||
function setPeople() {
|
||||
let sexRatio = state.majorInfo.sexRatio
|
||||
console.log(sexRatio)
|
||||
if (sexRatio) {
|
||||
try {
|
||||
let femaleRatio = ''
|
||||
let maleRatio = ''
|
||||
let ratios = sexRatio.replaceAll('%', '').split('、');
|
||||
if (ratios) {
|
||||
ratios.forEach(item => {
|
||||
if (item.split(':')[0] === '男生') {
|
||||
femaleRatio = item.split(':')[1]
|
||||
} else if (item.split(':')[0] === '女生') {
|
||||
maleRatio = item.split(':')[1]
|
||||
}
|
||||
})
|
||||
if (chartSexRef.value && echarts && (femaleRatio && maleRatio)) {
|
||||
const myChart = echarts.init(chartSexRef.value);
|
||||
const option = {
|
||||
title: {
|
||||
text: '男女比例',
|
||||
left: 'left'
|
||||
},
|
||||
tooltip: {
|
||||
trigger: 'item'
|
||||
},
|
||||
legend: {
|
||||
orient: 'vertical',
|
||||
left: 'right'
|
||||
},
|
||||
series: [
|
||||
{
|
||||
type: 'pie',
|
||||
radius: '60%',
|
||||
data: [
|
||||
{ value: femaleRatio, name: '男' },
|
||||
{ value: maleRatio, name: '女' }
|
||||
],
|
||||
emphasis: {
|
||||
itemStyle: {
|
||||
shadowBlur: 10,
|
||||
shadowOffsetX: 0,
|
||||
shadowColor: 'rgba(0, 0, 0, 0.5)'
|
||||
}
|
||||
},
|
||||
tooltip: {
|
||||
trigger: 'item',
|
||||
//formatter: '{a} <br/>{b}: {c} ({d}%)'
|
||||
formatter: '{b}: {d}%'
|
||||
}
|
||||
}
|
||||
]
|
||||
};
|
||||
// 设置实例参数
|
||||
myChart.setOption(option as any);
|
||||
}
|
||||
}
|
||||
} catch (error) {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//写入就业岗位
|
||||
function setJobDistribution() {
|
||||
let jobDistribution = state.majorInfo.jobDistribution
|
||||
if (jobDistribution) {
|
||||
try {
|
||||
let ratios = jobDistribution.replaceAll('%', '').split('、');
|
||||
if (ratios) {
|
||||
let dataList = [] as any
|
||||
ratios.forEach(item => {
|
||||
dataList.push({ name: item.split(':')[0], value: item.split(':')[1] })
|
||||
})
|
||||
if (chartJobDistributionRef.value && echarts && dataList.length > 0) {
|
||||
const myChart = echarts.init(chartJobDistributionRef.value);
|
||||
const option = {
|
||||
title: {
|
||||
text: '就业岗位分布',
|
||||
left: 'left'
|
||||
},
|
||||
tooltip: {
|
||||
trigger: 'item'
|
||||
},
|
||||
legend: {
|
||||
orient: 'vertical',
|
||||
left: 'right'
|
||||
},
|
||||
series: [
|
||||
{
|
||||
type: 'pie',
|
||||
radius: '60%',
|
||||
data: dataList,
|
||||
emphasis: {
|
||||
itemStyle: {
|
||||
shadowBlur: 10,
|
||||
shadowOffsetX: 0,
|
||||
shadowColor: 'rgba(0, 0, 0, 0.5)'
|
||||
}
|
||||
},
|
||||
tooltip: {
|
||||
trigger: 'item',
|
||||
//formatter: '{a} <br/>{b}: {c} ({d}%)'
|
||||
formatter: '{b}: {d}%'
|
||||
}
|
||||
}
|
||||
]
|
||||
};
|
||||
// 设置实例参数
|
||||
myChart.setOption(option as any);
|
||||
}
|
||||
}
|
||||
} catch (error) {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
//写入就业行业
|
||||
function setIndustryDistribution() {
|
||||
let industryDistribution = state.majorInfo.industryDistribution
|
||||
if (industryDistribution) {
|
||||
try {
|
||||
let ratios = industryDistribution.replaceAll('%', '').split('、');
|
||||
if (ratios) {
|
||||
let dataList = [] as any
|
||||
ratios.forEach(item => {
|
||||
dataList.push({ name: item.split(':')[0], value: item.split(':')[1] })
|
||||
})
|
||||
if (chartIndustryDistributionRef.value && echarts && dataList.length > 0) {
|
||||
const myChart = echarts.init(chartIndustryDistributionRef.value);
|
||||
const option = {
|
||||
title: {
|
||||
text: '就业行业分布',
|
||||
left: 'left'
|
||||
},
|
||||
tooltip: {
|
||||
trigger: 'item'
|
||||
},
|
||||
legend: {
|
||||
orient: 'vertical',
|
||||
left: 'right'
|
||||
},
|
||||
series: [
|
||||
{
|
||||
type: 'pie',
|
||||
radius: '60%',
|
||||
data: dataList,
|
||||
emphasis: {
|
||||
itemStyle: {
|
||||
shadowBlur: 10,
|
||||
shadowOffsetX: 0,
|
||||
shadowColor: 'rgba(0, 0, 0, 0.5)'
|
||||
}
|
||||
},
|
||||
tooltip: {
|
||||
trigger: 'item',
|
||||
//formatter: '{a} <br/>{b}: {c} ({d}%)'
|
||||
formatter: '{b}: {d}%'
|
||||
}
|
||||
}
|
||||
]
|
||||
};
|
||||
// 设置实例参数
|
||||
myChart.setOption(option as any);
|
||||
}
|
||||
}
|
||||
} catch (error) {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
//写入就业地区
|
||||
function setRegionDistribution() {
|
||||
let regionDistribution = state.majorInfo.regionDistribution
|
||||
if (regionDistribution) {
|
||||
try {
|
||||
let ratios = regionDistribution.replaceAll('%', '').split('、');
|
||||
if (ratios) {
|
||||
let dataList = [] as any
|
||||
ratios.forEach(item => {
|
||||
dataList.push({ name: item.split(':')[0], value: item.split(':')[1] })
|
||||
})
|
||||
if (chartRegionDistributionRef.value && echarts && dataList.length > 0) {
|
||||
const myChart = echarts.init(chartRegionDistributionRef.value);
|
||||
const option = {
|
||||
title: {
|
||||
text: '就业地区分布',
|
||||
left: 'left'
|
||||
},
|
||||
tooltip: {
|
||||
trigger: 'item'
|
||||
},
|
||||
legend: {
|
||||
orient: 'vertical',
|
||||
left: 'right'
|
||||
},
|
||||
series: [
|
||||
{
|
||||
type: 'pie',
|
||||
radius: '60%',
|
||||
data: dataList,
|
||||
emphasis: {
|
||||
itemStyle: {
|
||||
shadowBlur: 10,
|
||||
shadowOffsetX: 0,
|
||||
shadowColor: 'rgba(0, 0, 0, 0.5)'
|
||||
}
|
||||
},
|
||||
tooltip: {
|
||||
trigger: 'item',
|
||||
//formatter: '{a} <br/>{b}: {c} ({d}%)'
|
||||
formatter: '{b}: {d}%'
|
||||
}
|
||||
}
|
||||
]
|
||||
};
|
||||
// 设置实例参数
|
||||
myChart.setOption(option as any);
|
||||
}
|
||||
}
|
||||
} catch (error) {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//获取专业详情信息
|
||||
function reloadMajorInfo() {
|
||||
axiosInstance({
|
||||
url: ApiConstant.Major.majorInfo,
|
||||
method: 'get',
|
||||
params:{
|
||||
majorCode: majorCode,
|
||||
},
|
||||
showLoading: false,//是否显示加载图标
|
||||
}).then((response) => {
|
||||
return response.data
|
||||
}).then((data) => {
|
||||
if(!data.success){
|
||||
ElMessage.error(data.message);
|
||||
return false
|
||||
}
|
||||
if(data.result){
|
||||
state.majorInfo = data.result
|
||||
setPeople()
|
||||
setJobDistribution()
|
||||
setIndustryDistribution()
|
||||
setRegionDistribution()
|
||||
}
|
||||
}).catch((error: any) => {
|
||||
console.log(error);
|
||||
}).finally(() => {
|
||||
});
|
||||
}
|
||||
|
||||
function reloadSchoolList(){
|
||||
state.selectForm.current = 1
|
||||
state.schoolResult.list = []
|
||||
getSchoolList()
|
||||
}
|
||||
//获取开设院校列表
|
||||
function getSchoolList() {
|
||||
state.schoolResult.status === 'loading'
|
||||
axiosInstance({
|
||||
url: ApiConstant.School.searchSchoolList,
|
||||
method: 'get',
|
||||
params:{
|
||||
majorCode: majorCode,
|
||||
schoolName: state.selectForm.schoolName,
|
||||
pageNum: state.selectForm.current,
|
||||
pageSize: state.selectForm.size,
|
||||
addressList: state.selectForm.addressList,
|
||||
tagsList:state.selectForm.tagsList,
|
||||
schoolNatureList:state.selectForm.schoolNatureList
|
||||
},
|
||||
//showLoading: false,//是否显示加载图标
|
||||
}).then((response) => {
|
||||
return response.data
|
||||
}).then((data) => {
|
||||
if(!data.success){
|
||||
ElMessage.error(data.message);
|
||||
return false
|
||||
}
|
||||
if(data.result){
|
||||
state.schoolResult.list = [...state.schoolResult.list, ...data.result.records]
|
||||
if (data.result.current >= data.result.pages) {
|
||||
state.schoolResult.status = 'noMore'
|
||||
} else {
|
||||
state.schoolResult.status = 'more'
|
||||
}
|
||||
}
|
||||
}).catch((error: any) => {
|
||||
console.log(error);
|
||||
}).finally(() => {
|
||||
});
|
||||
}
|
||||
|
||||
//清除筛选项
|
||||
function clearFilter() {
|
||||
state.selectForm.schoolName = ''
|
||||
state.selectForm.addressList = []
|
||||
state.selectForm.kyjxList = []
|
||||
state.selectForm.tagsList = []
|
||||
state.selectForm.schoolNatureList = []
|
||||
reloadSchoolList()
|
||||
}
|
||||
//选择地区
|
||||
function checkboxAddress(addressCode: string) {
|
||||
if (!addressCode) {
|
||||
state.selectForm.addressList = []
|
||||
} else if (state.selectForm.addressList.includes(addressCode)) {
|
||||
state.selectForm.addressList = state.selectForm.addressList.filter((element:any) => element !== addressCode)
|
||||
} else {
|
||||
state.selectForm.addressList.push(addressCode)
|
||||
}
|
||||
reloadSchoolList()
|
||||
}
|
||||
//选择院校标签
|
||||
function checkboxSchoolTags(schoolTag: string) {
|
||||
if (!schoolTag) {
|
||||
state.selectForm.tagsList = []
|
||||
} else if (state.selectForm.tagsList.includes(schoolTag)) {
|
||||
state.selectForm.tagsList = state.selectForm.tagsList.filter((element:any) => element !== schoolTag)
|
||||
} else {
|
||||
state.selectForm.tagsList.push(schoolTag)
|
||||
}
|
||||
reloadSchoolList()
|
||||
}
|
||||
//选择办学类型
|
||||
function checkboxSchoolNature(schoolNature: string) {
|
||||
if (!schoolNature) {
|
||||
state.selectForm.schoolNatureList = []
|
||||
} else if (state.selectForm.schoolNatureList.includes(schoolNature)) {
|
||||
state.selectForm.schoolNatureList = state.selectForm.schoolNatureList.filter((element:any) => element !== schoolNature)
|
||||
} else {
|
||||
state.selectForm.schoolNatureList.push(schoolNature)
|
||||
}
|
||||
reloadSchoolList()
|
||||
}
|
||||
const showSchoolInfo = (schoolCode: string) => {
|
||||
window.open('/school/'+schoolCode, '_self')
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
/* 上部分 start*/
|
||||
.header {
|
||||
background-color: white;
|
||||
padding: 20px 30px;
|
||||
|
||||
.majorName {
|
||||
width: 450px;
|
||||
line-height: 80px;
|
||||
font-size: 28px;
|
||||
border-bottom: 1px solid #e4e7ed;
|
||||
}
|
||||
}
|
||||
|
||||
/* 上部分 end*/
|
||||
/* 中间部分 start*/
|
||||
.bodyr {
|
||||
background-color: white;
|
||||
padding: 20px 30px;
|
||||
|
||||
.text {
|
||||
padding: 10px 0;
|
||||
}
|
||||
}
|
||||
|
||||
/* 中间部分 end*/
|
||||
|
||||
.paneTypes {
|
||||
margin-top: 15px;
|
||||
|
||||
.panetype {
|
||||
cursor: pointer;
|
||||
border: 1px solid #ebeef5;
|
||||
border-radius: 5px 5px 0 0;
|
||||
width: 100px;
|
||||
text-align: center;
|
||||
padding: 5px 15px;
|
||||
margin-right: 10px;
|
||||
background-color: white;
|
||||
color: $color-blue-60;
|
||||
transition: all 0.3s;
|
||||
}
|
||||
|
||||
.panetype-active {
|
||||
background-color: $color-blue-60;
|
||||
color: white;
|
||||
}
|
||||
}
|
||||
|
||||
</style>
|
||||
|
|
|
|||
|
|
@ -1,15 +1,258 @@
|
|||
<script lang="ts">
|
||||
import {defineComponent} from 'vue'
|
||||
|
||||
export default defineComponent({
|
||||
name: "search"
|
||||
<template>
|
||||
<LeftNav/>
|
||||
<div class="margin-5"></div>
|
||||
<div class="main-container wrap main-fullScreen">
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="18">
|
||||
<!--筛选项-->
|
||||
<div class="filterTable">
|
||||
<div class="filterTitle flexWrap">
|
||||
<div class="flex-item-75">
|
||||
<el-input v-model="state.selectForm.majorName" maxlength="24" show-word-limit
|
||||
style="max-width: 230px;height: 40px;line-height: 40px;" placeholder="请输入专业名称"
|
||||
class="input-with-select" />
|
||||
<el-button :icon="Search" @click="getData"
|
||||
style="border-left: none;height: 40px;line-height: 40px;" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="filterBody">
|
||||
<div class="flexWrap">
|
||||
<div class="flex-item-1">专业层次</div>
|
||||
<div class="flex-item-9 tags">
|
||||
<span class="tag"
|
||||
:class="state.selectForm.educationalLevel === item.value ? 'tag-active' : ''"
|
||||
v-for="(item, index) in state.levelList" :key="index"
|
||||
@click="checkboxLevel(item.value)">
|
||||
{{ item.label }}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="flexWrap">
|
||||
<div class="flex-item-1">专业类型</div>
|
||||
<div class="flex-item-9 tags">
|
||||
<span class="tag" :class="!state.selectForm.majorType ? 'tag-active' : ''"
|
||||
@click="checkboxMajorType('')">不限</span>
|
||||
<span class="tag" :class="state.selectForm.majorType === item ? 'tag-active' : ''"
|
||||
v-for="(item, index) in state.majorTypeList" :key="index"
|
||||
@click="checkboxMajorType(item)">
|
||||
{{ item }}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="border-b"></div>
|
||||
<div class="flexWrap">
|
||||
<span class="clearFilterButton" @click="clearFilter">重置已选</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="majorDiv" v-if="state.majorList && state.majorList.length > 0">
|
||||
<div class="item" v-for="(item, index) in state.majorList" :key="index">
|
||||
<div class="flexWrap title">
|
||||
# {{ item.majorTypeName }}
|
||||
</div>
|
||||
<div class="majorList" v-if="item.list">
|
||||
<div class="majorItem border-b" v-for="(major, mi) in item.list" :key="mi" @click="openMajorDetail(major)">
|
||||
<div class="flexWrap">
|
||||
<div class="flex-item-9">
|
||||
<div class="flexWrap majorName">{{ major.majorName }}</div>
|
||||
<div class="flexWrap">
|
||||
<el-space spacer="|">
|
||||
<div>专业代码:{{ major.majorCode }}{{ major.majorCodeChar }}</div>
|
||||
<div>学制:{{ major.semester ? major.semester + '年' : '--' }}
|
||||
</div>
|
||||
<div v-if="state.selectForm.educationalLevel == '1'">
|
||||
学位:{{ major.degree || '--' }}
|
||||
</div>
|
||||
<div v-if="state.selectForm.educationalLevel == '1'">
|
||||
男女比例:{{ major.sexRatio || '--' }}
|
||||
</div>
|
||||
</el-space>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="flex-item-1" style="height: 50px;line-height: 50px;">
|
||||
<div class="" style="margin:0 5px 0 auto">
|
||||
<el-button type="primary" @click="openMajorDetail(major)">查看</el-button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</div>
|
||||
</template>
|
||||
<script lang="ts" setup>
|
||||
import {h, ref, defineComponent, onMounted, reactive } from 'vue';
|
||||
import { InfoFilled, Search, Edit } from '@element-plus/icons-vue';
|
||||
import { ElMessage,ElDivider } from 'element-plus';
|
||||
import ApiConstant from '@/utils/ApiConstant';
|
||||
import ImagesConstant from '@/utils/ImagesConstant';
|
||||
import StaticConstant from '@/utils/StaticConstant';
|
||||
import axiosInstance from '@/utils/http';
|
||||
document.title = '查专业|艺体志愿宝';
|
||||
const state = reactive({
|
||||
selectForm: {
|
||||
educationalLevel: '1',//本科/专科
|
||||
majorType: '',
|
||||
majorName: '',//搜素专业名称
|
||||
current: 1,
|
||||
pageSize: 10,
|
||||
},
|
||||
majorList: [] as any,//专业列表
|
||||
majorTypeList: [],//专业大类
|
||||
levelList: [
|
||||
{ label: '本科', value: '1' }, { label: '专科', value: '2' },
|
||||
]
|
||||
})
|
||||
const spacer = h(ElDivider, { direction: 'vertical' })
|
||||
onMounted(() => {
|
||||
getMajorTypeList()
|
||||
getData()
|
||||
})
|
||||
//获取专业类型
|
||||
function getMajorTypeList() {
|
||||
axiosInstance({
|
||||
url: ApiConstant.Major.majorTypeList,
|
||||
method: 'get',
|
||||
params: {
|
||||
educationalLevel: state.selectForm.educationalLevel
|
||||
},
|
||||
showLoading: false,//是否显示加载图标
|
||||
}).then((response) => {
|
||||
return response.data
|
||||
}).then((data) => {
|
||||
if (!data.success) {
|
||||
ElMessage.error(data.message);
|
||||
} else {
|
||||
state.majorTypeList = data.result
|
||||
}
|
||||
})
|
||||
}
|
||||
//获取专业列表数据
|
||||
function getData() {
|
||||
axiosInstance({
|
||||
url: ApiConstant.Major.majorList,
|
||||
method: 'get',
|
||||
params: {
|
||||
majorName: state.selectForm.majorName,
|
||||
educationalLevel: state.selectForm.educationalLevel,
|
||||
majorType: state.selectForm.majorType
|
||||
},
|
||||
//showLoading: false,//是否显示加载图标
|
||||
}).then((response) => {
|
||||
return response.data
|
||||
}).then((data) => {
|
||||
if (!data.success) {
|
||||
ElMessage.error(data.message);
|
||||
} else {
|
||||
state.majorList = data.result
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
function clearFilter() {
|
||||
state.selectForm.educationalLevel = "1"
|
||||
state.selectForm.majorType = ''
|
||||
state.selectForm.majorName = ''
|
||||
getData()
|
||||
}
|
||||
|
||||
//选择专业层次
|
||||
function checkboxLevel(e: string) {
|
||||
if (state.selectForm.educationalLevel !== e) {
|
||||
state.selectForm.educationalLevel = e
|
||||
state.selectForm.majorType = ''
|
||||
getMajorTypeList()
|
||||
getData()
|
||||
}
|
||||
}
|
||||
//选择专业类型
|
||||
function checkboxMajorType(e: string) {
|
||||
if (state.selectForm.majorType !== e) {
|
||||
state.selectForm.majorType = e
|
||||
getData()
|
||||
}
|
||||
}
|
||||
//查看专业详情信息
|
||||
function openMajorDetail(e:any){
|
||||
window.open('/major/'+e.majorCode,'_self')
|
||||
}
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<style scoped lang="scss">
|
||||
/*筛选表格 start*/
|
||||
.filterTable {
|
||||
border: 1px 1px 0 1px solid #ebeef5;
|
||||
border-radius: 5px 5px 5px 0px;
|
||||
|
||||
</template>
|
||||
.filterTitle {
|
||||
|
||||
<style scoped>
|
||||
//筛选表格-标题行
|
||||
//搜索框
|
||||
.searchSchool {
|
||||
float: right;
|
||||
margin: 3px 10px 3px 0;
|
||||
}
|
||||
}
|
||||
|
||||
//筛选表格中心部分
|
||||
.filterBody {
|
||||
background-color: white;
|
||||
border-radius: 0 0 5px 0;
|
||||
padding: 15px 15px 0 15px;
|
||||
color: $color-black-60;
|
||||
border-bottom: 1px solid #ebeef5;
|
||||
|
||||
.tags {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
flex-wrap: wrap;
|
||||
|
||||
.tag {
|
||||
cursor: pointer;
|
||||
margin-bottom: 10px;
|
||||
margin-right: 15px;
|
||||
color: black;
|
||||
font-size: 14px;
|
||||
padding: 0 7px;
|
||||
border-radius: 4px;
|
||||
border: 1px solid white;
|
||||
}
|
||||
|
||||
.tag-active {
|
||||
color: $color-blue-60;
|
||||
border: 1px solid $color-blue-60;
|
||||
position: relative;
|
||||
}
|
||||
}
|
||||
|
||||
.clearFilterButton {
|
||||
cursor: pointer;
|
||||
line-height: 50px;
|
||||
color: $color-blue-60;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*筛选表格 end */
|
||||
/*列表 start*/
|
||||
.majorDiv {
|
||||
.item {
|
||||
background-color: white;
|
||||
border: 1px solid #ebeef5;
|
||||
border-radius: 5px;
|
||||
margin: 10px 0;
|
||||
padding: 15px;
|
||||
}
|
||||
|
||||
.title {
|
||||
font-size: 20px;
|
||||
font-weight: 600;
|
||||
}
|
||||
}
|
||||
|
||||
/*列表 end*/
|
||||
</style>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,241 @@
|
|||
<template>
|
||||
<LeftNav />
|
||||
<div class="main-container wrap main-fullScreen">
|
||||
<div class="filterBody">
|
||||
<div class="flexWrap">
|
||||
<div class="flex-item-1">省份</div>
|
||||
<div class="flex-item-9 tags">
|
||||
<div class="" style="color: black;">{{ state.scoreInfo.province }}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="flexWrap">
|
||||
<div class="flex-item-1">文理分科</div>
|
||||
<div class="flex-item-9 tags">
|
||||
<div class="" style="color: black;">{{ state.scoreInfo.cognitioPolyclinic }}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="flexWrap">
|
||||
<div class="flex-item-1">专业类别</div>
|
||||
<div class="flex-item-9 tags" v-if="state.vipInfo.vipLevel>=9">
|
||||
<el-select
|
||||
v-model="state.selectForm.professionalCategory" placeholder="Select"
|
||||
style="width: 150px"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in state.professionalCategoryList"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</div>
|
||||
<div class="flex-item-9 tags" v-else>
|
||||
<div class="" style="color: black;">{{ state.scoreInfo.professionalCategory }}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="flexWrap">
|
||||
<div class="flex-item-1">批次</div>
|
||||
<div class="flex-item-9 tags" v-if="state.vipInfo.vipLevel>=9">
|
||||
<el-select
|
||||
v-model="state.selectForm.batch" placeholder="Select"
|
||||
style="width: 150px"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in state.batchArray"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</div>
|
||||
<div class="flex-item-9 tags" v-else>
|
||||
<div class="" style="color: black;">{{ state.scoreInfo.batch }}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="flexWrap">
|
||||
<div class="flex-item-1">文化分数</div>
|
||||
<div class="flex-item-15 tags">
|
||||
<el-input v-model="state.selectForm.culturalScore" :min="0" :max="600"
|
||||
@input="filterCulturalScoreInput" />
|
||||
</div>
|
||||
<div class="flex-item-1">统考分数</div>
|
||||
<div class="flex-item-15 tags">
|
||||
<el-input v-model="state.selectForm.professionalScore" :min="0" :max="300"
|
||||
@input="filterProfessionalScoreInput" />
|
||||
</div>
|
||||
<div class="flex-item-2 tags">
|
||||
<el-button type="primary" :icon="Search" @click="getList">查询</el-button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tableData">
|
||||
<el-table :data="state.dataList" height="250" style="width: 100%">
|
||||
<el-table-column prop="rulesEnrollProbability" label="类型" width="180" align="center"/>
|
||||
<el-table-column prop="probabilityOperator" label="录取规则" width="180" align="center"/>
|
||||
<el-table-column prop="score" label="综合分" align="center"/>
|
||||
<el-table-column label="操作" align="center">
|
||||
<template #default="scope">
|
||||
<el-button link type="primary" size="small" @click="handleClick(scope.row)">
|
||||
<span>查看院校
|
||||
<span class="ml-5 mr-5">{{ scope.row.schoolNum }}</span>所
|
||||
</span>
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
import { inject, onMounted, reactive } from 'vue';
|
||||
import LeftNav from "@/components/LeftNav.vue";
|
||||
import { getSystemName, isNull } from '@/utils/tool';
|
||||
import { getScore } from '@/axios/api';
|
||||
import { Search } from '@element-plus/icons-vue';
|
||||
import ApiConstant from '@/utils/ApiConstant';
|
||||
import axiosInstance from '@/utils/http';
|
||||
import { useRouter } from 'vue-router';
|
||||
import StaticConstant from '@/utils/StaticConstant';
|
||||
//首先在setup中定义
|
||||
const router = useRouter();
|
||||
document.title = '轻松算投档|' + getSystemName()
|
||||
|
||||
const state = reactive({
|
||||
dataList: [] as any,
|
||||
flag: true,
|
||||
selectForm: {
|
||||
batch:'',//批次
|
||||
culturalScore: '',//文化分
|
||||
professionalScore: '',//统考分
|
||||
professionalCategory:'',
|
||||
},
|
||||
//批次
|
||||
batchArray: [{label: '本科批', value: '本科'}, {label: '高职高专批', value: '高职高专'}],
|
||||
batchIndex: 0,
|
||||
scoreInfo: {} as any,
|
||||
professionalCategoryList:StaticConstant.professionalCategoryList,//专业类型列表
|
||||
vipInfo:{
|
||||
vipLevel:0,
|
||||
} as any,
|
||||
})
|
||||
const openEditScore = inject('openEditScore') as Function;
|
||||
onMounted(() => {
|
||||
if (getScoreInfo()) {
|
||||
//vip判断
|
||||
let vipInfo = localStorage.getItem('vipInfo') as any
|
||||
if(vipInfo){
|
||||
vipInfo = JSON.parse(vipInfo);
|
||||
state.vipInfo.vipLevel = vipInfo.vipLevel
|
||||
}
|
||||
}
|
||||
})
|
||||
//获取成绩
|
||||
function getScoreInfo() {
|
||||
//判断登录
|
||||
if (ifLogin()) {
|
||||
//从浏览器数据中取出成绩信息
|
||||
let scoreInfoStr = localStorage.getItem('scoreInfo') as string
|
||||
if (isNull(scoreInfoStr)) {
|
||||
//如果取出来的成绩为空,则请求一次成绩接口
|
||||
getScore()
|
||||
//如果取出来之后还是没有成绩
|
||||
scoreInfoStr = localStorage.getItem('scoreInfo') as string
|
||||
if (isNull(scoreInfoStr)) {
|
||||
//提示用户更改自己的成绩
|
||||
return oepnEditScoreInfo()
|
||||
}
|
||||
} else {
|
||||
state.scoreInfo = JSON.parse(scoreInfoStr)
|
||||
state.selectForm.batch = state.scoreInfo.batch
|
||||
state.selectForm.culturalScore = state.scoreInfo.culturalScore
|
||||
state.selectForm.professionalScore = state.scoreInfo.professionalScore
|
||||
state.selectForm.professionalCategory = state.scoreInfo.professionalCategory
|
||||
}
|
||||
return true
|
||||
}
|
||||
return false
|
||||
}
|
||||
//判断登录状态
|
||||
function ifLogin() {
|
||||
let token = window.localStorage.getItem('X-Access-Token');
|
||||
const openLogin = inject('openLogin') as Function;
|
||||
if (!token && typeof openLogin === 'function') {
|
||||
openLogin(); // 调用提供的打开登录方法
|
||||
return false
|
||||
}
|
||||
return true
|
||||
}
|
||||
//打开更改成绩界面
|
||||
function oepnEditScoreInfo() {
|
||||
if (typeof openEditScore === 'function') {
|
||||
openEditScore(); // 调用提供的打开更改成绩弹框
|
||||
return false
|
||||
}
|
||||
return true
|
||||
}
|
||||
function filterCulturalScoreInput(value: number | string) {
|
||||
if (typeof value === 'string') {
|
||||
state.selectForm.culturalScore = value.replace(/\D/g, ''); // 过滤掉非数字字符
|
||||
}
|
||||
}
|
||||
function filterProfessionalScoreInput(value: number | string) {
|
||||
if (typeof value === 'string') {
|
||||
state.selectForm.professionalScore = value.replace(/\D/g, ''); // 过滤掉非数字字符
|
||||
}
|
||||
}
|
||||
function getList() {
|
||||
axiosInstance({
|
||||
url: ApiConstant.Score.calculateInvestment,
|
||||
method: 'get',
|
||||
params: {
|
||||
province: state.scoreInfo.province,
|
||||
culturalScore: state.selectForm.culturalScore,//文化分
|
||||
professionalScore: state.selectForm.professionalScore,//统考分
|
||||
category: state.scoreInfo.cognitioPolyclinic,//this.categoryArray[this.categoryIndex].name
|
||||
professionalCategory: state.selectForm.professionalCategory,
|
||||
batch: state.batchArray[state.batchIndex].value
|
||||
},
|
||||
//showLoading: false,//是否显示加载图标
|
||||
}).then((response: AxiosResponse) => {
|
||||
return response?.data
|
||||
}).then((data) => {
|
||||
if (data.success) {
|
||||
console.log(data)
|
||||
if (data.result && data.result.length > 0) {
|
||||
state.dataList = data.result
|
||||
} else {
|
||||
state.dataList = null
|
||||
}
|
||||
}
|
||||
}).catch((error: any) => {
|
||||
console.log(error);
|
||||
}).finally(() => {
|
||||
state.flag = false
|
||||
});
|
||||
}
|
||||
function handleClick(e:any){
|
||||
//router.push({name:'fillVolunteer2',params:{rulesEnrollProbability:e.rulesEnrollProbability}})
|
||||
router.push({
|
||||
path:'/fillVolunteer',
|
||||
query:{rulesEnrollProbability:e.rulesEnrollProbability}
|
||||
})
|
||||
}
|
||||
</script>
|
||||
<style scoped lang="scss">
|
||||
root {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
:deep(.el-input) {
|
||||
width: 150px;
|
||||
}
|
||||
|
||||
:deep(.el-input__inner) {
|
||||
font-size: 20px;
|
||||
}
|
||||
|
||||
.tableData{
|
||||
background-color: white;
|
||||
padding: 20px;
|
||||
}
|
||||
</style>
|
||||
|
|
@ -0,0 +1,326 @@
|
|||
<script setup lang="ts">
|
||||
import StaticConstant from "@/utils/StaticConstant";
|
||||
import { reactive, ref, toRefs } from 'vue';
|
||||
import axiosInstance from '@/utils/http';
|
||||
import apiConstant from "@/utils/ApiConstant";
|
||||
import { AxiosResponse } from "axios";
|
||||
import { Search } from '@element-plus/icons-vue';
|
||||
import LeftNav from "@/components/LeftNav.vue";
|
||||
document.title = '轻松查排名|艺体志愿宝';
|
||||
const state = reactive({
|
||||
dataList: null as any,
|
||||
categoryList: ['文科', '理科'] as any,
|
||||
professionalCategoryList: [...StaticConstant.professionalCategoryList] as any,
|
||||
yearList: ['2024', '2023', '2022'] as any,
|
||||
selectForm: {
|
||||
professionalScore: 0,//统考成绩
|
||||
professionalCategory: '美术与设计类',
|
||||
category: '文科',
|
||||
},//查位次表单
|
||||
flag: true,
|
||||
|
||||
queryForm: {
|
||||
professionalCategory: '美术与设计类',
|
||||
year: '2024',
|
||||
},// 五分一段表查询表单
|
||||
professionalCategoryList2: [
|
||||
{value: '美术与设计类', label: '美术与设计类'},
|
||||
{value: '播音与主持类', label: '播音与主持类'},
|
||||
{value: '服装表演',label: '服装表演类'},
|
||||
{value: '戏剧影视导演',label: '戏剧影视导演类'},
|
||||
{value: '戏剧影视表演',label: '戏剧影视表演类'},
|
||||
{value: '音乐表演声乐',label: '音乐表演声乐类'},
|
||||
{value: '音乐表演器乐',label: '音乐表演器乐类'},
|
||||
{value: '音乐教育',label: '音乐教育类'},
|
||||
{value: '舞蹈类', label: '舞蹈类'},
|
||||
{value: '书法类', label: '书法类'}
|
||||
] as any,
|
||||
scoreTableDialogVisible: false,//显示成绩表弹框判断
|
||||
fiveScoreTableData:[] as any,//五分一段表数据
|
||||
})
|
||||
|
||||
//选择文理科
|
||||
function checkboxCategory(e: string) {
|
||||
if (state.selectForm.category !== e) {
|
||||
state.selectForm.category = e
|
||||
}
|
||||
}
|
||||
//专业类别
|
||||
function checkboxProfessionalCategory(e: string) {
|
||||
if (state.selectForm.professionalCategory !== e) {
|
||||
state.selectForm.professionalCategory = e
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//获取排名
|
||||
function getList() {
|
||||
axiosInstance({
|
||||
url: apiConstant.Score.scoreSegmentSearchByScore,
|
||||
method: 'get',
|
||||
params: {
|
||||
province: '河南',
|
||||
score: state.selectForm.professionalScore,
|
||||
professionalCategory: state.selectForm.professionalCategory
|
||||
},
|
||||
//showLoading: false,//是否显示加载图标
|
||||
}).then((response: AxiosResponse) => {
|
||||
return response?.data
|
||||
}).then((data) => {
|
||||
if (data.success) {
|
||||
console.log(data)
|
||||
if (data.result && data.result.length > 0) {
|
||||
state.dataList = data.result
|
||||
} else {
|
||||
state.dataList = null
|
||||
}
|
||||
}
|
||||
}).catch((error: any) => {
|
||||
console.log(error);
|
||||
}).finally(() => {
|
||||
state.flag = false
|
||||
});
|
||||
}
|
||||
function handleNumberChange(v: string) {
|
||||
console.log(v)
|
||||
}
|
||||
|
||||
|
||||
// 选择年份
|
||||
const checkboxYear = (e: string) => {
|
||||
if(state.queryForm.year != e){
|
||||
state.queryForm.year = e
|
||||
if (e === '2024') {
|
||||
state.professionalCategoryList2 = [
|
||||
{value: '美术与设计类', label: '美术与设计类'},
|
||||
{value: '播音与主持类', label: '播音与主持类'},
|
||||
{value: '服装表演',label: '服装表演类'},
|
||||
{value: '戏剧影视导演',label: '戏剧影视导演类'},
|
||||
{value: '戏剧影视表演',label: '戏剧影视表演类'},
|
||||
{value: '音乐表演声乐',label: '音乐表演声乐类'},
|
||||
{value: '音乐表演器乐',label: '音乐表演器乐类'},
|
||||
{value: '音乐教育',label: '音乐教育类'},
|
||||
{value: '舞蹈类', label: '舞蹈类'},
|
||||
{value: '书法类', label: '书法类'},
|
||||
]
|
||||
} else if (e === '2023') {
|
||||
state.professionalCategoryList2 = [
|
||||
{ value: '美术与设计类', label: '美术与设计类' },
|
||||
{value: '播音与主持类', label: '播音与主持类'},
|
||||
{ value: '国际标准舞', label: '国际标准舞类' },
|
||||
{ value: '艺术舞蹈', label: '艺术舞蹈类' },
|
||||
{ value: '表演类', label: '表演类' },
|
||||
{ value: '音乐类', label: '音乐类' },
|
||||
{ value: '书法类', label: '书法类' }
|
||||
]
|
||||
} else if (e === '2022') {
|
||||
state.professionalCategoryList2 = [
|
||||
{ value: '美术与设计类', label: '美术与设计类' },
|
||||
{ value: '播音与主持类', label: '播音与主持类' },
|
||||
{ value: '国际标准舞', label: '国际标准舞类' },
|
||||
{ value: '艺术舞蹈', label: '艺术舞蹈类' },
|
||||
{ value: '表演类', label: '表演类' },
|
||||
{ value: '音乐类', label: '音乐类' },
|
||||
{ value: '书法类', label: '书法类' }
|
||||
]
|
||||
}
|
||||
state.queryForm.professionalCategory = state.professionalCategoryList2[0].value
|
||||
getScoreList()
|
||||
console.log(state.professionalCategoryList2)
|
||||
}
|
||||
|
||||
}
|
||||
// 选择专业类别
|
||||
const checkboxProfessionalCategory2 = (e:string) =>{
|
||||
if (state.queryForm.professionalCategory !== e) {
|
||||
state.queryForm.professionalCategory = e
|
||||
getScoreList()
|
||||
}
|
||||
}
|
||||
// 获取五分一段表
|
||||
const getScoreList = ()=>{
|
||||
axiosInstance({
|
||||
url: apiConstant.Score.scoreSegmentList,
|
||||
method: 'get',
|
||||
params: {
|
||||
year:state.queryForm.year,
|
||||
professionalCategory: state.queryForm.professionalCategory
|
||||
},
|
||||
//showLoading: false,//是否显示加载图标
|
||||
}).then((response: AxiosResponse) => {
|
||||
return response?.data
|
||||
}).then((data) => {
|
||||
if (data.success) {
|
||||
state.fiveScoreTableData = data.result
|
||||
console.log(data)
|
||||
}
|
||||
}).catch((error: any) => {
|
||||
console.log(error);
|
||||
}).finally(() => {
|
||||
state.flag = false
|
||||
});
|
||||
}
|
||||
|
||||
//打开分段表
|
||||
const openScoreTableDialog = () => {
|
||||
state.scoreTableDialogVisible = true
|
||||
}
|
||||
//关闭分段表
|
||||
const closeScoreTableDialog = () => {
|
||||
state.scoreTableDialogVisible = false
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<LeftNav />
|
||||
<div class="main-container wrap main-fullScreen">
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="24">
|
||||
<div class="filterBody">
|
||||
<div class="flexWrap">
|
||||
<div class="flex-item-1">专业类别</div>
|
||||
<div class="flex-item-9 tags">
|
||||
<span class="tag" :class="state.selectForm.professionalCategory === item.value ? 'tag-active' : ''"
|
||||
v-for="(item, index) in state.professionalCategoryList" :key="index"
|
||||
@click="checkboxProfessionalCategory(item.value)">
|
||||
{{ item.label }}
|
||||
</span>
|
||||
<span style="padding: 0 30px">
|
||||
<el-button type="primary" @click="openScoreTableDialog">五分一段表</el-button>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="flexWrap">
|
||||
<div class="flex-item-1">统考分数</div>
|
||||
<div class="flex-item-9 tags">
|
||||
<el-input-number v-model="state.selectForm.professionalScore" :min="0" :max="600"
|
||||
@change="handleNumberChange" />
|
||||
<el-button type="primary" :icon="Search" @click="getList">查询</el-button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="dataList">
|
||||
<div class="item" v-if="state.dataList && state.dataList.length > 0">
|
||||
<div class="flexWrap" v-for="(item, index) in state.dataList" :key="index">
|
||||
<div v-if="item.type == 1">
|
||||
<div class="year">{{ item.year }}年</div>
|
||||
<div class="t1">
|
||||
<span v-if="item.beginScore && item.endScore">
|
||||
{{ item.beginScore }}分~{{ item.endScore }}分
|
||||
</span>
|
||||
<span v-else-if="item.beginScore">
|
||||
{{ item.beginScore }}分~{{ item.endScore }}分
|
||||
</span>
|
||||
<span v-else>
|
||||
最低分{{ item.endScore }}分
|
||||
</span>
|
||||
</div>
|
||||
<div class="t2">
|
||||
超越全省<span class="orange fw-6">{{ item.rate }}%</span>的考生
|
||||
</div>
|
||||
<div class="t3">
|
||||
排名
|
||||
<span v-if="item.startRank && item.endRank">
|
||||
介于{{ item.startRank }}名~{{ item.endRank }}名之间
|
||||
</span>
|
||||
<span v-else-if="item.startRank">
|
||||
大于{{ item.startRank }} 名
|
||||
</span>
|
||||
<span v-else>
|
||||
小于{{ item.endRank }}名
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div v-else>
|
||||
您的分数已低于{{ item.year }}公布的最低分{{ item.beginScore }}分
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item" v-else-if="state.flag">
|
||||
请输入统考成绩查询
|
||||
</div>
|
||||
<div class="item" v-else>
|
||||
暂未查询到结果
|
||||
</div>
|
||||
</div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</div>
|
||||
|
||||
<!--五分一段表弹框-->
|
||||
<el-dialog v-model="state.scoreTableDialogVisible" title="" width="60em" :closeOnClickModal="false"
|
||||
:show-close="false">
|
||||
<template #header>
|
||||
<div style="display: flex; justify-content: space-between; align-items: center;">
|
||||
<h3 style="margin: 0;">五分一段表</h3>
|
||||
<el-icon @click="closeScoreTableDialog" class="el-dialog__headerbtn">
|
||||
<Close />
|
||||
</el-icon>
|
||||
</div>
|
||||
</template>
|
||||
<!--筛选内容-->
|
||||
<div class="filterBody">
|
||||
<div class="flexWrap">
|
||||
<div class="flex-item-1">年份</div>
|
||||
<div class="flex-item-9 tags">
|
||||
<span class="tag" :class="state.queryForm.year === item ? 'tag-active' : ''"
|
||||
v-for="(item, index) in state.yearList" :key="index" @click="checkboxYear(item)">
|
||||
{{ item }}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="flexWrap">
|
||||
<div class="flex-item-1">专业类别</div>
|
||||
<div class="flex-item-9 tags">
|
||||
<span class="tag" :class="state.queryForm.professionalCategory === item.value ? 'tag-active' : ''"
|
||||
v-for="(item, index) in state.professionalCategoryList2" :key="index"
|
||||
@click="checkboxProfessionalCategory2(item.value)">
|
||||
{{ item.label }}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="flexWrap">
|
||||
<div class="flex-item-9 tags">
|
||||
<el-button type="primary" :icon="Search" @click="getScoreList">查询</el-button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<el-table :data="state.fiveScoreTableData" border style="width: 100%">
|
||||
<el-table-column prop="year" label="年份" align="center"/>
|
||||
<el-table-column prop="score" label="分数" align="center"/>
|
||||
<el-table-column prop="num" label="人数" align="center"/>
|
||||
<el-table-column prop="personNum" label="累计人数" align="center"/>
|
||||
</el-table>
|
||||
</div>
|
||||
</el-dialog>
|
||||
|
||||
</template>
|
||||
|
||||
<style scoped lang="scss">
|
||||
root {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.dataList {
|
||||
min-height: 650px;
|
||||
background-color: white;
|
||||
border-radius: 0 0 5px 0;
|
||||
padding: 15px;
|
||||
//color: $color-black-60;
|
||||
border-bottom: 1px solid #ebeef5;
|
||||
line-height: 30px;
|
||||
font-size: 30px;
|
||||
color: black;
|
||||
|
||||
.year {
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.item {
|
||||
padding-bottom: 20px;
|
||||
border-bottom: 1px solid #ebeef5;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
@ -0,0 +1,127 @@
|
|||
<script setup lang="ts">
|
||||
import StaticConstant from "@/utils/StaticConstant";
|
||||
import {reactive} from 'vue';
|
||||
import axiosInstance from '@/utils/http';
|
||||
import apiConstant from "@/utils/ApiConstant";
|
||||
import {AxiosResponse} from "axios";
|
||||
import {ScoreControlLineEntity} from "@/types";
|
||||
|
||||
document.title = '省控线|艺体志愿宝';
|
||||
const state = reactive({
|
||||
scoreResult:{
|
||||
size:0,
|
||||
total:0,
|
||||
current:1,
|
||||
records:[] as Array<ScoreControlLineEntity>
|
||||
},
|
||||
loading:false,
|
||||
professionalCategory:'',
|
||||
category:'',
|
||||
year:'2024',
|
||||
pageNo:1,
|
||||
pageSize:10,
|
||||
})
|
||||
|
||||
scoreControlLineList()
|
||||
|
||||
|
||||
//获取省控线列表
|
||||
function scoreControlLineList(){
|
||||
state.loading=true
|
||||
axiosInstance({
|
||||
url: apiConstant.Score.historyScoreControlLineList,
|
||||
method: 'get',
|
||||
params: {
|
||||
pageNo:state.pageNo,
|
||||
pageSize:state.pageSize,
|
||||
year:state.year,
|
||||
category:state.category,
|
||||
professionalCategory:state.professionalCategory
|
||||
},
|
||||
showLoading: false,//是否显示加载图标
|
||||
}).then((response: AxiosResponse) => {
|
||||
return response?.data
|
||||
}).then((data) => {
|
||||
if (data.success) {
|
||||
//有数据情况下
|
||||
state.scoreResult = data.result
|
||||
}
|
||||
}).catch((error: any) => {
|
||||
console.log(error);
|
||||
}).finally(() => {
|
||||
state.loading=false
|
||||
});
|
||||
}
|
||||
|
||||
//点击分页跳转
|
||||
const handlePage = (page: number) => {
|
||||
if (page) {
|
||||
state.pageNo = page
|
||||
scoreControlLineList()
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<LeftNav/>
|
||||
<div class="main-container wrap main-fullScreen" style="min-height: 800px;">
|
||||
<el-row :gutter="20">
|
||||
<!-- 左侧 院校列表-->
|
||||
<el-col :span="24">
|
||||
<el-card class="box-card">
|
||||
<div style="margin-bottom: 10px">
|
||||
<el-form :inline="true" :model="state" class="demo-form-inline">
|
||||
<el-row :gutter="20">
|
||||
<el-col :xs="24">
|
||||
<el-form-item label="年份">
|
||||
<el-radio-group v-model="state.year" @change="scoreControlLineList">
|
||||
<el-radio v-for="item in StaticConstant.allYear" :label="item.label" name="year">{{item.label}}</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :xs="24">
|
||||
<el-form-item label="专业类别">
|
||||
<el-radio-group v-model="state.professionalCategory" @change="scoreControlLineList">
|
||||
<el-radio label="" name="professionalCategory">全部</el-radio>
|
||||
<el-radio v-for="item in StaticConstant.zyOptions" :label="item.label" name="professionalCategory">{{item.value}}</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :xs="24">
|
||||
<el-form-item label="文理分科">
|
||||
<el-radio-group v-model="state.category" @change="scoreControlLineList">
|
||||
<el-radio label="" name="state">全部</el-radio>
|
||||
<el-radio label="文科" name="category">文科</el-radio>
|
||||
<el-radio label="理科" name="category">理科</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
<el-divider/>
|
||||
<el-table :data="state.scoreResult.records" border style="width: 100%" v-loading="state.loading">
|
||||
<el-table-column prop="year" label="年份" />
|
||||
<el-table-column prop="professionalCategory" label="专业类别" width="180" />
|
||||
<el-table-column prop="category" label="文理分科" width="180" />
|
||||
<el-table-column prop="culturalScore" label="文化成绩分数" />
|
||||
<el-table-column prop="specialScore" label="专业成绩分数" />
|
||||
<el-table-column prop="batch" label="批次" />
|
||||
</el-table>
|
||||
</div>
|
||||
<div class="page"><!--v-if="state.isShowPage"-->
|
||||
<el-pagination background @current-change="handlePage" :current-page="state.scoreResult.current"
|
||||
:page-size="state.scoreResult.size" :total="state.scoreResult.total"
|
||||
layout="total, prev, pager, next,jumper"/>
|
||||
</div>
|
||||
</el-card>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<style scoped lang="scss">
|
||||
root {
|
||||
width: 100%;
|
||||
}
|
||||
</style>
|
||||
|
|
@ -0,0 +1,287 @@
|
|||
<template>
|
||||
<LeftNav />
|
||||
<div class="main-container wrap main-fullScreen main-div" style="height: unset;">
|
||||
<el-row :gutter="20">
|
||||
<!-- 左侧 院校列表-->
|
||||
<el-col :xs="12" :sm="12">
|
||||
<el-card class="box-card">
|
||||
<div class="filterTable">
|
||||
<div class="filterTitle flexWrap">
|
||||
<div class="flex-item-75">
|
||||
<div class="searchSchool">
|
||||
<el-input v-model="state.selectForm.schoolName" maxlength="24" show-word-limit
|
||||
style="max-width: 230px;height: 40px;line-height: 40px;"
|
||||
placeholder="请输入院校或专业名称" class="input-with-select" />
|
||||
<el-button :icon="Search" @click="reloadSchoolList"
|
||||
style="border-left: none;height: 40px;line-height: 40px;" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<el-divider />
|
||||
<!--clearable-->
|
||||
<div class="schoolList">
|
||||
<div class="schoolItem" v-for="item in state.schoolList"
|
||||
@click="showSchoolInfo(item.schoolCode)">
|
||||
<div class="schoolLogo">
|
||||
<img :src="item.schoolIcon"
|
||||
v-if="item.schoolIcon != null && item.schoolIcon != undefined" />
|
||||
<img v-else src="@/assets/images/school/school_default.png">
|
||||
</div>
|
||||
<div class="schoolInfo">
|
||||
<div class="schoolTitle">
|
||||
<h3 class="schoolName">
|
||||
{{ item.schoolName }}
|
||||
<span class="province" v-if="item.province">{{ item.province }}{{ item.city }}{{
|
||||
item.area }}</span>
|
||||
</h3>
|
||||
</div>
|
||||
<div class="schoolTags">
|
||||
<span v-for="tag in item.tagsList">{{ tag }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<el-skeleton :loading="state.loading" style="padding-top: 25px;"></el-skeleton>
|
||||
<div class="page">
|
||||
<el-pagination background @current-change="handlePage" :current-page="state.current"
|
||||
:page-size="state.size" :total="state.total" layout="total, prev, pager, next,jumper" />
|
||||
</div>
|
||||
</el-card>
|
||||
</el-col>
|
||||
<!-- 右侧 功能广告-->
|
||||
<el-col :xs="12" :sm="12">
|
||||
<div class="page-right" style="width: 300px">
|
||||
选择左侧院校
|
||||
</div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { reactive } from 'vue'
|
||||
import apiConstant from "@/utils/ApiConstant";
|
||||
import axiosInstance from '@/utils/http';
|
||||
import { SchoolEntity } from "@/types";
|
||||
import { Search } from '@element-plus/icons-vue';
|
||||
import LeftNav from "@/components/LeftNav.vue";
|
||||
import StaticConstant from '@/utils/StaticConstant';
|
||||
document.title = '找大学|艺体志愿宝';
|
||||
//激活的tabs页
|
||||
const state = reactive({
|
||||
selectForm: {
|
||||
schoolName: '',
|
||||
current: 1,
|
||||
pageSize: 10,
|
||||
} as any,
|
||||
schoolList: [] as Array<SchoolEntity>,
|
||||
size: 10,
|
||||
total: 0,
|
||||
current: 1,
|
||||
loading: false,//加载中? true 加载/false 关闭
|
||||
})
|
||||
|
||||
|
||||
getSchoolList()
|
||||
|
||||
//获取学校列表
|
||||
function getSchoolList() {
|
||||
state.loading = true;
|
||||
state.schoolList = []
|
||||
axiosInstance({
|
||||
url: apiConstant.School.searchSchoolList,
|
||||
method: 'get',
|
||||
params: {
|
||||
schoolName: state.selectForm.schoolName,
|
||||
pageNum: state.selectForm.current,
|
||||
pageSize: state.selectForm.pageSize,
|
||||
addressList: state.selectForm.addressList,
|
||||
tagsList: state.selectForm.tagsList,
|
||||
schoolNatureList: state.selectForm.schoolNatureList
|
||||
},
|
||||
showLoading: false,//是否显示加载图标
|
||||
}).then((response) => {
|
||||
return response?.data
|
||||
}).then((data) => {
|
||||
state.loading = false;
|
||||
if (data.success) {
|
||||
|
||||
let dataResult = data.result
|
||||
console.log(dataResult)
|
||||
let tags = []
|
||||
if (dataResult.records != null && dataResult.records != undefined) {
|
||||
for (let i = 0; i < dataResult.records.length; i++) {
|
||||
tags = []
|
||||
let dre = dataResult.records[i]
|
||||
if (dataResult.records[i].tagsList != null && dataResult.records[i].tagsList != undefined) {
|
||||
tags.push(...dre.tagsList)
|
||||
}
|
||||
dataResult.records[i].tagsList = tags
|
||||
}
|
||||
}
|
||||
state.schoolList = dataResult.records
|
||||
state.selectForm.current = data.result.current
|
||||
state.selectForm.pageSize = data.result.size
|
||||
state.total = data.result.total
|
||||
}
|
||||
}).catch((error: any) => {
|
||||
console.log(error);
|
||||
}).finally(() => {
|
||||
});
|
||||
}
|
||||
|
||||
function reloadSchoolList() {
|
||||
state.selectForm.current = 1
|
||||
state.schoolList = []
|
||||
getSchoolList()
|
||||
}
|
||||
|
||||
const handlePage = (page: number) => {
|
||||
if (page) {
|
||||
state.selectForm.current = page
|
||||
getSchoolList()
|
||||
}
|
||||
}
|
||||
|
||||
const showSchoolInfo = (schoolCode: string) => {
|
||||
window.open(schoolCode, '_self')
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
//标签页样式
|
||||
.demo-tabs>.el-tabs__content {
|
||||
padding: 32px;
|
||||
color: #6b778c;
|
||||
font-size: 32px;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
//自定义输入框 样式
|
||||
/** 默认样式 */
|
||||
.input-border-style {
|
||||
border: 1px solid #eee !important;
|
||||
border-radius: 6px !important;
|
||||
}
|
||||
|
||||
:deep(.el-input__wrapper) {
|
||||
background: none !important;
|
||||
}
|
||||
</style>
|
||||
|
||||
<!--学校列表-->
|
||||
<style scoped lang="scss">
|
||||
.schoolList {
|
||||
.schoolItem:hover {
|
||||
color: #3491FA
|
||||
}
|
||||
|
||||
.schoolItem:last-child {
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
.schoolItem {
|
||||
display: flex;
|
||||
justify-content: flex-start;
|
||||
align-items: center;
|
||||
padding: 20px;
|
||||
cursor: pointer;
|
||||
border-bottom: 1px solid #eee;
|
||||
position: relative;
|
||||
|
||||
.schoolLogo {
|
||||
margin-right: 20px;
|
||||
|
||||
img {
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
}
|
||||
}
|
||||
|
||||
.schoolInfo {
|
||||
.schoolTitle {
|
||||
margin-bottom: 18px;
|
||||
|
||||
.schoolName {
|
||||
color: #333;
|
||||
font-size: 18px;
|
||||
height: 25px;
|
||||
line-height: 25px;
|
||||
margin: 0 20px 0 0;
|
||||
transition: all .3s;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
.province {
|
||||
height: 26px;
|
||||
line-height: 24px;
|
||||
font-size: 12px;
|
||||
border: 1px solid #eee;
|
||||
color: #555;
|
||||
display: inline-block;
|
||||
padding: 0 10px;
|
||||
margin: 0 20px 0 15px;
|
||||
}
|
||||
}
|
||||
|
||||
.schoolName:hover {
|
||||
color: #3491FA
|
||||
}
|
||||
}
|
||||
|
||||
.schoolTags {
|
||||
span {
|
||||
display: inline-block;
|
||||
color: #555;
|
||||
padding-right: 10px;
|
||||
margin-right: 10px;
|
||||
border-right: 1px solid #c5c5c5;
|
||||
line-height: 15px;
|
||||
}
|
||||
|
||||
span:last-child {
|
||||
border: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.page-right {
|
||||
.box-card {
|
||||
border-radius: 12px;
|
||||
}
|
||||
|
||||
.card-header {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
color: red;
|
||||
}
|
||||
|
||||
:deep(.el-card__header) {
|
||||
padding: 6px 12px 12px 12px;
|
||||
background-color: #4cc8ff;
|
||||
height: 30px;
|
||||
|
||||
span {
|
||||
width: 100px;
|
||||
height: 16px;
|
||||
background-size: cover;
|
||||
background-image: url(data:image/png;base64,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);
|
||||
}
|
||||
}
|
||||
|
||||
.item {
|
||||
border-radius: 12px;
|
||||
|
||||
}
|
||||
|
||||
:deep(.el-card__body) {
|
||||
padding: 0;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
@ -0,0 +1,132 @@
|
|||
```html
|
||||
<template>
|
||||
<!-- 页面布局 -->
|
||||
<div class="margin-5"></div>
|
||||
<div class="main-container wrap main-fullScreen">
|
||||
<div class="bgd-while textCenter p-20">
|
||||
<div class="font-size-30">更改密码</div>
|
||||
<div class="center">
|
||||
<!-- 表单 -->
|
||||
<el-form ref="ruleFormRef" style="max-width: 800px" :model="ruleForm" status-icon :rules="rules"
|
||||
label-width="auto" class="demo-ruleForm">
|
||||
<el-form-item label="密码" prop="oldPass">
|
||||
<el-input v-model="ruleForm.oldPass" type="password" autocomplete="off" placeholder="请输入旧密码" />
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="新密码" prop="pass">
|
||||
<el-input v-model="ruleForm.pass" type="password" autocomplete="off" placeholder="请输入新密码" />
|
||||
</el-form-item>
|
||||
<el-form-item label="确认密码" prop="checkPass">
|
||||
<el-input v-model="ruleForm.checkPass" type="password" autocomplete="off" placeholder="请再次输入新密码" />
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item style="text-align: center">
|
||||
<el-button type="primary" @click="submitForm(ruleFormRef)">
|
||||
提交
|
||||
</el-button>
|
||||
<el-button @click="resetForm(ruleFormRef)">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="margin-5"></div>
|
||||
</template>
|
||||
<script lang="ts" setup>
|
||||
import { ref, getCurrentInstance, ComponentInternalInstance, reactive } from 'vue'
|
||||
document.title = '河南艺体考生专属VIP|艺体志愿宝';
|
||||
import { ElMessage, type FormInstance, type FormRules } from 'element-plus'
|
||||
import { checkPhoneAvailable, getScore } from '@/axios/api';
|
||||
import { passwordChanger, registerUser } from '@/axios/UserApi';
|
||||
import { useRouter } from "vue-router";
|
||||
const ruleFormRef = ref<FormInstance>()
|
||||
const router = useRouter();
|
||||
|
||||
|
||||
const validateOldPass = (rule: any, value: any, callback: any) => {
|
||||
if (value === '') {
|
||||
callback(new Error('请输入旧密码'))
|
||||
} else {
|
||||
callback()
|
||||
}
|
||||
}
|
||||
|
||||
const validatePass = (rule: any, value: any, callback: any) => {
|
||||
if (value === '') {
|
||||
callback(new Error('请输入密码'))
|
||||
} else if (value.length < 6 || value.length > 20) {
|
||||
callback(new Error('密码必须介于6到20位之间'))
|
||||
} else {
|
||||
if (ruleForm.checkPass !== '') {
|
||||
if (!ruleFormRef.value) return
|
||||
ruleFormRef.value.validateField('checkPass')
|
||||
}
|
||||
callback()
|
||||
}
|
||||
}
|
||||
const validatePass2 = (rule: any, value: any, callback: any) => {
|
||||
if (value === '') {
|
||||
callback(new Error('请再次输入密码'))
|
||||
} else if (value !== ruleForm.pass) {
|
||||
callback(new Error("两次输入不一致"))
|
||||
} else {
|
||||
callback()
|
||||
}
|
||||
}
|
||||
|
||||
const ruleForm = reactive({
|
||||
oldPass:'',
|
||||
pass: '',
|
||||
checkPass: '',
|
||||
phone: '',
|
||||
})
|
||||
|
||||
const rules = reactive<FormRules<typeof ruleForm>>({
|
||||
oldPass: [{ validator: validateOldPass, trigger: 'blur' }],
|
||||
pass: [{ validator: validatePass, trigger: 'blur' }],
|
||||
checkPass: [{ validator: validatePass2, trigger: 'blur' }],
|
||||
//phone: [{ validator: checkphone, trigger: 'blur' }],
|
||||
})
|
||||
|
||||
const submitForm = (formEl: FormInstance | undefined) => {
|
||||
if (!formEl) return
|
||||
formEl.validate(async (valid) => {
|
||||
if (valid) {
|
||||
console.log(ruleForm)
|
||||
const data =await passwordChanger({oldPassword:ruleForm.oldPass,password:ruleForm.pass})
|
||||
console.log(data)
|
||||
if(data.success){
|
||||
//将 用户数据保存到缓存中
|
||||
ElMessage.success('修改成功');
|
||||
setTimeout(function () {
|
||||
router.push({
|
||||
path: "/index"
|
||||
});
|
||||
// setTimeout(function () {
|
||||
// window.location.reload()
|
||||
// }, 500);
|
||||
}, 1000);
|
||||
}else{
|
||||
ElMessage.error(data.message);
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
const resetForm = (formEl: FormInstance | undefined) => {
|
||||
if (!formEl) return
|
||||
formEl.resetFields()
|
||||
}
|
||||
</script>
|
||||
<style scoped lang="scss">
|
||||
.center {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
height: 20em; /* 可根据需要调整高度 */
|
||||
}
|
||||
.wrap {
|
||||
width: 1210px
|
||||
}
|
||||
</style>
|
||||
```
|
||||
|
|
@ -0,0 +1,143 @@
|
|||
```html
|
||||
<template>
|
||||
<!-- 页面布局 -->
|
||||
<div class="margin-5"></div>
|
||||
<div class="main-container wrap main-fullScreen">
|
||||
<div class="bgd-while textCenter p-20">
|
||||
<div class="font-size-30">账号注册</div>
|
||||
<div class="center">
|
||||
<!-- 表单 -->
|
||||
<el-form ref="ruleFormRef" style="max-width: 800px" :model="ruleForm" status-icon :rules="rules"
|
||||
label-width="auto" class="demo-ruleForm">
|
||||
<el-form-item label="手机号" prop="phone">
|
||||
<el-input v-model.number="ruleForm.phone" placeholder="请输入手机号" />
|
||||
</el-form-item>
|
||||
<el-form-item label="密码" prop="pass">
|
||||
<el-input v-model="ruleForm.pass" type="password" autocomplete="off" placeholder="请输入密码" />
|
||||
</el-form-item>
|
||||
<el-form-item label="确认密码" prop="checkPass">
|
||||
<el-input v-model="ruleForm.checkPass" type="password" autocomplete="off" placeholder="请再次输入密码" />
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item style="text-align: center">
|
||||
<el-button type="primary" @click="submitForm(ruleFormRef)">
|
||||
提交
|
||||
</el-button>
|
||||
<el-button @click="resetForm(ruleFormRef)">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="margin-5"></div>
|
||||
</template>
|
||||
<script lang="ts" setup>
|
||||
import { ref, getCurrentInstance, ComponentInternalInstance, reactive } from 'vue'
|
||||
document.title = '河南艺体考生专属VIP|艺体志愿宝';
|
||||
import { ElMessage, type FormInstance, type FormRules } from 'element-plus'
|
||||
import { checkPhoneAvailable, getScore } from '@/axios/api';
|
||||
import { registerUser } from '@/axios/UserApi';
|
||||
import { useRouter } from "vue-router";
|
||||
const ruleFormRef = ref<FormInstance>()
|
||||
const router = useRouter();
|
||||
const checkphone = (rule: any, value: any, callback: any) => {
|
||||
if (!value) {
|
||||
return callback(new Error('请输入手机号'))
|
||||
}
|
||||
let reg = /^1[3|4|5|6|7|8|9][0-9]\d{8}$/;
|
||||
setTimeout(async () => {
|
||||
if (!Number.isInteger(value)) {
|
||||
callback(new Error('请输入数字'))
|
||||
} else if (!reg.test(value)) {
|
||||
callback(new Error('手机号格式有误'))
|
||||
} else {
|
||||
const result =await checkPhoneAvailable(value) as any;
|
||||
if (!result) {
|
||||
callback(new Error('手机号已使用'))
|
||||
}else{
|
||||
callback()
|
||||
}
|
||||
}
|
||||
}, 600)
|
||||
}
|
||||
|
||||
const validatePass = (rule: any, value: any, callback: any) => {
|
||||
if (value === '') {
|
||||
callback(new Error('请输入密码'))
|
||||
} else {
|
||||
if (ruleForm.checkPass !== '') {
|
||||
if (!ruleFormRef.value) return
|
||||
ruleFormRef.value.validateField('checkPass')
|
||||
}
|
||||
callback()
|
||||
}
|
||||
}
|
||||
const validatePass2 = (rule: any, value: any, callback: any) => {
|
||||
if (value === '') {
|
||||
callback(new Error('请再次输入密码'))
|
||||
} else if (value !== ruleForm.pass) {
|
||||
callback(new Error("两次输入不一致"))
|
||||
} else {
|
||||
callback()
|
||||
}
|
||||
}
|
||||
|
||||
const ruleForm = reactive({
|
||||
pass: '',
|
||||
checkPass: '',
|
||||
phone: '',
|
||||
})
|
||||
|
||||
const rules = reactive<FormRules<typeof ruleForm>>({
|
||||
pass: [{ validator: validatePass, trigger: 'blur' }],
|
||||
checkPass: [{ validator: validatePass2, trigger: 'blur' }],
|
||||
phone: [{ validator: checkphone, trigger: 'blur' }],
|
||||
})
|
||||
|
||||
const submitForm = (formEl: FormInstance | undefined) => {
|
||||
if (!formEl) return
|
||||
formEl.validate(async (valid) => {
|
||||
if (valid) {
|
||||
console.log(ruleForm)
|
||||
const data =await registerUser({phone:ruleForm.phone,password:ruleForm.pass})
|
||||
console.log(data)
|
||||
if(data.success){
|
||||
//将 用户数据保存到缓存中
|
||||
localStorage.setItem('vipInfo', JSON.stringify(data.result.vipInfo))
|
||||
localStorage.setItem('userInfo', JSON.stringify(data.result.userInfo))
|
||||
localStorage.setItem("X-Access-Token", data.result.token);
|
||||
ElMessage.success('注册成功');
|
||||
setTimeout(function () {
|
||||
getScore()
|
||||
router.push({
|
||||
path: "/index"
|
||||
});
|
||||
setTimeout(function () {
|
||||
window.location.reload()
|
||||
}, 500);
|
||||
}, 1000);
|
||||
|
||||
}else{
|
||||
ElMessage.error(data.message);
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
const resetForm = (formEl: FormInstance | undefined) => {
|
||||
if (!formEl) return
|
||||
formEl.resetFields()
|
||||
}
|
||||
</script>
|
||||
<style scoped lang="scss">
|
||||
.center {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
height: 20em; /* 可根据需要调整高度 */
|
||||
}
|
||||
.wrap {
|
||||
width: 1210px
|
||||
}
|
||||
</style>
|
||||
```
|
||||
|
|
@ -0,0 +1,862 @@
|
|||
<template>
|
||||
<div class="margin-5"></div>
|
||||
<div class="main-container wrap main-fullScreen main-div" style="height: unset;">
|
||||
<!--上部分-->
|
||||
<div class="relative_box">
|
||||
<div class="flexWrap">
|
||||
<div class="flex-item-2">
|
||||
<div class="flexWrap" style="height: 260px">
|
||||
<div class="slogo" style="margin: auto;">
|
||||
<img :src="state.schoolInfo.schoolIcon" width="160" height="160" alt="..">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="flex-item-8" style="padding-top: 40px;">
|
||||
<div class="sname">
|
||||
<span class="">{{ state.schoolInfo.schoolName }}</span>
|
||||
</div>
|
||||
<!--院校地址-->
|
||||
<div class="scity mt-10" v-if="state.schoolInfo.street">
|
||||
<el-text>
|
||||
<el-icon>
|
||||
<LocationFilled />
|
||||
</el-icon>
|
||||
{{ state.schoolInfo.street }}
|
||||
</el-text>
|
||||
</div>
|
||||
<!--院校标签-->
|
||||
<div class="stags mt-10">
|
||||
<span class="stag mr-10" v-for="(item, index) in state.schoolInfo.tagsList" :key="index">{{ item }}</span>
|
||||
</div>
|
||||
<div class="other mt-10">
|
||||
<el-row>
|
||||
<el-text>
|
||||
<el-icon>
|
||||
<View />
|
||||
</el-icon>
|
||||
官方网址:<a v-for="item in state.schoolInfo.websiteAddressList" class="while" :href="item"
|
||||
target="_blank">{{ item }}</a>
|
||||
</el-text>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-text>
|
||||
<el-icon>
|
||||
<Phone />
|
||||
</el-icon>
|
||||
官方电话:{{ state.schoolInfo.schoolPhone }}
|
||||
</el-text>
|
||||
</el-row>
|
||||
<!-- <el-text>
|
||||
<el-icon><Message /></el-icon>
|
||||
电子邮箱:暂未收录
|
||||
</el-text> -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!--中间部分-->
|
||||
<div class="mt-15">
|
||||
<!--博士点...schoolResearchTeaching-->
|
||||
<div class="flexWrap schoolResearchTeachingBox" v-if="state.schoolInfo.schoolResearchTeaching">
|
||||
<div class="item mr-10 border-eb" v-if="state.schoolInfo.arwuRanking">
|
||||
<span class="num">{{ state.schoolInfo.arwuRanking }}<span class="ming">名</span></span><br />
|
||||
<span class="text">软科排名</span>
|
||||
</div>
|
||||
<div class="item mr-10 border-eb" v-if="state.schoolInfo.schoolResearchTeaching.professionalMasterDegreePoint">
|
||||
<span class="num">{{ state.schoolInfo.schoolResearchTeaching.professionalMasterDegreePoint }}<span
|
||||
class="ming">个</span></span><br />
|
||||
<span class="text">专硕点</span>
|
||||
</div>
|
||||
<div class="item mr-10 border-eb" v-if="state.schoolInfo.schoolResearchTeaching.academicMasterDegreePoint">
|
||||
<span class="num">{{ state.schoolInfo.schoolResearchTeaching.academicMasterDegreePoint }}<span
|
||||
class="ming">个</span></span><br />
|
||||
<span class="text">学硕点</span>
|
||||
</div>
|
||||
<div class="item mr-10 border-eb" v-if="state.schoolInfo.schoolResearchTeaching.doctoralPoint">
|
||||
<span class="num">{{ state.schoolInfo.schoolResearchTeaching.doctoralPoint }}<span
|
||||
class="ming">个</span></span><br />
|
||||
<span class="text">博士点</span>
|
||||
</div>
|
||||
<div class="item mr-10 border-eb" v-if="state.schoolInfo.schoolResearchTeaching.zhx">
|
||||
<span class="num">是</span><br />
|
||||
<span class="text">自划线</span>
|
||||
</div>
|
||||
<div class="item mr-10 border-eb" v-if="state.schoolInfo.schoolResearchTeaching.byl">
|
||||
<span class="num">{{ state.schoolInfo.schoolResearchTeaching.byl }}%</span><br />
|
||||
<span class="text">保研率</span>
|
||||
</div>
|
||||
<div class="item mr-10 border-eb" v-if="state.schoolInfo.schoolResearchTeaching.yjsy">
|
||||
<span class="num">有</span><br />
|
||||
<span class="text">研究生院</span>
|
||||
</div>
|
||||
<div class="item mr-10 border-eb" v-if="state.schoolInfo.schoolResearchTeaching.byzg">
|
||||
<span class="num">有</span><br />
|
||||
<span class="text">保研资格</span>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<el-card class="box-card mt-15">
|
||||
<el-tabs v-model="state.activeTabsName">
|
||||
<el-tab-pane label="学校概括" name="tabs1"></el-tab-pane>
|
||||
<el-tab-pane label="分数/计划" name="tabs2"></el-tab-pane>
|
||||
<el-tab-pane label="开设专业" name="tabs3"></el-tab-pane>
|
||||
<el-tab-pane label="硕士点" name="tabs4"></el-tab-pane>
|
||||
</el-tabs>
|
||||
<el-row :gutter="20">
|
||||
<el-col>
|
||||
<div v-show="state.activeTabsName == 'tabs1'">
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="17">
|
||||
<div class="jbxx">
|
||||
<el-divider content-position="left">相关信息</el-divider>
|
||||
<el-card shadow="always" class="mb-10">
|
||||
<el-row :gutter="20" class="other-line">
|
||||
<el-col :span="9">
|
||||
<i class="block-icon float_left"
|
||||
style="background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAACrElEQVRYR82YPWgUQRTHf48oB6eSJkgOTCFqGo2doIVKGlHBxt7GOw9MUBArPyIhGkstgicIe42NnYX40Ug0jYVYKYIJqRRjITY5A5HknuzHfe1tbmf2Fu622uK9N7/5vzczb0bos0/6jAdrIL1ChjXGgXPAGMowQs6bmLKCsAJ8AV6QZV7mWLeZtDGQFsmxyRRwAWWn0SBCBXhKhhkp8cvEJxYoUMQFuYaSNQnaZiOsAQ/JcjdOsY5AOsEw6zxHOZoIJOwkfCDD+U5qbQmkBQ6jvETZkwpMLYjwgwHOyhM+R8WNBAqU+Zg6TDNUhiNRSrUBBTXzLrU0bSWvm74s4+GaagcqMEuVm8ZpEv6gZIAdxj4NpWbF4XazXwtQkKpl49UkrDLACDDEBktgua+5qy/DvubUtQLlKaFctpjpVylz0NsT8/w1nkirJI/FYaIhWvAX1M5v403P90sDqEKWoVot1RXSPKdRXluokw6QG0U4Iw5v/N+aQnkeoQ3pDMG6V8inKInDZBjoPcoJQ5CaWVpAC+JwshXoIovAgZ4AwZKUGQ0rtGpZ0GnWUEUcdnUPJCyLw35v2RfIU+U+sNtSZbeGIoCSpcwN9oARbsg0/7TIIBtMIVxF2W4BFpmyBZTjFkEapsI3YFIc3npqXWKUKnMop4ziCRFFnWzZt44nPEO5LmV+6jTb+M4iyt5YqC2WfZKNsX0s93yDGZRPiNfcDRoARWyMfvNue3TEjhVr4PbdUUeHl3v7wzV2vFgDIfpw9YD8Htq8/YgdLcYgrv0IVLqHcqvbsYz8hc4Nmgfk19I8yjGjoEmNTFvYptT1R5Nfm7AWGWOTV6nfPJJcg+pQ/XRRrEP5NdUfV+nmeg22hDs9f2wIL6LQc8whlFxPnmOSrm5bv9jnGNuA3dr/B+m6FjQK0kN/AAAAAElFTkSuQmCC');"></i>
|
||||
<span class="float_left">创建时间:
|
||||
<span v-if="state.schoolInfo.schoolOpenDate">
|
||||
{{ getYear(state.schoolInfo.schoolOpenDate) }}年
|
||||
</span>
|
||||
</span>
|
||||
</el-col>
|
||||
<el-col :span="9">
|
||||
<i class="block-icon float_left"
|
||||
style="margin-left: 50px; background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAEd0lEQVRYR82XbYhUVRjHf8+dmUXbsuhFLd1At+31Q7lrb5a7e8+1XRMCDQKTtC8FFVKEBkFkK4VgiVBRfgosMwkJExF8mXuvK6hQ4Wwr5EtlWbRQaLFmKO7MPHHvuHfm7ow0uXfBAxdmzsv//zvPc8655wqXWZHLjIfaQJ7dBrIMdAYqt4JadYMLazH+srC/PpHCOzUAOhFkEOhHZAfStBZ7/blamtVAnr0aleX/C6JSWfgZ40+Lqjz7XZQX4+ZynIwsoN3tHwkVB/LNUor6ft3RuFjHjLTR7h0Mm/c491IoflXVNQBvtGZyv3sqPp/hf/u6JnIu/ytow6iBhFUY/7VIxzXHQFtqQL2H8V+qDeQ7T1Msrh81TCAgHMH4d5TT5qxAiyurtWUA405FRIfbyinznI/R4pJEgAKRjHUX7e53oZ7ffQvF89/X1K7sF85luHi2j9KZGBDyOo73VoX+AZQHqtOWmo/Jbq0RIXME1dsSAxL6MP6MSO9iG0asZRh3bQ0g+zTKVYkBBULpzHQ6dv0Uau599Aby5wZQ0jEPkXUY74U40LddjZwcOpMoTCgmr+B4a8ppM9tRnTcCaBfG644D9T7SQj5/bAyADuB4syJd1zwJ+lncR47jeM1xINe0g/YmDiQoDempPLx7INT+5rErOH3md5QrIy8hj3SMx+7JhzENG3xnIcXipsSBAkHLWortflCRtk9QXRzzshpasHf+UAby7JdRopWeLJj4OJ4pA83pRgs74usoNReT3VkRIfMORV2eLEi0KgpYjZOxt50Ma0o3gN9AJ5V6yClSPEunt6UiQmYjqovGBihM2zPY7keRvu/MDX9nrP5ofV1oLK0h13igdnJAUgCOEhyOSo60tZOO7KF69EtAnn0Y5fZ6BlT1Ec6icgjRHGLl0FQf467uZ9bms5eiNxyhQdAJ/y0gf4bGKn1YkiNFjtnXHkU2BxFJpEh4Ngye+ad65nICtA+RHKo5Mqk+Zmd/ScQ1fI0MtYK2lR7amGDdzczsoNDbNY1CfluY65J5Hw3jc8ze/lci5v68yejZ1tC09LSiNFVpp1N30pE9nOxXx34zhfO0UrhgHALoTXVNTNJzMLvdSwfq7WqiWCiFXMNZB78vnC11IYzoJEtwvA31A7mmC5FOKJbCr1x/KbYXHWPJq9je6jiQ9lj4vS2otDL+ui9jW9c1W0DnJwpRKSaEF35hj1lAAYOEH4X3gDaG/dKpVjqyuWiMa3pA3xg7INmE8RYJrvkRdHqVkWUtxHY/j+o9+3GUL8YMCPkUx1ssePbfsfvJsKOwAuO/WRGhZtDwijAmJVpDrgkOwJtrvBI2YvynonpVwTfBvbt8uUqMLHz3NeN4J4KUbQAtG0cm8jWOd1/M0zX7QR9MjKOcjehLNzipmygMHazexjKI410zAmgd6HOJAQXXV5WVmPZVSE8x0C1t+73dN5IfWoPSATolMhyXmcRDu/6oWEfPg344KqDgng0nUdlHSt6m0z0Q3/2jUk9+cP0ndfLeNRX/BeErjDT18wRjAAAAAElFTkSuQmCC')"></i>
|
||||
<span class="float_left">占地面积(亩):未收录</span>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="20" class="other-line">
|
||||
<el-col :span="9">
|
||||
<i class="block-icon float_left"
|
||||
style="background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAADyElEQVRYR+2YW2gcZRSAvzOJ2WSDF1AQDFgQr9matWSyogj6oC8KvkR8iGK1pcWlGpUiWCQYr4kaUNAqFJRab4gggjUYlEjUB2Vm1xuKJagEVARpuhLjJSQ5cuJsnW538s9uYumDBxaWnfOf8825/OewwnEmcpzx8D+QKyNrjdA1wFPAb8B24GOXQ9fzZoFOBJ4AtsYcLAGPAcPAgstx0vNmgK4A9gIbEox+AdwEfN4MVCNAHcAIMAjOZrAI3Q88CljkUktaoAKwDzgvteV/FD8BNgMH0p5zAZ0A3AfcA7SkNVqj90d03opfXTZWA7oQeBHIu4ykfP4+cAsws5p+PSCLxN1RDbSldJZWbQ64E3g+bZedA7wAXJLWQ5N6+4FtwM+15+MRsnA+DWSbdNLosYPAzYDBHZY40O+AtfaxlG+AC5KALLd201pnHQuxcbMFeD0JyH6/KLpvrMP+S/kgSpeVx3XAS8C35rBel1lnPRB1mrfOVH8C9wJPAsvAp1EQ3gOuSgKqMlwaddzZ6wRVimbc1zF7Nop2RpCPu4DseSdgisU1QC0CDwMPAfa9VjLAX9UfXaNjRa+7u/v6mZmZPfPz8yc3AuZ53oHl5eUbAItOklwJWMpWxAkUhuHFqvrG3NzcGWNjY4yPjzuZRISBgQGKxeIvbW1ttxcKhddWOWT7k33cQEEQ2AK2W1UtrCsyNTXFyMgIs7OzdX10dXUxPDxMPv/vCBSRN7PZbDGXyx11MwPvVgs6MUKqKkEQ7E6qnUqlwujoKJOTk0dA9ff3Mzg4SEfH0feriBwSkdt8338ldsjmpr3Z4VKom7Jyudy9uLj4lSs3ExMTWBrb29sZGhqiULC1KVkMyvf9U0WkuoacGU3/0wAbJck1FATBFlW1+8L250RZWFigpaVl5eOA+U5ENvu+/1FM7zLgQ2AT8JmzqMvl8oalpaW9qmp7dNMiInuy2ezOXC5n4yIuA8DLwLXAW04gU7B6CsPwDlV9pNHhKyI/eZ63tbe3952Et9kFmN0dwDOpgKqGwjA8X1X3qWpfmlCJyKuZTGZHT0/PoVX0nwVuBUYBg3PfQ3FjqtpaKpV2qeqQqiZtBQc9zyv6vn/EFE+Aehu4OkrbjQ0DVY0GQbBJVW3fztU42t/Z2bkt4b6px/QlsBGw6X9500B2cHp6OlOpVB604aiq8yJyV19f33Np0hnT+RU4CfgeOGtNQFWjpVKpp7W1dTafz//QIIytNnb3nGLvB5y7LkANQtSqG8zpwI/RHxaNFfUanac67pz2qayso9Lfe4j8JXHam58AAAAASUVORK5CYII=');"></i>
|
||||
<span class="float_left">主管部门:{{ state.schoolInfo.affiliation }}</span>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="20" class="other-line">
|
||||
<el-col :span="24">
|
||||
<i class="block-icon float_left"
|
||||
style="background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAADv0lEQVRYR82YX2gcVRSHvzOb3awxNSbQLBbaqAQVKxSKGESkD9o+WERfrMVSIQ9WJKLgk82mdSQ7URAVqz6UPgimWAhCqQ+K+uAfVIKgqFhaKBKttDa0xiZR3O4mc+Ruu2q7M3fu7PSh92ng/M653zn33rlnRrjChlxhPKQHCrTEX9wPbAYGEVYBHspJhJ+BD4BDBPJrO8m6A/naT43dwA4gb51MCBH2k2MXz8vxNGBuQGN6HyHvAD1pgiNU8XiMcdnv6pcMVNYngddQPNegLTqPcSpiqps47EBlfQDlILSx1y6d2mMHFdmXRBQPVNYB4EeU7qQgjvY6cAcT8p1NbwN6G2W742Suso+ZkE3pgXy9iTpHMu2buFmFuwnki3hzlGVUdwITCUf7DMIYHXzGEnVC7kKooKxO8NtDIE+nBfoKuDM2sPAbedbjy6mLNC9qDwtMA7dYfGcI5Ma0QHNAb2zQHA8zLlOR9l26gWU+tVapQCe+1KI0rZva1yI1/rYGXEEfO+WPSM2U5vieBZQuS5WuJ5Bf3IBe0F4WMRWKG3UKdMdl2HAaVbOUpdgIHrdSkSNuQKpmq9ZQOiwZDhHI15H253QNdSKz/1dfYCW+nHEDMqqyHkW52VKlTwi4BxFt0YzqAWCrJZmzVOiL9I29Esq6F23c6vFDOEgXT1CW2YbInLBFXkUZTvAzrcmD6U7Zbt3IEh9ZAxujaTPA7AVzLdxmXeZmsBzbbbe/7eow99jaRKg0AuEUeQZsByIeaEw3EfJhmvkStcKjBDJp3wk266i+AYwkTuQmeJcJeShJau+HzCugzOuXAWqKAtvwZSkbUNO7rC+jPJMULNIuTLKOYbbIsot/cgv7H9Q24CWU61wCI8xd6Ab24os5jU7DHciE87WLGlsRnkJZF1ORY8AeVjDJszLvRPE/UTqgpuMrehW/8x7KvRdNKHxDNxtjL14HuvaATOBLoS4DzPl3bZbRhDK9U8bKNDGyATUrtdBouM5myc0ZaOqwFk5XWeOFlDRkpcI1ohRDpYhHp3kWEBWqGlIVj3NC43lRPE53wGy+n+PDN0jVBbilQvumtVQTHkHZAI2TNKCabWlFUIUTAj+I8nkuz4HHb4/+5m8BenNap1UZcsmmbY0wMzLEoEjr+6kF6K0ZLVZn2bx8vkLrEQYF+rNUSQTTHf4kwrcqfMnVHBpZK39GJeS0qd8/pp0n5lhVV/pCj2tlmR7xKF74LdP8NWN6oroo5zTHvCrzHR5zvSVOblkt9o+GzC/Gttcq2fEfQwsnNOzpMb4AAAAASUVORK5CYII=');"></i>
|
||||
<span class="float_left">
|
||||
学校地址:{{ state.schoolInfo.province }}{{ state.schoolInfo.city }}{{ state.schoolInfo.area }}
|
||||
</span>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-card>
|
||||
<el-divider content-position="left">基本信息</el-divider>
|
||||
<el-card shadow="always">
|
||||
<span style="font-size: 16px;font-family: 'Microsoft YaHei'">
|
||||
{{ state.schoolInfo.baseInfo || '暂无' }}
|
||||
</span>
|
||||
</el-card>
|
||||
<br />
|
||||
</div>
|
||||
</el-col>
|
||||
<el-col :span="7">
|
||||
<!--招生章程-->
|
||||
<div v-if="state.articleList && state.articleList.length > 0">
|
||||
<el-divider content-position="right">招生章程</el-divider>
|
||||
<div class="gjjylzy border-eb bgd-while">
|
||||
<div class="item" :class="index === state.articleList.length - 1 ? 'item-last' : ''"
|
||||
v-for="(item, index) in state.articleList" :key="index" @click="showArticle(item)">
|
||||
<span>{{ item.title }}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="flexWrap">
|
||||
<span class="showMore" @click="showArticleMore">查看更多</span>
|
||||
</div>
|
||||
</div>
|
||||
<!--国家级一流专业-->
|
||||
<div
|
||||
v-if="state.doubleFirstPlan && state.doubleFirstPlan.gjjList && state.doubleFirstPlan.gjjList.length > 0">
|
||||
<el-divider content-position="right">国家级一流专业</el-divider>
|
||||
<div class="gjjylzy border-eb bgd-while">
|
||||
<div class="item" :class="index === state.doubleFirstPlan.gjjList.length - 1 ? 'item-last' : ''"
|
||||
v-for="(item, index) in state.doubleFirstPlan.gjjList" :key="index"
|
||||
@click="showMajorInfo(item.majorCode)">
|
||||
<span>{{ item.majorName }}</span>
|
||||
<span class="item-right">详细查看</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!--省级一流专业-->
|
||||
<div
|
||||
v-if="state.doubleFirstPlan && state.doubleFirstPlan.sjList && state.doubleFirstPlan.sjList.length > 0">
|
||||
<el-divider content-position="right">省级一流专业</el-divider>
|
||||
<div class="gjjylzy border-eb bgd-while">
|
||||
<div class="item" :class="index === state.doubleFirstPlan.sjList.length - 1 ? 'item-last' : ''"
|
||||
v-for="(item, index) in state.doubleFirstPlan.sjList" :key="index"
|
||||
@click="showMajorInfo(item.majorCode)">
|
||||
<span>{{ item.majorName }}</span>
|
||||
<span class="item-right">详细查看</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!--第四轮学科评估-->
|
||||
<div v-if="state.subjectEvaluationList && state.subjectEvaluationList.length > 0">
|
||||
<el-divider content-position="right">第四轮学科评估</el-divider>
|
||||
<div class="dslxkpg border-eb bgd-while">
|
||||
<div class="item" :class="index === state.subjectEvaluationList.length - 1 ? 'item-last' : ''"
|
||||
v-for="(item, index) in state.subjectEvaluationList" :key="index">
|
||||
<span>{{ item.subjectName }}</span>
|
||||
<span class="item-right">{{ item.evaluationResult }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!--男女比例-->
|
||||
<div class="mt-15" ref="chartRef" :style="{ width: '330px', height: '400px'}"></div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</div>
|
||||
<div v-show="state.activeTabsName == 'tabs2'">
|
||||
<el-divider content-position="left">分数/计划</el-divider>
|
||||
<el-form :inline="true" :model="selectSchoolHistoryMajorEnrollForm" class="demo-form-inline">
|
||||
<el-form-item label="年份">
|
||||
<el-radio-group v-model="selectSchoolHistoryMajorEnrollForm.year" @change="historyMajorEnrollList">
|
||||
<el-radio v-for="item in StaticConstant.allYear" :label="item.label" name="year">{{ item.label
|
||||
}}</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div class="majorList">
|
||||
<el-table :data="state.schoolHistoryMajorEnrollResult.records" border style="width: 100%">
|
||||
<el-table-column label="年份" width='100'>
|
||||
<template v-slot="scope">
|
||||
{{ scope.row.year }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="专业名称">
|
||||
<template v-slot="scope">
|
||||
<span v-if="scope.row.enrollmentCode">({{ scope.row.enrollmentCode }})</span>
|
||||
{{ scope.row.majorName }}
|
||||
<span v-if="scope.row.detail">({{ scope.row.detail }})</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="录取批次" width='100'>
|
||||
<template v-slot="scope">
|
||||
<span v-if="scope.row.batch">{{ scope.row.batch }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="文理分科" width='100'>
|
||||
<template v-slot="scope">
|
||||
{{ scope.row.category }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="计算方法" width="150">
|
||||
<template v-slot="scope">
|
||||
{{ scope.row.rulesEnrollProbability }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="最低分数线" width='100'>
|
||||
<template v-slot="scope">
|
||||
{{ scope.row.admissionLine }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="招生人数" width='100'>
|
||||
<template v-slot="scope">
|
||||
{{ scope.row.enrollNum }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="录取数" width='100'>
|
||||
<template v-slot="scope">
|
||||
{{ scope.row.admissionNum }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<div class="page">
|
||||
<el-pagination background @current-change="handleHistoryMajorEnrollPage"
|
||||
:current-page="state.schoolHistoryMajorEnrollResult.current"
|
||||
:page-size="state.schoolHistoryMajorEnrollResult.size"
|
||||
:total="state.schoolHistoryMajorEnrollResult.total" layout="total, prev, pager, next,jumper" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div v-show="state.activeTabsName == 'tabs3'">
|
||||
<el-divider content-position="left">开设专业</el-divider>
|
||||
<el-form :inline="true" :model="selectMajorForm" class="demo-form-inline">
|
||||
<el-form-item :inline="true">
|
||||
<el-input style="width: 70%" :input-style="{ background: 'none !important' }"
|
||||
v-model="selectMajorForm.majorName" class="w-50 m-2 input-border-style" size="large"
|
||||
placeholder="输入专业名称" />
|
||||
<el-button size="large" type="primary" style="margin-left: 5px" plain @click="schoolMajorList">搜索
|
||||
</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div class="majorList">
|
||||
<el-table :data="state.majorResult.records" border style="width: 100%">
|
||||
<el-table-column label="专业名称">
|
||||
<template v-slot="scope">
|
||||
{{ scope.row.majorName }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="专业代码" width="150">
|
||||
<template v-slot="scope">
|
||||
{{ scope.row.majorCode }}{{ scope.row.majorCodeChar||'' }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="批次" width='100'>
|
||||
<template v-slot="scope">
|
||||
<span v-if="scope.row.batch">
|
||||
{{ scope.row.batch}}
|
||||
</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="专业类别" width='155'>
|
||||
<template v-slot="scope">
|
||||
{{ scope.row.majorType }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="专业大类" width='180'>
|
||||
<template v-slot="scope">
|
||||
{{ scope.row.zyl || '' }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="学制" width='80'>
|
||||
<template v-slot="scope">
|
||||
<span v-if="scope.row.semester">
|
||||
{{ scope.row.semester }}年
|
||||
</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="操作" width='120'>
|
||||
<template v-slot="scope">
|
||||
<el-button type="success" @click="showMajorInfo(scope.row.majorCode)">专业介绍</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
</div>
|
||||
<div v-show="state.activeTabsName == 'tabs4'">
|
||||
<SchoolNpee v-if="state.schoolInfo.id" :schoolId="state.schoolInfo.id"/>
|
||||
</div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-card>
|
||||
</div>
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
/*学校介绍详情页*/
|
||||
import apiConstant from "@/utils/ApiConstant";
|
||||
import { onMounted, reactive, ref } from 'vue'
|
||||
import { useRoute,useRouter } from 'vue-router';
|
||||
import { AxiosResponse } from "axios";
|
||||
import { SchoolEntity } from "@/types";
|
||||
import { isNotNull } from '@/utils/tool';
|
||||
import axiosInstance from '@/utils/http';
|
||||
import * as echarts from 'echarts';
|
||||
import StaticConstant from "@/utils/StaticConstant";
|
||||
import SchoolNpee from "@/components/npee/schoolNpee.vue";
|
||||
|
||||
const router = useRouter();
|
||||
const { query, params } = useRoute(); //2.在跳转页面定义router变量,解构得到指定的query和params传参的参数
|
||||
document.title = '院校介绍|艺体志愿宝';
|
||||
//获取页面传参
|
||||
let schoolCode = params.schoolCode
|
||||
|
||||
const selectSchoolHistoryMajorEnrollForm = reactive({
|
||||
year: '2023',
|
||||
pageNo: 1,
|
||||
pageSize: 10
|
||||
})
|
||||
|
||||
//搜索专业列表对象
|
||||
const selectMajorForm = reactive({
|
||||
majorName: '',
|
||||
disciplines: '',//一级学科
|
||||
pageNo: 1,
|
||||
pageSize: 10
|
||||
})
|
||||
const state = reactive({
|
||||
activeTabsName: 'tabs1',
|
||||
schoolInfo: {} as SchoolEntity,
|
||||
disciplinesOptions: [] as any,//
|
||||
doubleFirstPlan: {} as any,//双万计划
|
||||
subjectEvaluationList: [] as any,//第四轮学科
|
||||
majorResult: {
|
||||
records: [] as any,
|
||||
current: 1,
|
||||
size: 0,
|
||||
total: 0
|
||||
} as any,
|
||||
schoolHistoryMajorEnrollResult: {
|
||||
records: [] as any,
|
||||
current: 1,
|
||||
size: 0,
|
||||
total: 0
|
||||
},
|
||||
scoreInfo:{cognitioPolyclinic:''} as any,
|
||||
articleList: [] as any,//招生章程
|
||||
})
|
||||
|
||||
const chartRef = ref<HTMLDivElement | null>(null);
|
||||
onMounted(()=>{
|
||||
let scoreInfo = localStorage.getItem('scoreInfo')
|
||||
if(scoreInfo){
|
||||
state.scoreInfo = JSON.parse(scoreInfo)
|
||||
}
|
||||
getSchoolInfo()
|
||||
schoolMajorList()
|
||||
historyMajorEnrollList()
|
||||
})
|
||||
|
||||
function getSchoolInfo() {
|
||||
if (!schoolCode) {
|
||||
return;
|
||||
}
|
||||
axiosInstance({
|
||||
url: apiConstant.School.schoolInfo,
|
||||
method: 'get',
|
||||
params: {
|
||||
schoolCode: schoolCode
|
||||
},
|
||||
// showLoading: false,//是否显示加载图标
|
||||
}).then((response: AxiosResponse) => {
|
||||
return response?.data
|
||||
}).then((data) => {
|
||||
if (data.success) {
|
||||
let dataResult = data.result
|
||||
if (dataResult != null && dataResult != undefined) {
|
||||
console.log(dataResult)
|
||||
state.schoolInfo = dataResult
|
||||
document.title = dataResult.schoolName + '介绍|艺体志愿宝';
|
||||
//官网地址
|
||||
if (dataResult.schoolWebsiteAddress) {
|
||||
let websiteAddressList = dataResult.schoolWebsiteAddress.split(',');
|
||||
state.schoolInfo.websiteAddressList = websiteAddressList
|
||||
}
|
||||
//获取双万计划
|
||||
getDoubleFirstPlan()
|
||||
//第四轮学科
|
||||
getSubjectEvaluation()
|
||||
//招生章程
|
||||
getArticleList()
|
||||
//
|
||||
setPeople()
|
||||
} else {
|
||||
//学校不存在,跳转到搜索页
|
||||
router.push({
|
||||
path: '/school/search'
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
}).catch((error: any) => {
|
||||
console.log(error);
|
||||
}).finally(() => {
|
||||
});
|
||||
}
|
||||
|
||||
function getDoubleFirstPlan() {
|
||||
if (state.schoolInfo && state.schoolInfo.id) {
|
||||
axiosInstance({
|
||||
url: apiConstant.School.doubleFirstPlan,
|
||||
method: 'get',
|
||||
params: {
|
||||
schoolId: state.schoolInfo.id
|
||||
},
|
||||
showLoading: false,//是否显示加载图标
|
||||
}).then((response: AxiosResponse) => {
|
||||
return response?.data
|
||||
}).then((data) => {
|
||||
if (data.success) {
|
||||
state.doubleFirstPlan = data.result
|
||||
//如果国家级跟省级 都有,给院校的标签里加一个 双万计划
|
||||
if (arrayIsNotEmpty(data.result.gjjList) || arrayIsNotEmpty(data.result.sjList)) {
|
||||
state.schoolInfo.tagsList.push('双万计划')
|
||||
}
|
||||
}
|
||||
}).catch((error: any) => {
|
||||
console.log(error);
|
||||
}).finally(() => {
|
||||
});
|
||||
}
|
||||
}
|
||||
//获取第四轮学科评估
|
||||
function getSubjectEvaluation() {
|
||||
if (state.schoolInfo && state.schoolInfo.id) {
|
||||
axiosInstance({
|
||||
url: apiConstant.School.subjectEvaluation,
|
||||
method: 'get',
|
||||
params: {
|
||||
schoolId: state.schoolInfo.id
|
||||
},
|
||||
showLoading: false,//是否显示加载图标
|
||||
}).then((response: AxiosResponse) => {
|
||||
return response?.data
|
||||
}).then((data) => {
|
||||
if (data.success) {
|
||||
state.subjectEvaluationList = data.result
|
||||
}
|
||||
}).catch((error: any) => {
|
||||
console.log(error);
|
||||
}).finally(() => {
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
//获取招生章程
|
||||
function getArticleList() {
|
||||
axiosInstance({
|
||||
url: apiConstant.Article.articlePage,
|
||||
method: 'get',
|
||||
params: {
|
||||
type: 1,
|
||||
schoolId: state.schoolInfo.id,
|
||||
pageNum: 1,
|
||||
pageSize: 10
|
||||
},
|
||||
showLoading: false,//是否显示加载图标
|
||||
}).then((response: AxiosResponse) => {
|
||||
return response?.data
|
||||
}).then((data) => {
|
||||
if (data.success) {
|
||||
state.articleList = data.result.records
|
||||
}
|
||||
}).catch((error: any) => {
|
||||
console.log(error);
|
||||
}).finally(() => {
|
||||
});
|
||||
}
|
||||
|
||||
//分数计划
|
||||
function historyMajorEnrollList() {
|
||||
if (!schoolCode) {
|
||||
return;
|
||||
}
|
||||
axiosInstance({
|
||||
url: apiConstant.Major.schoolHistoryMajorEnrollList,
|
||||
method: 'get',
|
||||
params: {
|
||||
schoolCode: schoolCode,
|
||||
year: selectSchoolHistoryMajorEnrollForm.year,
|
||||
pageNo: selectSchoolHistoryMajorEnrollForm.pageNo,
|
||||
pageSize: selectSchoolHistoryMajorEnrollForm.pageSize
|
||||
},
|
||||
// showLoading: false,//是否显示加载图标
|
||||
}).then((response: AxiosResponse) => {
|
||||
return response?.data
|
||||
}).then((data) => {
|
||||
if (data.success) {
|
||||
let dataResult = data.result
|
||||
if (dataResult != null && dataResult != undefined) {
|
||||
console.log(dataResult)
|
||||
state.schoolHistoryMajorEnrollResult = data.result
|
||||
}
|
||||
}
|
||||
}).catch((error: any) => {
|
||||
console.log(error);
|
||||
}).finally(() => {
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
//获取学校开设专业
|
||||
function schoolMajorList() {
|
||||
if (!schoolCode) {
|
||||
return;
|
||||
}
|
||||
axiosInstance({
|
||||
url: apiConstant.Major.schoolMajorList,
|
||||
method: 'get',
|
||||
params: {
|
||||
schoolCode: schoolCode,
|
||||
majorName: selectMajorForm.majorName,
|
||||
cognitioPolyclinic:state.scoreInfo.cognitioPolyclinic
|
||||
},
|
||||
// showLoading: false,//是否显示加载图标
|
||||
}).then((response: AxiosResponse) => {
|
||||
return response?.data
|
||||
}).then((data) => {
|
||||
if (data.success) {
|
||||
let dataResult = data.result
|
||||
if (dataResult != null && dataResult != undefined) {
|
||||
console.log(dataResult)
|
||||
state.majorResult.records = data.result
|
||||
}
|
||||
}
|
||||
}).catch((error: any) => {
|
||||
console.log(error);
|
||||
}).finally(() => {
|
||||
});
|
||||
}
|
||||
|
||||
const handleHistoryMajorEnrollPage = (page: number) => {
|
||||
if (page) {
|
||||
selectSchoolHistoryMajorEnrollForm.pageNo = page
|
||||
historyMajorEnrollList()
|
||||
}
|
||||
}
|
||||
|
||||
const handleMajorPage = (page: number) => {
|
||||
if (page) {
|
||||
selectMajorForm.pageNo = page
|
||||
schoolMajorList()
|
||||
}
|
||||
}
|
||||
|
||||
const getYear = (time: string) => {
|
||||
if (isNotNull(time)) {
|
||||
return time.split("-")[0]
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//查看专业详情
|
||||
function showMajorInfo(majorCode: string) {
|
||||
window.open('/major/' + majorCode, '_self')
|
||||
}
|
||||
|
||||
//查看招生章程详情
|
||||
function showArticle(e: any) {
|
||||
window.open('/article/' + e.id, '_self')
|
||||
}
|
||||
|
||||
//查看更多招生章程
|
||||
function showArticleMore() {
|
||||
window.open('/article/search', '_self')
|
||||
}
|
||||
|
||||
//写入男女比例图
|
||||
function setPeople() {
|
||||
let femaleRatio = state.schoolInfo.femaleRatio
|
||||
let maleRatio = state.schoolInfo.maleRatio
|
||||
if (chartRef.value && echarts &&
|
||||
(femaleRatio &&
|
||||
maleRatio)) {
|
||||
const myChart = echarts.init(chartRef.value);
|
||||
|
||||
const option = {
|
||||
title: {
|
||||
text: '男女比例',
|
||||
left: 'right'
|
||||
},
|
||||
tooltip: {
|
||||
trigger: 'item'
|
||||
},
|
||||
legend: {
|
||||
orient: 'vertical',
|
||||
left: 'left'
|
||||
},
|
||||
series: [
|
||||
{
|
||||
type: 'pie',
|
||||
radius: '60%',
|
||||
data: [
|
||||
{ value: femaleRatio, name: '男' },
|
||||
{ value: maleRatio, name: '女' }
|
||||
],
|
||||
emphasis: {
|
||||
itemStyle: {
|
||||
shadowBlur: 10,
|
||||
shadowOffsetX: 0,
|
||||
shadowColor: 'rgba(0, 0, 0, 0.5)'
|
||||
}
|
||||
},
|
||||
tooltip: {
|
||||
trigger: 'item',
|
||||
//formatter: '{a} <br/>{b}: {c} ({d}%)'
|
||||
formatter: '{b}: {d}%'
|
||||
}
|
||||
}
|
||||
]
|
||||
};
|
||||
|
||||
|
||||
// 设置实例参数
|
||||
myChart.setOption(option as any);
|
||||
}
|
||||
}
|
||||
|
||||
function arrayIsNotEmpty(sjList: any): any {
|
||||
return sjList && sjList.length > 0;
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.relative_box {
|
||||
border-radius: 5px 5px 0 0;
|
||||
height: 280px;
|
||||
background: linear-gradient(131deg, rgb(52, 142, 250) 0%, rgb(122, 182, 249) 100%);
|
||||
color: #fff;
|
||||
|
||||
.slogo {
|
||||
border-radius: 30px;
|
||||
background: #fff;
|
||||
padding: 13px;
|
||||
width: 160px;
|
||||
height: 160px;
|
||||
}
|
||||
|
||||
//院校名称
|
||||
.sname {
|
||||
flex-wrap: wrap;
|
||||
width: 50%;
|
||||
font-size: 25px;
|
||||
color: white;
|
||||
}
|
||||
|
||||
//院校地址
|
||||
.el-text {
|
||||
color: white;
|
||||
}
|
||||
|
||||
//院校标签
|
||||
.stags {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.stags .stag {
|
||||
padding: 5px 10px;
|
||||
border: 1px solid white;
|
||||
min-width: 80px;
|
||||
text-align: center;
|
||||
border-radius: 15px;
|
||||
}
|
||||
}
|
||||
|
||||
/*专业列表*/
|
||||
.majorList {
|
||||
|
||||
//标题行背景色,文字居中
|
||||
:deep(.el-table__header .el-table__cell) {
|
||||
background: #fafafa;
|
||||
text-align: center;
|
||||
color: #000;
|
||||
font-family: "Microsoft YaHei";
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
//数据行 文字居中
|
||||
:deep(.el-table__body .el-table__cell) {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
.jbxx {
|
||||
.block-icon {
|
||||
display: inline-block;
|
||||
width: 18px;
|
||||
height: 18px;
|
||||
margin-right: 15px;
|
||||
position: relative;
|
||||
background-size: 100% 100% !important;
|
||||
}
|
||||
|
||||
.float_left {
|
||||
float: left;
|
||||
}
|
||||
|
||||
.other-line {
|
||||
margin: 0 30px 30px 0;
|
||||
}
|
||||
|
||||
.other-line:last-child {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
img {
|
||||
border: 0;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
* {
|
||||
font-family: "Microsoft YaHei";
|
||||
}
|
||||
|
||||
|
||||
/*科研教学 box start */
|
||||
.schoolResearchTeachingBox {
|
||||
.item {
|
||||
text-align: center;
|
||||
padding: 10px 15px;
|
||||
background-color: white;
|
||||
|
||||
//参数
|
||||
.num {
|
||||
font-size: 20px;
|
||||
font-weight: 600;
|
||||
color: $color-blue-60;
|
||||
}
|
||||
|
||||
.ming {
|
||||
font-size: 14px
|
||||
}
|
||||
|
||||
//名称
|
||||
.text {
|
||||
color: #666;
|
||||
font-size: 15px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*科研教学 box end */
|
||||
|
||||
/*国家级一流专业 start */
|
||||
.gjjylzy {
|
||||
padding: 10px;
|
||||
|
||||
.item {
|
||||
cursor: pointer;
|
||||
padding: 10px 0;
|
||||
line-height: 20px;
|
||||
border-bottom: 1px solid #e4e7ed;
|
||||
}
|
||||
|
||||
.item:hover {
|
||||
color: $color-blue-60;
|
||||
}
|
||||
|
||||
.item-last {
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
.item-right {
|
||||
color: $color-blue-60;
|
||||
float: right;
|
||||
}
|
||||
}
|
||||
|
||||
/*国家级一流专业 end */
|
||||
|
||||
/*第四轮学科评估 start */
|
||||
.dslxkpg {
|
||||
padding: 10px;
|
||||
|
||||
.item {
|
||||
cursor: pointer;
|
||||
padding: 10px 0;
|
||||
line-height: 20px;
|
||||
border-bottom: 1px solid #e4e7ed;
|
||||
}
|
||||
|
||||
.item-last {
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
.item-right {
|
||||
float: right;
|
||||
}
|
||||
}
|
||||
|
||||
/*第四轮学科评估 end */
|
||||
|
||||
//查看更多按钮
|
||||
.showMore {
|
||||
font-size: 15px;
|
||||
line-height: 30px;
|
||||
cursor: pointer;
|
||||
color: $color-blue-60;
|
||||
float: right;
|
||||
margin: 0 0 0 auto;
|
||||
}
|
||||
</style>
|
||||
|
|
@ -1,46 +1,224 @@
|
|||
<template>
|
||||
<LeftNav />
|
||||
<div class="main-container wrap main-fullScreen main-div" style="height: unset;background-color: white;">
|
||||
<div class="filterTable">
|
||||
<div class="filterTitle flexWrap">
|
||||
<div class="flex-item-75">
|
||||
<div class="searchSchool">
|
||||
<el-input v-model="state.selectForm.schoolName" maxlength="24" show-word-limit
|
||||
style="max-width: 230px;height: 40px;line-height: 40px;" placeholder="请输入院校或专业名称"
|
||||
class="input-with-select" />
|
||||
<el-button :icon="Search" @click="reloadSchoolList"
|
||||
style="border-left: none;height: 40px;line-height: 40px;" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="filterBody">
|
||||
<div class="flexWrap">
|
||||
<div class="flex-item-1">就读地域</div>
|
||||
<div class="flex-item-9 tags">
|
||||
<span class="tag" :class="state.selectForm.addressList.length === 0 ? 'tag-active' : ''"
|
||||
@click="checkboxAddress('')">不限</span>
|
||||
<span class="tag" :class="state.selectForm.addressList.includes(item.code) ? 'tag-active' : ''"
|
||||
v-for="(item, index) in state.addressList" :key="index" @click="checkboxAddress(item.code)">
|
||||
{{ item.name }}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="flexWrap">
|
||||
<div class="flex-item-1">院校标签</div>
|
||||
<div class="flex-item-9 tags">
|
||||
<span class="tag" :class="state.selectForm.tagsList.length === 0 ? 'tag-active' : ''"
|
||||
@click="checkboxSchoolTags('')">不限</span>
|
||||
<span class="tag" :class="state.selectForm.tagsList.includes(item.code) ? 'tag-active' : ''"
|
||||
v-for="(item, index) in state.tagsList" :key="index" @click="checkboxSchoolTags(item.code)">
|
||||
{{ item.name }}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="flexWrap">
|
||||
<div class="flex-item-1">办学类型</div>
|
||||
<div class="flex-item-9 tags">
|
||||
<span class="tag"
|
||||
:class="state.selectForm.schoolNatureList && state.selectForm.schoolNatureList.length === 0 ? 'tag-active' : ''"
|
||||
@click="checkboxSchoolNature('')">不限</span>
|
||||
<span class="tag" :class="state.selectForm.schoolNatureList.includes(item.code) ? 'tag-active' : ''"
|
||||
v-for="(item, index) in state.schoolNatureList" :key="index" @click="checkboxSchoolNature(item.code)">
|
||||
{{ item.name }}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="border-b"></div>
|
||||
<div class="flexWrap">
|
||||
<span class="clearFilterButton" @click="clearFilter">重置已选</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="pd-15">
|
||||
<el-row :gutter="20">
|
||||
<!-- 左侧 院校列表-->
|
||||
<el-col :xs="12" :sm="12">
|
||||
<!--clearable-->
|
||||
<div style="border: 1px solid #eee" class="pd-5">
|
||||
<div class="schoolList">
|
||||
<div class="schoolItem" v-for="(item, index) in state.schoolList" :key="index">
|
||||
<div class="flexWrap">
|
||||
<div class="flex-item-15 left" @click="showSchoolInfo(item.schoolCode)">
|
||||
<img :src="item.schoolIcon" :alt="item.schoolName"
|
||||
style="width: 80px;height: 80px;border-radius: 50%;margin: auto;" />
|
||||
</div>
|
||||
<div class="flex-item-8 right">
|
||||
<div class="flexWrap" style="line-height: 30px;" @click="showSchoolInfo(item.schoolCode)">
|
||||
<span class="schoolName"
|
||||
:class="state.testCulturalSchoolCode === item.schoolCode ? 'schoolName-active' : ''">
|
||||
{{ item.schoolName }}
|
||||
</span>
|
||||
<span class="province" v-if="item.province">{{ item.province }}{{ item.city }}{{
|
||||
item.area }}</span>
|
||||
</div>
|
||||
<div class="flexWrap">
|
||||
<div class="tags">
|
||||
<span class="tag" v-for="(tag, i) in item.tagsList" :key="i">
|
||||
{{ tag }}
|
||||
</span>
|
||||
</div>
|
||||
<div class="" style="margin: 0 0 0 auto;z-index: 99;">
|
||||
<el-button text bg type="primary" @click="handleClickTestCultural(item.schoolCode)">测文化</el-button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<el-skeleton :loading="state.loading" style="padding-top: 25px;"></el-skeleton>
|
||||
<div class="page pd-15">
|
||||
<el-pagination small background @current-change="handlePage" :current-page="state.selectForm.current"
|
||||
:page-size="state.size" :total="state.total" layout="total, prev, pager, next" />
|
||||
<!-- jumper -->
|
||||
</div>
|
||||
</div>
|
||||
</el-col>
|
||||
<!-- 右侧 功能广告-->
|
||||
<el-col :xs="12" :sm="12">
|
||||
<div style="border: 1px solid #eee" v-if="state.schoolMajorList && state.schoolMajorList.length>0 && state.testCulturalSchoolCode">
|
||||
<div class="majorList pd-0-15">
|
||||
<div class="majorItem" v-for="(major, index) in state.schoolMajorList" :key="index">
|
||||
<div class="flexWrap">
|
||||
<div class="flex-item-8">
|
||||
<div class="flexWrap majorName" :class="state.testCulturalMajorIndex===index+1?'active-blue':''">{{ major.majorName }}</div>
|
||||
<div class="flexWrap">
|
||||
<div class="mr-10">{{ major.batch }}</div>
|
||||
<div class="mr-10">{{ major.category }}</div>
|
||||
<div v-if="major.detail">
|
||||
{{major.detail }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="flex-item-1" style="height: 50px;line-height: 50px;">
|
||||
<div class="" style="margin:0 5px 0 auto">
|
||||
<el-button type="primary" @click="handleClickTestCulturalMajor(major,(index+1))">查看</el-button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div style="border: 1px solid #eee" v-show="state.testCulturalMajor && state.testCulturalMajor.majorName" class="trans3 mt-10 pd-15">
|
||||
<div class="csTitle">测算结果</div>
|
||||
<div class="csScore">
|
||||
<span v-if="state.testCulturalMajor && state.testCulturalMajor.needScore && state.testCulturalMajor.needScore!==0">
|
||||
当前需要超过{{ state.testCulturalMajor.needScore }}分
|
||||
</span>
|
||||
<span v-else-if="state.testCulturalMajor.rulesEnrollProbability==='专过文排'">
|
||||
文化分需超过{{ state.testCulturalMajor.score }}分
|
||||
</span>
|
||||
<span v-else-if="state.testCulturalMajor.rulesEnrollProbability==='文过专排' || state.testCulturalMajor.rulesEnrollProbability==='文过专排主科'">
|
||||
专业分需超过{{ state.testCulturalMajor.score }}分
|
||||
</span>
|
||||
<span v-else>
|
||||
文化分和专业分需要超过{{ state.testCulturalMajor.score }}分
|
||||
</span>
|
||||
</div>
|
||||
<div class="csHistory">
|
||||
<div>{{ state.testCulturalMajor.year }}河南文化分控线为 <span class="score">{{state.testCulturalMajor.culturalScore}}</span>分</div>
|
||||
<div>{{ state.testCulturalMajor.year }}河南专业分控线为 <span class="score">{{state.testCulturalMajor.specialScore}}</span>分</div>
|
||||
</div>
|
||||
<div class="border-t mt-10 mb-10"></div>
|
||||
<div class="csLqfs">
|
||||
<div class="title">录取方式</div>
|
||||
<span class="detail">{{ state.testCulturalMajor.rulesEnrollProbability || '未知' }}</span>
|
||||
<div class="title">院校限制</div>
|
||||
<span class="detail">{{ state.testCulturalMajor.limitation||'暂无' }}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="textCenter" v-show="!state.testCulturalSchoolCode">
|
||||
<span>选择院校点击测文化即可查看专业</span>
|
||||
</div>
|
||||
|
||||
</el-col>
|
||||
</el-row>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import StaticConstant from "@/utils/StaticConstant";
|
||||
|
||||
document.title = '全国大学名单|排名排行榜';
|
||||
import {ComponentInternalInstance, getCurrentInstance, reactive, ref} from 'vue'
|
||||
import type {TabsPaneContext} from 'element-plus'
|
||||
import { reactive } from 'vue'
|
||||
import apiConstant from "@/utils/ApiConstant";
|
||||
import {AxiosResponse} from "axios";
|
||||
import {SchoolEntity} from "@/types";
|
||||
|
||||
const {proxy} = getCurrentInstance() as ComponentInternalInstance;
|
||||
const selectForm = ref({
|
||||
schoolName: '',
|
||||
addressList: [],
|
||||
institutionType: "",
|
||||
schoolType: "",
|
||||
tagsList: [],
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
})
|
||||
import axiosInstance from '@/utils/http';
|
||||
import { SchoolEntity } from "@/types";
|
||||
import { Search } from '@element-plus/icons-vue';
|
||||
import LeftNav from "@/components/LeftNav.vue";
|
||||
import StaticConstant from '@/utils/StaticConstant';
|
||||
import { getTestCultural } from '@/axios/major/MajorApi';
|
||||
document.title = '找大学|艺体志愿宝';
|
||||
//激活的tabs页
|
||||
const activeTabsName = ref('yxk')
|
||||
const state = reactive({
|
||||
selectForm: {
|
||||
schoolName: '',
|
||||
addressList: [] as any,
|
||||
kyjxList: [] as any,
|
||||
tagsList: [] as any,
|
||||
schoolNatureList: [] as any,
|
||||
current: 1,
|
||||
pageSize: 10,
|
||||
} as any,
|
||||
schoolList: [] as Array<SchoolEntity>,
|
||||
size: 10,
|
||||
total: 0,
|
||||
current: 1,
|
||||
loading: false,//加载中? true 加载/false 关闭
|
||||
testCulturalMajor:{} as any,
|
||||
testCulturalMajorIndex:null as any,//
|
||||
testCulturalSchoolCode: '',//是否需要测文化分
|
||||
addressList: [...StaticConstant.addressList] as any,//就读地域筛选项
|
||||
kyjxList: ['硕士点', '博士点', '保研'] as Array<string>,//科研教学筛选项
|
||||
rulesEnrollProbabilityList: [] as Array<any>,//录取方式
|
||||
tagsList: StaticConstant.tagsList as Array<any>,//院校标签
|
||||
schoolNatureList: [...StaticConstant.schoolTypeList] as Array<any>,//办学类型
|
||||
schoolMajorList: [] as any,//院校招录专业
|
||||
})
|
||||
|
||||
|
||||
schoolList()
|
||||
getSchoolList()
|
||||
|
||||
//获取学校列表
|
||||
function schoolList() {
|
||||
function getSchoolList() {
|
||||
state.loading = true;
|
||||
state.schoolList = []
|
||||
proxy?.$axios({
|
||||
axiosInstance({
|
||||
url: apiConstant.School.searchSchoolList,
|
||||
method: 'get',
|
||||
params: selectForm.value,
|
||||
params: {
|
||||
schoolName: state.selectForm.schoolName,
|
||||
pageNum: state.selectForm.current,
|
||||
pageSize: state.selectForm.pageSize,
|
||||
addressList: state.selectForm.addressList,
|
||||
tagsList: state.selectForm.tagsList,
|
||||
schoolNatureList: state.selectForm.schoolNatureList
|
||||
},
|
||||
showLoading: false,//是否显示加载图标
|
||||
}).then((response: AxiosResponse) => {
|
||||
}).then((response) => {
|
||||
return response?.data
|
||||
}).then((data) => {
|
||||
state.loading = false;
|
||||
|
|
@ -60,8 +238,8 @@ function schoolList() {
|
|||
}
|
||||
}
|
||||
state.schoolList = dataResult.records
|
||||
state.size = data.result.size
|
||||
state.current = data.result.current
|
||||
state.selectForm.current = data.result.current
|
||||
state.selectForm.pageSize = data.result.size
|
||||
state.total = data.result.total
|
||||
}
|
||||
}).catch((error: any) => {
|
||||
|
|
@ -70,247 +248,138 @@ function schoolList() {
|
|||
});
|
||||
}
|
||||
|
||||
function reloadSchoolList() {
|
||||
state.selectForm.current = 1
|
||||
state.schoolList = []
|
||||
getSchoolList()
|
||||
}
|
||||
|
||||
const handlePage = (page: number) => {
|
||||
if (page) {
|
||||
selectForm.value.pageNum = page
|
||||
schoolList()
|
||||
state.selectForm.current = page
|
||||
getSchoolList()
|
||||
}
|
||||
}
|
||||
|
||||
//标签页切换
|
||||
const handleTabsClick = (tab: TabsPaneContext, event: Event) => {
|
||||
console.log(tab, event)
|
||||
//选择地区
|
||||
function checkboxAddress(addressCode: string) {
|
||||
if (!addressCode) {
|
||||
state.selectForm.addressList = []
|
||||
} else if (state.selectForm.addressList.includes(addressCode)) {
|
||||
state.selectForm.addressList = state.selectForm.addressList.filter((element: any) => element !== addressCode)
|
||||
} else {
|
||||
state.selectForm.addressList.push(addressCode)
|
||||
}
|
||||
reloadSchoolList()
|
||||
}
|
||||
//选择科研教学
|
||||
function checkboxKyjx(kyjx: string) {
|
||||
if (!kyjx) {
|
||||
state.selectForm.kyjxList = []
|
||||
} else if (state.selectForm.kyjxList.includes(kyjx)) {
|
||||
state.selectForm.kyjxList = state.selectForm.kyjxList.filter((element: any) => element !== kyjx)
|
||||
} else {
|
||||
state.selectForm.kyjxList.push(kyjx)
|
||||
}
|
||||
reloadSchoolList()
|
||||
}
|
||||
//选择院校标签
|
||||
function checkboxSchoolTags(schoolTag: string) {
|
||||
if (!schoolTag) {
|
||||
state.selectForm.tagsList = []
|
||||
} else if (state.selectForm.tagsList.includes(schoolTag)) {
|
||||
state.selectForm.tagsList = state.selectForm.tagsList.filter((element: any) => element !== schoolTag)
|
||||
} else {
|
||||
state.selectForm.tagsList.push(schoolTag)
|
||||
}
|
||||
reloadSchoolList()
|
||||
}
|
||||
//选择办学类型
|
||||
function checkboxSchoolNature(schoolNature: string) {
|
||||
if (!schoolNature) {
|
||||
state.selectForm.schoolNatureList = []
|
||||
} else if (state.selectForm.schoolNatureList.includes(schoolNature)) {
|
||||
state.selectForm.schoolNatureList = state.selectForm.schoolNatureList.filter((element: any) => element !== schoolNature)
|
||||
} else {
|
||||
state.selectForm.schoolNatureList.push(schoolNature)
|
||||
}
|
||||
reloadSchoolList()
|
||||
}
|
||||
|
||||
const showSchoolInfo = (schoolCode: string) => {
|
||||
window.open(schoolCode, '_blank')
|
||||
window.open(schoolCode, '_self')
|
||||
}
|
||||
|
||||
//点击测文化
|
||||
const handleClickTestCultural = async (schoolCode: string) => {
|
||||
state.schoolMajorList = []
|
||||
state.testCulturalSchoolCode = schoolCode
|
||||
state.testCulturalMajorIndex = undefined
|
||||
state.testCulturalMajor = {}
|
||||
const result = await getTestCultural({ schoolCode: schoolCode, year: '2023' });
|
||||
state.schoolMajorList = result
|
||||
}
|
||||
|
||||
//选择测文化专业
|
||||
const handleClickTestCulturalMajor = (major:any,index:number)=>{
|
||||
state.testCulturalMajorIndex = index
|
||||
state.testCulturalMajor = major
|
||||
}
|
||||
|
||||
//清除筛选项
|
||||
function clearFilter() {
|
||||
state.selectForm.schoolName = ''
|
||||
state.selectForm.addressList = []
|
||||
state.selectForm.tagsList = []
|
||||
state.selectForm.schoolNatureList = []
|
||||
reloadSchoolList()
|
||||
}
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div class="main-container wrap main-fullScreen main-div" style="height: unset;">
|
||||
<el-row :gutter="20">
|
||||
<!-- 左侧 院校列表-->
|
||||
<el-col :xs="17" :sm="17">
|
||||
<el-card class="box-card">
|
||||
<el-tabs v-model="activeTabsName" class="demo-tabs" @tab-click="handleTabsClick">
|
||||
<el-tab-pane label="院校库" name="yxk">
|
||||
<el-form :inline="true" :model="selectForm" class="demo-form-inline">
|
||||
<el-form-item :inline="true">
|
||||
<el-input style="width: 70%" :input-style="{background:'none !important'}"
|
||||
v-model="selectForm.schoolName" class="w-50 m-2 input-border-style"
|
||||
size="large" placeholder="输入院校名称"/>
|
||||
<el-button size="large" type="primary" style="margin-left: 5px" plain @click="schoolList">搜索
|
||||
</el-button>
|
||||
</el-form-item>
|
||||
<el-form-item label="院校所属">
|
||||
<el-checkbox-group v-model="selectForm.addressList" @change="schoolList">
|
||||
<el-checkbox v-for="item in StaticConstant.addressList" :label="item.code" name="address">
|
||||
{{ item.name }}
|
||||
</el-checkbox>
|
||||
</el-checkbox-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="院校类型">
|
||||
<el-radio-group v-model="selectForm.institutionType" @change="schoolList">
|
||||
<el-radio label="" name="address">不限</el-radio>
|
||||
<el-radio v-for="item in StaticConstant.institutionTypeList" :label="item.code" name="institutionType">
|
||||
{{ item.name }}
|
||||
</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="办学类型">
|
||||
<el-radio-group v-model="selectForm.schoolType" @change="schoolList">
|
||||
<el-radio label="" name="schoolType">不限</el-radio>
|
||||
<el-radio v-for="item in StaticConstant.schoolTypeList" :label="item.code" name="schoolType">
|
||||
{{ item.name }}
|
||||
</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="院校特色">
|
||||
<el-checkbox-group v-model="selectForm.tagsList" @change="schoolList">
|
||||
<el-checkbox v-for="item in StaticConstant.tagsList" :label="item.code" name="tags">{{ item.name }}
|
||||
</el-checkbox>
|
||||
</el-checkbox-group>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-divider />
|
||||
<!--clearable-->
|
||||
<div class="schoolList">
|
||||
<div class="schoolItem" v-for="item in state.schoolList" @click="showSchoolInfo(item.schoolCode)">
|
||||
<div class="schoolLogo">
|
||||
<img :src="item.schoolIcon" v-if="item.schoolIcon!=null && item.schoolIcon!=undefined"/>
|
||||
<img v-else src="@/assets/images/school/school_default.png">
|
||||
</div>
|
||||
<div class="schoolInfo">
|
||||
<div class="schoolTitle">
|
||||
<h3 class="schoolName">
|
||||
{{ item.schoolName }}
|
||||
<span class="province"
|
||||
v-if="item.province">{{ item.province }}{{ item.city }}{{ item.area }}</span>
|
||||
</h3>
|
||||
</div>
|
||||
<div class="schoolTags">
|
||||
<span v-for="tag in item.tagsList">{{ tag }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<el-skeleton :loading="state.loading" style="padding-top: 25px;"></el-skeleton>
|
||||
<div class="page">
|
||||
<el-pagination background @current-change="handlePage" :current-page="state.current"
|
||||
:page-size="state.size" :total="state.total"
|
||||
layout="total, prev, pager, next,jumper"/>
|
||||
</div>
|
||||
</el-tab-pane>
|
||||
<!-- <el-tab-pane label="分数榜" name="fsb">Config</el-tab-pane>-->
|
||||
</el-tabs>
|
||||
</el-card>
|
||||
</el-col>
|
||||
<!-- 右侧 功能广告-->
|
||||
<el-col :xs="7" :sm="7">
|
||||
<div class="page-right" style="width: 300px">
|
||||
<a><!--@click="router.push({path: '/school/search'})"-->
|
||||
<img src="@/assets/images/pyxz.png" height="130" width="300">
|
||||
</a>
|
||||
<Mngk/>
|
||||
</div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<style scoped lang="scss">
|
||||
//标签页样式
|
||||
.demo-tabs > .el-tabs__content {
|
||||
padding: 32px;
|
||||
color: #6b778c;
|
||||
font-size: 32px;
|
||||
font-weight: 600;
|
||||
.schoolName {
|
||||
padding-top: 0 !important;
|
||||
}
|
||||
|
||||
//自定义输入框 样式
|
||||
/** 默认样式 */
|
||||
.input-border-style {
|
||||
border: 1px solid #eee !important;
|
||||
border-radius: 6px !important;
|
||||
.province {
|
||||
height: 26px;
|
||||
line-height: 24px;
|
||||
font-size: 12px;
|
||||
border: 1px solid #eee;
|
||||
color: #555;
|
||||
display: inline-block;
|
||||
padding: 0 10px;
|
||||
margin: 0 20px 0 15px;
|
||||
}
|
||||
|
||||
:deep(.el-input__wrapper) {
|
||||
background: none !important;
|
||||
}
|
||||
</style>
|
||||
|
||||
<!--学校列表-->
|
||||
<style scoped lang="scss">
|
||||
.schoolList {
|
||||
.schoolItem:hover {
|
||||
color: #3491FA
|
||||
}
|
||||
|
||||
.schoolItem:last-child {
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
.schoolItem {
|
||||
display: flex;
|
||||
justify-content: flex-start;
|
||||
align-items: center;
|
||||
padding: 20px;
|
||||
cursor: pointer;
|
||||
border-bottom: 1px solid #eee;
|
||||
position: relative;
|
||||
|
||||
.schoolLogo {
|
||||
margin-right: 20px;
|
||||
|
||||
img {
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
}
|
||||
}
|
||||
|
||||
.schoolInfo {
|
||||
.schoolTitle {
|
||||
margin-bottom: 18px;
|
||||
|
||||
.schoolName {
|
||||
color: #333;
|
||||
font-size: 18px;
|
||||
height: 25px;
|
||||
line-height: 25px;
|
||||
margin: 0 20px 0 0;
|
||||
transition: all .3s;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
.province {
|
||||
height: 26px;
|
||||
line-height: 24px;
|
||||
font-size: 12px;
|
||||
border: 1px solid #eee;
|
||||
color: #555;
|
||||
display: inline-block;
|
||||
padding: 0 10px;
|
||||
margin: 0 20px 0 15px;
|
||||
}
|
||||
}
|
||||
|
||||
.schoolName:hover {
|
||||
color: #3491FA
|
||||
}
|
||||
}
|
||||
|
||||
.schoolTags {
|
||||
span {
|
||||
display: inline-block;
|
||||
color: #555;
|
||||
padding-right: 10px;
|
||||
margin-right: 10px;
|
||||
border-right: 1px solid #c5c5c5;
|
||||
line-height: 15px;
|
||||
}
|
||||
|
||||
span:last-child {
|
||||
border: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.page-right {
|
||||
.box-card {
|
||||
border-radius: 12px;
|
||||
}
|
||||
|
||||
.card-header {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
color: red;
|
||||
}
|
||||
|
||||
:deep(.el-card__header) {
|
||||
padding: 6px 12px 12px 12px;
|
||||
background-color: #4cc8ff;
|
||||
height: 30px;
|
||||
|
||||
span {
|
||||
width: 100px;
|
||||
height: 16px;
|
||||
background-size: cover;
|
||||
background-image: url(data:image/png;base64,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);
|
||||
}
|
||||
}
|
||||
|
||||
.item {
|
||||
border-radius: 12px;
|
||||
|
||||
}
|
||||
|
||||
:deep(.el-card__body) {
|
||||
padding: 0;
|
||||
}
|
||||
//测文化 start
|
||||
.csTitle{
|
||||
padding: 10px 0;
|
||||
font-size: 20px;
|
||||
text-align: center;
|
||||
color: $color-blue-60;
|
||||
}
|
||||
.csScore{
|
||||
padding: 10px 0;
|
||||
text-align: center;
|
||||
color:$color-black-60;
|
||||
}
|
||||
.csHistory{
|
||||
text-align: center;
|
||||
color:$color-black-60;
|
||||
.score{
|
||||
font-weight: 600;
|
||||
color:$color-blue-50;
|
||||
}
|
||||
}
|
||||
//录取方式
|
||||
.csLqfs{
|
||||
.title{
|
||||
color:$color-black-60;
|
||||
}
|
||||
.detail{
|
||||
font-weight: 600;
|
||||
color:$color-blue-50;
|
||||
}
|
||||
}
|
||||
// 测文化 end
|
||||
</style>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,207 @@
|
|||
<template>
|
||||
<div>
|
||||
<el-table :data="state.tableData" style="width: 100%" height="500">
|
||||
<el-table-column label="志愿表名称" width="230" align="center">
|
||||
<template #default="scope">
|
||||
<div class="top-align flexWrap">
|
||||
<span class="font-size-16 fw-6 black1 main-container">{{ scope.row.volunteer.volunteerName }}</span>
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="成绩信息" align="center">
|
||||
<template #default="scope">
|
||||
<div class="top-align">
|
||||
<div class="flexWrap">
|
||||
<div class="main-container">
|
||||
<span>{{ scope.row.scoreInfo.professionalCategory }}/{{ scope.row.scoreInfo.cognitioPolyclinic }}</span>
|
||||
<span v-if="scope.row.scoreInfo.professionalCategoryChildren">/{{ scope.row.scoreInfo.professionalCategoryChildren }}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mt-5 flexWrap">
|
||||
<div class="main-container">
|
||||
<span>文化分·{{ scope.row.scoreInfo.culturalScore }} 統考分·{{ scope.row.scoreInfo.professionalScore }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="创建时间" width="180" align="center">
|
||||
<template #default="scope">
|
||||
<div class="top-align flexWrap">
|
||||
<div class="main-container">
|
||||
<span>{{ scope.row.volunteer.createTime }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="志愿表状态" width="180" align="center">
|
||||
<template #default="scope">
|
||||
<div class="top-align flexWrap">
|
||||
<div class="main-container">
|
||||
<el-tag v-if="scope.row.volunteer.state==='1'">当前</el-tag>
|
||||
<el-tag v-else type="info">否</el-tag>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" width="180" align="center">
|
||||
<template #default="scope">
|
||||
<div class="top-align flexWrap">
|
||||
<div class="main-container" v-if="scope.row.volunteer.state!=='1'">
|
||||
<el-popconfirm
|
||||
confirm-button-text="确定"
|
||||
cancel-button-text="取消"
|
||||
:icon="InfoFilled"
|
||||
icon-color="#626AEF"
|
||||
title="确定使用该志愿吗?"
|
||||
@confirm="switchVolunteer(scope.row.volunteer.id)"
|
||||
>
|
||||
<template #reference>
|
||||
<el-button size="small">使用</el-button>
|
||||
</template>
|
||||
</el-popconfirm>
|
||||
|
||||
<el-popconfirm
|
||||
confirm-button-text="确定"
|
||||
cancel-button-text="取消"
|
||||
:icon="InfoFilled"
|
||||
icon-color="#626AEF"
|
||||
title="确定删除该次志愿吗?"
|
||||
@confirm="deleteVolunteer(scope.row.volunteer.id)"
|
||||
>
|
||||
<template #reference>
|
||||
<el-button size="small" type="danger" align="center">删除</el-button>
|
||||
</template>
|
||||
</el-popconfirm>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
<!-- <el-button @click="returnClick">回调事件</el-button> -->
|
||||
</template>
|
||||
<script lang="ts" setup>
|
||||
import bus from "@/store/eventBus";
|
||||
import { onMounted, reactive } from 'vue';
|
||||
import { ElMessage } from 'element-plus';
|
||||
import ApiConstant from '@/utils/ApiConstant';
|
||||
import StaticConstant from '@/utils/StaticConstant';
|
||||
import {InfoFilled,Search,Edit} from '@element-plus/icons-vue';
|
||||
import { getScore } from "@/axios/api";
|
||||
import axiosInstance from '@/utils/http';
|
||||
const state = reactive({
|
||||
tableData: [] as any
|
||||
})
|
||||
onMounted(() => {
|
||||
getVolunteerList()
|
||||
})
|
||||
function getVolunteerList() {
|
||||
axiosInstance({
|
||||
url: ApiConstant.Score.scoreList,
|
||||
method: 'get',
|
||||
params: {},
|
||||
// showLoading: false,//是否显示加载图标
|
||||
}).then((response) => {
|
||||
return response.data
|
||||
}).then((data) => {
|
||||
if (!data.success) {
|
||||
ElMessage.error(data.message);
|
||||
return false
|
||||
}
|
||||
state.tableData = data.result
|
||||
}).catch((error: any) => {
|
||||
console.log(error);
|
||||
}).finally(() => {
|
||||
});
|
||||
}
|
||||
|
||||
//切换志愿表
|
||||
function switchVolunteer(volunteerId:string) {
|
||||
axiosInstance({
|
||||
url: ApiConstant.Volunteer.switchVolunteer,
|
||||
method: 'post',
|
||||
data: {id: volunteerId},
|
||||
// showLoading: false,//是否显示加载图标
|
||||
}).then((response) => {
|
||||
return response.data
|
||||
}).then((data) => {
|
||||
if (!data.success) {
|
||||
ElMessage.error(data.message);
|
||||
return false
|
||||
}
|
||||
getScore()
|
||||
//切换成功,刷新成绩
|
||||
ElMessage.success("操作成功");
|
||||
//刷新页面
|
||||
setTimeout(function(){
|
||||
window.location.reload()
|
||||
}, 800);
|
||||
}).catch((error: any) => {
|
||||
console.log(error);
|
||||
}).finally(() => {
|
||||
});
|
||||
}
|
||||
//删除志愿表
|
||||
function deleteVolunteer(volunteerId:string){
|
||||
axiosInstance({
|
||||
url: ApiConstant.Volunteer.volunteerDelete,
|
||||
method: 'delete',
|
||||
params: {id: volunteerId},
|
||||
// showLoading: false,//是否显示加载图标
|
||||
}).then((response) => {
|
||||
return response.data
|
||||
}).then((data) => {
|
||||
if (!data.success) {
|
||||
ElMessage.error(data.message);
|
||||
return false
|
||||
}
|
||||
//切换成功,刷新成绩
|
||||
ElMessage.success("操作成功");
|
||||
//刷新数据
|
||||
getVolunteerList()
|
||||
}).catch((error: any) => {
|
||||
console.log(error);
|
||||
}).finally(() => {
|
||||
});
|
||||
}
|
||||
|
||||
function returnClick() {
|
||||
bus.emit("closeOtherVolunteerChange" as any, sessionStorage.getItem("cityName"));//发送
|
||||
}
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
:deep(.cell) {
|
||||
padding: 10px 15px;
|
||||
}
|
||||
|
||||
:deep(.el-table__body) {
|
||||
.cell {
|
||||
min-height: 0 !important;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.el-table__cell {
|
||||
padding: 0;
|
||||
}
|
||||
}
|
||||
|
||||
:deep(.el-table) {
|
||||
thead {
|
||||
color: black;
|
||||
th {
|
||||
font-weight: 500;
|
||||
}
|
||||
}
|
||||
th.el-table__cell {
|
||||
background-color: #edeff7;
|
||||
}
|
||||
}
|
||||
|
||||
.top-align {
|
||||
padding: 10px 15px;
|
||||
vertical-align: top;
|
||||
/* 设置内容顶部对齐 */
|
||||
}
|
||||
</style>
|
||||
|
|
@ -0,0 +1 @@
|
|||
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36npm
|
||||
|
|
@ -3,6 +3,7 @@ import vue from "@vitejs/plugin-vue";
|
|||
import AutoImport from "unplugin-auto-import/vite";
|
||||
import Components from "unplugin-vue-components/vite";
|
||||
import { ElementPlusResolver } from "unplugin-vue-components/resolvers";
|
||||
import { createSvgIconsPlugin } from 'vite-plugin-svg-icons';
|
||||
import path from 'path'
|
||||
|
||||
export default defineConfig({
|
||||
|
|
@ -15,6 +16,12 @@ export default defineConfig({
|
|||
Components({
|
||||
resolvers: [ElementPlusResolver()],
|
||||
}),
|
||||
createSvgIconsPlugin({
|
||||
// 指定需要缓存的图标文件夹
|
||||
iconDirs: [path.resolve(process.cwd(), 'src/assets/icons/svg')],
|
||||
// 指定symbolId格式
|
||||
symbolId: 'icon-[dir]-[name]'
|
||||
})
|
||||
],
|
||||
server: {
|
||||
host: "0.0.0.0", // 监听所有地址(局域网和公网)
|
||||
|
|
@ -28,7 +35,7 @@ export default defineConfig({
|
|||
css: {
|
||||
preprocessorOptions: {
|
||||
scss: {
|
||||
additionalData: `@use "@/assets/css/base.css" as *;@use "@/assets/css/global.scss" as *;` //加载各模块样式
|
||||
additionalData: `@use "@/assets/css/_global.scss" as *;@use "@/assets/css/my-color.scss" as *;@use "@/assets/css/base.scss" as *;@use "@/assets/css/common.scss" as *;` //加载各模块样式
|
||||
},
|
||||
}
|
||||
},
|
||||
|
|
|
|||
|
|
@ -0,0 +1,44 @@
|
|||
// vite.config.ts
|
||||
import { defineConfig } from "file:///D:/workspace_3/yitisheng/yitisheng-new-web/node_modules/.pnpm/vite@3.2.10_@types+node@20.12.7_less@4.2.0_sass@1.75.0/node_modules/vite/dist/node/index.js";
|
||||
import vue from "file:///D:/workspace_3/yitisheng/yitisheng-new-web/node_modules/.pnpm/@vitejs+plugin-vue@3.2.0_vite@3.2.10_@types+node@20.12.7_less@4.2.0_sass@1.75.0__vue@3.4.23/node_modules/@vitejs/plugin-vue/dist/index.mjs";
|
||||
import AutoImport from "file:///D:/workspace_3/yitisheng/yitisheng-new-web/node_modules/.pnpm/unplugin-auto-import@0.11.5_@vueuse+core@9.13.0_vue@3.4.23__rollup@2.79.1/node_modules/unplugin-auto-import/dist/vite.js";
|
||||
import Components from "file:///D:/workspace_3/yitisheng/yitisheng-new-web/node_modules/.pnpm/unplugin-vue-components@0.22.12_@babel+parser@7.24.4_rollup@2.79.1_vue@3.4.23/node_modules/unplugin-vue-components/dist/vite.mjs";
|
||||
import { ElementPlusResolver } from "file:///D:/workspace_3/yitisheng/yitisheng-new-web/node_modules/.pnpm/unplugin-vue-components@0.22.12_@babel+parser@7.24.4_rollup@2.79.1_vue@3.4.23/node_modules/unplugin-vue-components/dist/resolvers.mjs";
|
||||
import { createSvgIconsPlugin } from "file:///D:/workspace_3/yitisheng/yitisheng-new-web/node_modules/.pnpm/vite-plugin-svg-icons@2.0.1_vite@3.2.10_@types+node@20.12.7_less@4.2.0_sass@1.75.0_/node_modules/vite-plugin-svg-icons/dist/index.mjs";
|
||||
import path from "path";
|
||||
var __vite_injected_original_dirname = "D:\\workspace_3\\yitisheng\\yitisheng-new-web";
|
||||
var vite_config_default = defineConfig({
|
||||
plugins: [
|
||||
vue(),
|
||||
AutoImport({
|
||||
resolvers: [ElementPlusResolver()]
|
||||
}),
|
||||
Components({
|
||||
resolvers: [ElementPlusResolver()]
|
||||
}),
|
||||
createSvgIconsPlugin({
|
||||
iconDirs: [path.resolve(process.cwd(), "src/assets/icons/svg")],
|
||||
symbolId: "icon-[dir]-[name]"
|
||||
})
|
||||
],
|
||||
server: {
|
||||
host: "0.0.0.0",
|
||||
port: 5e3
|
||||
},
|
||||
resolve: {
|
||||
alias: {
|
||||
"@": path.resolve(__vite_injected_original_dirname, "src")
|
||||
}
|
||||
},
|
||||
css: {
|
||||
preprocessorOptions: {
|
||||
scss: {
|
||||
additionalData: `@use "@/assets/css/_global.scss" as *;@use "@/assets/css/my-color.scss" as *;@use "@/assets/css/base.scss" as *;@use "@/assets/css/common.scss" as *;`
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
export {
|
||||
vite_config_default as default
|
||||
};
|
||||
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsidml0ZS5jb25maWcudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImNvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lID0gXCJEOlxcXFx3b3Jrc3BhY2VfM1xcXFx5aXRpc2hlbmdcXFxceWl0aXNoZW5nLW5ldy13ZWJcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZmlsZW5hbWUgPSBcIkQ6XFxcXHdvcmtzcGFjZV8zXFxcXHlpdGlzaGVuZ1xcXFx5aXRpc2hlbmctbmV3LXdlYlxcXFx2aXRlLmNvbmZpZy50c1wiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9pbXBvcnRfbWV0YV91cmwgPSBcImZpbGU6Ly8vRDovd29ya3NwYWNlXzMveWl0aXNoZW5nL3lpdGlzaGVuZy1uZXctd2ViL3ZpdGUuY29uZmlnLnRzXCI7aW1wb3J0IHsgZGVmaW5lQ29uZmlnIH0gZnJvbSBcInZpdGVcIjtcbmltcG9ydCB2dWUgZnJvbSBcIkB2aXRlanMvcGx1Z2luLXZ1ZVwiO1xuaW1wb3J0IEF1dG9JbXBvcnQgZnJvbSBcInVucGx1Z2luLWF1dG8taW1wb3J0L3ZpdGVcIjtcbmltcG9ydCBDb21wb25lbnRzIGZyb20gXCJ1bnBsdWdpbi12dWUtY29tcG9uZW50cy92aXRlXCI7XG5pbXBvcnQgeyBFbGVtZW50UGx1c1Jlc29sdmVyIH0gZnJvbSBcInVucGx1Z2luLXZ1ZS1jb21wb25lbnRzL3Jlc29sdmVyc1wiO1xuaW1wb3J0IHsgY3JlYXRlU3ZnSWNvbnNQbHVnaW4gfSBmcm9tICd2aXRlLXBsdWdpbi1zdmctaWNvbnMnO1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCdcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lQ29uZmlnKHtcbiAgcGx1Z2luczogW1xuICAgIHZ1ZSgpLFxuICAgIC8vIFx1ODFFQVx1NTJBOFx1NUJGQ1x1NTE2NUVsZW1lbnQgUGx1c1xuICAgIEF1dG9JbXBvcnQoe1xuICAgICAgcmVzb2x2ZXJzOiBbRWxlbWVudFBsdXNSZXNvbHZlcigpXSxcbiAgICB9KSxcbiAgICBDb21wb25lbnRzKHtcbiAgICAgIHJlc29sdmVyczogW0VsZW1lbnRQbHVzUmVzb2x2ZXIoKV0sXG4gICAgfSksXG4gICAgY3JlYXRlU3ZnSWNvbnNQbHVnaW4oe1xuICAgICAgLy8gXHU2MzA3XHU1QjlBXHU5NzAwXHU4OTgxXHU3RjEzXHU1QjU4XHU3Njg0XHU1NkZFXHU2ODA3XHU2NTg3XHU0RUY2XHU1OTM5XG4gICAgICBpY29uRGlyczogW3BhdGgucmVzb2x2ZShwcm9jZXNzLmN3ZCgpLCAnc3JjL2Fzc2V0cy9pY29ucy9zdmcnKV0sXG4gICAgICAvLyBcdTYzMDdcdTVCOUFzeW1ib2xJZFx1NjgzQ1x1NUYwRlxuICAgICAgc3ltYm9sSWQ6ICdpY29uLVtkaXJdLVtuYW1lXSdcbiAgICB9KVxuICBdLFxuICBzZXJ2ZXI6IHtcbiAgICBob3N0OiBcIjAuMC4wLjBcIiwgLy8gXHU3NkQxXHU1NDJDXHU2MjQwXHU2NzA5XHU1NzMwXHU1NzQwXHVGRjA4XHU1QzQwXHU1N0RGXHU3RjUxXHU1NDhDXHU1MTZDXHU3RjUxXHVGRjA5XG4gICAgcG9ydDogNTAwMCwgLy8gXHU4MUVBXHU1QjlBXHU0RTQ5XHU3QUVGXHU1M0UzXHU1M0Y3XG4gIH0sXG4gIHJlc29sdmU6IHtcbiAgICBhbGlhczoge1xuICAgICAgJ0AnOiBwYXRoLnJlc29sdmUoX19kaXJuYW1lLCAnc3JjJylcbiAgICB9XG4gIH0sXG4gIGNzczoge1xuICAgIHByZXByb2Nlc3Nvck9wdGlvbnM6IHtcbiAgICAgIHNjc3M6IHtcbiAgICAgICAgYWRkaXRpb25hbERhdGE6IGBAdXNlIFwiQC9hc3NldHMvY3NzL19nbG9iYWwuc2Nzc1wiIGFzICo7QHVzZSBcIkAvYXNzZXRzL2Nzcy9teS1jb2xvci5zY3NzXCIgYXMgKjtAdXNlIFwiQC9hc3NldHMvY3NzL2Jhc2Uuc2Nzc1wiIGFzICo7QHVzZSBcIkAvYXNzZXRzL2Nzcy9jb21tb24uc2Nzc1wiIGFzICo7YCAvL1x1NTJBMFx1OEY3RFx1NTQwNFx1NkEyMVx1NTc1N1x1NjgzN1x1NUYwRlxuICAgICAgfSxcbiAgICB9XG4gIH0sXG59KTtcbiJdLAogICJtYXBwaW5ncyI6ICI7QUFBd1QsU0FBUyxvQkFBb0I7QUFDclYsT0FBTyxTQUFTO0FBQ2hCLE9BQU8sZ0JBQWdCO0FBQ3ZCLE9BQU8sZ0JBQWdCO0FBQ3ZCLFNBQVMsMkJBQTJCO0FBQ3BDLFNBQVMsNEJBQTRCO0FBQ3JDLE9BQU8sVUFBVTtBQU5qQixJQUFNLG1DQUFtQztBQVF6QyxJQUFPLHNCQUFRLGFBQWE7QUFBQSxFQUMxQixTQUFTO0FBQUEsSUFDUCxJQUFJO0FBQUEsSUFFSixXQUFXO0FBQUEsTUFDVCxXQUFXLENBQUMsb0JBQW9CLENBQUM7QUFBQSxJQUNuQyxDQUFDO0FBQUEsSUFDRCxXQUFXO0FBQUEsTUFDVCxXQUFXLENBQUMsb0JBQW9CLENBQUM7QUFBQSxJQUNuQyxDQUFDO0FBQUEsSUFDRCxxQkFBcUI7QUFBQSxNQUVuQixVQUFVLENBQUMsS0FBSyxRQUFRLFFBQVEsSUFBSSxHQUFHLHNCQUFzQixDQUFDO0FBQUEsTUFFOUQsVUFBVTtBQUFBLElBQ1osQ0FBQztBQUFBLEVBQ0g7QUFBQSxFQUNBLFFBQVE7QUFBQSxJQUNOLE1BQU07QUFBQSxJQUNOLE1BQU07QUFBQSxFQUNSO0FBQUEsRUFDQSxTQUFTO0FBQUEsSUFDUCxPQUFPO0FBQUEsTUFDTCxLQUFLLEtBQUssUUFBUSxrQ0FBVyxLQUFLO0FBQUEsSUFDcEM7QUFBQSxFQUNGO0FBQUEsRUFDQSxLQUFLO0FBQUEsSUFDSCxxQkFBcUI7QUFBQSxNQUNuQixNQUFNO0FBQUEsUUFDSixnQkFBZ0I7QUFBQSxNQUNsQjtBQUFBLElBQ0Y7QUFBQSxFQUNGO0FBQ0YsQ0FBQzsiLAogICJuYW1lcyI6IFtdCn0K
|
||||