更改UI之前

This commit is contained in:
zhouwentao 2024-03-04 22:27:52 +08:00
parent 6650a522cb
commit d579a5e812
228 changed files with 27648 additions and 8886 deletions

View File

@ -15,8 +15,6 @@
'background:#007aff ;padding: 1px; border-radius: 0 3px 3px 0; color: #fff; font-weight: bold;' 'background:#007aff ;padding: 1px; border-radius: 0 3px 3px 0; color: #fff; font-weight: bold;'
) )
// #endif // #endif
// 线使
// console.log('%c uni-appuni-app & uniCloud hr2013@dcloud.io', 'color: red');
console.log('App Launch'); console.log('App Launch');
// #ifdef APP-PLUS // #ifdef APP-PLUS
// AppuniCloudhttps://ext.dcloud.net.cn/plugin?id=4542 // AppuniCloudhttps://ext.dcloud.net.cn/plugin?id=4542
@ -60,6 +58,8 @@
@import '@/uni_modules/uni-scss/index.scss'; @import '@/uni_modules/uni-scss/index.scss';
/* #ifndef APP-PLUS-NVUE */ /* #ifndef APP-PLUS-NVUE */
/* uni.css - 通用组件、模板样式库可以当作一套ui库应用 */ /* uni.css - 通用组件、模板样式库可以当作一套ui库应用 */
@import './common/css/uni2.css';
@import './common/css/my-color.css';
@import './common/uni.css'; @import './common/uni.css';
@import '@/static/customicons.css'; @import '@/static/customicons.css';
/* H5 兼容 pc 所需 */ /* H5 兼容 pc 所需 */
@ -94,7 +94,7 @@
/* 以下样式用于 hello uni-app 演示所需 */ /* 以下样式用于 hello uni-app 演示所需 */
page { page {
background-color: #efeff4; background-color: #f4f5f7;//#efeff4;
height: 100%; height: 100%;
font-size: 28rpx; font-size: 28rpx;
/* line-height: 1.8; */ /* line-height: 1.8; */

View File

@ -1,16 +1,23 @@
export default { export default {
Major: { Major: {
recommendMajorPage: '/art/recommendMajor/page',//获取推荐专业列表 recommendMajorCount: '/art/recommendMajor/recommendMajorCount',//获取推荐专业总数量
recommendMajorPage: '/art/recommendMajor/mini/page',//获取推荐专业列表
recommendMajorList: '/art/recommendMajor/list',//获取学校的其他专业 recommendMajorList: '/art/recommendMajor/list',//获取学校的其他专业
schoolMajorDtoPage: '/yx/yxSchoolMajor/dtoPage',//获取学校开设专业分页数据 schoolMajorList: '/mini/major/schoolMajorList',//获取学校开设专业分页数据
schoolHistoryMajorEnrollList: '/yx/yxHistoryMajorEnroll/list',//获取学校的分数计划 schoolHistoryMajorEnrollList: '/yx/yxHistoryMajorEnroll/list',//获取学校的分数计划
schoolMajorList: '/yx/yxSchoolMajor/list',//获取school_major 数据
majorList: '/yx/yxMajor/list',//获取专业信息表-分页列表查询 majorList: '/yx/yxMajor/list',//获取专业信息表-分页列表查询
majorInfo: '/art/major/majorInfo',//获取专业详情 majorInfo: '/mini/major/majorInfo',//获取专业详情
miniMajorList: '/mini/major/miniMajorList',//专业列表
calculateInvestment: '/art/recommendMajor/calculateInvestment',//投档分测算
testCultural: '/art/recommendMajor/testCultural',//文化分测算
aiAuto: '/art/recommendMajor/mini/aiAuto',//智能填报
schoolMajorListByBatchAndMajorType: '/art/major/schoolMajorListByBatchAndMajorType',//智能填报页面获取专业列表
}, },
//用户类 //用户类
User: { User: {
exchangeVipCard: '/yx/yxVipCard/exchange',//兑换vip卡 exchangeVipCard: '/yx/yxVipCard/exchange',//兑换vip卡
wxLogin: '/wx/login',
userInfo: '/wx/userInfo',
}, },
System: { System: {
findPassWord: '/sys/findPassWord',//找回密码 findPassWord: '/sys/findPassWord',//找回密码
@ -21,25 +28,37 @@ export default {
scoreSave: "/yx/yxScore/save",//保存用户专业得分 scoreSave: "/yx/yxScore/save",//保存用户专业得分
getScore: "/yx/yxScore/getUserScoreInfo",//获取当前用户的高考分数信息 getScore: "/yx/yxScore/getUserScoreInfo",//获取当前用户的高考分数信息
conversionScoreBatch: "/yx/yxHistoryScoreBatch/conversionScoreBatch",//获取分数批次段 conversionScoreBatch: "/yx/yxHistoryScoreBatch/conversionScoreBatch",//获取分数批次段
historyScoreControlLineListGroupYear: '/yx/yxHistoryScoreControlLine/listGroupByYear',//省控线分页列表 根据year分组
historyScoreControlLineList: '/yx/yxHistoryScoreControlLine/list',//省控线分页列表 historyScoreControlLineList: '/yx/yxHistoryScoreControlLine/list',//省控线分页列表
scoreSegmentSearchByScore: '/yx/yxScoreSegment/searchByScore',//获取五分一段信息
}, },
//学校类 //学校类
School: { School: {
searchSchoolList: "/art/school/search",//搜索 学校列表 searchSchoolList: "/mini/school/search",//搜索 学校列表
schoolInfo: "/art/school/schoolInfo",//学校介绍详情 schoolInfo: "/mini/school/schoolInfo",//学校介绍详情
hotSchoolList: '/art/school/hotList',//热门院校 列表 hotSchoolList: '/art/school/hotList',//热门院校 列表
}, },
//志愿 //志愿
Volunteer: { Volunteer: {
addNew: '/art/volunteer/addNew',//新建志愿单
volunteerSave: "/art/volunteer/save",//保存用户的志愿 volunteerSave: "/art/volunteer/save",//保存用户的志愿
//volunteerList:'/art/volunteer/list', //volunteerList:'/art/volunteer/list',
volunteerInfo: '/art/volunteer/info',//当前使用中志愿单详情 volunteerInfo: '/art/volunteer/info',//当前使用中志愿单详情
volunteerPage: '/art/volunteer/page',//志愿单列表 volunteerPage: '/art/volunteer/page',//志愿单列表
volunteerDelete:'/art/volunteer/delete',//志愿单删除 volunteerDelete: '/art/volunteer/delete',//志愿单删除
artVolunteerDetail:'/art/volunteer/artVolunteerDetail',//根据id获取志愿单详情 artVolunteerDetail: '/art/volunteer/artVolunteerDetail',//根据id获取志愿单详情
volunteerRecordDel: '/art/volunteer/recordDel',//删除志愿明细(失效了) volunteerRecordDel: '/art/volunteer/recordDel',//删除志愿明细(失效了)
volunteerRecordDelete:'/art/volunteer/volunteerRecordDelete',//删除志愿明细 volunteerRecordDelete: '/art/volunteer/volunteerRecordDelete',//删除志愿明细
volunteerRecordReplace: '/art/volunteer/replaceVolunteer',//替换志愿明细 volunteerRecordReplace: '/art/volunteer/replaceVolunteer',//替换志愿明细
saveAs: '/art/volunteer/saveAs',//另存为
},
Pay: {
vip1: '/wx/pay/v1/jsApiPay',//支付类型1
},
VIP: {
cardActivation: '/mini/vip/card/activation',//卡密兑换
orderDetail: '/mini/vip/orderDetail',//获取订单信息
skuList: '/mini/vip/sku/all',//获取全部商品
} }
} }

42
common/ImagesConstant.js Normal file
View File

@ -0,0 +1,42 @@
export default {
defaultIcon:'http://files.yitisheng.vip/images/icons/swiper-dot.png',
major:'http://files.yitisheng.vip/images/icons/major.png',
skx:'http://files.yitisheng.vip/images/icons/skx.png',//省控线
cwh:'http://files.yitisheng.vip/images/icons/cwh.png',//测文化
cwc:'http://files.yitisheng.vip/images/icons/ccw.png',//查位次
std:'http://files.yitisheng.vip/images/icons/jsq.png',//算投档
yxjs: 'http://files.yitisheng.vip/images/icons/fwjs.png',//院校介绍
zlsj: 'http://files.yitisheng.vip/images/icons/zexian.png',//招录数据
lqxx: 'http://files.yitisheng.vip/images/icons/dbx.png',//录取信息
loveWhile:'http://files.yitisheng.vip/images/icons/love-while.png',//收藏按钮
loveDarkturquoise:'http://files.yitisheng.vip/images/icons/love-darkturquoise.png',//已搜藏按钮
triangle_bottom:'http://files.yitisheng.vip/images/icons/direction/triangle_bottom.png',//三角-下拉选
huiyuanquanyi:'http://files.yitisheng.vip/images/huiyuanquanyi.png',//会员权益
kfImage:'http://files.yitisheng.vip/images/kf.jpg',//客服二维码图片
shuqian:'/static/icons/24gl-bookmarkMinus.png',//书签-时风绿
edit:'http://files.yitisheng.vip/images/icons/%E7%BC%96%E8%BE%91.png',//编辑
cuti:{
edit:'http://files.yitisheng.vip/images/icons/cuti/edit.png',//编辑
delete:'http://files.yitisheng.vip/images/icons/cuti/delete.png',//删除
},
//方向指针
keyboard:{
arrowDown:'http://files.yitisheng.vip/images/icons/cuti/keyboard-arrow-down.png',//下方向
arrowDown2:'http://files.yitisheng.vip/images/icons/cuti/keyboard-arrow-down2.png',//下方向
arrowRightWhite:'http://files.yitisheng.vip/images/icons/cuti/keyboard-arrow-right-white.png',//右方向 白色
arrowRight: 'http://files.yitisheng.vip/images/icons/cuti/keyboard-arrow-right.png',//右方向
},
bao:{
jiaowentuo:'http://files.yitisheng.vip/images/icons/%E4%BF%9D/%E8%BE%83%E7%A8%B3%E5%A6%A5.png',//较稳妥
kebaodi:'http://files.yitisheng.vip/images/icons/%E4%BF%9D/%E5%8F%AF%E4%BF%9D%E5%BA%95.png',//可保底
nanluqu:'http://files.yitisheng.vip/images/icons/%E4%BF%9D/%E9%9A%BE%E5%BD%95%E5%8F%96.png',//难录取
kechongji:'http://files.yitisheng.vip/images/icons/%E4%BF%9D/%E5%8F%AF%E5%86%B2%E5%87%BB.png',//可冲击.png
}
}

File diff suppressed because it is too large Load Diff

86
common/css/gitPro.sh Normal file
View File

@ -0,0 +1,86 @@
#! /bin/sh
### BEGIN INIT INFO
# Description: 重启部署脚本
#执行教程:
#1.放到/server/research/gitPro.sh
#2.chmod -R 755 /server/research/gitPro.sh
#3. 直接执行 /server/research/gitPro.sh restart
### END INIT INFO
# 主目录 脚本所在目录
master_home_prefix=/server/research
# research 安装目录 代码根目录
research_prefix=/server/research/spider-flow-cloud
# maven 目录
maven_prefix=/usr/local/apache-maven-3.8.5
currentTimeStamp=''
jar_name=research-web.jar
# JVM参数
JVM_OPTS="-Duser.timezone=Asia/Shanghai"
#jar 运行日志打印
LOG_PATH=/server/research/nohup.out
#jar 运行pid进程
JAVAPID=/server/research/rjava.pid
function getTime() {
current=`date "+%Y-%m-%d %H:%M:%S"`
timeStamp=`date -d "$current" +%s`
#将current转换为时间戳精确到毫秒
currentTimeStamp=$((timeStamp*1000+`date "+%N"`/1000000))
return $currentTimeStamp
}
case "$1" in
start)
getTime
echo "start research service"
echo "====================================>>>>>>>>"
#进入项目目录
cd $research_prefix
#拉取代码
git pull
echo "拉取最新代码"
echo "====================================>>>>>>>>"
#maven 打包
$maven_prefix/bin/mvn package
echo "正在maven打包"
echo "====================================>>>>>>>>"
# 判断旧的jar包是否存在 #!
if [ -f "$master_home_prefix/$jar_name" ]; then
echo "备份上一次的jar包"
echo "====================================>>>>>>>>"
#存在,做备份
mv $master_home_prefix/$jar_name $master_home_prefix/$jar_name-$currentTimeStamp
fi
#移动jar包
echo "复制新的jar包至 $master_home_prefix/$jar_name"
echo "====================================>>>>>>>>"
mv $research_prefix/research-web/target/$jar_name $master_home_prefix/$jar_name
#启动jar包
echo "启动jar包"
echo "====================================>>>>>>>>"
nohup java -jar $JVM_OPTS $master_home_prefix/$jar_name > $LOG_PATH 2>&1 & echo $! > $JAVAPID &
#追踪打印日志
tail -f $LOG_PATH
;;
stop)
echo "stop research service"
echo "====================================>>>>>>>>"
echo "停止jar进程 `cat $JAVAPID`"
echo "====================================>>>>>>>>"
kill -9 `cat $JAVAPID`
echo "====================================>>>>>>>>"
echo "已停止"
;;
restart)
$0 stop
echo "====================================>>>>>>>>"
$0 start
echo "====================================>>>>>>>>"
;;
esac

67
common/css/my-color.css Normal file
View File

@ -0,0 +1,67 @@
/*颜色类型css*/
/*字体颜色 start*/
.darkturquoise {
color: darkturquoise !important;
}
.blue {
color: #4975fd !important;
}
.green {
color: #3e8e43 !important;
}
.red {
color: red !important;
}
.orange {
color: #f9ca1b !important;
}
.redOrange {
color: #f2891b !important;
}
.white {
color: white;
}
.black{
color: black;
}
.brown {
color: #6e3c14;
}
.lightSlateGray {
color: #778899;
}
.slateGray {
color: #708090;
}
.shiFengGreen {
color: #42c6c6;
}
/*字体颜色 end*/
/*背景 start*/
.background-white {
background-color: white;
}
.background-red2 {
background-color: #df4e44;
}
.background-f6f6f6{
background-color: #f6f6f6;
}
.background-fafafa{
background-color: #fafafa;
}
/*背景 end*/

380
common/css/uni2.css Normal file
View File

@ -0,0 +1,380 @@
.flex {
display: flex;
/*flex-direction: row;
flex-wrap: wrap;*/
}
.flexWrap{
display: flex;
flex-direction: row;
flex-wrap: wrap
}
/*自定义宽度*/
.flex-item-1 {
width: 10%;
}
.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-3 {
width: 30%;
}
.flex-item-33 {
width: 33%;
}
.flex-item-35 {
width: 35%;
}
.flex-item-4 {
width: 40%;
}
.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-9 {
width: 90%;
}
.flex-item-10 {
width: 100%;
}
.marginCenter {
margin: 0 auto;
}
/*内边距*/
.padding20 {
padding: 20rpx;
}
.padding30 {
padding: 30rpx;
}
.padding50 {
padding: 50rpx;
}
.padding10-30 {
padding: 10rpx 30rpx;
}
.padding20-10 {
padding: 20rpx 10rpx;
}
.padding20-30 {
padding: 20rpx 30rpx;
}
.padding50-30 {
padding: 50rpx 30rpx;
}
.padding50-100 {
padding: 50rpx 100rpx;
}
/*外边距*/
.margin20 {
margin: 20rpx;
}
.margin30 {
margin: 30rpx;
}
.margin-right-10 {
margin-right: 10rpx;
}
.margin-top-300 {
margin-top: 300rpx;
}
.marginTopBot10 {
margin: 10rpx 0;
}
.marginTopBot20 {
margin: 20rpx 0;
}
.marginTopBot30 {
margin: 30rpx 0;
}
.marginRight {
margin: 0 0 0 auto;
}
.float-right {
float: right;
}
.m-card {
background-color: white;
border-radius: 30rpx;
}
/*字体大小 Start*/
.font-size-mini-mini {
font-size: 23rpx !important;
}
.font-size-mini {
font-size: 25rpx !important;
}
.font-size-mini2 {
font-size: 28rpx !important;
}
.font-size-mini3 {
font-size: 30rpx !important;
}
.font-size-mini4 {
font-size: 32rpx !important;
}
.font-size-medium {
font-size: 40rpx !important;
}
.font-size-big {
font-size: 50rpx !important;
}
.font-size-big2 {
font-size: 70rpx !important;
}
/*字体大小 End*/
/*字体粗细 Start*/
.font-weight-500 {
font-weight: 500;
}
.font-weight-520 {
font-weight: 520;
}
.font-weight-550 {
font-weight: 550;
}
.font-weight-600 {
font-weight: 600;
}
.font-weight-b {
font-weight: bold;
}
/*字体粗细 End*/
/*标题*/
.z-h6 {
font-weight: 600;
font-size: 35rpx;
display: flex;
}
/*图片64rpx*/
.icon32 {
width: 32rpx;
height: 32rpx;
vertical-align: middle;
}
.icon50 {
width: 50rpx;
height: 50rpx;
vertical-align: middle;
}
.icon64 {
width: 64rpx;
height: 64rpx;
vertical-align: middle;
}
.icon100 {
width: 100rpx;
height: 100rpx;
vertical-align: middle;
}
.icon128 {
width: 128rpx;
height: 128rpx;
vertical-align: middle;
}
.not-border {
border: none !important;
}
/*通用上边框*/
.border-top {
border-top: 2rpx solid #f2f2f2;
}
.border-bottom {
border-bottom: 2rpx solid #f2f2f2;
}
.radius2 {
border-radius: 2rpx;
}
.radius5 {
border-radius: 5rpx;
}
.radius8 {
border-radius: 8rpx;
}
.radius60 {
border-radius: 60rpx;
}
.radius50s {
border-radius: 50%;
}
/*tabs 栏 start*/
.top-menu-view {
display: flex;
/*position: fixed;*/
z-index: 100;
/*top: 84rpx;*/
/* #ifdef H5 */
top: 84rpx;
/* #endif */
/* #ifndef H5 */
top: 0rpx;
/* #endif */
left: 0;
white-space: nowrap;
width: 100%;
background-color: white;
height: 86rpx;
line-height: 86rpx;
/*border-top: 1rpx solid #d8dbe6;*/
border-bottom: 1px solid #f5f5f5;
}
.top-menu-view .menu-topic-view {
display: inline-block;
white-space: nowrap;
height: 86rpx;
position: relative;
width: 50%;
text-align: center;
}
.top-menu-view .menu-topic-view .menu-topic-text {
font-size: 30rpx;
color: #303133;
padding: 10rpx 40rpx;
font-weight: 500;
}
.top-menu-view .menu-topic-view .menu-topic-bottom {
position: absolute;
bottom: 0;
width: 100%;
}
.top-menu-view .menu-topic-view .menu-topic-bottom-color {
width: 40rpx;
height: 4rpx;
}
.top-menu-view .menu-topic-view .menu-topic-act .menu-topic-bottom {
display: flex;
justify-content: center;
}
.top-menu-view .menu-topic-view .menu-topic-act .menu-topic-text {
color: #4975fd;
}
.top-menu-view .menu-topic-view .menu-topic-act .menu-topic-bottom-color {
background: #4975fd;
}
/*tabs 栏 end*/

View File

@ -1,17 +1,10 @@
export default { export default {
//接口 //接口
api: "http://127.0.0.1:8080/jeecg-boot/", // api: "http://127.0.0.1:8080/jeecg-boot/",//本地
/*api: function () { // api: "https://yitisheng.vip/jbt/",//生产环境
let version = wx.getAccountInfoSync().miniProgram.envVersion; api :"https://yitisheng.vip//jbttest/",//测试环境
switch (version) {
case "dev": //开发预览版 // 图片服务器
return "http://127.0.0.1:8080/jeecg-boot/" file:'http://files.yitisheng.vip',
break;
case 'prod': //正式版
return "http://127.0.0.1:8080/jeecg-boot/"
break;
default: //未知,默认调用正式版
return "http://127.0.0.1:8080/jeecg-boot/"
}
}*/
} }

View File

@ -1,10 +1,10 @@
/*网络请求*/ /*网络请求*/
import operate from '@/common/operate' import operate from '@/common/operate'
import {stringIsNotEmpty} from "@/common/util";
// vuex 的使用 详情参考官网 https://uniapp.dcloud.io/vue-vuex // vuex 的使用 详情参考官网 https://uniapp.dcloud.io/vue-vuex
import store from '../store/index.js'
let token= uni.getStorageSync('token')
token = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE3MDU4ODQ5MDYsInVzZXJuYW1lIjoid2FuZ3hpYW9taW5nIn0.jRSoihlbs08ONDIsrk2U3l3pw8ZQK2Z1Oc2-mQaf7pw'
export default class Request { export default class Request {
http(param) { http(param) {
// 请求参数 // 请求参数
var url = param.url, var url = param.url,
@ -13,17 +13,15 @@ export default class Request {
'X-Access-Token':param.token || "", 'X-Access-Token':param.token || "",
}, },
data = param.data || {}, data = param.data || {},
hideLoading = param.hideLoading || false; showLoading = param.showLoad || true;
//hideLoading = param.hideLoading || false;
/*token = param.token || "",*/ /*token = param.token || "",*/
//拼接完整请求地址 //拼接完整请求地址
var requestUrl = operate.api + url; var requestUrl = operate.api + url;
console.log(requestUrl) //console.log(requestUrl)
//拼接完整请求地址(根据环境切换) //拼接完整请求地址(根据环境切换)
// var requestUrl = operate.api() + url;
//请求方式:GET或POST(POST需配置 //请求方式:GET或POST(POST需配置
// header: {'content-type' : "application/x-www-form-urlencoded"},)
if (method) { if (method) {
method = method.toUpperCase(); //小写改为大写 method = method.toUpperCase(); //小写改为大写
if (method === "POST") { if (method === "POST") {
@ -34,7 +32,7 @@ export default class Request {
} }
//加载圈 //加载圈
if (!hideLoading) { if (showLoading) {
uni.showLoading({ uni.showLoading({
title: '加载中...' title: '加载中...'
}); });
@ -42,6 +40,7 @@ export default class Request {
// 返回promise // 返回promise
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
// 请求 // 请求
uni.request({ uni.request({
url: requestUrl, url: requestUrl,
@ -50,34 +49,56 @@ export default class Request {
header: header, header: header,
success: (res) => { success: (res) => {
console.log('执行http请求') console.log('执行http请求')
// 判断 请求api 格式是否正确 let jsons= JSON.stringify(res)
/*if (res.statusCode && res.statusCode != 200) { //如果 nginx启动了后端服务没有启动
uni.showToast({ if (jsons.includes('502 Bad Gateway')) {
title: "api错误" + res.errMsg, //跳转到维护页面
icon: 'none' wx.reLaunch({
}); url: '/pages/error/serviceDown',
})
return; return;
}*/ }
if (res.data && res.data.code === 401) {
//请登录
wx.reLaunch({
url: '/pages/zyb/login',
})
return;
}
// 将结果抛出 // 将结果抛出
resolve(res.data) resolve(res.data)
}, },
//请求失败 //请求失败
fail: (e) => { fail: (e) => {
uni.showToast({ console.log('e:')
title: "" + e.data.msg, console.log(e)
icon: 'none' if (e && e.errMsg === 'request:fail ') {
}); //服务未启动
//跳转到维护页面
wx.reLaunch({
url: '/pages/error/serviceDown',
})
return;
}else{
uni.showToast({
title: "" + e.data.msg,
icon: 'none'
});
}
resolve(e.data); resolve(e.data);
}, },
//请求完成 //请求完成
complete() { complete() {
//隐藏加载 //隐藏加载
if (!hideLoading) { if (showLoading) {
uni.hideLoading(); uni.hideLoading();
} }
resolve(); resolve();
return; return;
} },
}) })
}) })
} }
@ -85,14 +106,14 @@ export default class Request {
options.method='get'; options.method='get';
options.data=data; options.data=data;
options.url=url; options.url=url;
options.token=token; options.token=uni.getStorageSync('token');
return this.http(options); return this.http(options);
} }
get(url,data,headers={},options={}){ get(url,data,headers={},options={}){
options.method='get'; options.method='get';
options.data=data; options.data=data;
options.url=url; options.url=url;
options.token=token; options.token=uni.getStorageSync('token');
return this.http(options); return this.http(options);
} }
@ -100,7 +121,15 @@ export default class Request {
options.method='post'; options.method='post';
options.data=data; options.data=data;
options.url=url; options.url=url;
options.token=token; options.token=uni.getStorageSync('token');
return this.http(options);
}
post(url,data,showLoad,options={}){
options.method='post';
options.data=data;
options.url=url;
options.showLoad = showLoad;
options.token=uni.getStorageSync('token');
return this.http(options); return this.http(options);
} }
@ -108,7 +137,7 @@ export default class Request {
options.method='post'; options.method='post';
options.data=data; options.data=data;
options.url=url; options.url=url;
options.token=token; options.token=uni.getStorageSync('token');
return this.http(options); return this.http(options);
} }
@ -116,7 +145,7 @@ export default class Request {
options.method='delete'; options.method='delete';
options.data=data; options.data=data;
options.url=url; options.url=url;
options.token=token; options.token=uni.getStorageSync('token');
return this.http(options); return this.http(options);
} }
} }

View File

@ -1456,54 +1456,3 @@ radio-group label, checkbox-group label{
.left-win-active text{ .left-win-active text{
color: #007AFF !important; color: #007AFF !important;
} }
.frow .flex-item-1 {
width: 10%;
}
.frow .flex-item-2 {
width: 20%;
}
.frow .flex-item-25 {
width: 25%;
}
.frow .flex-item-3 {
width: 30%;
}
.frow .flex-item-33 {
width: 33%;
}
.frow .flex-item-35 {
width: 35%;
}
.frow .flex-item-4 {
width: 40%;
}
.frow .flex-item-5 {
width: 50%;
}
.frow .flex-item-6 {
width: 60%;
}
.frow .flex-item-65 {
width: 65%;
}
.frow .flex-item-7 {
width: 70%;
}
.frow .flex-item-8 {
width: 80%;
}
.frow .flex-item-9 {
width: 90%;
}

View File

@ -66,8 +66,60 @@ var dateUtils = {
} }
}; };
/**
* 判断 字符串 是否为空
* @param e
* @returns {boolean}
*/
function stringIsNotEmpty(e){
if (e === undefined || e === '') {
return false;
}
return true;
}
/**
* 判断数组 是覅为空
* @param array
* @returns {boolean} true:不为空,false:为空
*/
function arrayIsNotEmpty(array){
if (array === undefined || array.length === 0) {
return false;
}
return array.length !== 0;
}
/**
* 缩写年份
* @param year 完整的年份 //2023,2022,2021....
* @returns {string} //23,22,21....
*/
function yearAbridge(year){
if ('2020' === year) {
return '20'
}else if('2021' === year){
return '21'
}else if('2022' === year){
return '22'
}else if('2023' === year){
return '23'
}else if('2024' === year){
return '24'
}else if('2025' === year) {
return '25'
}else if('2026' === year){
return '26'
}
return '未知'
}
export { export {
formatTime, formatTime,
formatLocation, formatLocation,
dateUtils dateUtils,
arrayIsNotEmpty,
stringIsNotEmpty,
yearAbridge
} }

View File

@ -0,0 +1,138 @@
<template>
<view>
<view style="position: relative" v-if="isHide">
<view class="dt-content" :style="'-webkit-line-clamp:'+line">
<text class="content">
<slot>{{ dt ? dt : '' }}</slot>
</text>
</view>
<view class="button-show" @tap="isHide = false" v-if="enableButton&&lines>line">
<text style="color: blue">{{ expandText }}</text>
</view>
</view>
<view v-else>
<view>
<text class="content">
<slot>{{ dt ? dt : '' }}</slot>
</text>
</view>
<view class="fold-hint" v-if="foldHint">
<view @tap="isHide = true">
{{ foldHint }}
</view>
</view>
</view>
<view>
<text class="placeholder">
{{ placeholder }}
</text>
</view>
</view>
</template>
<script>
export default {
data() {
return {
//
isHide: true,
//
textHeight: 0,
//
lineHeight: 1,
//
placeholder: '占位'
};
},
props: {
//
line: {
type: [Number, String],
default: 1
},
//
dt: {
type: [String],
default: ''
},
enableButton: {
type: Boolean,
default: true
},
//
expandText: {
type: String,
default: "展开"
},
//
foldHint: {
type: String,
default: "收起"
}
},
watch:{
dt(){
let that = this
setTimeout(() => {
let query = uni.createSelectorQuery().in(that);
// html
query.select('.content').boundingClientRect(data => {
that.textHeight = data.height
}).exec();
}, 100)
}
},
mounted() {
if (this.enableButton) {
let query = uni.createSelectorQuery().in(this);
// html
query.select('.content').boundingClientRect(data => {
this.textHeight = data.height
}).exec();
//
query.select('.placeholder').boundingClientRect(data => {
this.lineHeight = data.height
}).exec();
}
// 使
this.placeholder = ''
},
computed: {
//
lines() {
if (!this.enableButton) {
return this.line
}
return Math.floor(this.textHeight > 0 && this.lineHeight > 0 ? this.textHeight / this.lineHeight : 0)
}
}
}
</script>
<style scoped>
.dt-content {
overflow: hidden;
text-overflow: clip;
display: -webkit-box;
-webkit-box-orient: vertical;
}
.button-show {
width: 70rpx;
position: absolute;
right: 0;
bottom: 0;
z-index: 0;
text-align: right;
background-image: linear-gradient(-180deg, rgba(233, 236, 239, 0) 50%, #FFF 80%);
padding-top: 2rem;
}
.fold-hint {
color: blue;
text-align: right
}
</style>

View File

@ -0,0 +1,75 @@
<script>
export default {
name: "my-checkvip",
props: {
// vip
vipFlag: {
//
type: Boolean,
//
default: false
},
},
data() {
return {
oneWitdh: 50
}
},
methods: {
gotoVip(){
uni.navigateTo({
url: '/pages/zyb/vip/index'
})
}
}
}
</script>
<template>
<view style="padding: 30rpx 0;margin-bottom: 10rpx" v-if="!vipFlag">
<view class="background" style="">
<view class="flex marginTopBot10">
<text class="font-weight-b font-size-medium marginCenter">您好本功能是VIP功能</text>
</view>
<view class="flex marginTopBot10">
<text class="font-size-mini marginCenter">您如果享无限次使用完整版功能请升级为VIP</text>
</view>
<view class="flex marginTopBot10">
<view class="vipBtn marginCenter" @click="gotoVip">
查看VIP特权及优惠方案
</view>
</view>
</view>
<view class="tips">
限时优惠
</view>
</view>
</template>
<style scoped lang="scss">
.background{
background-color:#f7ebd1;
padding:40rpx 30rpx;
border-radius: 30rpx;
}
.vipBtn{
padding: 0 100rpx;
color: white;
font-weight: 550;
font-size: 35rpx;
line-height: 100rpx;
background: linear-gradient(to right,#deb06b,#cf9b50,#daae6e);
border-radius: 15rpx;
}
.tips{
padding: 5rpx 20rpx;
width: 120rpx;
color:#e7c974;
border-radius: 20rpx 0 20rpx 0;
background: linear-gradient(to right,#392306,#61431b);
position: relative;
bottom: 300rpx;
}
</style>

View File

@ -0,0 +1,70 @@
<script>
export default {
name: "my-menu",
props: {
//
tab: {
//
type: String,
//
default: ''
},
//
tabList: {
//
type: Array,
//
default: []
},
color:{
type:String,
default:'#4975fd'
}
},
data() {
return {
oneWitdh: 50
}
},
methods: {
getWidth() {
let length = this.$parent.tabList.length
this.oneWitdh = parseFloat(100) / parseFloat(length)
},
switchTab(e) {
this.$parent.tab = e
}
}
}
</script>
<template>
<view class="flex bview" style="text-align: center" v-if="tabList && tabList.length>0">
<view class="topTitle" :style="{'width':this.oneWitdh+'%'}" :class="tab===item.id?'topTitle-active':''"
v-for="(item,i) in tabList" :key="i" @click="switchTab(item.id)">
<text>{{ item.name }}</text>
<view class="flex" :class="tab===item.id?'bottom-active':''"></view>
</view>
</view>
</template>
<style scoped lang="scss">
.topTitle {
font-size: 35rpx;
transition: 0.3s;
}
/*选择的tab*/
.topTitle-active {
font-size: 40rpx;
color: #4975fd;
}
.bottom-active {
margin: 0 auto;
width: 60rpx;
border-bottom: 6rpx solid #4975fd;
}
</style>

View File

@ -0,0 +1,34 @@
<!--回到顶部按钮
-->
<script>
export default {
name: "my-top-button",
data(){
return{
topFlag:false
}
},
methods: {
top() { //
uni.pageScrollTo({
scrollTop: 0,
duration: 300
});
},
},
onPageScroll(e) { //
//600//600
this.topFlag = e.scrollTop > 600;
}
}
</script>
<template>
<view class="top" style="transition: 0.3s;" :style="{'display':(topFlag===true? 'block':'none')}">
<uni-icons class="topc" type="arrowthinup" size="50" @click="top"></uni-icons>
</view>
</template>
<style scoped lang="scss">
</style>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,86 @@
<template>
<canvas :canvas-id="'progress'+id" :style="{width: sizeNum + 'px', height: sizeNum + 'px'}"></canvas>
<slot></slot>
</template>
<script>
export default {
props: {
id:{
type: String,
},
progressColor: { //
type: String,
default: '#409EFF'
},
bgColor: { //
type: String,
default: '#F9FAFB'
},
size: { //
type: Number,
default: 100
},
strokeWidth: { //
type: Number,
default: 20
},
percent: { //
type: Number,
default: 0
}
},
data(){
return{
sizeNum:this.size, //
strokeWidthNum:this.strokeWidth, //
}
},
mounted() {
this.drawProgress()
},
methods: {
drawProgress() {
//
const screenWidth = uni.getSystemInfoSync().screenWidth;
this.sizeNum=(this.size/750)*screenWidth
this.strokeWidthNum=(this.strokeWidth/750)*screenWidth
const ctx = uni.createCanvasContext(`progress${this.id}`, this)
const centerX = this.sizeNum / 2
const centerY = this.sizeNum / 2
const radius = (this.sizeNum - this.strokeWidthNum) / 2
const startAngle = -Math.PI / 2
const endAngle = startAngle + (this.percent / 100) * 2 * Math.PI
//
ctx.beginPath()
ctx.arc(centerX, centerY, radius, 0, 2 * Math.PI)
ctx.setFillStyle('#FFFFFF')
ctx.fill()
//
ctx.beginPath()
ctx.arc(centerX, centerY, radius, 0, 2 * Math.PI)
ctx.setLineWidth(this.strokeWidthNum)
ctx.setStrokeStyle(this.bgColor)
ctx.setLineCap('round')
ctx.stroke()
//
ctx.beginPath()
ctx.arc(centerX, centerY, radius, startAngle, endAngle)
ctx.setLineWidth(this.strokeWidthNum)
ctx.setStrokeStyle(this.progressColor)
ctx.setLineCap('round')
ctx.stroke()
ctx.draw(true)
}
},
watch: {
percent() {
this.drawProgress()
}
}
}
</script>

View File

@ -1,7 +1,7 @@
{ {
"name" : "mini-test", "name" : "艺体志愿宝小程序",
"appid" : "__UNI__7850BDB", "appid" : "__UNI__7850BDB",
"description" : "uni-app 框架示例一套代码同时发行到iOS、Android、H5、小程序等多个平台请使用手机扫码快速体验 uni-app 的强大功能", "description" : "艺体志愿宝小程序",
"versionName" : "1.0.0", "versionName" : "1.0.0",
"versionCode" : "100", "versionCode" : "100",
"transformPx" : false, "transformPx" : false,
@ -96,10 +96,13 @@
"versionCode" : 100 "versionCode" : 100
}, },
"mp-weixin" : { "mp-weixin" : {
"appid" : "wxdaa0c852bdfa9d24", "appid" : "wxb9cf28f42ffa35e5",
"setting" : { "setting" : {
"urlCheck" : false "urlCheck" : false,
"minified" : true,
"postcss" : false
}, },
"lazyCodeLoading" : "requiredComponents", //
"usingComponents" : true, "usingComponents" : true,
"permission" : { "permission" : {
"scope.userLocation" : { "scope.userLocation" : {

View File

@ -9,20 +9,19 @@
}, },
"repository": "https://github.com/dcloudio/hello-uniapp.git", "repository": "https://github.com/dcloudio/hello-uniapp.git",
"keywords": [ "keywords": [
"hello-uniapp", "hello-uniapp",
"uni-app", "uni-app",
"uni-ui", "uni-ui",
"示例工程" "示例工程"
], ],
"author": "", "author": "",
"license": "MIT", "license": "MIT",
"bugs": { "bugs": {
"url": "https://github.com/dcloudio/hello-uniapp/issues" "url": "https://github.com/dcloudio/hello-uniapp/issues"
}, },
"homepage": "https://github.com/dcloudio/hello-uniapp#readme", "homepage": "https://github.com/dcloudio/hello-uniapp#readme",
"dependencies": {}, "dcloudext": {
"dcloudext": { "sale": {
"sale": {
"regular": { "regular": {
"price": "0.00" "price": "0.00"
}, },
@ -38,8 +37,8 @@
"data": "无", "data": "无",
"permissions": "无" "permissions": "无"
}, },
"npmurl": "", "npmurl": "",
"type": "uniapp-template-project" "type": "uniapp-template-project"
}, },
"uni_modules": { "uni_modules": {
"dependencies": [], "dependencies": [],
@ -81,15 +80,14 @@
"快应用": { "快应用": {
"华为": "y", "华为": "y",
"联盟": "y" "联盟": "y"
}, },
"Vue": { "Vue": {
"vue2": "y", "vue2": "y",
"vue3": "y" "vue3": "y"
} }
} }
} }
}, },
"uni-app": { "uni-app": {
"scripts": { "scripts": {
"mp-dingtalk": { "mp-dingtalk": {

1995
pages.json

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,63 @@
<script>
export default {
name: "text-show-hide",
data() {
return {
//
article: {
title: '这是一篇测试文章',
author: '小明',
content: '这是一篇测试文章用于演示如何在uniapp中显示文章详情页面。这是一篇测试文章用于演示如何在uniapp中显示文章详情页面。这是一篇测试文章用于演示如何在uniapp中显示文章详情页面。这是一篇测试文章用于演示如何在uniapp中显示文章详情页面。这是一篇测试文章用于演示如何在uniapp中显示文章详情页面。这是一篇测试文章用于演示如何在uniapp中显示文章详情页面。这是一篇测试文章用于演示如何在uniapp中显示文章详情页面。这是一篇测试文章用于演示如何在uniapp中显示文章详情页面。这是一篇测试文章用于演示如何在uniapp中显示文章详情页面。这是一篇测试文章用于演示如何在uniapp中显示文章详情页面。这是一篇测试文章用于演示如何在uniapp中显示文章详情页面。这是一篇测试文章用于演示如何在uniapp中显示文章详情页面。这是一篇测试文章用于演示如何在uniapp中显示文章详情页面。',
}
};
},
methods: {
change(e) {
console.log('点击展开收起:' + e)
}
}
}
</script>
<template>
<view class="container">
<!-- 文章标题 -->
<view class="title">{{ article.title }}</view>
<!-- 文章作者 -->
<view class="author">作者{{ article.author }}</view>
<!-- 文章内容 -->
<!-- <liu-show-hide showText="继续阅读" hideText="收起" @change="change">
<view class="content">{{ article.content }}</view>
</liu-show-hide>-->
</view>
</template>
<style lang="scss" scoped>
.container {
width: 100%;
height: 100vh;
background-color: #f6f6f6;
}
.title {
font-size: 24px;
margin-bottom: 10px;
margin: 32rpx;
}
.author {
color: #888;
margin: 32rpx;
margin-bottom: 20px;
}
.content {
line-height: 1.5;
font-size: 16px;
text-indent: 2em;
white-space: pre-wrap;
padding: 0 32rpx;
}
</style>

View File

@ -0,0 +1,34 @@
<template>
<view>
<view>
<text style="font-size: 25px;color: #333;">
系统维护中请稍后重试~
</text>
</view>
<view>
<text style="font-size: 18px;color: #999;">
{{errMsg}}
</text>
</view>
</view>
</template>
<script>
export default {
data() {
return {
}
},
onLoad(query) {
this.errMsg = query.errMsg || ''
},
methods: {
}
}
</script>
<style>
</style>

View File

@ -183,7 +183,7 @@
</template> </template>
<script> <script>
import uCharts from '../../../components/u-charts/u-charts.js'; import uCharts from 'http://files.yitisheng.vip/js/u-charts/u-charts.js';
var _self; var _self;
var canvasObj = {}; var canvasObj = {};

File diff suppressed because it is too large Load Diff

View File

@ -2,6 +2,7 @@
import StaticConstant from "@/common/StaticConstant"; import StaticConstant from "@/common/StaticConstant";
import ApiConstant from "@/common/ApiConstant"; import ApiConstant from "@/common/ApiConstant";
import Request from '@/common/request' import Request from '@/common/request'
import ImagesConstant from "@/common/ImagesConstant";
let request = new Request() let request = new Request()
// //
@ -10,6 +11,11 @@ const MAX_CACHE_DATA = 100;
const MAX_CACHE_PAGE = 3; const MAX_CACHE_PAGE = 3;
export default { export default {
name: "我的志愿明细", name: "我的志愿明细",
computed: {
ImagesConstant() {
return ImagesConstant
}
},
data() { data() {
return { return {
volunteerId: '',//id volunteerId: '',//id
@ -19,17 +25,15 @@ export default {
address: '', address: '',
schoolName: '', schoolName: '',
paneName: '全部', paneName: '全部',
batch: '提前批', batch: '',
}, },
scoreInfo: {},// scoreInfo: {},//
tabIndex: 0, tabIndex: 0,//
scrollInto: "", scrollInto: "",
newsList: [], newsList: [],
cacheTab: [], cacheTab: [],
tabBars: [{name: '本科提前批', id: '提前批'}, {name: '本科A段', id: '本科A段'}, { tabBars: [{name: '本科提前批', id: '提前批'}, {name: '本科A段', id: '本科A段'}, {name: '本科B段', id: '本科B段'}, {name: '高职高专', id: '高职高专'}],
name: '本科B段', tabBars1: [{name: '本科提前批', id: '提前批'}, {name: '本科A段', id: '本科A段'}, {name: '本科B段', id: '本科B段'}, {name: '高职高专', id: '高职高专'}],
id: '本科B段'
}, {name: '高职高专', id: '高职高专'}],
filledVolunteer: { filledVolunteer: {
volunteerEarlyAdmissionList: [],// volunteerEarlyAdmissionList: [],//
volunteerUndergraduateAList: [],//A volunteerUndergraduateAList: [],//A
@ -75,18 +79,20 @@ export default {
// tabs // tabs
console.log(e) console.log(e)
let index = e.target.dataset.current || e.currentTarget.dataset.current; let index = e.target.dataset.current || e.currentTarget.dataset.current;
//
if (index === this.tabIndex) {
return;
}
this.selectForm.batch = this.tabBars[index].id this.selectForm.batch = this.tabBars[index].id
// //
this.switchTab(index); this.switchTab(index);
}, },
switchTab(index) { switchTab(index) {
if (this.newsList[index].data.length === 0) { if (this.newsList[index].data.length === 0) {
//this.getList(index);
} }
if (this.tabIndex === index) { if (this.tabIndex === index) {
return; return;
} }
// tabId // tabId
if (this.newsList[this.tabIndex].data.length > MAX_CACHE_DATA) { if (this.newsList[this.tabIndex].data.length > MAX_CACHE_DATA) {
let isExist = this.cacheTab.indexOf(this.tabIndex); let isExist = this.cacheTab.indexOf(this.tabIndex);
@ -113,8 +119,6 @@ export default {
/*获取已填报志愿数据*/ /*获取已填报志愿数据*/
getFilledVolunteerList() { getFilledVolunteerList() {
request.get(ApiConstant.Volunteer.artVolunteerDetail, {id: this.volunteerId}).then(res => { request.get(ApiConstant.Volunteer.artVolunteerDetail, {id: this.volunteerId}).then(res => {
console.log('返回值')
console.log(res)
if (res.success) { if (res.success) {
let dataResult = res.result let dataResult = res.result
// //
@ -123,124 +127,159 @@ export default {
this.volunteerId = dataResult.id this.volunteerId = dataResult.id
this.volunteerName = dataResult.volunteerName this.volunteerName = dataResult.volunteerName
this.scoreInfo = dataResult.userScoreInfo this.scoreInfo = dataResult.userScoreInfo
if (this.scoreInfo.batch) {
this.selectForm.batch = this.scoreInfo.batch
//
if (this.scoreInfo.batch === '本科A段') {
this.tabBars = [{name: '本科提前批', id: '提前批'}, {name: '本科A段', id: '本科A段'}, {
name: '本科B段',
id: '本科B段'
}, {name: '高职高专', id: '高职高专'}]
} else if (this.scoreInfo.batch === '本科B段') {
this.tabBars = [{name: '本科B段', id: '本科B段'}, {name: '高职高专', id: '高职高专'}]
} else if (this.scoreInfo.batch === '本科') {
this.tabBars = [{name: '本科', id: '本科'}, {name: '高职高专', id: '高职高专'}]
} else {
this.tabBars = [{name: '高职高专', id: '高职高专'}]
}
/*调整默认选中的导航栏*/
if (this.scoreInfo.batch === '本科A段') {
this.selectForm.batch='提前批'
this.tabIndex = 0;
}else{
for (let i = 0; i < this.tabBars.length; i++) {
//A
if(this.tabBars[i].id === this.selectForm.batch){
//
this.tabIndex = i;
break;
}
}
}
}
let key = '' let key = ''
let volunteer = {indexStr: 0} let volunteer = {indexStr: 0}
//================================== start if(true){
let volunteerRecordEarlyAdmissionList = dataResult.volunteerRecordEarlyAdmissionList; //================================== start
this.filledVolunteer.volunteerRecordEarlyAdmissionNum = volunteerRecordEarlyAdmissionList.length; let volunteerRecordEarlyAdmissionList = dataResult.volunteerRecordEarlyAdmissionList;
for (let i = 0; i < volunteerRecordEarlyAdmissionList.length; i++) { this.filledVolunteer.volunteerRecordEarlyAdmissionNum = volunteerRecordEarlyAdmissionList.length;
key = volunteerRecordEarlyAdmissionList[i].majorCode + volunteerRecordEarlyAdmissionList[i].schoolCode
volunteer = volunteerRecordEarlyAdmissionList[i]
volunteerMap.set(key, volunteerRecordEarlyAdmissionList[i])
}
let indexs = 1;
let volunteerRecordEarlyAdmissionList2 = [];
while (indexs <= 2) {
let record = {
actives: false,
indexs: indexs
}
for (let i = 0; i < volunteerRecordEarlyAdmissionList.length; i++) { for (let i = 0; i < volunteerRecordEarlyAdmissionList.length; i++) {
if (volunteerRecordEarlyAdmissionList[i].indexs === indexs) { key = volunteerRecordEarlyAdmissionList[i].majorCode + volunteerRecordEarlyAdmissionList[i].schoolCode
record = volunteerRecordEarlyAdmissionList[i] volunteer = volunteerRecordEarlyAdmissionList[i]
record.actives = true volunteerMap.set(key, volunteerRecordEarlyAdmissionList[i])
}
} }
volunteerRecordEarlyAdmissionList2.push(record) let indexs = 1;
indexs++; let volunteerRecordEarlyAdmissionList2 = [];
} while (indexs <= 2) {
this.filledVolunteer.volunteerEarlyAdmissionList = volunteerRecordEarlyAdmissionList2 let record = {
//================================== end actives: false,
//==================================A start indexs: indexs
let volunteerUndergraduateAList = dataResult.volunteerRecordUndergraduateAList; }
this.filledVolunteer.volunteerUndergraduateANum = volunteerUndergraduateAList.length; for (let i = 0; i < volunteerRecordEarlyAdmissionList.length; i++) {
for (let i = 0; i < volunteerUndergraduateAList.length; i++) { if (volunteerRecordEarlyAdmissionList[i].indexs === indexs) {
key = volunteerUndergraduateAList[i].majorCode + volunteerUndergraduateAList[i].schoolCode record = volunteerRecordEarlyAdmissionList[i]
volunteerMap.set(key, volunteerUndergraduateAList[i]) record.actives = true
} }
indexs = 1; }
let volunteerRecordUndergraduateAList2 = []; volunteerRecordEarlyAdmissionList2.push(record)
while (indexs <= 12) { indexs++;
let record = {actives: false, indexs: indexs} }
this.filledVolunteer.volunteerEarlyAdmissionList = volunteerRecordEarlyAdmissionList2
//================================== end
//==================================A start
let volunteerUndergraduateAList = dataResult.volunteerRecordUndergraduateAList;
this.filledVolunteer.volunteerUndergraduateANum = volunteerUndergraduateAList.length;
for (let i = 0; i < volunteerUndergraduateAList.length; i++) { for (let i = 0; i < volunteerUndergraduateAList.length; i++) {
if (volunteerUndergraduateAList[i].indexs === indexs) { key = volunteerUndergraduateAList[i].majorCode + volunteerUndergraduateAList[i].schoolCode
record = volunteerUndergraduateAList[i] volunteerMap.set(key, volunteerUndergraduateAList[i])
record.actives = true
}
} }
volunteerRecordUndergraduateAList2.push(record) indexs = 1;
indexs++; let volunteerRecordUndergraduateAList2 = [];
} while (indexs <= 12) {
this.filledVolunteer.volunteerUndergraduateAList = volunteerRecordUndergraduateAList2 let record = {actives: false, indexs: indexs}
//==================================A end for (let i = 0; i < volunteerUndergraduateAList.length; i++) {
//==================================B start if (volunteerUndergraduateAList[i].indexs === indexs) {
let volunteerUndergraduateBList = dataResult.volunteerRecordUndergraduateBList; record = volunteerUndergraduateAList[i]
this.filledVolunteer.volunteerUndergraduateBNum = volunteerUndergraduateBList.length; record.actives = true
for (let i = 0; i < volunteerUndergraduateBList.length; i++) { }
key = volunteerUndergraduateBList[i].majorCode + volunteerUndergraduateBList[i].schoolCode }
volunteerMap.set(key, volunteerUndergraduateBList[i]) volunteerRecordUndergraduateAList2.push(record)
} indexs++;
indexs = 1; }
let volunteerUndergraduateBList2 = []; this.filledVolunteer.volunteerUndergraduateAList = volunteerRecordUndergraduateAList2
while (indexs <= 12) { //==================================A end
let record = {actives: false, indexs: indexs} //==================================B start
let volunteerUndergraduateBList = dataResult.volunteerRecordUndergraduateBList;
this.filledVolunteer.volunteerUndergraduateBNum = volunteerUndergraduateBList.length;
for (let i = 0; i < volunteerUndergraduateBList.length; i++) { for (let i = 0; i < volunteerUndergraduateBList.length; i++) {
if (volunteerUndergraduateBList[i].indexs === indexs) { key = volunteerUndergraduateBList[i].majorCode + volunteerUndergraduateBList[i].schoolCode
record = volunteerUndergraduateBList[i] volunteerMap.set(key, volunteerUndergraduateBList[i])
record.actives = true
}
} }
volunteerUndergraduateBList2.push(record) indexs = 1;
indexs++; let volunteerUndergraduateBList2 = [];
} while (indexs <= 12) {
this.filledVolunteer.volunteerUndergraduateBList = volunteerUndergraduateBList2 let record = {actives: false, indexs: indexs}
//================================== start for (let i = 0; i < volunteerUndergraduateBList.length; i++) {
let volunteerUndergraduateList = dataResult.volunteerRecordUndergraduateList; if (volunteerUndergraduateBList[i].indexs === indexs) {
this.filledVolunteer.volunteerUndergraduateNum = volunteerUndergraduateList.length; record = volunteerUndergraduateBList[i]
for (let i = 0; i < volunteerUndergraduateList.length; i++) { record.actives = true
key = volunteerUndergraduateList[i].majorCode + volunteerUndergraduateList[i].schoolCode }
volunteerMap.set(key, volunteerUndergraduateList[i]) }
} volunteerUndergraduateBList2.push(record)
indexs = 1; indexs++;
let volunteerUndergraduateList2 = []; }
while (indexs <= 12) { this.filledVolunteer.volunteerUndergraduateBList = volunteerUndergraduateBList2
let record = {actives: false, indexs: indexs} //================================== start
let volunteerUndergraduateList = dataResult.volunteerRecordUndergraduateList;
this.filledVolunteer.volunteerUndergraduateNum = volunteerUndergraduateList.length;
console.log('//==================================本科 start')
console.log(volunteerUndergraduateList)
for (let i = 0; i < volunteerUndergraduateList.length; i++) { for (let i = 0; i < volunteerUndergraduateList.length; i++) {
if (volunteerUndergraduateList[i].indexs === indexs) { key = volunteerUndergraduateList[i].majorCode + volunteerUndergraduateList[i].schoolCode
record = volunteerUndergraduateList[i] volunteerMap.set(key, volunteerUndergraduateList[i])
record.actives = true }
indexs = 1;
let volunteerUndergraduateList2 = [];
while (indexs <= 12) {
let record = {actives: false, indexs: indexs}
for (let i = 0; i < volunteerUndergraduateList.length; i++) {
if (volunteerUndergraduateList[i].indexs === indexs) {
record = volunteerUndergraduateList[i]
record.actives = true
}
} }
volunteerUndergraduateList2.push(record)
indexs++;
} }
volunteerUndergraduateList2.push(record) this.filledVolunteer.volunteerUndergraduateList = volunteerUndergraduateList2
indexs++; //================================== end
} //================================== start
this.filledVolunteer.volunteerUndergraduateList = volunteerUndergraduateList2 let volunteerJuniorCollegeList = dataResult.volunteerRecordJuniorCollegeList;
//================================== end this.filledVolunteer.volunteerJuniorCollegeNum = volunteerJuniorCollegeList.length;
//================================== start
let volunteerJuniorCollegeList = dataResult.volunteerRecordJuniorCollegeList;
this.filledVolunteer.volunteerJuniorCollegeNum = volunteerJuniorCollegeList.length;
for (let i = 0; i < volunteerJuniorCollegeList.length; i++) {
key = volunteerJuniorCollegeList[i].majorCode + volunteerJuniorCollegeList[i].schoolCode
volunteerMap.set(key, volunteerJuniorCollegeList[i])
}
indexs = 1;
let volunteerJuniorCollegeList2 = [];
while (indexs <= 12) {
let record = {
actives: false,
indexs: indexs
}
for (let i = 0; i < volunteerJuniorCollegeList.length; i++) { for (let i = 0; i < volunteerJuniorCollegeList.length; i++) {
if (volunteerJuniorCollegeList[i].indexs === indexs) { key = volunteerJuniorCollegeList[i].majorCode + volunteerJuniorCollegeList[i].schoolCode
record = volunteerJuniorCollegeList[i] volunteerMap.set(key, volunteerJuniorCollegeList[i])
record.actives = true
}
} }
volunteerJuniorCollegeList2.push(record) indexs = 1;
indexs++; let volunteerJuniorCollegeList2 = [];
while (indexs <= 12) {
let record = {
actives: false,
indexs: indexs
}
for (let i = 0; i < volunteerJuniorCollegeList.length; i++) {
if (volunteerJuniorCollegeList[i].indexs === indexs) {
record = volunteerJuniorCollegeList[i]
record.actives = true
}
}
volunteerJuniorCollegeList2.push(record)
indexs++;
}
this.filledVolunteer.volunteerJuniorCollegeList = volunteerJuniorCollegeList2
//================================== end
} }
this.filledVolunteer.volunteerJuniorCollegeList = volunteerJuniorCollegeList2
//================================== end
} else { } else {
this.filledVolunteer.volunteerEarlyAdmissionList = [] this.filledVolunteer.volunteerEarlyAdmissionList = []
this.filledVolunteer.volunteerUndergraduateAList = [] this.filledVolunteer.volunteerUndergraduateAList = []
@ -323,9 +362,9 @@ export default {
<view class="h1"> <view class="h1">
<view class="uni-flex uni-row" style="-webkit-justify-content: space-between;justify-content: space-between;"> <view class="uni-flex uni-row" style="-webkit-justify-content: space-between;justify-content: space-between;">
<view class="text"> <view class="text">
<text style="font-size: 40rpx;line-height: 40rpx">2024</text> <text style="font-size: 40rpx;line-height: 40rpx">2023</text>
</view> </view>
<view class="text">&nbsp;&nbsp;&nbsp;&nbsp;</view> <view class="text"><text style="color: #F8880E"></text>&nbsp;&nbsp;<text style="color: #4975fd"></text>&nbsp;&nbsp;<text style="color: #3e8e43"></text></view>
</view> </view>
<view class="uni-flex uni-row"> <view class="uni-flex uni-row">
<view class="text" style="-webkit-flex: 1;flex: 1;color:#bb440e;font-weight: 600"> <view class="text" style="-webkit-flex: 1;flex: 1;color:#bb440e;font-weight: 600">
@ -337,7 +376,7 @@ export default {
<view class="text"> <view class="text">
<text>表名:{{ volunteerName }}</text> <text>表名:{{ volunteerName }}</text>
</view> </view>
<view class="text">填报建议</view> <!-- <view class="text">填报建议</view>-->
</view> </view>
<view class="uni-flex uni-row" style="-webkit-justify-content: space-between;justify-content: space-between;"> <view class="uni-flex uni-row" style="-webkit-justify-content: space-between;justify-content: space-between;">
<view class="text"> <view class="text">
@ -373,20 +412,20 @@ export default {
this.selectForm.batch==='本科A段'?filledVolunteer.volunteerUndergraduateAList: this.selectForm.batch==='本科A段'?filledVolunteer.volunteerUndergraduateAList:
this.selectForm.batch==='本科B段'?filledVolunteer.volunteerUndergraduateBList: this.selectForm.batch==='本科B段'?filledVolunteer.volunteerUndergraduateBList:
this.selectForm.batch==='本科'?filledVolunteer.volunteerUndergraduateList:filledVolunteer.volunteerJuniorCollegeList" :key="item.indexs"> this.selectForm.batch==='本科'?filledVolunteer.volunteerUndergraduateList:filledVolunteer.volunteerJuniorCollegeList" :key="item.indexs">
<view class="uni-flex frow" v-if="item.majorCode"> <view class="uni-flex flex" v-if="item.majorCode">
<view class="flex-item-9 item_left"> <view class="flex-item-9 item_left">
<!--学校信息--> <!--学校信息-->
<view class="schoolInfo"> <view class="schoolInfo">
<view class="uni-flex frow"> <view class="uni-flex flex">
<view class="flex-item-1 indexs"> <view class="flex-item-1 indexs">
<text>{{item.indexs}}</text> <text>{{item.indexs}}</text>
</view> </view>
<view class="flex-item-7"> <view class="flex-item-7">
<view class="uni-flex frow"> <view class="uni-flex flex" @click="goto('/pages/zyb/school/detail?schoolCode='+item.schoolCode)">
<text style="margin-right: 15rpx">[{{item.institutionCode}}]</text> <text style="margin-right: 15rpx">[{{item.schoolCode}}]</text>
<text>{{item.schoolName}}</text> <text>{{item.schoolName}}</text>
</view> </view>
<view class="uni-flex frow tags"> <view class="uni-flex flex tags">
<text class="tag">{{item.province}}</text> <text class="tag">{{item.province}}</text>
<text class="tag">{{item.propertyName}}</text> <text class="tag">{{item.propertyName}}</text>
</view> </view>
@ -397,25 +436,25 @@ export default {
</view> </view>
<!--专业信息--> <!--专业信息-->
<view class="majorInfo"> <view class="majorInfo">
<view class="uni-flex frow"> <view class="uni-flex flex">
<view class="flex-item-2"> <view class="flex-item-2">
<text v-if="item.enrollProbability" class="enrollProbability">{{item.enrollProbability}}%</text> <text v-if="item.enrollProbability" class="enrollProbability">{{item.enrollProbability}}%</text>
</view> </view>
<view class="flex-item-7"> <view class="flex-item-7">
<view class="uni-flex frow"> <view class="uni-flex flex" @click="goto('/pages/zyb/major/detail?majorCode='+item.majorCode)">
<text style="margin-right: 15rpx" v-if="item.enrollmentCode">[{{item.enrollmentCode}}]</text> <text style="margin-right: 15rpx" v-if="item.enrollmentCode">[{{item.enrollmentCode}}]</text>
<text v-if="item.majorName">{{item.majorName}}{{item.majorDetail}}</text> <text v-if="item.majorName">{{item.majorName}}{{item.majorDetail}}</text>
</view> </view>
<view class="uni-flex frow"> <view class="uni-flex flex">
<text class="low-text" v-if="item.studyCost">学费:{{item.studyCost}}</text> <text class="low-text" v-if="item.studyCost">学费:{{item.studyCost}}</text>
<text class="low-text" v-if="item.jhs">招生{{item.jhs}}</text> <text class="low-text" v-if="item.jhs">招生{{item.jhs}}</text>
</view> </view>
<view class="uni-flex frow"> <view class="uni-flex flex">
<text class="low-text" v-if="item.historyMajorEnrollMap['2023']">2023年录取最低分{{item.historyMajorEnrollMap['2023'].admissionLine}}</text> <text class="low-text" v-if="item.historyMajorEnrollMap['2023']">2023年录取最低分{{item.historyMajorEnrollMap['2023'].admissionLine}}</text>
<text class="low-text" v-else-if="item.historyMajorEnrollMap['2022']">2022年录取最低分{{item.historyMajorEnrollMap['2022'].admissionLine}}</text> <text class="low-text" v-else-if="item.historyMajorEnrollMap['2022']">2022年录取最低分{{item.historyMajorEnrollMap['2022'].admissionLine}}</text>
<text class="low-text" v-else-if="item.historyMajorEnrollMap['2021']">2021年录取最低分{{item.historyMajorEnrollMap['2021'].admissionLine}}</text> <text class="low-text" v-else-if="item.historyMajorEnrollMap['2021']">2021年录取最低分{{item.historyMajorEnrollMap['2021'].admissionLine}}</text>
</view> </view>
<view class="uni-flex frow"> <view class="uni-flex flex">
<text class="low-text" v-if="item.rulesEnrollProbability">录取方式:{{item.rulesEnrollProbability}}</text> <text class="low-text" v-if="item.rulesEnrollProbability">录取方式:{{item.rulesEnrollProbability}}</text>
</view> </view>
</view> </view>
@ -426,20 +465,20 @@ export default {
</view> </view>
<view class="flex-item-1 item_right"> <view class="flex-item-1 item_right">
<view class="delBtn"> <view class="delBtn">
<image @click="confirmDelVolunteerItem(item)" src="/static/icons/cuti/delete.png" style="width: 32rpx;height: 32rpx"/> <image @click="confirmDelVolunteerItem(item)" :src="ImagesConstant.cuti.delete" style="width: 32rpx;height: 32rpx"/>
</view> </view>
</view> </view>
</view> </view>
<!--空白专业--> <!--空白专业-->
<view class="uni-flex frow" v-else @click="toAdd()"> <view class="uni-flex flex" v-else @click="toAdd()">
<view class="flex-item-9 item_left"> <view class="flex-item-9 item_left">
<view class="schoolInfo"> <view class="schoolInfo">
<view class="uni-flex frow"> <view class="uni-flex flex">
<view class="flex-item-1 indexs"> <view class="flex-item-1 indexs">
<text>{{item.indexs}}</text> <text>{{item.indexs}}</text>
</view> </view>
<view class="flex-item-7"> <view class="flex-item-7">
<view class="uni-flex frow"> <view class="uni-flex flex">
<text>点击添加</text> <text>点击添加</text>
</view> </view>
</view> </view>

File diff suppressed because it is too large Load Diff

View File

@ -1,160 +0,0 @@
<!--我的志愿列表-->
<script>
import StaticConstant from "@/common/StaticConstant";
import ApiConstant from "@/common/ApiConstant";
import Request from '@/common/request'
let request = new Request()
export default {
name: "fillVolunteer-list",
data() {
return {
volunteerList: [],//
}
},
onShow() {
this.getVolunteerList()
},
methods: {
/*获取志愿单列表*/
getVolunteerList() {
request.get(ApiConstant.Volunteer.volunteerPage, {}).then(r => {
console.log(r)
if (r.success) {
this.volunteerList = r.result
}
}).catch(err => {
}).finally(() => {
});
},
clickEdit(e){
console.log('编辑')
console.log(e)
uni.navigateTo({
url: 'detail?volunteerId='+e
})
},
clickDelete(e){
let that = this
console.log('删除')
console.log(e)
uni.showModal({
title:'提示',
content: '确认要删除当前志愿表吗?',
confirmText: '确定',
cancelText: '取消',
success:function (res){
if (res.confirm) {
that.deleteVolunteer(e)
}
}
});
},
/*确认删除志愿表*/
deleteVolunteer(e){
let that = this
request.delete(ApiConstant.Volunteer.volunteerDelete,{id:e}).then(res => {
if (res.success) {
setTimeout(function () {
uni.showToast({title: '删除成功', icon: "none"});
that.getVolunteerList()
}, 1000)
setTimeout(function () {
that.getVolunteerList()
}, 1500)
}else{
setTimeout(function () {
uni.showToast({title: res.message, icon: "none"});
}, 500)
}
}).catch(err => {
}).finally(() => {
});
},
clickDownload(e){
//
uni.showToast({title: '目前仅支持PC端下载', icon: "none"});
}
}
}
</script>
<template>
<!--志愿信息列表-->
<div style="border-top: 1px solid #f5f6f8">
<div class="volunteerDiv" v-for="(item,index) in volunteerList" :key="item.id">
<view class="uni-flex frow" style="padding: 15rpx;">
<view class="flex-item-6" @click="clickEdit(item.id)">
<view class="uni-flex uni-row">
<view class="flex-item t_item">
<text style="font-size: 30rpx;font-weight: 600">{{ item.volunteerName }}</text>
</view>
</view>
<view class="uni-flex uni-row">
<view class="flex-item t_item" style="color:#c1c4cc">
<text>更新</text>
<text v-if="item.updateTime">{{ item.updateTime }}</text>
<text v-else>{{ item.createTime }}</text>
</view>
</view>
<view class="uni-flex uni-row">
<view class="flex-item t_item">
<text>{{ item.userScoreInfo.cognitioPolyclinic }}&nbsp;&nbsp;|&nbsp;&nbsp;{{ item.userScoreInfo.professionalCategory }}</text>
<!-- <image v-if="item.state=='1'" src="/static/icons/cuti/done-active.png" style="width: 32rpx;height: 32rpx;margin-bottom: -5rpx"/>-->
</view>
</view>
</view>
<view class="flex-item-4">
<view class="options">
<view class="uni-flex frow">
<view class="flex-item-33">
<div class="img">
<!--style="border-right: 1px solid #c5c5c5;"-->
<image @click="clickEdit(item.id)" src="/static/icons/cuti/edit.png" style="width: 50rpx;height: 50rpx"/>
</div>
</view>
<view class="flex-item-33">
<div class="img">
<image @click="clickDelete(item.id)" src="/static/icons/cuti/delete.png" style="width: 50rpx;height: 50rpx"/>
</div>
</view>
<view class="flex-item-33">
<div class="img">
<image @click="clickDownload(item.id)" src="/static/icons/cuti/file-download.png" style="width: 50rpx;height: 50rpx"/>
</div>
</view>
</view>
</view>
</view>
</view>
</div>
</div>
</template>
<style scoped lang="scss">
.volunteerDiv {
background-color: white;
margin-bottom: 30rpx;
padding: 20rpx;
}
.t_item {
margin-bottom: 15rpx;
}
.options{
margin: 45rpx auto 50rpx 0rpx;
}
.img{
height: 40rpx;
padding: 0 40rpx;
}
.img image{
//margin: -8rpx 40rpx 0rpx 0rpx;
}
</style>

View File

@ -0,0 +1,234 @@
<!--我的志愿列表-->
<script>
import ApiConstant from "@/common/ApiConstant";
import Request from '@/common/request'
import {formatTime} from "@/common/util";
import ImagesConstant from "@/common/ImagesConstant";
let request = new Request()
export default {
name: "fillVolunteer-list",
computed: {
ImagesConstant() {
return ImagesConstant
}
},
data() {
return {
volunteerList: [],//
}
},
onShow() {
this.getVolunteerList()
},
methods: {
formatTime,
/*获取志愿单列表*/
getVolunteerList() {
request.get(ApiConstant.Volunteer.volunteerPage, {}).then(r => {
console.log(r)
if (r.success) {
this.volunteerList = r.result
}
}).catch(err => {
}).finally(() => {
});
},
/*点击新增志愿*/
clickAdd(){
let that = this
uni.showLoading({
title: '创建志愿表'
});
request.post(ApiConstant.Volunteer.addNew, {}).then(res => {
if (res.success) {
setTimeout(function () {
uni.hideLoading();
}, 1000)
setTimeout(function () {
that.getVolunteerList();
}, 1000)
} else {
setTimeout(function () {
uni.showToast({title: res.message, icon: "none"});
}, 500)
}
}).catch(err => {
}).finally(() => {
});
},
clickEdit(e) {
console.log('编辑')
console.log(e)
uni.navigateTo({
url: 'detail?volunteerId=' + e
})
},
clickDelete(e) {
let that = this
console.log('删除')
console.log(e)
uni.showModal({
title: '提示',
content: '确认要删除当前志愿表吗?',
confirmText: '确定',
cancelText: '取消',
success: function (res) {
if (res.confirm) {
that.deleteVolunteer(e)
}
}
});
},
/*确认删除志愿表*/
deleteVolunteer(e) {
let that = this
request.delete(ApiConstant.Volunteer.volunteerDelete, {id: e}).then(res => {
if (res.success) {
setTimeout(function () {
uni.showToast({title: '删除成功', icon: "none"});
that.getVolunteerList()
}, 1000)
setTimeout(function () {
that.getVolunteerList()
}, 1500)
} else {
setTimeout(function () {
uni.showToast({title: res.message, icon: "none"});
}, 500)
}
}).catch(err => {
}).finally(() => {
});
},
clickDownload(e) {
//
uni.showToast({title: '目前仅支持PC端下载', icon: "none"});
},
formatDate(date) {
console.log(date)
let newDate = new Date(date);
let year = newDate.getFullYear();
let month = String(newDate.getMonth() + 1).padStart(2, '0');
let day = String(newDate.getDate()).padStart(2, '0');
return year + '-' + month + '-' + day;
}
},
}
</script>
<template>
<!--志愿信息列表-->
<view style="border-top: 1px solid #f5f6f8">
<view class="volunteerDiv" v-for="(item,index) in volunteerList" :key="item.id">
<view class="uni-flex flex" style="padding: 15rpx;">
<view class="flex-item-5 t_item" @click="clickEdit(item.id)">
<text style="font-size: 30rpx;font-weight: 600">{{ item.volunteerName }}</text>
</view>
<view class="flex-item-2 t_item">
<view class="tag-view" v-if="item.state==='1'">
<uni-tag text="使用中" type="primary"/>
</view>
</view>
</view>
<view class="uni-flex flex" style="padding: 15rpx;">
<view class="flex-item-6" @click="clickEdit(item.id)">
<view class="uni-flex uni-row">
<view class="flex-item t_item" style="color:#c1c4cc">
<text>更新</text>
<text v-if="item.updateTime">{{ formatDate(item.updateTime) }}</text>
<text v-else>{{ formatDate(item.createTime) }}</text>
</view>
</view>
<view class="uni-flex uni-row">
<view class="flex-item-8 t_item">
<text>{{
item.userScoreInfo.cognitioPolyclinic
}}&nbsp;&nbsp;|&nbsp;&nbsp;{{ item.userScoreInfo.professionalCategory }}
</text>
</view>
</view>
</view>
<view class="flex-item-4">
<view class="options">
<view class="uni-flex flex">
<view class="flex-item-5">
<div class="img">
<!--style="border-right: 1px solid #c5c5c5;"-->
<image @click="clickEdit(item.id)" :src="ImagesConstant.cuti.edit"
style="width: 50rpx;height: 50rpx"/>
</div>
</view>
<view class="flex-item-5">
<div class="img">
<image @click="clickDelete(item.id)" :src="ImagesConstant.cuti.delete"
style="width: 50rpx;height: 50rpx"/>
</div>
</view>
<!-- <view class="flex-item-33">
<div class="img">
<image @click="clickDownload(item.id)" src="/static/icons/cuti/file-download.png" style="width: 50rpx;height: 50rpx"/>
</div>
</view>-->
</view>
</view>
</view>
</view>
</view>
<!--新增志愿-->
<view class="addBtn" @click="clickAdd">
<text class="addBtn-text">新增志愿</text>
</view>
</view>
</template>
<style scoped lang="scss">
.volunteerDiv {
background-color: white;
margin-bottom: 30rpx;
padding: 20rpx;
}
.t_item {
margin-bottom: 15rpx;
}
.options {
margin: 45rpx auto 50rpx 0;
}
.img {
height: 40rpx;
padding: 0 40rpx;
}
.img image {
//margin: -8rpx 40rpx 0rpx 0rpx;
}
.addBtn {
width: 100rpx;
height: 100rpx;
background-color: #4975fd;
border-radius: 50%;
position: absolute;
bottom: 100rpx;
right: 30rpx;
display: flex;
justify-content: center; /* 居中显示 */
align-items: center; /* 居中显示 */
.addBtn-text {
/*position: relative;
top: 13rpx;
left: 18rpx;*/
color: white;
/*line-height: 1rpx;
letter-spacing: 8rpx;*/
font-size: 20rpx;
}
}
</style>

View File

@ -0,0 +1,82 @@
export const menuData = [
{
name: 'year', title: '年份', options: [
{label: "2023", value: "2023"},
{label: "2022", value: "2022"},
{label: "2021", value: "2021"}
]
},
{
name: 'professionalCategory', title: '专业类别', options: [
{label: "音乐类", value: "音乐类"},
{label: "国际标准舞类", value: "国际标准舞类"},
{label: "播音与主持类", value: "播音与主持类"},
{label: "表演类", value: "表演类"},
{label: "编导制作类", value: "编导制作类"},
{label: "书法类", value: "书法类"},
{label: "艺术舞蹈类", value: "艺术舞蹈类"},
{label: "美术类", value: "美术类"},
{label: "体育类", value: "体育类"},
]
},
{
name: 'category', title: '文理分科', options: [
{label: "文科", value: "文科"},
{label: "理科", value: "理科"},
]
},
]
export const menuData1 = [
{
name: 'city', title: '城市', treeSelect: true, popupHeight: null, options: [
{label: "全部", value: null, children: [{label: '全部', value: null}]},
{
label: "湖南省", value: "1",
children: [
{label: "全部", value: 35},
{label: "长沙市", tip: 10, value: "1_1"},
{label: "岳阳市", tip: 20, value: "1_2"},
{label: "永州市", tip: 22, value: "1_4"},
{label: "衡阳市", tip: 22, value: "1_5"},
{label: "益阳市", tip: 22, value: "1_6"},
{label: "张家界", tip: 22, value: "1_7"},
],
},
{
label: "广东省", value: "2",
children: [
{label: "全部", value: null},
{label: "广州市", value: "2_1"},
{label: "惠州市", value: "2_2"},
{label: "中山市", value: "2_3"},
],
},
{
label: "浙江省", value: "3",
children: [
{label: "全部", value: null},
{label: "杭州市", value: "3_1"},
{label: "宁波市", value: "3_2"},
{label: "温州市", value: "3_3"},
],
},
]
},
{
name: 'status', title: '状态', options: [
{label: "全部状态", value: null},
{label: "待付款", value: "1"},
{label: "待发货", value: "2"},
{label: "待收货", value: "3"},
{label: "待评价", value: "4"}
]
},
{
name: 'sort', title: '排序', options: [
{label: "默认排序", value: null},
{label: "销量排序", value: "1"},
{label: "好评排序", value: "2"},
]
}
]

View File

@ -0,0 +1,153 @@
<!--省控线-->
<script setup>
import {ref} from "vue";
import ApiConstant from "@/common/ApiConstant";
import Request from '@/common/request'
import {onMounted} from "vue";
import StaticConstant from "@/common/StaticConstant";
let request = new Request()
const dataList = ref()
const scoreUpdate = ref()
function getHistoryList() {
let that = this
let scoreInfo = uni.getStorageSync('scoreInfo')
let data = {
professionalCategory: '美术与设计类',
category: '文科'
}
if (scoreInfo && scoreInfo.professionalCategory) {
data.professionalCategory = scoreInfo.professionalCategory
}
if (scoreInfo && scoreInfo.cognitioPolyclinic) {
data.category = scoreInfo.cognitioPolyclinic
}
// 24
let scoreUpdater = StaticConstant.professionalCategoryScoreUpdadtes[data.professionalCategory]
if (scoreUpdater && scoreUpdater.scoreMax) {
scoreUpdate.value = {...scoreUpdater,professionalCategory:data.professionalCategory}
}
request.get(ApiConstant.Score.historyScoreControlLineListGroupYear, data).then(r => {
if (r.success) {
let data2 = r.result
let list = []
let dataKeys = Object.keys(data2)
dataKeys.sort(function (a, b) {
return b - a;
});
for (let i = 0; i < dataKeys.length; i++) {
list.push({year: dataKeys[i], list: data2[dataKeys[i]]})
}
dataList.value = list
}
}).catch(err => {
}).finally(() => {
});
}
onMounted(() => {
getHistoryList()
})
</script>
<template>
<view class="container" style="background-color: #ffffcb">
<text class="uni-h6" v-if="scoreUpdate && scoreUpdate.scoreMax">2024艺考改革原专业满分{{scoreUpdate.oldScoreMax}}分调整为{{scoreUpdate.scoreMax}}</text>
</view>
<view class="content">
<view class="table">
<view class="tr uni-flex" style="background-color: #e0e8ed">
<view class="th flex-item-1">
<text>年份</text>
</view>
<view class="th flex-item-3">
<text>批次</text>
</view>
<view class="th flex-item-3">
<text>专业线(/)</text>
</view>
<view class="th flex-item-3">
<text>文化线(/)</text>
</view>
</view>
<view class="tr uni-flex" v-for="(item,index) in dataList" :key="index">
<view class="flex-item-10">
<view class="uni-flex">
<view class="flex-item-1 left"
:style="(index+1)%2===0?'background-color: #d4ecf0':'background-color: #ebf3f6'">
<text class="font-size-medium"
style="width: 20rpx;margin-top: 100rpx;line-height: 30rpx;text-orientation: upright; writing-mode: vertical-rl;">
{{ item.year }}
</text>
</view>
<view class="flex-item-9">
<view class="uni-flex right" v-for="(it,i) in item.list" :key="i">
<view class="flex-item-33 right-co">
<text>{{ it.batch || '-' }}</text>
</view>
<view class="flex-item-33 right-co">
<text>{{ it.specialScore || '-' }}</text>
<text v-if="it.specialScoreXk">/{{ it.specialScoreXk || '-' }}</text>
</view>
<view class="flex-item-33 right-co">
<text>{{ it.culturalScore || '-' }}</text>
<text v-if="it.culturalScoreXk">/{{ it.culturalScoreXk || '-' }}</text>
</view>
</view>
</view>
</view>
</view>
</view>
</view>
</view>
</template>
<style scoped lang="scss">
.container {
line-height: 80rpx;
padding: 0 30rpx;
font-weight: 550;
}
.content {
display: flex;
flex-direction: column;
align-items: stretch;
background-color: white;
}
.tr {
line-height: 100rpx;
width: 100%;
text-align: center;
}
.tr .th {
color: #459aac;
font-weight: 600;
}
.tr .td {
width: 33.3%;
}
.left {
color: #3b96a6;
border-radius: 5rpx;
margin: 10rpx 0;
}
.right {
background-color: #f9f9f9;
color: #41464e;
font-weight: 550;
margin: 10rpx 5rpx;
height: 90rpx;
line-height: 90rpx;
}
</style>

View File

@ -1,5 +1,10 @@
<script> <script>
import StaticConstant from "../../common/StaticConstant"; import StaticConstant from "@/common/StaticConstant";
import ImagesConstant from "@/common/ImagesConstant";
import ApiConstant from "@/common/ApiConstant";
import Request from "@/common/request";
let request = new Request()
export default { export default {
name: "home", name: "home",
components: {}, components: {},
@ -11,67 +16,170 @@ export default {
data() { data() {
return { return {
scoreInfo: { scoreInfo: {
province: "北京",// province: '河南',//
cognitioPolyclinic: '',//
professionalCategory: '',//
culturalScore: '',//
professionalScore: '',//
}, },
tjlb:{ zyNum: null,//
kcj:10,// defaultIcon: ImagesConstant.defaultIcon,//
jwt:22,// tjlb: {
kbd:910// kcj: null,//
jwt: null,//
kbd: null//
},
options: StaticConstant.HomeOptions,
}
},
onShow() {
let score = uni.getStorageSync('scoreInfo')
let fillVolunteer = uni.getStorageSync('fillVolunteer')
if (score !== undefined && score !== null) {
this.scoreInfo = score
if (!fillVolunteer || !fillVolunteer.all) {
this.getRecommendMajorCount()
fillVolunteer = uni.getStorageSync('fillVolunteer')
} }
} }
if (fillVolunteer) {
this.zyNum = fillVolunteer.all
this.tjlb.kcj = fillVolunteer.kcj
this.tjlb.jwt = fillVolunteer.jwt
this.tjlb.kbd = fillVolunteer.kbd
}
}, },
methods: { methods: {
goto(url) { goto(url) {
uni.navigateTo({ uni.navigateTo({
url:url url: url
}) })
} },
/*点击 操作菜单*/
optionItemChange(e) {
if (this.options && this.options[e.detail.index].url) {
this.goto(this.options[e.detail.index].url)
}
},
getRecommendMajorCount() {
request.get(ApiConstant.Major.recommendMajorCount, {}).then(res => {
if (res.success) {
let result = res.result
//
let fillVolunteer = {
all: result.allNumber,
kcj: result.kcj,
jwt: result.jwt,
nlq: result.nan,
kbd: result.kbd
}
uni.setStorageSync('fillVolunteer', fillVolunteer)
}
}).catch(err => {
}).finally(() => {
});
},
} }
} }
test()
function test(){
}
</script> </script>
<template> <template>
<div style="background:linear-gradient(131deg, rgb(18,117,236) 0%, rgb(122, 182, 249) 100%);height: 300px"> <!-- 头部-->
<view class="header" style="background: linear-gradient(to left, rgba(52,145,212,0.83), #3658d0);height: 600rpx">
<!--顶部地区及年份-->
<view class="uni-flex uni-row" style="-webkit-justify-content: space-between;justify-content: space-between;"> <view class="uni-flex uni-row" style="-webkit-justify-content: space-between;justify-content: space-between;">
<view class="text fsize-13 color-white margin10px">{{scoreInfo.province}}</view> <view class="white margin30">{{ scoreInfo.province }}</view>
<view class="text fsize-13 color-white margin10px">{{StaticConstant.year}}年填报</view> <view class="white margin30">{{ StaticConstant.year }}年填报</view>
</view> </view>
<view class="uni-flex uni-row"> <!--推荐专业数量-->
<view class="dxshn"> <div class="tuijian">
<p class="tnumber">942</p>
<p class="ttitle">院校志愿适合你</p>
</view>
</view>
<view class="uni-padding-wrap uni-common-mt topNumberDiv">
<view class="uni-flex uni-row"> <view class="uni-flex uni-row">
<view class="flex-item t_item"> <view class="dxshn" v-if="zyNum">
<p class="tnumber">{{tjlb.kcj}}</p> <p class="tnumber">{{ zyNum }}</p>
<p class="ttitle">可冲击</p> <p class="ttitle">专业适合你</p>
</view> </view>
<view class="flex-item t_item"> <view class="dxshn" v-else>
<p class="tnumber">{{tjlb.jwt}}</p> <p class="tnumber">{{ StaticConstant.systemName }}</p>
<p class="ttitle">较稳妥</p>
</view>
<view class="flex-item t_item">
<p class="tnumber">{{tjlb.kbd}}</p>
<p class="ttitle">可保底</p>
</view> </view>
</view> </view>
<view class="uni-padding-wrap uni-common-mt topNumberDiv">
<!--冲刺推荐稳妥推进保底推荐-->
<view class="uni-flex uni-row">
<view class="flex-item t_item">
<p class="tnumber" v-if="tjlb.kcj!==undefined">{{ tjlb.kcj}}</p>
<p class="tnumber" v-else>??</p>
<p class="ttitle">可冲击</p>
</view>
<view class="flex-item t_item">
<p class="tnumber" v-if="tjlb.jwt!==undefined">{{ tjlb.jwt}}</p>
<p class="tnumber" v-else>??</p>
<p class="ttitle">较稳妥</p>
</view>
<view class="flex-item t_item">
<p class="tnumber" v-if="tjlb.kbd!==undefined">{{ tjlb.kbd}}</p>
<p class="tnumber" v-else>??</p>
<p class="ttitle">可保底</p>
</view>
</view>
<!--我的成绩-->
<view class="uni-flex uni-row marginTopBot30 wdcj">
<view class="flex-item-10 fontsize25" style="text-align: center" v-if="scoreInfo && scoreInfo.province">
<text class="marginright10">我的成绩文化:{{ scoreInfo.culturalScore }}</text>
<text class="marginright10">专业:{{ scoreInfo.professionalScore }}</text>
<text class="marginright10">{{ scoreInfo.cognitioPolyclinic }}</text>
<text class="marginright10">{{ scoreInfo.professionalCategory }}</text>
</view>
<view class="flex-item-10 fontsize25" style="text-align: center" v-else>
<text class="marginright10">完善信息查看完整推荐</text>
</view>
</view>
<view class="flex mntb blue" style="background-color: white;font-size: 36rpx;border-radius: 50rpx;">
<view class="flex-item-5" @click="goto('/pages/zyb/fillVolunteer/aiAuto')"
style="padding:0 28rpx 0 36rpx;line-height: 2.5;text-align: left">
<text>一键智能填报</text>
</view>
<view class="flex-item-5">
<view style="padding: 0 28rpx;line-height: 2.5;
z-index: 10;text-align: center;border-radius: 50rpx;background: linear-gradient(rgba(52,145,212,0.83), #3658d0);">
<text @click="goto('/pages/zyb/fillVolunteer/index')"
style="color:white;">模拟填报
</text>
</view>
</view>
</view>
</view>
</div>
</view>
<!--内容部分-->
<view class="body">
<!--操作菜单-->
<view class="options">
<uni-grid :column="4" :highlight="true" :show-border="false" @change="optionItemChange">
<uni-grid-item v-for="(item, index) in options" :index="index" :key="index">
<view class="grid-item-box">
<view style="border-radius: 50%;box-shadow: 0 0 10rpx 5rpx #aaa;width: 100rpx;height: 100rpx;">
<image :src="item.icon?item.icon:defaultIcon"
:style="item.width?'left: 8rpx;top:10rpx;width:'+item.width+';height:'+item.width:'height: 60rpx;width: 60rpx;left: 20rpx;top:20rpx'"
style="position: relative;"/>
</view>
<text class="text">{{ item.title }}</text>
</view>
</uni-grid-item>
</uni-grid>
</view> </view>
<button @click="goto('/pages/zyb/score/edit')">修改成绩</button> </view>
<button @click="goto('/pages/zyb/fillVolunteer/index')">智能推荐</button>
</div>
</template> </template>
<style scoped lang="scss"> <style scoped lang="scss">
.uni-common-mt { .uni-common-mt {
margin: 0px; margin: 0;
} }
/*顶部的推荐院校数量模块*/ /*顶部的推荐院校数量模块*/
.topNumberDiv{ .topNumberDiv {
.tnumber { .tnumber {
color: white; color: white;
margin: 10px auto; margin: 10px auto;
@ -79,38 +187,44 @@ function test(){
height: 10px; height: 10px;
font-weight: 400; font-weight: 400;
} }
.ttitle { .ttitle {
color: #fbd781; color: #fbd781;
font-size: 11px; font-size: 11px;
font-weight: 500; font-weight: 500;
} }
} }
.color-white{
color:white;
font-weight: 400; .flex {
} margin: 30rpx 0;
.margin10px{
margin:10px;
} }
.flex-item { .flex-item {
width: 33.3%; width: 33.3%;
height: 200rpx; height: 110rpx;
text-align: center; text-align: center;
line-height: 200rpx;
} }
.tuijian {
padding: 30rpx 70rpx;
}
/* 大学适合你 */ /* 大学适合你 */
.dxshn{ .dxshn {
height: 100rpx; height: 100rpx;
text-align: center; text-align: center;
margin: 5px auto; margin: 5px auto;
.tnumber{
.tnumber {
color: white; color: white;
margin: 10px auto; margin: 10px auto;
height: 10px; height: 10px;
font-size: 22px; font-size: 22px;
font-weight: 500; font-weight: 500;
} }
.ttitle { .ttitle {
margin: 15px auto; margin: 15px auto;
color: white; color: white;
@ -118,4 +232,111 @@ function test(){
font-weight: 500; font-weight: 500;
} }
} }
/*我的成绩*/
.wdcj {
}
/*模拟填报按钮*/
.mntb {
}
.body {
padding: 30rpx;
//
.options {
border-radius: 10rpx;
padding: 8rpx;
background-color: white;
position: relative;
bottom: 60rpx;
min-height: 380rpx;
margin: 0 auto;
}
}
/*右边距10rpx*/
.marginright10 {
margin-right: 10rpx;
}
/*字体大小25rpx*/
.fontsize25 {
font-size: 25rpx;
color: white;
}
/*宫格 start*/
.image {
width: 25px;
height: 25px;
}
.text {
font-size: 14px;
}
.example-body {
/* #ifndef APP-NVUE */
// display: block;
/* #endif */
}
.grid-dynamic-box {
margin-bottom: 15px;
}
.grid-item-box {
flex: 1;
// position: relative;
/* #ifndef APP-NVUE */
display: flex;
/* #endif */
flex-direction: column;
align-items: center;
justify-content: center;
padding: 15px 0;
}
.grid-item-box-row {
flex: 1;
// position: relative;
/* #ifndef APP-NVUE */
display: flex;
/* #endif */
flex-direction: row;
align-items: center;
justify-content: center;
padding: 15px 0;
}
.grid-dot {
position: absolute;
top: 5px;
right: 15px;
}
.swiper {
height: 420px;
}
/* #ifdef H5 */
@media screen and (min-width: 768px) and (max-width: 1425px) {
.swiper {
height: 630px;
}
}
@media screen and (min-width: 1425px) {
.swiper {
height: 830px;
}
}
/* #endif */
/*宫格 end*/
</style> </style>

233
pages/zyb/login.vue Normal file
View File

@ -0,0 +1,233 @@
<!--登录页面-->
<script>
import ApiConstant from "@/common/ApiConstant";
import Request from '@/common/request'
import StaticConstant from "@/common/StaticConstant";
let request = new Request()
export default {
name: "home",
components: {},
computed: {
StaticConstant() {
return StaticConstant
}
},
data() {
return {
checkFlag: false,
isTick: true
}
},
onReady() {
},
methods: {
login(rrrr) {
var sessionKey = ''
if (rrrr && rrrr.detail && rrrr.detail.code) {
//
uni.login({
success: (res) => {
console.log('获取code', res)
if (res.code) {
let code = res.code
request.post(ApiConstant.User.wxLogin, {
code: code,
encryptedData: rrrr.detail.encryptedData,
iv: rrrr.detail.iv
}).then(r => {
console.log('请求登录', r)
if (r.success) {
console.log(r)
uni.setStorageSync('token', r.result.token)
uni.setStorageSync('userInfo', r.result.userInfo)
//uni.setStorageSync('scoreInfo',r.result.scoreInfo)
//
wx.reLaunch({
url: '/pages/zyb/home',
})
} else {
uni.showToast({
title: '微信授权登录失败',
icon: 'none'
})
}
}).catch(err => {
}).finally(() => {
});
} else {
uni.showModal({
title: '未获取到code'
})
}
}
});
} else {
uni.showToast({
title: '授权失败,请同意授权',
icon: 'none'
})
return
}
console.log(rrrr)
},
getPhoneNumber(r) {
console.log('微信授权登录', r.detail)
if (r.detail.userInfo) {
uni.showToast({
title: '授权成功'
})
} else {
// console.log('')
uni.showToast({
title: '授权失败,请同意授权',
icon: 'none'
})
return
}
let encryptedData = r.detail.encryptedData
let iv = r.detail.iv
// code
uni.getUserProfile({
desc: 'Wexin', //
success: res => {
console.log(res)
},
fail: err => {
console.log(err)
}
})
uni.login({
success: (res) => {
console.log('获取code', res)
if (res.code) {
let code = res.code
apiLogin({
code: code,
loginType: '0',
encryptedData: encryptedData,
iv: iv
}).then(res => {
console.log('请求登录', res)
const data = res[1]['data'];
if (data.code === 200) {
// token
uni.setStorageSync('token', data.data)
//
} else {
console.log('微信授权登录失败')
uni.showToast({
title: '微信授权登录失败',
icon: 'none'
})
return
}
});
} else {
uni.showModal({
title: '未获取到code'
})
return
}
}
});
},
gotoMianze() {
uni.navigateTo({
url: '/pages/zyb/other/disclaimer'
})
},
gotoXieyi() {
uni.navigateTo({
url: '/pages/zyb/other/userAgreement'
})
},
checkboxChange(r) {
console.log(r)
if (r.detail.value && r.detail.value.length > 0) {
this.checkFlag = true
} else {
this.checkFlag = false
}
}
},
onload() {
}
}
</script>
<template>
<view class="header" style="border-top:3rpx solid #f6f6f6"></view>
<view class="content">
<view class="textcenter">
<view class="flex">
<view class="title">
{{ StaticConstant.systemName }}
</view>
</view>
</view>
<view class="textcenter">
<text class="low-title">全国
<text style="font-size: 35rpx">600</text>
+考生的选择
</text>
</view>
<button class='login-but' :disabled="!this.checkFlag" open-type="getPhoneNumber" @getphonenumber="login">
手机号快捷登录
</button>
<view class="uni-flex flex" style="margin-top: 100rpx">
<checkbox-group @change="checkboxChange">
<label>
<checkbox value="cb"/>
登录代表{{ StaticConstant.systemName }}
<text style="color: #4975fd" @click="gotoMianze">免责声明</text>
<text style="color: #4975fd" @click="gotoXieyi">用户协议</text>
并授权使用您的{{ StaticConstant.systemName }}账号信息如昵称头像以便您统一管理
</label>
</checkbox-group>
</view>
</view>
</template>
<style scoped lang="scss">
.content {
margin-top: 200rpx;
padding: 30rpx;
}
.textcenter {
text-align: center;
margin: 30rpx 0;
}
/*标题*/
.title {
margin: 0 auto;
//color:white;
font-size: 90rpx;
font-weight: 600;
}
/*小标题*/
.low-title {
font-size: 40rpx;
}
///
.login-but {
color: white;
width: 500rpx;
background: linear-gradient(rgba(52, 145, 212, 0.83), #3658d0);
border-radius: 50rpx
}
</style>

507
pages/zyb/major/detail.vue Normal file
View File

@ -0,0 +1,507 @@
<script>
import ApiConstant from "@/common/ApiConstant";
import Request from '@/common/request'
let request = new Request()
export default {
data() {
return {
majorTypeName: '',
majorInfo: {},
schoolName: '',
tabs: [
{
id: 1,
name: '基本信息'
}, {
id: 2,
name: '就业分析'
}, {
id: 3,
name: '开设院校'
}
],
scrollLeft: 0,
currentTab: 0,
old: {
scrollTop: 0
},
tabCurrent: '1',
schoolResult: {
current: 1,
size: 5,
total: 0,
pages: 0,
list: []
},
status: 'more',
statusTypes: [
{
value: 'more',
text: '加载前',
checked: true
}, {
value: 'loading',
text: '加载中',
checked: false
}, {
value: 'noMore',
text: '没有更多',
checked: false
}],
contentText: {
contentdown: '查看更多',
contentrefresh: '加载中',
contentnomore: '没有更多'
}
}
},
onLoad(e) {
if (e.majorCode) {
this.majorCode = e.majorCode;
console.log('majorCode ', this.majorCode)
this.getMajorDetailInfo()
}
if (e.majorTypeName) {
this.majorTypeName = e.majorTypeName
}
},
methods: {
swichMenu(id) {
this.currentTab = id
console.log(id)
//this.tabCurrent = 'tabNum'+ id
// swiper
this.scrollLeft = 0;
for (let i = 0; i < id; i++) {
this.scrollLeft += 60
console.log(this.scrollLeft, 60, id)
}
},
/*获取专业详情*/
getMajorDetailInfo() {
let that = this
request.get(ApiConstant.Major.majorInfo, {
majorCode: this.majorCode,
}).then(r => {
console.log(r)
if (r.success) {
this.majorInfo = r.result
that.getSchoolList()
}
}).catch(err => {
}).finally(() => {
});
},
/*加载就业岗位分布*/
loadJobDistributionData() {
if (this.majorInfo.jobDistribution) {
let jobDistributionSList = this.majorInfo.jobDistribution.split('、')
let jobDistributionList = []
let jobDistribution = null
console.log(jobDistributionSList)
jobDistributionSList.for(j => console.log(j))
for (let i = 0; i < jobDistributionSList.length; i++) {
//jobDistribution = jobDistributionList[i].split('')
//jobDistributionList.push({name:jobDistribution[0],value:jobDistribution[1]})
}
//
setTimeout(() => {
//
let res = {
series: [
{
data: jobDistributionList
}
]
};
this.chartData.jobDistribution = JSON.parse(JSON.stringify(res));
}, 500);
}
},
getSchoolList() {
let that = this
that.status = 'loading'
request.get(ApiConstant.School.searchSchoolList, {
majorCode: this.majorCode,
schoolName: this.schoolName,
pageNum: this.schoolResult.current,
pageSize: this.schoolResult.size
}).then(r => {
console.log(r)
if (r.success) {
that.schoolResult.current = r.result.current
that.schoolResult.size = r.result.size
that.schoolResult.total = r.result.total
//
that.schoolResult.list = [...that.schoolResult.list, ...r.result.records]
if (r.result.current >= r.result.pages) {
that.status = 'noMore'
} else {
that.status = 'more'
}
}
}).catch(err => {
}).finally(() => {
});
},
searchSchoolClick() {
this.schoolResult.current = 1
this.schoolResult.list = []
this.schoolResult.total = 0
this.getSchoolList()
},
clearSchoolInput() {
this.schoolName = ''
this.schoolResult.current = 1
this.schoolResult.list = []
this.schoolResult.total = 0
this.getSchoolList()
},
onReachBottom() {
console.log("onReachBottom");
},
loadMore() {
if (this.status === 'noMore') {
return;
}
console.log('加载中')
this.schoolResult.current++;
this.getSchoolList()
},
goto(url) {
uni.navigateTo({
url: url
})
}
}
}
</script>
<template>
<view class="body-view">
<view class="head">
<view class="info">
<view class="majorName">
<text>{{ majorInfo.majorName }}</text>
</view>
<view class="majorType">
<text style="margin-right: 10rpx" v-if="majorTypeName">{{ majorTypeName }}</text>
<text>专业代码{{ majorInfo.majorCode }}</text>
</view>
<view class="semeterRow">
<view :class="majorInfo.educationalLevel==='1'?'flex-item-33':'flex-item-5'" class="border-right">
<view style="display: flex">
<text style="color: white;font-size: 30rpx;margin: 0 auto;">
{{ majorInfo.educationalLevel === '1' ? '本科' : '专科' }}
</text>
</view>
<view style="display: flex">
<text style="color: #b6c8fe;font-size: 26rpx;margin: 0 auto;">学历层次</text>
</view>
</view>
<view :class="majorInfo.educationalLevel==='1'?'flex-item-33 border-right':'flex-item-5'">
<view style="display: flex">
<text style="color: white;font-size: 30rpx;margin: 0 auto;">{{ majorInfo.semester }}</text>
</view>
<view style="display: flex">
<text style="color: #b6c8fe;font-size: 26rpx;margin: 0 auto;">学制年限</text>
</view>
</view>
<view class="flex-item-33" v-if="majorInfo.educationalLevel==='1'">
<view style="display: flex">
<text style="color: white;font-size: 30rpx;margin: 0 auto;">{{ majorInfo.degree || '未知' }}</text>
</view>
<view style="display: flex">
<text style="color: #b6c8fe;font-size: 26rpx;margin: 0 auto;">学位</text>
</view>
</view>
</view>
</view>
</view>
<view class="top-body">
<!-- 使用scroll-view实现tabs滑动切换 -->
<scroll-view class="top-menu-view" scroll-x="true" scroll-with-animation :scroll-left="scrollLeft">
<view class="menu-topic-view" v-for="(item,index) in tabs" :id="'tabNum'+item.id" :key="index"
@click="swichMenu(index)">
<view :class="currentTab===index ? 'menu-topic-act' : 'menu-topic'">
<text class="menu-topic-text">{{ item.name }}</text>
<view class="menu-topic-bottom">
<view class="menu-topic-bottom-color"></view>
</view>
</view>
</view>
</scroll-view>
<!-- 内容 -->
<view>
<!--基本信息-->
<view class="jbxx" v-if="currentTab===0">
<view class="example-body">
<!--专业简介-->
<view class="uni-box">
<uni-title class="h3" type="h3" title="专业简介"></uni-title>
</view>
<view class="uni-text" v-if="majorInfo.ssm">
<mote-lines-divide :dt="majorInfo.ssm" :line="3" expandtext="展开" foldhint="收起"/>
</view>
<view class="uni-text" v-else>暂未收录...</view>
<!--学什么-->
<view class="uni-box">
<uni-title class="h3" type="h3" title="学什么"></uni-title>
</view>
<view class="uni-text" v-if="majorInfo.xsm">
<mote-lines-divide :dt="majorInfo.xsm" :line="3" expandtext="展开" foldhint="收起"/>
</view>
<view class="uni-text" v-else>暂未收录...</view>
<!--干什么-->
<view class="uni-box">
<uni-title class="h3" type="h3" title="干什么"></uni-title>
</view>
<view class="uni-text" v-if="majorInfo.gsm">
<mote-lines-divide :dt="majorInfo.gsm" :line="3" expandtext="展开" foldhint="收起"/>
</view>
<view class="uni-text" v-else>暂未收录...</view>
<!--数据统计-->
<view class="uni-box">
<uni-title class="h3" type="h3" title="数据统计"></uni-title>
</view>
<view class="uni-text" v-if="majorInfo.sexRatio">
<view class="">{{majorInfo.sexRatio}}</view>
</view>
</view>
</view>
<!--就业分析-->
<view class="jyfx" v-if="currentTab===1">
<view class="uni-box">
<uni-title class="h3" type="h3" title="就业岗位分布"></uni-title>
</view>
<view>
<text class="uni-text">
{{ majorInfo.jobDistribution || '暂未收录...' }}
</text>
</view>
<view class="uni-box">
<uni-title class="h3" type="h3" title="就业行业分布"></uni-title>
</view>
<view>
<text class="uni-text">
{{ majorInfo.industryDistribution || '暂未收录...' }}
</text>
</view>
<view class="uni-box">
<uni-title class="h3" type="h3" title="就业地区分布"></uni-title>
</view>
<view>
<text class="uni-text">
{{ majorInfo.regionDistribution || '暂未收录...' }}
</text>
</view>
</view>
<!--开设院校-->
<view class="ksyx" v-if="currentTab===2">
<view style="display: flex;height: 100rpx;border-bottom: 1px solid #f5f5f5;">
<view style="width: 80%">
<uni-search-bar class="uni-mt-10" radius="100" placeholder="请输入院校名称" v-model="schoolName"
@clear="clearSchoolInput" cancelButton="none" @confirm="searchSchoolClick"/>
</view>
<view style="width: 10%;line-height: 100rpx">
<text @click="searchSchoolClick">搜索</text>
</view>
</view>
<view class="schoolList">
<view v-for="(item,index) in schoolResult.list" :key="index"
:class="index === schoolResult.list.length-1?'school-item school-item-end':'school-item'"
@click="goto('/pages/zyb/school/detail?schoolCode='+item.schoolCode)">
<view class="uni-flex flex">
<view class="flex-item-2">
<image :src="item.schoolIcon" style="width: 100rpx;height: 100rpx" mode="aspectFill"/>
</view>
<view class="flex-item-8" style="padding: 0;">
<view class="uni-flex flex">
<text class="schoolName">{{ item.schoolName }}</text>
</view>
<view class="uni-flex flex">
<view class="tags">
<view class="tag" v-for="(tag,i) in item.tagsList" :key="i">
<text>{{ tag }}</text>
</view>
</view>
</view>
</view>
</view>
</view>
<view class="container" @click="loadMore">
<uni-load-more :status="status" :content-text="contentText"/>
</view>
</view>
</view>
</view>
</view>
</view>
</template>
<style scoped lang="scss">
/*头部部分*/
.head {
background-color: #4975fd;
min-height: 450rpx;
.info {
padding: 30rpx;
.majorName {
color: white;
font-size: 50rpx;
font-weight: 600;
display: flex;
margin: 20rpx 30rpx;
}
.majorType {
font-size: 30rpx;
display: flex;
margin: 0 30rpx;
color: #b6c8fe;
}
.semeterRow {
margin: 40rpx 30rpx;
display: flex;
}
}
}
.body-view {
width: 100%;
overflow: hidden;
}
.top-body {
margin: 30rpx;
padding: 30rpx;
background-color: white;
border-radius: 30rpx;
position: relative;
top: -150rpx;
}
/*tabs 栏*/
.top-menu-view {
display: flex;
//position: fixed;
z-index: 100;
//top: 84rpx;
/* #ifdef H5 */
top: 84rpx;
/* #endif */
/* #ifndef H5 */
top: 0rpx;
/* #endif */
left: 0;
white-space: nowrap;
width: 100%;
background-color: white;
height: 86rpx;
line-height: 86rpx;
//border-top: 1rpx solid #d8dbe6;
border-bottom: 1px solid #f5f5f5;
.menu-topic-view {
display: inline-block;
white-space: nowrap;
height: 86rpx;
position: relative;
width: 33.3%;
text-align: center;
.menu-topic-text {
font-size: 30rpx;
color: #303133;
padding: 10rpx 40rpx;
font-weight: 500;
}
.menu-topic-bottom {
position: absolute;
bottom: 0;
width: 100%;
.menu-topic-bottom-color {
width: 40rpx;
height: 4rpx;
}
}
.menu-topic-act .menu-topic-bottom {
display: flex;
justify-content: center;
}
.menu-topic-act .menu-topic-text {
color: #4975fd;
}
.menu-topic-act .menu-topic-bottom-color {
background: #4975fd;
}
}
}
.jbxx {
padding: 20rpx 10rpx;
}
.jyfx {
padding: 20rpx 10rpx;
}
.ksyx {
}
.uni-text {
line-height: 50rpx;
color: #acadba;
}
:deep(.uni-searchbar) {
padding: 15rpx 10rpx !important;
}
.school-item {
padding: 30rpx 0;
border-bottom: 1px solid #f5f5f5;
.schoolName {
font-size: 35rpx;
}
.tags {
display: flex;
flex-direction: row;
flex-wrap: wrap;
}
.tags .tag {
line-height: 30rpx;
font-size: 25rpx;
color: #acadba;
border: 3rpx solid #acadba;
border-radius: 8rpx;
padding: 5rpx;
margin: 10rpx 20rpx 10rpx 0;
}
}
.border-right {
border-right: 3rpx solid #6d91fd
}
.school-item-end {
border-bottom: none !important;
}
</style>

View File

@ -0,0 +1,284 @@
<!--
左右翻形式
-->
<script>
import ApiConstant from "@/common/ApiConstant";
import Request from '@/common/request'
import ImagesConstant from "@/common/ImagesConstant";
let request = new Request()
export default {
computed: {
ImagesConstant() {
return ImagesConstant
}
},
data() {
return {
majorName: '',
tabs: [
{
id: 1,
name: '本科'
}, {
id: 2,
name: '高职高专'
}
],
scrollLeft: 0,
currentTab: 0,
old: {
scrollTop: 0
},
tabCurrent: '1',
// Tab
artMiniMajorList: [],
}
},
onLoad() {
this.getMajorList()
},
methods: {
openMajorDetail: function (e,majorTypeName) {
console.log(e)
uni.navigateTo({
url: '/pages/zyb/major/detail?majorCode='+e.majorCode+"&majorTypeName="+majorTypeName
})
},
swichMenu(id) {
this.currentTab = id
console.log(id)
//this.tabCurrent = 'tabNum'+ id
// swiper
this.scrollLeft = 0;
for (let i = 0; i < id; i++) {
this.scrollLeft += 60
console.log(this.scrollLeft, 60, id)
}
this.getMajorList()
},
getMajorList() {
let that = this
request.get(ApiConstant.Major.miniMajorList, {
majorName: this.majorName,
educationalLevel:this.tabs[this.currentTab].id
}).then(r => {
console.log(r)
if (r.success) {
that.artMiniMajorList = r.result
}
}).catch(err => {
}).finally(() => {
});
}
}
}
</script>
<template>
<view class="body-view">
<!-- 使用scroll-view实现tabs滑动切换 -->
<scroll-view class="top-menu-view" scroll-x="true" scroll-with-animation :scroll-left="scrollLeft">
<view class="menu-topic-view" v-for="(item,index) in tabs" :id="'tabNum'+item.id" :key="index"
@click="swichMenu(index)">
<view :class="currentTab==index ? 'menu-topic-act' : 'menu-topic'">
<text class="menu-topic-text">{{ item.name }}</text>
<view class="menu-topic-bottom">
<view class="menu-topic-bottom-color"></view>
</view>
</view>
</view>
</scroll-view>
<!-- 内容 -->
<view class="bodyl">
<view v-for="(m,i) in artMiniMajorList" :key="i" :style="i>0?'margin-top:50rpx':''">
<view class="majorTypeTitle">
<text class="name">{{ m.majorTypeName }}</text>
<view class="majorNum"><text style="float: right">{{ m.majorList.length }}</text></view>
</view>
<scroll-view class="nav-bar" scroll-x>
<!-- 要想使用flex布局实现横向滚动就要在scroll-view里加一层容器block包裹并且使用子组件才会出现滚动效果 -->
<view class="nav-bar-wrap">
<block v-for="(item, index) in m.majorList" :key="index">
<view class="nav-bar-item">
<view class="majorItem" @click="openMajorDetail(item,m.majorTypeName)">
<view style="display: flex;">
<view style="width: 90%">
<view style="display: flex;">
<text class="majorName" style="font-size: 30rpx">{{ item.majorName }}</text>
</view>
<view style="display: flex;margin-top: 30rpx">
<view class="semester" style="width: 50%;font-size: 25rpx">
<text style="color:#8999a3">学制</text>
<text v-if="item.semester">{{item.semester}}</text>
</view>
<view class="schoolNum" style="width: 40%;font-size: 25rpx;">
<view style="float: right">
<text style="color:#8999a3">开设院校</text>
<text>{{ item.schoolNum||'0'}}</text>
</view>
</view>
</view>
</view>
<view style="width: 10%">
<image :src="ImagesConstant.keyboard.arrowRightWhite"
style="position:relative;left: 10rpx;top: 30rpx;border-radius: 30rpx;background-color: #3d7dfd;width: 40rpx;height: 40rpx"/>
</view>
</view>
</view>
</view>
</block>
</view>
</scroll-view>
</view>
</view>
</view>
</template>
<style scoped lang="scss">
.body-view {
width: 100%;
overflow: hidden;
background-color: white;
}
/*tabs 栏*/
.top-menu-view {
display: flex;
position: fixed;
z-index: 100;
//top: 84rpx;
/* #ifdef H5 */
top: 84rpx;
/* #endif */
/* #ifndef H5 */
top: 0rpx;
/* #endif */
left: 0;
white-space: nowrap;
width: 100%;
background-color: white;
height: 86rpx;
line-height: 86rpx;
border-top: 1rpx solid #d8dbe6;
.menu-topic-view {
display: inline-block;
white-space: nowrap;
height: 86rpx;
position: relative;
width: 50%;
text-align: center;
.menu-topic-text {
font-size: 30rpx;
color: #303133;
padding: 10rpx 40rpx;
font-weight: 500;
}
.menu-topic-bottom {
position: absolute;
bottom: 0;
width: 100%;
.menu-topic-bottom-color {
width: 40rpx;
height: 4rpx;
}
}
.menu-topic-act .menu-topic-bottom {
display: flex;
justify-content: center;
}
.menu-topic-act .menu-topic-text {
color: #4975fd;
}
.menu-topic-act .menu-topic-bottom-color {
background: #4975fd;
}
}
}
.swiper-box-list {
width: 95%;
padding: 20rpx 40rpx;
flex: 1;
background-color: #FFFFFF;
height: calc(100vh - 251rpx);
.swiper-topic-list {
width: 100%;
}
}
/* 隐藏滚动条,但依旧具备可以滚动的功能 */
:deep(.uni-scroll-view::-webkit-scrollbar) {
display: none
}
.bodyl {
margin-top: 85rpx;
padding: 30rpx;
}
page {
background-color: white !important;
}
/*横向滚动列表 start*/
scroll-view {
white-space: nowrap;
}
/* 去除滚动条 */
::-webkit-scrollbar {
display: none;
width: 0;
height: 0;
color: transparent;
}
.nav-bar-wrap { //
display: flex;
flex-flow: row wrap;
width: 2600rpx;
}
.nav-bar-item {
width: 500rpx;
display: flex;
height: 170rpx;
margin-top: 18rpx;
margin-right: 18rpx;
position: relative;
}
/*横向滚动列表 end*/
.majorItem {
padding: 30rpx;
border-radius: 10rpx;
width: 500rpx;
background-color: #f0f0f0;
}
.majorTypeTitle {
display: flex;
height: 50rpx;
line-height: 50rpx;
}
.majorTypeTitle .name{
font-size: 30rpx;
font-weight: 600;
width: 80%;
}
.majorTypeTitle .majorNum{
color:#3d7dfd;
width: 20%;
}
</style>

195
pages/zyb/major/list.vue Normal file
View File

@ -0,0 +1,195 @@
<!--
上下翻形式
-->
<script>
import ApiConstant from "@/common/ApiConstant";
import Request from '@/common/request'
import ImagesConstant from "@/common/ImagesConstant";
import {arrayIsNotEmpty} from "@/common/util";
let request = new Request()
export default {
computed: {
ImagesConstant() {
return ImagesConstant
}
},
data() {
return {
majorName: '',
tabs: [
{
id: 1,
name: '本科'
}, {
id: 2,
name: '专科'
}
],
scrollLeft: 0,
currentTab: 0,
old: {
scrollTop: 0
},
tabCurrent: '1',
// Tab
artMajor:[],
artMiniMajorList:[],
majorTypeIndex: 0,
}
},
onLoad() {
this.getMajorList()
},
methods: {
openMajorDetail: function (e, majorTypeName) {
console.log(e)
uni.navigateTo({
url: '/pages/zyb/major/detail?majorCode=' + e.majorCode + "&majorTypeName=" + majorTypeName
})
},
swichMenu(id) {
this.currentTab = id
console.log(id)
//this.tabCurrent = 'tabNum'+ id
// swiper
this.scrollLeft = 0;
for (let i = 0; i < id; i++) {
this.scrollLeft += 60
console.log(this.scrollLeft, 60, id)
}
this.getMajorList()
},
/*切换 专业类*/
switchMajorType(e, index) {
this.majorTypeIndex = index
},
getMajorList() {
let that = this
let educationalLevel = this.tabs[this.currentTab].id
let thisLevelMajorList = this.artMajor[educationalLevel]
if (arrayIsNotEmpty(thisLevelMajorList)) {
//
this.artMiniMajorList = thisLevelMajorList
return
}
request.get(ApiConstant.Major.miniMajorList, {
majorName: this.majorName,
educationalLevel: educationalLevel
}).then(r => {
console.log(r)
if (r.success) {
this.artMajor[educationalLevel] = r.result
this.artMiniMajorList = r.result
}
}).catch(err => {
}).finally(() => {
});
}
}
}
</script>
<template>
<!-- 使用scroll-view实现tabs滑动切换 -->
<view style="padding: 0 200rpx" class="background-white border-bottom border-top">
<view style="" class="menu-topic-view " v-for="(item,index) in tabs" :id="'tabNum'+item.id" :key="index"
@click="swichMenu(index)">
<view :class="currentTab===index ? 'menu-topic-act' : 'menu-topic'">
<text class="menu-topic-text">{{ item.name }}</text>
<view class="menu-topic-bottom">
<view class="menu-topic-bottom-color"></view>
</view>
</view>
</view>
</view>
<view class="flex" style="height: 93%">
<!--专业类别-->
<scroll-view scroll-y="true" class="flex-item-25 background-f6f6f6">
<view>
<view class="flex font-weight-550" style="padding: 25rpx 0; min-height: 60rpx"
:class="majorTypeIndex===index?'background-white':''"
@click="switchMajorType(item,index)"
v-for="(item,index) in artMiniMajorList" :key="index">
<text style="margin: auto 10rpx" :class="majorTypeIndex===index?'blue background-white':'slateGray'">
{{ item.majorTypeName }}
</text>
</view>
</view>
</scroll-view>
<scroll-view scroll-y="true" class="flex-item-75 background-white">
<view class="padding30" v-if="artMiniMajorList && artMiniMajorList.length>0 && artMiniMajorList[majorTypeIndex]">
<view v-for="(item,index) in artMiniMajorList[majorTypeIndex].majorList" :key="index">
<view class="majorItem background-fafafa" @click="openMajorDetail(item,artMiniMajorList[majorTypeIndex].majorTypeName)">
<view class="majorName font-weight-b font-size-mini3">{{ item.majorName }}</view>
<view class="flex slateGray" style="margin-top: 20rpx">
<view class="flex-item-4">
<text>学制</text>
<text v-if="item.semester" class="black">{{item.semester}}</text>
</view>
<view class="flex-item-6">
<text>开设院校</text>
<text>{{ item.schoolNum||'0'}}</text>
</view>
</view>
</view>
</view>
</view>
</scroll-view>
</view>
</template>
<style scoped lang="scss">
/*tabs 栏*/
.menu-topic-view {
background-color: white;
display: inline-block;
white-space: nowrap;
height: 86rpx;
position: relative;
width: 50%;
text-align: center;
.menu-topic-text {
font-size: 30rpx;
color: #708090;
padding: 10rpx 40rpx;
font-weight: 500;
}
.menu-topic-bottom {
position: absolute;
bottom: 0;
width: 100%;
.menu-topic-bottom-color {
width: 40rpx;
height: 4rpx;
}
}
.menu-topic-act .menu-topic-bottom {
display: flex;
justify-content: center;
}
.menu-topic-act .menu-topic-text {
color: #4975fd;
font-weight: 600;
}
.menu-topic-act .menu-topic-bottom-color {
background: #4975fd;
}
}
.majorItem {
margin-bottom: 30rpx;
padding: 30rpx;
border-radius: 10rpx;
}
</style>

115
pages/zyb/npee/index.vue Normal file
View File

@ -0,0 +1,115 @@
<script>
import StaticConstant from "@/common/StaticConstant";
export default {
name: "npee-index",
components: {},
computed: {
StaticConstant() {
return StaticConstant
}
},
data() {
return {
schoolList: [
{
schoolName: '首都师范大学',
type: '专业学位',
majorName: '音乐教育'
},
{
schoolName: '首都师范大学',
type: '专业学位',
majorName: '美术教育'
},
{
schoolName: '首都体育学院',
type: '专业学位',
majorName: '运动训练'
}
]
}
}
}
</script>
<template>
<view class="home">
<view class="header border-top border-bottom">
<view class="search-view">
<view style="display: flex;height: 100rpx;border-bottom: 1px solid #f5f5f5;">
<view style="width: 90%">
<uni-search-bar class="uni-mt-10" radius="100" placeholder="请输入院校名称" v-model="schoolName"
@clear="clearSchoolInput" cancelButton="none" @confirm="searchSchoolClick"/>
</view>
<view style="width: 10%;line-height: 100rpx">
<text @click="searchSchoolClick">搜索</text>
</view>
</view>
</view>
<view class="tab-head border-bottom slateGray">
<view class="th">院校</view>
<view class="th">考研类别</view>
<view class="th">专业</view>
</view>
</view>
<scroll-view scroll-y="true" class="schoolList">
<view class="schoolItem border-bottom" v-for="(item,index) in schoolList" :key="index">
<view class="td font-weight-550">
{{ item.schoolName }}
</view>
<view class="td">
{{ item.type }}
</view>
<view class="td">
{{ item.majorName }}
</view>
</view>
</scroll-view>
</view>
</template>
<style scoped lang="scss">
.home {
background-color: #ffffff;
height: 100%;
}
.header {
}
.search-view {
width: 95%;
margin: 0 auto;
border-bottom: 3rpx solid #f6f6f6;
}
.tab-head {
display: flex;
flex-direction: row;
.th {
width: 33.3%;
text-align: center;
line-height: 80rpx;
}
}
.schoolList {
height: 85%;
}
.schoolList .schoolItem {
display: flex;
flex-direction: row;
line-height: 90rpx;
}
.schoolList .schoolItem .td {
width: 33.3%;
color: #333333;
text-align: center;
}
</style>

1
pages/zyb/npee/readme.md Normal file
View File

@ -0,0 +1 @@
艺体考研

View File

@ -0,0 +1,15 @@
<template>
<view>
</view>
</template>
<script setup lang="ts">
</script>
<style scoped lang="scss">
</style>

View File

@ -0,0 +1,133 @@
<script>
import StaticConstant from "@/common/StaticConstant";
import Request from '@/common/request'
import ImagesConstant from "@/common/ImagesConstant";
let request = new Request()
export default {
components: {},
computed: {
ImagesConstant() {
return ImagesConstant
},
StaticConstant() {
return StaticConstant
}
},
data() {
return {
searchText: '',
list: [
{
title: '新疆艺术学院2024年本科招生简章',
url: ''
},
{
title: '新疆艺术学院2024年本科招生简章招生简章招生简章招生简章招生简章',
url: ''
}
]
}
},
methods: {
clearSearchInput() {
},
searchClick() {
}
}
}
</script>
<template>
<view class="header">
<view class="search-view">
<view style="width: 90%">
<uni-search-bar class="uni-mt-10" radius="100" placeholder="请输入院校名称" v-model="searchText"
@clear="clearSearchInput" cancelButton="none" @confirm="searchClick"/>
</view>
<view style="width: 10%;line-height: 100rpx">
<text @click="searchClick">搜索</text>
</view>
</view>
</view>
<view class="body">
<view class="image1">
<image src="http://files.yitisheng.vip/images/zsjz2.png" style="height: 200rpx;width:100%"/>
</view>
<!--简章列表-->
<view class="list">
<view class="list-item" :class="index===list.length-1?'list-item-end':''" v-for="(item,index) in list" :key="index">
<view class="title">
<text>{{ item.title }}</text>
</view>
<view class="right-icon">
<image :src="ImagesConstant.keyboard.arrowRight" style="width: 40rpx;height: 40rpx"/>
</view>
</view>
</view>
</view>
</template>
<style scoped lang="scss">
/*搜索栏 start*/
.header {
background-color: white;
.search-view {
display: flex;
height: 100rpx;
border-top: 1px solid #f5f5f5;
border-bottom: 1px solid #f5f5f5;
}
}
:deep(.uni-searchbar) {
padding: 15rpx 10rpx !important;
}
/*搜索栏 end*/
/*中间部分 start*/
.body {
background-color: white;
.image1 {
padding: 30rpx;
}
.list {
padding: 0 30rpx;
.list-item {
border-bottom: 1px solid #f5f5f5;
display: flex;
min-height: 100rpx;
.title {
color: #666666;
font-size: 30rpx;
width: 80%;
margin: 30rpx 0;
}
.right-icon {
width: 20%;
line-height: 100rpx;
margin: auto 0;
image {
float: right;
position: static;
}
}
}
.list-item-end {
border-bottom: none !important;
}
}
}
/*中间部分 end*/
</style>

View File

@ -0,0 +1,426 @@
<!--
算投档 页面
-->
<script>
import StaticConstant from "@/common/StaticConstant";
import ApiConstant from "@/common/ApiConstant";
import Request from '@/common/request'
let request = new Request()
export default {
name: "calculateInvestment",
components: {},
computed: {
StaticConstant() {
return StaticConstant
}
},
data() {
return {
show:true,
//
provinceArray: StaticConstant.provinceList,
provinceIndex: 0,
//
professionalCategoryArray: StaticConstant.professionalCategoryList.filter((item)=>{
return item.value !=='体育类'
}),
professionalCategoryIndex: 0,
//
categoryArray: StaticConstant.categoryList,
categoryIndex: 0,
//
batchArray: StaticConstant.batchAllList,
batchIndex: 0,
culturalScore: '',//
professionalScore: '',//
list:[
{
rulesEnrollProbability:'文过专排',
probabilityOperator:'专业分',
score:1,
schoolNum:11
},
{
rulesEnrollProbability:'文3专7',
probabilityOperator:'文化分*0.04+专业分+0.233',
score:1,
schoolNum:5
}
]
}
},
methods: {
bindProvinceArrayPickerChange(e) {
this.provinceIndex = e.detail.value
},
bindCategoryArrayPickerChange(e) {
this.categoryIndex = e.detail.value
},
bindProfessionalCategoryArrayPickerChange(e) {
this.professionalCategoryIndex = e.detail.value
},
bindBatchArrayPickerChange(e) {
this.batchIndex = e.detail.value
},
inputCulturalScoreClick(e) {
const o = e.detail.value
const inputRule = /[^\d]/g
this.$nextTick(() => {
this.culturalScore = o.replace(inputRule, '');
})
},
inputProfessionalScoreClick(e) {
const o = e.detail.value
const inputRule = /[^\d]/g
this.$nextTick(() => {
this.professionalScore = o.replace(inputRule, '');
})
},
clickCalculate(){
if (!this.culturalScore) {
uni.showToast({
title: '请输入文化分',
icon: 'none'
})
return
}
if (!this.professionalScore) {
uni.showToast({
title: '请输入专业分',
icon: 'none'
})
return
}
this.show = !this.show
if (!this.show) {
request.get(ApiConstant.Major.calculateInvestment, {
province:this.provinceArray[this.provinceIndex].label,
culturalScore: this.culturalScore,//
professionalScore: this.professionalScore,//
category:this.categoryArray[this.categoryIndex].name,
professionalCategory:this.professionalCategoryArray[this.professionalCategoryIndex].label,
batch:this.batchArray[this.batchIndex].value
}).then(r => {
console.log(r)
if (r.success) {
console.log(r)
this.list = r.result
}
}).catch(err => {
}).finally(() => {
});
}
}
}
}
</script>
<template>
<view class="body">
<view class="flex">
<view class="title marginCenter">
<text>轻松投档分测算</text>
</view>
</view>
<view v-if="show">
<!--分数-->
<view class="flex flex" style="margin-top: 100rpx">
<view class="flex-item-4">
<view class="fbox">
<view class="flex" style="width: 50%">
<view class="ftitle">文化分</view>
</view>
<view class="flex" style="padding: 30rpx;font-size: 35rpx">
<input type="number" style="text-align: center;" v-model="culturalScore" @input='inputCulturalScoreClick'
placeholder="输入分数"/>
</view>
<view class="flex flex">
<view class="right-text"></view>
</view>
</view>
</view>
<view class="flex-item-4 margin-right">
<view class="fbox">
<view class="flex" style="width: 50%">
<view class="ftitle-orange">专业分</view>
</view>
<view class="flex" style="padding: 30rpx;font-size: 35rpx">
<input type="number" style="text-align: center;" v-model="professionalScore"
@input='inputProfessionalScoreClick' placeholder="输入分数"/>
</view>
<view class="flex flex">
<view class="right-text-orange"></view>
</view>
</view>
</view>
</view>
<!--下拉项-->
<view class="options">
<!--省份-->
<view class="flex flex option-item">
<view class="flex-item-3">
<view class="left-t">省份<label></label></view>
</view>
<view class="flex-item-7 ml10">
<picker @change="bindProvinceArrayPickerChange" :value="provinceIndex" :range="provinceArray"
range-key='label'>
<view class="right-input">{{ provinceArray[provinceIndex].label }}</view>
</picker>
</view>
</view>
<!--文理-->
<view class="flex flex option-item">
<view class="flex-item-3">
<view class="left-t">文理<label></label></view>
</view>
<view class="flex-item-7 ml10">
<picker @change="bindCategoryArrayPickerChange" :value="categoryIndex" :range="categoryArray"
range-key='name'>
<view class="right-input">{{ categoryArray[categoryIndex].name }}</view>
</picker>
</view>
</view>
<!--统考类别-->
<view class="flex flex option-item">
<view class="flex-item-3">
<view class="left-t">统考类别<label></label></view>
</view>
<view class="flex-item-7 ml10">
<picker @change="bindProfessionalCategoryArrayPickerChange" :value="professionalCategoryIndex"
:range="professionalCategoryArray" range-key='label'>
<view class="right-input">{{ professionalCategoryArray[professionalCategoryIndex].label }}</view>
</picker>
</view>
</view>
<!--批次-->
<view class="flex flex option-item">
<view class="flex-item-3">
<view class="left-t">批次<label></label></view>
</view>
<view class="flex-item-7 ml10">
<picker @change="bindBatchArrayPickerChange" :value="batchIndex" :range="batchArray" range-key='label'>
<view class="right-input">{{ batchArray[batchIndex].label }}</view>
</picker>
</view>
</view>
</view>
</view>
<view v-else>
<view class="options">
<!--省份-->
<view class="flex flex option-item">
<view class="flex-item-3">
<view class="left-t">省份<label></label></view>
</view>
<view class="flex-item-7 ml10">
<view class="right-input">{{ provinceArray[provinceIndex].label }}</view>
</view>
</view>
<!--批次-->
<view class="flex flex option-item">
<view class="flex-item-3">
<view class="left-t">统考类别<label></label></view>
</view>
<view class="flex-item-7 ml10">
<view class="right-input">{{ professionalCategoryArray[professionalCategoryIndex].label }}</view>
</view>
</view>
<!--批次-->
<view class="flex flex option-item">
<view class="flex-item-3">
<view class="left-t">批次<label></label></view>
</view>
<view class="flex-item-7 ml10">
<view class="right-input">{{ batchArray[batchIndex].label }}</view>
</view>
</view>
<!--文化成绩专业成绩-->
<view class="flex flex option-item">
<view class="flex-item-3">
<view class="left-t width1">文化成绩<label></label></view>
</view>
<view class="flex-item-2 ml10">
<view class="right-input">{{ culturalScore }}</view>
</view>
</view>
<view class="flex flex option-item">
<view class="flex-item-3">
<view class="left-t width1">专业成绩<label></label></view>
</view>
<view class="flex-item-2 ml10">
<view class="right-input">{{ professionalScore }}</view>
</view>
</view>
<view class="flex flex option-item">
<view class="flex-item-10">
<view class="left-t align-left">本批次所有院校录取规则为<label></label></view>
</view>
</view>
</view>
<!--数据列表-->
<view class="datalist">
<!--表头-->
<view class="th">
<text>类型</text>
<text>录取规则</text>
<text>综合分</text>
</view>
<view class="tr" v-for="(item,index) in list" :key="index">
<text class="text">{{item.rulesEnrollProbability}}</text>
<text class="text" style="font-size: 23rpx">{{item.probabilityOperator}}</text>
<view class="zhf">
<text v-if="item.score">{{item.score}}</text>
<view style="border: 1rpx solid #399ee8;border-radius: 10rpx;width: 160rpx;padding: 5rpx 8rpx">查看院校{{item.schoolNum}}</view>
</view>
</view>
</view>
</view>
<view class="bottom">
<view style="margin: 0 auto">
<view class="" @click="clickCalculate"
style="background-color:#ed9916;color:white;font-size: 40rpx;width: 200rpx;height: 200rpx;border-radius: 50%;text-align: center;line-height: 200rpx">
<text>{{show?'计算':'重置'}}</text>
</view>
</view>
</view>
</view>
</template>
<style scoped lang="scss">
.body {
background: white;
height: 100%;
padding: 0 15%;
}
/*标题*/
.title {
padding-top: 50rpx;
color: #399ee8;
font-size: 60rpx;
font-weight: 600;
}
.fbox {
min-height: 200rpx;
border-radius: 10rpx;
box-shadow: 0 0 10rpx 5rpx #aaa;
.ftitle {
background-color: #399ee8;
color: white;
border-radius: 10rpx;
font-size: 28rpx;
margin: 0 auto;
text-align: center;
height: 40rpx;
line-height: 40rpx;
}
}
.ftitle-orange {
background-color: #ed9916;
color: white;
border-radius: 10rpx;
font-size: 28rpx;
margin: 0 auto;
text-align: center;
height: 40rpx;
line-height: 40rpx;
}
.right-text {
color: #399ee8;
margin: 0 10rpx 0 auto;
height: 40rpx;
line-height: 40rpx;
}
.right-text-orange {
color: #ed9916;
margin: 0 10rpx 0 auto;
height: 40rpx;
line-height: 40rpx;
}
.margin-right {
margin: 0 0 0 auto;
}
.options {
margin-top: 100rpx;
.left-t {
background-color: #399ee8;
color: white;
height: 50rpx;
line-height: 50rpx;
border-radius: 10rpx;
padding: 5rpx 10rpx;
font-size: 33rpx;
text-align: justify;
label {
display: inline-block;
padding-left: 100%;
}
}
.align-left{
text-align: left !important;
}
.right-input {
padding: 5rpx 10rpx;
height: 50rpx;
line-height: 50rpx;
font-size: 35rpx;
}
.option-item {
margin-bottom: 10rpx;
}
}
.ml10 {
margin-left: 10rpx;
}
.bottom {
display: flex;
/*position: fixed;*/
/*bottom: 80rpx;*/
padding: 0 20%;
}
.datalist{
height: 700rpx;
overflow:scroll;
text-align: center;
.th{
display: flex;
text{
width: 33%;
font-size: 30rpx;
font-weight: 600;
}
}
.tr{
height: 100rpx;
margin: 30rpx 0;
display: flex;
.text{
margin: auto 0;
font-size: 28rpx;
width: 33%;
}
.zhf{
color: #399ee8;
font-size: 25rpx;
}
.text2{
}
}
}
</style>

View File

@ -0,0 +1,314 @@
<!--
查排名 页面
-->
<script>
import StaticConstant from "@/common/StaticConstant";
import ApiConstant from "@/common/ApiConstant";
import Request from '@/common/request'
let request = new Request()
export default {
name: "checkRanking",
components: {},
computed: {
StaticConstant() {
return StaticConstant
}
},
data() {
return {
province:'河南',
score: '',
list:[],
tab: 'professional',
show: true,
modeClass: 'fade',
styles: {},
array: ['河南'],
index: 0,
professionalCategoryArray:StaticConstant.professionalCategoryList,
professionalCategoryIndex:0,
fdbList:[
{
score:285,
personNum:36
},
{
score:280,
personNum:59
},
{
score:275,
personNum:161
},
]
}
},
methods: {
handle(type) {
this.show = !this.show
this.modeClass = type
},
/*切换分数类型*/
switchTab(e) {
this.tab = e
},
/*点击查询按钮*/
clickSearch() {
if (this.status === 'show') {
this.handle('fade')
return;
}
if (!this.score) {
uni.showToast({
title: '请先输入分数',
icon: 'none'
})
return
}
this.handle('fade')
if (!this.show) {
this.getList()
}
},
getList(){
request.get(ApiConstant.Score.scoreSegmentSearchByScore, {
province:this.array[this.index],
score:this.score,
professionalCategory:this.professionalCategoryArray[this.professionalCategoryIndex].label
}).then(r => {
console.log(r)
if (r.success) {
console.log(r)
this.list = r.result
}
}).catch(err => {
}).finally(() => {
});
},
bindPickerChange(e){
console.log('picker发送选择改变携带值为', e.detail.value)
this.index = e.detail.value
},
bindProfessionalCategoryArrayPickerChange(e){
console.log('picker发送选择改变携带值为', e.detail.value)
this.professionalCategoryIndex = e.detail.value
}
}
}
</script>
<template>
<view class="body">
<view class="example">
<uni-transition ref="ani" custom-class="transition" :mode-class="modeClass" :styles="styles"
:show="show">
</uni-transition>
<view style="transition:opacity 0.3s" :class="show?'t-show':'t-close'">
<view class="b1">
<view class="title">
<text>艺考排名查询</text>
</view>
</view>
<view class="b2">
<!--输入分数-->
<view style="display: flex;padding: 30rpx 60rpx">
<view style="width: 100%">
<input style="font-size: 35rpx;text-align:center" v-model="score" placeholder="请输入分数"/>
</view>
</view>
<!--切换成绩-->
<view style="padding: 2rpx 30rpx;text-align: center;">
<view style="display: flex;border-top:1px #dddddd dashed;">
<view class="scoreTitle" :class="tab==='professional'?'scoreTitle-active':''" @click="switchTab('professional')">
<text>统考成绩</text>
</view>
<!-- <view class="scoreTitle" :class="tab==='cultural'?'scoreTitle-active':''" @click="switchTab('cultural')">
<text>文化成绩</text>
</view>-->
</view>
</view>
<view style="display: flex;padding: 30rpx 60rpx">
<view style="width: 50%;margin: 0 auto;text-align: center;">
<picker @change="bindPickerChange" :value="index" :range="array">
<view class="uni-input">{{array[index]}}</view>
</picker>
</view>
</view>
<view style="display: flex;padding: 30rpx 60rpx">
<view style="width: 50%;margin: 0 auto;text-align: center;">
<picker @change="bindProfessionalCategoryArrayPickerChange" :value="professionalCategoryIndex" :range="professionalCategoryArray" range-key="label">
<view class="uni-input">{{professionalCategoryArray[professionalCategoryIndex].label}}</view>
</picker>
</view>
</view>
</view>
<view class="fdb" v-if="false">
<view class="table">
<view class="tr tr-line-while">
<view class="th">分数段</view>
<view class="th">人数</view>
</view>
<view class="tr" v-for="(item,index) in fdbList" :key="index" :class="index%2===0?'backstar':'backwhile'">
<view class="td">{{item.score}}</view>
<view class="td">{{item.personNum}}</view>
</view>
</view>
</view>
</view>
</view>
<view class="b1" style="transition:opacity 0.5s" :class="!show?'t-show':'t-close'">
<view class="title2">
<text style="display: flex">{{province}}{{tab==='professional'?'统考成绩':'文化成绩'}}{{score}}</text>
<text style="display: flex">历年位次情况如下:</text>
</view>
<view class="list">
<view v-for="(item,index) in list" :key="index" class="item">
<view class="" v-if="item.type === 1">
<view style="display: flex">{{item.year}}</view>
<view style="display: flex">{{item.beginScore}}<text v-if="item.endScore">~{{item.endScore-1}}</text> 超越全省</view>
<view style="display: flex"><view class="orange">{{item.rate}}%</view>的考生</view>
<view class="item flexWrap">
<text>排名介于</text>
<text class="orange">{{item.endRank}}</text>
<text>~</text>
<text class="orange">{{item.startRank}}</text>
<text>之间</text>
</view>
</view>
<view class="" v-else-if="item.type === 2">
<view style="display: flex">您的分数已低于{{item.year}}公布的最低分最低分为{{item.beginScore}}排名为{{item.rank}}</view>
</view>
</view>
</view>
</view>
<view class="b3">
<view class="max-btn " @click="clickSearch" :class="show?'marginTopBot10':'margin-top-300'">
<view class="btn">
{{ show ? '查询' : '重置' }}
</view>
</view>
</view>
</view>
</template>
<style scoped lang="scss">
.body {
height: 100%;
background: linear-gradient(#ffffff,#fffcf0,#fef4d2);
}
/*标题*/
.b1 {
padding-top: 100rpx;
text-align: center;
font-size: 50rpx;
margin-bottom: 100rpx;
}
.b2 {
}
.title2{
margin-left: 25%;
margin-right: 25%;
font-size: 40rpx;
color:#f9ca1b;
}
.list{
margin-top: 30rpx;
font-size: 35rpx;
text-align: left;
margin-left: 25%;
margin-right: 20%;
.item{
margin-bottom: 20rpx;
}
}
.scoreTitle {
width: 100%;
font-size: 30rpx;
transition: 0.3s;
}
/*选择的tab*/
.scoreTitle-active {
font-size: 35rpx;
border-top: 6rpx solid #f9ca1b;
}
/*查询按钮*/
.max-btn {
width: 200rpx;
height: 200rpx;
text-align: center;
background-color: #f9ca1b;
border-radius: 50%;
display: grid;
place-items: center;
position: relative;
right: 38%;
left: 37%;
//bottom: 450rpx;
}
/*二层按钮*/
.btn {
color: #f9ca1b;
font-size: 40rpx;
line-height: 180rpx;
width: 180rpx;
height: 180rpx;
background-color: #3e3a39;
border-radius: 50%;
}
.t-show{
}
.t-close{
display: none;
}
.uni-input{
font-size: 35rpx;
background: none !important;
}
/*分段表 start*/
.fdb{
position: relative;
top: 300rpx;
padding: 20rpx 50rpx;
}
.fdb .table{
}
.fdb .table .tr{
display: flex;
flex-direction: row;
flex-wrap: wrap;
height: 70rpx;
line-height: 70rpx;
}
.tr-line-while{
background-color: #ffffff;
border-radius: 15rpx;
}
.fdb .table .tr .th{
text-align: center;
width: 49.5%;
color: #9fa0a0;
}
.fdb .table .tr .td{
text-align: center;
width: 49.5%;
color: #000000;
}
.backwhile{
background-color: white;
}
.backstar{
background-color: #f7f8f8;
}
/*分段表 end*/
</style>

View File

@ -0,0 +1,82 @@
<!--
文化分 测算 页面
-->
<script>
import Request from '@/common/request'
import StaticConstant from "@/common/StaticConstant";
let request = new Request()
export default {
data() {
return {
accordionVal:0,
one:[
{
title:'读懂招生简章和招生章程',
content:'高校信息:院校标签(中央直属、省属)、院校性质(公办、民办)、收费标准、学制、奖学金、在哪就读等对文化成绩、专业成绩要求:' +
'重点大学会要求文化控制线和专业控制线达到一定的水平例如普通本科线、专业满分的百分之80。单科要求英语限制:名校、重点大学、中外合作都要求外语成绩,' +
'外语语种语文限制:重点大学的理论类的专业要求语文成绩文化加分政策:一般加分政策适用于本地区的院校,' +
'需打电话核实投档比例:顺序志愿1:1.2平行志愿1:1.05,看院校规定录取原则:文过专排、专过文排、综合分,是否遵循平行志愿的投档规则。'
},
{
title:'艺考生可以兼报普考生的志愿吗?',
content:'一般情况下,可以兼报普考生志愿,但同一批次不能兼报,详情仔细查看各省填报政策。'
},
{
title:'信息注意事项',
content:'在设置分数信息时,建议您如实填写相关信息,系统会以您填写的信息为依据进行智能匹配。'
},
{
title:'科目与艺考方向填错,如何修改?',
content:'切换至“个人中心”页面,找到“修改成绩” 点击进入后即可修改对应信息。'
},
{
title:StaticConstant.systemName+'作用',
content:StaticConstant.systemName+'是一款专注于艺术生高考志愿填报辅助的APP。'+StaticConstant.systemName+'为考生提供全面的艺考信息、院校资料及其他辅助报考功能,针对全国高校招生情况以及本年高考数据进行云计算,帮助考生做出科学合理的报考规划。'
},
{
title:'如何联系我们',
content:'问题联系邮箱yitisheng@163.com'
}
]
}
},
methods:{
change(e) {
console.log(e);
}
}
}
</script>
<template>
<view class="body">
<uni-collapse accordion v-model="accordionVal" @change="change">
<uni-collapse-item :title="item.title" v-for="(item,index) in one" :key="index">
<view class="content">
<text class="text">{{item.content}}</text>
</view>
</uni-collapse-item>
</uni-collapse>
</view>
</template>
<style scoped lang="scss">
.body{
border-top:3rpx solid #f6f6f6;
}
.example-body {
flex-direction: column;
flex: 1;
}
.content {
padding: 15px;
}
.text {
font-size: 14px;
color: #666;
line-height: 20px;
}
</style>

View File

@ -0,0 +1,30 @@
<!--免责声明-->
<script>
export default {
name: "disclaimer"
}
</script>
<template>
<view class="body">
<text class="text-l uni-flex flex">1.本平台数据均来源于教育考试院和高校官方公布的信息</text>
<text class="text-l uni-flex flex">2.数据显示为空代表该高校当年未在考生所在省市招生</text>
<text class="text-l uni-flex flex">3.本平台"智能推荐"功能是依据历年高校录取数据和当年招生计划结合考生分数为考生 和家长推荐适合批次的大学高考填报志愿是一个动态化的过程本系统推荐的院校仅作为参考正式填报志愿时还需要结合各种信息进行报考本平台不对录取结果提供任何担保</text>
<text class="text-l uni-flex flex">4.本平台是为高考生提供信息参考请以各高校正式公布数据为准如果您发现系统中的任何错误请您拍照说明问题并反馈给我们本平台会第一时间改正</text>
<text class="text-l uni-flex flex">5.本平台所提供的所有服务有效期为一年过期后所有数据将清空</text>
<text class="text-l uni-flex flex">6.平台所有活动和服务的最终解释权归本平台所有</text>
</view>
</template>
<style scoped lang="scss">
.body{
margin: 30rpx;
background-color: white;
border-radius: 10rpx;
padding: 30rpx;
}
.text-l{
font-size: 28rpx;
margin-bottom: 10rpx;
}
</style>

View File

@ -0,0 +1,63 @@
<template>
<view>
<l-circle current="30" percent="30" size="80px" strokeColor="#c83428">
<view class="centerTxt">
<view class="num">
80%
</view>
<view class="txt">
正确率
</view>
</view>
</l-circle>
</view>
<view class="progressBox">
<wt-progress-circle :percent="80" :size="168" progressColor="#4ADA88" id='a'>
<view class="centerTxt">
<view class="num">
80%
</view>
<view class="txt">
正确率
</view>
</view>
</wt-progress-circle>
</view>
</template>
<script>
</script>
<style lang="scss" scoped>
.progressBox {
position: relative;
width: 168rpx;
height: 168rpx;
margin: 0 auto;
margin-top: 33rpx;
}
.centerTxt {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
.num {
font-size: 30rpx;
font-family: Arial;
font-weight: bold;
color: #38393A;
}
.txt {
font-size: 22rpx;
font-family: PingFang SC;
font-weight: 400;
color: #8A8B8B;
margin-top: 10rpx;
}
}
</style>

View File

@ -0,0 +1,39 @@
<script>
export default {
components: {},
data() {
return {
colors:'#fa436a',
//
stepData: [
{
name: '本科专业更新',
time: '2024-02-12 10:01:49',
isNow: 0,
type: 1,
desc: '艺术类'
},
{
name: '专科专业更新',
time: '2024-02-12 12:05:30',
isNow: 1,
type: 1,
desc: '艺术类'
}
]
}
},
onLoad() {
//
this.stepData.reverse()
},
}
</script>
<template>
<cc-defineStep :colors="colors" :stepData="stepData"></cc-defineStep>
</template>
<style scoped lang="scss">
</style>

200
pages/zyb/other/useHelp.vue Normal file
View File

@ -0,0 +1,200 @@
<!--志愿卡说明-->
<script>
import StaticConstant from "@/common/StaticConstant";
export default {
name: "user-help",
computed: {
StaticConstant() {
return StaticConstant
}
}
}
</script>
<template>
<view class="body">
<text class="text-l uni-flex flex" style="color:#3cafef;font-size: 50rpx;font-weight: 600">{{StaticConstant.systemName}}用户使用说明
</text>
<view class="text-group">
<text class="text-l uni-flex flex red bold">产品简介</text>
<text class="text-l uni-flex flex">
{{StaticConstant.systemName}}解决了高考艺术类志愿填报中出现录取规则多变院校录取维度不统一等限制性条件难题在基于大数据的技术下通过统考专业分和文化分批次线院校专业提档线校考成绩与名次录取原则公式录取特殊规则等作为推断分析条件利用比率分析法推荐全国艺术类比值分布相近的专业根据筛选条件选择心仪的大学和专业
</text>
</view>
<view class="text-group">
<text class="text-l uni-flex flex red bold">简要说明</text>
<text class="text-l uni-flex flex">
1适用考生:艺术类考生(自主招生及普通类考生暂不适用)
</text>
<text class="text-l uni-flex flex">
1 适用批次:提前批次普通批次
</text>
<text class="text-l uni-flex flex">
1 系统数据来源于教育部各省考试院级各院校招生办
</text>
<text class="text-l uni-flex flex">
1 部分专业数据为空可能为当年不在查询地招生或者部分院校历年未公布若录取数据与院校公布不一致请以各院校公布数据为准
</text>
</view>
<view class="text-group">
<text class="text-l uni-flex flex red bold">核心功能</text>
</view>
<view class="text-group">
<text class="text-l uni-flex flex bold">志愿推荐</text>
<text class="text-l uni-flex flex">
根据考生输入的统考成绩和文化成绩利用比率分析法推荐所有批次的冲刺稳妥保底院校专业
</text>
<text class="text-l uni-flex flex">
a.历年专业录取数据
</text>
<text class="text-l uni-flex flex">
b.历年专业招生计划
</text>
<text class="text-l uni-flex flex">
c.历年专业录取规则和计算公式
</text>
<text class="text-l uni-flex flex">
d.对比去年招生专业录取最低分数计算录取比率
</text>
</view>
<view class="text-group">
<text class="text-l uni-flex flex bold">模拟填报</text>
<text class="text-l uni-flex flex">
a.根据本省的志愿填报规则设置不同的院校填报模式院校专业组填报模式及专业填报模式
</text>
<text class="text-l uni-flex flex">
b.各统考批次填报规则及专业填报个数根据本省规定
</text>
<text class="text-l uni-flex flex">
c.可以从智能填报中直接获取推荐概率
</text>
<text class="text-l uni-flex flex">
d.可自主删除不合适专业志愿
</text>
<text class="text-l uni-flex flex">
e.AI智能填报可用于一键生成志愿草表
</text>
<text class="text-l uni-flex flex">
f.填报建议中有对该省的艺考填报详细说明
</text>
</view>
<view class="text-group">
<text class="text-l uni-flex flex bold">查大学</text>
<text class="text-l uni-flex flex">
a.根据不同条件可搜索筛选招考院校
</text>
<text class="text-l uni-flex flex">
b.学校概况:学校介绍男女比例及官方网址院校地址基础信息
</text>
<text class="text-l uni-flex flex">
c.招生计划:招生章程往年招生批次和专业计划人数
</text>
<text class="text-l uni-flex flex">
d.录取数据:历年录取录取批次录取分数及专业计算规则
</text>
</view>
<view class="text-group">
<text class="text-l uni-flex flex bold">找专业</text>
<text class="text-l uni-flex flex">
a.根据不同条件可搜索筛选相关专业
</text>
<text class="text-l uni-flex flex">
b.基本信息:专业介绍专业背景课程设置男女比例
</text>
<text class="text-l uni-flex flex">
c.就业情况:就业方向培训方向从事职业
</text>
<text class="text-l uni-flex flex">
d.开设院校:该查询专业所有开设院校列表
</text>
</view>
<view class="text-group">
<text class="text-l uni-flex flex bold">省控线</text>
<text class="text-l uni-flex flex">
查看摸个省份历年文理科艺考专业批次线查看历年双过线标准
</text>
</view>
<view class="text-group">
<text class="text-l uni-flex flex red bold">常见问题</text>
</view>
<view class="text-group">
<text class="text-l uni-flex flex bold">关于成绩修改次数</text>
<text class="text-l uni-flex flex">
高考放榜前非VIP用户可以修改2次VIP用户放榜前每日可修改5次
<text class="bold">高考结束后VIP用户可以修改1次</text>
</text>
</view>
<view class="text-group">
<text class="text-l uni-flex flex bold">多次购买问题(含在线卡密激活)</text>
<text class="text-l uni-flex flex">
多次购买将会增加服务周期2024年服务周期结束时间为8月31号再次购买周期结束时间延长至2025年8月31号此次类推
</text>
</view>
<view class="text-group">
<text class="text-l uni-flex flex bold">比率的概念的定义比率并非概率</text>
<text class="text-l uni-flex flex">
比率的走义:假设考生分数为x查询到某大学专业在本省的文科/理科录取最低分数为y本系统中考生相对这个大学的此专业比率是比率=xy
</text>
</view>
<view class="text-group">
<text class="text-l uni-flex flex bold">推荐的学校数量冲刺稳妥保守</text>
<text class="text-l uni-flex flex">
将本省的招生计划统一计算比率后会将比率范围的进行归类到冲刺稳妥保守中
</text>
</view>
<view class="text-group">
<text class="text-l uni-flex flex bold">数据更新的时间和情况</text>
<text class="text-l uni-flex flex">
目前系统中有2023年各省招生计划及平行志愿批次的投档分数2023年录取分数陆续公布中
</text>
</view>
<view class="text-group">
<text class="text-l uni-flex flex bold">数据风险说明</text>
<text class="text-l uni-flex flex">
1 系统数据来源于教育部门由合作网站提供
</text>
<text class="text-l uni-flex flex">
1 部分年份数据如果为空可能是当年不在查询地招生系统数据不包含高考加分如果录取数据与院校公布数据不一致请以各高校正式公布的数据为准
</text>
<text class="text-l uni-flex flex">
1 由于高考填报志愿是一个动态变化的过程不本系统查询的历年高校录取数据仅作为填报志愿参考请综合各种信息进行报考勿仅以此填报志愿
</text>
<text class="text-l uni-flex flex">
1 最终解释权归河南及第生涯信息科技有限公司所有
</text>
</view>
</view>
</template>
<style scoped lang="scss">
.body {
margin: 30rpx;
background-color: white;
border-radius: 10rpx;
padding: 30rpx;
}
.text-l {
font-size: 28rpx;
margin-bottom: 10rpx;
}
.bold {
font-weight: 600;
}
.text-group {
margin-bottom: 50rpx;
}
</style>

View File

@ -0,0 +1,141 @@
<!--用户协议-->
<script>
import StaticConstant from "@/common/StaticConstant";
export default {
name: "userAgreement",
computed: {
StaticConstant() {
return StaticConstant
}
}
}
</script>
<template>
<view class="body">
<text class="text-l uni-flex flex">{{StaticConstant.systemName}}用户使用协议</text>
<text class="text-l uni-flex flex">用户须知</text>
<text class="text-l uni-flex flex">
1{{StaticConstant.systemName}}及其涉及到的产品相关软件的所有权和运作权归{{StaticConstant.company}}(以下简称{{StaticConstant.companySx}})所有{{StaticConstant.companySx}}享有对{{StaticConstant.systemName}}在线上一切活动的监督提示检查纠正及处罚等权利用户在注册程序过程中点击'同意按钮完成注册即表示用户与{{StaticConstant.companySx}}已达成协议自愿接受本服务条款的所有内容如果您不同意接受本协议的全部或部分条件和条款请您不要通过网页App应用程序小程序或任何其他载体访问或使用{{StaticConstant.systemName}}
</text>
<text class="text-l uni-flex flex">
2{{StaticConstant.systemName}}提供艺考志愿填报信息服务冒在提供信息供用户填报志愿时参考未满18周岁的限制民事行为能力人使用{{StaticConstant.systemName}}的服务将被视作与其年龄智力相适应的民事活动若对此不确走请停止使用{{StaticConstant.systemName}}的服务
</text>
<text class="text-l uni-flex flex">
3在您签署本协议之后本协议可能因国家政策产品以及履行本协议的环境发生变化{{StaticConstant.systemName}}业务经营的发展及相关政策的变更而多次进行修改用户应经常留意上述提示并阅读修改的内容修改后的协议发布在本网站上即为生效若您对修改后的协议有异议的请立即停止登录账户及停止使用{{StaticConstant.systemName}}产品和服务若您登录或继续使用将视为对修改后的协议予以认可
</text>
<text class="text-l uni-flex flex">用户服务条款</text>
<text class="text-l uni-flex flex">
1你在登录账户及使用{{StaticConstant.systemName}}产品和服务时于任一通道注册并接受本协议的具有同等效力
</text>
<text class="text-l uni-flex flex">
2{{StaticConstant.systemName}}帐号及其中含有的输入的或生成的全部数据信息上传内容的所有权及知识产权均属于{{StaticConstant.companySx}}所有用户注册的账号仅限于注册用户本人使用禁止赠与借用租用转让或售卖
</text>
<text class="text-l uni-flex flex">
3用户应保证注册{{StaticConstant.systemName}}帐号时填写的信息是真实有效的任何非法不真实不准确的用户信息所产生的麦任由用户自行承担因注册信息不真实而引起的相关问题及后果{{StaticConstant.systemName}}不承担任何责任
</text>
<text class="text-l uni-flex flex">
4{{StaticConstant.systemName}}产品及服务包括网站网页应用软件以及内涵的文字图片色彩图表视频音频版面设计和编排数据或数据分析结论等所有这些内容受版权商标权和其它知识产权及所有权法律的保护本协议的签署不代表任何上述知识产权的授权亦不包含上述权利的转让用户只能在{{StaticConstant.systemName}}授权下才能使用这些内容而不能擅自复制修改编撰这些内容或创造与内容有关的衍生产品
</text>
<text class="text-l uni-flex flex">
5因为用户填写的信息将会对{{StaticConstant.systemName}}产品和服务的计算和分析结果带来一定影响用户应承诺提供信息和数据的真实性并符合及时详尽真实准确的要求
</text>
<text class="text-l uni-flex flex">
6{{StaticConstant.systemName}}可能修改暂停或终止任何产品和服务或会通过收费或其他有偿方式设置使用权限亦可能会单方自行走价或自行更改或修改价格在法律允许的范围内这些更改在{{StaticConstant.systemName}}进行公告后生效
</text>
<text class="text-l uni-flex flex">
7用户的账户或行为如有可能违反了本协议或法律{{StaticConstant.systemName}}将保留限制暂停或终止你帐户的权利
</text>
<text class="text-l uni-flex flex">用户使用规则</text>
<text class="text-l uni-flex flex">
特别提示用户使用互联网必须遵守国家有关的政策和法律包括刑法国家安全法保密法计算机信息系统安全保护条例等保护国家利益保护国家安全对于违法使用互联网络而引起的一切责任由用户负全部责任
</text>
<text class="text-l uni-flex flex">
1用户不得使用{{StaticConstant.systemName}}发送或传播敏感信息和建反国家法律制度的信息包括但不限于下列信息:
</text>
<text class="text-l uni-flex flex">
(a)反对宪法所确定的基本原则的;(b)危害国家安全泄露国家秘密颠夏国家政权破坏国家统一的;(c)损害国家荣誉和利益的:(d)煽动民族仇恨民族歧视破坏民族团结的;(e)破坏国家宗教政策宣扬邪教和封建迷信的;()散布谣言扰乱社会秩序破坏社会稳走的(g)散布淫秽色情赌博暴力凶杀恐怖或者教唆犯罪的;(h)侮辱或者诽谤他人侵害他人合法权益的;(i)含有法律行政法规禁止的其他内容的
</text>
<text class="text-l uni-flex flex">
2用户在使用{{StaticConstant.systemName}}服务过程中必须遵循以下原则:
</text>
<text class="text-l uni-flex flex">
(a)遵守中国有关的法律和法规;(b)不得为任何非法目的而使用网络服务系统;(c)遵守所有与网络服务有关的网络协议规走和程序;(d)不得利用{{StaticConstant.systemName}}服务系统进行任何可能对互联网的正常运转造成不利影响的行为;(e)不得利用{{StaticConstant.systemName}}服务系统传输任何骚扰性的中伤他人的辱骂性的恐吓性的庸俗淫秽的或其他任何非法的信息资料;()不得利用{{StaticConstant.systemName}}服务系统进行任何不利于{{StaticConstant.companySx}}的行为
</text>
<text class="text-l uni-flex flex">
3未经授权收集复制使用传播出租租借交易销售及承诺销售{{StaticConstant.systemName}}产品和服务上的内容信息或数据{{StaticConstant.systemName}}可追究其法律责任
</text>
<text class="text-l uni-flex flex">
4禁止任何通过逆向工程反编译反汇编破译或4试图得出艺愿量产品及服务或任何相关技术的源码的全部或任何部分
</text>
<text class="text-l uni-flex flex">
5禁止使用人工或自动软件设备脚本机器人程序其他方式或程序访问抓取爬取挖掘{{StaticConstant.systemName}}产品及服务或其他相关数据或信息
</text>
<text class="text-l uni-flex flex">
6用户一旦注册成功便成为{{StaticConstant.systemName}}的用户将得到一个密码和帐号用户有义务采取合理措施维护其密码和帐号的安全用户对利用该密码和帐号所进行的一切活动负全部责任;由该等活动所导致的任何损失或损害均由用户承担责任
</text>
<text class="text-l uni-flex flex">
{{StaticConstant.systemName}}声明
</text>
<text class="text-l uni-flex flex">
1{{StaticConstant.systemName}}所展示公布使用的数据均来源于各省教育考试院和高校官方公布的信息提供的信息仅供您参考请以各高校或各省教育考试院
正式公布数据为准
</text>
<text class="text-l uni-flex flex">
2{{StaticConstant.systemName}}不保证所推荐的志愿填报 方案
必然能够导致用户得到录取对用户或计算结果提供的资料数据及内容也不作其他任何形式的担保不论是明确的或隐含的包括所有有关信息真实性适当性适于某一特走用途所有权和非侵权性的默示担保和条件亦不保证{{StaticConstant.systemName}}产品和服务不受阻挠或不出错误不保证错误一走能得到纠正对任何因用户不正当或非法使用服务产生的直接间接偶然特殊及后续的损害亦不承担任何责任
</text>
<text class="text-l uni-flex flex">
3{{StaticConstant.systemName}}所提供的VIP会员服务有效期为用户开通VIP服务成功之日起至用户所选高考年份的8月31日止VIP会员服务有效期截止时所有VIP相关权限将无法享用(包括智能填报招生计划历年专业分数线一分一段)
</text>
<text class="text-l uni-flex flex">
4使用{{StaticConstant.systemName}}产品及服务必须遵守国家有关法律和政策等维护国家利益保护国家安全并遵守本条款对于用户违法或违反本协议的使用(包括但不限于言论发表传送等)而引起的一切责任由用户负全部责任
</text>
<text class="text-l uni-flex flex">
5{{StaticConstant.systemName}}产品及服务同大多数互联网产品一样易受到各种安全问题的闲扰包括但不限干:
</text>
<text class="text-l uni-flex flex">
1)透露详细个人资料被不法分子利用造成现实生活中的骚扰2)哄骗破译密码3)下载安装的其它软件中含有特洛伊木马等病毒威胁到个人计算机上信息和数据的安全继而威胁对本服务的使用对于发生上述情况的用户应当自行承担责任
</text>
<text class="text-l uni-flex flex">
6{{StaticConstant.systemName}}为了服务整体运营的需要有权在公告通知后修改或中断中止或终止服务而无须向第三方负责或承担任何赔偿责任
</text>
<text class="text-l uni-flex flex">
7{{StaticConstant.systemName}}亦有权根据本协议及相关法律规定对用户账户进行管理包括但不限于隐藏删除用户上载的内容暂时或永久地关闭账户等同时保留依法追究当事人法律责任的权利
</text>
<text class="text-l uni-flex flex">
8因互联网技术的不稳走性可能导致政府政策管制病毒入侵黑客攻击服务器系统崩溃或者其它现今技术无法解决的风险发生可能导致{{StaticConstant.systemName}}产品及服务中断或帐号损失{{StaticConstant.systemName}}无需就此向用户负责或承担任何赔偿责任
</text>
<text class="text-l uni-flex flex">
其他
</text>
<text class="text-l uni-flex flex">
1用户确认已完全明了上述条款自愿承担各自的义务与责任
</text>
<text class="text-l uni-flex flex">
2本协议受中华人民共和国法律管辖如本协议任何条款与任何强制性法律有冲突该条款服从法律的规定
</text>
<text class="text-l uni-flex flex">
3因履行本协议产生的争议各方应友好协商解决协商不成的任何一方均应当向{{StaticConstant.companySx}}所在地有管辖权的人民法院提起诉讼
</text>
<text class="text-l uni-flex flex">
4点击页面的"同意"按钮即视为您完全接受本协议在点击之前请您再次确认已知悉并完全理解本协议的全部内容
</text>
</view>
</template>
<style scoped lang="scss">
.body {
margin: 30rpx;
background-color: white;
border-radius: 10rpx;
padding: 30rpx;
}
.text-l {
font-size: 28rpx;
margin-bottom: 10rpx;
}
</style>

View File

@ -0,0 +1,31 @@
<!--志愿卡说明-->
<script>
export default {
name: "volunteerCardDesc"
}
</script>
<template>
<view class="body">
<text class="text-l uni-flex flex">适用范围:艺术类文理科(历史组/物理组)考生(自主招生暂不适用)</text>
<text class="text-l uni-flex flex">使用期限:自购买起截止到2024-08-31日有效若再次购买则将新增一届服务期限</text>
<text class="text-l uni-flex flex">分数修改次数:每届服务期内高考分数放榜前可修改5次放榜后只可修改1次</text>
<text class="text-l uni-flex flex">系统数据来源于权威教育部门由合作网站提供</text>
<text class="text-l uni-flex flex">部分年份数据如果为空可能是当年不在查询地招生系统数据不包含高考加分如果录取数据与院校公布数据不一致请以高校正式公布的数据为准</text>
<text class="text-l uni-flex flex">由于高考填报志愿是一个动态变化的过程本系统查询的历年高校录取数据仅作为填报志愿参考请综合各种信息进行报考勿仅以此填报志愿</text>
<text class="text-l uni-flex flex">本卡为电子卡不记名不挂失一经出售概不退换! 最终解释权归本平台所有</text>
</view>
</template>
<style scoped lang="scss">
.body{
margin: 30rpx;
background-color: white;
border-radius: 10rpx;
padding: 30rpx;
}
.text-l{
font-size: 28rpx;
margin-bottom: 10rpx;
}
</style>

View File

@ -0,0 +1,31 @@
<script>
import ImagesConstant from "@/common/ImagesConstant";
export default {
name: "web-view",
data(){
return{
viewUrl:'https://yitisheng.vip/wxSJIRHyQUBA/wxkf.html'
}
},
computed: {
ImagesConstant() {
return ImagesConstant
}
},
onLoad(e) {
if (e.url) {
this.viewUrl = e.url
}
},
}
</script>
<template>
<web-view :src="viewUrl"></web-view>
<!-- <image class="marginCenter" :src="ImagesConstant.kfImage" style="height: 800rpx"/>-->
</template>
<style scoped lang="scss">
</style>

View File

@ -0,0 +1,171 @@
<script>
import StaticConstant from "@/common/StaticConstant";
import Request from '@/common/request'
import ImagesConstant from "@/common/ImagesConstant";
let request = new Request()
export default {
components: {},
computed: {
ImagesConstant() {
return ImagesConstant
},
StaticConstant() {
return StaticConstant
}
},
data() {
return {
searchText: '',
list: [
{
title: '新疆艺术学院2024年本科招生简章',
url: ''
},
{
title: '新疆艺术学院2024年本科招生简章招生简章招生简章招生简章招生简章',
url: ''
}
],
menuData:[
{
name: 'year', title: '年份', options: [
{label: "2024", value: "2024"},
{label: "2023", value: "2023"},
{label: "2022", value: "2022"},
{label: "2021", value: "2021"}
]
},
{
name: 'category', title: '文理分科', options: [
{label: "文科", value: "文科"},
{label: "理科", value: "理科"},
]
},
{
name: 'professionalCategory', title: '专业类别', options: [
{label: "音乐类", value: "音乐类"},
{label: "国际标准舞类", value: "国际标准舞类"},
{label: "播音与主持类", value: "播音与主持类"},
{label: "表演类", value: "表演类"},
{label: "编导制作类", value: "编导制作类"},
{label: "书法类", value: "书法类"},
{label: "艺术舞蹈类", value: "艺术舞蹈类"},
{label: "美术类", value: "美术类"},
{label: "体育类", value: "体育类"},
]
},
],
menuValue:{
province:"2024",
category:'文科',
professionalCategory:'音乐类'
},
}
},
methods: {
clearSearchInput() {
},
searchClick() {
}
}
}
</script>
<template>
<view class="header">
<view class="search-view">
<view style="width: 90%">
<uni-search-bar class="uni-mt-10" radius="100" placeholder="请输入最低分数" v-model="searchText"
@clear="clearSearchInput" cancelButton="none" @confirm="searchClick"/>
</view>
<view style="width: 10%;line-height: 100rpx">
<text @click="searchClick">搜索</text>
</view>
</view>
</view>
<view class="body">
<view class="image1">
<image src="http://files.yitisheng.vip/images/zsjz2.png" style="height: 200rpx;width:100%"/>
</view>
<!--筛选项-->
<wei-dropdown-menu :data="menuData" @change="onChange" :value="menuValue"
:popupSytle="{ borderRadius: '0 0 10px 10px', overflow: 'hidden' }"></wei-dropdown-menu>
<!--简章列表-->
<view class="list">
<view class="list-item" :class="index===list.length-1?'list-item-end':''" v-for="(item,index) in list" :key="index">
<view class="title">
<text>{{ item.title }}</text>
</view>
<view class="right-icon">
<image :src="ImagesConstant.keyboard.arrowRight" style="width: 40rpx;height: 40rpx"/>
</view>
</view>
</view>
</view>
</template>
<style scoped lang="scss">
/*搜索栏 start*/
.header {
background-color: white;
.search-view {
display: flex;
height: 100rpx;
border-top: 1px solid #f5f5f5;
border-bottom: 1px solid #f5f5f5;
}
}
:deep(.uni-searchbar) {
padding: 15rpx 10rpx !important;
}
/*搜索栏 end*/
/*中间部分 start*/
.body {
background-color: white;
.image1 {
padding: 30rpx;
}
.list {
padding: 0 30rpx;
.list-item {
border-bottom: 1px solid #f5f5f5;
display: flex;
min-height: 100rpx;
.title {
color: #666666;
font-size: 30rpx;
width: 80%;
margin: 30rpx 0;
}
.right-icon {
width: 20%;
line-height: 100rpx;
margin: auto 0;
image {
float: right;
position: static;
}
}
}
.list-item-end {
border-bottom: none !important;
}
}
}
/*中间部分 end*/
</style>

584
pages/zyb/school/detail.vue Normal file
View File

@ -0,0 +1,584 @@
<script>
import ApiConstant from "@/common/ApiConstant";
import Request from '@/common/request'
import StaticConstant from "@/common/StaticConstant";
import ImagesConstant from "@/common/ImagesConstant";
//
let request = new Request()
export default {
computed: {
ImagesConstant() {
return ImagesConstant
}
},
data() {
return {
culturalScore: '',//
professionalScore: '',//
category: '文科',//
schoolInfo: {},//
schoolCode: '',//
collectStatus: false,
collectIndex: 0,
tabs: [{id: 'jbjs', name: '基本介绍'}, {id: 'zlxx', name: '招录信息'}, {id: 'kszy', name: '开设专业'}],
tab: 'zlxx',
scrollLeft: 0,
chartData: {},
opts: {
color: ["#1890FF", "#91CB74", "#FAC858", "#EE6666", "#73C0DE", "#3CA272", "#FC8452", "#9A60B4", "#ea7ccc"],
padding: [5, 5, 5, 5],
enableScroll: false,
extra: {
pie: {
activeOpacity: 0.5,
activeRadius: 10,
offsetAngle: 0,
labelWidth: 15,
border: true,
borderWidth: 3,
borderColor: "#FFFFFF"
}
}
},
fsxIndex: 0,//线
tdxIndex: 0,//线
majorList: [],//
professionalCategoryIndex: 0,//
professionalCategoryList: StaticConstant.professionalCategoryList,//
historyScoreControlLineList: [],//线
}
},
onShow() {
},
onLoad(e) {
if (e.schoolCode) {
this.schoolCode = e.schoolCode;
}
// this.schoolCode = '2090'
this.getSchoolDetailInfo()
let scoreInfo = uni.getStorageSync('scoreInfo')
if (scoreInfo) {
this.culturalScore = scoreInfo.culturalScore
this.professionalScore = scoreInfo.professionalScore
this.category = scoreInfo.cognitioPolyclinic
}
},
methods: {
goto(e){
uni.navigateTo({
url: e
})
},
swichMenu(id) {
this.currentTab = id
console.log(id)
// swiper
this.scrollLeft = 0;
for (let i = 0; i < id; i++) {
this.scrollLeft += 60
console.log(this.scrollLeft, 60, id)
}
},
/*获取专业详情*/
getSchoolDetailInfo() {
let that = this
request.get(ApiConstant.School.schoolInfo, {
schoolCode: this.schoolCode,
}).then(r => {
console.log(r)
if (r.success) {
that.schoolInfo = r.result
//
that.checkCollect()
//
this.loadManData()
//
this.getSchoolMajorList()
// 线
this.getHistoryList()
}
}).catch(err => {
}).finally(() => {
});
},
//
collect() {
let collectSchoolList = uni.getStorageSync('collectSchoolList')
console.log(collectSchoolList)
if (collectSchoolList === undefined || collectSchoolList === null || collectSchoolList === '') {
collectSchoolList = []
}
if (this.collectStatus === true) {
//
// index
this.checkCollect()
this.collectStatus = false
//
collectSchoolList.splice(this.collectIndex, 1)
} else {
//
this.collectStatus = true
collectSchoolList.push(this.schoolInfo)
}
uni.setStorageSync('collectSchoolList', collectSchoolList)
},
//
checkCollect() {
let collectSchoolList = uni.getStorageSync('collectSchoolList')
if (collectSchoolList === undefined || collectSchoolList === null || collectSchoolList === '') {
collectSchoolList = []
}
//
for (let i = 0; i < collectSchoolList.length; i++) {
if (collectSchoolList[i].id === this.schoolInfo.id) {
//
this.collectStatus = true
this.collectIndex = i
}
}
},
//
loadManData() {
//
setTimeout(() => {
//
let res = {
series: [
{
data: [{"name": "男生", "value": this.schoolInfo.maleRatio}, {
"name": "女生", "value": this.schoolInfo.femaleRatio
}]
}
]
};
this.chartData = JSON.parse(JSON.stringify(res));
}, 500);
},
//线
getHistoryList() {
request.get(ApiConstant.Score.historyScoreControlLineList, {
professionalCategory: this.professionalCategoryList[this.professionalCategoryIndex].value,
category: this.category,
pageSize: 999
}).then(res => {
if (res.success) {
this.historyScoreControlLineList = res.result.records
}
}).catch(err => {
}).finally(() => {
});
},
getSchoolMajorList(){
request.get(ApiConstant.Major.schoolMajorList, {
cognitioPolyclinic: this.category,
schoolCode: this.schoolCode
}).then(res => {
if (res.success) {
this.majorList = res.result
}
}).catch(err => {
}).finally(() => {
});
},
//线
bindPickerPcxChange(e) {
this.professionalCategoryIndex = e.detail.value
this.getHistoryList()
},
//线
bindPickerTdxChange(e) {
this.tdxIndex = e.detail.value
},
//线
bindPicker_lqMajorChange(e) {
this.fsxIndex = e.detail.value
},
}
}
</script>
<template>
<!--头部-->
<view class="head">
<view class="schoolHead">
<view class="uni-flex flex">
<view class="flex-item-17 padding30">
<image :src="schoolInfo.schoolIcon" style="width: 128rpx;height: 128rpx" mode="aspectFill"/>
</view>
<view class="flex-item-6" style="margin: 30rpx 0">
<view class="flex" style="padding-bottom: 20rpx;height: 30rpx;line-height: 30rpx">
<text class="schoolName">{{ schoolInfo.schoolName }}</text>
</view>
<view class="flex" style="padding-bottom: 20rpx;height: 30rpx;line-height: 30rpx">
<text class="schoolNature" v-if="schoolInfo.schoolNature">{{ schoolInfo.schoolNature }}</text>
<text class="institutionType" v-if="schoolInfo.institutionType">{{ schoolInfo.institutionType }}</text>
</view>
<view style="display: flex;padding: 0;line-height: 30rpx">
<view class="tags">
<view class="tag" v-for="(tag,i) in schoolInfo.tagsList" :key="i">
<text>{{ tag }}</text>
</view>
</view>
</view>
<view class="flex">
<text class="address" v-if="schoolInfo.street">{{ schoolInfo.street }}</text>
</view>
</view>
<view class="flex-item-15">
<view>
<text :class="collectStatus?'collectBtn collectBtn-active':'collectBtn'" plain="true" @click="collect">
收藏
</text>
</view>
</view>
</view>
<my-menu :tab="tab" :tab-list="tabs"/>
</view>
</view>
<!--学校概括-->
<view class="m-card padding20 margin20" v-if="tab === 'jbjs'">
<uni-section title="学校介绍" type="line">
<view class="padding20">
<view class="content">
<mote-lines-divide :dt="schoolInfo.baseInfo" :line="3" expandtext="展开" foldhint="收起"/>
</view>
</view>
</uni-section>
<uni-section title="国家特色专业" type="line">
<view class="padding20">
<view class="other-item">{{ schoolInfo.gjtszy }}</view>
</view>
</uni-section>
<uni-section title="省特色专业" type="line">
<view class="padding20">
<view class="other-item">{{ schoolInfo.stszy }}</view>
</view>
</uni-section>
<uni-section title="男女比例" type="line">
<view class="charts-box padding20">
<qiun-data-charts type="pie" :opts="opts" :chartData="chartData"/>
</view>
</uni-section>
<uni-section title="其他信息" type="line">
<view class="padding20">
<view class="other-item" v-if="schoolInfo.schoolWebsiteAddress">
<text class="b">官方网址</text>
<uni-link v-if="schoolInfo.schoolWebsiteAddress" :href="schoolInfo.schoolWebsiteAddress"
:text="schoolInfo.schoolWebsiteAddress"></uni-link>
</view>
<view class="other-item" v-if="schoolInfo.schoolPhone">
<text class="b">招生电话</text>
{{ schoolInfo.schoolPhone }}
</view>
<view class="other-item" v-if="schoolInfo.street">
<text class="b">校区地址</text>
{{ schoolInfo.street }}
</view>
</view>
</uni-section>
</view>
<!--招录信息-->
<view v-if="tab ==='zlxx'">
<!--我的成绩-->
<view class="m-card padding20 margin20">
<view class="flex padding20">
<view class="flex-item-5">
我的成绩文化分
<text class="red">{{ culturalScore || '-' }}</text>
</view>
<view class="flex-item-5">
专业分
<text class="orange">{{ professionalScore || '-' }}</text>
</view>
</view>
</view>
<!--招生章程-->
<view class="m-card padding20 margin20">
<uni-section title="招生章程" type="line">
</uni-section>
</view>
<!--批次线-->
<view class="m-card padding20 margin20" v-if="false">
<uni-section title="批次线" type="line">
<view style="position: relative;bottom: 75rpx;float: right" class="flex-item-6">
<picker @change="bindPickerPcxChange" :value="professionalCategoryIndex" :range="professionalCategoryList"
range-key="value">
<view class="uni-input font-size-mini" style="float: right">
{{ professionalCategoryList[professionalCategoryIndex].value }}
<image :src="ImagesConstant.keyboard.arrowDown2" class="icon50 marginCenter"
style="vertical-align: middle"/>
</view>
</picker>
</view>
<view class="historyScoreLineList slateGray">
<view class="hsl-item" v-for="(item,index) in historyScoreControlLineList" :key="index">
<view class="other-item">
<text>批次</text>
<text>{{ item.batch }}</text>
</view>
<view class="other-item right-item">
<text>文化分</text>
<text v-if="item.culturalScore">{{ item.culturalScore }}</text>
</view>
<view class="other-item">
<text>{{ item.professionalCategory }}{{ item.year }}</text>
</view>
<view class="other-item right-item">
<text>专业分</text>
<text v-if="item.specialScore">{{ item.specialScore }}</text>
</view>
</view>
</view>
</uni-section>
</view>
<!--历年投档线-->
<!-- <view class="m-card padding20 margin20">
<uni-section title="历年投档线" type="line">
<view style="position: relative;bottom: 75rpx;float: right" class="flex-item-6" v-if="majorList && majorList.length>0">
<picker @change="bindPickerTdxChange" :value="tdxIndex" :range="majorList" range-key="majorName">
<view class="uni-input font-size-mini" style="float: right">{{ majorList[tdxIndex].majorName }}
<image :src=ImagesConstant.keyboard.arrowDown2 class="icon50 marginCenter"
style="vertical-align: middle"/>
</view>
</picker>
</view>
<view class="historyScoreLineList slateGray" v-if="majorList && majorList.length>0">
<view class="hsl-item" v-for="(item,index) in majorList[tdxIndex].historyMajorEnrollList" :key="index">
<view class="other-item">
<text>批次</text>
<text>{{ item.batch }}</text>
</view>
<view class="other-item right-item">
<text>{{ item.year }}</text>
</view>
<view class="other-item">
<text>备注-</text>
</view>
<view class="other-item">
<text>投档方式</text>
<text>{{ item.rulesEnrollProbability || '未公布' }}</text>
</view>
<view class="other-item">
<text>投档公式</text>
<text>{{ item.probabilityOperator || '未公布' }}</text>
</view>
<view class="other-item">
<text>投档分数</text>
<text class="blue">未公布</text>
</view>
<view class="other-item">
<text>考试类型统考</text>
</view>
</view>
</view>
</uni-section>
</view>-->
<!--录取分数线-->
<view class="m-card padding20 margin20">
<uni-section title="录取分数线" type="line">
<view style="position: relative;bottom: 75rpx;float: right" class="flex-item-6" v-if="majorList && majorList.length>0">
<picker @change="bindPicker_lqMajorChange" :value="fsxIndex" :range="majorList" range-key="majorName">
<view class="uni-input font-size-mini" style="float: right">{{ majorList[fsxIndex].majorName }}
<image :src="ImagesConstant.keyboard.arrowDown2" class="icon50 marginCenter"
style="vertical-align: middle"/>
</view>
</picker>
</view>
<view class="historyScoreLineList slateGray" v-if="majorList && majorList.length>0">
<view class="hsl-item" v-for="(item,index) in majorList[fsxIndex].historyMajorEnrollList" :key="index">
<view class="other-item">
批次
<text>{{ item.batch }}</text>
</view>
<view class="other-item right-item">
<text>{{ item.year }}</text>
</view>
<view class="other-item">
<text>备注</text>
<text>{{ item.detail || '-' }}</text>
</view>
<view class="other-item">
<text>录取方式</text>
<text>{{ item.rulesEnrollProbability || '未公布' }}</text>
</view>
<view class="other-item">
<text>录取公式</text>
<text>{{ item.probabilityOperator || '未公布' }}</text>
</view>
<view class="other-item">
<text>录取分数</text>
<text class="blue">{{ item.admissionLine || '未公布' }}</text>
</view>
<view class="other-item">
<text>考试类型</text>
<text>统考</text>
</view>
</view>
</view>
</uni-section>
</view>
</view>
<!--开设专业-->
<view v-if="tab ==='kszy'">
<!--开设专业-->
<view class="m-card padding20 margin20">
<uni-section title="开设专业" type="line">
<view class="historyScoreLineList slateGray" v-if="majorList && majorList.length>0">
<view class="hsl-item" :class="index===0?'not-border':''" v-for="(item,index) in majorList" :key="index" @click="goto('/pages/zyb/major/detail?majorCode='+item.majorCode)">
<view class="other-item">
<text>{{ item.majorName }}</text>
</view>
<view class="other-item right-item">
<image :src="ImagesConstant.keyboard.arrowRight" class="icon50"/>
</view>
</view>
</view>
</uni-section>
</view>
</view>
</template>
<!-- 使用scroll-view实现tabs滑动切换 -->
<!--<scroll-view class="top-menu-view" scroll-x="true" scroll-with-animation :scroll-left="scrollLeft">
<view class="menu-topic-view" v-for="(item,index) in tabs" :id="'tabNum'+item.id" :key="index" @click="swichMenu(index)">
<view :class="currentTab===index ? 'menu-topic-act' : 'menu-topic'">
<text class="menu-topic-text">{{ item.name }}</text>
<view class="menu-topic-bottom">
<view class="menu-topic-bottom-color"></view>
</view>
</view>
</view>
</scroll-view>-->
<style scoped lang="scss">
/*头部部分*/
.head {
background-color: white;
min-height: 300rpx;
border-bottom: 1rpx solid #4975fd;
border-radius: 0 0 30rpx 30rpx;
}
/*顶部学校名称,图片,地址 信息*/
.schoolHead {
background-color: white;
min-height: 200rpx;
/*院校名称*/
.schoolName {
font-size: 30rpx;
}
/*办学性质*/
.schoolNature {
color: #e2bf44;
margin-right: 10rpx;
font-size: 25rpx;
}
/*院校类型*/
.institutionType {
color: #b4b4b4;
margin: 0 10rpx;
font-size: 25rpx;
}
/*属性标签*/
.tags {
display: flex;
flex-direction: row;
flex-wrap: wrap;
}
.tags .tag {
line-height: 30rpx;
font-size: 25rpx;
color: #acadba;
border: 3rpx solid #acadba;
border-radius: 8rpx;
padding: 5rpx;
margin: 0 10rpx 10rpx 0;
}
.address {
font-size: 25rpx;
color: $uni-bg-color-mask;
}
/*收藏按钮*/
.collectBtn {
position: relative;
top: 25rpx;
font-size: 25rpx !important;
border: 1rpx solid $uni-bg-color-mask;
padding: 6rpx 20rpx;
border-radius: 8rpx;
transition: 0.3s;
}
/*机或者的收藏按钮*/
.collectBtn-active {
background-color: #3d76fd;
border: 1rpx solid #3d76fd;
color: white;
}
}
/*其他信息*/
.other-item {
display: block;
font-size: 26rpx;
line-height: 40rpx;
.b {
font-weight: 600;
}
}
.right-item {
position: relative;
bottom: 40rpx;
float: right;
}
/*学校介绍 点击展开更多*/
.content-close {
max-height: 300rpx;
text {
height: 300rpx;
}
}
/*录取分数线*/
.historyScoreLineList {
padding: 20rpx;
.hsl-item {
padding: 20rpx 0;
border-top: 4rpx solid #f2f2f2;
}
}
.uni-input {
height: 40rpx;
line-height: 40rpx;
}
/* 请根据实际需求修改父元素尺寸,组件自动识别宽高 */
.charts-box {
padding: 20rpx;
margin: 0 auto;
width: 80%;
height: 200px;
}
.content {
/*font-size: 24rpx;
text-indent:48rpx;*/
}
</style>

506
pages/zyb/school/list.vue Normal file
View File

@ -0,0 +1,506 @@
<script>
import StaticConstant from "@/common/StaticConstant";
import ApiConstant from "@/common/ApiConstant";
import Request from '@/common/request'
import ImagesConstant from "@/common/ImagesConstant";
import MyTopButton from "@/components/my-top-button.vue";
import {arrayIsNotEmpty, yearAbridge} from "@/common/util";
let request = new Request()
export default {
name: "school-list",
components: {MyTopButton},
computed: {
ImagesConstant() {
return ImagesConstant
},
StaticConstant() {
return StaticConstant
}
},
data() {
return {
schoolName: '',
defaultIcon: ImagesConstant.defaultIcon,//
/*筛选项 参数 start*/
selectForm: {
addressList: [],
institutionTypeList: [],
tagsList: [],
schoolNatureList: []
},
defaultSelected: [],
menuList: StaticConstant.schoolMenuData,
/*筛选项 参数 end*/
options: [
{
title: "省控线",
icon: ImagesConstant.skx,
url: "/pages/zyb/historyScoreControlLine/index"
},
{
title: "测文化",
icon: ImagesConstant.cwh,
url: "/pages/zyb/testCultural/index"
},
{
title: "查位次",
icon: ImagesConstant.cwc,
url: "/pages/zyb/other/checkRanking"
},
{
title: "算投档",
icon: ImagesConstant.std,
url: "/pages/zyb/other/calculateInvestment"
},
],
userInfo: {
vipFlag: true,//vip
},
topFlag: false,
nowProvince: {
status: 'more',
schoolList: [],
pages: 0,
current: 1,
size: 5,
total: 0
},//
otherProvince: {
schoolList: [],
pages: 0,
current: 1,
size: 10,
total: 0
},//
statusTypes: StaticConstant.loadStatusTypes,
contentText: StaticConstant.loadContentText
}
},
onShow() {
},
onLoad() {
this.getSchoolList()
this.userInfo = uni.getStorageSync('userInfo')
},
onReachBottom(){
console.log("已经滚动到底部了")
if (this.userInfo.vipFlag) {
this.loadMore()
}
},
methods: {
yearAbridge,
search(res) {
uni.showToast({
title: '搜索:' + res.value,
icon: 'none'
})
},
/*跳转页面*/
goto(url) {
uni.navigateTo({
url: url
})
},
onConfirm(e) {
console.log('onConfirm')
if (e.type === 'filter' && e.children) {
for (let i = 0; i < e.children.length; i++) {
if (e.children[i].title === '院校标签') {
this.selectForm.tagsList = e.children[i].value
if (this.selectForm.tagsList === null) {
this.selectForm.tagsList = []
}
} else if (e.children[i].title === '办学类型') {
this.selectForm.schoolNatureList = e.children[i].value
if (this.selectForm.schoolNatureList === null) {
this.selectForm.schoolNatureList = []
}
} else if (e.children[i].title === '地区') {
this.selectForm.addressList = e.children[i].value
} else if (e.children[i].title === '院校类型') {
this.selectForm.institutionTypeList = e.children[i].value
}
}
}
console.log(e)
this.clearData()
this.getSchoolList()
},
onChange(e, index) {
console.log('onChange')
console.log(e, index)
},
clearData() {
this.nowProvince.schoolList = []
this.nowProvince.current = 1
},
/*点击 操作菜单*/
optionItemChange(e) {
console.log(e)
if (this.options && this.options[e.detail.index].url) {
this.goto(this.options[e.detail.index].url)
}
},
/*院校列表*/
getSchoolList() {
this.nowProvince.status = 'loading'
//
let province = ''
if (arrayIsNotEmpty(this.selectForm.addressList)) {
province = this.selectForm.addressList.join(",")
}
//
let institutionType = ''
if (arrayIsNotEmpty(this.selectForm.institutionTypeList)) {
institutionType = this.selectForm.institutionTypeList.join(",")
}
//
let tagsStrs = ''
if (arrayIsNotEmpty(this.selectForm.tagsList)) {
tagsStrs = this.selectForm.tagsList.join(",")
}
//
let schoolNatureStrs = ''
if (arrayIsNotEmpty(this.selectForm.schoolNatureList)) {
schoolNatureStrs = this.selectForm.schoolNatureList.join(",")
}
request.get(ApiConstant.School.searchSchoolList, {
schoolName: this.schoolName,
province: province,
institutionType: institutionType,
tagsStrs: tagsStrs,
schoolNatureStrs: schoolNatureStrs,
pageNum: this.nowProvince.current, pageSize: this.nowProvince.size
}).then(r => {
console.log(r)
if (r.success) {
this.nowProvince.current = r.result.current
this.nowProvince.pages = r.result.pages
this.nowProvince.size = r.result.size
this.nowProvince.total = r.result.total
//
this.nowProvince.schoolList = [...this.nowProvince.schoolList, ...r.result.records]
if (r.result.current >= r.result.pages) {
this.nowProvince.status = 'noMore'
} else {
this.nowProvince.status = 'more'
}
}
}).catch(err => {
}).finally(() => {
});
},
searchSchoolClick() {
this.nowProvince.current = 1
this.nowProvince.schoolList = []
this.nowProvince.total = 0
this.nowProvince.pages = 0
this.getSchoolList()
},
clearSchoolInput() {
this.schoolName = ''
this.nowProvince.current = 1
this.nowProvince.schoolList = []
this.nowProvince.total = 0
this.nowProvince.pages = 0
this.getSchoolList()
},
loadMore() {
if (this.nowProvince.status === 'noMore') {
return;
}
//
this.nowProvince.current++;
this.getSchoolList()
},
top() { //
uni.pageScrollTo({
scrollTop: 0,
duration: 300
});
},
},
onPageScroll(e) { //
//600//600
this.topFlag = e.scrollTop > 600;
}
}
</script>
<template>
<view class="header">
<view class="search-view">
<view style="display: flex;height: 100rpx;border-bottom: 1px solid #f5f5f5;">
<view style="width: 90%">
<uni-search-bar class="uni-mt-10" radius="100" placeholder="请输入院校名称" v-model="schoolName"
@clear="clearSchoolInput" cancelButton="none" @confirm="searchSchoolClick"/>
</view>
<view style="width: 10%;line-height: 100rpx">
<text @click="searchSchoolClick">搜索</text>
</view>
</view>
</view>
<!--其他按钮-->
<view class="options">
<uni-grid :column="4" :highlight="true" :show-border="false" @change="optionItemChange">
<uni-grid-item v-for="(item, index) in options" :index="index" :key="index">
<view class="grid-item-box">
<image :src="item.icon?item.icon:defaultIcon"
style="height: 90rpx;width: 90rpx;border-radius: 50%;border: 1rpx solid #aaa"/>
<text class="text">{{ item.title }}</text>
</view>
</uni-grid-item>
</uni-grid>
</view>
<!--筛选项-->
<le-dropdown
v-model:menuList="menuList"
themeColor="#3d76fd"
:duration="200"
:isCeiling="true"
@onConfirm="onConfirm"
@onChange="onChange"></le-dropdown>
</view>
<view class="body">
<!--院校列表-->
<view class="school-list">
<view class="school-item uni-flex" v-for="(item,index) in nowProvince.schoolList" :key="index"
@click="goto('/pages/zyb/school/detail?schoolCode='+item.schoolCode)">
<view class="flex-item-10">
<view class="flex">
<view class="flex-item-22 t_item">
<image lazy-load :src="item.schoolIcon||ImagesConstant.defaultIcon" class="icon128" mode="aspectFill"/>
</view>
<view class="flex-item-8 t_item">
<view class="uni-flex flex">
<view class="flex-item-10 t_item" style="display: flex;height: 60rpx;line-height: 60rpx">
<text class="font-size-mini2">{{ item.schoolName }}</text>
<view class="address adrs" v-if="item.cityProvince">
<!--直辖市-->
<view class="address-item address-item-before" v-if="item.city">{{ item.city }}</view>
<view class="address-item" v-if="item.area && item.area.length<4">{{ item.area }}
</view>
</view>
<view class="address adrs" v-else>
<view class="address-item address-item-before" v-if="item.province">{{ item.province }}
</view>
<view class="address-item" v-if="item.city">{{ item.city }}</view>
</view>
</view>
</view>
<view class="tags">
<text class="tag" v-for="(tag,tindex) in item.tagsList" :key="tindex">
{{ tag }}
</text>
</view>
</view>
</view>
<view class="flex" style="height: 30rpx;line-height: 30rpx">
<view class="flex-item-17">
<view style="margin-left:15%">
<image :src="ImagesConstant.shuqian" class="icon32"/>
<text class="font-size-mini font-weight-550 shiFengGreen">统考</text>
</view>
</view>
<view class="flex-item-45" v-if="item.zdf">
<view class="font-size-mini-mini">
<text class="slateGray">{{ yearAbridge(item.zdfYear) }}年录取最低分:</text>
<text class="font-weight-b shiFengGreen">{{ item.zdf }}</text>
</view>
</view>
<view class="flex-item-35" v-if="item.jhs">
<view class="font-size-mini-mini float-right">
<text class="slateGray">23年省内计划录取:</text>
<text class="font-weight-b shiFengGreen">{{ item.jhs }}</text>
</view>
</view>
</view>
</view>
</view>
</view>
<view class="container" @click="loadMore" v-if="userInfo.vipFlag">
<uni-load-more :status="nowProvince.status" :content-text="contentText"/>
</view>
</view>
<!--判断vip-->
<my-checkvip :vip-flag="(userInfo.vipFlag)"/>
<view class="top" :style="{'display':(topFlag===true? 'block':'none')}">
<uni-icons class="topc" type="arrowthinup" size="40" @click="top"></uni-icons>
</view>
</template>
<style scoped lang="scss">
//
.header {
border-top: 3rpx solid #f6f6f6;
background-color: white;
//min-height: 500rpx;
//
.search-view {
width: 95%;
margin: 0 auto;
border-bottom: 3rpx solid #f6f6f6;
}
//
.options {
border-radius: 10rpx;
padding: 8rpx;
background-color: white;
position: relative;
//top: 100rpx;
border-bottom: 3rpx solid #f6f6f6;
}
}
/*院校列表*/
.school-list {
padding: 10rpx 20rpx;
.school-item {
margin-bottom: 10rpx;
padding: 20rpx 10rpx;
background-color: white;
border-radius: 15rpx;
box-shadow: 0 0 5px 1px rgba(0, 0, 0, 0.2);
}
}
.t_item {
margin-bottom: 10rpx;
}
/*省市区*/
.adrs {
display: flex;
flex-direction: row;
flex-wrap: wrap;
margin: 0 0 0 auto;
}
.address .address-item {
margin-right: 10rpx;
color: #8999a3;
font-size: 25rpx;
font-weight: 550;
}
/*标签*/
.tags {
display: flex;
flex-direction: row;
flex-wrap: wrap;
}
.tags .tag {
margin-bottom: 5rpx;
margin-right: 10rpx;
color: #8999a3;
font-size: 25rpx;
border: 3rpx solid #acadba;
border-radius: 8rpx;
padding: 5rpx;
}
/*宫格 start*/
.image {
width: 25px;
height: 25px;
}
.text {
font-size: 14px;
margin-top: 5px;
}
.example-body {
/* #ifndef APP-NVUE */
// display: block;
/* #endif */
}
.grid-dynamic-box {
margin-bottom: 15px;
}
.grid-item-box {
flex: 1;
// position: relative;
/* #ifndef APP-NVUE */
display: flex;
/* #endif */
flex-direction: column;
align-items: center;
justify-content: center;
padding: 15px 0;
}
.grid-item-box-row {
flex: 1;
// position: relative;
/* #ifndef APP-NVUE */
display: flex;
/* #endif */
flex-direction: row;
align-items: center;
justify-content: center;
padding: 15px 0;
}
.grid-dot {
position: absolute;
top: 5px;
right: 15px;
}
.swiper {
height: 420px;
}
/* #ifdef H5 */
@media screen and (min-width: 768px) and (max-width: 1425px) {
.swiper {
height: 630px;
}
}
@media screen and (min-width: 1425px) {
.swiper {
height: 830px;
}
}
/* #endif */
/*宫格 end*/
/*搜索栏*/
:deep(.uni-searchbar) {
padding: 15rpx 10rpx !important;
}
/* 回到顶部 start*/
.top {
position: relative;
display: none; /* 先将元素隐藏 */
transition: 0.5s;
}
.topc {
position: fixed;
right: 10rpx;
//background: #F0F0F0;
background: #e1e1e1;
border-radius: 50%;
top: 80%;
height: 40px;
line-height: 40px;
}
/* 回到顶部 end*/
</style>

View File

@ -3,23 +3,38 @@ import graceChecker from "@/common/graceChecker";
import StaticConstant from "@/common/StaticConstant"; import StaticConstant from "@/common/StaticConstant";
import ApiConstant from "@/common/ApiConstant"; import ApiConstant from "@/common/ApiConstant";
import Request from '@/common/request' import Request from '@/common/request'
import {arrayIsNotEmpty, stringIsNotEmpty} from "@/common/util";
let request = new Request() let request = new Request()
export default { export default {
name: "socre-edit", name: "socre-edit",
computed: {
StaticConstant() {
return StaticConstant
}
},
data() { data() {
return { return {
saveScoreInfo: {},
scoreInfo: { scoreInfo: {
id: '',
province: '河南',// province: '河南',//
cognitioPolyclinic: '理科',// cognitioPolyclinic: '理科',//
professionalCategory: '美术类',// professionalCategory: '',//
culturalScore: '',// culturalScore: '',//
professionalScore: '',// professionalScore: '',//
chineseScore:'', chineseScore: '',
englishScore:'' englishScore: ''
}, },
provinceArray:[{name:"河南"}],// provinceArray: [{name: "河南"}],//
cognitioPolyclinicArray:StaticConstant.categoryList, cognitioPolyclinicArray: StaticConstant.categoryList,//
professionalCategoryArray:StaticConstant.professionalCategoryList //===========================================================
professionalCategoryArray: StaticConstant.professionalCategoryList,//array
professionalCategoryVisible: false,//
professionalCategoryIndex: null,
pCategoryChildrenList: [],//
professionalCategoryScoreMax: '',//
contentHeight: 600
} }
}, },
onShow() { onShow() {
@ -31,78 +46,205 @@ export default {
request.get(ApiConstant.Score.getScore, {}).then(res => { request.get(ApiConstant.Score.getScore, {}).then(res => {
if (res.success) { if (res.success) {
this.scoreInfo = res.result this.scoreInfo = res.result
//
let professionalCategory = this.scoreInfo.professionalCategory
for (let i = 0; i < this.professionalCategoryArray.length; i++) {
if (this.professionalCategoryArray[i].value === professionalCategory) {
this.professionalCategoryScoreMax = this.professionalCategoryArray[i].scoreMax
this.professionalCategoryIndex = i
}
}
let professionalCategoryChildren = this.scoreInfo.professionalCategoryChildren
if (professionalCategoryChildren !== undefined && professionalCategoryChildren !== '') {
this.pCategoryChildrenList = professionalCategoryChildren.split(',')
}
} }
}).catch(err => { }).catch(err => {
}).finally(() => { }).finally(() => {
}); });
}, },
// //
saveScore(){ saveScore() {
//
this.saveScoreInfo = {...this.scoreInfo}
if (arrayIsNotEmpty(this.pCategoryChildrenList)) {
this.saveScoreInfo.professionalCategoryChildren = this.pCategoryChildrenList.join(",")
} else {
this.saveScoreInfo.professionalCategoryChildren = ''
}
this.saveScoreInfo.professionalCategory = this.professionalCategoryArray[this.professionalCategoryIndex].value
//==
request.post(ApiConstant.Score.scoreSave, { request.post(ApiConstant.Score.scoreSave, {
...this.scoreInfo ...this.saveScoreInfo
}).then(res => { }).then(res => {
if (res.success) { if (res.success) {
setTimeout(function () { uni.setStorageSync('scoreInfo', this.saveScoreInfo)
uni.showToast({title: '保存成功', icon: "none"}); uni.removeStorageSync('fillVolunteer')//
uni.navigateBack({ this.getRecommendMajorCount()
delta: 1,
complete: () => {
uni.startPullDownRefresh()
}
});
}, 500)
} }
}).catch(err => { }).catch(err => {
}).finally(() => { }).finally(() => {
}); });
}, },
getRecommendMajorCount() {
request.get(ApiConstant.Major.recommendMajorCount, {}).then(res => {
if (res.success) {
let result = res.result
//
let fillVolunteer = {
all: result.allNumber,
kcj: result.kcj,
jwt: result.jwt,
nlq: result.nan,
kbd: result.kbd
}
uni.setStorageSync('fillVolunteer', fillVolunteer)
}
}).catch(err => {
}).finally(() => {
setTimeout(function () {
uni.showToast({title: '保存成功', icon: "none"});
//
uni.switchTab({
url: '/pages/zyb/home'
});
}, 500)
});
},
// //
bindPicker_provinceChange: function(e) { bindPicker_provinceChange: function (e) {
console.log('考区picker发送选择改变携带值为' + e) console.log('考区picker发送选择改变携带值为' + e)
this.scoreInfo.province = this.provinceArray[e.detail.value].name this.scoreInfo.province = this.provinceArray[e.detail.value].name
}, },
// //
bindPicker_cognitioPolyclinicChange: function(e) { bindPicker_cognitioPolyclinicChange: function (e) {
console.log('科目picker发送选择改变携带值为' + e.detail.value) console.log('科目picker发送选择改变携带值为' + e.detail.value)
this.scoreInfo.cognitioPolyclinic = this.cognitioPolyclinicArray[e.detail.value].name this.scoreInfo.cognitioPolyclinic = this.cognitioPolyclinicArray[e.detail.value].name
}, },
// //
bindPicker_professionalCategoryChange:function (e){ bindPicker_professionalCategoryChange: function (e) {
console.log('报考方向picker发送选择改变携带值为' + e.detail.value) console.log('报考方向picker发送选择改变携带值为' + e.detail.value)
this.scoreInfo.professionalCategory = this.professionalCategoryArray[e.detail.value].value this.scoreInfo.professionalCategory = this.professionalCategoryArray[e.detail.value].value
}, },
formSubmit: function (e) { formSubmit: function (e) {
let that = this let that = this
console.log('form发生了submit事件携带数据为' + JSON.stringify(e.detail.value)) console.log('form发生了submit事件携带数据为' + JSON.stringify(e.detail.value))
// //
var rule = [ //
{name: "culturalScore", checkType: "between", checkRule: "0,750", errorMsg: "文化分0~750之间"}, if (arrayIsNotEmpty(this.pCategoryChildrenList)) {
{name: "professionalScore", checkType: "between", checkRule: "0,450", errorMsg: "统考分0~450之间"}, for (let i = 0; i < this.pCategoryChildrenList.length; i++) {
/*{name: "culturalScore", checkType: "string", checkRule: "1,3", errorMsg: "1-3"}, let name = this.pCategoryChildrenList[i]
{name: "gender", checkType: "in", checkRule: "男,女", errorMsg: "请选择性别"}, //
{name: "loves", checkType: "notnull", checkRule: "", errorMsg: "请选择爱好"}*/ let key = this.checkChildrenNameToKey(name)
]; let value = this.scoreInfo[key]
//
var formData = e.detail.value; if (value === undefined || value === '') {
var checkRes = graceChecker.check(formData, rule); uni.showToast({title: '请输入' + name, icon: "none"});
if (checkRes) { return
uni.showModal({
title:'确认高考成绩',
content: '文化分:'+this.scoreInfo.culturalScore+'\r统考分'+this.scoreInfo.professionalScore,
confirmText: '确定',
cancelText: '取消',
success:function (res){
if (res.confirm) {
that.saveScore()
}
} }
}); let score = parseInt(value)
if (typeof (score) !== 'number') {
uni.showToast({title: name + '输入参数有误', icon: "none"});
return
}
if (parseInt(score) > this.professionalCategoryScoreMax) {
uni.showToast({title: name + '请输入0~' + this.professionalCategoryScoreMax + "之间", icon: "none"});
return
}
this.scoreInfo[key] = score
}
} else { } else {
uni.showToast({title: graceChecker.error, icon: "none"}); this.scoreInfo.yybysy = 0
this.scoreInfo.yybyqy = 0
this.scoreInfo.yyjy = 0
this.scoreInfo.fzby = 0
this.scoreInfo.xjysdy = 0
this.scoreInfo.xjysby = 0
} }
//
let professionalScore = parseInt(this.scoreInfo.professionalScore)
console.log('professionalScore:' + professionalScore)
if (isNaN(professionalScore) || professionalScore < 0 || professionalScore > this.professionalCategoryScoreMax) {
if (this.professionalCategoryArray[this.professionalCategoryIndex].label === '音乐类') {
uni.showToast({title: '请输入主项成绩', icon: "none"});
} else {
uni.showToast({title: '统考成绩请输入0~' + this.professionalCategoryScoreMax + '之间', icon: "none"});
}
return;
}
//
let culturalScore = parseInt(this.scoreInfo.culturalScore)
if (isNaN(professionalScore) || culturalScore < 0 || culturalScore > 750) {
uni.showToast({title: '文化分请输入0~750之间', icon: "none"});
return;
}
this.scoreInfo.professionalScore = parseInt(this.scoreInfo.professionalScore)
this.scoreInfo.culturalScore = culturalScore
uni.showModal({
title: '确认高考成绩',
content: '文化成绩:' + this.scoreInfo.culturalScore + " " + (this.scoreInfo.professionalScore ? (this.pCategoryChildrenList && this.pCategoryChildrenList.length > 0 ? '主项成绩:' : '统考成绩:') + this.scoreInfo.professionalScore : ""),
confirmText: '确定',
cancelText: '取消',
success: function (res) {
if (res.confirm) {
that.saveScore()
}
}
});
}, },
formReset: function (e) { formReset: function (e) {
console.log('清空数据') console.log('清空数据')
},
onProfessionalCategory() {
this.professionalCategoryVisible = true;
},
onProfessionalCategoryClose() {
//
if (this.professionalCategoryIndex && this.professionalCategoryArray[this.professionalCategoryIndex].children) {
if (this.pCategoryChildrenList.length === 0) {
//
uni.showToast({title: '请选择类别', icon: "none"});
return
}
}
console.log('关闭')
this.professionalCategoryVisible = false
},
onProfessionalCategoryOpen() {
console.log('打开')
},
onProfessionalCategoryBottom() {
console.log('触底');
},
/*选择 大类*/
clickprofessionalCategoryItem(e, index) {
console.log(e)
this.professionalCategoryIndex = index
this.professionalCategoryScoreMax = this.professionalCategoryArray[this.professionalCategoryIndex].scoreMax
if (!e.children) {
this.professionalCategoryVisible = false
}
this.pCategoryChildrenList = []
},
/*选择 子类*/
professionalCategoryChildrenChange(e) {
console.log(e)
this.pCategoryChildrenList = e.detail.value
},
checkChildrenNameToKey(e) {
if (e === '音乐表演声乐') {
return 'yybysy';
} else if (e === '音乐表演器乐') {
return 'yybyqy';
} else if (e === '音乐教育') {
return 'yyjy';
} else if (e === '服装表演') {
return 'fzby';
} else if (e === '戏剧影视导演') {
return 'xjysdy';
} else if (e === '戏剧影视表演') {
return 'xjysby';
}
} }
} }
} }
@ -110,7 +252,7 @@ export default {
<template> <template>
<view> <view>
<!-- <page-head title=""></page-head>--> <!-- <page-head title=""></page-head>-->
<view class="uni-padding-wrap"> <view class="uni-padding-wrap">
<view class="uni-title uni-common-mt"> <view class="uni-title uni-common-mt">
统考/省联考成绩 统考/省联考成绩
@ -127,8 +269,9 @@ export default {
当前选择 当前选择
</view> </view>
<view class="uni-list-cell-db"> <view class="uni-list-cell-db">
<picker @change="bindPicker_provinceChange" :value="scoreInfo.province" :range="provinceArray" range-key="name"> <picker @change="bindPicker_provinceChange" :value="scoreInfo.province" :range="provinceArray"
<view class="uni-input">{{scoreInfo.province}}</view> range-key="name">
<view class="uni-input">{{ scoreInfo.province }}</view>
</picker> </picker>
</view> </view>
</view> </view>
@ -142,8 +285,9 @@ export default {
当前选择 当前选择
</view> </view>
<view class="uni-list-cell-db"> <view class="uni-list-cell-db">
<picker @change="bindPicker_cognitioPolyclinicChange" :value="scoreInfo.cognitioPolyclinic" :range="cognitioPolyclinicArray" range-key="name"> <picker @change="bindPicker_cognitioPolyclinicChange" :value="scoreInfo.cognitioPolyclinic"
<view class="uni-input">{{scoreInfo.cognitioPolyclinic}}</view> :range="cognitioPolyclinicArray" range-key="name">
<view class="uni-input">{{ scoreInfo.cognitioPolyclinic }}</view>
</picker> </picker>
</view> </view>
</view> </view>
@ -151,50 +295,109 @@ export default {
</view> </view>
<view class="uni-form-item uni-column"> <view class="uni-form-item uni-column">
<view class="title">报考方向<span class="red">*</span></view> <view class="title">报考方向<span class="red">*</span></view>
<view class="uni-list"> <view class="uni-list" @click="onProfessionalCategory">
<view class="uni-list-cell"> <view class="uni-list-cell">
<view class="uni-list-cell-left"> <view class="uni-list-cell-left">
当前选择 当前选择
</view> </view>
<view class="uni-list-cell-db"> <view class="uni-list-cell-db uni-input" style="height: auto !important;">
<picker @change="bindPicker_professionalCategoryChange" :value="scoreInfo.professionalCategory" :range="professionalCategoryArray" range-key="value"> <!--选择了-->
<view class="uni-input">{{scoreInfo.professionalCategory}}</view> <text style="line-height: 50rpx;"
</picker> v-if="professionalCategoryIndex!==null &&professionalCategoryArray && (!pCategoryChildrenList || pCategoryChildrenList.length===0)">
{{ professionalCategoryArray[professionalCategoryIndex].label }}
</text>
<view style="line-height: 35rpx;"
v-if="professionalCategoryIndex!==undefined && pCategoryChildrenList &&pCategoryChildrenList.length>0">
<text class="flex" v-for="(item,index) in pCategoryChildrenList" :key="index">
{{ item }}
</text>
</view>
</view> </view>
</view> </view>
</view> </view>
</view> </view>
<view class="uni-form-item uni-column"> <view class="uni-form-item uni-column" v-if="professionalCategoryIndex!==undefined"
<view class="title">文化分<span class="red">*</span></view> v-for="(item,index) in pCategoryChildrenList" :key="index">
<input class="uni-input" v-model="scoreInfo.culturalScore" name="culturalScore" placeholder="请输入文化分" /> <view class="title">{{ item }}成绩<span class="red">*</span></view>
<input class="uni-input" type="number" v-model="scoreInfo[checkChildrenNameToKey(item)]" name="culturalScore"
:placeholder="'请输入专业分(满分'+professionalCategoryScoreMax+''"/>
</view> </view>
<view class="uni-form-item uni-column"> <view class="uni-form-item uni-column">
<view class="title">语文分</view> <view class="title" v-if="professionalCategoryArray &&professionalCategoryIndex!==undefined">
<input class="uni-input" v-model="scoreInfo.chineseScore" name="chineseScore" placeholder="请输入语文分" /> {{
professionalCategoryArray[professionalCategoryIndex] && professionalCategoryArray[professionalCategoryIndex].label === '音乐类' ? '主项成绩' : '统考成绩'
}}<span
class="red">*</span></view>
<input class="uni-input" type="number" v-model="scoreInfo.professionalScore" name="professionalScore"
v-if="professionalCategoryArray[professionalCategoryIndex] && professionalCategoryArray[professionalCategoryIndex].label==='音乐类'"
:placeholder="'请输入主项成绩'"/>
<input class="uni-input" type="number" v-model="scoreInfo.professionalScore" name="professionalScore" v-else
:placeholder="'请输入统考分('+professionalCategoryScoreMax+''"/>
</view> </view>
<view class="uni-form-item uni-column"> <view class="uni-form-item uni-column">
<view class="title">英语分</view> <view class="title">文化成绩<span class="red">*</span></view>
<input class="uni-input" v-model="scoreInfo.englishScore" name="englishScore" placeholder="请输入英语分" /> <input class="uni-input" type="number" v-model="scoreInfo.culturalScore" name="culturalScore"
placeholder="请输入文化分(满分750)"/>
</view> </view>
<view class="uni-form-item uni-column"> <view class="uni-form-item uni-column">
<view class="title">统考分<span class="red">*</span></view> <view class="title">英语成绩</view>
<input class="uni-input" v-model="scoreInfo.professionalScore" name="professionalScore" placeholder="请输入统考分" /> <input class="uni-input" type="number" v-model="scoreInfo.englishScore" name="englishScore"
placeholder="请输入英语成绩(选填)"/>
</view> </view>
<view class="uni-form-item uni-column">
<view class="title">语文成绩</view>
<input class="uni-input" type="number" v-model="scoreInfo.chineseScore" name="chineseScore"
placeholder="请输入语文成绩(选填)"/>
</view>
<view class="uni-btn-v"> <view class="uni-btn-v">
<button form-type="submit">可修改2次</button> <button form-type="submit">可修改2次</button>
</view> </view>
</form> </form>
</view> </view>
</view> </view>
<!-- 每次弹出重新计算内容高度适用动态数据加载 -->
<px-popup-bottom :visible.sync="professionalCategoryVisible" title="请选择专业类别"
@reachBottom="onProfessionalCategoryBottom"
maxHeight="800" radius="40" @close="onProfessionalCategoryClose" @open="onProfessionalCategoryOpen">
<view class="flex">
<scroll-view scroll-y="true" class="professionalCategoryPopup" style="height: 500rpx;"
:class="professionalCategoryIndex&&professionalCategoryArray[professionalCategoryIndex].children?'flex-item-5':'flex-item-10'">
<view>
<view class="flex professionalCategoryItem" :class="professionalCategoryIndex===index?'active':''"
@click="clickprofessionalCategoryItem(item,index)" v-for="(item,index) in professionalCategoryArray"
:key="index">
<text class="text">{{ item.label }}</text>
</view>
</view>
</scroll-view>
<view class="professionalCategoryChildren flex-item-5"
v-if="professionalCategoryIndex&&professionalCategoryArray[professionalCategoryIndex].children">
<checkbox-group @change="professionalCategoryChildrenChange">
<view class="childrenItem"
v-for="(item,index) in professionalCategoryArray[professionalCategoryIndex].children" :key="index">
<label>
<checkbox :checked="pCategoryChildrenList.length>0 && pCategoryChildrenList.includes(item.value)"
:disabled="pCategoryChildrenList.length>0 && pCategoryChildrenList.includes(professionalCategoryArray[professionalCategoryIndex].children[index].exclude)"
:value="item.value">{{ item.label }}
</checkbox>
</label>
</view>
</checkbox-group>
</view>
</view>
</px-popup-bottom>
</template> </template>
<style scoped lang="scss"> <style scoped lang="scss">
.uni-form-item .title { .uni-form-item .title {
padding: 20rpx 0; padding: 20rpx 0;
} }
.red{
color:red;
}
.uni-picker-tips { .uni-picker-tips {
font-size: 12px; font-size: 12px;
@ -203,4 +406,28 @@ export default {
padding: 0 15px; padding: 0 15px;
/* text-align: right; */ /* text-align: right; */
} }
/*底部抽屉 报考方向内容 start*/
.professionalCategoryPopup .professionalCategoryItem {
margin: 20rpx;
padding: 20rpx;
text-align: center;
border: 1rpx solid #f1f2f3;
.text {
margin: 0 auto;
}
}
.active {
background-color: #3e89fe;
color: white;
border-radius: 15rpx;
}
.professionalCategoryChildren .childrenItem {
margin: 20rpx;
}
/*底部抽屉 报考方向内容 end*/
</style> </style>

144
pages/zyb/settings.vue Normal file
View File

@ -0,0 +1,144 @@
<script>
import Request from '@/common/request'
import ApiConstant from "@/common/ApiConstant";
import ImagesConstant from "@/common/ImagesConstant";
let request = new Request()
export default {
name: "settings",
computed: {
ImagesConstant() {
return ImagesConstant
}
},
data() {
return {
itemList: [
{
title: '志愿卡说明',
url: '/pages/zyb/other/volunteerCardDesc'
},
/*{
title: '隐私声明',
url: ''
},*/
{
title: '免责声明',
url: '/pages/zyb/other/disclaimer'
},
{
title: '用户协议',
url: '/pages/zyb/other/userAgreement'
},
{
title: '联系我们',
url: '/pages/zyb/other/web-view'
},
/*{
title: '注销账号',
method:''
},*/
]
}
},
onShow(){
},
onLoad() {
},
methods: {
goto(e) {
uni.navigateTo({
url: e
})
},
/*退出*/
logOut(){
uni.showModal({
title:'提示',
content: '确认要退出已登录账号吗?',
confirmText: '确定',
cancelText: '取消',
success:function (res){
if (res.confirm) {
uni.clearStorageSync()
uni.reLaunch({
url: '/pages/zyb/home'
})
}
}
});
},
}
}
</script>
<template>
<!--头部-->
<view class="body">
<!--剩余选项-->
<view class="trow1">
<view class="uni-flex flex" v-for="(item,index) in itemList" :key="index">
<view class="flex-item-10" @click="item.url?goto(item.url):null">
<view style="height: 50rpx" :class="index===itemList.length-1?'uni-flex flex trow1-child-last':'uni-flex flex trow1-child'">
<view class="flex-item-9" style="margin-left: 50rpx;line-height: 50rpx">
<text>{{ item.title }}</text>
</view>
<view class="flex-item-1">
<image :src="ImagesConstant.keyboard.arrowRight" style="margin-top: 5rpx;width: 40rpx;height: 40rpx"/>
</view>
</view>
</view>
</view>
</view>
<!---->
<view class="uni-flex flex">
<view class="flex-item-10" style="text-align: center;padding: 30rpx">
<button type="primary" class="redBtn" plain="true" @click="logOut">退出登录</button>
</view>
</view>
</view>
</template>
<style scoped lang="scss">
.body {
border-top:3rpx solid #f6f6f6;
background-color: #f4f5f7;
min-height: 880rpx;
/*单行*/
.trow1 {
background-color: #ffffff;
border-radius: 15rpx;
.trow1-center {
font-size: 24rpx;
margin: 10rpx 0 0 20rpx;
border-left: 5rpx solid #f1b481;
}
.trow1-child {
margin-top: 20rpx;
padding-bottom: 20rpx;
border-bottom: 2rpx solid #f8f8f8;
}
.trow1-child-last {
margin-top: 20rpx;
padding-bottom: 20rpx;
border-bottom: none;
}
}
}
.redBtn{
transition: 0.3s;
background-color: #fdf0f0 !important;
border: 3rpx solid #f99393 !important;
color:red !important;
}
.redBtn:active{
transition: 0.3s;
background-color: #d86162 !important;
color:white !important;
}
</style>

View File

@ -0,0 +1,528 @@
<!--
文化分测算 详情页 页面
-->
<script>
import StaticConstant from "@/common/StaticConstant";
import ApiConstant from "@/common/ApiConstant";
import Request from '@/common/request'
import ImagesConstant from "@/common/ImagesConstant";
let request = new Request()
export default {
name: "test-cultural-detail",
components: {},
computed: {
ImagesConstant() {
return ImagesConstant
},
StaticConstant() {
return StaticConstant
}
},
data() {
return {
schoolCode: '',
year:'2022',
schoolInfo: {},
collectSchoolList: [],//
collectFlag: false,//
majorIndex:0,
majorArray: [
{
majorName: '设计学类(环境设计、视觉传达设计)',
}
],//
}
},
onLoad(e) {
console.log(e)
if (e.schoolCode) {
this.schoolCode = e.schoolCode
}
this.getSchoolInfo()
},
onShareAppMessage(){
return {
title: "文化分测算", //
path: "/pages/zyb/testCultural/detail?schoolCode="+this.schoolCode,//
}
},
//
onShareTimeline(res) {
return {
title: "文化分测算", //
path: "/pages/zyb/testCultural/detail?schoolCode="+this.schoolCode,//
}
},
methods: {
gotoSchoolDetail() {
uni.navigateTo({
url: '/pages/zyb/school/detail?schoolCode=' + this.schoolCode
})
},
/*院校详情信息*/
getSchoolInfo() {
request.get(ApiConstant.School.schoolInfo, {
schoolCode: this.schoolCode
}).then(r => {
console.log(r)
if (r.success) {
this.schoolInfo = r.result
if (this.schoolInfo.city.includes(this.schoolInfo.province)) {
this.schoolInfo.cityProvince = true
}
}
this.checkCollect()
this.getTestCultural()
}).catch(err => {
}).finally(() => {
});
},
checkCollect() {
//
if (this.schoolInfo && this.schoolInfo.schoolCode) {
let collectSchoolList = uni.getStorageSync('collectSchoolList')
if (collectSchoolList === undefined || collectSchoolList === null || collectSchoolList === '') {
collectSchoolList = []
}
for (let i = 0; i < collectSchoolList.length; i++) {
if (collectSchoolList[i].schoolCode === this.schoolInfo.schoolCode) {
//
this.collectFlag = true
this.collectIndex = i
break
}
}
}
},
/*关注按钮点击事件*/
clickCollectSchool() {
let collectSchoolList = uni.getStorageSync('collectSchoolList')
console.log(collectSchoolList)
if (collectSchoolList === undefined || collectSchoolList === null || collectSchoolList === '') {
collectSchoolList = []
}
if (this.collectFlag === true) {
//
// index
this.checkCollect()
this.collectFlag = false
//
collectSchoolList.splice(this.collectIndex, 1)
} else {
//
this.collectFlag = true
collectSchoolList.push(this.schoolInfo)
}
uni.setStorageSync('collectSchoolList', collectSchoolList)
},
bindMajorArrayPickerChange(e){
this.majorIndex = e.detail.value
},
getTestCultural(){
request.get(ApiConstant.Major.testCultural, {
schoolCode: this.schoolCode,
year:this.year
}).then(r => {
console.log(r)
if (r.success) {
this.majorArray = r.result
}
}).catch(err => {
}).finally(() => {
});
},
/**/
shareToggle() {
uni.share({
provider: "weixin",
scene: "WXSceneSession",
type: 1,
summary: "我正在使用HBuilderX开发uni-app赶紧跟我一起来体验",
success: function (res) {
console.log("success:" + JSON.stringify(res));
},
fail: function (err) {
console.log("fail:" + JSON.stringify(err));
}
});
}
}
}
</script>
<template>
<view class="head">
<view class="school-item">
<view class="uni-flex flex">
<view class="flex-item-25 t_item">
<image :src="schoolInfo.schoolIcon||ImagesConstant.defaultIcon" style="width: 128rpx;height: 128rpx" mode="aspectFill"/>
</view>
<view class="flex-item-75 t_item">
<view class="uni-flex flex">
<view class="flex-item-6 t_item" style="display: flex;height: 80rpx;">
<text style="font-size: 35rpx;">{{ schoolInfo.schoolName }}</text>
</view>
<view class="flex-item-4 t_item" style="display: flex;height: 60rpx;font-size: 30rpx;">
<view class="address adrs" v-if="schoolInfo.cityProvince">
<!--直辖市-->
<view class="address-item address-item-before" v-if="schoolInfo.city">{{ schoolInfo.city }}</view>
<view class="address-item" v-if="schoolInfo.area && schoolInfo.area.length<4">{{ schoolInfo.area }}
</view>
</view>
<view class="address adrs" v-else>
<view class="address-item address-item-before" v-if="schoolInfo.province">{{ schoolInfo.province }}
</view>
<view class="address-item" v-if="schoolInfo.city">{{ schoolInfo.city }}</view>
<!-- <view class="address-item" v-if="item.area && item.area.length<4">{{item.area}}</view>-->
</view>
</view>
</view>
<view class="uni-flex flex">
<view class="flex-item-10 t_item" style="display: flex;">
<view class="tags">
<text class="tag" v-for="(tag,tindex) in schoolInfo.tagsList" :key="tindex" v-show="tag !=='普通本科'">
{{ tag }}
</text>
</view>
</view>
</view>
</view>
</view>
<view class="uni-flex flex other">
<view class="flex-item-33 t_item center" @click="gotoSchoolDetail">
<view class="t-item-b">
<view style="display: flex">
<image :src="ImagesConstant.yxjs"/>
</view>
<text class="text">院校介绍</text>
</view>
</view>
<view class="flex-item-33 t_item center" @click="gotoSchoolDetail">
<view class="t-item-b">
<view style="display: flex">
<image :src="ImagesConstant.zlsj"/>
</view>
<text class="text">招录数据</text>
</view>
</view>
<view class="flex-item-33 t_item center end" @click="gotoSchoolDetail">
<view class="t-item-b">
<view style="display: flex">
<image :src="ImagesConstant.lqxx"/>
</view>
<text class="text">录取信息</text>
</view>
</view>
</view>
</view>
</view>
<view class="body">
<view class="detail">
<picker @change="bindMajorArrayPickerChange" :value="majorIndex" :range="majorArray" range-key='majorNameAll'>
<view class="flex">
<view style="width: 80%">
<view class="flex majorTitle">专业名称</view>
<view class="flex" style="padding: 0 30rpx 30rpx 30rpx">
<view class="majorName">{{ majorArray[majorIndex].majorNameAll }}</view>
</view>
</view>
<view class="" style="width: 20%;margin: auto 0">
<image :src="ImagesConstant.keyboard.arrowDown" style="width: 70rpx;height: 55rpx;background-color: #42c6c6;border-radius: 10rpx"/>
<text class="flex">{{majorArray.length}}</text>
</view>
</view>
</picker>
</view>
<view class="detail">
<view class="flex">
<view class="title darkturquoise">
测算结果
</view>
</view>
<!--分数限制-->
<view class="flex" v-if='!majorArray[majorIndex].score'>
<view class="mntext marginCenter">
未收录信息
</view>
</view>
<view v-else>
<view class="flex">
<view class="mntext marginCenter">
<text v-if="majorArray[majorIndex].rulesEnrollProbability==='专过文排'">文化需达院校控线{{majorArray[majorIndex].score}}</text>
<text v-else-if="majorArray[majorIndex].rulesEnrollProbability==='文过专排'">专业需达院校控线{{majorArray[majorIndex].score}}</text>
<text v-else>文化及专业总分需达院校控线{{majorArray[majorIndex].score}}</text>
</view>
</view>
<view style="border-bottom:5rpx solid #f4f4f4">
<view class="flex" style="padding:0 30rpx">
<view class="mnTitle">:</view>
</view>
<view class="flex" style="padding:0 30rpx">
<view class="mntext">
<text>{{year}}河南文化分控线为
<text class="darkturquoise">{{ majorArray[majorIndex].culturalScore}}</text>
</text>
</view>
</view>
<view class="flex" style="padding:0 30rpx">
<view class="mntext">
<text>{{year}}河南专业分控线为
<text class="darkturquoise">{{ majorArray[majorIndex].specialScore}}</text>
</text>
</view>
</view>
</view>
<!--录取限制-->
<view style="padding: 30rpx 20rpx">
<view class="flex">
<view class="mntext2">
<text>录取方式</text>
</view>
</view>
<view class="flex">
<view class="mntext3 darkturquoise">
<text>{{ majorArray[majorIndex].rulesEnrollProbability}}</text>
</view>
</view>
<view class="flex">
<view class="mntext2">
<text>院校限制</text>
</view>
</view>
<view class="flex">
<view class="mntext3 darkturquoise">
<text>身体要求非色盲色弱</text>
</view>
</view>
</view>
</view>
</view>
<!--收藏按钮-->
<view class="uni-flex flex" style="margin-top: 20rpx;">
<view style="width: 50%;">
<view :class="collectFlag?'collect-active':'collect'" @click="clickCollectSchool">
<view class="uni-flex flex">
<view class="flex-item-2">
<image :src="collectFlag? ImagesConstant.loveWhile:ImagesConstant.loveDarkturquoise"
style="width: 50rpx;height: 50rpx;"/>
</view>
<view class="flex-item-7">
<text style="font-size: 30rpx;line-height: 50rpx;">收藏院校</text>
</view>
</view>
</view>
</view>
</view>
</view>
<view>
<!-- 分享示例 -->
<uni-popup ref="share" type="share" safeArea backgroundColor="#fff">
<uni-popup-share></uni-popup-share>
</uni-popup>
</view>
<!--底部固定-->
<view class="bottom">
<view class="shareBtn" open-type="share">分享给朋友一起测</view>
</view>
</template>
<style scoped lang="scss">
/*院校列表*/
.school-item {
padding: 30rpx;
background-color: white;
border-radius: 15rpx;
.other {
margin-top: 60rpx;
height: 100rpx;
}
.other .t_item {
border-right: 1rpx solid #efeaea;
height: 60rpx;
}
.t-item-b {
position: relative;
top: -30rpx;
image {
width: 80rpx;
height: 80rpx;
margin: 0 auto 10rpx auto;
}
}
.other .end {
border: none;
}
}
.majorTitle {
font-size: 35rpx;
color: #939292;
padding: 30rpx;
}
.majorName {
}
.body {
padding: 30rpx;
height: 80%;
.detail {
background-color: white;
border-radius: 30rpx;
margin-bottom: 30rpx;
/*标题*/
.title {
font-size: 40rpx;
margin: 40rpx auto 30rpx auto;
}
.mntext {
font-size: 25rpx;
color: #939292;
margin-top: 20rpx;
margin-bottom: 20rpx;
}
.mntext2 {
font-size: 30rpx;
color: #939292;
line-height: 40rpx;
}
.mntext3 {
font-size: 26rpx;
line-height: 40rpx;
}
.mnTitle {
font-size: 25rpx;
color: #939292;
}
}
}
.bottom {
position: fixed;
bottom: 0;
border-radius: 30rpx 30rpx 0 0;
height: 200rpx;
width: 100%;
background: linear-gradient(#ffffff, #f9f58f);
.shareBtn {
width: 60%;
text-align: center;
margin: 50rpx auto;
border-radius: 50rpx;
background: linear-gradient(45deg, #f9a418, #fad81d, #f9a418);
padding: 30rpx;
color: white;
font-weight: 600;
font-size: 40rpx;
font-style: italic; //
-webkit-animation-name: animationScale; /*关键帧名称*/
-webkit-animation-timing-function: ease-in-out; /*动画的速度曲线*/
-webkit-animation-iteration-count: infinite; /*动画播放的次数*/
-webkit-animation-duration: 4s; /*动画所花费的时间*/
}
}
.center {
text-align: center;
margin: 0 auto;
}
/*省市区*/
.adrs {
display: flex;
flex-direction: row;
flex-wrap: wrap;
margin: 0 0 0 auto;
line-height: 60rpx;
}
.address .address-item-before {
margin-left: 0 !important;
}
.address .address-item {
margin-left: 10rpx;
color: #8999a3;
font-size: 23rpx;
line-height: 40rpx;
}
/*标签*/
.tags .tag {
color: #8999a3;
font-size: 23rpx;
line-height: 40rpx;
margin-right: 10rpx;
border: 1rpx solid #52c6c6;
border-radius: 10rpx;
padding: 0 8rpx;
text-align: right;
}
.introduceBlock {
text-indent: 2em;
}
//
.introduceBlock::before {
content: "\2003";
}
.darkturquoise{
font-weight: 600;
}
//
.collect {
background-color: white;
color: darkturquoise;
height: 50rpx;
border-radius: 15rpx;
padding: 30rpx 0 30rpx 30rpx;
text-align: center
}
.collect-active {
background-color: darkturquoise;
color: white;
height: 50rpx;
border-radius: 15rpx;
padding: 30rpx 0 30rpx 30rpx;
text-align: center
}
//
@keyframes animationScale {
0% {
transform: scale(1); /*开始为原始大小*/
}
25% {
transform: scale(1.1); /*放大1.1倍*/
}
50% {
transform: scale(1);
}
75% {
transform: scale(1.1);
}
}
</style>

View File

@ -0,0 +1,278 @@
<!--
测文化 页面
-->
<script>
import StaticConstant from "@/common/StaticConstant";
import ApiConstant from "@/common/ApiConstant";
import Request from '@/common/request'
import ImagesConstant from "@/common/ImagesConstant";
let request = new Request()
export default {
name: "test-cultural",
components: {},
computed: {
ImagesConstant() {
return ImagesConstant
},
StaticConstant() {
return StaticConstant
}
},
data() {
return {
topFlag:false,
province: '河南',
tab: 'tk',
selectForm: {
schoolName: '',
province: '',
institutionType: '',
schoolNature: '',
},
statusTypes: [
{
value: 'more',
text: '加载前',
checked: true
}, {
value: 'loading',
text: '加载中',
checked: false
}, {
value: 'noMore',
text: '没有更多',
checked: false
}],
contentText: {
contentdown: '查看更多',
contentrefresh: '加载中',
contentnomore: '没有更多'
},
tk: {
status: 'more',
schoolList: [],
current: 0,
size: 10
}
}
},
onShow() {
},
onLoad(){
this.getSchoolList()
},
methods: {
handle(type) {
this.show = !this.show
this.modeClass = type
},
/*切换分数类型*/
switchTab(e) {
this.tab = e
},
/*院校列表*/
getSchoolList() {
request.get(ApiConstant.School.searchSchoolList, {
schoolName: '',
pageNum: this.tk.current,
pageSize: this.tk.size
}).then(r => {
console.log(r)
if (r.success) {
this.tk.current = r.result.current
this.tk.size = r.result.size
this.tk.total = r.result.total
//
this.tk.schoolList = [...this.tk.schoolList, ...r.result.records]
if (r.result.current >= r.result.pages) {
this.tk.status = 'noMore'
} else {
this.tk.status = 'more'
}
}
}).catch(err => {
}).finally(() => {
});
},
loadMore() {
if (this.tk.status === 'noMore') {
return;
}
console.log('加载中')
this.tk.current++;
this.getSchoolList()
},
top() { //
uni.pageScrollTo({
scrollTop: 0,
duration: 300
});
},
goto(url){
uni.navigateTo({
url: url
})
}
},
onPageScroll(e){ //
//600//600
this.topFlag = e.scrollTop > 600;
}
}
</script>
<template>
<view class="head">
<view style="display: flex;">
<view class="topTitle" :class="tab==='tk'?'topTitle-active':''" @click="switchTab('tk')">
<text>统考院校</text>
<view style="display: flex;" :class="tab==='tk'?'bottom-active':''"></view>
</view>
<!-- <view class="topTitle" :class="tab==='xk'?'topTitle-active':''" @click="switchTab('xk')">
<text>校考院校</text>
<view style="display: flex" :class="tab==='xk'?'bottom-active':''"></view>
</view>-->
</view>
</view>
<view class="body">
<!--院校列表-->
<view class="school-list">
<view class="school-item uni-flex flex" v-for="(item,index) in tk.schoolList" :key="index"
@click="goto('/pages/zyb/testCultural/detail?schoolCode='+item.schoolCode)">
<view class="flex-item-25 t_item">
<image :src="item.schoolIcon||ImagesConstant.defaultIcon" style="width: 128rpx;height: 128rpx" mode="aspectFill"/>
</view>
<view class="flex-item-75 t_item">
<view class="uni-flex flex">
<view class="flex-item-6 t_item" style="display: flex;height: 80rpx">
<text>{{ item.schoolName }}</text>
</view>
<view class="flex-item-4 t_item" style="display: flex;height: 60rpx">
<view class="address adrs" v-if="item.city.includes(item.province)">
<!--直辖市-->
<view class="address-item address-item-before" v-if="item.city">{{ item.city }}</view>
<view class="address-item" v-if="item.area && item.area.length<4">{{ item.area }}</view>
</view>
<view class="address adrs" v-else>
<view class="address-item address-item-before" v-if="item.province">{{ item.province }}</view>
<view class="address-item" v-if="item.city">{{ item.city }}</view>
<!-- <view class="address-item" v-if="item.area && item.area.length<4">{{item.area}}</view>-->
</view>
</view>
</view>
<view class="uni-flex flex">
<view class="flex-item-10 t_item" style="display: flex;">
<view class="tags">
<text class="tag" v-for="(tag,tindex) in item.tagsList" :key="tindex" v-show="tag !=='普通本科'">
{{ tag }}
</text>
</view>
</view>
</view>
</view>
</view>
<view class="container" @click="loadMore">
<uni-load-more :status="tk.status" :content-text="contentText"/>
</view>
</view>
</view>
<view class="top" style="transition: 0.3s;" :style="{'display':(topFlag===true? 'block':'none')}">
<uni-icons class="topc" type="arrowthinup" size="50" @click="top"></uni-icons>
</view>
</template>
<style scoped lang="scss">
.head {
padding: 20rpx 30rpx;
text-align: center;
background-color: white;
}
.body {
//padding-top: 100rpx;
}
/*院校列表*/
.school-list {
padding: 30rpx;
.school-item {
margin-bottom: 30rpx;
padding: 30rpx;
background-color: white;
border-radius: 15rpx;
//box-shadow: 0 0 5px 1px rgba(0, 0, 0, 0.2);
}
}
/*省市区*/
.adrs {
display: flex;
flex-direction: row;
flex-wrap: wrap;
margin: 0 0 0 auto;
}
.address .address-item-before{
margin-left: 0 !important;
}
.address .address-item {
margin-left: 10rpx;
color: #8999a3;
font-size: 23rpx;
line-height: 40rpx;
}
/*标签*/
.tags .tag {
color: #8999a3;
font-size: 23rpx;
line-height: 40rpx;
margin-right: 10rpx;
border: 1rpx solid #52c6c6;
border-radius: 10rpx;
padding: 0 8rpx;
text-align: right;
}
.topTitle {
width: 100%;
font-size: 35rpx;
transition: 0.3s;
}
/*选择的tab*/
.topTitle-active {
font-size: 40rpx;
//border-bottom: 6rpx solid #42c6c6;
}
.bottom-active {
margin: 0 auto;
width: 60rpx;
border-bottom: 6rpx solid #42c6c6;
}
/* 回到顶部 */
.top {
position: relative;
display: none; /* 先将元素隐藏 */
}
.topc {
position: fixed;
right: -5%;
//background: #F0F0F0;
background: #52c6c6;
border-radius: 50%;
top: 80%;
height: 50px;
line-height: 50px;
}
</style>

View File

@ -1,25 +0,0 @@
<script>
import StaticConstant from "@/common/StaticConstant";
import Request from '@/common/request'
let request = new Request()
export default {
name: "user-center",
data(){
return {}
},
onLoad() {
},
methods: {
}
}
</script>
<template>
</template>
<style scoped lang="scss">
</style>

122
pages/zyb/user/detail.vue Normal file
View File

@ -0,0 +1,122 @@
<script>
import Request from '@/common/request'
import ApiConstant from "@/common/ApiConstant";
import Link from "@/pages/extUI/link/link.vue";
let request = new Request()
export default {
name: "user-index",
components: {Link},
data() {
return {
userInfo:{},
scoreInfo:{
id:'',
province: '河南',//
cognitioPolyclinic: '理科',//
professionalCategory: '美术类',//
culturalScore: '457',//
professionalScore: '210',//
chineseScore:'',
englishScore:''
},
}
},
onShow(){
},
onLoad() {
this.userInfo = uni.getStorageSync('userInfo')
if (this.userInfo === null || this.userInfo.phone === null || this.userInfo.phone === undefined || this.userInfo.phone === '') {
wx.reLaunch({
url: '/pages/zyb/login',
})
return;
}
this.getScore()
},
methods: {
//
getScore(){
let that = this
that.scoreInfo = uni.getStorageSync("scoreInfo")
},
goto(e) {
uni.navigateTo({
url: e
})
},
goToEdit(){
this.goto('/pages/zyb/score/edit')
}
}
}
</script>
<template>
<!--头部-->
<view class="body">
<uni-section class="mb-10" title="统考/省联考成绩" sub-title="如需修改请联系客服处理" type="line"></uni-section>
<view class="items">
<view class="item item-border">
<view class="left">用户昵称</view>
<view class="right">
<input v-model="userInfo.realname"/>
</view>
</view>
<view class="item item-border">
<view class="left">高考地区</view>
<view class="right dark">{{scoreInfo.province}}</view>
</view>
<view class="item">
<view class="left">高考年份</view>
<view class="right dark">2023</view>
</view>
</view>
<view style="display: flex;height: 100rpx">
<uni-section class="mb-10" title="选择艺考和艺考方向" type="line"></uni-section>
<text style="line-height: 100rpx;margin: 0 0 0 auto;color: #4975fd;font-size: 25rpx" @click="goToEdit()">前往修改</text>
</view>
<view class="items">
<view class="item item-border">
<view class="left">选考科目</view>
<view class="right dark">
{{scoreInfo.cognitioPolyclinic}}
</view>
</view>
<view class="item">
<view class="left">艺考方向</view>
<view class="right dark">{{scoreInfo.professionalCategory}}</view>
</view>
</view>
</view>
</template>
<style scoped lang="scss">
.body {
background-color: white;
min-height: 800rpx;
padding: 30rpx;
/*单行*/
.item-border{
border-bottom:3rpx solid #e5e5e5;
}
.item{
display: flex;
height: 100rpx;
line-height: 100rpx;
.left{
}
.right{
margin: 0 0 0 auto;
input{
text-align:right;
height: 100rpx;
line-height: 100rpx;
}
}
}
}
.dark{
color:#606266;
}
</style>

295
pages/zyb/user/index.vue Normal file
View File

@ -0,0 +1,295 @@
<script>
import Request from '@/common/request'
import ApiConstant from "@/common/ApiConstant";
import StaticConstant from "@/common/StaticConstant";
import ImagesConstant from "@/common/ImagesConstant";
import vip from "@/pages/zyb/vip/index.vue";
let request = new Request()
export default {
name: "user-index",
computed: {
ImagesConstant() {
return ImagesConstant
},
StaticConstant() {
return StaticConstant
}
},
data() {
return {
avatar:'http://files.yitisheng.vip/yitisheng.png',
volunteerName:'加载中',
userInfo:{
vipFlag: false
},
scoreInfo:{
id:'',
province: '',//
cognitioPolyclinic: '',//
professionalCategory: '',//
culturalScore: '',//
professionalScore: '',//
chineseScore:'',
englishScore:''
},
itemList: [
{
title: '更新快报',
icon: '/static/icons/linear/calendar.png',
url: '/pages/zyb/other/updateLogs'
},
{
title: '我的收藏',
icon: '/static/icons/linear/love.png',
url: '/pages/zyb/user/myCollect'
},
{
title: '使用说明',
icon: '/static/icons/linear/illustrate.png',
url: '/pages/zyb/other/useHelp'
},
{
title: '常见问题',
icon: '/static/icons/linear/quest.png',
url: '/pages/zyb/other/commonProblem'
},
{
title: '设置',
icon: '/static/icons/linear/settings.png',
url: '/pages/zyb/settings'
},
]
}
},
onShow(){
this.userInfo = uni.getStorageSync('userInfo')
if (this.userInfo === null || this.userInfo.phone === null || this.userInfo.phone === undefined || this.userInfo.phone === '') {
wx.reLaunch({
url: '/pages/zyb/login',
})
}
this.getScore()
},
onLoad() {
},
methods: {
//
getScore(){
request.get(ApiConstant.Volunteer.volunteerInfo,{}).then(r => {
console.log(r)
if (r.success) {
this.scoreInfo = r.result.userScoreInfo
this.volunteerName = r.result.volunteerName
try {
uni.setStorageSync('scoreInfo',this.scoreInfo)
} catch (e) {
// error
console.log('setScoreInfoError ',e)
}
}
}).catch(err => {
}).finally(() => {
});
},
gotoEditScore() {
console.log('前往修改成绩页面')
this.goto('/pages/zyb/score/edit')
},
switchFillVolunteer(){
uni.switchTab({
url:'/pages/zyb/fillVolunteer/my'
})
},
/*前往开通vip*/
gotoOpenVip(){
this.goto('/pages/zyb/vip/index')
},
goto(e) {
uni.navigateTo({
url: e
})
},
}
}
</script>
<template>
<!--头部-->
<view class="header" style="z-index: 1">
<view class="uni-flex flex" style="padding: 30rpx 30rpx 0 30rpx" @click="goto('/pages/zyb/user/detail')">
<!--头像-->
<view class="flex-item2 t1">
<image class="avatar" :src="avatar"/>
</view>
<!--手机号-->
<view class="flex-item-7 t2">
<view class="flex">
<text style="line-height: 50rpx">{{userInfo.realname}}</text>
</view>
<view class="flex">
<text style="line-height: 50rpx">{{scoreInfo.province}}</text>
<text style="line-height: 50rpx;font-size: 24rpx">/2023</text>
</view>
</view>
<!--按钮-->
<view class="flex-item2" style="padding-top: 60rpx;">
<image class="arrow-right" :src="ImagesConstant.keyboard.arrowRightWhite"/>
</view>
</view>
<!--开通vip提示-->
<view class="uni-flex flex" style="margin-top: 30rpx">
<view class="flex-item-10 vipBackground" style="height: 50rpx;padding: 30rpx" v-if="userInfo.vipFlag">
<text style="color:white">VIP到期时间2024-08-31</text>
</view>
<view class="flex-item-10 vipBackground" style="height: 50rpx;line-height: 50rpx;padding: 30rpx;color:white" v-else>
<text>升级为VIP, 准确查大学录取率</text>
<text class="float-right radius60" style="border: 1rpx solid white;padding: 0 20rpx" @click="gotoOpenVip">开通VIP</text>
</view>
</view>
</view>
<view class="body" style="z-index: 2">
<!--我的成绩-->
<view class="uni-flex flex trow1">
<view class="flex-item-1">
<text style="font-size: 24rpx">我的成绩</text>
</view>
<view class="flex-item-7">
<view class="trow1-center"
style="line-height: 60rpx;">
<text style="margin:0 30rpx">文化分:{{this.scoreInfo.culturalScore}}</text>
<text style="margin-right: 30rpx">专业分:{{this.scoreInfo.professionalScore}}</text>
</view>
</view>
<view class="flex-item-2">
<view class="" style="margin-top: 20rpx">
<view @click="gotoEditScore()"
style="border:3rpx solid #4975fd;border-radius: 20rpx; width: 100rpx;text-align: center;cursor: pointer">
<text style="color:#4975fd;">修改</text>
</view>
</view>
</view>
</view>
<!--我的志愿-->
<view class="uni-flex flex trow1">
<view class="flex-item-1">
<text style="font-size: 24rpx">我的志愿</text>
</view>
<view class="flex-item-7">
<view class="trow1-center" style="">
<view class="flex">
<text style="margin:0 30rpx">{{volunteerName}}</text>
</view>
<view class="flex" style="margin-left:30rpx;color:#c1c4cc">
<text>{{scoreInfo.professionalScore}}&nbsp;&nbsp;/</text>
<text>&nbsp;{{ scoreInfo.province }}&nbsp;/</text>
<text>&nbsp;{{scoreInfo.professionalCategory}}</text>
</view>
</view>
</view>
<view class="flex-item-2">
<view style="width: 65rpx;height: 65rpx;text-align: center; margin-left: 10rpx;
background: linear-gradient(131deg, rgb(18, 117, 236) 0%, rgb(122, 182, 249) 100%);
border-radius: 10rpx;padding: 5rpx 10rpx 12rpx 10rpx">
<text @click="switchFillVolunteer" style="font-size: 24rpx;letter-spacing:2rpx;line-height: 1rpx;color: white">查看全部</text>
</view>
</view>
</view>
<!--剩余选项-->
<view class="trow1">
<view class="uni-flex flex" v-for="(item,index) in itemList" :key="index">
<view class="flex-item-10" @click="goto(item.url)">
<view class="" :class="index===itemList.length-1?'uni-flex flex trow1-child-last':'uni-flex flex trow1-child'">
<view class="flex-item-1">
<image :src="item.icon" style="width: 40rpx;height: 40rpx"/>
</view>
<view class="flex-item-8">
<text>{{ item.title }}</text>
</view>
<view class="flex-item-1">
<image :src="ImagesConstant.keyboard.arrowRight" style="width: 40rpx;height: 40rpx"/>
</view>
</view>
</view>
</view>
</view>
<!---->
<view class="uni-flex flex">
<view class="flex-item-10" style="text-align: center;">
<text>{{StaticConstant.systemName}}</text>
</view>
</view>
</view>
</template>
<style scoped lang="scss">
.header {
background: linear-gradient(131deg, rgb(18, 117, 236) 0%, rgb(122, 182, 249) 100%);
height: 340rpx;
/*头像*/
.avatar {
border-radius: 50%;
width: 150rpx;
height: 148rpx;
}
.arrow-right {
width: 70rpx;
height: 70rpx;
position: absolute;
right: 8rpx;
}
.t1 {
padding: 20rpx 0 0 0;
}
.t2 {
padding: 40rpx 20rpx 0 20rpx;
font-weight: 500;
color: white;
}
/*开通vip框*/
.vipBackground {
background-color: #e5620f;
border-radius: 40rpx 40rpx 0 0;
}
}
.body {
background-color: #f4f5f7;
min-height: 880rpx;
padding: 30rpx;
/*单行*/
.trow1 {
background-color: #ffffff;
border-radius: 15rpx;
padding: 20rpx 30rpx;
margin-bottom: 30rpx;
.trow1-center {
font-size: 24rpx;
margin: 10rpx 0 0 20rpx;
border-left: 5rpx solid #f1b481;
}
.trow1-child {
margin-top: 20rpx;
padding-bottom: 20rpx;
border-bottom: 2rpx solid #f8f8f8;
}
.trow1-child-last {
margin-top: 20rpx;
padding-bottom: 20rpx;
border-bottom: none;
}
}
}
</style>

View File

@ -0,0 +1,223 @@
<script>
import ApiConstant from "@/common/ApiConstant";
import Request from '@/common/request'
let request = new Request()
export default {
data() {
return {
tabs: [
{
id: 1,
name: '院校'
}, {
id: 2,
name: '专业'
}
],
scrollLeft: 0,
currentTab: 0,
old: {
scrollTop: 0
},
tabCurrent: '1',
// Tab
artMiniMajorList: [],
schoolList: []
}
},
onShow() {
let collectSchoolList = uni.getStorageSync('collectSchoolList')
if (collectSchoolList === undefined || collectSchoolList === null || collectSchoolList === '') {
collectSchoolList = []
}
this.schoolList = collectSchoolList
console.log(this.schoolList)
},
methods: {
swichMenu(id) {
this.currentTab = id
console.log(id)
//this.tabCurrent = 'tabNum'+ id
// swiper
this.scrollLeft = 0;
for (let i = 0; i < id; i++) {
this.scrollLeft += 60
console.log(this.scrollLeft, 60, id)
}
},
/*跳转页面*/
goto(url) {
uni.navigateTo({
url: url
})
},
}
}
</script>
<template>
<view class="body-view">
<!-- 使用scroll-view实现tabs滑动切换 -->
<!-- <scroll-view v-if="false" class="top-menu-view" scroll-x="true" scroll-with-animation :scroll-left="scrollLeft">
<view class="menu-topic-view" v-for="(item,index) in tabs" :id="'tabNum'+item.id" :key="index"
@click="swichMenu(index)">
<view :class="currentTab==index ? 'menu-topic-act' : 'menu-topic'">
<text class="menu-topic-text">{{ item.name }}</text>
<view class="menu-topic-bottom">
<view class="menu-topic-bottom-color"></view>
</view>
</view>
</view>
</scroll-view>-->
<!--院校列表-->
<view class="school-list">
<view class="school-item uni-flex flex" v-for="(item,index) in schoolList" :key="index"
@click="goto('/pages/zyb/school/detail?schoolCode='+item.schoolCode)">
<view class="flex-item-25 t_item">
<image :src="item.schoolIcon" style="width: 128rpx;height: 128rpx;border-radius: 50%;" mode="aspectFill"/>
</view>
<view class="flex-item-75 t_item">
<view class="uni-flex flex">
<view class="flex-item-10 t_item" style="display: flex;height: 40rpx">
<!-- <text v-if="item.schoolCode">[{{item.schoolCode}}]</text>-->
<text>{{ item.schoolName }}</text>
<view class="address" style="display: flex;margin: 0 0 0 auto">
<view class="address-item" v-if="item.province">{{ item.province }}</view>
<view class="address-item" v-if="item.city">{{ item.city }}</view>
<view class="address-item" v-if="item.area">{{ item.area }}</view>
</view>
</view>
</view>
<view class="uni-flex flex">
<view class="flex-item-10 t_item" style="display: flex;height: 40rpx">
<view class="tags">
<text class="tag" v-for="(tag,tindex) in item.tagsList" :key="tindex">
{{ tag }}
</text>
</view>
</view>
</view>
</view>
</view>
</view>
</view>
</template>
<style scoped lang="scss">
.body-view {
width: 100%;
overflow: hidden;
}
/*tabs 栏*/
.top-menu-view {
display: flex;
position: fixed;
z-index: 100;
//top: 84rpx;
/* #ifdef H5 */
top: 84rpx;
/* #endif */
/* #ifndef H5 */
top: 0rpx;
/* #endif */
left: 0;
white-space: nowrap;
width: 100%;
background-color: white;
height: 86rpx;
line-height: 86rpx;
border-top: 1rpx solid #d8dbe6;
.menu-topic-view {
display: inline-block;
white-space: nowrap;
height: 86rpx;
position: relative;
width: 50%;
text-align: center;
.menu-topic-text {
font-size: 30rpx;
color: #303133;
padding: 10rpx 40rpx;
font-weight: 500;
}
.menu-topic-bottom {
position: absolute;
bottom: 0;
width: 100%;
.menu-topic-bottom-color {
width: 40rpx;
height: 4rpx;
}
}
.menu-topic-act .menu-topic-bottom {
display: flex;
justify-content: center;
}
.menu-topic-act .menu-topic-text {
color: #4975fd;
}
.menu-topic-act .menu-topic-bottom-color {
background: #4975fd;
}
}
}
.swiper-box-list {
width: 95%;
padding: 20rpx 40rpx;
flex: 1;
background-color: #FFFFFF;
height: calc(100vh - 251rpx);
.swiper-topic-list {
width: 100%;
}
}
/* 隐藏滚动条,但依旧具备可以滚动的功能 */
:deep(.uni-scroll-view::-webkit-scrollbar) {
display: none
}
.bodyl {
padding: 30rpx;
}
/*院校列表*/
.school-list {
padding: 30rpx;
.school-item {
margin-bottom: 30rpx;
padding: 30rpx;
background-color: white;
border-radius: 8rpx;
}
}
/*省市区*/
.address .address-item {
margin-right: 10rpx;
color: #8999a3;
font-size: 23rpx;
line-height: 40rpx;
}
/*标签*/
.tags .tag {
margin-right: 10rpx;
color: #8999a3;
font-size: 20rpx;
line-height: 40rpx;
}
</style>

165
pages/zyb/vip/cardamom.vue Normal file
View File

@ -0,0 +1,165 @@
<!--卡密激活 页面-->
<script>
import StaticConstant from "@/common/StaticConstant";
import ApiConstant from "@/common/ApiConstant";
import Request from '@/common/request'
import user from "@/pages/zyb/user/index.vue";
let request = new Request()
export default {
name: "cardamom",
computed: {
StaticConstant() {
return StaticConstant
}
},
data() {
return {
userInputCardNum: '', //
}
},
methods: {
bankcardInput(e) {
setTimeout(() => {
let card = e.detail.value;
console.log(card.length)
//"-"
card = card.replace(/\s/g, '').replace(/[^\d]/g, '').replace(/(\d{4})(?=\d)/g, '$1-');
this.userInputCardNum = card
console.log("有间隔", this.userInputCardNum);
},0)
},
/*兑换按钮事件*/
cardActivation(){
let cardNum = this.userInputCardNum.replace(/-/g, "");
cardNum
console.log(cardNum)
request.post(ApiConstant.VIP.cardActivation, {
card: cardNum
}).then(r => {
console.log(r)
if (r.success) {
/*更新VIP状态 start*/
let userInfo=uni.getStorageSync('userInfo')
userInfo.vipFlag = true
uni.setStorageSync('userInfo',userInfo)
/*更新VIP状态 end.*/
setTimeout(function () {
uni.showToast({title: r.message, icon: "none"});
setTimeout(function () {
//
uni.switchTab({
url: '/pages/zyb/home'
});
}, 1500)
}, 1000)
}else{
uni.showToast({title: r.message, icon: "none"});
this.userInputCardNum = ''
}
}).catch(err => {
}).finally(() => {
});
}
}
}
</script>
<template>
<view class="card radius8">
<view class="card-label">卡密激活码</view>
<view class="card-body">
<input class="input radius8" type="number" placeholder="请输入卡密激活码" v-model="userInputCardNum"
maxlength="19" @input='bankcardInput'/>
<button type="primary" style="margin-top: 20rpx" class="radius8" @click="cardActivation" :disabled="userInputCardNum.length!==19">兑换
</button>
</view>
</view>
<view class="card radius8">
<view class="card-label">使用须知</view>
<view class="card-body">
<view class="text-body">
<text class="text-item">-适用范围:艺术类文理科考生(自主招生暂不适用)</text>
<text class="text-item">
-使用期限:自购买起截止到2024-8-31日有效分数修改次数:每届服务期内高考分数放榜前每日可修改5次放榜后仅可修改1次
</text>
<text class="text-item">-系统数据来源于{{ StaticConstant.bm }}部门由合作网站提供</text>
<text class="text-item">
-部分年份数据如果为空可能是当年不在查询地招生系统数据不包含高考加分如果录取数据与院校公布数据不一致请以高校正式公布的数据为准
</text>
<text class="text-item">
-由于高考填报志愿是一个动态变化的过程本系统查询的历年高校录取数据仅作为填报志愿参考请综合各种信息进行报考勿仅以此填报志愿
</text>
<text class="text-item">-本卡为电子卡不记名不挂失一经出售概不退换!</text>
<text class="text-item">-最终解释权归本平台所有</text>
</view>
</view>
</view>
</template>
<style scoped lang="scss">
/*卡片 start*/
.card {
background-color: white;
margin: 30rpx 30rpx 20rpx 30rpx;
}
.card .card-label {
font-size: 33rpx;
height: 60rpx;
line-height: 60rpx;
padding: 20rpx 30rpx;
border-bottom: 1rpx solid #f4f5f7;
}
.card .card-body {
padding: 30rpx 30rpx;
}
/*卡片 end*/
.card .card-body .input {
padding: 20rpx;
line-height: 100rpx;
border: 1rpx solid #c1c4cc;
}
/*兑换按钮 start*/
.ktBtn {
border: 1rpx solid #3d76fd;
background-color: #3d76fd !important;
color: white;
font-size: 35rpx;
height: 80rpx;
text-align: center;
line-height: 80rpx;
transition: 0.1s;
margin: 20rpx 0;
cursor: pointer;
}
.ktBtn-active {
border: 1rpx solid #3d76fd;
background-color: #3d76fd;
}
/*.ktBtn:active {
border: none;
background-color: #f8f8f8;
color: white;
}*/
/*兑换按钮 end*/
/*使用须知*/
.text-body {
margin-top: 30rpx;
}
.text-body .text-item {
display: flex;
justify-items: left;
font-size: 30rpx;
color: #606266;
line-height: 45rpx;
}
</style>

View File

@ -0,0 +1,173 @@
<!--收银台 页面
-->
<script>
import ImagesConstant from "@/common/ImagesConstant";
import StaticConstant from "@/common/StaticConstant";
import ApiConstant from "@/common/ApiConstant";
import Request from '@/common/request'
let request = new Request()
export default {
name: "checkoutCounter",
components: {},
computed: {
ImagesConstant() {
return ImagesConstant
},
StaticConstant() {
return StaticConstant
}
},
data() {
return {
orderCode:'',//
totalAmount:'',//
}
},
onLoad(e) {
if (e.orderCode) {
this.orderCode = e.orderCode
this.getOrderDetail()
}
},
methods: {
getOrderDetail() {
request.get(ApiConstant.VIP.orderDetail, {orderCode:this.orderCode}).then(r => {
console.log(r)
if (r.success) {
this.signStr = r.result.orderSign
this.totalAmount = parseFloat(r.result.totalAmount)/100
}else{
uni.showToast({title:r.message, icon: "none"});
}
}).catch(err => {
}).finally(() => {
});
},
goto(url) {
uni.navigateTo({
url: url
})
},
paySubmit(){
if (!this.signStr) {
uni.showToast({title: '获取订单异常!', icon: "none"});
return
}
let sign = JSON.parse(this.signStr);
//
uni.requestPayment({
provider: 'wxpay',
timeStamp: sign.timeStamp,
nonceStr: sign.nonceStr,
package: sign.package,
signType: sign.signType,
paySign: sign.paySign,
success: function (res) {
console.log('success:' + JSON.stringify(res));
console.log('支付成功!')
setTimeout(function () {
uni.showToast({title:'支付成功', icon: "none"});
let userInfo=uni.getStorageSync('userInfo')
userInfo.vipFlag = true
uni.setStorageSync('userInfo',userInfo)
setTimeout(function () {
//
uni.switchTab({
url: '/pages/zyb/home'
});
}, 2000)
}, 1000)
},
fail: function (err) {
console.log('取消支付')
console.log('fail:' + JSON.stringify(err));
}
});
}
}
}
</script>
<template>
<view class="background-white">
<view class="border-top"></view>
<view style="padding: 0 40rpx">
<view class="card">
<text class="z-h6">使用须知</text>
<view class="text-body">
<text class="text-item">适用考生艺术类考生</text>
<text class="text-item">使用专业类别省内统考</text>
<text class="text-item">适用批次艺考类本科及专科批</text>
<text class="text-item">适用范围河南省</text>
</view>
</view>
<view class="card">
<text class="z-h6">如何使用</text>
<view class="text-body">
<text class="text-item">下单购买后或激活VIP卡密之后可在小程序端登录使用解锁所有VIP功能</text>
</view>
</view>
<view class="card">
<text class="z-h6">开通提示</text>
<view class="text-body">
<text class="text-item">1高考出分前可填写模拟成绩体验产品专业成绩/文化成绩/专业类别信息每日可修改5次</text>
<text class="text-item">2出分后仅可修改1次信息将模拟信息修改为最终成绩</text>
<text class="text-item">3使用过程中有任何疑问请及时反馈</text>
</view>
</view>
</view>
</view>
<view class="bottom">
<view class="flex padding30">
<view class="flex-item-3">
<view style="color: #df4e44;line-height: 120rpx">
<text></text>
<text class="font-weight-600 font-size-big2">{{totalAmount}}</text>
</view>
</view>
<view class="flex-item-7">
<view @click="paySubmit" style="line-height:90rpx;float: right" class="padding10-30 background-red2 font-size-medium radius60">
<view class="white">立即支付</view>
</view>
</view>
</view>
</view>
</template>
<style scoped lang="scss">
.card {
border-bottom: 2rpx solid #f5f6f8;
padding: 0 30rpx 30rpx 30rpx;
}
.card .z-h6 {
margin: 50rpx 0 30rpx 0;
}
/*使用须知 start*/
.text-body {
margin-top: 30rpx;
}
.text-body .text-item {
display: flex;
justify-items: left;
font-size: 26rpx;
color: #999999;
line-height: 50rpx;
}
/*使用须知 end*/
/*底部 start*/
.bottom {
border-top: 1rpx solid #f5f6f8;
position: fixed;
bottom: 0;
height: 180rpx;
width: 100%;
background-color: white;
}
/*底部 end*/
</style>

266
pages/zyb/vip/index.vue Normal file
View File

@ -0,0 +1,266 @@
<!--
开通VIP 页面
-->
<script>
import StaticConstant from "@/common/StaticConstant";
import ApiConstant from "@/common/ApiConstant";
import ImagesConstant from "@/common/ImagesConstant";
import Request from '@/common/request'
let request = new Request()
export default {
name: "vip-index",
components: {},
computed: {
ImagesConstant() {
return ImagesConstant
},
StaticConstant() {
return StaticConstant
}
},
data() {
return {
checkFlag: false,
cardIndex: 0,
cardArray: [
{
skuCode:'1',
skuName: '志愿卡',
skuOriginalPrice:0,
skuPrice:18.8,
endTime: '2024-08-31'
},
]
}
},
onLoad() {
//
this.getSkuList()
},
methods: {
//
kaMi(){
this.goto('/pages/zyb/vip/cardamom')
},
getSkuList(){
request.get(ApiConstant.VIP.skuList, {}).then(r => {
console.log(r)
if (r.success) {
this.cardArray = r.result
}
}).catch(err => {
}).finally(() => {
});
},
//
pay() {
if (!this.checkFlag) {
uni.showToast({title: '请阅读会员服务协议并勾选 ', icon: "none"});
return
}
request.post(ApiConstant.Pay.vip1,
{skuCode:this.cardArray[this.cardIndex].skuCode}
).then(r => {
console.log(r)
if (r.success) {
this.goto('/pages/zyb/vip/checkoutCounter?orderCode='+r.result)
}else{
uni.showToast({title:r.message, icon: "none"});
}
}).catch(err => {
}).finally(() => {
});
},
checkboxChange(r) {
this.checkFlag = r.detail.value && r.detail.value.length > 0;
},
goto(url) {
uni.navigateTo({
url: url
})
},
bindPickerCardChange(e) {
this.cardIndex = e.detail.value
}
}
}
</script>
<template>
<view class="border-top padding50-30" style="background-color: #fdedc8;height: 700rpx;">
<view class="flex" style="padding-left: 30rpx">
<view class="flex-item-5 font-size-big font-weight-600 brown">
不浪费分数
</view>
<view class="flex-item-5 font-size-big font-weight-600 float-right brown">
上更好的大学
</view>
</view>
<view class="flex" style="padding-right: 30rpx;padding-top: 20rpx">
<view class="flex-item-7"></view>
<view class="flex-item-3">
<view style="color: #f8430f" class="font-size-medium font-weight-550 float-right">金榜题名</view>
</view>
</view>
<view class="flex cardTip">
超1000万考生开通VIP
</view>
<view class="card">
<view class="flex" style="margin-top: 30rpx">
<view class="flex-item-6 font-weight-550" style="color: #743211">
{{StaticConstant.systemName}}填报高级卡VIP
</view>
<view class="radius8"
style="background-color: white;color: #743211;min-width: 150rpx;text-align: center;padding: 5rpx;margin: 0 0 0 auto">
<picker @change="bindPickerCardChange" :value="cardIndex" :range="cardArray"
range-key="skuName">
{{ cardArray[cardIndex].skuName }}
<image :src="ImagesConstant.triangle_bottom" class="icon32"/>
</picker>
</view>
</view>
<view class="flex" style="margin-top: 30rpx">
<view class="flex-item-7" style="line-height: 50rpx">
<view class="flex font-size-mini2 brown">
{{cardArray[cardIndex].skuDetail}}
</view>
</view>
</view>
<view class="flex" style="margin-top: 50rpx">
<view class="flex-item-7" style="line-height: 50rpx">
<view class="flex font-size-mini2 brown">
<image
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAAhCAYAAAC803lsAAAAAXNSR0IArs4c6QAAAzZJREFUWEe9l8FSGkEQhv9eSHLFm1W61OYN8AmCTxBykCW5BI+pAMITgE+AYbVyVG8BqyJ5AskTaJ4AUqBXNxWrUpYwnZqFxWHZRRJ3ndMyy0x/0739dw/hiYaVW0+DqQogDZBN4HaMYrsfvvR6EoGegsPK6hkQTr22CNSLkbYpYeZADjNG4uaFeA/mNBNSBEoAnPh3YO4Um4NNuW7fTHYZbPjvMf7fDMj+22SZBar/Z9hrZmzgYMtICW10HngQhl1s9VemIFYuWQOzjGEog4Feqdl/+SAIgGKzTw7I2BNcD4VA2WR4+3sFiQTif0Q32MuT0HzOGcaIxVlwDB+Bx1wrtga7DXOtTNB8D8qC06WTwXdq5PQ8MQ4fYS54KcOOa7ENmRVWNlll4jwBzkcrQ0c8qhRbV20nfS1TPxvndjRDTVFpob5lpJ6N6LrwtftTtUgNU++6lNGgjHcl4EgVsDlNsUydlwPgDhgdJjIIyAetkS6H4PF7jY7mD0k2IC7ka1dn3NAsAcLlYnPwyTVez60acX5+7p8J9/9t5NbyxJrv9+emt7un/EYWgngXuAsbpl4noDznYhb5QuvyWM6HC8LYK7X6Fa/BSRGTH/rMoKhAhkJsVE4unZjOwZjJa294IgHxhuUgu1792BrsLgpPVCBHpWZ/2zUsqyjuYmlXA/zCEw3IRH4lyLR4TWTbEae8kfDWkdBBvGFxTi/wChA/XFmWMPumfsiKrkQBMhOWIAHzpmj4IEpYFimvNzzhgky6Jhfg4J2RGom71FQFBdtqeNTCGTZIu9jqv3ENW2ZSyvkURM7LpqfStm35bJnJHYD3nJoRpqCxoqaycRryqDsfnvuaonbpKogK6F2/XK1h2AQqM4a/CHHZ0Mx4wzk5qMcktiFEgihedzs8OQ9GzVmrzD8I8lT9iI9Hp9cN52BWVj8FIbMoM6J4x8CMPNCiOEYBMM08jDKF5tW36W8/mY4SQO7t1+M495pF7X4UUGpm3Xto8iTbfRDXojA8s6dSNNX5mbuv9Ayg7UTR1TOkJHBN7X0DQZzSnls1YoilibXXcG7wNKchy3hNGoZjHBcAd4a3N8euEvut/wvZbExA2hR6OwAAAABJRU5ErkJggg=="
alt="" srcset="" class="icon32" style="margin-top: 10rpx;margin-right: 10rpx"/>
模拟报志愿VIP
</view>
<view class="flex font-size-mini2 brown">
有效期截至2024-08-31
<!-- {{ cardArray[cardIndex].endTime }}-->
</view>
</view>
<view class="flex-item-3 brown marginRight" style="padding: 30rpx 0;text-align: right">
<text class="font-weight-600 font-size-medium" style="font-family: 'Helvetica'">
{{ cardArray[cardIndex].skuPrice }}
</text>
<text class="font-size-mini"></text>
</view>
</view>
</view>
</view>
<image :src="ImagesConstant.huiyuanquanyi" style="width: 100%;height: 1100rpx;margin-bottom: 200rpx"/>
<view class="bottom">
<view class="flex ms" style="height: 50rpx;line-height: 50rpx;padding: 20rpx 0">
<text class="radius2 white" style="background-color: #f34a8b;height: 30rpx;line-height: 30rpx;font-size: 25rpx;padding: 0 5rpx;margin: 10rpx 20rpx 0 20rpx">秒杀</text>
<text class="slateGray">活动结束将恢复原价</text>
<text class="red">
限时秒杀
</text>
<uni-countdown style="position: relative;bottom: 10rpx" :show-day="false" :show-hour="false" :minute="10" :second="0" color="red" background-color="white" />
</view>
<view class="flex" style="padding: 30rpx 20rpx">
<view class="flex-item-10 flex">
<view class="flex-item-4">
<text class="slateGray font-size-mini">原价</text>
<text class="slateGray font-size-mini" style="text-decoration: line-through">{{cardArray[cardIndex].skuOriginalPrice}}</text>
<text class="red">
现价{{cardArray[cardIndex].skuPrice}}
</text>
<checkbox-group @change="checkboxChange">
<checkbox value="cb"/>
<text @click="goto('/pages/zyb/other/volunteerCardDesc')">会员服务协议</text>
</checkbox-group>
<view></view>
</view>
<view class="flex-item-58 flex">
<view class="kmBtn radius8" @click="kaMi">卡密激活</view>
<view class="ktBtn radius8" @click="pay">立即开通</view>
</view>
</view>
</view>
</view>
</template>
<style scoped lang="scss">
/*VIP卡*/
.card {
border-radius: 2%;
padding: 40rpx 30rpx;
height: 300rpx;
background-image: url(https://static-qiniu.mnzy.gaokao.cn/zsgk-volunteer/gaokao/assets/images/vip-bg.png);
background-repeat: no-repeat;
background-position: 50%;
background-size: cover;
//background: linear-gradient(to right, #ecca7e, #f5dea2, #f8e7b3);
}
.cardTip {
font-size: 26rpx;
color: white;
padding: 8rpx 20rpx;
border-radius: 30rpx 30rpx 30rpx 0;
height: 40rpx;
line-height: 40rpx;
width: 260rpx;
background: linear-gradient(to right, #86c9f7, #554df9);
position: relative;
top: 30rpx;
}
.bottom {
position: fixed;
bottom: 0;
border-radius: 30rpx 30rpx 0 0;
height: 230rpx;
width: 100%;
background-color: white;
.ms {
background-color: #f9cdd6 !important;
line-height: 50rpx;
height: 50rpx;
}
}
/*卡密激活按钮 start*/
.kmBtn {
border: 1rpx solid #96b8fe;
background-color: #eff9ff;
color: #96b8fe;
font-size: 35rpx;
height: 80rpx;
text-align: center;
line-height: 80rpx;
width: 200rpx;
margin-left: 20rpx;
}
.kmBtn:active {
border: none;
background-color: #f8f8f8;
color: white;
}
/*卡密激活按钮 end*/
/*卡密激活按钮 start*/
.ktBtn {
border: 1rpx solid #3d76fd;
background-color: #3d76fd;
color: white;
font-size: 35rpx;
height: 80rpx;
text-align: center;
line-height: 80rpx;
width: 200rpx;
margin-left: 20rpx;
}
.ktBtn:active {
border: none;
background-color: #f8f8f8;
color: white;
}
/*卡密激活按钮 end*/
</style>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 774 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 401 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 470 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 511 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 476 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 472 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 545 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 365 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 587 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 565 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 577 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 554 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 677 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 735 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 429 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 802 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 828 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 551 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 551 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 683 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 655 B

Some files were not shown because too many files have changed in this diff Show More