This commit is contained in:
zhouwentao 2024-05-20 16:16:56 +08:00
parent d579a5e812
commit 022b8bc835
108 changed files with 13265 additions and 1920 deletions

39
common/js/commonTool.js Normal file
View File

@ -0,0 +1,39 @@
import Request from '@/common/request'
import ApiConstant from '../ApiConstant'
let request = new Request()
export default {
//调试vip信息
checkVipInfo(e){
if (e && e.skuCode) {
e.vipFlag = true
uni.setStorageSync('vipInfo',e)
}else{
uni.setStorageSync('vipInfo',{vipFlag:false})
}
},
//刷新vip信息
reloadVipInfo() {
request.get(ApiConstant.VIP.vipInfo,{},{showLoad:false}).then(r => {
console.log(r)
if (r.success) {
this.checkVipInfo(r.result)
}
}).catch(err => {
}).finally(() => {
});
},
//格式化处理
dateFormatYYYYMMDD(time) {
let date = new Date(time.replace(/-/g,'/'));
let year = date.getFullYear();
// 在日期格式中月份是从0开始的因此要加0使用三元表达式在小于10的前面加0以达到格式统一 如 09:11:05
let month = date.getMonth() + 1 < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1;
let day = date.getDate() < 10 ? "0" + date.getDate() : date.getDate();
let hours = date.getHours() < 10 ? "0" + date.getHours() : date.getHours();
let minutes = date.getMinutes() < 10 ? "0" + date.getMinutes() : date.getMinutes();
let seconds = date.getSeconds() < 10 ? "0" + date.getSeconds() : date.getSeconds();
// 拼接
// return year + "-" + month + "-" + day + " " + hours + ":" + minutes + ":" + seconds;
return year + "-" + month + "-" + day;
},
}

24
common/js/jumpTool.js Normal file
View File

@ -0,0 +1,24 @@
export default{
/*打开某个页面*/
goto(e) {
uni.navigateTo({
url: e
})
},
goLogin(){
this.goto('/pages/zyb/login')
},
goArticleDetail(e){
this.goto('/pages/zyb/article/detail?articleId='+e.id)
},
/*打开成绩修改界面*/
openScoreEdit() {
this.goto('/pages/zyb/score/edit')
},
openVip() {
this.goto('/pages/zyb/vip/index')
},
openFeedback(){
this.goto('/pages/zyb/other/feedback')
}
}

View File

@ -1,34 +0,0 @@
<!--回到顶部按钮
-->
<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>

View File

@ -0,0 +1,134 @@
<script>
import StaticConstant from "@/common/StaticConstant";
import ApiConstant from "@/common/ApiConstant";
import Request from "@/common/request";
let request = new Request()
export default {
name: "detail",
components: {},
computed: {
StaticConstant() {
return StaticConstant
}
},
data() {
return {
showFlag: false,
articleId: '',
titleShow:false,
articleInfo: {},
tagStyle: {
table: 'box-sizing: border-box; border-top: 1px solid #dfe2e5; border-left: 1px solid #dfe2e5;',
th: 'border-right: 1px solid #dfe2e5; border-bottom: 1px solid #dfe2e5;',
td: 'border-right: 1px solid #dfe2e5; border-bottom: 1px solid #dfe2e5;',
li: 'margin: 5px 0;'
}
}
},
onLoad(e) {
if (e.articleId) {
this.articleId = e.articleId
this.getContent()
}
},
methods: {
/*招生章程*/
getContent() {
request.get(ApiConstant.Article.articleContent + "/" + this.articleId, {}).then(res => {
console.log(res)
if (res.success) {
this.articleInfo = res.result
if (!this.articleInfo.content.includes(this.articleInfo.title)) {
this.titleShow = true
}
this.showFlag = true
} else {
}
}).catch(err => {
}).finally(() => {
});
},
backHome() {
uni.reLaunch({
url: "/pages/zyb/home"
});
},
load() {
console.log('dom 树加载完毕')
},
ready(e) {
console.log('ready 事件触发:', e)
},
imgtap(e) {
console.log('imgtap 事件触发:', e)
},
linktap(e) {
console.log('linktap 事件触发:', e)
}
}
}
</script>
<template>
<view class="border-top background-white">
<view class="head" v-if="showFlag && titleShow">
<view class="flexWrap marginTopBot20">
<view class="flex-item-10" style="text-align: center">
<text class="font-weight-b font-size-medium">{{ articleInfo.title }}</text>
</view>
</view>
<view class="flexWrap marginTopBot20" style="text-align: center">
<!-- <view class="flex-item-1"></view>-->
<!-- <view class="flex-item-3">
<text>{{articleInfo.contentType ==='1'?'招生章程':'其他'}}</text>
</view>-->
<view class="flex-item-10">
<text>{{ articleInfo.releaseTime }}</text>
</view>
</view>
</view>
<view class="body" v-if="showFlag">
<mp-html container-style="padding:20px" :content="articleInfo.content"
domain="https://mp-html.oss-cn-hangzhou.aliyuncs.com" lazy-load scroll-table selectable use-anchor
:tag-style="tagStyle" @load="load" @ready="ready" @imgtap="imgtap" @linktap="linktap"/>
<!-- <view class="content">
<view v-if="articleInfo && articleInfo.contentType ==='1'">
{{ articleInfo.content }}
</view>
</view>-->
</view>
<view class="bottom" v-if="showFlag">
<!--返回首页-->
<view class="fhsy" @click="backHome">
返回首页
</view>
</view>
</view>
</template>
<style scoped lang="less">
.body {
//padding: 30rpx;
}
.content {
padding: 30rpx 10rpx;
border: 1rpx solid #75c591;
}
/*返回首页按钮 start*/
.fhsy {
margin: 0 auto;
border: 2rpx solid #cbcaca;
text-align: center;
font-size: 25rpx;
line-height: 100rpx;
width: 100rpx;
height: 100rpx;
border-radius: 50%;
padding: 30rpx;
}
/*返回首页按钮 end*/
</style>

255
pages/zyb/article/list.vue Normal file
View File

@ -0,0 +1,255 @@
<template>
<view class="background-white">
<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="" style="transition: 3s all" :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="banner" @click="goDetail(banner)">
<image class="banner-img" :src="banner.cover"></image>
<view class="banner-title">{{ banner.title }}</view>
</view>-->
<!--招生章程搜索-->
<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="this.tabs[this.currentTab].id===1?'请输入院校名称':'请输入标题'" v-model="title"
@clear="clearTitleInput" cancelButton="none" @confirm="searchTitleClick"/>
</view>
<view style="width: 10%;line-height: 100rpx">
<text @click="searchTitleClick">搜索</text>
</view>
</view>
</view>
<block v-for="(value, index) in tabs[currentTab].list" :key="index">
<view class="uni-list-cell" hover-class="uni-list-cell-hover" @click="gotoArticle(value)">
<view class="uni-media-list">
<!--<image class="uni-media-list-logo" :src="value.cover"></image>-->
<view class="uni-media-list-body">
<view class="uni-media-list-text-top">{{ value.title }}</view>
<view class="uni-media-list-text-bottom">
<text>{{ value.schoolName }}</text>
<text>{{ value.releaseTime }}</text>
</view>
</view>
</view>
</view>
</block>
<view class="container" @click="loadMore">
<uni-load-more :status="tabs[currentTab].status" :content-text="contentText"/>
</view>
<view class="top" :style="{'display':(topFlag===true? 'block':'none')}">
<uni-icons class="topc" type="arrowthinup" size="40" @click="clickTop"></uni-icons>
</view>
</view>
</template>
<script>
import {dateUtils} from '@/common/util';
import ApiConstant from "@/common/ApiConstant";
import Request from "@/common/request";
import StaticConstant from "@/common/StaticConstant";
let request = new Request()
export default {
data() {
return {
banner: {
cover: 'https://mp-7a4eecb1-2a04-4d36-b050-1c4a78cc31a4.cdn.bspapp.com/images/jxywtj.png'
},
current: 1,
pageSize: 10,
listData: [],
last_id: '',
reload: false,
contentText: StaticConstant.loadContentText,
scrollLeft: 0,
topFlag: false,
title: '',
tabs: [
{id: 1, name: '招生章程', list: [], current: 1, pageSize: 10, status: 'more'},
{id: 2, name: '高考动态', list: [], current: 1, pageSize: 10, status: 'more'},
{id: 3, name: '校内资讯', list: [], current: 1, pageSize: 10, status: 'noMore'}
],
currentTab: 0,
};
},
onLoad() {
//this.getBanner();
this.getAdmissionsRegulationsList();
},
onPullDownRefresh() {
this.reload = true;
this.last_id = '';
//this.getBanner();
this.current = 1
this.getList();
},
onReachBottom() {
if (this.tabs[this.currentTab].id === 1) {
this.loadMore();
}
},
onPageScroll(e) { //
//600//600
this.topFlag = e.scrollTop > 600;
},
onShareAppMessage() {
return {
title: '招生章程', //
path: "/pages/zyb/article/list"
}
},
//
onShareTimeline(res) {
return {
title: '招生章程', //
path: "/pages/zyb/article/list"
}
},
methods: {
/*跳转到文章页面*/
gotoArticle(e) {
uni.navigateTo({
url: '/pages/zyb/article/detail?articleId=' + e.id
})
},
getBanner() {
let data = {
column: 'id,post_id,title,author_name,cover,published_at' //
};
uni.request({
url: 'https://unidemo.dcloud.net.cn/api/banner/36kr',
data: data,
success: data => {
uni.stopPullDownRefresh();
if (data.statusCode == 200) {
this.banner = data.data;
}
},
fail: (data, code) => {
console.log('fail' + JSON.stringify(data));
}
});
},
/*招生章程*/
getAdmissionsRegulationsList() {
this.setStatus('loading')
let params = {
title: this.title,
type: this.tabs[this.currentTab].id,
pageNum: this.tabs[this.currentTab].current,
pageSize: this.tabs[this.currentTab].pageSize
}
request.get(ApiConstant.Article.articlePage, params).then(res => {
console.log(res)
if (res.success) {
this.tabs[this.currentTab].current = res.result.current
this.tabs[this.currentTab].pages = res.result.pages
//
this.tabs[this.currentTab].list = [...this.tabs[this.currentTab].list, ...res.result.records]
console.log(this.tabs)
if (res.result.current >= res.result.pages) {
this.setStatus('noMore')
} else {
this.setStatus('more')
}
} else {
}
}).catch(err => {
}).finally(() => {
});
},
//
searchTitleClick() {
this.tabs[this.currentTab].current = 1
this.tabs[this.currentTab].list = []
this.getAdmissionsRegulationsList()
},
clearTitleInput() {
this.title = ''
this.tabs[this.currentTab].current = 1
this.tabs[this.currentTab].list = []
this.getAdmissionsRegulationsList()
},
setStatus(status) {
this.tabs[this.currentTab].status = status
},
loadMore() {
if (this.tabs[this.currentTab].status === 'noMore') {
return;
}
console.log('加载中')
this.tabs[this.currentTab].current++;
this.getAdmissionsRegulationsList()
},
/*回到顶部*/
clickTop() {
uni.pageScrollTo({
scrollTop: 0,
duration: 300
});
},
setTime: function (items) {
var newItems = [];
items.forEach(e => {
newItems.push({
schoolName: e.schoolName,
cover: e.cover,
id: e.id,
releaseTime: e.releaseTime ? dateUtils.format(e.releaseTime) : '',
title: e.title
});
});
return newItems;
},
swichMenu(id) {
console.log(id)
if (this.currentTab!==0 && this.currentTab === id) {
return
}
this.currentTab = id
this.clearTitleInput()
//this.tabCurrent = 'tabNum'+ id
// swiper
this.scrollLeft = 0;
for (let i = 0; i < id; i++) {
this.scrollLeft += 120
console.log(this.scrollLeft, 60, id)
}
},
aderror(e) {
console.log("aderror: " + JSON.stringify(e.detail));
}
}
};
</script>
<style>
.uni-media-list-body {
height: auto;
justify-content: space-around;
}
.uni-media-list-text-top {
height: 74rpx;
font-size: 28rpx;
overflow: hidden;
}
.uni-media-list-text-bottom {
display: flex;
flex-direction: row;
justify-content: space-between;
}
</style>

253
pages/zyb/article/list2.vue Normal file
View File

@ -0,0 +1,253 @@
<template>
<view class="background-white">
<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="" style="transition: 3s all" :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="banner" @click="goDetail(banner)">
<image class="banner-img" :src="banner.cover"></image>
<view class="banner-title">{{ banner.title }}</view>
</view>-->
<!--招生章程搜索-->
<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="this.tabs[this.currentTab].id===1?'请输入院校名称':'请输入标题'" v-model="title"
@clear="clearTitleInput" cancelButton="none" @confirm="searchTitleClick"/>
</view>
<view style="width: 10%;line-height: 100rpx">
<text @click="searchTitleClick">搜索</text>
</view>
</view>
</view>
<block v-for="(value, index) in tabs[currentTab].list" :key="index">
<view class="uni-list-cell" hover-class="uni-list-cell-hover" @click="gotoArticle(value)">
<view class="uni-media-list">
<!--<image class="uni-media-list-logo" :src="value.cover"></image>-->
<view class="uni-media-list-body">
<view class="uni-media-list-text-top">{{ value.title }}</view>
<view class="uni-media-list-text-bottom">
<text>{{ value.schoolName }}</text>
<text>{{ value.releaseTime }}</text>
</view>
</view>
</view>
</view>
</block>
<view class="container" @click="loadMore">
<uni-load-more :status="tabs[currentTab].status" :content-text="contentText"/>
</view>
<view class="top" :style="{'display':(topFlag===true? 'block':'none')}">
<uni-icons class="topc" type="arrowthinup" size="40" @click="clickTop"></uni-icons>
</view>
</view>
</template>
<script>
import {dateUtils} from '@/common/util';
import ApiConstant from "@/common/ApiConstant";
import Request from "@/common/request";
import StaticConstant from "@/common/StaticConstant";
let request = new Request()
export default {
data() {
return {
banner: {
cover: 'https://mp-7a4eecb1-2a04-4d36-b050-1c4a78cc31a4.cdn.bspapp.com/images/jxywtj.png'
},
current: 1,
pageSize: 10,
listData: [],
last_id: '',
reload: false,
contentText: StaticConstant.loadContentText,
scrollLeft: 0,
topFlag: false,
title: '',
tabs: [
{id: 1, name: '招生章程', list: [], current: 1, pageSize: 10, status: 'more'},
{id: 2, name: '高考动态', list: [], current: 1, pageSize: 10, status: 'more'},
{id: 3, name: '校内资讯', list: [], current: 1, pageSize: 10, status: 'noMore'}
],
currentTab: 0,
};
},
onLoad() {
//this.getBanner();
this.getAdmissionsRegulationsList(0);
this.getAdmissionsRegulationsList(1);
this.getAdmissionsRegulationsList(2);
},
onPullDownRefresh() {
this.reload = true;
this.last_id = '';
//this.getBanner();
this.current = 1
this.getList();
},
onReachBottom() {
if (this.tabs[this.currentTab].id === 1) {
this.loadMore();
}
},
onPageScroll(e) { //
//600//600
this.topFlag = e.scrollTop > 600;
},
onShareAppMessage() {
return {
title: '招生章程', //
path: "/pages/zyb/article/list"
}
},
//
onShareTimeline(res) {
return {
title: '招生章程', //
path: "/pages/zyb/article/list"
}
},
methods: {
/*跳转到文章页面*/
gotoArticle(e) {
uni.navigateTo({
url: '/pages/zyb/article/detail?articleId=' + e.id
})
},
getBanner() {
let data = {
column: 'id,post_id,title,author_name,cover,published_at' //
};
uni.request({
url: 'https://unidemo.dcloud.net.cn/api/banner/36kr',
data: data,
success: data => {
uni.stopPullDownRefresh();
if (data.statusCode == 200) {
this.banner = data.data;
}
},
fail: (data, code) => {
console.log('fail' + JSON.stringify(data));
}
});
},
/*招生章程*/
getAdmissionsRegulationsList(index) {
this.setStatus(index,'loading')
let params = {
title: this.title,
type: this.tabs[index||this.currentTab].id,
pageNum: this.tabs[this.currentTab].current,
pageSize: this.tabs[this.currentTab].pageSize
}
request.get(ApiConstant.Article.articlePage, params).then(res => {
console.log(res)
if (res.success) {
this.tabs[index||this.currentTab].current = res.result.current
this.tabs[index||this.currentTab].pages = res.result.pages
//
this.tabs[index||this.currentTab].list = [...this.tabs[index||this.currentTab].list, ...res.result.records]
console.log(this.tabs)
if (res.result.current >= res.result.pages) {
this.setStatus(index,'noMore')
} else {
this.setStatus(index,'more')
}
} else {
}
}).catch(err => {
}).finally(() => {
});
},
//
searchTitleClick() {
this.tabs[this.currentTab].current = 1
this.tabs[this.currentTab].list = []
this.getAdmissionsRegulationsList()
},
clearTitleInput() {
this.title = ''
this.tabs[this.currentTab].current = 1
this.tabs[this.currentTab].list = []
this.getAdmissionsRegulationsList()
},
setStatus(index,status) {
this.tabs[index||this.currentTab].status = status
},
loadMore() {
if (this.tabs[this.currentTab].status === 'noMore') {
return;
}
console.log('加载中')
this.tabs[this.currentTab].current++;
this.getAdmissionsRegulationsList()
},
/*回到顶部*/
clickTop() {
uni.pageScrollTo({
scrollTop: 0,
duration: 300
});
},
setTime: function (items) {
var newItems = [];
items.forEach(e => {
newItems.push({
schoolName: e.schoolName,
cover: e.cover,
id: e.id,
releaseTime: e.releaseTime ? dateUtils.format(e.releaseTime) : '',
title: e.title
});
});
return newItems;
},
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 += 120
console.log(this.scrollLeft, 60, id)
}
},
aderror(e) {
console.log("aderror: " + JSON.stringify(e.detail));
}
}
};
</script>
<style>
.uni-media-list-body {
height: auto;
justify-content: space-around;
}
.uni-media-list-text-top {
height: 74rpx;
font-size: 28rpx;
overflow: hidden;
}
.uni-media-list-text-bottom {
display: flex;
flex-direction: row;
justify-content: space-between;
}
</style>

View File

@ -19,7 +19,8 @@ export default {
}, },
data() { data() {
return { return {
avatar: 'http://files.yitisheng.vip/yitisheng.png', vipInfo: {},
avatar: ImagesConstant.systemIcon,
code: '', code: '',
max: 9999, max: 9999,
min: 1, min: 1,
@ -32,20 +33,7 @@ export default {
majorBatch: {}, majorBatch: {},
/// ///
majorCodeArray: [], majorCodeArray: [],
majorArray: [ majorArray: [],//
{majorCode: '130201', majorName: '音乐表演'},
{majorCode: '130202', majorName: '音乐学'},
{majorCode: '130203', majorName: '作曲与作曲技术理论'},
{majorCode: '130204', majorName: '舞蹈表演'},
{majorCode: '130205', majorName: '舞蹈学'},
{majorCode: '130206', majorName: '舞蹈编导'},
{majorCode: '130207', majorName: '舞蹈教育'},
{majorCode: '130208', majorName: '航空服务艺术与管理'},
{majorCode: '130209', majorName: '流行音乐'},
{majorCode: '130210', majorName: '音乐治疗'},
{majorCode: '130211', majorName: '流行舞蹈'},
{majorCode: '130212', majorName: '音乐教育'},
],//
majorVisible: false, majorVisible: false,
/// ///
schoolNatureSelectArray: [], schoolNatureSelectArray: [],
@ -55,35 +43,7 @@ export default {
provinceSelectArray: [], provinceSelectArray: [],
provinceArray: StaticConstant.provinceAllList, provinceArray: StaticConstant.provinceAllList,
provinceVisible: false, provinceVisible: false,
scoreInfo: { scoreInfo: {},
batch: "本科A段",
chineseScore: 0,
cognitioPolyclinic: "理科",
createBy: "1757686194965893121",
createTime: "2024-02-29 11:41:11",
culturalScore: 405,
educationalLevel: "2",
englishScore: 0,
fzby: 0,
id: "1763046730696069122",
isVip: 0,
professionalCategory: "音乐类",
professionalCategoryChildren: "音乐表演器乐,音乐教育",
professionalCategoryChildrenList: ['音乐表演器乐', '音乐教育'],
professionalScore: 200,
province: "河南",
ranking: 0,
state: "1",
subjects: null,
type: "2",
updateBy: null,
updateTime: null,
xjysby: 0,
xjysdy: 0,
yybyqy: 240,
yybysy: 11,
yyjy: 240
},
userInfo: {}, userInfo: {},
listFlag: false, listFlag: false,
recommendMajor: {}, recommendMajor: {},
@ -95,7 +55,7 @@ export default {
{label: '我喜欢的院校类型', value: 1}, {label: '我喜欢的院校类型', value: 1},
{label: '我喜欢的地域', value: 2} {label: '我喜欢的地域', value: 2}
], ],
tabs: ['提前批', '本科A段', '本科B段', '高职高专'] tabs: ['本科批', '高职高专']
} }
}, },
methods: { methods: {
@ -167,7 +127,7 @@ export default {
save() { save() {
console.log(this.recommendMajor) console.log(this.recommendMajor)
let that = this let that = this
if (!this.userInfo.vipFlag) { if (!this.vipInfo || !stringIsNotEmpty(this.vipInfo.vipLevel) || this.vipInfo.vipLevel < 2) {
uni.showModal({ uni.showModal({
title: 'VIP专享', title: 'VIP专享',
// //
@ -207,7 +167,7 @@ export default {
} }
let batch = this.batchArray[this.batchIndex].value let batch = this.batchArray[this.batchIndex].value
this.currentTab = batch this.currentTab = batch
this.scrollLeft =(batch === '本科B段' || batch === '高职高专')?600:0; this.scrollLeft = (batch === '本科B段' || batch === '高职高专') ? 600 : 0;
// //
request.get(ApiConstant.Major.aiAuto, { request.get(ApiConstant.Major.aiAuto, {
batch: batch, batch: batch,
@ -305,28 +265,31 @@ export default {
// //
for (let j = 0; j < recommendMajorElement.length; j++) { for (let j = 0; j < recommendMajorElement.length; j++) {
let r = recommendMajorElement[j] let r = recommendMajorElement[j]
let vr = {majorCode: r.majorCode, schoolCode: r.schoolCode, enrollmentCode: r.enrollmentCode,batch:batch, let vr = {
enrollProbability:r.enrollProbability,studentConvertedScore:r.studentConvertedScore} majorCode: r.majorCode, schoolCode: r.schoolCode, enrollmentCode: r.enrollmentCode, batch: batch,
enrollProbability: r.enrollProbability, studentConvertedScore: r.studentConvertedScore
}
volunteerRecordList.push(vr) volunteerRecordList.push(vr)
} }
} }
let saveVolunteer = { let saveVolunteer = {
scoreId:this.scoreInfo.id, scoreId: this.scoreInfo.id,
category:this.scoreInfo.cognitioPolyclinic, category: this.scoreInfo.cognitioPolyclinic,
volunteerName:this.volunteerName, volunteerName: this.volunteerName,
volunteerRecordList:volunteerRecordList volunteerRecordList: volunteerRecordList
} }
request.post(ApiConstant.Volunteer.saveAs, saveVolunteer).then(r => { request.post(ApiConstant.Volunteer.saveAs, saveVolunteer).then(r => {
console.log(r) console.log(r)
if (r.success) { if (r.success) {
request.getUserScore()
setTimeout(function () { setTimeout(function () {
uni.showToast({title: '保存成功', icon: "none"}); uni.showToast({title: '保存成功', icon: "none"});
// //
uni.switchTab({ uni.switchTab({
url: '/pages/zyb/fillVolunteer/my' url: '/pages/zyb/fillVolunteer/detail'
}); });
}, 500) }, 500)
}else{ } else {
setTimeout(function () { setTimeout(function () {
uni.showToast({title: r.message, icon: "none"}); uni.showToast({title: r.message, icon: "none"});
}, 500) }, 500)
@ -334,30 +297,30 @@ export default {
}).catch(err => { }).catch(err => {
}).finally(() => { }).finally(() => {
}); });
} },
}, },
onShow() { onShow() {
}, },
onLoad() { onLoad() {
this.userInfo = uni.getStorageSync('userInfo') this.userInfo = uni.getStorageSync('userInfo')
let scoreInfo = uni.getStorageSync('scoreInfo') let scoreInfo = uni.getStorageSync('scoreInfo')
this.vipInfo = uni.getStorageSync('vipInfo')
this.scoreInfo = scoreInfo this.scoreInfo = scoreInfo
console.log(scoreInfo) console.log(scoreInfo)
// //
let batchArray = [] let batchArray = []
if (scoreInfo.professionalCategory === '体育') { if (scoreInfo.professionalCategory === '体育类') {
console.log('qvq')
if (scoreInfo.batch === '本科') { if (scoreInfo.batch === '本科') {
batchArray.push({label: '体育类本科批', value: '本科'}) batchArray.push({label: '体育类本科批', value: '本科'})
} }
batchArray.push({label: '体育类专科批', value: '高职高专'}) batchArray.push({label: '体育类专科批', value: '高职高专'})
} else { } else {
if (scoreInfo.batch === '本科A段') { if (scoreInfo.batch === '本科A段' || scoreInfo.batch === '本科B段') {
batchArray.push({label: '艺术类本科提前批', value: '提前批'}, { batchArray.push({
label: '艺术本科A段', label: '艺术类本科批',
value: '本科A段' value: '本科'
}, {label: '艺术本科B段', value: '本科B段'}) })
} else if (scoreInfo.batch === '本科B段') {
batchArray.push({label: '艺术本科B段', value: '本科B段'})
} }
batchArray.push({label: '艺术类专科批', value: '高职高专'}) batchArray.push({label: '艺术类专科批', value: '高职高专'})
} }
@ -374,12 +337,16 @@ export default {
<template> <template>
<view class="body" v-if="!listFlag"> <view class="body" v-if="!listFlag">
<view class="rightTop"></view> <view class="rightTop"></view>
<view class="leftBottom"></view>
<!--系统图标--> <!--系统图标-->
<view class="systemIcon"> <view class="submit" @click="save">
<view class="avatar-background">&nbsp;</view> <view class="submit-text">
<image :src="avatar" class="avatar" style=""/> <text>AI</text><br/>
<text>一键填报</text>
</view>
</view> </view>
<!-- <view class="systemIcon">
<text class="avatar-background">AI一键填报</text>
</view>-->
<view class="schoolTags"> <view class="schoolTags">
<view class="schoolTag absolute1"> <view class="schoolTag absolute1">
武汉大学 武汉大学
@ -397,64 +364,64 @@ export default {
四川大学 四川大学
</view> </view>
</view> </view>
<!--成绩信息-->
<view class="scoreInfo">
<view class="master">
<text class="margin-right-10">{{ scoreInfo.professionalCategory }}</text>
<text class="font-weight-500">{{ scoreInfo.culturalScore }}</text>
<text class="margin-right-10">文化分</text>
<text class="font-weight-500">
{{ scoreInfo.professionalScore }}
</text>
<text class="margin-right-10">
{{
stringIsNotEmpty(scoreInfo.professionalCategory) && scoreInfo.professionalCategory === '音乐类' ? '主项分' : '专业分'
}}
</text>
</view>
<view class="children" v-if="stringIsNotEmpty(scoreInfo.professionalCategoryChildren)">
<view class="margin-right-10" v-if="scoreInfo.professionalCategoryChildren.includes('音乐表演声乐')">
音乐表演声乐
<text class="font-weight-500">{{ scoreInfo.yybysy }}</text>
</view>
<view class="margin-right-10" v-if="scoreInfo.professionalCategoryChildren.includes('音乐表演器乐')">
音乐表演器乐
<text class="font-weight-500">{{ scoreInfo.yybyqy }}</text>
</view>
<view class="margin-right-10" v-if="scoreInfo.professionalCategoryChildren.includes('音乐教育')">
音乐教育
<text class="font-weight-500">{{ scoreInfo.yyjy }}</text>
</view>
<view class="margin-right-10" v-if="scoreInfo.professionalCategoryChildren.includes('戏剧影视导演')">
戏剧影视导演
<text class="font-weight-500">{{ scoreInfo.xjysdy }}</text>
</view>
<view class="margin-right-10" v-if="scoreInfo.professionalCategoryChildren.includes('戏剧影视表演')">
戏剧影视表演
<text class="font-weight-500">{{ scoreInfo.xjysby }}</text>
</view>
<view class="margin-right-10" v-if="scoreInfo.professionalCategoryChildren.includes('服装表演')">
服装表演
<text class="font-weight-500">{{ scoreInfo.fzby }}</text>
</view>
</view>
</view>
<!--筛选菜单--> <!--筛选菜单-->
<view class="switchMenu " style="text-align: center"> <view class="switchMenu " style="text-align: center">
<text style="color: #667697;">设置偏好</text> <text style="color: white" class="font-size-mini5">意向设置</text>
<!--成绩信息-->
<view class="scoreInfo">
<view class="master">
<text>成绩</text>
<text class="margin-right-10">{{scoreInfo.province}}</text>
<text class="margin-right-10">{{ scoreInfo.professionalCategory }}</text>
<text class="margin-right-10">文化分:{{ scoreInfo.culturalScore }}</text>
<text class="margin-right-10">
{{stringIsNotEmpty(scoreInfo.professionalCategory) && scoreInfo.professionalCategory === '音乐类' ? '主项分' : '专业分' }}:
{{ scoreInfo.professionalScore }}
</text>
</view>
<view class="children" v-if="stringIsNotEmpty(scoreInfo.professionalCategoryChildren)">
<view class="margin-right-10" v-if="scoreInfo.professionalCategoryChildren.includes('音乐表演声乐')">
音乐表演声乐
<text class="font-weight-500">{{ scoreInfo.yybysy }}</text>
</view>
<view class="margin-right-10" v-if="scoreInfo.professionalCategoryChildren.includes('音乐表演器乐')">
音乐表演器乐
<text class="font-weight-500">{{ scoreInfo.yybyqy }}</text>
</view>
<view class="margin-right-10" v-if="scoreInfo.professionalCategoryChildren.includes('音乐教育')">
音乐教育
<text class="font-weight-500">{{ scoreInfo.yyjy }}</text>
</view>
<view class="margin-right-10" v-if="scoreInfo.professionalCategoryChildren.includes('戏剧影视导演')">
戏剧影视导演
<text class="font-weight-500">{{ scoreInfo.xjysdy }}</text>
</view>
<view class="margin-right-10" v-if="scoreInfo.professionalCategoryChildren.includes('戏剧影视表演')">
戏剧影视表演
<text class="font-weight-500">{{ scoreInfo.xjysby }}</text>
</view>
<view class="margin-right-10" v-if="scoreInfo.professionalCategoryChildren.includes('服装表演')">
服装表演
<text class="font-weight-500">{{ scoreInfo.fzby }}</text>
</view>
</view>
</view>
<view class="uni-flex uni-row" <view class="uni-flex uni-row"
style="margin: 10rpx 0;-webkit-justify-content: space-between;justify-content: space-between;"> style="margin: 10rpx 0;-webkit-justify-content: space-between;justify-content: space-between;">
<view class="tab4" @click="batchVisible=true"> <view class="tab4" @click="batchVisible=true">
<text v-if="batchArray.length>0">{{ batchArray[batchIndex].label }}</text> <text v-if="batchArray.length>0">{{ batchArray[batchIndex].label }}</text>
<image :src="ImagesConstant.keyboard.arrowDown" class="icon32"/>
</view> </view>
<view class="tab4" @click="settingVisible=true"> <view class="tab4" @click="settingVisible=true">
<text>设置偏好</text> <text>设置偏好</text>
<image :src="ImagesConstant.keyboard.arrowDown" class="icon32"/>
</view> </view>
</view> </view>
</view> </view>
@ -479,12 +446,12 @@ export default {
</view> </view>
</view> </view>
<!--按钮--> <!--按钮-->
<view class="fontsize25" style="text-align: center;padding: 0 40rpx"> <!-- <view class="fontsize25" style="text-align: center;padding: 0 40rpx">
<button @click="save" <button
style="color:white;background: linear-gradient(rgba(52,145,212,0.83), #3658d0);border-radius: 50rpx"> style="color:white;background: linear-gradient(rgba(52,145,212,0.83), #3658d0);border-radius: 50rpx">
一键智能填报 一键智能填报
</button> </button>
</view> </view>-->
</view> </view>
<view class="border-top listBody" v-if="listFlag" style="height: 98%"> <view class="border-top listBody" v-if="listFlag" style="height: 98%">
<view class="head border-bottom"> <view class="head border-bottom">
@ -556,13 +523,13 @@ export default {
折合分: 折合分:
</text> </text>
<text class="font-size-mini" :style="'color:'+checkColorText(item.enrollProbability)"> <text class="font-size-mini" :style="'color:'+checkColorText(item.enrollProbability)">
{{item.studentConvertedScore}} {{ item.studentConvertedScore }}
</text> </text>
<text> <text>
真实分: 真实分:
</text> </text>
<text class="font-size-mini" :style="'color:'+checkColorText(item.enrollProbability)"> <text class="font-size-mini" :style="'color:'+checkColorText(item.enrollProbability)">
{{item.studentScore}} {{ item.studentScore }}
</text> </text>
</view> </view>
</view> </view>
@ -602,19 +569,17 @@ export default {
<uni-popup ref="inputDialog" type="dialog"> <uni-popup ref="inputDialog" type="dialog">
<uni-popup-dialog ref="inputClose" mode="input" title="输入志愿单名称" <uni-popup-dialog ref="inputClose" mode="input" title="输入志愿单名称"
placeholder="请输入内容" @confirm="dialogInputConfirm"> placeholder="请输入内容" @confirm="dialogInputConfirm">
<view> <view>
<view class=""> <view class="">
<uni-forms :modelValue="volunteerName"> <input type="text" v-model="volunteerName" placeholder="请输入名称" />
<uni-easyinput type="text" v-model="volunteerName" placeholder="请输入名称"/>
</uni-forms>
</view> </view>
</view> </view>
</uni-popup-dialog> </uni-popup-dialog>
</uni-popup> </uni-popup>
<!--批次选择--> <!--批次选择-->
<px-popup-bottom :background="'#24293c'" :color="'white'" :visible.sync="batchVisible" title="请选择批次" <px-popup-bottom :background="'#ffffff'" :color="'#000000'" :visible.sync="batchVisible" title="请选择批次"
maxHeight="800" radius="40" @close="onBatchClose"> maxHeight="800" radius="40" @close="onBatchClose">
<view class="majorList"> <view class="majorList">
<view class="flex majorItem" @click="selectBatch(item,index)" :class="index===batchArray.length-1?'':'border-bot'" <view class="flex majorItem" @click="selectBatch(item,index)" :class="index===batchArray.length-1?'':'border-bot'"
@ -625,7 +590,7 @@ export default {
</view> </view>
</px-popup-bottom> </px-popup-bottom>
<!--个性偏好--> <!--个性偏好-->
<px-popup-bottom :background="'#24293c'" :color="'white'" :visible.sync="settingVisible" radius="40" <px-popup-bottom :background="'#ffffff'" :color="'#000000'" :visible.sync="settingVisible" radius="40"
title="设置个性偏好,推荐更精准" maxHeight="800" @close="onSettingClose"> title="设置个性偏好,推荐更精准" maxHeight="800" @close="onSettingClose">
<view class="majorList"> <view class="majorList">
<view class="flex settingItem" @click="majorVisible = true"> <view class="flex settingItem" @click="majorVisible = true">
@ -658,7 +623,7 @@ export default {
</view> </view>
</px-popup-bottom> </px-popup-bottom>
<px-popup-bottom :background="'#24293c'" :color="'white'" :visible.sync="majorVisible" title="请选择专业" <px-popup-bottom :background="'#ffffff'" :color="'#000000'" :visible.sync="majorVisible" title="请选择专业"
maxHeight="800" radius="40" @close="onMajorClose"> maxHeight="800" radius="40" @close="onMajorClose">
<view class="majorList"> <view class="majorList">
<view class="flex majorItem" @click="selectMajor(item)" :class="index===majorArray.length-1?'':'border-bot'" <view class="flex majorItem" @click="selectMajor(item)" :class="index===majorArray.length-1?'':'border-bot'"
@ -669,7 +634,7 @@ export default {
</view> </view>
</px-popup-bottom> </px-popup-bottom>
<px-popup-bottom :background="'#24293c'" :color="'white'" :visible.sync="schoolNatureVisible" title="请选择类型" <px-popup-bottom :background="'#ffffff'" :color="'#000000'" :visible.sync="schoolNatureVisible" title="请选择类型"
maxHeight="800" radius="40" @close="onSchoolNatureClose"> maxHeight="800" radius="40" @close="onSchoolNatureClose">
<view class="majorList"> <view class="majorList">
<view class="flex majorItem" @click="selectSchoolNature(item)" <view class="flex majorItem" @click="selectSchoolNature(item)"
@ -681,7 +646,7 @@ export default {
</view> </view>
</px-popup-bottom> </px-popup-bottom>
<px-popup-bottom :background="'#24293c'" :color="'white'" :visible.sync="provinceVisible" title="请选择地区" <px-popup-bottom :background="'#ffffff'" :color="'#000000'" :visible.sync="provinceVisible" title="请选择地区"
maxHeight="800" radius="40" @close="onProvinceClose"> maxHeight="800" radius="40" @close="onProvinceClose">
<view class="majorList"> <view class="majorList">
<view class="flex majorItem" @click="selectProvince(item)" :class="index===provinceArray.length-1?'':'border-bot'" <view class="flex majorItem" @click="selectProvince(item)" :class="index===provinceArray.length-1?'':'border-bot'"
@ -695,11 +660,45 @@ export default {
</template> </template>
<style scoped lang="scss"> <style scoped lang="scss">
$color1: #f95b17;
$color2: #fef0e7;
$color3:#ffffff;
.body { .body {
width: 100%; width: 100%;
height: 100%; height: 100%;
background-color: #1b1f37; //background-color: #1b1f37;
//background-color: white; background-color: white;
}
.submit{
position: relative;
top: 200rpx;
margin: 0 auto;
width: 130rpx;
height: 130rpx;
background-color: $color2;
border-radius: 50%;
text-align: center;
padding: 100rpx;
//filter: blur(15px);
-webkit-animation-name: animationScale; /*关键帧名称*/
-webkit-animation-timing-function: ease-in-out; /*动画的速度曲线*/
-webkit-animation-iteration-count: infinite; /*动画播放的次数*/
-webkit-animation-duration: 4s; /*动画所花费的时间*/
}
.submit-text{
position: relative;
bottom:65rpx;
right: 60rpx;
padding:85rpx 0;
width: 250rpx;
//height: 250rpx;
border-radius: 50%;
background-color: $color1;
font-size: 35rpx;
font-weight: 600;
color:white;
} }
.systemIcon { .systemIcon {
@ -709,24 +708,25 @@ export default {
} }
.avatar-background { .avatar-background {
background-color: #e6e2e2; background-color: $color1;
position: relative; position: relative;
top: 155rpx; top: 155rpx;
margin: 0 auto; margin: 0 auto;
border-radius: 50%; border-radius: 50%;
width: 150rpx; width: 200rpx;
height: 148rpx; height: 200rpx;
filter: blur(15px); //filter: blur(15px);
-webkit-animation-name: animationScale; /*关键帧名称*/ -webkit-animation-name: animationScale; /*关键帧名称*/
-webkit-animation-timing-function: ease-in-out; /*动画的速度曲线*/ -webkit-animation-timing-function: ease-in-out; /*动画的速度曲线*/
-webkit-animation-iteration-count: infinite; /*动画播放的次数*/ -webkit-animation-iteration-count: infinite; /*动画播放的次数*/
-webkit-animation-duration: 6s; /*动画所花费的时间*/ -webkit-animation-duration: 4s; /*动画所花费的时间*/
} }
.avatar { .avatar {
border-radius: 50%; border-radius: 50%;
width: 150rpx; width: 150rpx;
height: 148rpx; height: 150rpx;
//filter: blur(1rpx); //filter: blur(1rpx);
/*添加模糊滤镜*/ /*添加模糊滤镜*/
-webkit-animation-name: animationScale; /*关键帧名称*/ -webkit-animation-name: animationScale; /*关键帧名称*/
@ -738,10 +738,8 @@ export default {
/*成绩信息 start*/ /*成绩信息 start*/
.scoreInfo { .scoreInfo {
text-align: center; text-align: center;
margin: 0 auto; margin: 50rpx auto;
color: white; color: white;
font-size: 35rpx;
font-weight: 550;
} }
/*成绩信息 end*/ /*成绩信息 end*/
@ -753,37 +751,39 @@ export default {
padding: 5rpx 15rpx; padding: 5rpx 15rpx;
min-width: auto; min-width: auto;
font-size: 25rpx; font-size: 25rpx;
color: #45495c; //color: #45495c;
background-color: #1e233c; //background-color: #1e233c;
color: $color1;
background-color: $color2;
border-radius: 15rpx; border-radius: 15rpx;
} }
.absolute1 { .absolute1 {
position: absolute; position: absolute;
top: 100rpx; top: 300rpx;
left: 100rpx; left: 50rpx;
animation: dong 1.5s infinite; animation: dong 1.5s infinite;
} }
.absolute2 { .absolute2 {
position: absolute; position: absolute;
top: 200rpx; top: 430rpx;
left: 500rpx; left: 600rpx;
animation: dong 1.8s infinite; animation: dong 1.8s infinite;
animation-delay: 0.3s; animation-delay: 0.3s;
} }
.absolute3 { .absolute3 {
position: absolute; position: absolute;
top: 400rpx; top: 700rpx;
left: 600rpx; left: 500rpx;
animation: dong 2s infinite; animation: dong 2s infinite;
animation-delay: 0.4s; animation-delay: 0.4s;
} }
.absolute4 { .absolute4 {
position: absolute; position: absolute;
top: 400rpx; top: 800rpx;
left: 30rpx; left: 30rpx;
font-size: 30rpx !important; font-size: 30rpx !important;
animation: dong 1.7s infinite; animation: dong 1.7s infinite;
@ -793,7 +793,7 @@ export default {
.absolute5 { .absolute5 {
position: absolute; position: absolute;
top: 100rpx; top: 100rpx;
left: 300rpx; left: 350rpx;
animation: dong 1.9s infinite; animation: dong 1.9s infinite;
animation-delay: 0.3s; animation-delay: 0.3s;
} }
@ -816,7 +816,7 @@ export default {
.rightTop { .rightTop {
background-color: #2c304b; background-color: $color2;
width: 300rpx; width: 300rpx;
height: 500rpx; height: 500rpx;
border-radius: 60%; border-radius: 60%;
@ -825,26 +825,19 @@ export default {
top: -250rpx; top: -250rpx;
} }
.leftBottom {
background-color: #2c304b;
width: 500rpx;
height: 330rpx;
border-radius: 60%;
position: fixed;
left: -230rpx;
bottom: -200rpx;
}
/*院校标签 end*/ /*院校标签 end*/
.switchMenu { .switchMenu {
margin: 20rpx; //margin: 50rpx 0;
padding: 20rpx 0; padding: 50rpx 0;
background-color: #20243f; background: linear-gradient(to right,#f97838,$color1);
border-radius: 30rpx; border-radius: 30rpx 30rpx 0 0;
border: 20rpx solid #181d33; position: absolute;
bottom: 0;
width: 100%;
height: 400rpx;
.tab { .tab {
width: 43%; width: 43%;
background-color: #2f324b; background-color: #2f324b;
@ -862,13 +855,13 @@ export default {
.tab4 { .tab4 {
width: 40%; width: 40%;
background-color: #2f324b;
border-radius: 20rpx; border-radius: 20rpx;
padding: 0 20rpx; padding: 0 20rpx;
margin: 10rpx 20rpx; margin: 10rpx 20rpx;
line-height: 80rpx; line-height: 80rpx;
text-align: left; text-align: left;
color: #d8d9dd; //color: #d8d9dd;
color: $color3;
.text { .text {
margin-left: 15rpx; margin-left: 15rpx;
@ -880,14 +873,14 @@ export default {
.settingItem { .settingItem {
margin: 20rpx 0; margin: 20rpx 0;
padding: 40rpx; padding: 40rpx;
background-color: #2f324b;
border-radius: 30rpx; border-radius: 30rpx;
height: 80rpx; height: 80rpx;
position: relative; position: relative;
border-bottom: 1rpx solid #e6e6e6;
} }
.settingItemBtn { .settingItemBtn {
background-color: #4e71f5; background-color: $color1;
border-radius: 10rpx; border-radius: 10rpx;
color: white; color: white;
padding: 10rpx 10rpx; padding: 10rpx 10rpx;
@ -904,18 +897,19 @@ export default {
} }
.majorList .majorItem { .majorList .majorItem {
color: white; color: #000000;
font-size: 30rpx; font-size: 30rpx;
line-height: 100rpx; line-height: 100rpx;
text-align: center; text-align: center;
} }
.majorList .majorItem .active { .majorList .majorItem .active {
color: #4975fd; color: $color1;
} }
.majorList .border-bot { .majorList .border-bot {
border-bottom: 1rpx solid #2f3249; border-bottom: 1rpx solid #e6e6e6;
} }
/*专业下拉 end*/ /*专业下拉 end*/

View File

@ -3,6 +3,7 @@ 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"; import ImagesConstant from "@/common/ImagesConstant";
import {stringIsNotEmpty} from "@/common/util";
let request = new Request() let request = new Request()
// //
@ -18,6 +19,14 @@ export default {
}, },
data() { data() {
return { return {
paneFlag: false,
scoreStatus: true,
moveVolunteer: {
batch: '',//
indexs: '',
volunteerId: ''
},
volunteer:{},
volunteerId: '',//id volunteerId: '',//id
volunteerName: '',// volunteerName: '',//
topBackShow: true,// topBackShow: true,//
@ -28,139 +37,132 @@ export default {
batch: '', batch: '',
}, },
scoreInfo: {},// scoreInfo: {},//
volunteerInfo: {},//
tabIndex: 0,// tabIndex: 0,//
scrollInto: "", scrollInto: "",
newsList: [], newsList: [],
cacheTab: [], cacheTab: [],
tabBars: [{name: '本科提前批', id: '提前批'}, {name: '本科A段', id: '本科A段'}, {name: '本科B段', id: '本科B段'}, {name: '高职高专', id: '高职高专'}],
tabBars1: [{name: '本科提前批', id: '提前批'}, {name: '本科A段', id: '本科A段'}, {name: '本科B段', id: '本科B段'}, {name: '高职高专', id: '高职高专'}],
filledVolunteer: { filledVolunteer: {
volunteerRecordEarlyAdmissionNum:0,
volunteerUndergraduateANum:0,
volunteerUndergraduateBNum:0,
volunteerUndergraduateNum:0,
volunteerJuniorCollegeNum:0,
volunteerEarlyAdmissionList: [],// volunteerEarlyAdmissionList: [],//
volunteerUndergraduateAList: [],//A
volunteerUndergraduateBList: [],//B
volunteerUndergraduateList: [],// volunteerUndergraduateList: [],//
volunteerJuniorCollegeList: [],// volunteerJuniorCollegeList: [],//
volunteerMap: new Map() volunteerMap: new Map()
},// },//
years: StaticConstant.years, years: StaticConstant.years,
nowYear: StaticConstant.year nowYear: StaticConstant.year,
allCollapseItemList: [
{batchLabel: '提前批', batch: '提前批', type: '顺序志愿', max: 1, status: false},
{batchLabel: '本科批', batch: '本科批', type: '平行志愿', max: 35, status: false},
{batchLabel: '高职高专', batch: '高职高专', type: '平行志愿', max: 35, status: false},
],
collapseItemList: []
} }
}, },
onShow() { onShow() {
this.getFilledVolunteerList() //
let userInfo = uni.getStorageSync('userInfo')
this.scoreInfo = uni.getStorageSync('scoreInfo')
this.volunteer = uni.getStorageSync('volunteer')
if (userInfo) {
//
this.userStatus = true
//
this.scoreInfo = uni.getStorageSync('scoreInfo')
if (this.scoreInfo === undefined || this.scoreInfo === null || this.scoreInfo === '') {
//
request.getUserScore()
this.scoreInfo = uni.getStorageSync('scoreInfo')
this.volunteer = uni.getStorageSync('volunteer')
if (!this.scoreInfo) {
this.scoreStatus = false
}else{
this.scoreStatus = true
}
}
} else {
//
this.goto('/pages/zyb/login')
return
}
//
if (this.scoreInfo && this.volunteer) {
this.volunteerId = this.volunteer.id
}
if (stringIsNotEmpty(this.volunteerId)) {
this.getFilledVolunteerList()
}
}, },
onLoad(e) { onLoad(e) {
if (e.volunteerId) { if (e.volunteerId) {
//
this.volunteerId = e.volunteerId; this.volunteerId = e.volunteerId;
console.log(e.volunteerId) console.log(e.volunteerId)
} }
setTimeout(() => {
this.tabBars.forEach((tabBar) => {
this.newsList.push({
data: [],
isLoading: false,
refreshText: "",
loadingText: '加载更多...'
});
});
}, 350)
}, },
methods: { methods: {
goto(url) { goto(url) {
uni.navigateTo({url: url}) uni.navigateTo({url: url})
}, },
gotoSchool(e) {
this.goto('/pages/zyb/school/detail?schoolCode=' + e)
},
topBack() { topBack() {
uni.pageScrollTo({ uni.pageScrollTo({
scrollTop: 0, // , 0 scrollTop: 0, // , 0
duration: 300 // duration: 300 //
}) })
}, },
ontabtap(e) {
// tabs
console.log(e)
let index = e.target.dataset.current || e.currentTarget.dataset.current;
//
if (index === this.tabIndex) {
return;
}
this.selectForm.batch = this.tabBars[index].id
//
this.switchTab(index);
},
switchTab(index) {
if (this.newsList[index].data.length === 0) {
}
if (this.tabIndex === index) {
return;
}
// tabId
if (this.newsList[this.tabIndex].data.length > MAX_CACHE_DATA) {
let isExist = this.cacheTab.indexOf(this.tabIndex);
if (isExist < 0) {
this.cacheTab.push(this.tabIndex);
//console.log("cache index:: " + this.tabIndex);
}
}
this.tabIndex = index;
this.scrollInto = this.tabBars[index].id;
// tabId
if (this.cacheTab.length > MAX_CACHE_PAGE) {
let cacheIndex = this.cacheTab[0];
this.clearTabData(cacheIndex);
this.cacheTab.splice(0, 1);
}
},
clearTabData(e) { clearTabData(e) {
this.newsList[e].data.length = 0; this.newsList[e].data.length = 0;
this.newsList[e].loadingText = "加载更多..."; this.newsList[e].loadingText = "加载更多...";
}, },
/*获取已填报志愿数据*/ /*获取已填报志愿数据*/
getFilledVolunteerList() { getFilledVolunteerList() {
request.get(ApiConstant.Volunteer.artVolunteerDetail, {id: this.volunteerId}).then(res => { request.get(ApiConstant.Volunteer.artVolunteerDetail, {id: this.volunteerId},{showLoad:false}).then(res => {
if (res.success) { if (res.success) {
let dataResult = res.result let dataResult = res.result
// //
const volunteerMap = new Map(); const volunteerMap = new Map();
if (dataResult != null) { if (dataResult != null) {
this.volunteerId = dataResult.id this.volunteerId = dataResult.id
this.volunteerName = dataResult.volunteerName this.volunteerInfo = dataResult
this.scoreInfo = dataResult.userScoreInfo this.scoreInfo = dataResult.userScoreInfo
//
if (this.scoreInfo.professionalCategory === '体育类') {
this.allCollapseItemList = [
{batchLabel: '本科批', batch: '本科批', type: '平行志愿', max: 35, status: false},
{batchLabel: '高职高专', batch: '高职高专', type: '平行志愿', max: 35, status: false},
]
}
if (this.scoreInfo.batch) { if (this.scoreInfo.batch) {
this.paneFlag = true
this.selectForm.batch = this.scoreInfo.batch this.selectForm.batch = this.scoreInfo.batch
let allCollapseItemList = this.allCollapseItemList
let collapseItemList = []
// //
if (this.scoreInfo.batch === '本科A段') { for (let i = 0; i < allCollapseItemList.length; i++) {
this.tabBars = [{name: '本科提前批', id: '提前批'}, {name: '本科A段', id: '本科A段'}, { if (this.scoreInfo.batch === '高职高专') {
name: '本科B段', if (allCollapseItemList[i].batch === '本科批') {
id: '本科B段' continue
}, {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;
} }
} }
collapseItemList.push(allCollapseItemList[i])
this.collapseItemList = collapseItemList
} }
} }
let key = '' let key = ''
let volunteer = {indexStr: 0} let volunteer = {indexStr: 0}
if(true){ let indexs = 1;
if (true) {
//================================== start //================================== start
let volunteerRecordEarlyAdmissionList = dataResult.volunteerRecordEarlyAdmissionList; let volunteerRecordEarlyAdmissionList = dataResult.volunteerRecordEarlyAdmissionList;
this.filledVolunteer.volunteerRecordEarlyAdmissionNum = volunteerRecordEarlyAdmissionList.length; this.filledVolunteer.volunteerRecordEarlyAdmissionNum = volunteerRecordEarlyAdmissionList.length;
@ -169,9 +171,8 @@ export default {
volunteer = volunteerRecordEarlyAdmissionList[i] volunteer = volunteerRecordEarlyAdmissionList[i]
volunteerMap.set(key, volunteerRecordEarlyAdmissionList[i]) volunteerMap.set(key, volunteerRecordEarlyAdmissionList[i])
} }
let indexs = 1;
let volunteerRecordEarlyAdmissionList2 = []; let volunteerRecordEarlyAdmissionList2 = [];
while (indexs <= 2) { while (indexs <= 1) {
let record = { let record = {
actives: false, actives: false,
indexs: indexs indexs: indexs
@ -187,49 +188,6 @@ export default {
} }
this.filledVolunteer.volunteerEarlyAdmissionList = volunteerRecordEarlyAdmissionList2 this.filledVolunteer.volunteerEarlyAdmissionList = volunteerRecordEarlyAdmissionList2
//================================== end //================================== end
//==================================A start
let volunteerUndergraduateAList = dataResult.volunteerRecordUndergraduateAList;
this.filledVolunteer.volunteerUndergraduateANum = volunteerUndergraduateAList.length;
for (let i = 0; i < volunteerUndergraduateAList.length; i++) {
key = volunteerUndergraduateAList[i].majorCode + volunteerUndergraduateAList[i].schoolCode
volunteerMap.set(key, volunteerUndergraduateAList[i])
}
indexs = 1;
let volunteerRecordUndergraduateAList2 = [];
while (indexs <= 12) {
let record = {actives: false, indexs: indexs}
for (let i = 0; i < volunteerUndergraduateAList.length; i++) {
if (volunteerUndergraduateAList[i].indexs === indexs) {
record = volunteerUndergraduateAList[i]
record.actives = true
}
}
volunteerRecordUndergraduateAList2.push(record)
indexs++;
}
this.filledVolunteer.volunteerUndergraduateAList = volunteerRecordUndergraduateAList2
//==================================A end
//==================================B start
let volunteerUndergraduateBList = dataResult.volunteerRecordUndergraduateBList;
this.filledVolunteer.volunteerUndergraduateBNum = volunteerUndergraduateBList.length;
for (let i = 0; i < volunteerUndergraduateBList.length; i++) {
key = volunteerUndergraduateBList[i].majorCode + volunteerUndergraduateBList[i].schoolCode
volunteerMap.set(key, volunteerUndergraduateBList[i])
}
indexs = 1;
let volunteerUndergraduateBList2 = [];
while (indexs <= 12) {
let record = {actives: false, indexs: indexs}
for (let i = 0; i < volunteerUndergraduateBList.length; i++) {
if (volunteerUndergraduateBList[i].indexs === indexs) {
record = volunteerUndergraduateBList[i]
record.actives = true
}
}
volunteerUndergraduateBList2.push(record)
indexs++;
}
this.filledVolunteer.volunteerUndergraduateBList = volunteerUndergraduateBList2
//================================== start //================================== start
let volunteerUndergraduateList = dataResult.volunteerRecordUndergraduateList; let volunteerUndergraduateList = dataResult.volunteerRecordUndergraduateList;
this.filledVolunteer.volunteerUndergraduateNum = volunteerUndergraduateList.length; this.filledVolunteer.volunteerUndergraduateNum = volunteerUndergraduateList.length;
@ -241,7 +199,7 @@ export default {
} }
indexs = 1; indexs = 1;
let volunteerUndergraduateList2 = []; let volunteerUndergraduateList2 = [];
while (indexs <= 12) { while (indexs <= 35) {
let record = {actives: false, indexs: indexs} let record = {actives: false, indexs: indexs}
for (let i = 0; i < volunteerUndergraduateList.length; i++) { for (let i = 0; i < volunteerUndergraduateList.length; i++) {
if (volunteerUndergraduateList[i].indexs === indexs) { if (volunteerUndergraduateList[i].indexs === indexs) {
@ -263,7 +221,7 @@ export default {
} }
indexs = 1; indexs = 1;
let volunteerJuniorCollegeList2 = []; let volunteerJuniorCollegeList2 = [];
while (indexs <= 12) { while (indexs <= 35) {
let record = { let record = {
actives: false, actives: false,
indexs: indexs indexs: indexs
@ -282,8 +240,6 @@ export default {
} }
} else { } else {
this.filledVolunteer.volunteerEarlyAdmissionList = [] this.filledVolunteer.volunteerEarlyAdmissionList = []
this.filledVolunteer.volunteerUndergraduateAList = []
this.filledVolunteer.volunteerUndergraduateBList = []
this.filledVolunteer.volunteerJuniorCollegeList = [] this.filledVolunteer.volunteerJuniorCollegeList = []
this.filledVolunteer.volunteerUndergraduateList = [] this.filledVolunteer.volunteerUndergraduateList = []
this.filledVolunteer.volunteerList = [] this.filledVolunteer.volunteerList = []
@ -308,17 +264,31 @@ export default {
}, },
fabClick() { fabClick() {
}, },
/*点击移动*/
onClickMove(e) {
this.moveVolunteer.volunteerId = this.volunteerId;
this.moveVolunteer.id = e.id;
this.moveVolunteer.batch = e.batch
this.$refs.inputDialog.open()
},
/*点击交换*/
onClickExChange(e) {
this.moveVolunteer.volunteerId = this.volunteerId;
this.moveVolunteer.id = e.id;
this.moveVolunteer.batch = e.batch
this.$refs.inputDialog.open()
},
/*选择是否删除明细*/ /*选择是否删除明细*/
confirmDelVolunteerItem(e){ confirmDelVolunteerItem(e) {
let that = this let that = this
console.log('删除提示') console.log('删除提示')
console.log(e) console.log(e)
uni.showModal({ uni.showModal({
title:'提示', title: '提示',
content: '确认要删除吗?', content: '确认要删除志愿' + e.indexs + '吗?',
confirmText: '确定', confirmText: '确定',
cancelText: '取消', cancelText: '取消',
success:function (res){ success: function (res) {
if (res.confirm) { if (res.confirm) {
that.deleteVolunteerItem(e) that.deleteVolunteerItem(e)
} }
@ -326,9 +296,9 @@ export default {
}); });
}, },
/*确认删除志愿明细*/ /*确认删除志愿明细*/
deleteVolunteerItem(e){ deleteVolunteerItem(e) {
let that = this let that = this
request.delete(ApiConstant.Volunteer.volunteerRecordDelete,{id:e.id}).then(res => { request.delete(ApiConstant.Volunteer.volunteerRecordDelete, {id: e.id}).then(res => {
if (res.success) { if (res.success) {
setTimeout(function () { setTimeout(function () {
uni.showToast({title: '删除成功', icon: "none"}); uni.showToast({title: '删除成功', icon: "none"});
@ -336,7 +306,7 @@ export default {
setTimeout(function () { setTimeout(function () {
that.getFilledVolunteerList() that.getFilledVolunteerList()
}, 1500) }, 1500)
}else{ } else {
setTimeout(function () { setTimeout(function () {
uni.showToast({title: res.message, icon: "none"}); uni.showToast({title: res.message, icon: "none"});
}, 500) }, 500)
@ -345,11 +315,84 @@ export default {
}).finally(() => { }).finally(() => {
}); });
}, },
toAdd(){ fctjCheckboxChange(e) {
console.log('服从调剂')
console.log(e)
request.post(ApiConstant.Volunteer.updateFctj, {id: e}).then(res => {
}).catch(err => {
}).finally(() => {
});
},
toAdd() {
uni.navigateTo({ uni.navigateTo({
url: 'index?batch='+this.selectForm.batch+'&volunteerId='+this.volunteerId url: 'mockList?batch=' + this.selectForm.batch + '&volunteerId=' + this.volunteerId
}) })
},
change(e) {
console.log(e);
},
/*确认移动志愿*/
moveIndexsConfirm() {
if (!this.moveVolunteer.indexs) {
uni.showToast({title: '请输入志愿序号', icon: "none"});
return;
}
let indexs = parseFloat(this.moveVolunteer.indexs)
if (this.moveVolunteer.batch === '提前批') {
if (indexs > 4 || indexs < 0) {
uni.showToast({title: '您输入的序号超出', icon: "none"});
this.moveVolunteer.indexs = ''
return;
}
} else {
if (indexs > (this.scoreInfo.professionalCategory==='体育类'?12:35) || indexs < 0) {
uni.showToast({title: '您输入的序号超出', icon: "none"});
this.moveVolunteer.indexs = ''
return;
}
}
let that = this
request.post(ApiConstant.Volunteer.exChangeIndexs, this.moveVolunteer).then(res => {
if (res.success) {
this.moveVolunteer.indexs = ''
this.moveVolunteer.batch = ''
this.moveVolunteer.volunteerId = ''
setTimeout(function () {
that.getFilledVolunteerList();
}, 1000)
} else {
setTimeout(function () {
uni.showToast({title: res.message, icon: "none"});
}, 500)
}
}).catch(err => {
}).finally(() => {
});
},
onClickEditUserScore() {
this.goto('/pages/zyb/score/edit')
},
/*点击创建志愿单*/
onClickCreateVolunteer(){
let that = this
request.post(ApiConstant.Volunteer.addNew, {
volunteerName:'模拟志愿草表'
},{}).then(res => {
uni.setStorageSync('volunteerInfo',res.result)
request.getUserScore()
}).catch(err => {
}).finally(() => {
});
},
/*返回已填志愿数量*/
getVolunteerNum(citem){
if (citem.batch === '提前批') {
return this.filledVolunteer.volunteerRecordEarlyAdmissionNum
}else if(citem.batch === '本科批'){
return this.filledVolunteer.volunteerUndergraduateNum
}else{
return this.filledVolunteer.volunteerJuniorCollegeNum
}
} }
} }
} }
@ -357,142 +400,175 @@ export default {
<template> <template>
<view class="divider"/> <view class="divider"/>
<!--志愿单信息--> <!-- 没有成绩界面 -->
<view class="header-info"> <view class="container" v-if="!this.scoreInfo">
<view class="h1"> <text>当前没有成绩信息请先修改成绩~</text>
<view class="uni-flex uni-row" style="-webkit-justify-content: space-between;justify-content: space-between;"> <text class="margin-left-30 font-weight-none mediumSlateBlue" @click="onClickEditUserScore">修改成绩</text>
<view class="text"> </view>
<text style="font-size: 40rpx;line-height: 40rpx">2023</text> <view class="container">
</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 class="score-info-card white" v-if="this.scoreInfo">
<view class="flexWrap">
<text class="font-size-mini4 font-weight-550">{{ volunteerInfo.volunteerName }}</text>
</view> </view>
<view class="uni-flex uni-row"> <view class="flexWrap tags font-size-mini2" v-if="scoreInfo">
<view class="text" style="-webkit-flex: 1;flex: 1;color:#bb440e;font-weight: 600"> <view class="tag">{{ scoreInfo.province }}</view>
河南普通高校招生 <view class="tag">{{ scoreInfo.cognitioPolyclinic }}</view>
</view> <view class="tag">{{ scoreInfo.professionalCategory }}</view>
<view class="text" style="-webkit-flex: 1;flex: 1;"></view>
</view> </view>
<view class="uni-flex uni-row" style="-webkit-justify-content: space-between;justify-content: space-between;"> <view class="flexWrap">
<view class="text"> <view class="score flex-item-10">
<text>表名:{{ volunteerName }}</text> <view class="flexWrap" style="height: 30rpx;">
</view> <view class="scoreLeft margin-right-30">
<!-- <view class="text">填报建议</view>--> <text class="margin-right-10">文化分</text>
</view> <text class="font-weight-b">{{ scoreInfo.culturalScore }}</text>
<view class="uni-flex uni-row" style="-webkit-justify-content: space-between;justify-content: space-between;"> </view>
<view class="text"> <view style="border-right:1rpx solid white"></view>
<text class="tt1">文化分:{{ scoreInfo.culturalScore }}</text> <view class="scoreRight margin-left-30">
<text class="tt1">专业:{{ scoreInfo.professionalScore }}</text> <text class="margin-right-10">统考分</text>
<text class="tt1">{{ scoreInfo.cognitioPolyclinic }}</text> <text class="margin-right-10 font-weight-b">{{ scoreInfo.professionalScore }}</text>
<text class="tt1">{{ scoreInfo.professionalCategory }}</text> </view>
</view>
<view class="flexWrap" style="margin-top: 30rpx;height: 30rpx;" v-if="scoreInfo && scoreInfo.professionalCategoryChildren">
<view class="scoreLeft margin-right-30" v-if="scoreInfo.yybysy && scoreInfo.yybysy!==0">
<text class="margin-right-10">音乐表演声乐</text>
<text class="font-weight-b">{{ scoreInfo.yybysy }}</text>
</view>
<view class="scoreLeft margin-right-30" v-if="scoreInfo.yybyqy && scoreInfo.yybyqy!==0">
<text class="margin-right-10">音乐表演器乐</text>
<text class="font-weight-b">{{ scoreInfo.yybyqy }}</text>
</view>
<view class="scoreLeft margin-right-30" v-if="scoreInfo.yyjy && scoreInfo.yyjy!==0">
<text class="margin-right-10">音乐教育</text>
<text class="font-weight-b">{{ scoreInfo.yyjy }}</text>
</view>
<view class="scoreLeft margin-right-30" v-if="scoreInfo.fzby && scoreInfo.fzby!==0">
<text class="margin-right-10">服装表演</text>
<text class="font-weight-b">{{ scoreInfo.fzby }}</text>
</view>
<view class="scoreLeft margin-right-30" v-if="scoreInfo.xjysdy && scoreInfo.xjysdy!==0">
<text class="margin-right-10">戏剧影视导演</text>
<text class="font-weight-b">{{ scoreInfo.xjysdy }}</text>
</view>
<view class="scoreLeft margin-right-30" v-if="scoreInfo.xjysby && scoreInfo.xjysby!==0">
<text class="margin-right-10">戏剧影视表演</text>
<text class="font-weight-b">{{ scoreInfo.xjysby }}</text>
</view>
</view>
</view> </view>
</view> </view>
</view> </view>
</view> <view class="divider"/>
<!--导航栏--> <!--志愿信息-->
<view class="tabs"> <view class="fillVolunteerList" v-if="collapseItemList.length>0">
<scroll-view id="tab-bar" class="scroll-h" :scroll-x="true" :show-scrollbar="false" :scroll-into-view="scrollInto"> <view class="collapse">
<view v-for="(tab,index) in tabBars" :key="tab.id" class="uni-tab-item" :id="tab.id" :data-current="index" <view class="collapse-item" v-for="(citem,cindex) in collapseItemList" :key="cindex">
@click="ontabtap"> <view class="collapse-head" @click="collapseItemList[cindex].status=!collapseItemList[cindex].status">
<text class="uni-tab-item-title" :class="tabIndex===index ? 'uni-tab-item-title-active' : ''">{{ tab.name }} <view class="flexWrap" style="background-color: #f5f5f5;line-height: 80rpx;">
</text> <view class="flex-item-8">
</view> <view style="padding-left: 30rpx;">
</scroll-view> <text class="font-size-mini3 font-weight-b">{{ citem.batchLabel }}({{getVolunteerNum(citem)}}/{{ citem.max }})</text>
</view> <text class="font-size-mini margin-left-10 slateGray">{{ citem.type }}</text>
<view class="divider"/>
<!--志愿明细列表-->
<view class="volunteerList">
<view class="v-title">
<view v-if="this.selectForm.batch=='提前批'">{{this.selectForm.batch}}{{filledVolunteer.volunteerRecordEarlyAdmissionNum}}/2</view>
<view v-else-if="this.selectForm.batch=='本科A段'">{{this.selectForm.batch}}{{filledVolunteer.volunteerUndergraduateANum}}/12</view>
<view v-else-if="this.selectForm.batch=='本科B段'">{{this.selectForm.batch}}{{filledVolunteer.volunteerUndergraduateBNum}}/12</view>
<view v-else-if="this.selectForm.batch=='本科'">{{this.selectForm.batch}}{{filledVolunteer.volunteerUndergraduateNum}}/12</view>
<view v-else>{{this.selectForm.batch}}{{filledVolunteer.volunteerJuniorCollegeNum}}/12</view>
</view>
<view class="volunteerItem" v-for="(item,index) in this.selectForm.batch==='提前批'?filledVolunteer.volunteerEarlyAdmissionList:
this.selectForm.batch==='本科A段'?filledVolunteer.volunteerUndergraduateAList:
this.selectForm.batch==='本科B段'?filledVolunteer.volunteerUndergraduateBList:
this.selectForm.batch==='本科'?filledVolunteer.volunteerUndergraduateList:filledVolunteer.volunteerJuniorCollegeList" :key="item.indexs">
<view class="uni-flex flex" v-if="item.majorCode">
<view class="flex-item-9 item_left">
<!--学校信息-->
<view class="schoolInfo">
<view class="uni-flex flex">
<view class="flex-item-1 indexs">
<text>{{item.indexs}}</text>
</view>
<view class="flex-item-7">
<view class="uni-flex flex" @click="goto('/pages/zyb/school/detail?schoolCode='+item.schoolCode)">
<text style="margin-right: 15rpx">[{{item.schoolCode}}]</text>
<text>{{item.schoolName}}</text>
</view>
<view class="uni-flex flex tags">
<text class="tag">{{item.province}}</text>
<text class="tag">{{item.propertyName}}</text>
</view> </view>
</view> </view>
<view class="flex-item-2"> <view class="flex-item-2">
<text class="float-right" style="margin-right: 30rpx">{{ citem.status ? '收起' : '展开' }}</text>
</view> </view>
</view> </view>
</view> </view>
<!--专业信息--> <view class="collapse-body" v-show="citem.status" style="">
<view class="majorInfo"> <view class="volunteerItem" v-for="(item,index) in (citem.batch==='高职高专')?filledVolunteer.volunteerJuniorCollegeList:
<view class="uni-flex flex"> citem.batch==='提前批'?filledVolunteer.volunteerEarlyAdmissionList:filledVolunteer.volunteerUndergraduateList"
<view class="flex-item-2"> :key="item.indexs">
<text v-if="item.enrollProbability" class="enrollProbability">{{item.enrollProbability}}%</text> <view v-if="item.majorCode">
</view> <view class="flexWrap">
<view class="flex-item-7"> <view class="flex-item-15 select">
<view class="uni-flex flex" @click="goto('/pages/zyb/major/detail?majorCode='+item.majorCode)"> <view class="selectIndex">
<text style="margin-right: 15rpx" v-if="item.enrollmentCode">[{{item.enrollmentCode}}]</text> <text style="line-height: 50rpx">{{ item.indexs }}</text>
<text v-if="item.majorName">{{item.majorName}}{{item.majorDetail}}</text> </view>
</view>
<view class="flex-item-85" @click="gotoSchool(item.schoolCode)">
<text style="line-height: 50rpx">[{{ item.schoolCode }}]{{ item.schoolName }}</text>
</view>
</view> </view>
<view class="uni-flex flex"> <view class="flexWrap marginTopBot20">
<text class="low-text" v-if="item.studyCost">学费:{{item.studyCost}}</text> <view class="flex-item-15 select"></view>
<text class="low-text" v-if="item.jhs">招生{{item.jhs}}</text> <view class="flex-item-7">
<text class="darkGray">[{{ item.enrollmentCode }}]</text>
<text class="margin-left-10">{{ item.majorName }}</text>
</view>
<view class="flex-item-15">
<text class="darkGray float-right" v-if="item.enrollProbability">{{ item.enrollProbability.toString().substring(0,4) }}%</text>
</view>
</view> </view>
<view class="uni-flex flex"> <!--操作栏-->
<text class="low-text" v-if="item.historyMajorEnrollMap['2023']">2023年录取最低分{{item.historyMajorEnrollMap['2023'].admissionLine}}</text> <view class="flexWrap border-top" style="line-height: 60rpx">
<text class="low-text" v-else-if="item.historyMajorEnrollMap['2022']">2022年录取最低分{{item.historyMajorEnrollMap['2022'].admissionLine}}</text> <view class="flex-item-4">
<text class="low-text" v-else-if="item.historyMajorEnrollMap['2021']">2021年录取最低分{{item.historyMajorEnrollMap['2021'].admissionLine}}</text> <checkbox-group @change="fctjCheckboxChange(item.id)" v-if="citem.batch==='提前批'">
</view> <label>
<view class="uni-flex flex"> <checkbox value="cb" :checked="item.fctj===1" color="#FFCC33" style="transform:scale(0.7)"/>
<text class="low-text" v-if="item.rulesEnrollProbability">录取方式:{{item.rulesEnrollProbability}}</text> 服从调剂
</label>
</checkbox-group>
</view>
<view class="flex-item-6">
<view class="float-right">
<image @click="onClickExChange(item)" src="/static/icons/move.png" class="icon50 margin-left-50"/>
<!-- <image src="/static/icons/edit.png" class="icon50 margin-left-50"/>-->
<image @click="confirmDelVolunteerItem(item)" src="/static/icons/delete.png"
class="icon50 margin-left-50"/>
</view>
</view>
</view> </view>
</view> </view>
<view class="flex-item-1"> <!--空白专业-->
</view> <view v-else @click="toAdd()">
</view> <view class="notSelect flexWrap">
</view> <view class="notSelectIndex">
</view> <text style="line-height: 50rpx">{{ item.indexs }}</text>
<view class="flex-item-1 item_right"> </view>
<view class="delBtn"> <view class="margin-left-30">
<image @click="confirmDelVolunteerItem(item)" :src="ImagesConstant.cuti.delete" style="width: 32rpx;height: 32rpx"/> 点击添加专业志愿
</view> </view>
</view>
</view>
<!--空白专业-->
<view class="uni-flex flex" v-else @click="toAdd()">
<view class="flex-item-9 item_left">
<view class="schoolInfo">
<view class="uni-flex flex">
<view class="flex-item-1 indexs">
<text>{{item.indexs}}</text>
</view>
<view class="flex-item-7">
<view class="uni-flex flex">
<text>点击添加</text>
</view> </view>
</view> </view>
</view> </view>
</view> </view>
</view>
<view class="flex-item-1 item_right">
</view> </view>
</view> </view>
</view> </view>
<!--有成绩没有志愿信息-->
<view class="" v-if="this.scoreInfo && !this.volunteerId">
<view>
<text class="mediumSlateBlue" @click="onClickCreateVolunteer">创建志愿单</text>
</view>
</view>
</view> </view>
<uni-popup ref="inputDialog" type="dialog">
<uni-popup-dialog ref="inputClose" mode="input"
placeholder="N" @confirm="moveIndexsConfirm">
<view>
<view class="flexWrap" style="height: 50rpx;line-height: 50rpx">
<view class="flex-item-3">
移动志愿
</view>
<view class="flex-item-3">
<view style="border: 1rpx solid #979797">
<input type="number" v-model="moveVolunteer.indexs" placeholder="N"/>
</view>
</view>
</view>
</view>
</uni-popup-dialog>
</uni-popup>
</template> </template>
<style>
page {
background-color: white;
}
</style>
<style scoped lang="scss"> <style scoped lang="scss">
.divider { .divider {
@ -501,6 +577,93 @@ export default {
height: 3rpx; height: 3rpx;
} }
.container {
padding: 30rpx;
max-height: 100%;
}
/*成绩卡片 start*/
.score-info-card {
padding: 20rpx;
background: #f99352;
border-radius: 15rpx;
.tags {
margin: 10rpx 0;
.tag {
background-color: #faa069;
padding: 0 15rpx;
line-height: 40rpx;
margin-right: 20rpx;
}
}
.score {
margin-top: 30rpx;
margin-bottom: 10rpx;
}
}
/*成绩卡片 end*/
/*志愿列表 start*/
.collapse-item {
margin-top: 30rpx;
.collapse-body {
border-left: 1rpx solid #f5f5f5;
border-right: 1rpx solid #f5f5f5;
border-bottom: 1rpx solid #f5f5f5;
background-color: #f5f5f5;
}
}
.collapse-body .volunteerItem {
background-color: white;
margin-bottom: 10rpx;
padding: 10rpx 30rpx;
.notSelect {
line-height: 80rpx;
height: 80rpx;
color: #999999;
}
.select {
.selectIndex {
background-color: #feeee2;
color: #f96712;
width: 20rpx;
height: 50rpx;
margin: auto 0;
line-height: 50rpx;
padding: 0 20rpx;
text-align: center;
}
}
//
.notSelectIndex {
background-color: #f2f2f2;
width: 20rpx;
height: 50rpx;
margin: auto 0;
line-height: 50rpx;
padding: 0 20rpx;
text-align: center;
}
}
.fillVolunteerList {
margin: 10rpx 0;
border-top: 1rpx solid #f5f5f5;
}
/*志源列表 end*/
.uni-row { .uni-row {
margin-bottom: 30rpx; margin-bottom: 30rpx;
} }
@ -658,45 +821,55 @@ export default {
padding: 30rpx 30rpx 0 30rpx; padding: 30rpx 30rpx 0 30rpx;
background-color: white; background-color: white;
margin-bottom: 30rpx; margin-bottom: 30rpx;
.h1 { .h1 {
padding: 10rpx 0; padding: 10rpx 0;
} }
.tt1 { .tt1 {
margin-right: 30rpx; margin-right: 30rpx;
} }
} }
/*志愿信息头部信息 end*/ /*志愿信息头部信息 end*/
/*志愿明细列表 start*/ /*志愿明细列表 start*/
.volunteerList{ .volunteerList {
padding: 30rpx 30rpx 0 30rpx; padding: 30rpx 30rpx 0 30rpx;
background-color: white; background-color: white;
.v-title{
color:#666666; .v-title {
color: #666666;
margin-bottom: 30rpx; margin-bottom: 30rpx;
} }
.volunteerItem{
.volunteerItem {
margin-bottom: 50rpx; margin-bottom: 50rpx;
.item_left{
.schoolInfo{ .item_left {
.schoolInfo {
border-bottom: 1px solid #e5e5e5; border-bottom: 1px solid #e5e5e5;
padding: 15rpx 0 30rpx 0; padding: 15rpx 0 30rpx 0;
} }
.majorInfo{
.majorInfo {
padding: 30rpx 0; padding: 30rpx 0;
border-bottom: 1px solid #f5f5f5; border-bottom: 1px solid #f5f5f5;
.enrollProbability{
color:#9b9b9b; .enrollProbability {
font-size:25rpx; color: #9b9b9b;
font-size: 25rpx;
} }
} }
} }
.item_right{
.item_right {
padding: 150rpx 0 0 20rpx; padding: 150rpx 0 0 20rpx;
} }
/*序号*/ /*序号*/
.indexs{ .indexs {
color:white; color: white;
width: 30rpx; width: 30rpx;
height: 40rpx; height: 40rpx;
background-color: #1275ec; background-color: #1275ec;
@ -705,21 +878,25 @@ export default {
margin-right: 30rpx; margin-right: 30rpx;
} }
/*tags*/ /*tags*/
.tags{ .tags {
margin-top: 15rpx; margin-top: 15rpx;
.tag{
.tag {
margin-right: 20rpx; margin-right: 20rpx;
color:#9b9b9b; color: #9b9b9b;
font-size:25rpx; font-size: 25rpx;
} }
} }
.low-text{
color:#9b9b9b; .low-text {
font-size:22rpx; color: #9b9b9b;
font-size: 22rpx;
margin-bottom: 15rpx; margin-bottom: 15rpx;
} }
} }
} }
/*志愿明细列表 end*/ /*志愿明细列表 end*/
</style> </style>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,938 @@
<script>
import StaticConstant from "@/common/StaticConstant";
import ApiConstant from "@/common/ApiConstant";
import Request from '@/common/request'
import ImagesConstant from "@/common/ImagesConstant";
import {stringIsNotEmpty} from "@/common/util";
let request = new Request()
//
const MAX_CACHE_DATA = 100;
//
const MAX_CACHE_PAGE = 3;
export default {
name: "我的志愿明细",
computed: {
ImagesConstant() {
return ImagesConstant
}
},
data() {
return {
paneFlag: false,
scoreStatus: true,
moveVolunteer: {
batch: '',//
indexs: '',
volunteerId: ''
},
volunteerId: '',//id
volunteerName: '',//
topBackShow: true,//
selectForm: {
address: '',
schoolName: '',
paneName: '全部',
batch: '',
},
scoreInfo: {},//
volunteerInfo: {},//
tabIndex: 0,//
scrollInto: "",
newsList: [],
cacheTab: [],
filledVolunteer: {
volunteerRecordEarlyAdmissionNum:0,
volunteerUndergraduateANum:0,
volunteerUndergraduateBNum:0,
volunteerUndergraduateNum:0,
volunteerJuniorCollegeNum:0,
volunteerEarlyAdmissionList: [],//
volunteerUndergraduateAList: [],//A
volunteerUndergraduateBList: [],//B
volunteerUndergraduateList: [],//
volunteerJuniorCollegeList: [],//
volunteerMap: new Map()
},//
years: StaticConstant.years,
nowYear: StaticConstant.year,
allCollapseItemList: [
{batchLabel: '提前批', batch: '提前批', type: '顺序志愿', max: 1, status: false},
{batchLabel: '本科批', batch: '本科批', type: '平行志愿', max: 35, status: false},
{batchLabel: '高职高专', batch: '高职高专', type: '平行志愿', max: 35, status: false},
],
collapseItemList: []
}
},
onShow() {
//
let userInfo = uni.getStorageSync('userInfo')
if (userInfo) {
//
this.userStatus = true
//
/*this.scoreInfo = uni.getStorageSync('scoreInfo')
if (this.scoreInfo === undefined || this.scoreInfo === null || this.scoreInfo === '') {
//
request.getUserScore()
this.scoreInfo = uni.getStorageSync('scoreInfo')
if (!this.scoreInfo) {
this.scoreStatus = false
//
}
}*/
} else {
//
this.goto('/pages/zyb/login')
return
}
if (stringIsNotEmpty(this.volunteerId)) {
this.getFilledVolunteerList()
}
/*//有成绩信息且成绩中返回了志愿单信息
if (this.scoreInfo && this.scoreInfo.volunteer) {
this.volunteerId = this.scoreInfo.volunteer.id
}*/
},
onLoad(e) {
if (e.volunteerId) {
//
this.volunteerId = e.volunteerId;
}
if (stringIsNotEmpty(this.volunteerId)) {
this.getFilledVolunteerList()
}
},
methods: {
goto(url) {
uni.navigateTo({url: url})
},
gotoSchool(e) {
this.goto('/pages/zyb/school/detail?schoolCode=' + e)
},
topBack() {
uni.pageScrollTo({
scrollTop: 0, // , 0
duration: 300 //
})
},
clearTabData(e) {
this.newsList[e].data.length = 0;
this.newsList[e].loadingText = "加载更多...";
},
/*获取已填报志愿数据*/
getFilledVolunteerList() {
request.get(ApiConstant.Volunteer.artVolunteerDetail, {id: this.volunteerId}).then(res => {
if (res.success) {
let dataResult = res.result
//
const volunteerMap = new Map();
if (dataResult != null) {
this.volunteerId = dataResult.id
this.volunteerInfo = dataResult
this.scoreInfo = dataResult.userScoreInfo
//
if (this.scoreInfo.professionalCategory === '体育类') {
this.allCollapseItemList = [
{batchLabel: '本科批', batch: '本科批', type: '平行志愿', max: 35, status: false},
{batchLabel: '高职高专', batch: '高职高专', type: '平行志愿', max: 35, status: false},
]
}
if (this.scoreInfo.batch) {
this.paneFlag = true
this.selectForm.batch = this.scoreInfo.batch
let allCollapseItemList = this.allCollapseItemList
let collapseItemList = []
//
for (let i = 0; i < allCollapseItemList.length; i++) {
if (this.scoreInfo.batch === '高职高专') {
if (allCollapseItemList[i].batch === '本科批') {
continue
}
}
collapseItemList.push(allCollapseItemList[i])
this.collapseItemList = collapseItemList
}
}
let key = ''
let volunteer = {indexStr: 0}
let indexs = 1;
if (true) {
//================================== start
let volunteerRecordEarlyAdmissionList = dataResult.volunteerRecordEarlyAdmissionList;
this.filledVolunteer.volunteerRecordEarlyAdmissionNum = volunteerRecordEarlyAdmissionList.length;
for (let i = 0; i < volunteerRecordEarlyAdmissionList.length; i++) {
key = volunteerRecordEarlyAdmissionList[i].majorCode + volunteerRecordEarlyAdmissionList[i].schoolCode
volunteer = volunteerRecordEarlyAdmissionList[i]
volunteerMap.set(key, volunteerRecordEarlyAdmissionList[i])
}
let volunteerRecordEarlyAdmissionList2 = [];
while (indexs <= 1) {
let record = {
actives: false,
indexs: indexs
}
for (let i = 0; i < volunteerRecordEarlyAdmissionList.length; i++) {
if (volunteerRecordEarlyAdmissionList[i].indexs === indexs) {
record = volunteerRecordEarlyAdmissionList[i]
record.actives = true
}
}
volunteerRecordEarlyAdmissionList2.push(record)
indexs++;
}
this.filledVolunteer.volunteerEarlyAdmissionList = volunteerRecordEarlyAdmissionList2
//================================== end
//================================== start
let volunteerUndergraduateList = dataResult.volunteerRecordUndergraduateList;
this.filledVolunteer.volunteerUndergraduateNum = volunteerUndergraduateList.length;
console.log('//==================================本科 start')
console.log(volunteerUndergraduateList)
for (let i = 0; i < volunteerUndergraduateList.length; i++) {
key = volunteerUndergraduateList[i].majorCode + volunteerUndergraduateList[i].schoolCode
volunteerMap.set(key, volunteerUndergraduateList[i])
}
indexs = 1;
let volunteerUndergraduateList2 = [];
while (indexs <= 35) {
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++;
}
this.filledVolunteer.volunteerUndergraduateList = volunteerUndergraduateList2
//================================== end
//================================== 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 <= 35) {
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
}
} else {
this.filledVolunteer.volunteerEarlyAdmissionList = []
this.filledVolunteer.volunteerJuniorCollegeList = []
this.filledVolunteer.volunteerUndergraduateList = []
this.filledVolunteer.volunteerList = []
}
this.filledVolunteer.volunteerMap = volunteerMap
}
}).catch(err => {
}).finally(() => {
});
},
/*计算百分比*/
toPercent(num, total) {
return (Math.round(num / total * 10000) / 100.00);//
},
/*悬浮按钮*/
trigger(e) {
console.log(e)
/*this.fab.content[e.index].active = !e.item.active*/
if (e.item.text === '回到顶部') {
this.topBack()
}
},
fabClick() {
},
/*点击移动*/
onClickMove(e) {
this.moveVolunteer.volunteerId = this.volunteerId;
this.moveVolunteer.id = e.id;
this.moveVolunteer.batch = e.batch
this.$refs.inputDialog.open()
},
/*点击交换*/
onClickExChange(e) {
this.moveVolunteer.volunteerId = this.volunteerId;
this.moveVolunteer.id = e.id;
this.moveVolunteer.batch = e.batch
this.$refs.inputDialog.open()
},
/*选择是否删除明细*/
confirmDelVolunteerItem(e) {
let that = this
console.log('删除提示')
console.log(e)
uni.showModal({
title: '提示',
content: '确认要删除志愿' + e.indexs + '吗?',
confirmText: '确定',
cancelText: '取消',
success: function (res) {
if (res.confirm) {
that.deleteVolunteerItem(e)
}
}
});
},
/*确认删除志愿明细*/
deleteVolunteerItem(e) {
let that = this
request.delete(ApiConstant.Volunteer.volunteerRecordDelete, {id: e.id}).then(res => {
if (res.success) {
setTimeout(function () {
uni.showToast({title: '删除成功', icon: "none"});
}, 1000)
setTimeout(function () {
that.getFilledVolunteerList()
}, 1500)
} else {
setTimeout(function () {
uni.showToast({title: res.message, icon: "none"});
}, 500)
}
}).catch(err => {
}).finally(() => {
});
},
fctjCheckboxChange(e) {
console.log('服从调剂')
console.log(e)
request.post(ApiConstant.Volunteer.updateFctj, {id: e}).then(res => {
}).catch(err => {
}).finally(() => {
});
},
toAdd() {
let scoreInfo = uni.getStorageSync('scoreInfo')
let volunteer = uni.getStorageSync('volunteer')
let that = this
if (volunteer && this.volunteerId !== volunteer.id) {
uni.showModal({
title: '提示',
content: '该成绩与当前成绩不一致,确认切换?',
confirmText: '确定',
cancelText: '取消',
success: function (res) {
if (res.confirm) {
that.switchVolunteer()
}
}
});
} else {
uni.navigateTo({
url: 'mockList?batch=' + this.selectForm.batch + '&volunteerId=' + this.volunteerId
})
}
},
change(e) {
console.log(e);
},
/*确认移动志愿*/
moveIndexsConfirm() {
if (!this.moveVolunteer.indexs) {
uni.showToast({title: '请输入志愿序号', icon: "none"});
return;
}
let indexs = parseFloat(this.moveVolunteer.indexs)
if (this.moveVolunteer.batch === '提前批') {
if (indexs > 4 || indexs < 0) {
uni.showToast({title: '您输入的序号超出', icon: "none"});
this.moveVolunteer.indexs = ''
return;
}
} else {
if (indexs > (this.scoreInfo.professionalCategory==='体育类'?12:35) || indexs < 0) {
uni.showToast({title: '您输入的序号超出', icon: "none"});
this.moveVolunteer.indexs = ''
return;
}
}
let that = this
request.post(ApiConstant.Volunteer.exChangeIndexs, this.moveVolunteer).then(res => {
if (res.success) {
this.moveVolunteer.indexs = ''
this.moveVolunteer.batch = ''
this.moveVolunteer.volunteerId = ''
setTimeout(function () {
that.getFilledVolunteerList();
}, 1000)
} else {
setTimeout(function () {
uni.showToast({title: res.message, icon: "none"});
}, 500)
}
}).catch(err => {
}).finally(() => {
});
},
onClickEditUserScore() {
this.goto('/pages/zyb/score/edit')
},
/*点击创建志愿单*/
onClickCreateVolunteer() {
let that = this
request.post(ApiConstant.Volunteer.addNew, {
volunteerName: '模拟志愿草表'
}, {}).then(res => {
uni.setStorageSync('volunteerInfo', res.result)
request.getUserScore()
}).catch(err => {
}).finally(() => {
});
},
/*返回已填志愿数量*/
getVolunteerNum(citem){
if (citem.batch === '提前批') {
return this.filledVolunteer.volunteerRecordEarlyAdmissionNum
}else if(citem.batch === '本科批'){
return this.filledVolunteer.volunteerUndergraduateNum
}else{
return this.filledVolunteer.volunteerJuniorCollegeNum
}
},
switchVolunteer() {
request.post(ApiConstant.Volunteer.switchVolunteer, {id: this.volunteerId}).then(res => {
if (res.success) {
request.getUserScore()
setTimeout(() => {
wx.reLaunch({
url: '/pages/zyb/home',
})
}, 1000)
} else {
setTimeout(function () {
uni.showToast({title: res.message, icon: "none"});
}, 500)
}
}).catch(err => {
}).finally(() => {
});
}
}
}
</script>
<template>
<view class="divider"/>
<!-- 没有成绩界面 -->
<view class="container" v-if="!this.scoreInfo">
<text>当前没有成绩信息请先修改成绩~</text>
<text class="margin-left-30 font-weight-none mediumSlateBlue" @click="onClickEditUserScore">修改成绩</text>
</view>
<view class="container">
<!--成绩卡片-->
<view class="score-info-card white" v-if="this.scoreInfo">
<view class="flexWrap">
<text class="font-size-mini4 font-weight-550">{{ volunteerInfo.volunteerName }}</text>
</view>
<view class="flexWrap tags font-size-mini2" v-if="scoreInfo">
<view class="tag">{{ scoreInfo.province }}</view>
<view class="tag">{{ scoreInfo.cognitioPolyclinic }}</view>
<view class="tag">{{ scoreInfo.professionalCategory }}</view>
</view>
<view class="flexWrap">
<view class="score flex-item-10">
<view class="flexWrap" style="height: 30rpx;">
<view class="scoreLeft margin-right-30">
<text class="margin-right-10">文化分</text>
<text class="font-weight-b">{{ scoreInfo.culturalScore }}</text>
</view>
<view style="border-right:1rpx solid white"></view>
<view class="scoreRight margin-left-30">
<text class="margin-right-10">统考分</text>
<text class="margin-right-10 font-weight-b">{{ scoreInfo.professionalScore }}</text>
</view>
</view>
<view class="flexWrap" style="margin-top: 30rpx;height: 30rpx;" v-if="scoreInfo && scoreInfo.professionalCategoryChildren">
<view class="scoreLeft margin-right-30" v-if="scoreInfo.yybysy && scoreInfo.yybysy!==0">
<text class="margin-right-10">音乐表演声乐</text>
<text class="font-weight-b">{{ scoreInfo.yybysy }}</text>
</view>
<view class="scoreLeft margin-right-30" v-if="scoreInfo.yybyqy && scoreInfo.yybyqy!==0">
<text class="margin-right-10">音乐表演器乐</text>
<text class="font-weight-b">{{ scoreInfo.yybyqy }}</text>
</view>
<view class="scoreLeft margin-right-30" v-if="scoreInfo.yyjy && scoreInfo.yyjy!==0">
<text class="margin-right-10">音乐教育</text>
<text class="font-weight-b">{{ scoreInfo.yyjy }}</text>
</view>
<view class="scoreLeft margin-right-30" v-if="scoreInfo.fzby && scoreInfo.fzby!==0">
<text class="margin-right-10">服装表演</text>
<text class="font-weight-b">{{ scoreInfo.fzby }}</text>
</view>
<view class="scoreLeft margin-right-30" v-if="scoreInfo.xjysdy && scoreInfo.xjysdy!==0">
<text class="margin-right-10">戏剧影视导演</text>
<text class="font-weight-b">{{ scoreInfo.xjysdy }}</text>
</view>
<view class="scoreLeft margin-right-30" v-if="scoreInfo.xjysby && scoreInfo.xjysby!==0">
<text class="margin-right-10">戏剧影视表演</text>
<text class="font-weight-b">{{ scoreInfo.xjysby }}</text>
</view>
</view>
</view>
</view>
</view>
<view class="divider"/>
<!--志愿信息-->
<view class="fillVolunteerList" v-if="collapseItemList.length>0">
<view class="collapse">
<view class="collapse-item" v-for="(citem,cindex) in collapseItemList" :key="cindex">
<view class="collapse-head" @click="collapseItemList[cindex].status=!collapseItemList[cindex].status">
<view class="flexWrap" style="background-color: #f5f5f5;line-height: 80rpx;">
<view class="flex-item-8">
<view style="padding-left: 30rpx;">
<text class="font-size-mini3 font-weight-b">{{
citem.batchLabel
}}({{ getVolunteerNum(citem) }}/{{ citem.max }})
</text>
<text class="font-size-mini margin-left-10 slateGray">{{ citem.type }}</text>
</view>
</view>
<view class="flex-item-2">
<text class="float-right" style="margin-right: 30rpx">{{ citem.status ? '收起' : '展开' }}</text>
</view>
</view>
</view>
<view class="collapse-body" v-show="citem.status" style="">
<view class="volunteerItem" v-for="(item,index) in (citem.batch==='高职高专')?filledVolunteer.volunteerJuniorCollegeList:
citem.batch==='提前批'?filledVolunteer.volunteerEarlyAdmissionList:filledVolunteer.volunteerUndergraduateList"
:key="item.indexs">
<view v-if="item.majorCode">
<view class="flexWrap">
<view class="flex-item-15 select">
<view class="selectIndex">
<text style="line-height: 50rpx">{{ item.indexs }}</text>
</view>
</view>
<view class="flex-item-85" @click="gotoSchool(item.schoolCode)">
<text style="line-height: 50rpx">[{{ item.schoolCode }}]{{ item.schoolName }}</text>
</view>
</view>
<view class="flexWrap marginTopBot20">
<view class="flex-item-15 select"></view>
<view class="flex-item-75 ">
<text class="darkGray">[{{ item.enrollmentCode }}]</text>
<text class="margin-left-10">{{ item.majorName }}</text>
</view>
<view class="flex-item-1">
<text class="darkGray float-right">{{ item.enrollProbability }}%</text>
</view>
</view>
<!--操作栏-->
<view class="flexWrap border-top" style="line-height: 60rpx">
<view class="flex-item-4">
<checkbox-group @change="fctjCheckboxChange(item.id)" v-if="citem.batch==='提前批'">
<label>
<checkbox value="cb" :checked="item.fctj===1" color="#FFCC33" style="transform:scale(0.7)"/>
服从调剂
</label>
</checkbox-group>
</view>
<view class="flex-item-6">
<view class="float-right">
<image @click="onClickExChange(item)" src="/static/icons/move.png" class="icon50 margin-left-50"/>
<!-- <image src="/static/icons/edit.png" class="icon50 margin-left-50"/>-->
<image @click="confirmDelVolunteerItem(item)" src="/static/icons/delete.png"
class="icon50 margin-left-50"/>
</view>
</view>
</view>
</view>
<!--空白专业-->
<view v-else @click="toAdd()">
<view class="notSelect flexWrap">
<view class="notSelectIndex">
<text style="line-height: 50rpx">{{ item.indexs }}</text>
</view>
<view class="margin-left-30">
点击添加专业志愿
</view>
</view>
</view>
</view>
</view>
</view>
</view>
</view>
<!--有成绩没有志愿信息-->
<view class="" v-if="this.scoreInfo && !this.volunteerId">
<view>
<text class="mediumSlateBlue" @click="onClickCreateVolunteer">创建志愿单</text>
</view>
</view>
</view>
<uni-popup ref="inputDialog" type="dialog">
<uni-popup-dialog ref="inputClose" mode="input"
placeholder="N" @confirm="moveIndexsConfirm">
<view>
<view class="flexWrap" style="height: 50rpx;line-height: 50rpx">
<view class="flex-item-3">
移动志愿
</view>
<view class="flex-item-3">
<view style="border: 1rpx solid #979797">
<input type="number" v-model="moveVolunteer.indexs" placeholder="N"/>
</view>
</view>
</view>
</view>
</uni-popup-dialog>
</uni-popup>
</template>
<style>
page {
background-color: white;
}
</style>
<style scoped lang="scss">
.divider {
background: #f5f5f5;
width: 100%;
height: 3rpx;
}
.container {
padding: 30rpx;
max-height: 100%;
}
/*成绩卡片 start*/
.score-info-card {
padding: 20rpx;
background: #f99352;
border-radius: 15rpx;
.tags {
margin: 10rpx 0;
.tag {
background-color: #faa069;
padding: 0 15rpx;
line-height: 40rpx;
margin-right: 20rpx;
}
}
.score {
margin-top: 70rpx;
margin-bottom: 10rpx;
}
}
/*成绩卡片 end*/
/*志愿列表 start*/
.collapse-item {
margin-top: 30rpx;
.collapse-body {
border-left: 1rpx solid #f5f5f5;
border-right: 1rpx solid #f5f5f5;
border-bottom: 1rpx solid #f5f5f5;
background-color: #f5f5f5;
}
}
.collapse-body .volunteerItem {
background-color: white;
margin-bottom: 10rpx;
padding: 10rpx 30rpx;
.notSelect {
line-height: 80rpx;
height: 80rpx;
color: #999999;
}
.select {
.selectIndex {
background-color: #feeee2;
color: #f96712;
width: 20rpx;
height: 50rpx;
margin: auto 0;
line-height: 50rpx;
padding: 0 20rpx;
text-align: center;
}
}
//
.notSelectIndex {
background-color: #f2f2f2;
width: 20rpx;
height: 50rpx;
margin: auto 0;
line-height: 50rpx;
padding: 0 20rpx;
text-align: center;
}
}
.fillVolunteerList {
margin: 10rpx 0;
border-top: 1rpx solid #f5f5f5;
}
/*志源列表 end*/
.uni-row {
margin-bottom: 30rpx;
}
/*导航栏部分 start*/
.tabs {
flex: 1;
flex-direction: column;
overflow: hidden;
background-color: #ffffff;
/* #ifndef APP-PLUS */
/*height: 100vh;*/
/* #endif */
.scroll-h {
/*width: 750rpx;*/
/* #ifdef H5 */
width: 100%;
/* #endif */
height: 80rpx;
flex-direction: row;
/* #ifndef APP-PLUS */
white-space: nowrap;
/* #endif */
/* flex-wrap: nowrap; */
/* border-color: #cccccc;
border-bottom-style: solid;
border-bottom-width: 1px; */
}
.line-h {
height: 1rpx;
background-color: #cccccc;
}
.uni-tab-item {
/* #ifndef APP-PLUS */
display: inline-block;
/* #endif */
flex-wrap: nowrap;
padding-left: 34rpx;
padding-right: 34rpx;
}
.uni-tab-item-title {
color: #555;
font-size: 30rpx;
height: 80rpx;
line-height: 80rpx;
flex-wrap: nowrap;
/* #ifndef APP-PLUS */
white-space: nowrap;
/* #endif */
}
.uni-tab-item-title-active {
color: #007AFF;
}
.swiper-box {
flex: 1;
}
.swiper-item {
flex: 1;
flex-direction: row;
}
.scroll-v {
flex: 1;
/* #ifndef MP-ALIPAY */
flex-direction: column;
/* #endif */
/*width: 750rpx;*/
width: 100%;
}
.update-tips {
position: absolute;
left: 0;
top: 41px;
right: 0;
padding-top: 5px;
padding-bottom: 5px;
background-color: #FDDD9B;
align-items: center;
justify-content: center;
text-align: center;
}
.update-tips-text {
font-size: 14px;
color: #ffffff;
}
.refresh {
/*width: 750rpx;*/
width: 100%;
height: 64px;
justify-content: center;
}
.refresh-view {
flex-direction: row;
flex-wrap: nowrap;
align-items: center;
justify-content: center;
}
.refresh-icon {
width: 30px;
height: 30px;
transition-duration: .5s;
transition-property: transform;
transform: rotate(0deg);
transform-origin: 15px 15px;
}
.refresh-icon-active {
transform: rotate(180deg);
}
.loading-icon {
width: 20px;
height: 20px;
margin-right: 5px;
color: #999999;
}
.loading-text {
margin-left: 2px;
font-size: 16px;
color: #999999;
}
.loading-more {
align-items: center;
justify-content: center;
padding-top: 10px;
padding-bottom: 10px;
text-align: center;
}
.loading-more-text {
font-size: 28rpx;
color: #999;
}
}
/*导航栏部分 end*/
/*志愿信息头部信息 start*/
.header-info {
padding: 30rpx 30rpx 0 30rpx;
background-color: white;
margin-bottom: 30rpx;
.h1 {
padding: 10rpx 0;
}
.tt1 {
margin-right: 30rpx;
}
}
/*志愿信息头部信息 end*/
/*志愿明细列表 start*/
.volunteerList {
padding: 30rpx 30rpx 0 30rpx;
background-color: white;
.v-title {
color: #666666;
margin-bottom: 30rpx;
}
.volunteerItem {
margin-bottom: 50rpx;
.item_left {
.schoolInfo {
border-bottom: 1px solid #e5e5e5;
padding: 15rpx 0 30rpx 0;
}
.majorInfo {
padding: 30rpx 0;
border-bottom: 1px solid #f5f5f5;
.enrollProbability {
color: #9b9b9b;
font-size: 25rpx;
}
}
}
.item_right {
padding: 150rpx 0 0 20rpx;
}
/*序号*/
.indexs {
color: white;
width: 30rpx;
height: 40rpx;
background-color: #1275ec;
border-radius: 50%;
padding-left: 10rpx;
margin-right: 30rpx;
}
/*tags*/
.tags {
margin-top: 15rpx;
.tag {
margin-right: 20rpx;
color: #9b9b9b;
font-size: 25rpx;
}
}
.low-text {
color: #9b9b9b;
font-size: 22rpx;
margin-bottom: 15rpx;
}
}
}
/*志愿明细列表 end*/
</style>

View File

@ -4,10 +4,12 @@ import ApiConstant from "@/common/ApiConstant";
import Request from '@/common/request' import Request from '@/common/request'
import {formatTime} from "@/common/util"; import {formatTime} from "@/common/util";
import ImagesConstant from "@/common/ImagesConstant"; import ImagesConstant from "@/common/ImagesConstant";
import View from "../../component/view/view.vue";
let request = new Request() let request = new Request()
export default { export default {
name: "fillVolunteer-list", name: "fillVolunteer-list",
components: {View},
computed: { computed: {
ImagesConstant() { ImagesConstant() {
return ImagesConstant return ImagesConstant
@ -35,7 +37,7 @@ export default {
}); });
}, },
/*点击新增志愿*/ /*点击新增志愿*/
clickAdd(){ clickAdd() {
let that = this let that = this
uni.showLoading({ uni.showLoading({
title: '创建志愿表' title: '创建志愿表'
@ -44,7 +46,7 @@ export default {
if (res.success) { if (res.success) {
setTimeout(function () { setTimeout(function () {
uni.hideLoading(); uni.hideLoading();
}, 1000) }, 800)
setTimeout(function () { setTimeout(function () {
that.getVolunteerList(); that.getVolunteerList();
}, 1000) }, 1000)
@ -59,10 +61,11 @@ export default {
}); });
}, },
clickEdit(e) { clickEdit(e) {
console.log('编辑') let scoreInfo = uni.getStorageSync('scoreInfo')
console.log(e) let that = this
console.log(scoreInfo)
uni.navigateTo({ uni.navigateTo({
url: 'detail?volunteerId=' + e url: '/pages/zyb/fillVolunteer/my-detail?volunteerId=' + e
}) })
}, },
clickDelete(e) { clickDelete(e) {
@ -106,13 +109,16 @@ export default {
// //
uni.showToast({title: '目前仅支持PC端下载', icon: "none"}); uni.showToast({title: '目前仅支持PC端下载', icon: "none"});
}, },
formatDate(date) { formatDate(dateString) {
console.log(date) // Date
let newDate = new Date(date); var date = new Date(dateString.replace(/-/g,'/'));
let year = newDate.getFullYear(); // "yyyy/MM/dd HH:mm:ss"
let month = String(newDate.getMonth() + 1).padStart(2, '0'); return date.getFullYear() + "/" +
let day = String(newDate.getDate()).padStart(2, '0'); ("0" + (date.getMonth() + 1)).slice(-2) + "/" +
return year + '-' + month + '-' + day; ("0" + date.getDate()).slice(-2) + " " +
("0" + date.getHours()).slice(-2) + ":" +
("0" + date.getMinutes()).slice(-2) + ":" +
("0" + date.getSeconds()).slice(-2);
} }
}, },
} }
@ -120,18 +126,20 @@ export default {
<template> <template>
<!--志愿信息列表--> <!--志愿信息列表-->
<view class="container" style="background-color: #ffffcb">
<text class="uni-h6">系统仅保留前5条志愿表</text>
</view>
<view style="border-top: 1px solid #f5f6f8"> <view style="border-top: 1px solid #f5f6f8">
<view class="volunteerDiv" v-for="(item,index) in volunteerList" :key="item.id"> <view class="volunteerDiv" v-if="volunteerList.length>0" v-for="(item,index) in volunteerList" :key="item.id">
<view class="uni-flex flex" style="padding: 15rpx;"> <view class="uni-flex flex" style="padding: 15rpx;">
<view class="flex-item-5 t_item" @click="clickEdit(item.id)"> <view class="flex-item-7 t_item" @click="clickEdit(item.id)">
<text style="font-size: 30rpx;font-weight: 600">{{ item.volunteerName }}</text> <text style="font-size: 30rpx;font-weight: 600">{{ item.volunteerName }}</text>
</view> </view>
<view class="flex-item-2 t_item"> <view class="flex-item-2 t_item" @click="clickEdit(item.id)">
<view class="tag-view" v-if="item.state==='1'"> <view class="tag-view" v-if="item.state==='1'">
<uni-tag text="使用中" type="primary"/> <uni-tag text="使用中" type="primary"/>
</view> </view>
</view> </view>
</view> </view>
<view class="uni-flex flex" style="padding: 15rpx;"> <view class="uni-flex flex" style="padding: 15rpx;">
<view class="flex-item-6" @click="clickEdit(item.id)"> <view class="flex-item-6" @click="clickEdit(item.id)">
@ -178,14 +186,16 @@ export default {
</view> </view>
</view> </view>
<!--新增志愿-->
<view class="addBtn" @click="clickAdd">
<text class="addBtn-text">新增志愿</text>
</view>
</view> </view>
</template> </template>
<style scoped lang="scss"> <style scoped lang="scss">
.container {
line-height: 80rpx;
padding: 0 30rpx;
font-weight: 550;
}
.volunteerDiv { .volunteerDiv {
background-color: white; background-color: white;
margin-bottom: 30rpx; margin-bottom: 30rpx;

View File

@ -0,0 +1,985 @@
<script>
import StaticConstant from "@/common/StaticConstant";
import ApiConstant from "@/common/ApiConstant";
import Request from '@/common/request'
import ImagesConstant from "@/common/ImagesConstant";
import {stringIsNotEmpty} from "@/common/util";
let request = new Request()
//
const MAX_CACHE_DATA = 100;
//
const MAX_CACHE_PAGE = 3;
export default {
name: "我的志愿明细",
computed: {
ImagesConstant() {
return ImagesConstant
}
},
data() {
return {
paneFlag: false,
scoreStatus: true,
moveVolunteer: {
batch: '',//
indexs: '',
volunteerId: ''
},
volunteer:{},
volunteerId: '',//id
volunteerName: '',//
topBackShow: true,//
selectForm: {
address: '',
schoolName: '',
paneName: '全部',
batch: '',
},
scoreInfo: {},//
volunteerInfo: {},//
tabIndex: 0,//
scrollInto: "",
newsList: [],
cacheTab: [],
filledVolunteer: {
volunteerEarlyAdmissionList: [],//
volunteerUndergraduateAList: [],//A
volunteerUndergraduateBList: [],//B
volunteerUndergraduateList: [],//
volunteerJuniorCollegeList: [],//
volunteerMap: new Map()
},//
years: StaticConstant.years,
nowYear: StaticConstant.year,
allCollapseItemList: [
{
batchLabel: '本科提前批',
batch: '提前批',
type: '顺序志愿',
max: 2,
status: false
},
{
batchLabel: '艺术本科A段',
batch: '本科A段',
type: '平行志愿',
max: 12,
status: false
},
{
batchLabel: '艺术本科B段',
batch: '本科B段',
type: '平行志愿',
max: 12,
status: false
}, {
batchLabel: '本科',
batch: '本科',
type: '平行志愿',
max: 12,
status: false
}, {
batchLabel: '高职高专',
batch: '高职高专',
type: '平行志愿',
max: 12,
status: false
},
],
collapseItemList: []
}
},
onShow() {
//
let userInfo = uni.getStorageSync('userInfo')
this.scoreInfo = uni.getStorageSync('scoreInfo')
this.volunteer = uni.getStorageSync('volunteer')
if (userInfo) {
//
this.userStatus = true
//
this.scoreInfo = uni.getStorageSync('scoreInfo')
if (this.scoreInfo === undefined || this.scoreInfo === null || this.scoreInfo === '') {
//
request.getUserScore()
this.scoreInfo = uni.getStorageSync('scoreInfo')
this.volunteer = uni.getStorageSync('volunteer')
if (!this.scoreInfo) {
this.scoreStatus = false
}else{
this.scoreStatus = true
}
}
} else {
//
this.goto('/pages/zyb/login')
return
}
//
if (this.scoreInfo && this.volunteer) {
this.volunteerId = this.volunteer.id
}
if (stringIsNotEmpty(this.volunteerId)) {
this.getFilledVolunteerList()
}
},
onLoad(e) {
if (e.volunteerId) {
//
this.volunteerId = e.volunteerId;
console.log(e.volunteerId)
}
},
methods: {
goto(url) {
uni.navigateTo({url: url})
},
gotoSchool(e) {
this.goto('/pages/zyb/school/detail?schoolCode=' + e)
},
topBack() {
uni.pageScrollTo({
scrollTop: 0, // , 0
duration: 300 //
})
},
clearTabData(e) {
this.newsList[e].data.length = 0;
this.newsList[e].loadingText = "加载更多...";
},
/*获取已填报志愿数据*/
getFilledVolunteerList() {
request.get(ApiConstant.Volunteer.artVolunteerDetail, {id: this.volunteerId},{showLoad:false}).then(res => {
if (res.success) {
let dataResult = res.result
//
const volunteerMap = new Map();
if (dataResult != null) {
this.volunteerId = dataResult.id
this.volunteerInfo = dataResult
this.scoreInfo = dataResult.userScoreInfo
if (this.scoreInfo.batch) {
this.paneFlag = true
this.selectForm.batch = this.scoreInfo.batch
let allCollapseItemList = this.allCollapseItemList
let collapseItemList = []
//
for (let i = 0; i < allCollapseItemList.length; i++) {
if (this.scoreInfo.batch === '本科A段') {
if (allCollapseItemList[i].batch === '本科') {
continue
}
} else if (this.scoreInfo.batch === '本科B段') {
if (allCollapseItemList[i].batch === '提前批' || allCollapseItemList[i].batch === '本科A段' || allCollapseItemList[i].batch === '本科') {
continue
}
} else if (this.scoreInfo.batch === '本科') {
if (allCollapseItemList[i].batch === '提前批' ||allCollapseItemList[i].batch === '本科A段' || allCollapseItemList[i].batch === '本科B段') {
continue
}
} else {
if (allCollapseItemList[i].batch !== '高职高专') {
continue
}
}
collapseItemList.push(allCollapseItemList[i])
this.collapseItemList = collapseItemList
}
}
let key = ''
let volunteer = {indexStr: 0}
if (true) {
//================================== start
let volunteerRecordEarlyAdmissionList = dataResult.volunteerRecordEarlyAdmissionList;
this.filledVolunteer.volunteerRecordEarlyAdmissionNum = volunteerRecordEarlyAdmissionList.length;
for (let i = 0; i < volunteerRecordEarlyAdmissionList.length; i++) {
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++) {
if (volunteerRecordEarlyAdmissionList[i].indexs === indexs) {
record = volunteerRecordEarlyAdmissionList[i]
record.actives = true
}
}
volunteerRecordEarlyAdmissionList2.push(record)
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++) {
key = volunteerUndergraduateAList[i].majorCode + volunteerUndergraduateAList[i].schoolCode
volunteerMap.set(key, volunteerUndergraduateAList[i])
}
indexs = 1;
let volunteerRecordUndergraduateAList2 = [];
while (indexs <= 12) {
let record = {actives: false, indexs: indexs}
for (let i = 0; i < volunteerUndergraduateAList.length; i++) {
if (volunteerUndergraduateAList[i].indexs === indexs) {
record = volunteerUndergraduateAList[i]
record.actives = true
}
}
volunteerRecordUndergraduateAList2.push(record)
indexs++;
}
this.filledVolunteer.volunteerUndergraduateAList = volunteerRecordUndergraduateAList2
//==================================A end
//==================================B start
let volunteerUndergraduateBList = dataResult.volunteerRecordUndergraduateBList;
this.filledVolunteer.volunteerUndergraduateBNum = volunteerUndergraduateBList.length;
for (let i = 0; i < volunteerUndergraduateBList.length; i++) {
key = volunteerUndergraduateBList[i].majorCode + volunteerUndergraduateBList[i].schoolCode
volunteerMap.set(key, volunteerUndergraduateBList[i])
}
indexs = 1;
let volunteerUndergraduateBList2 = [];
while (indexs <= 12) {
let record = {actives: false, indexs: indexs}
for (let i = 0; i < volunteerUndergraduateBList.length; i++) {
if (volunteerUndergraduateBList[i].indexs === indexs) {
record = volunteerUndergraduateBList[i]
record.actives = true
}
}
volunteerUndergraduateBList2.push(record)
indexs++;
}
this.filledVolunteer.volunteerUndergraduateBList = volunteerUndergraduateBList2
//================================== start
let volunteerUndergraduateList = dataResult.volunteerRecordUndergraduateList;
this.filledVolunteer.volunteerUndergraduateNum = volunteerUndergraduateList.length;
console.log('//==================================本科 start')
console.log(volunteerUndergraduateList)
for (let i = 0; i < volunteerUndergraduateList.length; i++) {
key = volunteerUndergraduateList[i].majorCode + volunteerUndergraduateList[i].schoolCode
volunteerMap.set(key, volunteerUndergraduateList[i])
}
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++;
}
this.filledVolunteer.volunteerUndergraduateList = volunteerUndergraduateList2
//================================== end
//================================== 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++) {
if (volunteerJuniorCollegeList[i].indexs === indexs) {
record = volunteerJuniorCollegeList[i]
record.actives = true
}
}
volunteerJuniorCollegeList2.push(record)
indexs++;
}
this.filledVolunteer.volunteerJuniorCollegeList = volunteerJuniorCollegeList2
//================================== end
}
} else {
this.filledVolunteer.volunteerEarlyAdmissionList = []
this.filledVolunteer.volunteerUndergraduateAList = []
this.filledVolunteer.volunteerUndergraduateBList = []
this.filledVolunteer.volunteerJuniorCollegeList = []
this.filledVolunteer.volunteerUndergraduateList = []
this.filledVolunteer.volunteerList = []
}
this.filledVolunteer.volunteerMap = volunteerMap
}
}).catch(err => {
}).finally(() => {
});
},
/*计算百分比*/
toPercent(num, total) {
return (Math.round(num / total * 10000) / 100.00);//
},
/*悬浮按钮*/
trigger(e) {
console.log(e)
/*this.fab.content[e.index].active = !e.item.active*/
if (e.item.text === '回到顶部') {
this.topBack()
}
},
fabClick() {
},
/*点击移动*/
onClickMove(e) {
this.moveVolunteer.volunteerId = this.volunteerId;
this.moveVolunteer.id = e.id;
this.moveVolunteer.batch = e.batch
this.$refs.inputDialog.open()
},
/*点击交换*/
onClickExChange(e) {
this.moveVolunteer.volunteerId = this.volunteerId;
this.moveVolunteer.id = e.id;
this.moveVolunteer.batch = e.batch
this.$refs.inputDialog.open()
},
/*选择是否删除明细*/
confirmDelVolunteerItem(e) {
let that = this
console.log('删除提示')
console.log(e)
uni.showModal({
title: '提示',
content: '确认要删除志愿' + e.indexs + '吗?',
confirmText: '确定',
cancelText: '取消',
success: function (res) {
if (res.confirm) {
that.deleteVolunteerItem(e)
}
}
});
},
/*确认删除志愿明细*/
deleteVolunteerItem(e) {
let that = this
request.delete(ApiConstant.Volunteer.volunteerRecordDelete, {id: e.id}).then(res => {
if (res.success) {
setTimeout(function () {
uni.showToast({title: '删除成功', icon: "none"});
}, 1000)
setTimeout(function () {
that.getFilledVolunteerList()
}, 1500)
} else {
setTimeout(function () {
uni.showToast({title: res.message, icon: "none"});
}, 500)
}
}).catch(err => {
}).finally(() => {
});
},
fctjCheckboxChange(e) {
console.log('服从调剂')
console.log(e)
request.post(ApiConstant.Volunteer.updateFctj, {id: e}).then(res => {
}).catch(err => {
}).finally(() => {
});
},
toAdd() {
uni.navigateTo({
url: 'index?batch=' + this.selectForm.batch + '&volunteerId=' + this.volunteerId
})
},
change(e) {
console.log(e);
},
/*确认移动志愿*/
moveIndexsConfirm() {
if (!this.moveVolunteer.indexs) {
uni.showToast({title: '请输入志愿序号', icon: "none"});
return;
}
let indexs = parseFloat(this.moveVolunteer.indexs)
if (this.moveVolunteer.batch === '提前批') {
if (indexs > 2 || indexs < 0) {
uni.showToast({title: '您输入的序号超出', icon: "none"});
this.moveVolunteer.indexs = ''
return;
}
} else {
if (indexs > 12 || indexs < 0) {
uni.showToast({title: '您输入的序号超出', icon: "none"});
this.moveVolunteer.indexs = ''
return;
}
}
let that = this
request.post(ApiConstant.Volunteer.exChangeIndexs, this.moveVolunteer).then(res => {
if (res.success) {
this.moveVolunteer.indexs = ''
this.moveVolunteer.batch = ''
this.moveVolunteer.volunteerId = ''
setTimeout(function () {
that.getFilledVolunteerList();
}, 1000)
} else {
setTimeout(function () {
uni.showToast({title: res.message, icon: "none"});
}, 500)
}
}).catch(err => {
}).finally(() => {
});
},
onClickEditUserScore() {
this.goto('/pages/zyb/score/edit')
},
/*点击创建志愿单*/
onClickCreateVolunteer(){
let that = this
request.post(ApiConstant.Volunteer.addNew, {
volunteerName:'模拟志愿草表'
},{}).then(res => {
uni.setStorageSync('volunteerInfo',res.result)
request.getUserScore()
}).catch(err => {
}).finally(() => {
});
},
/*返回已填志愿数量*/
getVolunteerNum(citem){
console.log(this.filledVolunteer.volunteerRecordEarlyAdmissionNum)
if (citem.batch === '提前批') {
return this.filledVolunteer.volunteerRecordEarlyAdmissionNum
}else if(citem.batch === '本科A段'){
return this.filledVolunteer.volunteerUndergraduateANum
}else if(citem.batch === '本科B段'){
return this.filledVolunteer.volunteerUndergraduateBNum
}else if(citem.batch === '本科'){
return this.filledVolunteer.volunteerUndergraduateNum
}
return this.filledVolunteer.volunteerJuniorCollegeNum
}
}
}
</script>
<template>
<view class="divider"/>
<!-- 没有成绩界面 -->
<view class="container" v-if="!this.scoreInfo">
<text>当前没有成绩信息请先修改成绩~</text>
<text class="margin-left-30 font-weight-none mediumSlateBlue" @click="onClickEditUserScore">修改成绩</text>
</view>
<view class="container">
<!--成绩卡片-->
<view class="score-info-card white" v-if="this.scoreInfo">
<view class="flexWrap">
<text class="font-size-mini4 font-weight-550">{{ volunteerInfo.volunteerName }}</text>
</view>
<view class="flexWrap tags font-size-mini2" v-if="scoreInfo">
<view class="tag">{{ scoreInfo.province }}</view>
<view class="tag">{{ scoreInfo.cognitioPolyclinic }}</view>
<view class="tag">{{ scoreInfo.professionalCategory }}</view>
</view>
<view class="flexWrap">
<view class="score flex-item-10">
<view class="flexWrap" style="height: 30rpx;">
<view class="scoreLeft margin-right-30">
<text class="margin-right-10">文化分</text>
<text class="font-weight-b">{{ scoreInfo.culturalScore }}</text>
</view>
<view style="border-right:1rpx solid white"></view>
<view class="scoreRight margin-left-30">
<text class="margin-right-10">统考分</text>
<text class="margin-right-10 font-weight-b">{{ scoreInfo.professionalScore }}</text>
</view>
</view>
<view class="flexWrap" style="margin-top: 30rpx;height: 30rpx;" v-if="scoreInfo && scoreInfo.professionalCategoryChildren">
<view class="scoreLeft margin-right-30" v-if="scoreInfo.yybysy && scoreInfo.yybysy!==0">
<text class="margin-right-10">音乐表演声乐</text>
<text class="font-weight-b">{{ scoreInfo.yybysy }}</text>
</view>
<view class="scoreLeft margin-right-30" v-if="scoreInfo.yybyqy && scoreInfo.yybyqy!==0">
<text class="margin-right-10">音乐表演器乐</text>
<text class="font-weight-b">{{ scoreInfo.yybyqy }}</text>
</view>
<view class="scoreLeft margin-right-30" v-if="scoreInfo.yyjy && scoreInfo.yyjy!==0">
<text class="margin-right-10">音乐教育</text>
<text class="font-weight-b">{{ scoreInfo.yyjy }}</text>
</view>
<view class="scoreLeft margin-right-30" v-if="scoreInfo.fzby && scoreInfo.fzby!==0">
<text class="margin-right-10">服装表演</text>
<text class="font-weight-b">{{ scoreInfo.fzby }}</text>
</view>
<view class="scoreLeft margin-right-30" v-if="scoreInfo.xjysdy && scoreInfo.xjysdy!==0">
<text class="margin-right-10">戏剧影视导演</text>
<text class="font-weight-b">{{ scoreInfo.xjysdy }}</text>
</view>
<view class="scoreLeft margin-right-30" v-if="scoreInfo.xjysby && scoreInfo.xjysby!==0">
<text class="margin-right-10">戏剧影视表演</text>
<text class="font-weight-b">{{ scoreInfo.xjysby }}</text>
</view>
</view>
</view>
</view>
</view>
<view class="divider"/>
<!--志愿信息-->
<view class="fillVolunteerList" v-if="collapseItemList.length>0">
<view class="collapse">
<view class="collapse-item" v-for="(citem,cindex) in collapseItemList" :key="cindex">
<view class="collapse-head" @click="collapseItemList[cindex].status=!collapseItemList[cindex].status">
<view class="flexWrap" style="background-color: #f5f5f5;line-height: 80rpx;">
<view class="flex-item-8">
<view style="padding-left: 30rpx;">
<text class="font-size-mini3 font-weight-b">{{ citem.batchLabel }}({{getVolunteerNum(citem)}}/{{ citem.max }})</text>
<text class="font-size-mini margin-left-10 slateGray">{{ citem.type }}</text>
</view>
</view>
<view class="flex-item-2">
<text class="float-right" style="margin-right: 30rpx">{{ citem.status ? '收起' : '展开' }}</text>
</view>
</view>
</view>
<view class="collapse-body" v-show="citem.status" style="">
<view class="volunteerItem" v-for="(item,index) in (citem.batch==='提前批')?filledVolunteer.volunteerEarlyAdmissionList:
(citem.batch==='本科A段')?filledVolunteer.volunteerUndergraduateAList:
(citem.batch==='本科B段')?filledVolunteer.volunteerUndergraduateBList:
(citem.batch==='本科')?filledVolunteer.volunteerUndergraduateList:filledVolunteer.volunteerJuniorCollegeList"
:key="item.indexs">
<view v-if="item.majorCode">
<view class="flexWrap">
<view class="flex-item-15 select">
<view class="selectIndex">
<text style="line-height: 50rpx">{{ item.indexs }}</text>
</view>
</view>
<view class="flex-item-85" @click="gotoSchool(item.schoolCode)">
<text style="line-height: 50rpx">[{{ item.schoolCode }}]{{ item.schoolName }}</text>
</view>
</view>
<view class="flexWrap marginTopBot20">
<view class="flex-item-15 select"></view>
<view class="flex-item-7">
<text class="darkGray">[{{ item.enrollmentCode }}]</text>
<text class="margin-left-10">{{ item.majorName }}</text>
</view>
<view class="flex-item-15">
<text class="darkGray float-right" v-if="item.enrollProbability">{{ item.enrollProbability.toString().substring(0,4) }}%</text>
</view>
</view>
<!--操作栏-->
<view class="flexWrap border-top" style="line-height: 60rpx">
<view class="flex-item-4">
<checkbox-group @change="fctjCheckboxChange(item.id)" v-if="citem.batch==='提前批'">
<label>
<checkbox value="cb" :checked="item.fctj===1" color="#FFCC33" style="transform:scale(0.7)"/>
服从调剂
</label>
</checkbox-group>
</view>
<view class="flex-item-6">
<view class="float-right">
<image @click="onClickExChange(item)" src="/static/icons/move.png" class="icon50 margin-left-50"/>
<!-- <image src="/static/icons/edit.png" class="icon50 margin-left-50"/>-->
<image @click="confirmDelVolunteerItem(item)" src="/static/icons/delete.png"
class="icon50 margin-left-50"/>
</view>
</view>
</view>
</view>
<!--空白专业-->
<view v-else @click="toAdd()">
<view class="notSelect flexWrap">
<view class="notSelectIndex">
<text style="line-height: 50rpx">{{ item.indexs }}</text>
</view>
<view class="margin-left-30">
点击添加专业志愿
</view>
</view>
</view>
</view>
</view>
</view>
</view>
</view>
<!--有成绩没有志愿信息-->
<view class="" v-if="this.scoreInfo && !this.volunteerId">
<view>
<text class="mediumSlateBlue" @click="onClickCreateVolunteer">创建志愿单</text>
</view>
</view>
</view>
<uni-popup ref="inputDialog" type="dialog">
<uni-popup-dialog ref="inputClose" mode="input"
placeholder="N" @confirm="moveIndexsConfirm">
<view>
<view class="flexWrap" style="height: 50rpx;line-height: 50rpx">
<view class="flex-item-3">
移动志愿
</view>
<view class="flex-item-3">
<view style="border: 1rpx solid #979797">
<input type="number" v-model="moveVolunteer.indexs" placeholder="N"/>
</view>
</view>
</view>
</view>
</uni-popup-dialog>
</uni-popup>
</template>
<style>
page {
background-color: white;
}
</style>
<style scoped lang="scss">
.divider {
background: #f5f5f5;
width: 100%;
height: 3rpx;
}
.container {
padding: 30rpx;
max-height: 100%;
}
/*成绩卡片 start*/
.score-info-card {
padding: 20rpx;
background: #f99352;
border-radius: 15rpx;
.tags {
margin: 10rpx 0;
.tag {
background-color: #faa069;
padding: 0 15rpx;
line-height: 40rpx;
margin-right: 20rpx;
}
}
.score {
margin-top: 30rpx;
margin-bottom: 10rpx;
}
}
/*成绩卡片 end*/
/*志愿列表 start*/
.collapse-item {
margin-top: 30rpx;
.collapse-body {
border-left: 1rpx solid #f5f5f5;
border-right: 1rpx solid #f5f5f5;
border-bottom: 1rpx solid #f5f5f5;
background-color: #f5f5f5;
}
}
.collapse-body .volunteerItem {
background-color: white;
margin-bottom: 10rpx;
padding: 10rpx 30rpx;
.notSelect {
line-height: 80rpx;
height: 80rpx;
color: #999999;
}
.select {
.selectIndex {
background-color: #feeee2;
color: #f96712;
width: 20rpx;
height: 50rpx;
margin: auto 0;
line-height: 50rpx;
padding: 0 20rpx;
text-align: center;
}
}
//
.notSelectIndex {
background-color: #f2f2f2;
width: 20rpx;
height: 50rpx;
margin: auto 0;
line-height: 50rpx;
padding: 0 20rpx;
text-align: center;
}
}
.fillVolunteerList {
margin: 10rpx 0;
border-top: 1rpx solid #f5f5f5;
}
/*志源列表 end*/
.uni-row {
margin-bottom: 30rpx;
}
/*导航栏部分 start*/
.tabs {
flex: 1;
flex-direction: column;
overflow: hidden;
background-color: #ffffff;
/* #ifndef APP-PLUS */
/*height: 100vh;*/
/* #endif */
.scroll-h {
/*width: 750rpx;*/
/* #ifdef H5 */
width: 100%;
/* #endif */
height: 80rpx;
flex-direction: row;
/* #ifndef APP-PLUS */
white-space: nowrap;
/* #endif */
/* flex-wrap: nowrap; */
/* border-color: #cccccc;
border-bottom-style: solid;
border-bottom-width: 1px; */
}
.line-h {
height: 1rpx;
background-color: #cccccc;
}
.uni-tab-item {
/* #ifndef APP-PLUS */
display: inline-block;
/* #endif */
flex-wrap: nowrap;
padding-left: 34rpx;
padding-right: 34rpx;
}
.uni-tab-item-title {
color: #555;
font-size: 30rpx;
height: 80rpx;
line-height: 80rpx;
flex-wrap: nowrap;
/* #ifndef APP-PLUS */
white-space: nowrap;
/* #endif */
}
.uni-tab-item-title-active {
color: #007AFF;
}
.swiper-box {
flex: 1;
}
.swiper-item {
flex: 1;
flex-direction: row;
}
.scroll-v {
flex: 1;
/* #ifndef MP-ALIPAY */
flex-direction: column;
/* #endif */
/*width: 750rpx;*/
width: 100%;
}
.update-tips {
position: absolute;
left: 0;
top: 41px;
right: 0;
padding-top: 5px;
padding-bottom: 5px;
background-color: #FDDD9B;
align-items: center;
justify-content: center;
text-align: center;
}
.update-tips-text {
font-size: 14px;
color: #ffffff;
}
.refresh {
/*width: 750rpx;*/
width: 100%;
height: 64px;
justify-content: center;
}
.refresh-view {
flex-direction: row;
flex-wrap: nowrap;
align-items: center;
justify-content: center;
}
.refresh-icon {
width: 30px;
height: 30px;
transition-duration: .5s;
transition-property: transform;
transform: rotate(0deg);
transform-origin: 15px 15px;
}
.refresh-icon-active {
transform: rotate(180deg);
}
.loading-icon {
width: 20px;
height: 20px;
margin-right: 5px;
color: #999999;
}
.loading-text {
margin-left: 2px;
font-size: 16px;
color: #999999;
}
.loading-more {
align-items: center;
justify-content: center;
padding-top: 10px;
padding-bottom: 10px;
text-align: center;
}
.loading-more-text {
font-size: 28rpx;
color: #999;
}
}
/*导航栏部分 end*/
/*志愿信息头部信息 start*/
.header-info {
padding: 30rpx 30rpx 0 30rpx;
background-color: white;
margin-bottom: 30rpx;
.h1 {
padding: 10rpx 0;
}
.tt1 {
margin-right: 30rpx;
}
}
/*志愿信息头部信息 end*/
/*志愿明细列表 start*/
.volunteerList {
padding: 30rpx 30rpx 0 30rpx;
background-color: white;
.v-title {
color: #666666;
margin-bottom: 30rpx;
}
.volunteerItem {
margin-bottom: 50rpx;
.item_left {
.schoolInfo {
border-bottom: 1px solid #e5e5e5;
padding: 15rpx 0 30rpx 0;
}
.majorInfo {
padding: 30rpx 0;
border-bottom: 1px solid #f5f5f5;
.enrollProbability {
color: #9b9b9b;
font-size: 25rpx;
}
}
}
.item_right {
padding: 150rpx 0 0 20rpx;
}
/*序号*/
.indexs {
color: white;
width: 30rpx;
height: 40rpx;
background-color: #1275ec;
border-radius: 50%;
padding-left: 10rpx;
margin-right: 30rpx;
}
/*tags*/
.tags {
margin-top: 15rpx;
.tag {
margin-right: 20rpx;
color: #9b9b9b;
font-size: 25rpx;
}
}
.low-text {
color: #9b9b9b;
font-size: 22rpx;
margin-bottom: 15rpx;
}
}
}
/*志愿明细列表 end*/
</style>

View File

@ -0,0 +1,21 @@
<script>
export default {
name: "index",
data() {
return {
content: '<h3>郑州大学 2023年美术类专业招生简章</h3><p><em>发布者:&nbsp;&nbsp;时间2023-05-15 08:18:26&nbsp;&nbsp;浏览:</em><em>1314</em></p><p><br/></p><p class="vsbcontent_start">郑州大学是国家“211工程”重点建设高校、世界一流大学建设高校和“部省合建”高校。<a></a>根据《教育部关于进一步加强和改进普通高校艺术类专业考试招生工作的指导意见》教学20213号、《教育部办公厅关于做好2023年普通高校部分特殊类型招生工作的通知》(教学厅20228号)等文件精神坚持以习近平新时代中国特色社会主义思想为指导全面贯彻党的教育方针坚持社会主义办学方向深入落实立德树人根本任务着力选拔培养德智体美劳全面发展的社会主义建设者和接班人。2023年我校计划招收美术类专业考生152名。</p><p><strong>一、分省分专业招生计划</strong></p><p>河南、山东、湖南、山西、安徽、陕西、广东、江苏八省使用省统考成绩录取。具体招生专业信息及人数如下:</p><p class="vsbcontent_img"><img id="82lFTkSu" src="/__local/2/12/0B/A9F14472B8902978C8B4CAB0B75_59BBE9E7_94E6.png" class="img_vsb_content"/></p><p><strong>二、录取规则</strong></p><p>1.考生专业课、文化课成绩均须达到生源省份艺术类本科控制分数线。</p><p>2.对于进档考生依据综合成绩从高到低录取。文化课成绩与专业课成绩各占综合成绩的50%。计算公式为:</p><p>综合成绩=(文化课成绩/文化课满分×100×50% + (专业课成绩/专业课满分×100×50%。</p><p>综合成绩相同则按文化课成绩从高到低录取,仍相同则依次按<a></a>语文、数学、外语成绩从高到低录取。</p><p>3.若生源省份有明确的平行志愿投档规则,按其投档规则执行;兼报专业按照志愿优先的原则录取。</p><p><strong>三、新生复查</strong></p><p>新生入学后,学校按有关规定进行新生入学资格审查和录取资格复查,凡考试有舞弊行为或审查、复查不合格者,按有关规定予以处理。</p><p><strong>四、组织机构及监督</strong></p><p>1.郑州大学本科招生领导小组负责统筹协调和监督管理我校特殊类型招生工作。领导小组负责研究决定美术类专业招生工作中的重大事项。</p><p>2.美术类专业招生的全过程由学校纪检监察部门实施监督并主动接受社会各界监督。对违反规定的相关人员要严厉查处。凡通过弄虚作假等欺骗手段报考或录取的考生一经发现取消当年报考或录取资格入校后发现的取消其学籍毕业后发现的撤销其毕业证、学位证。学校纪委电话0371-67781935</p><p><strong>五、教育部和生源省份如出台新的文件规定,以新规定为准。</strong></p><p><strong>六、如收费标准调整,将按照河南省最新收费标准执行。</strong></p><p><strong>七、联系方式</strong></p><p>郑州大学招生办公室0371-67781182传真</p><p>美术学院咨询电话0371-67780960</p><p>郑州大学招生网http://ao.zzu.edu.cn/</p><p><a></a>电子信箱zdzb@zzu.edu.cn</p><p>郑州大学招生办公室地址:</p><p>郑州市高新区科学大道100号综合管理中心518A室</p><p class="vsbcontent_end">邮编450001</p>'
}
},
methods: {}
}
</script>
<template>
<view class="content">
<rich-text :nodes="content"></rich-text>
</view>
</template>
<style scoped lang="scss">
</style>

View File

@ -1,82 +0,0 @@
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,162 @@
<!--省控线-->
<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: #f5c4b8;">
<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?'lineOned':'lineTwod'">
<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: #f36646;
//color: #eae7ff;
font-weight: 600;
}
.tr .td {
width: 33.3%;
}
.left {
color: #f36646;
//color:#eae7ff;
border-radius: 5rpx;
margin: 10rpx 0;
}
.right {
//background-color: #f5c4b8;
background-color: #f9f9f9;
color: #41464e;
font-weight: 550;
margin: 10rpx 5rpx;
height: 90rpx;
line-height: 90rpx;
}
.lineOned{
background-color: #d68e7e;
}
.lineTwod{
background-color: #f5c4b8;
}
</style>

View File

@ -5,17 +5,22 @@ import ApiConstant from "@/common/ApiConstant";
import Request from '@/common/request' import Request from '@/common/request'
import {onMounted} from "vue"; import {onMounted} from "vue";
import StaticConstant from "@/common/StaticConstant"; import StaticConstant from "@/common/StaticConstant";
import View from "../../component/view/view.vue";
let request = new Request() let request = new Request()
const dataList = ref() const dataList = ref()
const userScoreInfo = ref()
const scoreUpdate = ref() const scoreUpdate = ref()
function getHistoryList() { function getHistoryList() {
let that = this let that = this
let scoreInfo = uni.getStorageSync('scoreInfo') let scoreInfo = uni.getStorageSync('scoreInfo')
userScoreInfo.value = scoreInfo
let data = { let data = {
professionalCategory: '美术与设计类', professionalCategory: '美术与设计类',
category: '文科' category: '文科'
} }
console.log(userScoreInfo.value)
if (scoreInfo && scoreInfo.professionalCategory) { if (scoreInfo && scoreInfo.professionalCategory) {
data.professionalCategory = scoreInfo.professionalCategory data.professionalCategory = scoreInfo.professionalCategory
} }
@ -54,57 +59,64 @@ onMounted(() => {
</script> </script>
<template> <template>
<view class="container" style="background-color: #ffffcb"> <view style="background-color: white">
<text class="uni-h6" v-if="scoreUpdate && scoreUpdate.scoreMax">2024艺考改革原专业满分{{scoreUpdate.oldScoreMax}}分调整为{{scoreUpdate.scoreMax}}</text> <view class="container" style="background-color: #ffffcb">
</view> <text class="uni-h6" v-if="scoreUpdate && scoreUpdate.scoreMax">2024艺考改革原专业满分{{scoreUpdate.oldScoreMax}}分调整为{{scoreUpdate.scoreMax}}</text>
<view class="content"> </view>
<view class="table"> <view class="container font-weight-600" style="" v-if="userScoreInfo"><!--font-family: 'Microsoft YaHei UI Light'-->
<view class="tr uni-flex" style="background-color: #e0e8ed"> <text class="margin-right-10" style="color: #f9765b">河南省</text>
<view class="th flex-item-1"> <text class="margin-right-10">{{userScoreInfo.professionalCategory}}</text>
<text>年份</text> <text>{{userScoreInfo.cognitioPolyclinic}}历年批次线</text>
</view>
<view class="" style="padding: 10rpx 30rpx">
<view v-for="(item,index) in dataList" :key="index">
<view class="flexWrap">
<view class="flex-item-10" style="text-align: center">
<text class="font-weight-600 font-size-medium2" :class="index===0?'':'old-color'" style="line-height: 80rpx">{{item.year}}</text>
</view>
</view> </view>
<view class="th flex-item-3"> <view class="flexWrap">
<text>批次</text> <view class="flex-item-10" style="margin-bottom: 50rpx">
</view> <view class="padding20" style="background-color: #f9f9fb;border-radius: 30rpx">
<view class="th flex-item-3"> <view class="tableHead flexWrap border-bottom" style="line-height: 50rpx;">
<text>专业线(/)</text> <view class="th flex-item-33">
</view> <text>批次</text>
<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>
<view class="flex-item-33 right-co"> <view class="th flex-item-33">
<text>{{ it.specialScore || '-' }}</text> <text v-if="userScoreInfo && userScoreInfo.professionalCategory ==='体育类'">
<text v-if="it.specialScoreXk">/{{ it.specialScoreXk || '-' }}</text> {{userScoreInfo.cognitioPolyclinic ==='文科'?'专业(文/理)':'专业(理/文)'}}
</text>
<text v-else>专业(/)</text>
</view> </view>
<view class="flex-item-33 right-co"> <view class="th flex-item-33">
<text>{{ it.culturalScore || '-' }}</text> <text v-if="userScoreInfo && userScoreInfo.professionalCategory ==='体育类'">
<text v-if="it.culturalScoreXk">/{{ it.culturalScoreXk || '-' }}</text> {{userScoreInfo.cognitioPolyclinic ==='文科'?'文化(文/理)':'文化(理/文)'}}
</text>
<text v-else>文化(/)</text>
</view>
</view>
<view class="tableData flexWrap font-weight-b margin-top-20">
<view class="tr flexWrap" v-for="(it,i) in dataList[index].list" :key="i" :class="index===0?'':'old-color'">
<view class="td">
<text>{{ it.batch || '-' }}</text>
</view>
<view class="td">
<text>{{ it.specialScore || '-' }}</text>
<text v-if="it.specialScoreXk">/{{ it.specialScoreXk || '-' }}</text>
</view>
<view class="td">
<text>{{ it.culturalScore || '-' }}</text>
<text v-if="it.culturalScoreXk">/{{ it.culturalScoreXk || '-' }}</text>
</view>
</view> </view>
</view> </view>
</view> </view>
</view> </view>
</view> </view>
</view> </view>
</view> </view>
</view> </view>
</template> </template>
<style scoped lang="scss"> <style scoped lang="scss">
@ -114,6 +126,34 @@ onMounted(() => {
font-weight: 550; font-weight: 550;
} }
.th{
text-align: center;
}
.tableHead{
color: #666478;
font-size: 25rpx;
}
.tableData{
//height: 300rpx;
.tr{
text-align: center;
font-size: 26rpx;
width: 100%;
height: 100rpx;
.td{
width: 33.3%;
line-height: 100rpx;
}
}
}
.old-color{
color: #666478;
}
.content { .content {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
@ -121,28 +161,16 @@ onMounted(() => {
background-color: white; 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 { .left {
color: #3b96a6; color: #f36646;
//color:#eae7ff;
border-radius: 5rpx; border-radius: 5rpx;
margin: 10rpx 0; margin: 10rpx 0;
} }
.right { .right {
//background-color: #f5c4b8;
background-color: #f9f9f9; background-color: #f9f9f9;
color: #41464e; color: #41464e;
font-weight: 550; font-weight: 550;
@ -150,4 +178,10 @@ onMounted(() => {
height: 90rpx; height: 90rpx;
line-height: 90rpx; line-height: 90rpx;
} }
.lineOned{
background-color: #d68e7e;
}
.lineTwod{
background-color: #f5c4b8;
}
</style> </style>

View File

@ -3,181 +3,582 @@ import StaticConstant from "@/common/StaticConstant";
import ImagesConstant from "@/common/ImagesConstant"; import ImagesConstant from "@/common/ImagesConstant";
import ApiConstant from "@/common/ApiConstant"; import ApiConstant from "@/common/ApiConstant";
import Request from "@/common/request"; import Request from "@/common/request";
import JumpTool from "@/common/js/jumpTool";
import jumpTool from "@/common/js/jumpTool";
let request = new Request() let request = new Request()
export default { export default {
name: "home", name: "home",
components: {}, components: {},
computed: { computed: {
jumpTool() {
return jumpTool
},
StaticConstant() { StaticConstant() {
return StaticConstant return StaticConstant
} }
}, },
data() { data() {
return { return {
scoreInfo: { userStatus: false,
province: '河南',// scoreInfo: null,
cognitioPolyclinic: '',//
professionalCategory: '',//
culturalScore: '',//
professionalScore: '',//
},
zyNum: null,// zyNum: null,//
defaultIcon: ImagesConstant.defaultIcon,// defaultIcon: ImagesConstant.defaultIcon,//
tjlb: { fillVolunteer: {
all: null,//
kcj: null,// kcj: null,//
jwt: null,// jwt: null,//
kbd: null// kbd: null//
}, },
options: StaticConstant.HomeOptions, options: StaticConstant.HomeOptions,
statusList: [{status: 'noMore'}, {status: 'noMore'},],
statusTypes: StaticConstant.loadStatusTypes,
contentText: StaticConstant.loadContentText,
admissionsRegulationsList: [],//
//tab
scrollLeft: 0,
topFlag: false,
//{id: 1, name: '', list: [], current: 1, pageSie: 5},
tabs: [{id: 2, name: '高考动态', current: 1, pageSie: 5, list: []}, {
id: 3,
name: '校内资讯', current: 1, pageSie: 5,
list: []
}],
currentTab: 0,
} }
}, },
onShow() { onShow() {
let score = uni.getStorageSync('scoreInfo') //
let fillVolunteer = uni.getStorageSync('fillVolunteer') let userInfo = uni.getStorageSync('userInfo')
if (score !== undefined && score !== null) { if (userInfo) {
this.scoreInfo = score this.userStatus = true
if (!fillVolunteer || !fillVolunteer.all) { //
this.getRecommendMajorCount() this.scoreInfo = uni.getStorageSync('scoreInfo')
fillVolunteer = uni.getStorageSync('fillVolunteer') //
this.fillVolunteer = uni.getStorageSync('fillVolunteer')
if (!this.fillVolunteer || this.fillVolunteer === '' || !this.scoreInfo || this.scoreInfo === '') {
this.getUserScore()
} }
} }
},
if (fillVolunteer) { onLoad() {
this.zyNum = fillVolunteer.all this.getAdmissionsRegulationsList()
this.tjlb.kcj = fillVolunteer.kcj },
this.tjlb.jwt = fillVolunteer.jwt onReachBottom() {
this.tjlb.kbd = fillVolunteer.kbd this.loadMore()
},
onPageScroll(e) { //
//600//600
this.topFlag = e.scrollTop > 600;
},
onShareAppMessage() {
return {
title: StaticConstant.systemName, //
path: "/pages/zyb/home"
}
},
//
onShareTimeline(res) {
return {
title: StaticConstant.systemName, //
path: "/pages/zyb/home"
} }
}, },
methods: { methods: {
goto(url) {
uni.navigateTo({
url: url
})
},
/*点击 操作菜单*/ /*点击 操作菜单*/
optionItemChange(e) { optionItemChange(e) {
console.log('1111')
if (this.options && this.options[e.detail.index].url) { if (this.options && this.options[e.detail.index].url) {
this.goto(this.options[e.detail.index].url) if (this.options[e.detail.index].title !== '艺考考研' && this.options[e.detail.index].title !== '招生章程') {
if (this.checkUserScore()) {
JumpTool.goto(this.options[e.detail.index].url)
}
} else {
JumpTool.goto(this.options[e.detail.index].url)
}
} }
}, },
getRecommendMajorCount() { /*判断用户是否登录*/
request.get(ApiConstant.Major.recommendMajorCount, {}).then(res => { checkUserStatus() {
if (!this.userStatus) {
JumpTool.goLogin()
return false
}
},
/*判断用户的分数信息*/
checkUserScore() {
//
this.checkUserStatus()
if (!this.scoreInfo) {
JumpTool.openScoreEdit()
return false
} else {
return true
}
},
onClickEditUserScore() {
JumpTool.openScoreEdit()
},
/*点击AI一键填报*/
onClickAi() {
if (this.checkUserScore()) {
JumpTool.goto('/pages/zyb/fillVolunteer/aiAuto')
}
},
/*点击模拟填报*/
onClickMn() {
if (this.checkUserScore()) {
//JumpTool.goto('/pages/zyb/fillVolunteer/index')
JumpTool.goto('/pages/zyb/fillVolunteer/mockList')
}
},
/*获取用户的分数信息*/
getUserScore() {
request.get(ApiConstant.Score.getScore, {}).then(res => {
if (res.success) { if (res.success) {
let result = res.result if (res.result) {
// //
let fillVolunteer = { if (res.result.scoreInfo) {
all: result.allNumber, uni.setStorageSync('scoreInfo', res.result.scoreInfo)
kcj: result.kcj, this.scoreInfo = res.result.scoreInfo
jwt: result.jwt, }
nlq: result.nan, //
kbd: result.kbd if (res.result.fillVolunteer) {
uni.setStorageSync('fillVolunteer', res.result.fillVolunteer)
this.fillVolunteer = res.result.fillVolunteer
}
if (res.result.volunteer) {
uni.setStorageSync('volunteer', res.result.volunteer)
this.volunteer = res.result.volunteer
}
} }
uni.setStorageSync('fillVolunteer', fillVolunteer) } else {
//
} }
}).catch(err => { }).catch(err => {
}).finally(() => { }).finally(() => {
}); });
}, },
/*招生章程*/
getAdmissionsRegulationsList() {
this.setStatus('loading')
let params = {
type: this.tabs[this.currentTab].id,
pageNum: this.tabs[this.currentTab].current,
pageSize: 5
}
request.get(ApiConstant.Article.articlePage, params).then(res => {
console.log(res)
if (res.success) {
this.tabs[this.currentTab].current = res.result.current
this.tabs[this.currentTab].pages = res.result.pages
//
this.tabs[this.currentTab].list = [...this.tabs[this.currentTab].list, ...res.result.records]
if (res.result.current >= res.result.pages) {
this.setStatus('noMore')
} else {
this.setStatus('more')
}
} else {
}
}).catch(err => {
}).finally(() => {
});
},
setStatus(status) {
this.statusList[this.currentTab].status = status
},
loadMore() {
if (this.statusList[this.currentTab].status === 'noMore') {
return;
}
console.log('加载中')
this.tabs[this.currentTab].current++;
this.getAdmissionsRegulationsList()
},
/*回到顶部*/
clickTop() {
uni.pageScrollTo({
scrollTop: 0,
duration: 300
});
},
swichMenu(id) {
this.currentTab = id
this.title = ''
this.tabs[this.currentTab].current = 1
this.tabs[this.currentTab].list = []
this.getAdmissionsRegulationsList()
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)
}
},
} }
} }
</script> </script>
<template> <template>
<!-- 头部--> <view class="body">
<view class="header" style="background: linear-gradient(to left, rgba(52,145,212,0.83), #3658d0);height: 600rpx"> <!--顶部搜素框-->
<!--顶部地区及年份--> <view class="header">
<view class="uni-flex uni-row" style="-webkit-justify-content: space-between;justify-content: space-between;"> <view class="flexWrap systemNameLine">
<view class="white margin30">{{ scoreInfo.province }}</view> <text class="font-size-big font-weight-b margin-left-50">{{ StaticConstant.systemName }}</text>
<view class="white margin30">{{ StaticConstant.year }}年填报</view> <text style="position: absolute;left: 350rpx;top:50rpx">河南艺体考生专属VIP</text>
</view>
<!--推荐专业数量-->
<div class="tuijian">
<view class="uni-flex uni-row">
<view class="dxshn" v-if="zyNum">
<p class="tnumber">{{ zyNum }}</p>
<p class="ttitle">专业适合你</p>
</view>
<view class="dxshn" v-else>
<p class="tnumber">{{ StaticConstant.systemName }}</p>
</view>
</view> </view>
<view class="uni-padding-wrap uni-common-mt topNumberDiv"> <!-- <view class="flexWrap search">
<!--冲刺推荐稳妥推进保底推荐--> <view>
<view class="uni-flex uni-row"> <image src="/static/icons/search.png" class="icon32 margin-right-10"/>
<view class="flex-item t_item"> <text class="bab9c4">找大学</text>
<p class="tnumber" v-if="tjlb.kcj!==undefined">{{ tjlb.kcj}}</p> </view>
<p class="tnumber" v-else>??</p> </view>-->
<p class="ttitle">可冲击</p> </view>
</view> <!--分数面板-->
<view class="flex-item t_item"> <view class="my-score-pane">
<p class="tnumber" v-if="tjlb.jwt!==undefined">{{ tjlb.jwt}}</p> <view class="scoreLine flexWrap">
<p class="tnumber" v-else>??</p> <view v-if="!userStatus || !scoreInfo" @click="checkUserScore"
<p class="ttitle">较稳妥</p> class="flex-item-10 font-size-mini2 black4 font-weight-500">
</view> <view class="flexWrap" style="text-align: center">
<view class="flex-item t_item"> <view class="flex-item-10" style="text-align: center">
<p class="tnumber" v-if="tjlb.kbd!==undefined">{{ tjlb.kbd}}</p> <!-- <image src="/static/icons/avatar.png" class="icon50" style="position: relative;right: 10rpx"/>-->
<p class="tnumber" v-else>??</p> <text class="margin-right-10">请添加考生信息</text>
<p class="ttitle">可保底</p> </view>
</view> </view>
</view> </view>
<view v-else class="flex-item-10 font-size-mini2 black4 font-weight-500">
<!--我的成绩--> <view class="flexWrap">
<view class="uni-flex uni-row marginTopBot30 wdcj"> <view class="flex-item-7">
<view class="flex-item-10 fontsize25" style="text-align: center" v-if="scoreInfo && scoreInfo.province"> <text class="margin-right-10">{{ scoreInfo && scoreInfo.province }}
<text class="marginright10">我的成绩文化:{{ scoreInfo.culturalScore }}</text> <text class="font-weight-none">·</text>
<text class="marginright10">专业:{{ scoreInfo.professionalScore }}</text> {{ scoreInfo && scoreInfo.cognitioPolyclinic === '文科' ? '文' : '理' }}
<text class="marginright10">{{ scoreInfo.cognitioPolyclinic }}</text> </text>
<text class="marginright10">{{ scoreInfo.professionalCategory }}</text> <text class="margin-right-10">{{ scoreInfo && scoreInfo.professionalCategory }}</text>
</view>
<view class="flex-item-3">
<text class="float-right font-weight-none mediumSlateBlue" @click="onClickEditUserScore">修改成绩</text>
</view>
</view> </view>
<view class="flex-item-10 fontsize25" style="text-align: center" v-else> <view class="flexWrap">
<text class="marginright10">完善信息查看完整推荐</text> <view class="flex-item-10">
</view> <text class="margin-right-10">文化</text>
</view> <text class="scoreNum black3 margin-right-10">{{ scoreInfo && scoreInfo.culturalScore }}</text>
<view class="flex mntb blue" style="background-color: white;font-size: 36rpx;border-radius: 50rpx;"> <text class="margin-right-10" v-if="scoreInfo && scoreInfo.professionalCategory!=='表演类'">
<view class="flex-item-5" @click="goto('/pages/zyb/fillVolunteer/aiAuto')" {{ scoreInfo.professionalCategory === '音乐类' ? '主项' : '统考' }}
style="padding:0 28rpx 0 36rpx;line-height: 2.5;text-align: left"> </text>
<text>一键智能填报</text> <text class="scoreNum black3 margin-right-10"
</view> v-if="scoreInfo && scoreInfo.professionalCategory!=='表演类'">
<view class="flex-item-5"> {{ scoreInfo && scoreInfo.professionalScore }}
<view style="padding: 0 28rpx;line-height: 2.5; </text>
z-index: 10;text-align: center;border-radius: 50rpx;background: linear-gradient(rgba(52,145,212,0.83), #3658d0);"> <br v-if="scoreInfo && scoreInfo.professionalCategory!=='表演类'"/>
<text @click="goto('/pages/zyb/fillVolunteer/index')" <!--音乐类-->
style="color:white;">模拟填报 <text class="margin-right-10" v-if="scoreInfo && scoreInfo.yybysy">音表声乐</text>
<text class="scoreNum black3 margin-right-10" v-if="scoreInfo && scoreInfo.yybysy">
{{ scoreInfo && scoreInfo.yybysy }}
</text>
<text class="margin-right-10" v-if="scoreInfo && scoreInfo.yybyqy">音表器乐</text>
<text class="scoreNum black3 margin-right-10" v-if="scoreInfo && scoreInfo.yybyqy">
{{ scoreInfo && scoreInfo.yybyqy }}
</text>
<text class="margin-right-10" v-if="scoreInfo && scoreInfo.yyjy">音乐教育</text>
<text class="scoreNum black3 margin-right-10" v-if="scoreInfo && scoreInfo.yyjy">
{{ scoreInfo && scoreInfo.yyjy }}
</text>
<!--表演类-->
<text class="margin-right-10" v-if="scoreInfo && scoreInfo.fzby">服装表演</text>
<text class="scoreNum black3 margin-right-10" v-if="scoreInfo && scoreInfo.fzby">
{{ scoreInfo && scoreInfo.fzby }}
</text>
<text class="margin-right-10" v-if="scoreInfo && scoreInfo.xjysdy">影视导演</text>
<text class="scoreNum black3 margin-right-10" v-if="scoreInfo && scoreInfo.xjysdy">
{{ scoreInfo && scoreInfo.xjysdy }}
</text>
<text class="margin-right-10" v-if="scoreInfo && scoreInfo.xjysby">影视表演</text>
<text class="scoreNum black3 margin-right-10" v-if="scoreInfo && scoreInfo.xjysby">
{{ scoreInfo && scoreInfo.xjysby }}
</text> </text>
</view> </view>
</view> </view>
</view> </view>
</view> </view>
</div>
</view> <!--圆圈-->
<!--内容部分--> <view class="circle1">
<view class="body"> <view class="circle2">
<!--操作菜单--> <view v-if="!userStatus || !scoreInfo" class="textView" @click="checkUserScore">
<view class="options"> <view class="border-bottom" style="width: 200rpx;margin: 0 auto">
<uni-grid :column="4" :highlight="true" :show-border="false" @change="optionItemChange"> <text class="d3d3d3 font-weight-550 font-size-big " style="line-height: 70rpx">输入分数</text>
<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> </view>
<text class="text">{{ item.title }}</text> <br/>
<text class="slateGray font-size-medium">查看可报院校</text>
</view> </view>
</uni-grid-item> <view v-else class="textView" @click="onClickMn">
</uni-grid> <view class="" style="width: 250rpx;margin: 0 auto">
<text class="font-weight-550 font-size-medium2" style="line-height: 70rpx">
{{ fillVolunteer.allNumber }}
<text class="font-size-medium"></text>
</text>
</view>
<br/>
<text class="slateGray font-size-medium">查看可报院校</text>
</view>
</view>
</view>
<!--推荐数量-->
<view class="tuijianshuliang">
<!--数量行-->
<view class="numLine black3">
<!--<text class="font-weight-b redBlack font-size-mini4">·</text><text class="margin-right-10">难录取</text><text class="scoreNum black3 margin-right-10">125</text>-->
<view class="flexWrap" style="text-align: center" @click="onClickMn">
<view class="flex-item-33">
<text class="font-weight-b redOrange font-size-mini4">·</text>
<text class="margin-right-10">冲刺</text>
<text class="scoreNum black3 margin-right-10">{{ userStatus && fillVolunteer.kcj || '--' }}</text>
</view>
<view class="flex-item-33">
<text class="font-weight-b royalBlue font-size-mini4">·</text>
<text class="margin-right-10">稳妥</text>
<text class="scoreNum black3 margin-right-10">{{ userStatus && fillVolunteer.jwt || '--' }}</text>
</view>
<view class="flex-item-33">
<text class="font-weight-b lightGreen font-size-mini4">·</text>
<text class="margin-right-10">保底</text>
<text class="scoreNum black3 margin-right-10">{{ userStatus && fillVolunteer.kbd || '--' }}</text>
</view>
</view>
</view>
</view>
<!--登录按钮-->
<view class="loginBtnView" v-if="!userStatus">
<view class="loginBtn font-size-mini5 font-weight-b" @click="checkUserStatus">登录/注册</view>
</view>
<!--模拟填报按钮-->
<view class="mnBtnView" v-else>
<view class="flexWrap" style="-webkit-justify-content: space-between;justify-content: space-between;">
<view class="flex-item-42 ai radius15" @click="onClickAi">
<text class="flexWrap font-weight-b font-size-mini4">AI一键填报</text>
<text class="flexWrap font-weight-b font-size-mini">推荐适合大学</text>
</view>
<view class="flex-item-42 mn radius15" @click="onClickMn">
<text class="flexWrap font-weight-b font-size-mini4">模拟填报</text>
<text class="flexWrap font-size-mini">找找适合的大学</text>
</view>
</view>
</view>
</view>
<!--菜单栏-->
<view class="optionsView">
<view class="options">
<uni-grid style="margin-bottom: 100rpx" :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="item.width?'left: 8rpx;top:10rpx;width:'+item.width+';height:'+item.width:'height: 128rpx;width: 128rpx;left: 20rpx;top:20rpx'"/>
<text class="text">{{ item.title }}</text>
</view>
</uni-grid-item>
</uni-grid>
</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="" style="transition: 3s all" :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="messageList" v-for="(item,index) in this.tabs[this.currentTab].list" :key="index"
v-if="this.tabs[this.currentTab]">
<view class="messageItem" @click="jumpTool.goArticleDetail(item)"
:class="index ===admissionsRegulationsList.length-1?'':'border-bottom'">
<text class="flexWrap">{{ item.title }}</text>
<view class="flexWrap margin-top-10">
<text class="minit margin-right-20" v-if="item.releaseTime">{{ item.releaseTime }}</text>
<!-- <text class="minit">阅读量{{ item.viewCount || '0' }}</text>-->
</view>
</view>
</view>
<view class="container" @click="loadMore">
<uni-load-more :status="statusList[currentTab].status" :content-text="contentText"/>
</view>
</view>
<view class="top" :style="{'display':(topFlag===true? 'block':'none')}">
<uni-icons class="topc" type="arrowthinup" size="40" @click="clickTop"></uni-icons>
</view> </view>
</view> </view>
</template> </template>
<style scoped lang="scss"> <style scoped lang="scss">
.body {
//background-color: #dcdaf7;
//background-color: white;
padding: 0 30rpx;
//background-color: #d1d2d3;
//background-image: url('/static/home_background.png');
/*background: repeating-linear-gradient(#FACA2E,#D56F18);
background: -ms-repeating-linear-gradient(#FACA2E,#D56F18);
background: -webkit-repeating-linear-gradient(#FACA2E,#D56F18);
background: -moz-repeating-linear-gradient(#FACA2E,#D56F18);*/
background: repeating-linear-gradient(#dcdaf7, #f7f7f7, #e6e4e4);
background: -ms-repeating-linear-gradient(#dcdaf7, #f7f7f7, #e6e4e4);
background: -webkit-repeating-linear-gradient(#dcdaf7, #f7f7f7, #e6e4e4);
background: -moz-repeating-linear-gradient(#dcdaf7, #f7f7f7, #e6e4e4);
overflow: hidden;
overflow-y: scroll;
margin-top: 25rpx;
}
.uni-common-mt { .uni-common-mt {
margin: 0; margin: 0;
} }
/*搜素框 start*/
.search {
margin: 10rpx 0;
padding: 15rpx 30rpx;
border: 1rpx solid #666666;
background-color: white;
border-radius: 35rpx;
}
/*搜素框 end*/
/*分数信息面板 start*/
.my-score-pane {
padding: 30rpx 20rpx;
margin: 20rpx 0;
background-color: white;
border-radius: 20rpx;
//border-radius: 40rpx 0 0 40rpx;
//background: linear-gradient(to right,#e3e2ff,#fdfdfe);
min-height: 400rpx;
//
.scoreLine {
margin-bottom: 30rpx;
//height: 80rpx;
//padding: 15rpx 30rpx;
padding: 30rpx 20rpx 30rpx 30rpx;
border-radius: 20rpx;
background: linear-gradient(to right, #d6d0fb, #fdfdfe);
}
//
.circle1 {
background-color: #fef1ec;
height: 500rpx;
width: 500rpx;
border-radius: 50%;
text-align: center;
//line-height: 300rpx;
margin: 0 auto;
.circle2 {
background-color: white;
height: 350rpx;
width: 350rpx;
border-radius: 50%;
text-align: center;
//line-height: 200rpx;
position: relative;
left: 80rpx;
top: 80rpx;
//top:125rpx;
//left:125rpx;
.textView {
position: relative;
top: 80rpx;
line-height: 50rpx;
//width: 160rpx;
}
}
}
.tuijianshuliang {
border: 1rpx solid #e1d2fd;
padding: 20rpx 10rpx;
font-size: 25rpx;
line-height: 30rpx;
margin: -100rpx 60rpx;
border-radius: 22rpx;
position: relative;
bottom: 100rpx;
background-color: white;
.numLine {
text-align: center;
}
}
//
.mnBtnView {
background-color: white;
position: relative;
padding: 50rpx 0 10rpx 0;
color: white;
}
.mnBtnView .ai {
background-color: #f95a3a;
padding: 20rpx;
}
.mnBtnView .mn {
background-color: #5d5efc;
padding: 20rpx;
}
//
.loginBtnView {
background-color: white;
position: relative;
padding: 50rpx 150rpx;
text-align: center;
}
.loginBtnView .loginBtn {
background-color: #f96543;
color: white;
line-height: 70rpx;
border-radius: 25rpx;
}
}
//
.scoreNum {
font-weight: 550;
font-size: 30rpx;
}
/*分数信息面板 end*/
/*菜单栏 start*/
.optionsView {
background-color: white;
border-radius: 20rpx;
margin-bottom: 20rpx;
}
/*菜单栏 end*/
/*顶部的推荐院校数量模块*/ /*顶部的推荐院校数量模块*/
.topNumberDiv { .topNumberDiv {
.tnumber { .tnumber {
@ -195,68 +596,93 @@ export default {
} }
} }
/*============================文章列表 start*/
.flex { .messageList {
margin: 30rpx 0; color: #595757; //
} .messageItem {
padding: 30rpx;
.flex-item {
width: 33.3%;
height: 110rpx;
text-align: center;
}
.tuijian {
padding: 30rpx 70rpx;
}
/* 大学适合你 */
.dxshn {
height: 100rpx;
text-align: center;
margin: 5px auto;
.tnumber {
color: white;
margin: 10px auto;
height: 10px;
font-size: 22px;
font-weight: 500;
} }
.ttitle { .minit {
margin: 15px auto; font-size: 25rpx;
color: white; color: #929f9f;
font-size: 12px;
font-weight: 500;
} }
} }
/*我的成绩*/
.wdcj {
} .top-body {
//margin: 30rpx;
/*模拟填报按钮*/
.mntb {
}
.body {
padding: 30rpx; padding: 30rpx;
// background-color: white;
.options { border-radius: 20rpx 20rpx;
border-radius: 10rpx; //position: relative;
padding: 8rpx; //top: -150rpx;
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;
border-bottom: 1px solid #f5f5f5;
.menu-topic-view {
display: inline-block;
white-space: nowrap;
height: 86rpx;
position: relative; position: relative;
bottom: 60rpx; width: 50%;
min-height: 380rpx; text-align: center;
margin: 0 auto;
.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: #7568e9;
}
.menu-topic-act .menu-topic-bottom-color {
background: #7568e9;
}
} }
} }
/*=============================文章列表 end*/
/*右边距10rpx*/ /*右边距10rpx*/
.marginright10 { .marginright10 {
@ -339,4 +765,25 @@ export default {
/* #endif */ /* #endif */
/*宫格 end*/ /*宫格 end*/
/* 回到顶部 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> </style>

View File

@ -4,6 +4,9 @@
import ApiConstant from "@/common/ApiConstant"; import ApiConstant from "@/common/ApiConstant";
import Request from '@/common/request' import Request from '@/common/request'
import StaticConstant from "@/common/StaticConstant"; import StaticConstant from "@/common/StaticConstant";
import commonTool from "../../common/js/commonTool";
import {stringIsNotEmpty} from "../../common/util";
let request = new Request() let request = new Request()
export default { export default {
name: "home", name: "home",
@ -16,16 +19,95 @@ export default {
data() { data() {
return { return {
checkFlag: false, checkFlag: false,
isTick: true showType: 1,
formData: {
userName: '',
password: '',
password2:''
},
isTick: true,
showFlag:false
} }
}, },
onReady() { onReady() {
},
onShow(){
// #ifdef MP-TOUTIAO
this.dyLogin()
// #endif
// #ifdef MP-WEIXIN
this.showFlag =true
// #endif
}, },
methods: { methods: {
login(rrrr) { //线
otherSystemMessage(r){
if (r.result.loginState && r.result.loginState === 'more') {
uni.showToast({
title: '其他设备已下线,请稍等',
icon: 'none'
})
}
},
//
reloadHome(){
setTimeout(function () {
wx.reLaunch({
url: '/pages/zyb/home',
})
}, 500)
},
//
dyLogin(){
//
let that = this
uni.login({
provider: 'toutiao',
success: function(loginRes) {
console.log(loginRes);
request.post(ApiConstant.User.dyLogin, {
code: loginRes.code,
anonymousCode: loginRes.anonymousCode,
}).then(r => {
console.log('请求登录', r)
if (r.success) {
console.log(r)
that.otherSystemMessage(r)
//token
uni.setStorageSync('token', r.result.token)
//
if (r.result.userInfo) {
uni.setStorageSync('userInfo', r.result.userInfo)
}
//vip
commonTool.checkVipInfo(r.result.vipInfo)
//
that.reloadHome()
} else {
uni.showToast({
title: r.message,
icon: 'none'
})
}
}).catch(err => {
}).finally(() => {
});
}
});
},
getPhoneNumber(e) {
console.log(e.detail.errMsg);
console.log(e.detail.iv);
console.log(e.detail.encryptedData);
if (!this.checkFlag) {
uni.showToast({
title: '请阅读后同意《艺体志愿宝用户协议》',
icon: 'none'
})
return
}
var sessionKey = '' var sessionKey = ''
if (rrrr && rrrr.detail && rrrr.detail.code) { if (e && e.detail && e.detail.code) {
// //
uni.login({ uni.login({
success: (res) => { success: (res) => {
@ -34,19 +116,24 @@ export default {
let code = res.code let code = res.code
request.post(ApiConstant.User.wxLogin, { request.post(ApiConstant.User.wxLogin, {
code: code, code: code,
encryptedData: rrrr.detail.encryptedData, encryptedData: e.detail.encryptedData,
iv: rrrr.detail.iv iv: e.detail.iv
}).then(r => { }).then(r => {
console.log('请求登录', r) console.log('请求登录', r)
if (r.success) { if (r.success) {
console.log(r) console.log(r)
this.otherSystemMessage(r)
//token
uni.setStorageSync('token', r.result.token) uni.setStorageSync('token', r.result.token)
uni.setStorageSync('userInfo', r.result.userInfo) //
//uni.setStorageSync('scoreInfo',r.result.scoreInfo) if (r.result.userInfo) {
// uni.setStorageSync('userInfo', r.result.userInfo)
wx.reLaunch({ }
url: '/pages/zyb/home',
}) //vip
commonTool.checkVipInfo(r.result.vipInfo)
//
this.reloadHome()
} else { } else {
uni.showToast({ uni.showToast({
title: '微信授权登录失败', title: '微信授权登录失败',
@ -70,71 +157,119 @@ export default {
}) })
return return
} }
console.log(rrrr) console.log(e)
}, },
getPhoneNumber(r) { //
console.log('微信授权登录', r.detail) pwdLogin() {
if (r.detail.userInfo) { if (!stringIsNotEmpty(this.formData.userName)) {
uni.showToast({ uni.showToast({
title: '授权成功' title: '请输入用户名',
icon: 'none'
}) })
} else { return
// console.log('') }
if (!stringIsNotEmpty(this.formData.password)) {
uni.showToast({ uni.showToast({
title: '授权失败,请同意授权', title: '请输入密码',
icon: 'none' icon: 'none'
}) })
return return
} }
let encryptedData = r.detail.encryptedData request.post(ApiConstant.User.login, {
let iv = r.detail.iv username: this.formData.userName,
// code password: this.formData.password
uni.getUserProfile({ }).then(r => {
desc: 'Wexin', // if (r.success) {
success: res => { console.log(r)
console.log(res) this.otherSystemMessage(r)
}, //token
fail: err => { uni.setStorageSync('token', r.result.token)
console.log(err) //
} if (r.result.userInfo) {
}) uni.setStorageSync('userInfo', r.result.userInfo)
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
} }
//vip
commonTool.checkVipInfo(r.result.vipInfo)
//
this.reloadHome()
} else {
uni.showToast({
title: r.message,
icon: 'none'
})
} }
}).catch(err => {
}).finally(() => {
}); });
},
register(){
if (!stringIsNotEmpty(this.formData.userName)) {
uni.showToast({
title: '请输入手机号码',
icon: 'none'
})
return
}
let phoneNumberPattern = /^1[3-9]\d{9}$/;
let isValidPhoneNumber = phoneNumberPattern.test(this.formData.userName);
if (!isValidPhoneNumber) {
uni.showToast({
title: '手机号码格式不正确',
icon: 'none'
})
return
}
if (!stringIsNotEmpty(this.formData.password)) {
uni.showToast({
title: '请输入密码',
icon: 'none'
})
return
}
if (this.formData.password!==this.formData.password2) {
uni.showToast({
title: '两次密码不一致',
icon: 'none'
})
return
}
request.post(ApiConstant.User.register, {
username: this.formData.userName,
password: this.formData.password
}).then(r => {
if (r.success) {
console.log(r)
setTimeout(function () {
uni.showToast({
title: '注册成功',
icon: 'none'
})
}, 100)
//token
uni.setStorageSync('token', r.result.token)
//
if (r.result.userInfo) {
uni.setStorageSync('userInfo', r.result.userInfo)
}
//vip
commonTool.checkVipInfo(r.result.vipInfo)
//
this.reloadHome()
} else {
uni.showToast({
title: r.message,
icon: 'none'
})
}
}).catch(err => {
}).finally(() => {
});
},
//
showPwdInput() {
}, },
gotoMianze() { gotoMianze() {
uni.navigateTo({ uni.navigateTo({
@ -163,7 +298,7 @@ export default {
<template> <template>
<view class="header" style="border-top:3rpx solid #f6f6f6"></view> <view class="header" style="border-top:3rpx solid #f6f6f6"></view>
<view class="content"> <view class="content" v-if="showFlag">
<view class="textcenter"> <view class="textcenter">
<view class="flex"> <view class="flex">
<view class="title"> <view class="title">
@ -173,23 +308,103 @@ export default {
</view> </view>
</view> </view>
<view class="textcenter"> <view class="textcenter">
<text class="low-title">全国 <text class="low-title">
<text style="font-size: 35rpx">600</text> <!-- 全国<text style="font-size: 35rpx">600</text>+考生的选择-->
+考生的选择 艺术生 更轻松的报志愿
</text> </text>
</view> </view>
<button class='login-but' :disabled="!this.checkFlag" open-type="getPhoneNumber" @getphonenumber="login"> <view style="margin-top: 200rpx" v-if="showType===1">
手机号快捷登录 <button class='login-but' v-if="!checkFlag" @click="getPhoneNumber">
</button> /*#ifdef MP-TOUTIAO*/
抖音一键登录
/*#endif*/
/*#ifdef MP-WEIXIN*/
手机号快捷登录
/*#endif*/
</button>
/*#ifdef MP-TOUTIAO*/
<button class='login-but' v-if="checkFlag" @click="dyLogin">
抖音一键登录
</button>
/*#endif*/
/*#ifdef MP-WEIXIN*/
<button class='login-but' v-if="checkFlag" open-type="getPhoneNumber" @getphonenumber="getPhoneNumber">
手机号快捷登录
</button>
/*#endif*/
<button class='login-pwd-but margin-top-20' @click="showType=2">
账号密码登录
</button>
</view>
<view style="margin-top: 180rpx" class="uni-padding-wrap border-top" v-if="showType===2">
<view class="forms">
<view class="form-item">
<view class="form-item-view form-input">
<input class="uni-input" type="text"
v-model="formData.userName"
name="contactPersonPhone"
:placeholder="'请输入用户名或手机号'"/>
</view>
</view>
<view class="form-item">
<view class="form-item-view form-input">
<input class="uni-input" type="password" password="true"
v-model="formData.password"
name="password"
:placeholder="'请输入密码'"/>
</view>
</view>
<view class="form-item">
<button class='login-but margin-top-20' :disabled="!checkFlag" :class="checkFlag?'':'login-but-disabled'"
@click="pwdLogin">
登录
</button>
</view>
</view>
<view>
<text @click="showType=1" class="redOrange">快捷登录</text>
</view>
</view>
<!--注册-->
<view style="margin-top: 180rpx" class="uni-padding-wrap border-top" v-if="showType===3">
<view class="forms">
<view class="form-item">
<view class="form-item-view form-input">
<input class="uni-input" type="text"
v-model="formData.userName"
name="contactPersonPhone"
:placeholder="'请输入手机号'"/>
</view>
</view>
<view class="form-item">
<view class="form-item-view form-input">
<input class="uni-input" type="password" password="true"
v-model="formData.password"
name="password"
:placeholder="'请输入密码'"/>
</view>
</view>
<view class="form-item">
<view class="form-item-view form-input">
<input class="uni-input" type="password" password="true"
v-model="formData.password2"
name="password2"
:placeholder="'请再次输入密码'"/>
</view>
</view>
</view>
<view>
<text @click="showType=1" class="redOrange">快捷登录</text>
</view>
</view>
<view class="uni-flex flex" style="margin-top: 100rpx"> <view class="uni-flex flex" style="margin-top: 100rpx">
<checkbox-group @change="checkboxChange"> <checkbox-group @change="checkboxChange">
<label> <label>
<checkbox value="cb"/> <checkbox value="cb"/>
登录代表{{ StaticConstant.systemName }} 登录代表{{ StaticConstant.systemName }}
<text style="color: #4975fd" @click="gotoXieyi">艺体志愿宝用户协议</text>
<text style="color: #4975fd" @click="gotoMianze">免责声明</text> <text style="color: #4975fd" @click="gotoMianze">免责声明</text>
<text style="color: #4975fd" @click="gotoXieyi">用户协议</text>
并授权使用您的{{ StaticConstant.systemName }}账号信息如昵称头像以便您统一管理 并授权使用您的{{ StaticConstant.systemName }}账号信息如昵称头像以便您统一管理
</label> </label>
@ -205,6 +420,38 @@ export default {
padding: 30rpx; padding: 30rpx;
} }
.container {
height: 100%;
}
.uni-form-item .title {
padding: 20rpx 0;
}
/*表单 start*/
.form-item {
display: flex;
align-items: center;
margin: 30rpx 0;
}
.form-item-label {
width: 20%;
}
.form-item-view {
width: 100%;
min-height: 80rpx;
}
.form-input {
border: 1rpx solid #e6e6e6;
}
.uni-input {
border: none;
}
.textcenter { .textcenter {
text-align: center; text-align: center;
margin: 30rpx 0; margin: 30rpx 0;
@ -212,6 +459,7 @@ export default {
/*标题*/ /*标题*/
.title { .title {
font-family: "Bookshelf Symbol 7";
margin: 0 auto; margin: 0 auto;
//color:white; //color:white;
font-size: 90rpx; font-size: 90rpx;
@ -223,11 +471,27 @@ export default {
font-size: 40rpx; font-size: 40rpx;
} }
.login-pwd-but {
color: #222222;
width: 500rpx;
background: #eeeeee;
//background-color: ;
border-radius: 10rpx;
font-weight: 550;
}
/// ///
.login-but { .login-but {
color: white; color: white;
width: 500rpx; width: 500rpx;
background: linear-gradient(rgba(52, 145, 212, 0.83), #3658d0); //background: linear-gradient(rgba(52, 145, 212, 0.83), #3658d0);
border-radius: 50rpx background: linear-gradient(#f96543, #f96543);
//background-color: ;
border-radius: 10rpx;
font-weight: 550;
}
.login-but-disabled {
background: #eeeeee;
} }
</style> </style>

View File

@ -1,13 +1,20 @@
<script> <script>
import ApiConstant from "@/common/ApiConstant"; import ApiConstant from "@/common/ApiConstant";
import Request from '@/common/request' import Request from '@/common/request'
import StaticConstant from "@/common/StaticConstant";
import {stringIsNotEmpty} from "../../../common/util";
//import mrsongCharts from '@/uni_modules/mrsong-charts/components/mrsong-charts/mrsong-charts.vue';
let request = new Request() let request = new Request()
export default { export default {
components: {
// mrsongCharts
},
data() { data() {
return { return {
majorTypeName: '', majorTypeName: '',
majorInfo: {}, majorInfo: {},
vipInfo: {},
schoolName: '', schoolName: '',
tabs: [ tabs: [
{ {
@ -15,9 +22,6 @@ export default {
name: '基本信息' name: '基本信息'
}, { }, {
id: 2, id: 2,
name: '就业分析'
}, {
id: 3,
name: '开设院校' name: '开设院校'
} }
], ],
@ -26,34 +30,26 @@ export default {
old: { old: {
scrollTop: 0 scrollTop: 0
}, },
bpts: {
jobDistribution: StaticConstant.opts,//
},
chartData: {
sexRatio: {},//
jobDistribution: {},//
industryDistribution: {},//
regionDistribution: {},//
},
tabCurrent: '1', tabCurrent: '1',
schoolResult: { schoolResult: {
current: 1, current: 1,
size: 5, size: 8,
total: 0, total: 0,
pages: 0, pages: 0,
list: [] list: []
}, },
status: 'more', status: 'more',
statusTypes: [ statusTypes: StaticConstant.loadStatusTypes,
{ contentText: StaticConstant.loadContentText
value: 'more',
text: '加载前',
checked: true
}, {
value: 'loading',
text: '加载中',
checked: false
}, {
value: 'noMore',
text: '没有更多',
checked: false
}],
contentText: {
contentdown: '查看更多',
contentrefresh: '加载中',
contentnomore: '没有更多'
}
} }
}, },
onLoad(e) { onLoad(e) {
@ -65,13 +61,41 @@ export default {
if (e.majorTypeName) { if (e.majorTypeName) {
this.majorTypeName = e.majorTypeName this.majorTypeName = e.majorTypeName
} }
this.vipInfo = uni.getStorageSync('vipInfo')
},
onReachBottom() {
console.log("已经滚动到底部了")
if ((this.vipInfo && this.vipInfo.vipFlag) && this.currentTab === 1) {
this.loadMore()
}
}, },
methods: { methods: {
swichMenu(id) { swichMenu(id) {
let that = this
if (!this.vipInfo || !stringIsNotEmpty(this.vipInfo.vipLevel) || !this.vipInfo.vipFlag) {
uni.showModal({
title: 'VIP专享',
//
content: '该功能为增值内容,开通会员后即可免费查看!',
//
cancelText: "取消",
//
confirmText: "开通服务",
//
confirmColor: 'red',
//
cancelColor: '#dddddd',
success: function (res) {
if (res.confirm) {
//
that.goto('/pages/zyb/vip/index')
}
}
})
return
}
this.currentTab = id this.currentTab = id
console.log(id) console.log(id)
//this.tabCurrent = 'tabNum'+ id
// swiper
this.scrollLeft = 0; this.scrollLeft = 0;
for (let i = 0; i < id; i++) { for (let i = 0; i < id; i++) {
this.scrollLeft += 60 this.scrollLeft += 60
@ -87,38 +111,67 @@ export default {
console.log(r) console.log(r)
if (r.success) { if (r.success) {
this.majorInfo = r.result this.majorInfo = r.result
this.loadManData()
this.loadJobDistributionData()
this.loadIndustryDistributionData()
this.loadRegionDistributionData()
that.getSchoolList() that.getSchoolList()
} }
}).catch(err => { }).catch(err => {
}).finally(() => { }).finally(() => {
}); });
}, },
/*加载男女分布*/
loadManData() {
if (this.majorInfo.sexRatio) {
let sList = this.majorInfo.sexRatio.split('、')
let list = []
for (let i = 0; i < sList.length; i++) {
let r = sList[i].split('')
list.push({name: r[0].replace('\\', ''), value: parseFloat(r[1].replace('%', ''))})
}
console.log(list)
this.chartData.sexRatio = {series: [{data: list}]}
}
},
/*加载就业岗位分布*/ /*加载就业岗位分布*/
loadJobDistributionData() { loadJobDistributionData() {
if (this.majorInfo.jobDistribution) { if (this.majorInfo.jobDistribution) {
let jobDistributionSList = this.majorInfo.jobDistribution.split('、') let jobDistributionSList = this.majorInfo.jobDistribution.split('、')
let jobDistributionList = [] let jobDistributionList = []
let jobDistribution = null
console.log(jobDistributionSList)
jobDistributionSList.for(j => console.log(j))
for (let i = 0; i < jobDistributionSList.length; i++) { for (let i = 0; i < jobDistributionSList.length; i++) {
//jobDistribution = jobDistributionList[i].split('') let jobDistribution = jobDistributionSList[i].split('')
//jobDistributionList.push({name:jobDistribution[0],value:jobDistribution[1]}) jobDistributionList.push({
name: jobDistribution[0].replace('\\', ''),
value: parseFloat(jobDistribution[1].replace('%', ''))
})
} }
// this.chartData.jobDistribution = {series: [{data: jobDistributionList}]}
setTimeout(() => { }
// },
let res = { /*加载就业行业分布*/
series: [ loadIndustryDistributionData() {
{ if (this.majorInfo.industryDistribution) {
data: jobDistributionList let sList = this.majorInfo.industryDistribution.split('、')
} let list = []
] for (let i = 0; i < sList.length; i++) {
}; let r = sList[i].split('')
this.chartData.jobDistribution = JSON.parse(JSON.stringify(res)); list.push({name: r[0].replace('\\', ''), value: parseFloat(r[1].replace('%', ''))})
}, 500); }
this.chartData.industryDistribution = {series: [{data: list}]}
}
},
/*加载就业地区分布*/
loadRegionDistributionData() {
if (this.majorInfo.regionDistribution) {
let sList = this.majorInfo.regionDistribution.split('、')
let list = []
for (let i = 0; i < sList.length; i++) {
let r = sList[i].split('')
list.push({name: r[0].replace('\\', ''), value: parseFloat(r[1].replace('%', ''))})
}
this.chartData.regionDistribution = {series: [{data: list}]}
} }
}, },
getSchoolList() { getSchoolList() {
@ -129,7 +182,7 @@ export default {
schoolName: this.schoolName, schoolName: this.schoolName,
pageNum: this.schoolResult.current, pageNum: this.schoolResult.current,
pageSize: this.schoolResult.size pageSize: this.schoolResult.size
}).then(r => { },{showLoad:false}).then(r => {
console.log(r) console.log(r)
if (r.success) { if (r.success) {
that.schoolResult.current = r.result.current that.schoolResult.current = r.result.current
@ -239,68 +292,55 @@ export default {
<view class="jbxx" v-if="currentTab===0"> <view class="jbxx" v-if="currentTab===0">
<view class="example-body"> <view class="example-body">
<!--专业简介--> <!--专业简介-->
<view class="uni-box"> <uni-section title="专业简介" type="line">
<uni-title class="h3" type="h3" title="专业简介"></uni-title> <view class="uni-text" v-if="majorInfo.ssm">
</view> <mote-lines-divide :dt="majorInfo.ssm" :line="3" expandtext="展开" foldhint="收起"/>
<view class="uni-text" v-if="majorInfo.ssm"> </view>
<mote-lines-divide :dt="majorInfo.ssm" :line="3" expandtext="展开" foldhint="收起"/> <view class="uni-text" v-else>暂未收录...</view>
</view> </uni-section>
<view class="uni-text" v-else>暂未收录...</view>
<!--学什么--> <!--学什么-->
<view class="uni-box"> <uni-section title="学什么" type="line">
<uni-title class="h3" type="h3" title="学什么"></uni-title> <view class="uni-text" v-if="majorInfo.xsm">
</view> <mote-lines-divide :dt="majorInfo.xsm" :line="3" expandtext="展开" foldhint="收起"/>
<view class="uni-text" v-if="majorInfo.xsm"> </view>
<mote-lines-divide :dt="majorInfo.xsm" :line="3" expandtext="展开" foldhint="收起"/> <view class="uni-text" v-else>暂未收录...</view>
</view> </uni-section>
<view class="uni-text" v-else>暂未收录...</view>
<!--干什么--> <!--干什么-->
<view class="uni-box"> <uni-section title="干什么" type="line">
<uni-title class="h3" type="h3" title="干什么"></uni-title> <view class="uni-text" v-if="majorInfo.gsm">
</view> <mote-lines-divide :dt="majorInfo.gsm" :line="3" expandtext="展开" foldhint="收起"/>
<view class="uni-text" v-if="majorInfo.gsm"> </view>
<mote-lines-divide :dt="majorInfo.gsm" :line="3" expandtext="展开" foldhint="收起"/> <view class="uni-text" v-else>暂未收录...</view>
</view> </uni-section>
<view class="uni-text" v-else>暂未收录...</view>
<!--数据统计--> <!--数据统计-->
<view class="uni-box"> <uni-section title="男女比例" type="line" v-if="majorInfo.sexRatio">
<uni-title class="h3" type="h3" title="数据统计"></uni-title> <view class="charts-box padding20">
</view> <qiun-data-charts type="pie" :opts="chartData.jobDistribution"
<view class="uni-text" v-if="majorInfo.sexRatio"> :chartData="chartData.sexRatio"/>
<view class="">{{majorInfo.sexRatio}}</view> </view>
</view> </uni-section>
<uni-section title="就业岗位分布" type="line" v-if="majorInfo.jobDistribution">
</view> <view class="charts-box padding20">
</view> <!-- <mrsongCharts type='pie' title="" align='left' :charts-data="chartData.jobDistribution"/>-->
<!--就业分析--> <qiun-data-charts type="pie" :opts="chartData.jobDistribution" :chartData="chartData.jobDistribution"/>
<view class="jyfx" v-if="currentTab===1"> </view>
<view class="uni-box"> </uni-section>
<uni-title class="h3" type="h3" title="就业岗位分布"></uni-title> <uni-section title="就业行业分布" type="line" v-if="majorInfo.industryDistribution">
</view> <view class="charts-box padding20">
<view> <qiun-data-charts type="pie" :opts="chartData.jobDistribution"
<text class="uni-text"> :chartData="chartData.industryDistribution"/>
{{ majorInfo.jobDistribution || '暂未收录...' }} </view>
</text> </uni-section>
</view> <uni-section title="就业地区分布" type="line" v-if="majorInfo.regionDistribution">
<view class="uni-box"> <view class="charts-box padding20">
<uni-title class="h3" type="h3" title="就业行业分布"></uni-title> <qiun-data-charts type="pie" :opts="chartData.jobDistribution"
</view> :chartData="chartData.regionDistribution"/>
<view> </view>
<text class="uni-text"> </uni-section>
{{ 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> </view>
<!--开设院校--> <!--开设院校-->
<view class="ksyx" v-if="currentTab===2"> <view class="ksyx" v-if="currentTab===1">
<view style="display: flex;height: 100rpx;border-bottom: 1px solid #f5f5f5;"> <view style="display: flex;height: 100rpx;border-bottom: 1px solid #f5f5f5;">
<view style="width: 80%"> <view style="width: 80%">
<uni-search-bar class="uni-mt-10" radius="100" placeholder="请输入院校名称" v-model="schoolName" <uni-search-bar class="uni-mt-10" radius="100" placeholder="请输入院校名称" v-model="schoolName"
@ -414,7 +454,7 @@ export default {
white-space: nowrap; white-space: nowrap;
height: 86rpx; height: 86rpx;
position: relative; position: relative;
width: 33.3%; width: 50%;
text-align: center; text-align: center;
.menu-topic-text { .menu-topic-text {
@ -504,4 +544,41 @@ export default {
.school-item-end { .school-item-end {
border-bottom: none !important; border-bottom: none !important;
} }
.content {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
.logo {
height: 200rpx;
width: 200rpx;
margin-top: 200rpx;
margin-left: auto;
margin-right: auto;
margin-bottom: 50rpx;
}
.text-area {
display: flex;
justify-content: center;
}
.title {
font-size: 36rpx;
color: #8f8f94;
}
.chart-title {
padding: 0 10rpx;
}
.chart-unit {
display: flex;
justify-content: flex-end;
padding: 0 10rpx;
}
</style> </style>

View File

@ -41,6 +41,19 @@ export default {
onLoad() { onLoad() {
this.getMajorList() this.getMajorList()
}, },
onShareAppMessage(){
return {
title: '查专业', //
path: "/pages/zyb/major/list"
}
},
//
onShareTimeline(res) {
return {
title: '查专业', //
path: "/pages/zyb/major/list"
}
},
methods: { methods: {
openMajorDetail: function (e, majorTypeName) { openMajorDetail: function (e, majorTypeName) {
console.log(e) console.log(e)

View File

@ -1,6 +1,9 @@
<script> <script>
import StaticConstant from "@/common/StaticConstant"; import StaticConstant from "@/common/StaticConstant";
import ApiConstant from "@/common/ApiConstant";
import Request from '@/common/request'
let request = new Request()
export default { export default {
name: "npee-index", name: "npee-index",
components: {}, components: {},
@ -11,24 +14,77 @@ export default {
}, },
data() { data() {
return { return {
schoolList: [ topFlag: false,
{ schoolName: '',
schoolName: '首都师范大学', current: 1,
type: '专业学位', pageSize: 20,
majorName: '音乐教育' status: 'more',
}, contentText: StaticConstant.loadContentText,
{ dataList: []
schoolName: '首都师范大学',
type: '专业学位',
majorName: '美术教育'
},
{
schoolName: '首都体育学院',
type: '专业学位',
majorName: '运动训练'
}
]
} }
},
onPullDownRefresh() {
this.current = 1
this.getData();
},
onReachBottom() {
this.loadMore();
},
onLoad() {
this.getData();
},
onPageScroll(e) { //
//600//600
this.topFlag = e.scrollTop > 600;
},
methods: {
//
searchTitleClick() {
this.current = 1
this.dataList =[]
this.getData()
},
clearTitleInput() {
this.schoolName = ''
this.current = 1
this.dataList =[]
this.getData()
},
getData() {
request.get(ApiConstant.GraduateDegree.majorGroupAll, {
schoolName: this.schoolName,
pageNum: this.current,
pageSize: this.pageSize
}).then(r => {
console.log(r)
if (r.success) {
//
this.dataList = [...this.dataList, ...r.result.records]
if (r.result.current >= r.result.pages) {
this.status = 'noMore'
} else {
this.status = 'more'
}
}
}).catch(err => {
}).finally(() => {
});
},
loadMore() {
if (this.status === 'noMore') {
return;
}
console.log('加载中')
this.current++;
this.getData()
},
/*回到顶部*/
clickTop() {
uni.pageScrollTo({
scrollTop: 0,
duration: 300
});
},
} }
} }
</script> </script>
@ -40,10 +96,10 @@ export default {
<view style="display: flex;height: 100rpx;border-bottom: 1px solid #f5f5f5;"> <view style="display: flex;height: 100rpx;border-bottom: 1px solid #f5f5f5;">
<view style="width: 90%"> <view style="width: 90%">
<uni-search-bar class="uni-mt-10" radius="100" placeholder="请输入院校名称" v-model="schoolName" <uni-search-bar class="uni-mt-10" radius="100" placeholder="请输入院校名称" v-model="schoolName"
@clear="clearSchoolInput" cancelButton="none" @confirm="searchSchoolClick"/> @clear="clearTitleInput" cancelButton="none" @confirm="searchTitleClick"/>
</view> </view>
<view style="width: 10%;line-height: 100rpx"> <view style="width: 10%;line-height: 100rpx">
<text @click="searchSchoolClick">搜索</text> <text @click="searchTitleClick">搜索</text>
</view> </view>
</view> </view>
</view> </view>
@ -53,18 +109,21 @@ export default {
<view class="th">专业</view> <view class="th">专业</view>
</view> </view>
</view> </view>
<scroll-view scroll-y="true" class="schoolList"> <scroll-view scroll-y="true" class="schoolList" @scrolltolower="loadMore">
<view class="schoolItem border-bottom" v-for="(item,index) in schoolList" :key="index"> <view class="schoolItem border-bottom" v-for="(item,index) in dataList" :key="index">
<view class="td font-weight-550"> <view class="td font-weight-550">
{{ item.schoolName }} {{ item.schoolName }}
</view> </view>
<view class="td"> <view class="td">
{{ item.type }} {{ item.degreeNature }}
</view> </view>
<view class="td"> <view class="td">
{{ item.majorName }} {{ item.majorName }}
</view> </view>
</view> </view>
<view class="top" :style="{'display':(topFlag===true? 'block':'none')}">
<uni-icons class="topc" type="arrowthinup" size="40" @click="clickTop"></uni-icons>
</view>
</scroll-view> </scroll-view>
</view> </view>
@ -104,7 +163,8 @@ export default {
.schoolList .schoolItem { .schoolList .schoolItem {
display: flex; display: flex;
flex-direction: row; flex-direction: row;
line-height: 90rpx; padding: 30rpx 0;
//line-height: 90rpx;
} }
.schoolList .schoolItem .td { .schoolList .schoolItem .td {

View File

@ -0,0 +1,241 @@
<script>
import ApiConstant from "@/common/ApiConstant";
import Request from "@/common/request";
import JumpTool from "../../../common/js/jumpTool";
let request = new Request()
export default {
name: "schoolNepp",
data() {
return {
schoolId: '1759576199980183554',
icons: {
up: '/static/icons/glyph/icons-arrow-up-orange-90.png',
down: '/static/icons/glyph/icons-arrow-down-orange-90.png'
},
schoolName: '',
isBaoyan: false,
//
professionalMasterDegreeList: [],
//
academicMasterDegreeList: []
}
},
onLoad(e) {
if (e.schoolId) {
this.schoolId = e.schoolId
this.getSchoolGraduateDegree()
}
if(e.schoolName){
this.schoolName = e.schoolName
}
if(e.byzg && e.byzg ==='1'){
this.isBaoyan = true
}
},
onShow() {
},
methods: {
openZhuanShuoChildTr(index) {
this.professionalMasterDegreeList[index].status = !this.professionalMasterDegreeList[index].status
},
openXueShuoChildTr(index) {
this.academicMasterDegreeList[index].status = !this.academicMasterDegreeList[index].status
},
//
getSchoolGraduateDegree() {
request.get(ApiConstant.GraduateDegree.findSchoolGraduateDegreeList, {schoolId: this.schoolId}).then(res => {
if (res.success) {
let result = res.result
console.log(result)
this.academicMasterDegreeList = result.academicMasterDegreeList.map(a => {
a.status = false;
return a
})
this.professionalMasterDegreeList = result.professionalMasterDegreeList.map(a => {
a.status = false;
return a
})
//result.academicMasterDegreeList
//result.professionalMasterDegreeList
}
}).catch(err => {
}).finally(() => {
});
},
openDetail(e){
JumpTool.goto('./schoolNpeeDetail?id='+e)
},
}
}
</script>
<template>
<view class="head">
<view class="flexWrap" style="height: 50rpx;line-height: 50rpx">
<text class="schoolName font-size-medium">{{ schoolName }}</text>
<text class="baoyanzige font-size-mini4 margin-left-20" v-if="isBaoyan">有保研资格</text>
</view>
</view>
<view class="body">
<view class="cardTab">
<uni-section title="硕士专业学位授权点" titleFontSize="38rpx" type="line">
<view class="table">
<view class="thead border-bottom">
<view class="tr flexWrap">
<view class="th">学科类别</view>
<view class="th">专业</view>
</view>
</view>
<view class="tbody">
<!--一级-->
<view class="tr flexWrap" v-for="(item,index) in professionalMasterDegreeList" :key="index">
<view class="flex-item-10">
<view class="flexWrap">
<view class="flex-item-5">({{ item.subjectCode }}){{ item.disciplineField }}</view>
<view class="flex-item-5" @click="openZhuanShuoChildTr(index)">
<text>{{ item.majorName.replace('(专业学位)',"") }}</text>
<!-- <text>{{ item.disciplineField }}</text>-->
<image v-if="item.schoolGraduateDegreeList && item.schoolGraduateDegreeList.length>0"
:src="item.status!==undefined &&item.status?icons.up:icons.down" class="icon32"
style="float: right;position: relative;top: 20rpx"/>
</view>
</view>
<!--二级-->
<view v-if="item.status!==undefined &&item.status">
<view class="tr-child flexWrap" v-for="(child,chi) in item.schoolGraduateDegreeList" :key="chi">
<view class="flex-item-5"></view>
<view class="flex-item-5 flexWrap" style="line-height: 40rpx">
<view class="flex-item-7">{{ child.researchDirection }}</view>
<view class="flex-item-3 redOrange" @click="openDetail(child.id)">
<text class="float-right">详情</text>
</view>
</view>
</view>
</view>
</view>
</view>
</view>
</view>
</uni-section>
</view>
<view class="cardTab">
<uni-section title="硕士学术学位授权点" titleFontSize="38rpx" type="line">
<view class="table">
<view class="thead border-bottom">
<view class="tr flexWrap">
<view class="th">学科类别</view>
<view class="th">专业</view>
</view>
</view>
<view class="tbody">
<!--一级-->
<view class="tr flexWrap" v-for="(item,index) in academicMasterDegreeList" :key="index">
<view class="flex-item-10">
<view class="flexWrap">
<view class="flex-item-5">({{ item.subjectCode }}){{ item.disciplineField }}</view>
<view class="flex-item-5" @click="openXueShuoChildTr(index)">
<text>{{ item.majorName.replace('(专业学位)',"") }}</text>
<!-- <text>{{ item.disciplineField }}</text>-->
<image v-if="item.schoolGraduateDegreeList && item.schoolGraduateDegreeList.length>0"
:src="item.status!==undefined &&item.status?icons.up:icons.down" class="icon32"
style="float: right;position: relative;top: 20rpx"/>
</view>
</view>
<!--二级-->
<view v-if="item.status!==undefined &&item.status">
<view class="tr-child flexWrap" v-for="(child,chi) in item.schoolGraduateDegreeList" :key="chi">
<view class="flex-item-5"></view>
<view class="flex-item-5 flexWrap" style="line-height: 40rpx">
<view class="flex-item-7">{{ child.researchDirection }}</view>
<view class="flex-item-3 redOrange" @click="openDetail(child.id)">
<text class="float-right">详情</text>
</view>
</view>
</view>
</view>
</view>
</view>
</view>
</view>
</uni-section>
</view>
</view>
</template>
<style scoped lang="scss">
/*头部*/
.head {
padding: 30rpx 35rpx;
background-color: white;
/*学校名称*/
.schoolName {
color: #000000;
}
/*保研资格*/
.baoyanzige {
color: green;
}
.tags {
background-color: #efefef;
border-radius: 15rpx;
padding: 15rpx;
}
}
.body {
margin-top: 20rpx;
.cardTab {
margin: 20rpx 0;
min-height: 100rpx;
background-color: white;
}
//
.table {
padding: 0 30rpx;
//
.thead {
color: #8e8e8e;
.tr {
line-height: 80rpx;
font-size: 33rpx;
padding: 0 20rpx;
}
.tr .th {
width: 50%;
}
}
//
.tbody {
.tr {
font-size: 33rpx;
padding: 0 20rpx;
line-height: 80rpx;
}
.tr .td {
width: 50%;
}
}
}
}
/*二级表格*/
.tr-child {
margin: 20rpx 0;
font-size: 28rpx;
}
</style>

View File

@ -0,0 +1,144 @@
<script>
import ApiConstant from "@/common/ApiConstant";
import Request from "@/common/request";
let request = new Request()
export default {
name: "schoolNepp",
data() {
return {
id:'',
schoolId: '',
detail: {
schoolName: '',
disciplineField: '',//
majorName: '',//
majorNameLimit: '',
researchDirection: '',//
researchDirectionLimit:'',
departmentsAndFaculties: '',//
teacher: '',//
intendedEnrollment: '',//
schoolGraduateDegreeList: [],//
},
detailKeyList:{
schoolName:'招生单位',
departmentsAndFaculties:'院系所',
majorName:'专业',
researchDirection:'研究方向',
teacher:'指导老师',
intendedEnrollment:'拟招人数'
},
categoryList:{
politics:'政治',
foreignLanguage:'英语',
businessCourse1:'业务课一',
businessCourse2:'业务课二'
},
}
},
onLoad(e){
if (e.id) {
this.id = e.id
this.getSchoolGraduateDegreeDetail()
}
},
methods: {
getSchoolGraduateDegreeDetail(){
request.get(ApiConstant.GraduateDegree.getSchoolGraduateDegreeDetail, {id:this.id}).then(res => {
if (res.success) {
this.detail = res.result
console.log(res.result)
}
}).catch(err => {
}).finally(() => {
});
}
}
}
</script>
<template>
<view class="head">
<!--顶部三个部分-->
<view class="h3 padding20">
<view class="flexWrap black font-size-mini4 font-weight-b">
<view class="flex-item-26">
<text>{{ detail.disciplineField }}</text>
</view>
<view class="flex-item-4">
<text>{{ detail.majorNameLimit }}</text>
</view>
<view class="flex-item-33">
<text>{{ detail.researchDirectionLimit }}</text>
</view>
</view>
<view class="flexWrap darkGray font-size-mini margin-top-20">
<view class="flex-item-26">
<text>学科类别</text>
</view>
<view class="flex-item-4">
<text>专业</text>
</view>
<view class="flex-item-33">
<text>研究方向</text>
</view>
</view>
</view>
<view class="fistlist font-size-mini4">
<view class="flexWrap marginTopBot10" style="line-height: 80rpx;"
v-for="(key,index) in Object.keys(detailKeyList)" :class="index!==Object.keys(detailKeyList).length-1?'border-bottom':''" :key="index">
<view class="flex-item-2 darkGray">
<text class="float-right">{{detailKeyList[key]}}</text>
</view>
<view class="flex-item-7 margin-left-30">
<text>{{detail[key]||''}}</text>
</view>
</view>
</view>
</view>
<view class="body">
<view class="cardTab" v-for="(item,index) in detail.schoolGraduateDegreeList" :key="index">
<view class="title">考试范围</view>
<view class="flexWrap marginTopBot10" style="padding: 20rpx 0;" v-for="(k,iii) in Object.keys(categoryList)" :class="iii!==3?'border-bottom':''" :key="k">
<view class="flex-item-2 darkGray">
<text class="float-right">{{categoryList[k]}}:</text>
</view>
<view class="flex-item-7 margin-left-30">{{item[k]}}</view>
</view>
<!-- <view class="flexWrap marginTopBot10" style="height: 80rpx;line-height: 80rpx;" v-for="(k,i1) in Object.keys(categoryList)" :key="index+'_'+i1">
<view class="flex-item-2 darkGray">
</view>
<view class="flex-item-7 margin-left-30">
</view>
</view>-->
</view>
</view>
</template>
<style scoped lang="scss">
.body {
//padding: 20rpx 0;
.cardTab {
margin: 15rpx 0;
padding: 20rpx;
min-height: 100rpx;
background-color: white;
}
}
.head {
background-color: white;
padding: 20rpx 20rpx 10rpx 20rpx;
}
.h3 {
background-color: #eeeef0;
border-radius: 15rpx;
}
.title{
font-size: 40rpx;
}
</style>

146
pages/zyb/order/detail.vue Normal file
View File

@ -0,0 +1,146 @@
<script>
import StaticConstant from "@/common/StaticConstant";
import ApiConstant from "@/common/ApiConstant";
import Request from '@/common/request'
let request = new Request()
export default {
computed: {
ApiConstant() {
return ApiConstant
},
StaticConstant() {
return StaticConstant
}
},
data() {
return {
orderCode:'',
order:{}
}
},
onShow() {
},
onLoad(e) {
if (e.orderCode) {
this.orderCode = e.orderCode
this.getDetail()
}
},
methods: {
getDetail(){
request.get(ApiConstant.VIP.orderDetail, {orderCode: this.orderCode}).then(r => {
console.log(r)
if (r.success) {
this.order = r.result
}
}).catch(err => {
}).finally(() => {
});
},
getColorByStatus(status){
if (status === '1') {
return '#f96543';
}else if (status === '2') {
return '#85e689';
}else if (status === '5') {
return '#f2891b';
}else{
return '#bb0303';
}
},
getTextByStatus(status){
if (status === '1') {
return '待支付';
}else if (status === '2') {
return '已支付';
}else if (status === '5') {
return '已退款';
}else{
return '未知';
}
}
}
}
</script>
<template>
<view class="order-list border-top">
<view class="order-item">
<view class="flexWrap border-bottom" style="padding: 20rpx">
<view class="flex-item-2">订单号</view>
<view class="flex-item-6">
<text class="multiline-text">{{ order.orderCode }}</text>
</view>
<view class="flex-item-2 font-weight-b">
<text class="float-right" :style="'color:'+getColorByStatus(order.orderStatus)">{{ getTextByStatus(order.orderStatus) }}</text>
</view>
</view>
<view class="flexWrap" style="padding: 5rpx 0">
<view class="flex-item-2"></view>
<view class="flex-item-8 font-weight-b"><text>{{ order.skuName }}</text></view>
</view>
<view class="flexWrap" style="padding: 5rpx 0">
<view class="flex-item-2"></view>
<view class="flex-item-8"><text class="multiline-text">{{ order.skuDetail }}</text></view>
</view>
<view class="flexWrap" style="padding: 5rpx 0">
<view class="flex-item-2"></view>
<view class="flex-item-8">下单时间<text>{{ order.createTime }}</text></view>
</view>
<view class="flexWrap" style="padding: 5rpx 0" v-if="order.orderStatus && order.orderStatus==='2'">
<view class="flex-item-2"></view>
<view class="flex-item-8">付款时间<text>{{ order.paymentTime }}</text></view>
</view>
<view class="flexWrap" style="padding: 5rpx 0" v-if="order.refundTime">
<view class="flex-item-2"></view>
<view class="flex-item-8">退款时间<text>{{ order.refundTime }}</text></view>
</view>
<view class="flexWrap" style="padding: 5rpx 0">
<view class="flex-item-2"></view>
<view class="flex-item-8"><text class="redOrange2">{{ order.totalAmount }}</text></view>
</view>
</view>
</view>
</template>
<style scoped lang="scss">
.order-item {
background-color: #ffffff;
padding: 20rpx;
margin: 5px 0;
//border-bottom: 1px solid #eeeeee;
.order-id {
font-weight: bold;
color: #333;
}
.product-name {
color: #666;
}
.totalAmount {
color: #009688;
}
.status {
color: #ff9900;
}
&:last-child {
border-bottom: none; // Remove bottom border for the last item
}
}
.divider {
height: 1px;
background-color: #eeeeee;
}
.no-orders-text {
text-align: center;
margin-top: 20rpx;
color: #999;
}
</style>

175
pages/zyb/order/list.vue Normal file
View File

@ -0,0 +1,175 @@
<template>
<view class="order-list border-top">
<view v-if="orders.length > 0">
<view v-for="(order, index) in orders" :key="index">
<view class="order-item" @click="openDetail(order)">
<view class="flexWrap border-bottom" style="padding: 20rpx">
<view class="flex-item-2">订单号</view>
<view class="flex-item-6">
<text class="multiline-text">{{ order.orderCode }}</text>
</view>
<view class="flex-item-2 font-weight-b">
<text class="float-right" :style="'color:'+getColorByStatus(order.orderStatus)">{{ getTextByStatus(order.orderStatus) }}</text>
</view>
</view>
<view class="flexWrap" style="padding: 5rpx 0">
<view class="flex-item-2"></view>
<view class="flex-item-8 font-weight-b"><text>{{ order.skuName }}</text></view>
</view>
<view class="flexWrap" style="padding: 5rpx 0">
<view class="flex-item-2"></view>
<view class="flex-item-8"><text class="multiline-text">{{ order.skuDetail }}</text></view>
</view>
<view class="flexWrap" style="padding: 5rpx 0">
<view class="flex-item-2"></view>
<view class="flex-item-8">下单时间<text>{{ order.createTime }}</text></view>
</view>
<view class="flexWrap" style="padding: 5rpx 0" v-if="order.orderStatus && order.orderStatus==='2'">
<view class="flex-item-2"></view>
<view class="flex-item-8">付款时间<text>{{ order.paymentTime }}</text></view>
</view>
<view class="flexWrap" style="padding: 5rpx 0" v-if="order.refundTime">
<view class="flex-item-2"></view>
<view class="flex-item-8">退款时间<text>{{ order.refundTime }}</text></view>
</view>
<view class="flexWrap" style="padding: 5rpx 0">
<view class="flex-item-2"></view>
<view class="flex-item-8"><text class="redOrange2">{{ order.totalAmount }}</text></view>
</view>
</view>
<view class="divider" v-if="index !== orders.length - 1"></view>
</view>
</view>
<view v-else>
<text class="no-orders-text">暂无订单信息</text>
</view>
</view>
</template>
<script>
import StaticConstant from "@/common/StaticConstant";
import ApiConstant from "@/common/ApiConstant";
import Request from '@/common/request'
let request = new Request()
export default {
computed: {
ApiConstant() {
return ApiConstant
},
StaticConstant() {
return StaticConstant
}
},
data() {
return {
lo:true,
orders: []
};
},
onPullDownRefresh() {
this.current = 1
this.getOrderList();
},
/*onPageScroll(e) { //根据距离顶部距离是否显示回到顶部按钮
//600//600
this.topFlag = e.scrollTop > 600;
},*/
onLoad(){
this.getOrderList()
},
methods:{
loadMore(){
if (this.status === 'noMore') {
return;
}
console.log('加载中')
this.current++;
this.getOrderList()
},
openDetail(e){
uni.navigateTo({
url: '/pages/zyb/order/detail?orderCode='+e.orderCode
})
},
getOrderList(){
request.get(ApiConstant.VIP.orderList,{}).then(r => {
console.log(r)
if (r.success) {
//
this.orders = r.result
}
}).catch(err => {
}).finally(() => {
});
},
getColorByStatus(status){
if (status === '1') {
return '#f96543';
}else if (status === '2') {
return '#85e689';
}else if (status === '5') {
return '#f2891b';
}else{
return '#bb0303';
}
},
getTextByStatus(status){
if (status === '1') {
return '待支付';
}else if (status === '2') {
return '已支付';
}else if (status === '5') {
return '已退款';
}else{
return '未知';
}
}
}
};
</script>
<style lang="scss">
.order-list {
padding:0 20rpx;
}
.order-item {
background-color: #ffffff;
padding: 20rpx;
margin: 5px 0;
//border-bottom: 1px solid #eeeeee;
.order-id {
font-weight: bold;
color: #333;
}
.product-name {
color: #666;
}
.totalAmount {
color: #009688;
}
.status {
color: #ff9900;
}
&:last-child {
border-bottom: none; // Remove bottom border for the last item
}
}
.divider {
height: 1px;
background-color: #eeeeee;
}
.no-orders-text {
text-align: center;
margin-top: 20rpx;
color: #999;
}
</style>

View File

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

View File

@ -16,57 +16,17 @@ export default {
}, },
data() { data() {
return { return {
searchText: '',
list: [
{
title: '新疆艺术学院2024年本科招生简章',
url: ''
},
{
title: '新疆艺术学院2024年本科招生简章招生简章招生简章招生简章招生简章',
url: ''
}
]
} }
}, },
methods: { methods: {
clearSearchInput() {
},
searchClick() {
}
} }
} }
</script> </script>
<template> <template>
<view class="header"> <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>
<view class="body"> <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> </view>
</template> </template>

View File

@ -5,6 +5,8 @@
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 JumpTool from "@/common/js/jumpTool";
import {stringIsNotEmpty} from "../../../common/util";
let request = new Request() let request = new Request()
export default { export default {
@ -18,38 +20,29 @@ export default {
data() { data() {
return { return {
show:true, show:true,
vipInfo:{},
scoreInfo:{},
// //
provinceArray: StaticConstant.provinceList, provinceArray: StaticConstant.provinceList,
provinceIndex: 0, provinceIndex: 0,
// //
professionalCategoryArray: StaticConstant.professionalCategoryList.filter((item)=>{ professionalCategoryArray: StaticConstant.professionalCategoryList,
return item.value !=='体育类'
}),
professionalCategoryIndex: 0, professionalCategoryIndex: 0,
// //
categoryArray: StaticConstant.categoryList, categoryArray: StaticConstant.categoryList,
categoryIndex: 0, categoryIndex: 0,
// //
batchArray: StaticConstant.batchAllList, batchArray: [{label: '本科批', value: '本科'}, {label: '高职高专批', value: '高职高专'}],
batchIndex: 0, batchIndex: 0,
culturalScore: '',// culturalScore: '',//
professionalScore: '',// professionalScore: '',//
list:[ list:[]
{
rulesEnrollProbability:'文过专排',
probabilityOperator:'专业分',
score:1,
schoolNum:11
},
{
rulesEnrollProbability:'文3专7',
probabilityOperator:'文化分*0.04+专业分+0.233',
score:1,
schoolNum:5
}
]
} }
}, },
onLoad(){
this.vipInfo = uni.getStorageSync('vipInfo')
this.scoreInfo = uni.getStorageSync('scoreInfo')
},
methods: { methods: {
bindProvinceArrayPickerChange(e) { bindProvinceArrayPickerChange(e) {
this.provinceIndex = e.detail.value this.provinceIndex = e.detail.value
@ -59,6 +52,7 @@ export default {
}, },
bindProfessionalCategoryArrayPickerChange(e) { bindProfessionalCategoryArrayPickerChange(e) {
this.professionalCategoryIndex = e.detail.value this.professionalCategoryIndex = e.detail.value
this.batchIndex = 0
}, },
bindBatchArrayPickerChange(e) { bindBatchArrayPickerChange(e) {
this.batchIndex = e.detail.value this.batchIndex = e.detail.value
@ -78,6 +72,30 @@ export default {
}) })
}, },
clickCalculate(){ clickCalculate(){
if (!this.vipInfo || !stringIsNotEmpty(this.vipInfo.vipLevel) || this.vipInfo.vipLevel<1) {
uni.showModal({
title: 'VIP专享',
//
content: '该功能为增值内容,开通会员后即可免费查看!',
//
cancelText: "取消",
//
confirmText: "开通服务",
//
confirmColor: 'red',
//
cancelColor: '#dddddd',
success: function (res) {
if (res.confirm) {
//JumpTool.openVip()
uni.navigateTo({
url: '/pages/zyb/vip/index'
})
}
}
})
return
}
if (!this.culturalScore) { if (!this.culturalScore) {
uni.showToast({ uni.showToast({
title: '请输入文化分', title: '请输入文化分',
@ -98,8 +116,9 @@ export default {
province:this.provinceArray[this.provinceIndex].label, province:this.provinceArray[this.provinceIndex].label,
culturalScore: this.culturalScore,// culturalScore: this.culturalScore,//
professionalScore: this.professionalScore,// professionalScore: this.professionalScore,//
category:this.categoryArray[this.categoryIndex].name, category:this.scoreInfo.cognitioPolyclinic,//this.categoryArray[this.categoryIndex].name
professionalCategory:this.professionalCategoryArray[this.professionalCategoryIndex].label, professionalCategory:this.scoreInfo.professionalCategory,
// this.professionalCategoryArray[this.professionalCategoryIndex].label
batch:this.batchArray[this.batchIndex].value batch:this.batchArray[this.batchIndex].value
}).then(r => { }).then(r => {
console.log(r) console.log(r)
@ -111,6 +130,15 @@ export default {
}).finally(() => { }).finally(() => {
}); });
} }
},
//
openMockList(e){
let url = '/pages/zyb/fillVolunteer/mockList'
// >0
if(e.schoolNum && e.schoolNum>0){
url+='?rulesEnrollProbability='+e.rulesEnrollProbability
}
JumpTool.goto(url);
} }
} }
} }
@ -125,33 +153,43 @@ export default {
</view> </view>
<view v-if="show"> <view v-if="show">
<!--分数--> <!--分数-->
<view class="flex flex" style="margin-top: 100rpx"> <view class="flex flex" style="margin-top: 50rpx">
<view class="flex-item-4"> <view class="flex-item-4">
<view class="fbox"> <view class="fbox">
<view class="flex" style="width: 50%"> <!-- <view class="flex" style="width: 50%">
<view class="ftitle">文化分</view> <view class="ftitle">文化分</view>
</view>-->
<view class="flex white font-size-medium color3">
<text style="margin: 0 auto">
文化分
</text>
</view> </view>
<view class="flex" style="padding: 30rpx;font-size: 35rpx"> <view class="flex" style="padding: 30rpx;font-size: 35rpx;">
<input type="number" style="text-align: center;" v-model="culturalScore" @input='inputCulturalScoreClick' <input type="number" style="text-align: center;height: 50rpx" v-model="culturalScore" @input='inputCulturalScoreClick'
placeholder="输入分数"/> placeholder="输入分数"/>
</view> </view>
<view class="flex flex"> <!-- <view class="flex flex">
<view class="right-text"></view> <view class="right-text"></view>
</view> </view>-->
</view> </view>
</view> </view>
<view class="flex-item-4 margin-right"> <view class="flex-item-4 margin-right">
<view class="fbox"> <view class="fbox">
<view class="flex" style="width: 50%"> <!-- <view class="flex" style="text-align: center">
<view class="ftitle-orange">专业分</view> <view class="ftitle-orange">专业分</view>
</view>-->
<view class="flex white font-size-medium color2">
<text style="margin: 0 auto">
专业分
</text>
</view> </view>
<view class="flex" style="padding: 30rpx;font-size: 35rpx"> <view class="flex" style="padding: 30rpx;font-size: 35rpx">
<input type="number" style="text-align: center;" v-model="professionalScore" <input type="number" style="text-align: center;height: 50rpx" v-model="professionalScore"
@input='inputProfessionalScoreClick' placeholder="输入分数"/> @input='inputProfessionalScoreClick' placeholder="输入分数"/>
</view> </view>
<view class="flex flex"> <!-- <view class="flex flex">
<view class="right-text-orange"></view> <view class="right-text-orange"></view>
</view> </view>-->
</view> </view>
</view> </view>
</view> </view>
@ -160,7 +198,7 @@ export default {
<!--省份--> <!--省份-->
<view class="flex flex option-item"> <view class="flex flex option-item">
<view class="flex-item-3"> <view class="flex-item-3">
<view class="left-t">省份<label></label></view> <view class="left-t color3">省份<label></label></view>
</view> </view>
<view class="flex-item-7 ml10"> <view class="flex-item-7 ml10">
<picker @change="bindProvinceArrayPickerChange" :value="provinceIndex" :range="provinceArray" <picker @change="bindProvinceArrayPickerChange" :value="provinceIndex" :range="provinceArray"
@ -172,31 +210,33 @@ export default {
<!--文理--> <!--文理-->
<view class="flex flex option-item"> <view class="flex flex option-item">
<view class="flex-item-3"> <view class="flex-item-3">
<view class="left-t">文理<label></label></view> <view class="left-t color3">文理<label></label></view>
</view> </view>
<view class="flex-item-7 ml10"> <view class="flex-item-7 ml10">
<picker @change="bindCategoryArrayPickerChange" :value="categoryIndex" :range="categoryArray" <view class="right-input">{{this.scoreInfo.cognitioPolyclinic}}</view>
<!-- <picker @change="bindCategoryArrayPickerChange" :value="categoryIndex" :range="categoryArray"
range-key='name'> range-key='name'>
<view class="right-input">{{ categoryArray[categoryIndex].name }}</view> <view class="right-input">{{ categoryArray[categoryIndex].name }}</view>
</picker> </picker>-->
</view> </view>
</view> </view>
<!--统考类别--> <!--统考类别-->
<view class="flex flex option-item"> <view class="flex flex option-item">
<view class="flex-item-3"> <view class="flex-item-3">
<view class="left-t">统考类别<label></label></view> <view class="left-t color3">统考类别<label></label></view>
</view> </view>
<view class="flex-item-7 ml10"> <view class="flex-item-7 ml10">
<picker @change="bindProfessionalCategoryArrayPickerChange" :value="professionalCategoryIndex" <view class="right-input">{{this.scoreInfo.professionalCategory}}</view>
<!-- <picker @change="bindProfessionalCategoryArrayPickerChange" :value="professionalCategoryIndex"
:range="professionalCategoryArray" range-key='label'> :range="professionalCategoryArray" range-key='label'>
<view class="right-input">{{ professionalCategoryArray[professionalCategoryIndex].label }}</view> <view class="right-input">{{ professionalCategoryArray[professionalCategoryIndex].label }}</view>
</picker> </picker>-->
</view> </view>
</view> </view>
<!--批次--> <!--批次-->
<view class="flex flex option-item"> <view class="flex flex option-item">
<view class="flex-item-3"> <view class="flex-item-3">
<view class="left-t">批次<label></label></view> <view class="left-t color3">批次<label></label></view>
</view> </view>
<view class="flex-item-7 ml10"> <view class="flex-item-7 ml10">
<picker @change="bindBatchArrayPickerChange" :value="batchIndex" :range="batchArray" range-key='label'> <picker @change="bindBatchArrayPickerChange" :value="batchIndex" :range="batchArray" range-key='label'>
@ -211,7 +251,7 @@ export default {
<!--省份--> <!--省份-->
<view class="flex flex option-item"> <view class="flex flex option-item">
<view class="flex-item-3"> <view class="flex-item-3">
<view class="left-t">省份<label></label></view> <view class="left-t color3">省份<label></label></view>
</view> </view>
<view class="flex-item-7 ml10"> <view class="flex-item-7 ml10">
<view class="right-input">{{ provinceArray[provinceIndex].label }}</view> <view class="right-input">{{ provinceArray[provinceIndex].label }}</view>
@ -220,16 +260,16 @@ export default {
<!--批次--> <!--批次-->
<view class="flex flex option-item"> <view class="flex flex option-item">
<view class="flex-item-3"> <view class="flex-item-3">
<view class="left-t">统考类别<label></label></view> <view class="left-t color3">统考类别<label></label></view>
</view> </view>
<view class="flex-item-7 ml10"> <view class="flex-item-7 ml10">
<view class="right-input">{{ professionalCategoryArray[professionalCategoryIndex].label }}</view> <view class="right-input">{{ scoreInfo.professionalCategory }}</view>
</view> </view>
</view> </view>
<!--批次--> <!--批次-->
<view class="flex flex option-item"> <view class="flex flex option-item">
<view class="flex-item-3"> <view class="flex-item-3">
<view class="left-t">批次<label></label></view> <view class="left-t color3">批次<label></label></view>
</view> </view>
<view class="flex-item-7 ml10"> <view class="flex-item-7 ml10">
<view class="right-input">{{ batchArray[batchIndex].label }}</view> <view class="right-input">{{ batchArray[batchIndex].label }}</view>
@ -238,7 +278,7 @@ export default {
<!--文化成绩专业成绩--> <!--文化成绩专业成绩-->
<view class="flex flex option-item"> <view class="flex flex option-item">
<view class="flex-item-3"> <view class="flex-item-3">
<view class="left-t width1">文化成绩<label></label></view> <view class="left-t color3 width1">文化成绩<label></label></view>
</view> </view>
<view class="flex-item-2 ml10"> <view class="flex-item-2 ml10">
<view class="right-input">{{ culturalScore }}</view> <view class="right-input">{{ culturalScore }}</view>
@ -246,7 +286,7 @@ export default {
</view> </view>
<view class="flex flex option-item"> <view class="flex flex option-item">
<view class="flex-item-3"> <view class="flex-item-3">
<view class="left-t width1">专业成绩<label></label></view> <view class="left-t color3 width1">专业成绩<label></label></view>
</view> </view>
<view class="flex-item-2 ml10"> <view class="flex-item-2 ml10">
<view class="right-input">{{ professionalScore }}</view> <view class="right-input">{{ professionalScore }}</view>
@ -254,7 +294,7 @@ export default {
</view> </view>
<view class="flex flex option-item"> <view class="flex flex option-item">
<view class="flex-item-10"> <view class="flex-item-10">
<view class="left-t align-left">本批次所有院校录取规则为<label></label></view> <view class="left-t color3 align-left">本批次所有院校录取规则为<label></label></view>
</view> </view>
</view> </view>
</view> </view>
@ -271,15 +311,15 @@ export default {
<text class="text" style="font-size: 23rpx">{{item.probabilityOperator}}</text> <text class="text" style="font-size: 23rpx">{{item.probabilityOperator}}</text>
<view class="zhf"> <view class="zhf">
<text v-if="item.score">{{item.score}}</text> <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 @click="openMockList(item)" style="border: 1rpx solid #399ee8;border-radius: 10rpx;width: 160rpx;padding: 5rpx 8rpx">查看院校{{item.schoolNum}}</view>
</view> </view>
</view> </view>
</view> </view>
</view> </view>
<view class="bottom"> <view class="bottom" style="position: relative;top: 100rpx">
<view style="margin: 0 auto"> <view style="margin: 0 auto">
<view class="" @click="clickCalculate" <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"> style="background-color:#f2876a;color:white;font-size: 40rpx;width: 200rpx;height: 200rpx;border-radius: 50%;text-align: center;line-height: 200rpx">
<text>{{show?'计算':'重置'}}</text> <text>{{show?'计算':'重置'}}</text>
</view> </view>
</view> </view>
@ -292,14 +332,26 @@ export default {
.body { .body {
background: white; background: white;
height: 100%; height: 100%;
//min-height: 1000rpx;
padding: 0 15%; padding: 0 15%;
} }
.color2{
// background-color: #f78668;
background-color: #6b58fa;
}
.color3{
// background-color: #399ee8;
background-color: #f35b3d;
}
/*标题*/ /*标题*/
.title { .title {
padding-top: 50rpx; padding-top: 20rpx;
color: #399ee8; //color: #399ee8;
font-size: 60rpx; color: #8ebfe2;
font-size: 70rpx;
font-weight: 600; font-weight: 600;
} }
@ -309,7 +361,6 @@ export default {
box-shadow: 0 0 10rpx 5rpx #aaa; box-shadow: 0 0 10rpx 5rpx #aaa;
.ftitle { .ftitle {
background-color: #399ee8;
color: white; color: white;
border-radius: 10rpx; border-radius: 10rpx;
font-size: 28rpx; font-size: 28rpx;
@ -325,8 +376,8 @@ export default {
color: white; color: white;
border-radius: 10rpx; border-radius: 10rpx;
font-size: 28rpx; font-size: 28rpx;
margin: 0 auto; //margin: 0 auto;
text-align: center; /*text-align: center;*/
height: 40rpx; height: 40rpx;
line-height: 40rpx; line-height: 40rpx;
} }
@ -353,13 +404,14 @@ export default {
margin-top: 100rpx; margin-top: 100rpx;
.left-t { .left-t {
background-color: #399ee8; //background-color: #399ee8;
//background-color: #8162fa;
color: white; color: white;
height: 50rpx; height: 40rpx;
line-height: 50rpx; line-height: 40rpx;
border-radius: 10rpx; border-radius: 10rpx;
padding: 5rpx 10rpx; padding: 5rpx 10rpx;
font-size: 33rpx; font-size: 28rpx;
text-align: justify; text-align: justify;
label { label {
display: inline-block; display: inline-block;
@ -372,9 +424,9 @@ export default {
.right-input { .right-input {
padding: 5rpx 10rpx; padding: 5rpx 10rpx;
height: 50rpx; height: 40rpx;
line-height: 50rpx; line-height: 40rpx;
font-size: 35rpx; font-size: 28rpx;
} }
.option-item { .option-item {
@ -394,7 +446,7 @@ export default {
} }
.datalist{ .datalist{
height: 700rpx; height: 500rpx;
overflow:scroll; overflow:scroll;
text-align: center; text-align: center;
.th{ .th{

View File

@ -111,9 +111,9 @@ export default {
</view> </view>
<view class="b2"> <view class="b2">
<!--输入分数--> <!--输入分数-->
<view style="display: flex;padding: 30rpx 60rpx"> <view style="display: flex;padding: 0 60rpx">
<view style="width: 100%"> <view style="width: 100%">
<input style="font-size: 35rpx;text-align:center" v-model="score" placeholder="请输入分数"/> <input style="font-size: 50rpx;height: 60rpx;text-align:center" v-model="score" placeholder="请输入分数"/>
</view> </view>
</view> </view>
<!--切换成绩--> <!--切换成绩-->
@ -178,7 +178,7 @@ export default {
</view> </view>
</view> </view>
<view class="" v-else-if="item.type === 2"> <view class="" v-else-if="item.type === 2">
<view style="display: flex">您的分数已低于{{item.year}}公布的最低分最低分为{{item.beginScore}}排名为{{item.rank}}</view> <view style="display: flex">您的分数已低于{{item.year}}公布的最低分{{item.beginScore}}<!--排名为{{item.rank}}--></view>
</view> </view>
</view> </view>
</view> </view>

View File

@ -4,9 +4,15 @@
<script> <script>
import Request from '@/common/request' import Request from '@/common/request'
import StaticConstant from "@/common/StaticConstant"; import StaticConstant from "@/common/StaticConstant";
import JumpTool from "../../../common/js/jumpTool";
let request = new Request() let request = new Request()
export default { export default {
computed: {
JumpTool() {
return JumpTool
}
},
data() { data() {
return { return {
accordionVal:0, accordionVal:0,
@ -43,7 +49,7 @@ export default {
}, },
methods:{ methods:{
change(e) { change(e) {
console.log(e); //console.log(e);
} }
} }
} }
@ -58,6 +64,10 @@ export default {
</view> </view>
</uni-collapse-item> </uni-collapse-item>
</uni-collapse> </uni-collapse>
<view class="marginTopBot20">
<button @click="JumpTool.openFeedback">问题反馈</button>
</view>
</view> </view>
</template> </template>

View File

@ -0,0 +1,230 @@
<script>
import StaticConstant from "@/common/StaticConstant";
import ApiConstant from "@/common/ApiConstant";
import Request from '@/common/request'
import {arrayIsNotEmpty, stringIsNotEmpty} from "@/common/util";
let request = new Request()
export default {
name: "feedback",
computed: {
StaticConstant() {
return StaticConstant
}
},
data() {
return {
contentHeight: 600,
typeVisible: false,//
typeIndex: 0,
feedback: {
type: '1',
content: '',
contactPerson:'',
contactPersonPhone:'',
},
typeArray: [
{label: '使用疑问', value: '1'},
{label: '功能故障', value: '2'},
{label: '数据错误', value: '3'},
{label: '注销账号', value: '4'},
{label: '投诉', value: '5'},
{label: '提建议', value: '6'},
]
}
},
onShow() {
},
methods: {
bindPickerFeedbackChange(e) {
console.log(e)
this.typeIndex = e.detail.value
},
formSubmit(){
if (!this.feedback.content || this.feedback.content ==='') {
uni.showToast({title: '请输入问题描述', icon: "none"});
return
}
let data = {
type:this.typeArray[this.typeIndex].value,
content:this.feedback.content,
contactPerson:this.feedback.contactPerson,
contactPersonPhone:this.feedback.contactPersonPhone,
}
request.post(ApiConstant.System.feedbackSave, data).then(r => {
console.log(r)
if (r.success) {
setTimeout(function () {
uni.showToast({title: '反馈成功', icon: "none"});
}, 300)
setTimeout(function () {
//
uni.navigateBack({
delta: 1 // 1
});
}, 1000)
}else{
setTimeout(function () {
uni.showToast({title: r.message, icon: "none"});
}, 500)
}
}).catch(err => {
}).finally(() => {
});
},
close(){
},
open(){
}
}
}
</script>
<template>
<view class="container" style="background-color: #ffffff">
<view class="uni-padding-wrap" style="text-align: center">
<view class="font-size-medium font-weight-b">
问题反馈
</view>
</view>
<!--表单-->
<view class="uni-padding-wrap uni-common-mt border-top">
<view class="forms">
<view class="form-item">
<view class="form-item-label">问题类型</view>
<view class="form-item-view form-input">
<picker @change="bindPickerFeedbackChange" :value="typeIndex" :range="typeArray"
range-key="label">
<view class="uni-input">{{ typeArray[typeIndex].label }}</view>
</picker>
</view>
</view>
<view class="form-item">
<view class="form-item-label">问题描述</view>
<view class="form-item-view form-input">
<uni-easyinput type="textarea" v-model="feedback.content" placeholder="请输入问题描述"/>
</view>
</view>
<view class="form-item">
<view class="form-item-label">联系人</view>
<view class="form-item-view form-input">
<input class="uni-input" type="number"
v-model="feedback.contactPerson"
name="contactPersonPhone"
:placeholder="'请输入联系人'"/>
</view>
</view>
<view class="form-item">
<view class="form-item-label">联系电话</view>
<view class="form-item-view form-input">
<input class="uni-input" type="number"
v-model="feedback.contactPersonPhone"
name="contactPersonPhone"
:placeholder="'请输入联系电话'"/>
</view>
</view>
</view>
<text class="darkGray font-size-mini">联系我们{{StaticConstant.email}}</text>
</view>
<view class="submitButtonView button-active" @click="formSubmit">
<text class="font-weight-b">提交问题</text>
</view>
</view>
</template>
<style scoped lang="scss">
.container {
height: 100%;
}
.uni-form-item .title {
padding: 20rpx 0;
}
/*表单 start*/
.form-item {
display: flex;
align-items: center;
margin: 30rpx 0;
}
.form-item-label {
width: 20%;
}
.form-item-view {
width: 80%;
min-height: 80rpx;
}
.form-input {
border: 1rpx solid #e6e6e6;
}
//
.kelei-item {
background-color: #f7f7f7;
color: black;
padding: 20rpx 30rpx;
margin-right: 30rpx;
}
.kelei-item-active {
background-color: #feede1;
color: #f96712;
}
.submitButtonView {
margin: 30rpx;
text-align: center;
border-radius: 15rpx;
line-height: 80rpx;
}
.button-disabled {
color: white;
background-color: #d8d8d8;
}
.button-active {
color: white;
background: linear-gradient(#f79459, #f96622);
}
/*表单 end*/
.uni-picker-tips {
font-size: 12px;
color: #666;
margin-bottom: 15px;
padding: 0 15px;
}
/*底部抽屉 报考方向内容 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>

View File

@ -25,13 +25,14 @@ export default {
}, },
onLoad() { onLoad() {
// //
this.stepData.reverse() /*this.stepData.reverse()*/
}, },
} }
</script> </script>
<template> <template>
<cc-defineStep :colors="colors" :stepData="stepData"></cc-defineStep> <image src="https://mp-7a4eecb1-2a04-4d36-b050-1c4a78cc31a4.cdn.bspapp.com/images/oneByOne.png" style="width: 100%;height: 500%"/>
<!-- <cc-defineStep :colors="colors" :stepData="stepData"></cc-defineStep>-->
</template> </template>
<style scoped lang="scss"> <style scoped lang="scss">

View File

@ -127,7 +127,7 @@ export default {
<view class="text-group"> <view class="text-group">
<text class="text-l uni-flex flex bold">关于成绩修改次数</text> <text class="text-l uni-flex flex bold">关于成绩修改次数</text>
<text class="text-l uni-flex flex"> <text class="text-l uni-flex flex">
高考放榜前非VIP用户可以修改2次VIP用户放榜前每日可修改5 高考放榜前非VIP用户可以修改5次VIP用户放榜前每日可修改10
<text class="bold">高考结束后VIP用户可以修改1次</text> <text class="bold">高考结束后VIP用户可以修改1次</text>
</text> </text>
</view> </view>

View File

@ -7,10 +7,10 @@ export default {
<template> <template>
<view class="body"> <view class="body">
<text class="text-l uni-flex flex">适用范围:艺术类文理科(历史组/物理组)考生(自主招生暂不适用)</text> <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">使用期限:自购买起截止到2024-08-31日有效</text>
<text class="text-l uni-flex flex">分数修改次数:每届服务期内高考分数放榜前可修改5放榜后只可修改1次</text> <text class="text-l uni-flex flex">分数修改次数:每届服务期内高考分数放榜前可修改10放榜后只可修改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>
<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 File

@ -91,9 +91,6 @@ export default {
<view class="image1"> <view class="image1">
<image src="http://files.yitisheng.vip/images/zsjz2.png" style="height: 200rpx;width:100%"/> <image src="http://files.yitisheng.vip/images/zsjz2.png" style="height: 200rpx;width:100%"/>
</view> </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">
<view class="list-item" :class="index===list.length-1?'list-item-end':''" v-for="(item,index) in list" :key="index"> <view class="list-item" :class="index===list.length-1?'list-item-end':''" v-for="(item,index) in list" :key="index">

290
pages/zyb/qrcodeLogin.vue Normal file
View File

@ -0,0 +1,290 @@
<!--登录页面-->
<script>
import ApiConstant from "@/common/ApiConstant";
import Request from '@/common/request'
import StaticConstant from "@/common/StaticConstant";
import commonTool from "@/common/js/commonTool";
import CommonTool from "@/common/js/commonTool";
let request = new Request()
export default {
name: "home",
components: {},
computed: {
CommonTool() {
return CommonTool
},
StaticConstant() {
return StaticConstant
}
},
data() {
return {
showType: 0,
uuid:'',
showFlag: false
}
},
onReady() {
},
onLoad: function (options) {
if(options.scene){
console.log('scene')
this.uuid = decodeURIComponent(options.scene)
console.log(options.scene)
console.log(this.uuid)
this.getQrCodeStatus()
}
},
onShow() {
this.showFlag = true
},
methods: {
//
reloadHome() {
setTimeout(function () {
wx.reLaunch({
url: '/pages/zyb/home',
})
}, 500)
},
getPhoneNumber(e) {
if(!this.uuid){
return
}
if (e && e.detail && e.detail.code) {
//
uni.login({
success: (res) => {
console.log('获取code', res)
if (res.code) {
let code = res.code
request.post(ApiConstant.User.wxLogin, {
uuid:this.uuid,
code: code,
encryptedData: e.detail.encryptedData,
iv: e.detail.iv
}).then(r => {
console.log('请求登录', r)
if (r.success) {
console.log(r)
//token
uni.setStorageSync('token', r.result.token)
//
if (r.result.userInfo) {
uni.setStorageSync('userInfo', r.result.userInfo)
}
//vip
commonTool.checkVipInfo(r.result.vipInfo)
//
this.showType = 2
} else {
uni.showToast({
title: r.message,
icon: 'none'
})
}
}).catch(err => {
}).finally(() => {
});
} else {
uni.showModal({
title: '未获取到code'
})
}
}
});
} else {
uni.showToast({
title: '授权失败,请同意授权',
icon: 'none'
})
return
}
console.log(e)
},
gotoMianze() {
uni.navigateTo({
url: '/pages/zyb/other/disclaimer'
})
},
gotoXieyi() {
uni.navigateTo({
url: '/pages/zyb/other/userAgreement'
})
},
//
getQrCodeStatus(){
request.get(ApiConstant.User.wxQrCodeStatus+"/"+this.uuid, {}, {showLoad: false}).then(r => {
if (r.success) {
if(r.result.qr_state === 'SUCCESS' || r.result.qr_state === 'SCAN' || r.result.qr_state === 'NULL'){
//
this.showType = 3
}else{
this.showType = 1
this.reloadQrCodeStatus()
}
}else{
this.showType = 3
}
}).catch(err => {
}).finally(() => {
});
},
//
reloadQrCodeStatus(){
//
request.get(ApiConstant.User.wxQrCodeUpdateStatus+"/"+this.uuid, {}, {showLoad: false}).then(r => {
if (r.success) {
}
}).catch(err => {
}).finally(() => {
});
},
//
exit(){
wx.exitMiniProgram({
success: (res) => {}
})
},
exitQrCode(){
wx.exitMiniProgram({
success: (res) => {
console.log(res)
if(this.uuid){
//
request.get(ApiConstant.User.wxQrCodeExit+"/"+this.uuid, {}, {showLoad: false}).then(r => {
if (r.success) {
}
}).catch(err => {
}).finally(() => {
});
}
}
})
}
},
}
</script>
<template>
<view class="header" style="border-top:3rpx solid #f6f6f6"></view>
<view class="content" v-if="showFlag && showType===1">
<view class="textcenter">
<view class="flex">
<image src="/static/icons/wechat.png" class="icon256 marginCenter" />
</view>
<text class="low-title">
将在电脑上登录{{ StaticConstant.systemName }}
</text><br/>
<text class="low-title">
请确认是否是本人操作
</text>
</view>
<view style="margin-top: 200rpx" >
/*#ifdef MP-WEIXIN*/
<button class='login-but' open-type="getPhoneNumber" @getphonenumber="getPhoneNumber">
手机号快捷登录
</button>
/*#endif*/
<button class='login-pwd-but margin-top-20' @click="exitQrCode()">
取消
</button>
</view>
<view class="uni-flex flex" style="margin-top: 100rpx" v-show="false">
<checkbox-group @change="checkboxChange">
<label>
<checkbox value="cb"/>
登录代表{{ StaticConstant.systemName }}
<text style="color: #4975fd" @click="gotoXieyi">艺体志愿宝用户协议</text>
<text style="color: #4975fd" @click="gotoMianze">免责声明</text>
并授权使用您的{{ StaticConstant.systemName }}账号信息如昵称头像以便您统一管理
</label>
</checkbox-group>
</view>
</view>
<view class="content" v-else-if="showFlag && showType===2">
<view class="textcenter">
<view class="flex">
<image src="/static/icons/success.png" class="icon256 marginCenter" />
</view>
<text class="low-title">
登录成功
</text><br/>
<text class="low-title">
欢迎使用{{ StaticConstant.systemName }}
</text>
</view>
<view style="margin-top: 200rpx" >
<button class='login-but' @click="reloadHome()">
确定
</button>
</view>
</view>
<view class="content" v-else-if="showFlag && showType===3">
<view class="textcenter">
<text class="low-title">
二维码已失效
</text><br/>
</view>
<view style="margin-top: 200rpx" >
<button class='login-but' @click="exit()">
确定
</button>
</view>
</view>
</template>
<style scoped lang="scss">
.content {
margin-top: 200rpx;
padding: 30rpx;
}
.container {
height: 100%;
}
.uni-form-item .title {
padding: 20rpx 0;
}
.textcenter {
text-align: center;
margin: 30rpx 0;
}
/*标题*/
.title {
font-family: "Bookshelf Symbol 7";
margin: 0 auto;
//color:white;
font-size: 90rpx;
font-weight: 600;
}
/*小标题*/
.low-title {
font-size: 40rpx;
}
///
.login-but {
color: white;
width: 500rpx;
background-color: #25cd4d;
border-radius: 10rpx;
font-weight: 550;
}
.login-pwd-but{
width: 500rpx;
}
.login-but-disabled {
background: #eeeeee;
}
</style>

View File

@ -3,10 +3,17 @@ import ApiConstant from "@/common/ApiConstant";
import Request from '@/common/request' import Request from '@/common/request'
import StaticConstant from "@/common/StaticConstant"; import StaticConstant from "@/common/StaticConstant";
import ImagesConstant from "@/common/ImagesConstant"; import ImagesConstant from "@/common/ImagesConstant";
import JumpTool from "@/common/js/jumpTool";
import {arrayIsNotEmpty} from "../../../common/util";
import View from "../../component/view/view.vue";
// //
let request = new Request() let request = new Request()
export default { export default {
components: {View},
computed: { computed: {
JumpTool() {
return JumpTool
},
ImagesConstant() { ImagesConstant() {
return ImagesConstant return ImagesConstant
} }
@ -15,6 +22,7 @@ export default {
return { return {
culturalScore: '',// culturalScore: '',//
professionalScore: '',// professionalScore: '',//
scoreInfo: {},
category: '文科',// category: '文科',//
schoolInfo: {},// schoolInfo: {},//
schoolCode: '',// schoolCode: '',//
@ -24,28 +32,15 @@ export default {
tab: 'zlxx', tab: 'zlxx',
scrollLeft: 0, scrollLeft: 0,
chartData: {}, chartData: {},
opts: { opts: StaticConstant.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,//线 fsxIndex: 0,//线
tdxIndex: 0,//线 tdxIndex: 0,//线
majorList: [],// majorList: [],//
professionalCategoryIndex: 0,// professionalCategoryIndex: 0,//
professionalCategoryList: StaticConstant.professionalCategoryList,// professionalCategoryList: StaticConstant.professionalCategoryList,//
admissionsRegulationsList: [],//
historyScoreControlLineList: [],//线 historyScoreControlLineList: [],//线
subjectEvaluationList:[],//
} }
}, },
onShow() { onShow() {
@ -54,23 +49,35 @@ export default {
if (e.schoolCode) { if (e.schoolCode) {
this.schoolCode = e.schoolCode; this.schoolCode = e.schoolCode;
} }
if (e.tab) {
this.tab = e.tab
}
// this.schoolCode = '2090' // this.schoolCode = '2090'
this.getSchoolDetailInfo() this.getSchoolDetailInfo()
let scoreInfo = uni.getStorageSync('scoreInfo') let scoreInfo = uni.getStorageSync('scoreInfo')
if (scoreInfo) { if (scoreInfo) {
this.scoreInfo = scoreInfo
this.culturalScore = scoreInfo.culturalScore this.culturalScore = scoreInfo.culturalScore
this.professionalScore = scoreInfo.professionalScore this.professionalScore = scoreInfo.professionalScore
this.category = scoreInfo.cognitioPolyclinic this.category = scoreInfo.cognitioPolyclinic
} }
}, },
methods: { methods: {
goto(e){ goto(e) {
uni.navigateTo({ uni.navigateTo({
url: e url: e
}) })
}, },
//
gotoNpee() {
let url = '/pages/zyb/npee/schoolNpee?schoolId='
url += this.schoolInfo.id + "&schoolName=" + this.schoolInfo.schoolName
if (this.schoolInfo.schoolResearchTeaching && this.schoolInfo.schoolResearchTeaching.byzg) {
url += '&byzg=' + this.schoolInfo.schoolResearchTeaching.byzg
}
this.goto(url)
},
swichMenu(id) { swichMenu(id) {
this.currentTab = id this.currentTab = id
console.log(id) console.log(id)
@ -81,7 +88,7 @@ export default {
console.log(this.scrollLeft, 60, id) console.log(this.scrollLeft, 60, id)
} }
}, },
/*获取专业详情*/ //
getSchoolDetailInfo() { getSchoolDetailInfo() {
let that = this let that = this
request.get(ApiConstant.School.schoolInfo, { request.get(ApiConstant.School.schoolInfo, {
@ -96,11 +103,15 @@ export default {
this.loadManData() this.loadManData()
// //
this.getSchoolMajorList() this.getSchoolMajorList()
this.getDoubleFirstPlan()
this.getSubjectEvaluation()
// 线 // 线
this.getHistoryList() //this.getHistoryList()
} }
}).catch(err => { }).catch(err => {
}).finally(() => { }).finally(() => {
//
this.getAdmissionsRegulationsList()
}); });
}, },
// //
@ -162,7 +173,7 @@ export default {
professionalCategory: this.professionalCategoryList[this.professionalCategoryIndex].value, professionalCategory: this.professionalCategoryList[this.professionalCategoryIndex].value,
category: this.category, category: this.category,
pageSize: 999 pageSize: 999
}).then(res => { }, {showLoad: false}).then(res => {
if (res.success) { if (res.success) {
this.historyScoreControlLineList = res.result.records this.historyScoreControlLineList = res.result.records
} }
@ -170,11 +181,12 @@ export default {
}).finally(() => { }).finally(() => {
}); });
}, },
getSchoolMajorList(){ getSchoolMajorList() {
request.get(ApiConstant.Major.schoolMajorList, { request.get(ApiConstant.Major.schoolMajorList, {
cognitioPolyclinic: this.category, cognitioPolyclinic: this.category,
schoolCode: this.schoolCode schoolCode: this.schoolCode,
}).then(res => { professionalCategory: this.scoreInfo.professionalCategory
}, {showLoad: false}).then(res => {
if (res.success) { if (res.success) {
this.majorList = res.result this.majorList = res.result
} }
@ -182,6 +194,40 @@ export default {
}).finally(() => { }).finally(() => {
}); });
}, },
//
getDoubleFirstPlan() {
if (this.schoolInfo && this.schoolInfo.id) {
request.get(ApiConstant.School.doubleFirstPlan, {
schoolId: this.schoolInfo.id
}, {showLoad: false}).then(res => {
if (res.success) {
console.log(res)
this.doubleFirstPlan = res.result
//
if (arrayIsNotEmpty(this.doubleFirstPlan.gjjList) || arrayIsNotEmpty(this.doubleFirstPlan.sjList)) {
this.schoolInfo.tagsList.push('双万计划')
}
}
}).catch(err => {
}).finally(() => {
});
}
},
//
getSubjectEvaluation() {
if (this.schoolInfo && this.schoolInfo.id) {
request.get(ApiConstant.School.subjectEvaluation, {
schoolId: this.schoolInfo.id
}, {showLoad: false}).then(res => {
if (res.success) {
console.log(res)
this.subjectEvaluationList = res.result
}
}).catch(err => {
}).finally(() => {
});
}
},
//线 //线
bindPickerPcxChange(e) { bindPickerPcxChange(e) {
this.professionalCategoryIndex = e.detail.value this.professionalCategoryIndex = e.detail.value
@ -195,6 +241,24 @@ export default {
bindPicker_lqMajorChange(e) { bindPicker_lqMajorChange(e) {
this.fsxIndex = e.detail.value this.fsxIndex = e.detail.value
}, },
/*获取招生章程*/
getAdmissionsRegulationsList() {
let params = {
type: StaticConstant.TYPES.admissionsRegulations,
schoolId: this.schoolInfo.id,
pageNum: 1,
pageSize: 5
}
request.get(ApiConstant.Article.articlePage, params, {showLoad: false}).then(res => {
console.log(res)
if (res.success) {
this.admissionsRegulationsList = res.result.records
} else {
}
}).catch(err => {
}).finally(() => {
});
},
} }
} }
</script> </script>
@ -227,11 +291,23 @@ export default {
<text class="address" v-if="schoolInfo.street">{{ schoolInfo.street }}</text> <text class="address" v-if="schoolInfo.street">{{ schoolInfo.street }}</text>
</view> </view>
</view> </view>
<view class="flex-item-15"> <view class="flex-item-13">
<view> <view class="flexWrap">
<text :class="collectStatus?'collectBtn collectBtn-active':'collectBtn'" plain="true" @click="collect"> <view class="ruanke font-size-mini" v-if="schoolInfo && schoolInfo.arwuRanking">
收藏 <text class="font-weight-b font-size-mini4">{{ schoolInfo.arwuRanking }}</text>
</text> <br/>
<text>软科排名</text>
</view>
</view>
<view class="flexWrap marginTopBot20" @click="collect">
<view class="flexWrap">
<view class="ruanke font-size-mini">
<image :src="collectStatus?'/static/icons/shoucang-active.png':'/static/icons/shoucang.png'"
class="icon64"/>
<br/>
<text>关注院校</text>
</view>
</view>
</view> </view>
</view> </view>
</view> </view>
@ -239,48 +315,143 @@ export default {
</view> </view>
</view> </view>
<!--学校概括--> <!--学校概括-->
<view class="m-card padding20 margin20" v-if="tab === 'jbjs'"> <view v-if="tab === 'jbjs'">
<uni-section title="学校介绍" type="line"> <view class="m-card padding20 margin20">
<view class="padding20"> <uni-section title="学校介绍" type="line">
<view class="content"> <view class="padding20">
<mote-lines-divide :dt="schoolInfo.baseInfo" :line="3" expandtext="展开" foldhint="收起"/> <view class="content">
<mote-lines-divide :dt="schoolInfo.baseInfo" :line="3" expandtext="展开" foldhint="收起"/>
</view>
</view> </view>
</view> </uni-section>
</uni-section> </view>
<uni-section title="国家特色专业" type="line"> <view class="m-card padding20 margin20"
<view class="padding20"> v-if="doubleFirstPlan && doubleFirstPlan.gjjList && doubleFirstPlan.gjjList.length>0">
<view class="other-item">{{ schoolInfo.gjtszy }}</view> <uni-section title="国家级一流专业" type="line">
</view> <view class="other-item">
</uni-section> <view class="historyScoreLineList slateGray">
<uni-section title="省特色专业" type="line"> <view class="hsl-item" :class="index===0?'not-border':''" v-for="(item,index) in doubleFirstPlan.gjjList"
<view class="padding20"> :key="index"
<view class="other-item">{{ schoolInfo.stszy }}</view> @click="goto('/pages/zyb/major/detail?majorCode='+item.majorCode)">
</view> <view class="other-item">
</uni-section> <text>{{ item.majorName }}</text>
<uni-section title="男女比例" type="line"> </view>
<view class="charts-box padding20"> <view class="other-item right-item">
<qiun-data-charts type="pie" :opts="opts" :chartData="chartData"/> <image :src="ImagesConstant.keyboard.arrowRight" class="icon50"/>
</view> </view>
</uni-section> </view>
<uni-section title="其他信息" type="line"> </view>
<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>
<view class="other-item" v-if="schoolInfo.schoolPhone"> </uni-section>
<text class="b">招生电话</text> </view>
{{ schoolInfo.schoolPhone }} <view class="m-card padding20 margin20"
v-if="doubleFirstPlan && doubleFirstPlan.sjList && doubleFirstPlan.sjList.length>0">
<uni-section title="省级一流专业" type="line">
<view class="other-item">
<view class="historyScoreLineList slateGray">
<view class="hsl-item" :class="index===0?'not-border':''" v-for="(item,index) in doubleFirstPlan.sjList"
: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>
</view> </view>
<view class="other-item" v-if="schoolInfo.street"> </uni-section>
<text class="b">校区地址</text> </view>
{{ schoolInfo.street }} <view class="m-card padding20 margin20"
v-if="subjectEvaluationList && subjectEvaluationList.length>0">
<uni-section title="第四轮学科评估" type="line">
<view class="other-item">
<view class="historyScoreLineList slateGray">
<view class="hsl-item" :class="index===0?'not-border':''" v-for="(item,index) in subjectEvaluationList"
:key="index">
<view class="other-item">
<text>{{ item.subjectName }}</text>
</view>
<view class="other-item right-item">
<text>{{item.evaluationResult}}</text>
<!-- <image :src="ImagesConstant.keyboard.arrowRight" class="icon50"/>-->
</view>
</view>
</view>
</view> </view>
</uni-section>
</view>
<view class="m-card padding20 margin20">
<uni-section title="科研教学" type="line">
<view class="padding20">
<view class="other-item">
<view v-if="schoolInfo.schoolResearchTeaching" class="flexWrap kyjx" @click="gotoNpee()">
<view class="flex-item-25 kyjxTag"
v-if="schoolInfo.schoolResearchTeaching && schoolInfo.schoolResearchTeaching.professionalMasterDegreePoint">
<text>
专硕点 {{ schoolInfo.schoolResearchTeaching.professionalMasterDegreePoint }}
</text>
</view>
<view class="flex-item-25 kyjxTag"
v-if="schoolInfo.schoolResearchTeaching && schoolInfo.schoolResearchTeaching.academicMasterDegreePoint">
<text>
学硕点 {{ schoolInfo.schoolResearchTeaching.academicMasterDegreePoint }}
</text>
</view>
<view class="flex-item-25 kyjxTag"
v-if="schoolInfo.schoolResearchTeaching && schoolInfo.schoolResearchTeaching.doctoralPoint">
<text>
有博士点 <!--{{ schoolInfo.schoolResearchTeaching.doctoralPoint }}-->
</text>
</view>
</view> <view class="flex-item-25 kyjxTag"
</uni-section> v-if="schoolInfo.schoolResearchTeaching && schoolInfo.schoolResearchTeaching.byzg">有保研资格
</view>
<view class="flex-item-25 kyjxTag"
v-if="schoolInfo.schoolResearchTeaching && schoolInfo.schoolResearchTeaching.yjsy">有研究生院
</view>
<view class="flex-item-25 kyjxTag"
v-if="schoolInfo.schoolResearchTeaching && schoolInfo.schoolResearchTeaching.zhx">自划线院校
</view>
</view>
<view v-else>
<text>暂无</text>
</view>
</view>
</view>
</uni-section>
</view>
<view class="m-card padding20 margin20">
<uni-section title="男女比例" type="line">
<view class="charts-box padding20">
<qiun-data-charts type="pie" :opts="opts" :chartData="chartData"/>
</view>
</uni-section>
</view>
<view class="m-card padding20 margin20">
<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> </view>
<!--招录信息--> <!--招录信息-->
<view v-if="tab ==='zlxx'"> <view v-if="tab ==='zlxx'">
<!--我的成绩--> <!--我的成绩-->
@ -299,6 +470,17 @@ export default {
<!--招生章程--> <!--招生章程-->
<view class="m-card padding20 margin20"> <view class="m-card padding20 margin20">
<uni-section title="招生章程" type="line"> <uni-section title="招生章程" type="line">
<view class="messageList" v-for="(item,index) in this.admissionsRegulationsList" :key="index"
v-if="admissionsRegulationsList">
<view class="messageItem" @click="JumpTool.goArticleDetail(item)"
:class="index ===admissionsRegulationsList.length-1?'':'border-bottom'">
<text class="flexWrap">{{ item.title }}</text>
<view class="flexWrap margin-top-10">
<text class="minit margin-right-20" v-if="item.releaseTime">{{ item.releaseTime }}</text>
<!-- <text class="minit">阅读量{{ item.viewCount || '0' }}</text>-->
</view>
</view>
</view>
</uni-section> </uni-section>
</view> </view>
<!--批次线--> <!--批次线-->
@ -336,52 +518,11 @@ export default {
</view> </view>
</uni-section> </uni-section>
</view> </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"> <view class="m-card padding20 margin20">
<uni-section title="录取分数线" type="line"> <uni-section title="录取分数线" type="line">
<view style="position: relative;bottom: 75rpx;float: right" class="flex-item-6" v-if="majorList && majorList.length>0"> <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"> <picker @change="bindPicker_lqMajorChange" :value="fsxIndex" :range="majorList" range-key="majorName">
<view class="uni-input font-size-mini" style="float: right">{{ majorList[fsxIndex].majorName }} <view class="uni-input font-size-mini" style="float: right">{{ majorList[fsxIndex].majorName }}
<image :src="ImagesConstant.keyboard.arrowDown2" class="icon50 marginCenter" <image :src="ImagesConstant.keyboard.arrowDown2" class="icon50 marginCenter"
@ -408,7 +549,13 @@ export default {
</view> </view>
<view class="other-item"> <view class="other-item">
<text>录取公式</text> <text>录取公式</text>
<text>{{ item.probabilityOperator || '未公布' }}</text> <text v-if="item.probabilityOperator">{{ item.probabilityOperator }}</text>
<text v-else-if="item.rulesEnrollProbability && !(item.probabilityOperator)">
{{
item.rulesEnrollProbability === '文过专排' ? '文化分过省控线,专业分排序' : item.rulesEnrollProbability === '专过文排' ? '专业分过省控线,文化分排序' : item.rulesEnrollProbability
}}
</text>
<text v-else>未公布</text>
</view> </view>
<view class="other-item"> <view class="other-item">
<text>录取分数</text> <text>录取分数</text>
@ -430,9 +577,11 @@ export default {
<view class="m-card padding20 margin20"> <view class="m-card padding20 margin20">
<uni-section title="开设专业" type="line"> <uni-section title="开设专业" type="line">
<view class="historyScoreLineList slateGray" v-if="majorList && majorList.length>0"> <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="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"> <view class="other-item">
<text>{{ item.majorName }}</text> <text>{{ item.majorName }}</text>
<text class="xk" v-if="item.kslx && item.kslx==='校考'">校考</text>
</view> </view>
<view class="other-item right-item"> <view class="other-item right-item">
<image :src="ImagesConstant.keyboard.arrowRight" class="icon50"/> <image :src="ImagesConstant.keyboard.arrowRight" class="icon50"/>
@ -443,17 +592,6 @@ export default {
</view> </view>
</view> </view>
</template> </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"> <style scoped lang="scss">
/*头部部分*/ /*头部部分*/
.head { .head {
@ -540,7 +678,7 @@ export default {
.right-item { .right-item {
position: relative; position: relative;
bottom: 40rpx; bottom: 45rpx;
float: right; float: right;
} }
@ -577,8 +715,55 @@ export default {
} }
/*============================文章列表 start*/
.messageList {
color: #595757; //
.messageItem {
padding: 30rpx;
}
.minit {
font-size: 25rpx;
color: #929f9f;
}
}
/*=============================文章列表 end*/
.content { .content {
/*font-size: 24rpx; /*font-size: 24rpx;
text-indent:48rpx;*/ text-indent:48rpx;*/
} }
.ruanke {
//background-color: #f4fcf7;
border-radius: 15rpx;
color: #6b58fa;
text-align: center;
}
/*科研教学 start*/
.kyjx {
text-align: center;
.kyjxTag {
background-color: #e7f7ff;
border: 1rpx solid #99d4fe;
color: #438dfe;
font-weight: 600;
border-radius: 10rpx;
margin: 5rpx 10rpx;
}
}
/*科研教学 end*/
.xk{
color: #f96543 !important;
position:relative;
background-color: #fef4f4;
border-radius: 15rpx;
padding:0 20rpx;
left: 10rpx;
}
</style> </style>

View File

@ -3,13 +3,11 @@ 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"; import ImagesConstant from "@/common/ImagesConstant";
import MyTopButton from "@/components/my-top-button.vue";
import {arrayIsNotEmpty, yearAbridge} from "@/common/util"; import {arrayIsNotEmpty, yearAbridge} from "@/common/util";
let request = new Request() let request = new Request()
export default { export default {
name: "school-list", name: "school-list",
components: {MyTopButton},
computed: { computed: {
ImagesConstant() { ImagesConstant() {
return ImagesConstant return ImagesConstant
@ -26,6 +24,7 @@ export default {
selectForm: { selectForm: {
addressList: [], addressList: [],
institutionTypeList: [], institutionTypeList: [],
schoolType: "",
tagsList: [], tagsList: [],
schoolNatureList: [] schoolNatureList: []
}, },
@ -52,11 +51,10 @@ export default {
title: "算投档", title: "算投档",
icon: ImagesConstant.std, icon: ImagesConstant.std,
url: "/pages/zyb/other/calculateInvestment" url: "/pages/zyb/other/calculateInvestment"
}, }
], ],
userInfo: { userInfo: {},
vipFlag: true,//vip vipInfo: {},
},
topFlag: false, topFlag: false,
nowProvince: { nowProvince: {
status: 'more', status: 'more',
@ -83,13 +81,27 @@ export default {
onLoad() { onLoad() {
this.getSchoolList() this.getSchoolList()
this.userInfo = uni.getStorageSync('userInfo') this.userInfo = uni.getStorageSync('userInfo')
this.vipInfo = uni.getStorageSync('vipInfo')
}, },
onReachBottom(){ onReachBottom() {
console.log("已经滚动到底部了") console.log("已经滚动到底部了")
if (this.userInfo.vipFlag) { if (this.vipInfo && this.vipInfo.vipFlag) {
this.loadMore() this.loadMore()
} }
}, },
onShareAppMessage() {
return {
title: '查院校', //
path: "/pages/zyb/school/list"
}
},
//
onShareTimeline(res) {
return {
title: '查院校', //
path: "/pages/zyb/school/list"
}
},
methods: { methods: {
yearAbridge, yearAbridge,
search(res) { search(res) {
@ -113,6 +125,8 @@ export default {
if (this.selectForm.tagsList === null) { if (this.selectForm.tagsList === null) {
this.selectForm.tagsList = [] this.selectForm.tagsList = []
} }
} else if (e.children[i].title === '院校层次') {
this.selectForm.schoolType = e.children[i].value
} else if (e.children[i].title === '办学类型') { } else if (e.children[i].title === '办学类型') {
this.selectForm.schoolNatureList = e.children[i].value this.selectForm.schoolNatureList = e.children[i].value
if (this.selectForm.schoolNatureList === null) { if (this.selectForm.schoolNatureList === null) {
@ -167,15 +181,15 @@ export default {
if (arrayIsNotEmpty(this.selectForm.schoolNatureList)) { if (arrayIsNotEmpty(this.selectForm.schoolNatureList)) {
schoolNatureStrs = this.selectForm.schoolNatureList.join(",") schoolNatureStrs = this.selectForm.schoolNatureList.join(",")
} }
request.get(ApiConstant.School.searchSchoolList, { request.get(ApiConstant.School.searchSchoolList, {
schoolName: this.schoolName, schoolName: this.schoolName,
province: province, province: province,
institutionType: institutionType, institutionType: institutionType,
tagsStrs: tagsStrs, tagsStrs: tagsStrs,
schoolNatureStrs: schoolNatureStrs, schoolNatureStrs: schoolNatureStrs,
schoolType: this.selectForm.schoolType,
pageNum: this.nowProvince.current, pageSize: this.nowProvince.size pageNum: this.nowProvince.current, pageSize: this.nowProvince.size
}).then(r => { }, {showLoad: false}).then(r => {
console.log(r) console.log(r)
if (r.success) { if (r.success) {
this.nowProvince.current = r.result.current this.nowProvince.current = r.result.current
@ -194,8 +208,8 @@ export default {
}).finally(() => { }).finally(() => {
}); });
}, },
searchSchoolClick() { searchSchoolClick() {
this.checkVip()
this.nowProvince.current = 1 this.nowProvince.current = 1
this.nowProvince.schoolList = [] this.nowProvince.schoolList = []
this.nowProvince.total = 0 this.nowProvince.total = 0
@ -224,6 +238,18 @@ export default {
duration: 300 duration: 300
}); });
}, },
/*判断vip*/
checkVip() {
if (!this.vipInfo || !this.vipInfo.vipFlag) {
uni.showToast({
title: '开通VIP无限次查询',
duration: 1000,
icon: "none"
});
return
}
}
}, },
onPageScroll(e) { // onPageScroll(e) { //
//600//600 //600//600
@ -251,20 +277,20 @@ export default {
<uni-grid-item v-for="(item, index) in options" :index="index" :key="index"> <uni-grid-item v-for="(item, index) in options" :index="index" :key="index">
<view class="grid-item-box"> <view class="grid-item-box">
<image :src="item.icon?item.icon:defaultIcon" <image :src="item.icon?item.icon:defaultIcon"
style="height: 90rpx;width: 90rpx;border-radius: 50%;border: 1rpx solid #aaa"/> style="height: 90rpx;width: 90rpx;"/>
<text class="text">{{ item.title }}</text> <text class="text">{{ item.title }}</text>
</view> </view>
</uni-grid-item> </uni-grid-item>
</uni-grid> </uni-grid>
</view> </view>
<!--筛选项--> <!--筛选项-->
<le-dropdown <le-dropdown v-if="vipInfo && vipInfo.vipFlag"
v-model:menuList="menuList" v-model:menuList="menuList"
themeColor="#3d76fd" themeColor="#3d76fd"
:duration="200" :duration="200"
:isCeiling="true" :isCeiling="true"
@onConfirm="onConfirm" @onConfirm="onConfirm"
@onChange="onChange"></le-dropdown> @onChange="onChange"></le-dropdown>
</view> </view>
<view class="body"> <view class="body">
<!--院校列表--> <!--院校列表-->
@ -274,7 +300,8 @@ export default {
<view class="flex-item-10"> <view class="flex-item-10">
<view class="flex"> <view class="flex">
<view class="flex-item-22 t_item"> <view class="flex-item-22 t_item">
<image lazy-load :src="item.schoolIcon||ImagesConstant.defaultIcon" class="icon128" mode="aspectFill"/> <image lazy-load :src="item.schoolIcon||ImagesConstant.defaultIcon" class="icon128 margin-left-10"
mode="aspectFill"/>
</view> </view>
<view class="flex-item-8 t_item"> <view class="flex-item-8 t_item">
<view class="uni-flex flex"> <view class="uni-flex flex">
@ -300,35 +327,57 @@ export default {
</view> </view>
</view> </view>
</view> </view>
<view class="flex" style="height: 30rpx;line-height: 30rpx"> <!--校考-->
<view class="flex-item-17"> <view class="flex" style="height: 30rpx;line-height: 30rpx" v-if="item.kslx && item.kslx==='校考'">
<view style="margin-left:15%"> <view class="flex-item-2">
<image :src="ImagesConstant.shuqian" class="icon32"/> <view style="text-align: center;margin: 0 20rpx;border-radius: 10rpx;" class="xk-background">
<text class="font-size-mini font-weight-550 shiFengGreen">统考</text> <text class="font-size-mini font-weight-550 xk-color">{{ item.kslx }}</text>
</view> </view>
</view> </view>
<view class="flex-item-45" v-if="item.zdf"> <!-- <view class="flex-item-42">
<view class="font-size-mini-mini"> <view class="font-size-mini-mini" v-if="item.zdf">
<text class="slateGray">{{ yearAbridge(item.zdfYear) }}年录取最低分:</text> <text class="slateGray">{{ yearAbridge(item.zdfYear) }}年录取最低分:</text>
<text class="font-weight-b shiFengGreen">{{ item.zdf }}</text> <text class="font-weight-b xk-color">{{ item.zdf }}</text>
</view>
</view>-->
<view class="flex-item-38">
<view class="font-size-mini-mini float-right" v-if="item.jhs">
<text class="slateGray">23年省内计划录取:</text>
<text class="font-weight-b xk-color">{{ item.jhs }}</text>
</view> </view>
</view> </view>
<view class="flex-item-35" v-if="item.jhs"> </view>
<view class="font-size-mini-mini float-right"> <!--统考-->
<text class="slateGray">23年省内计划录取:</text> <view class="flex" style="height: 30rpx;line-height: 30rpx" v-else>
<text class="font-weight-b shiFengGreen">{{ item.jhs }}</text> <view class="flex-item-2">
<view style="text-align: center;margin: 0 20rpx;border-radius: 10rpx;" class="tk-background">
<text class="font-size-mini font-weight-550 tk-color">{{ item.kslx }}</text>
</view>
</view>
<view class="flex-item-42">
<view class="font-size-mini-mini" v-if="item.zdf">
<text class="slateGray">{{ yearAbridge(item.zdfYear) }}年录取最低分:</text>
<text class="font-weight-b tk-color">{{ item.zdf }}</text>
</view>
</view>
<view class="flex-item-38">
<view class="font-size-mini-mini float-right" v-if="item.jhs">
<text class="slateGray">{{item.luquYear}}年省内计划录取:</text>
<text class="font-weight-b tk-color">{{ item.jhs }}</text>
</view> </view>
</view> </view>
</view> </view>
</view> </view>
</view> </view>
</view> </view>
<view class="container" @click="loadMore" v-if="userInfo.vipFlag"> <view class="container" @click="loadMore" v-if="vipInfo && vipInfo.vipFlag">
<uni-load-more :status="nowProvince.status" :content-text="contentText"/> <uni-load-more :status="nowProvince.status" :content-text="contentText"/>
</view> </view>
</view> </view>
<!--判断vip--> <!--判断vip-->
<my-checkvip :vip-flag="(userInfo.vipFlag)"/> <view v-if="nowProvince && nowProvince.schoolList && nowProvince.schoolList.length>0">
<my-checkvip :vip-flag="(vipInfo && vipInfo.vipFlag)"/>
</view>
<view class="top" :style="{'display':(topFlag===true? 'block':'none')}"> <view class="top" :style="{'display':(topFlag===true? 'block':'none')}">
<uni-icons class="topc" type="arrowthinup" size="40" @click="top"></uni-icons> <uni-icons class="topc" type="arrowthinup" size="40" @click="top"></uni-icons>
</view> </view>
@ -360,7 +409,7 @@ export default {
/*院校列表*/ /*院校列表*/
.school-list { .school-list {
padding: 10rpx 20rpx; padding: 10rpx 10rpx;
.school-item { .school-item {
margin-bottom: 10rpx; margin-bottom: 10rpx;
@ -503,4 +552,20 @@ export default {
} }
/* 回到顶部 end*/ /* 回到顶部 end*/
.tk-color {
color: #7568e9 !important;
}
.xk-color {
color: #f96543 !important;
}
.tk-background {
background-color: #eaecff;
}
.xk-background {
background-color: #fef4f4;
}
</style> </style>

View File

@ -16,17 +16,26 @@ export default {
data() { data() {
return { return {
saveScoreInfo: {}, saveScoreInfo: {},
useCount:0,
residueCount: 0,
vipInfo: {},
oldScoreInfo: {},
scoreInfo: { scoreInfo: {
id: '', id: '',
province: '河南',// province: '河南',//
cognitioPolyclinic: '理科',// cognitioPolyclinic: '科',//
professionalCategory: '',// professionalCategory: '',//
culturalScore: '',// culturalScore: '',//
professionalScore: '',// professionalScore: '',//
chineseScore: '', chineseScore: '',
englishScore: '' englishScore: ''
}, },
provinceArray: [{name: "河南"}],// formRuleFlag: false,//
provinceArray: [{
name: '河南',
text: "河南",
value: "河南",
},],//
cognitioPolyclinicArray: StaticConstant.categoryList,// cognitioPolyclinicArray: StaticConstant.categoryList,//
//=========================================================== //===========================================================
professionalCategoryArray: StaticConstant.professionalCategoryList,//array professionalCategoryArray: StaticConstant.professionalCategoryList,//array
@ -38,30 +47,46 @@ export default {
} }
}, },
onShow() { onShow() {
this.getEditScoreCount()
this.getUserScore() this.getUserScore()
this.vipInfo = uni.getStorageSync('vipInfo')
}, },
methods: { methods: {
stringIsNotEmpty() {
return stringIsNotEmpty
},
// //
getUserScore() { getUserScore() {
request.get(ApiConstant.Score.getScore, {}).then(res => { let scoreInfo = uni.getStorageSync('scoreInfo')
this.oldScoreInfo = uni.getStorageSync('scoreInfo')
if (scoreInfo) {
this.scoreInfo = scoreInfo
//
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(',')
}
}
},
//
getEditScoreCount() {
request.get(ApiConstant.Score.todayOfEditScoreCount, {}, {showLoad: false}).then(res => {
if (res.success) { if (res.success) {
this.scoreInfo = res.result console.log(res)
// this.useCount = res.result.useCount
let professionalCategory = this.scoreInfo.professionalCategory this.residueCount = res.result.residueCount
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() {
@ -78,57 +103,99 @@ export default {
...this.saveScoreInfo ...this.saveScoreInfo
}).then(res => { }).then(res => {
if (res.success) { if (res.success) {
uni.setStorageSync('scoreInfo', this.saveScoreInfo) let scoreInfo = res.result
request.getUserScore()
/*uni.removeStorageSync('scoreInfo')//清除之前的成绩缓存
uni.setStorageSync('scoreInfo', scoreInfo)
uni.removeStorageSync('fillVolunteer')// uni.removeStorageSync('fillVolunteer')//
this.getRecommendMajorCount() //
let all = parseInt(scoreInfo.kcjNum) + parseInt(scoreInfo.jwtNum) + parseInt(scoreInfo.kbdNum);
//+parseInt(scoreInfo.nlqNum)
let fillVolunteer = {jwt: scoreInfo.jwtNum, kbd: scoreInfo.kbdNum, kcj: scoreInfo.kcjNum, allNumber: all}
uni.setStorageSync('fillVolunteer', fillVolunteer)*/
setTimeout(() => {
uni.reLaunch({
url: '/pages/zyb/home'
})
}, 800)
} }
}).catch(err => { }).catch(err => {
}).finally(() => { }).finally(() => {
}); });
}, },
getRecommendMajorCount() { checkForm() {
request.get(ApiConstant.Major.recommendMajorCount, {}).then(res => { //
if (res.success) { if (!this.scoreInfo.province) {
let result = res.result this.formRuleFlag = false
// return;
let fillVolunteer = { }
all: result.allNumber, //
kcj: result.kcj, if (!this.professionalCategoryArray[this.professionalCategoryIndex]) {
jwt: result.jwt, this.formRuleFlag = false
nlq: result.nan, return
kbd: result.kbd }
//
if (arrayIsNotEmpty(this.pCategoryChildrenList)) {
for (let i = 0; i < this.pCategoryChildrenList.length; i++) {
let name = this.pCategoryChildrenList[i]
//
let key = this.checkChildrenNameToKey(name)
let value = this.scoreInfo[key]
if (value === undefined || value === '') {
this.formRuleFlag = false
return
}
let score = parseInt(value)
if (typeof (score) !== 'number') {
this.formRuleFlag = false
return
} }
uni.setStorageSync('fillVolunteer', fillVolunteer)
} }
}).catch(err => { }
}).finally(() => { //
setTimeout(function () { if (!this.scoreInfo.cognitioPolyclinic) {
uni.showToast({title: '保存成功', icon: "none"}); this.formRuleFlag = false
// return
uni.switchTab({ }
url: '/pages/zyb/home' //
}); if (this.professionalCategoryArray[this.professionalCategoryIndex].value !== '表演类' && !this.scoreInfo.professionalScore) {
}, 500) this.formRuleFlag = false
}); return
}
//
if (!this.scoreInfo.culturalScore) {
this.formRuleFlag = false
return
}
this.formRuleFlag = true
}, },
// //
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
this.checkForm()
}, },
// //
bindPicker_cognitioPolyclinicChange: function (e) { switchKelei(e) {
console.log('科目picker发送选择改变携带值为' + e.detail.value) this.scoreInfo.cognitioPolyclinic = e.name
this.scoreInfo.cognitioPolyclinic = this.cognitioPolyclinicArray[e.detail.value].name this.checkForm()
},
//
bindPicker_professionalCategoryChange: function (e) {
console.log('报考方向picker发送选择改变携带值为' + e.detail.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))
//
if (!stringIsNotEmpty(this.scoreInfo.province)) {
uni.showToast({title: '请选择高考省份', icon: "none"});
return;
}
//)
console.log(this.scoreInfo.cognitioPolyclinic)
if (!stringIsNotEmpty(this.scoreInfo.cognitioPolyclinic)) {
uni.showToast({title: '请选择选考科目', icon: "none"});
return;
}
// //
// //
if (arrayIsNotEmpty(this.pCategoryChildrenList)) { if (arrayIsNotEmpty(this.pCategoryChildrenList)) {
@ -153,6 +220,12 @@ export default {
} }
this.scoreInfo[key] = score this.scoreInfo[key] = score
} }
this.scoreInfo.yybysy = this.scoreInfo.yybysy ? this.scoreInfo.yybysy : 0
this.scoreInfo.yybyqy = this.scoreInfo.yybyqy ? this.scoreInfo.yybyqy : 0
this.scoreInfo.yyjy = this.scoreInfo.yyjy ? this.scoreInfo.yyjy : 0
this.scoreInfo.fzby = this.scoreInfo.fzby ? this.scoreInfo.fzby : 0
this.scoreInfo.xjysdy = this.scoreInfo.xjysdy ? this.scoreInfo.xjysdy : 0
this.scoreInfo.xjysby = this.scoreInfo.xjysby ? this.scoreInfo.xjysby : 0
} else { } else {
this.scoreInfo.yybysy = 0 this.scoreInfo.yybysy = 0
this.scoreInfo.yybyqy = 0 this.scoreInfo.yybyqy = 0
@ -163,26 +236,38 @@ export default {
} }
// //
let professionalScore = parseInt(this.scoreInfo.professionalScore) let professionalScore = parseInt(this.scoreInfo.professionalScore)
console.log('professionalScore:' + professionalScore) if(this.professionalCategoryArray[this.professionalCategoryIndex].value !=='表演类'){
if (isNaN(professionalScore) || professionalScore < 0 || professionalScore > this.professionalCategoryScoreMax) { console.log('professionalScore:' + professionalScore)
if (this.professionalCategoryArray[this.professionalCategoryIndex].label === '音乐类') { if (isNaN(professionalScore) || professionalScore < 0 || professionalScore > this.professionalCategoryScoreMax) {
uni.showToast({title: '请输入主项成绩', icon: "none"}); if (this.professionalCategoryIndex && this.professionalCategoryArray[this.professionalCategoryIndex].label === '音乐类') {
} else { uni.showToast({title: '请输入主项成绩', icon: "none"});
uni.showToast({title: '统考成绩请输入0~' + this.professionalCategoryScoreMax + '之间', icon: "none"}); } else {
if (this.professionalCategoryScoreMax) {
uni.showToast({title: '统考成绩请输入0~' + this.professionalCategoryScoreMax + '之间', icon: "none"});
} else {
uni.showToast({title: '请输入统考成绩', icon: "none"});
}
}
return;
} }
return;
} }
// //
let culturalScore = parseInt(this.scoreInfo.culturalScore) let culturalScore = parseInt(this.scoreInfo.culturalScore)
if (isNaN(professionalScore) || culturalScore < 0 || culturalScore > 750) { if (isNaN(culturalScore) || culturalScore < 0 || culturalScore > 750) {
uni.showToast({title: '文化分请输入0~750之间', icon: "none"}); uni.showToast({title: '文化分请输入0~750之间', icon: "none"});
return; return;
} }
this.scoreInfo.professionalScore = parseInt(this.scoreInfo.professionalScore) this.scoreInfo.professionalScore = parseInt(this.scoreInfo.professionalScore)
this.scoreInfo.culturalScore = culturalScore this.scoreInfo.culturalScore = culturalScore
let title = '文化成绩:' + this.scoreInfo.culturalScore
if (this.scoreInfo.professionalCategory !== '表演类') {
title += " " + (this.scoreInfo.professionalScore ? (this.pCategoryChildrenList && this.pCategoryChildrenList.length > 0 ? '主项成绩:' : '统考成绩:') + this.scoreInfo.professionalScore : "")
}
uni.showModal({ uni.showModal({
title: '确认高考成绩', title: '确认高考成绩',
content: '文化成绩:' + this.scoreInfo.culturalScore + " " + (this.scoreInfo.professionalScore ? (this.pCategoryChildrenList && this.pCategoryChildrenList.length > 0 ? '主项成绩:' : '统考成绩:') + this.scoreInfo.professionalScore : ""), content: title,
confirmText: '确定', confirmText: '确定',
cancelText: '取消', cancelText: '取消',
success: function (res) { success: function (res) {
@ -196,7 +281,10 @@ export default {
console.log('清空数据') console.log('清空数据')
}, },
onProfessionalCategory() { onProfessionalCategory() {
this.professionalCategoryVisible = true; //
if (this.vipInfo.vipLevel === 9 || this.oldScoreInfo === null || !stringIsNotEmpty(this.oldScoreInfo.professionalCategory)) {
this.professionalCategoryVisible = true;
}
}, },
onProfessionalCategoryClose() { onProfessionalCategoryClose() {
// //
@ -209,6 +297,7 @@ export default {
} }
console.log('关闭') console.log('关闭')
this.professionalCategoryVisible = false this.professionalCategoryVisible = false
this.checkForm()
}, },
onProfessionalCategoryOpen() { onProfessionalCategoryOpen() {
console.log('打开') console.log('打开')
@ -225,11 +314,13 @@ export default {
this.professionalCategoryVisible = false this.professionalCategoryVisible = false
} }
this.pCategoryChildrenList = [] this.pCategoryChildrenList = []
this.checkForm()
}, },
/*选择 子类*/ /*选择 子类*/
professionalCategoryChildrenChange(e) { professionalCategoryChildrenChange(e) {
console.log(e) console.log(e)
this.pCategoryChildrenList = e.detail.value this.pCategoryChildrenList = e.detail.value
this.checkForm()
}, },
checkChildrenNameToKey(e) { checkChildrenNameToKey(e) {
if (e === '音乐表演声乐') { if (e === '音乐表演声乐') {
@ -251,114 +342,171 @@ export default {
</script> </script>
<template> <template>
<view> <view class="container" style="background-color: #ffffff">
<!-- <page-head title=""></page-head>--> <view class="uni-padding-wrap" style="text-align: center">
<view class="uni-padding-wrap"> <view class="font-size-medium font-weight-b">
<view class="uni-title uni-common-mt"> 请输入成绩
统考/省联考成绩
<text>\n暂仅支持统考及省组织的联考科类成绩评估</text>
</view> </view>
</view> </view>
<view class="uni-padding-wrap uni-common-mt"> <!--表单-->
<form class="form" @submit="formSubmit" @reset="formReset"> <view class="uni-padding-wrap uni-common-mt border-top">
<view class="uni-form-item uni-column"> <view class="forms">
<view class="title">考区<span class="red">*</span></view> <view class="form-item">
<view class="uni-list"> <view class="form-item-label">高考省份</view>
<view class="uni-list-cell"> <view class="form-item-view form-input">
<view class="uni-list-cell-left"> <picker @change="bindPicker_provinceChange" :value="scoreInfo.province" :range="provinceArray"
当前选择 range-key="name">
</view> <view class="uni-input">{{ scoreInfo.province }}</view>
<view class="uni-list-cell-db"> </picker>
<picker @change="bindPicker_provinceChange" :value="scoreInfo.province" :range="provinceArray"
range-key="name">
<view class="uni-input">{{ scoreInfo.province }}</view>
</picker>
</view>
</view>
</view> </view>
</view> </view>
<view class="uni-form-item uni-column"> <view class="form-item">
<view class="title">科目<span class="red">*</span></view> <view class="form-item-label">专业类别</view>
<view class="uni-list"> <view class="form-item-view form-input">
<view class="uni-list-cell"> <view style="min-height: 80rpx;margin: auto 25rpx" @click="onProfessionalCategory">
<view class="uni-list-cell-left"> <view v-if="professionalCategoryIndex || professionalCategoryArray[professionalCategoryIndex]"
当前选择 style="height: auto !important;">
</view> <!--选择了无子专业-->
<view class="uni-list-cell-db"> <text style="line-height: 80rpx;" v-if="!pCategoryChildrenList || pCategoryChildrenList.length===0">
<picker @change="bindPicker_cognitioPolyclinicChange" :value="scoreInfo.cognitioPolyclinic" {{
:range="cognitioPolyclinicArray" range-key="name"> professionalCategoryArray[professionalCategoryIndex] ? professionalCategoryArray[professionalCategoryIndex].label : ''
<view class="uni-input">{{ scoreInfo.cognitioPolyclinic }}</view> }}
</picker>
</view>
</view>
</view>
</view>
<view class="uni-form-item uni-column">
<view class="title">报考方向<span class="red">*</span></view>
<view class="uni-list" @click="onProfessionalCategory">
<view class="uni-list-cell">
<view class="uni-list-cell-left">
当前选择
</view>
<view class="uni-list-cell-db uni-input" style="height: auto !important;">
<!--选择了-->
<text style="line-height: 50rpx;"
v-if="professionalCategoryIndex!==null &&professionalCategoryArray && (!pCategoryChildrenList || pCategoryChildrenList.length===0)">
{{ professionalCategoryArray[professionalCategoryIndex].label }}
</text> </text>
<view style="line-height: 35rpx;" <!--选择了有子专业-->
v-if="professionalCategoryIndex!==undefined && pCategoryChildrenList &&pCategoryChildrenList.length>0"> <view style="line-height: 40rpx;"
v-if="pCategoryChildrenList &&pCategoryChildrenList.length>0">
<text class="flex" v-for="(item,index) in pCategoryChildrenList" :key="index"> <text class="flex" v-for="(item,index) in pCategoryChildrenList" :key="index">
{{ item }} {{ item }}
</text> </text>
</view> </view>
</view>
<view v-else>
<text style="line-height: 80rpx;color: #808080">
请选择专业类别
</text>
</view> </view>
</view> </view>
</view> </view>
</view> </view>
<view class="uni-form-item uni-column" v-if="professionalCategoryIndex!==undefined" <!--选考科目-->
<view class="form-item">
<view class="form-item-label">选考科目</view>
<view class="form-item-view">
<view class="flexWrap">
<view class="kelei-item" @click="switchKelei(item)"
:class="scoreInfo.cognitioPolyclinic===item.name?'kelei-item-active':''"
v-for="(item,index) in cognitioPolyclinicArray" :key="index">
<text>{{ item.name }}</text>
</view>
</view>
</view>
</view>
<!--子项专业成绩-->
<view class="form-item" v-if="professionalCategoryArray[professionalCategoryIndex]"
v-for="(item,index) in pCategoryChildrenList" :key="index"> v-for="(item,index) in pCategoryChildrenList" :key="index">
<view class="title">{{ item }}成绩<span class="red">*</span></view> <view class="form-item-label">{{ item }}成绩</view>
<input class="uni-input" type="number" v-model="scoreInfo[checkChildrenNameToKey(item)]" name="culturalScore" <view class="form-item-view form-input flexWrap">
:placeholder="'请输入专业分(满分'+professionalCategoryScoreMax+''"/> <view class="flex-item-9">
<input class="uni-input" type="number" @input="checkForm"
v-model="scoreInfo[checkChildrenNameToKey(item)]"
name="culturalScore"
:placeholder="'请输入专业成绩(满分'+professionalCategoryScoreMax+''"/>
</view>
<view class="flex-item-1">
<text style="line-height: 80rpx"></text>
</view>
</view>
</view> </view>
<view class="uni-form-item uni-column"> <!--统考成绩-->
<view class="title" v-if="professionalCategoryArray &&professionalCategoryIndex!==undefined"> <view class="form-item"
{{ v-if="professionalCategoryArray[professionalCategoryIndex] && professionalCategoryArray[professionalCategoryIndex].label!=='表演类'">
professionalCategoryArray[professionalCategoryIndex] && professionalCategoryArray[professionalCategoryIndex].label === '音乐类' ? '主项成绩' : '统考成绩' <view class="form-item-label"
}}<span v-if="professionalCategoryArray[professionalCategoryIndex] && professionalCategoryArray[professionalCategoryIndex].label==='音乐类'">
class="red">*</span></view> 主项成绩
<input class="uni-input" type="number" v-model="scoreInfo.professionalScore" name="professionalScore" </view>
v-if="professionalCategoryArray[professionalCategoryIndex] && professionalCategoryArray[professionalCategoryIndex].label==='音乐类'" <view class="form-item-label" v-else>统考成绩</view>
:placeholder="'请输入主项成绩'"/> <view class="form-item-view form-input">
<input class="uni-input" type="number" v-model="scoreInfo.professionalScore" name="professionalScore" v-else <view class="flexWrap">
:placeholder="'请输入统考分('+professionalCategoryScoreMax+''"/> <view class="flex-item-9">
<input class="uni-input" type="number" @blur="checkForm()" @input="checkForm()"
v-model="scoreInfo.professionalScore" name="professionalScore"
v-if="professionalCategoryArray[professionalCategoryIndex] && professionalCategoryArray[professionalCategoryIndex].label==='音乐类'"
:placeholder="'请输入主项成绩'"/>
<input class="uni-input" type="number" @blur="checkForm()" @input="checkForm()"
v-model="scoreInfo.professionalScore" name="professionalScore"
v-else
:placeholder="professionalCategoryScoreMax?'请输入统考分('+professionalCategoryScoreMax+'':'请输入统考成绩'"/>
</view>
<view class="flex-item-1">
<text style="line-height: 80rpx"></text>
</view>
</view>
</view>
</view> </view>
<view class="uni-form-item uni-column"> <!--文化成绩-->
<view class="title">文化成绩<span class="red">*</span></view> <view class="form-item">
<input class="uni-input" type="number" v-model="scoreInfo.culturalScore" name="culturalScore" <view class="form-item-label">文化成绩</view>
placeholder="请输入文化分(满分750)"/> <view class="form-item-view form-input flexWrap">
<view class="flex-item-9">
<input class="uni-input" type="number" @blur="checkForm()" @input="checkForm()"
v-model="scoreInfo.culturalScore" name="culturalScore"
placeholder="请输入文化成绩满分750"/>
</view>
<view class="flex-item-1">
<text style="line-height: 80rpx"></text>
</view>
</view>
</view> </view>
<view class="uni-form-item uni-column"> <!--语文成绩-->
<view class="title">英语成绩</view> <view class="form-item">
<input class="uni-input" type="number" v-model="scoreInfo.englishScore" name="englishScore" <view class="form-item-label">语文成绩</view>
placeholder="请输入英语成绩(选填)"/> <view class="form-item-view form-input flexWrap">
<view class="flex-item-9">
<input class="uni-input" type="number" v-model="scoreInfo.chineseScore" name="englishScore"
placeholder="请输入语文成绩(选填)"/>
</view>
<view class="flex-item-1">
<text style="line-height: 80rpx"></text>
</view>
</view>
</view> </view>
<view class="uni-form-item uni-column"> <!--外语成绩-->
<view class="title">语文成绩</view> <view class="form-item">
<input class="uni-input" type="number" v-model="scoreInfo.chineseScore" name="chineseScore" <view class="form-item-label">外语成绩</view>
placeholder="请输入语文成绩(选填)"/> <view class="form-item-view form-input flexWrap">
<view class="flex-item-9">
<input class="uni-input" type="number" v-model="scoreInfo.englishScore" name="englishScore"
placeholder="请输入外语成绩(选填)"/>
</view>
<view class="flex-item-1">
<text style="line-height: 80rpx"></text>
</view>
</view>
</view> </view>
</view>
</view>
<view v-if="vipInfo.vipLevel===9" class="submitButtonView"
<view class="uni-btn-v"> :class="formRuleFlag?'button-active':'button-disabled'" @click="formSubmit">
<button form-type="submit">可修改2次</button> <text class="font-weight-b">保存</text>
</view> </view>
</form> <!--普通vip 一天只能改10次成绩-->
<view v-else-if="vipInfo && vipInfo.vipLevel && vipInfo.vipLevel <=2 && (10-useCount)>0" class="submitButtonView"
:class="formRuleFlag?'button-active':'button-disabled'" @click="formSubmit">
<text class="font-weight-b">还可更改{{ 10-useCount}}</text>
</view>
<!--非vip一天只能改5次-->
<view v-else-if="5-useCount>0" class="submitButtonView"
:class="formRuleFlag?'button-active':'button-disabled'" @click="formSubmit">
<text class="font-weight-b">还可更改{{ 5-useCount }}</text>
</view>
<view v-else class="submitButtonView button-disabled">
<text class="font-weight-b">今日修改次数已用完</text>
</view>
<view class="darkGray padding10-30" v-if="vipInfo.vipLevel ===null || vipInfo.vipLevel!==9">
仅可修改一次专业类别
</view> </view>
</view> </view>
<!-- 每次弹出重新计算内容高度适用动态数据加载 --> <!-- 每次弹出重新计算内容高度适用动态数据加载 -->
<px-popup-bottom :visible.sync="professionalCategoryVisible" title="请选择专业类别" <px-popup-bottom :visible.sync="professionalCategoryVisible" title="请选择专业类别"
@reachBottom="onProfessionalCategoryBottom" @reachBottom="onProfessionalCategoryBottom"
@ -395,16 +543,71 @@ export default {
</template> </template>
<style scoped lang="scss"> <style scoped lang="scss">
.container {
height: 100%;
}
.uni-form-item .title { .uni-form-item .title {
padding: 20rpx 0; padding: 20rpx 0;
} }
/*表单 start*/
.form-item {
display: flex;
align-items: center;
margin: 30rpx 0;
}
.form-item-label {
width: 20%;
}
.form-item-view {
width: 80%;
min-height: 80rpx;
}
.form-input {
border: 1rpx solid #e6e6e6;
}
//
.kelei-item {
background-color: #f7f7f7;
color: black;
padding: 20rpx 30rpx;
margin-right: 30rpx;
}
.kelei-item-active {
background-color: #feede1;
color: #f96712;
}
.submitButtonView {
margin: 30rpx;
text-align: center;
border-radius: 15rpx;
line-height: 80rpx;
}
.button-disabled {
color: white;
background-color: #d8d8d8;
}
.button-active {
color: white;
background: linear-gradient(#f79459, #f96622);
}
/*表单 end*/
.uni-picker-tips { .uni-picker-tips {
font-size: 12px; font-size: 12px;
color: #666; color: #666;
margin-bottom: 15px; margin-bottom: 15px;
padding: 0 15px; padding: 0 15px;
/* text-align: right; */
} }
/*底部抽屉 报考方向内容 start*/ /*底部抽屉 报考方向内容 start*/

View File

@ -1,6 +1,5 @@
<script> <script>
import Request from '@/common/request' import Request from '@/common/request'
import ApiConstant from "@/common/ApiConstant";
import ImagesConstant from "@/common/ImagesConstant"; import ImagesConstant from "@/common/ImagesConstant";
let request = new Request() let request = new Request()
@ -30,10 +29,13 @@ export default {
title: '用户协议', title: '用户协议',
url: '/pages/zyb/other/userAgreement' url: '/pages/zyb/other/userAgreement'
}, },
// #ifdef MP-WEIXIN
{ {
title: '联系我们', title: '联系我们',
url: '/pages/zyb/other/web-view' url: '/pages/zyb/other/web-view'
}, },
// #endif
/*{ /*{
title: '注销账号', title: '注销账号',
method:'' method:''

View File

@ -22,43 +22,41 @@ export default {
data() { data() {
return { return {
schoolCode: '', schoolCode: '',
year:'2022', year: '2023',
schoolInfo: {}, schoolInfo: {},
scoreInfo: {},
collectSchoolList: [],// collectSchoolList: [],//
collectFlag: false,// collectFlag: false,//
majorIndex:0, majorIndex: 0,
majorArray: [ majorArray: [],//
{
majorName: '设计学类(环境设计、视觉传达设计)',
}
],//
} }
}, },
onLoad(e) { onLoad(e) {
//
this.scoreInfo = uni.getStorageSync('scoreInfo')
console.log(e) console.log(e)
if (e.schoolCode) { if (e.schoolCode) {
this.schoolCode = e.schoolCode this.schoolCode = e.schoolCode
} }
this.getSchoolInfo() this.getSchoolInfo()
}, },
onShareAppMessage(){ onShareAppMessage() {
return { return {
title: "文化分测算", // title: "文化分测算", //
path: "/pages/zyb/testCultural/detail?schoolCode="+this.schoolCode,// path: "/pages/zyb/testCultural/detail?schoolCode=" + this.schoolCode,//
} }
}, },
// //
onShareTimeline(res) { onShareTimeline(res) {
return { return {
title: "文化分测算", // title: "文化分测算", //
path: "/pages/zyb/testCultural/detail?schoolCode="+this.schoolCode,// path: "/pages/zyb/testCultural/detail?schoolCode=" + this.schoolCode,//
} }
}, },
methods: { methods: {
gotoSchoolDetail() { gotoSchoolDetail(e) {
uni.navigateTo({ uni.navigateTo({
url: '/pages/zyb/school/detail?schoolCode=' + this.schoolCode url: '/pages/zyb/school/detail?schoolCode=' + this.schoolCode +"&tab="+e
}) })
}, },
/*院校详情信息*/ /*院校详情信息*/
@ -69,12 +67,12 @@ export default {
console.log(r) console.log(r)
if (r.success) { if (r.success) {
this.schoolInfo = r.result this.schoolInfo = r.result
if (this.schoolInfo.city.includes(this.schoolInfo.province)) { if (this.schoolInfo.city && this.schoolInfo.city.includes(this.schoolInfo.province)) {
this.schoolInfo.cityProvince = true this.schoolInfo.cityProvince = true
} }
} }
this.checkCollect()
this.getTestCultural() this.getTestCultural()
this.checkCollect()
}).catch(err => { }).catch(err => {
}).finally(() => { }).finally(() => {
}); });
@ -117,13 +115,13 @@ export default {
} }
uni.setStorageSync('collectSchoolList', collectSchoolList) uni.setStorageSync('collectSchoolList', collectSchoolList)
}, },
bindMajorArrayPickerChange(e){ bindMajorArrayPickerChange(e) {
this.majorIndex = e.detail.value this.majorIndex = e.detail.value
}, },
getTestCultural(){ getTestCultural() {
request.get(ApiConstant.Major.testCultural, { request.get(ApiConstant.Major.testCultural, {
schoolCode: this.schoolCode, schoolCode: this.schoolCode,
year:this.year year: this.year
}).then(r => { }).then(r => {
console.log(r) console.log(r)
if (r.success) { if (r.success) {
@ -157,7 +155,8 @@ export default {
<view class="school-item"> <view class="school-item">
<view class="uni-flex flex"> <view class="uni-flex flex">
<view class="flex-item-25 t_item"> <view class="flex-item-25 t_item">
<image :src="schoolInfo.schoolIcon||ImagesConstant.defaultIcon" style="width: 128rpx;height: 128rpx" mode="aspectFill"/> <image :src="schoolInfo.schoolIcon||ImagesConstant.defaultIcon" style="width: 128rpx;height: 128rpx"
mode="aspectFill"/>
</view> </view>
<view class="flex-item-75 t_item"> <view class="flex-item-75 t_item">
<view class="uni-flex flex"> <view class="uni-flex flex">
@ -175,13 +174,12 @@ export default {
<view class="address-item address-item-before" v-if="schoolInfo.province">{{ schoolInfo.province }} <view class="address-item address-item-before" v-if="schoolInfo.province">{{ schoolInfo.province }}
</view> </view>
<view class="address-item" v-if="schoolInfo.city">{{ schoolInfo.city }}</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>
</view> </view>
<view class="uni-flex flex"> <view class="uni-flex flex">
<view class="flex-item-10 t_item" style="display: flex;"> <view class="flex-item-10 t_item">
<view class="tags"> <view class="tags flexWrap">
<text class="tag" v-for="(tag,tindex) in schoolInfo.tagsList" :key="tindex" v-show="tag !=='普通本科'"> <text class="tag" v-for="(tag,tindex) in schoolInfo.tagsList" :key="tindex" v-show="tag !=='普通本科'">
{{ tag }} {{ tag }}
</text> </text>
@ -191,7 +189,7 @@ export default {
</view> </view>
</view> </view>
<view class="uni-flex flex other"> <view class="uni-flex flex other">
<view class="flex-item-33 t_item center" @click="gotoSchoolDetail"> <view class="flex-item-33 t_item center" @click="gotoSchoolDetail('jbjs')">
<view class="t-item-b"> <view class="t-item-b">
<view style="display: flex"> <view style="display: flex">
<image :src="ImagesConstant.yxjs"/> <image :src="ImagesConstant.yxjs"/>
@ -199,7 +197,7 @@ export default {
<text class="text">院校介绍</text> <text class="text">院校介绍</text>
</view> </view>
</view> </view>
<view class="flex-item-33 t_item center" @click="gotoSchoolDetail"> <view class="flex-item-33 t_item center" @click="gotoSchoolDetail('zlxx')">
<view class="t-item-b"> <view class="t-item-b">
<view style="display: flex"> <view style="display: flex">
<image :src="ImagesConstant.zlsj"/> <image :src="ImagesConstant.zlsj"/>
@ -207,7 +205,7 @@ export default {
<text class="text">招录数据</text> <text class="text">招录数据</text>
</view> </view>
</view> </view>
<view class="flex-item-33 t_item center end" @click="gotoSchoolDetail"> <view class="flex-item-33 t_item center end" @click="gotoSchoolDetail('zlxx')">
<view class="t-item-b"> <view class="t-item-b">
<view style="display: flex"> <view style="display: flex">
<image :src="ImagesConstant.lqxx"/> <image :src="ImagesConstant.lqxx"/>
@ -219,18 +217,22 @@ export default {
</view> </view>
</view> </view>
<view class="body"> <view class="body">
<view class="detail"> <view class="detail" v-if="majorArray && majorArray.length>0">
<picker @change="bindMajorArrayPickerChange" :value="majorIndex" :range="majorArray" range-key='majorNameAll'> <picker @change="bindMajorArrayPickerChange" :value="majorIndex" :range="majorArray" range-key='majorName'>
<view class="flex"> <view class="flex">
<view style="width: 80%"> <view style="width: 80%">
<view class="flex majorTitle">专业名称</view> <view class="flex majorTitle">专业名称</view>
<view class="flex" style="padding: 0 30rpx 30rpx 30rpx"> <view class="flex" style="padding: 0 30rpx 30rpx 30rpx">
<view class="majorName">{{ majorArray[majorIndex].majorNameAll }}</view> <view class="majorName flexWrap">
<text>{{ majorArray[majorIndex].majorNameAll }}</text>
<text class="darkGray">{{majorArray[majorIndex].detail}}</text>
</view>
</view> </view>
</view> </view>
<view class="" style="width: 20%;margin: auto 0"> <view class="" style="width: 20%;margin: auto 0">
<image :src="ImagesConstant.keyboard.arrowDown" style="width: 70rpx;height: 55rpx;background-color: #42c6c6;border-radius: 10rpx"/> <image :src="ImagesConstant.keyboard.arrowDown"
<text class="flex">{{majorArray.length}}</text> style="width: 70rpx;height: 55rpx;background-color: #42c6c6;border-radius: 10rpx"/>
<text class="flex">{{ majorArray.length }}</text>
</view> </view>
</view> </view>
@ -244,17 +246,36 @@ export default {
</view> </view>
</view> </view>
<!--分数限制--> <!--分数限制-->
<view class="flex" v-if='!majorArray[majorIndex].score'> <view class="flex" v-if='!majorArray[majorIndex]|| !majorArray[majorIndex].score'>
<view class="mntext marginCenter"> <view class="mntext marginCenter">
未收录信息 未收录信息
</view> </view>
</view> </view>
<view v-else> <view v-else>
<view class="flex"> <view class="flex">
<view class="mntext marginCenter"> <view class="mntext marginCenter">
<text v-if="majorArray[majorIndex].rulesEnrollProbability==='专过文排'">文化需达院校控线{{majorArray[majorIndex].score}}</text> <text
<text v-else-if="majorArray[majorIndex].rulesEnrollProbability==='文过专排'">专业需达院校控线{{majorArray[majorIndex].score}}</text> v-if="majorArray[majorIndex] && majorArray[majorIndex].needScore && majorArray[majorIndex].needScore!==0">
<text v-else>文化及专业总分需达院校控线{{majorArray[majorIndex].score}}</text> 当前需要超过{{ majorArray[majorIndex].needScore }}
</text>
<text v-else-if="majorArray[majorIndex].rulesEnrollProbability==='专过文排'">
文化分需超过{{ majorArray[majorIndex].score }}
</text>
<text v-else-if="majorArray[majorIndex].rulesEnrollProbability==='文过专排'">
专业分需超过{{ majorArray[majorIndex].score }}
</text>
<text v-else-if="majorArray[majorIndex].rulesEnrollProbability==='文过专排主课'">
专业分需超过{{ majorArray[majorIndex].score }}
</text>
<text v-else-if="majorArray[majorIndex].rulesEnrollProbability.includes('') &&!majorArray[majorIndex].rulesEnrollProbability.includes('')">
文化分需超过{{ majorArray[majorIndex].score }}
</text>
<text v-else-if="!majorArray[majorIndex].rulesEnrollProbability.includes('') &&majorArray[majorIndex].rulesEnrollProbability.includes('')">
专业分需超过{{ majorArray[majorIndex].score }}
</text>
<text v-else>
文化分和专业分需要超过{{ majorArray[majorIndex].score }}
</text>
</view> </view>
</view> </view>
<view style="border-bottom:5rpx solid #f4f4f4"> <view style="border-bottom:5rpx solid #f4f4f4">
@ -263,16 +284,16 @@ export default {
</view> </view>
<view class="flex" style="padding:0 30rpx"> <view class="flex" style="padding:0 30rpx">
<view class="mntext"> <view class="mntext">
<text>{{year}}河南文化分控线为 <text>{{ majorArray[majorIndex].year }}河南文化分控线为
<text class="darkturquoise">{{ majorArray[majorIndex].culturalScore}}</text> <text class="darkturquoise">{{ majorArray[majorIndex].culturalScore }}</text>
</text> </text>
</view> </view>
</view> </view>
<view class="flex" style="padding:0 30rpx"> <view class="flex" style="padding:0 30rpx">
<view class="mntext"> <view class="mntext">
<text>{{year}}河南专业分控线为 <text>{{ majorArray[majorIndex].year }}河南专业分控线为
<text class="darkturquoise">{{ majorArray[majorIndex].specialScore}}</text> <text class="darkturquoise">{{ majorArray[majorIndex].specialScore }}</text>
</text> </text>
</view> </view>
@ -287,7 +308,7 @@ export default {
</view> </view>
<view class="flex"> <view class="flex">
<view class="mntext3 darkturquoise"> <view class="mntext3 darkturquoise">
<text>{{ majorArray[majorIndex].rulesEnrollProbability}}</text> <text>{{ majorArray[majorIndex].rulesEnrollProbability }}</text>
</view> </view>
</view> </view>
<view class="flex"> <view class="flex">
@ -296,8 +317,8 @@ export default {
</view> </view>
</view> </view>
<view class="flex"> <view class="flex">
<view class="mntext3 darkturquoise"> <view class="mntext3 darkturquoise" v-if="majorArray[majorIndex]">
<text>身体要求非色盲色弱</text> <text>{{majorArray[majorIndex].limitation || '暂无'}}</text>
</view> </view>
</view> </view>
</view> </view>
@ -327,9 +348,9 @@ export default {
</uni-popup> </uni-popup>
</view> </view>
<!--底部固定--> <!--底部固定-->
<view class="bottom"> <!-- <view class="bottom">
<view class="shareBtn" open-type="share">分享给朋友一起测</view> <view class="shareBtn" open-type="share">分享给朋友一起测</view>
</view> </view>-->
</template> </template>
<style scoped lang="scss"> <style scoped lang="scss">
@ -376,13 +397,13 @@ export default {
} }
.body { .body {
padding: 30rpx; padding: 20rpx 10rpx;
height: 80%; height: 80%;
.detail { .detail {
background-color: white; background-color: white;
border-radius: 30rpx; border-radius: 30rpx;
margin-bottom: 30rpx; margin-bottom: 20rpx;
/*标题*/ /*标题*/
.title { .title {
font-size: 40rpx; font-size: 40rpx;
@ -471,6 +492,7 @@ export default {
font-size: 23rpx; font-size: 23rpx;
line-height: 40rpx; line-height: 40rpx;
margin-right: 10rpx; margin-right: 10rpx;
margin-bottom: 5rpx;
border: 1rpx solid #52c6c6; border: 1rpx solid #52c6c6;
border-radius: 10rpx; border-radius: 10rpx;
padding: 0 8rpx; padding: 0 8rpx;
@ -487,7 +509,7 @@ export default {
content: "\2003"; content: "\2003";
} }
.darkturquoise{ .darkturquoise {
font-weight: 600; font-weight: 600;
} }

View File

@ -6,6 +6,7 @@ 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"; import ImagesConstant from "@/common/ImagesConstant";
let request = new Request() let request = new Request()
export default { export default {
name: "test-cultural", name: "test-cultural",
@ -20,48 +21,42 @@ export default {
}, },
data() { data() {
return { return {
topFlag:false, topFlag: false,
province: '河南', province: '河南',
tab: 'tk', tab: 'tk',
vipInfo: {},
selectForm: { selectForm: {
schoolName: '', schoolName: '',
province: '', province: '',
institutionType: '', institutionType: '',
schoolNature: '', schoolNature: '',
}, },
statusTypes: [ statusTypes: StaticConstant.loadStatusTypes,
{ contentText: StaticConstant.loadContentText,
value: 'more',
text: '加载前',
checked: true
}, {
value: 'loading',
text: '加载中',
checked: false
}, {
value: 'noMore',
text: '没有更多',
checked: false
}],
contentText: {
contentdown: '查看更多',
contentrefresh: '加载中',
contentnomore: '没有更多'
},
tk: { tk: {
status: 'more', status: 'more',
schoolList: [], schoolList: [],
current: 0, current: 0,
size: 10 size: 8
} }
} }
}, },
onShow() { onShow() {
}, },
onLoad(){ onLoad() {
this.vipInfo = uni.getStorageSync('vipInfo')
if (!this.vipInfo.vipFlag) {
this.tk.size = 5
}
this.getSchoolList() this.getSchoolList()
}, },
onReachBottom() {
console.log("已经滚动到底部了")
if (this.vipInfo && this.vipInfo.vipFlag) {
this.loadMore()
}
},
methods: { methods: {
handle(type) { handle(type) {
this.show = !this.show this.show = !this.show
@ -71,10 +66,21 @@ export default {
switchTab(e) { switchTab(e) {
this.tab = e this.tab = e
}, },
searchSchoolClick() {
this.tk.current = 1
this.tk.schoolList = []
this.getSchoolList()
},
clearSchoolInput() {
this.selectForm.schoolName = ''
this.tk.current = 1
this.tk.schoolList = []
this.getSchoolList()
},
/*院校列表*/ /*院校列表*/
getSchoolList() { getSchoolList() {
request.get(ApiConstant.School.searchSchoolList, { request.get(ApiConstant.School.searchSchoolList, {
schoolName: '', schoolName: this.selectForm.schoolName,
pageNum: this.tk.current, pageNum: this.tk.current,
pageSize: this.tk.size pageSize: this.tk.size
}).then(r => { }).then(r => {
@ -110,13 +116,13 @@ export default {
duration: 300 duration: 300
}); });
}, },
goto(url){ goto(url) {
uni.navigateTo({ uni.navigateTo({
url: url url: url
}) })
} }
}, },
onPageScroll(e){ // onPageScroll(e) { //
//600//600 //600//600
this.topFlag = e.scrollTop > 600; this.topFlag = e.scrollTop > 600;
} }
@ -125,15 +131,26 @@ export default {
<template> <template>
<view class="head"> <view class="head">
<view style="display: flex;"> <view class="flexWrap">
<view class="topTitle" :class="tab==='tk'?'topTitle-active':''" @click="switchTab('tk')"> <view class="flex-item-10 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="selectForm.schoolName"
@clear="clearSchoolInput" cancelButton="none" @confirm="searchSchoolClick"/>
</view>
<view style="width: 10%;line-height: 100rpx">
<text @click="searchSchoolClick">搜索</text>
</view>
</view>
</view>
<!-- <view class="topTitle" :class="tab==='tk'?'topTitle-active':''" @click="switchTab('tk')">
<text>统考院校</text> <text>统考院校</text>
<view style="display: flex;" :class="tab==='tk'?'bottom-active':''"></view> <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 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> </view>
<view class="body"> <view class="body">
@ -142,29 +159,31 @@ export default {
<view class="school-item uni-flex flex" v-for="(item,index) in tk.schoolList" :key="index" <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)"> @click="goto('/pages/zyb/testCultural/detail?schoolCode='+item.schoolCode)">
<view class="flex-item-25 t_item"> <view class="flex-item-25 t_item">
<image :src="item.schoolIcon||ImagesConstant.defaultIcon" style="width: 128rpx;height: 128rpx" mode="aspectFill"/> <image :src="item.schoolIcon||ImagesConstant.defaultIcon" style="width: 128rpx;height: 128rpx"
mode="aspectFill"/>
</view> </view>
<view class="flex-item-75 t_item"> <view class="flex-item-75 t_item">
<view class="uni-flex flex"> <view class="uni-flex flex">
<view class="flex-item-6 t_item" style="display: flex;height: 80rpx"> <view :class="item.schoolName.length<8?'flex-item-6':'flex-item-75'" class=" t_item" style="display: flex;height: 80rpx">
<text>[{{item.schoolCode}}]</text>
<text>{{ item.schoolName }}</text> <text>{{ item.schoolName }}</text>
</view> </view>
<view class="flex-item-4 t_item" style="display: flex;height: 60rpx"> <view :class="item.schoolName.length<10?'flex-item-4':'flex-item-25'" class="t_item" style="display: flex;height: 60rpx">
<view class="address adrs" v-if="item.city.includes(item.province)"> <view class="address adrs" v-if="item.city && item.city.includes(item.province)">
<!--直辖市--> <!--直辖市-->
<view class="address-item address-item-before" v-if="item.city">{{ item.city }}</view> <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 class="address-item" v-if="item.area && item.area.length<4">{{ item.area }}</view>
</view> </view>
<view class="address adrs" v-else> <view class="address adrs" v-else>
<view class="address-item address-item-before" v-if="item.province">{{ item.province }}</view> <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.city">{{ item.city.length>=4?item.city.substring(0,4):item.city }}</view>
<!-- <view class="address-item" v-if="item.area && item.area.length<4">{{item.area}}</view>--> <!-- <view class="address-item" v-if="item.area && item.area.length<4">{{item.area}}</view>-->
</view> </view>
</view> </view>
</view> </view>
<view class="uni-flex flex"> <view class="uni-flex flex">
<view class="flex-item-10 t_item" style="display: flex;"> <view class="flex-item-10 t_item">
<view class="tags"> <view class="tags flexWrap">
<text class="tag" v-for="(tag,tindex) in item.tagsList" :key="tindex" v-show="tag !=='普通本科'"> <text class="tag" v-for="(tag,tindex) in item.tagsList" :key="tindex" v-show="tag !=='普通本科'">
{{ tag }} {{ tag }}
</text> </text>
@ -172,22 +191,25 @@ export default {
</view> </view>
</view> </view>
</view> </view>
</view> </view>
<view class="container" @click="loadMore"> <view class="container" @click="loadMore" v-if="vipInfo && vipInfo.vipFlag">
<uni-load-more :status="tk.status" :content-text="contentText"/> <uni-load-more :status="tk.status" :content-text="contentText"/>
</view>
</view> </view>
</view> </view>
<!--判断vip-->
<view v-if="tk && tk.schoolList && tk.schoolList.length>0">
<my-checkvip :vip-flag="(vipInfo && vipInfo.vipFlag)"/>
</view> </view>
<view class="top" style="transition: 0.3s;" :style="{'display':(topFlag===true? 'block':'none')}"> <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> <uni-icons class="topc" type="arrowthinup" size="40" @click="top"></uni-icons>
</view> </view>
</template> </template>
<style scoped lang="scss"> <style scoped lang="scss">
.head { .head {
padding: 20rpx 30rpx; padding: 20rpx 10rpx;
text-align: center; text-align: center;
background-color: white; background-color: white;
} }
@ -198,9 +220,10 @@ export default {
/*院校列表*/ /*院校列表*/
.school-list { .school-list {
padding: 30rpx; padding: 30rpx 10rpx;
.school-item { .school-item {
margin-bottom: 30rpx; margin-bottom: 20rpx;
padding: 30rpx; padding: 30rpx;
background-color: white; background-color: white;
border-radius: 15rpx; border-radius: 15rpx;
@ -216,9 +239,10 @@ export default {
margin: 0 0 0 auto; margin: 0 0 0 auto;
} }
.address .address-item-before{ .address .address-item-before {
margin-left: 0 !important; margin-left: 0 !important;
} }
.address .address-item { .address .address-item {
margin-left: 10rpx; margin-left: 10rpx;
color: #8999a3; color: #8999a3;
@ -232,6 +256,7 @@ export default {
font-size: 23rpx; font-size: 23rpx;
line-height: 40rpx; line-height: 40rpx;
margin-right: 10rpx; margin-right: 10rpx;
margin-bottom: 5rpx;
border: 1rpx solid #52c6c6; border: 1rpx solid #52c6c6;
border-radius: 10rpx; border-radius: 10rpx;
padding: 0 8rpx; padding: 0 8rpx;
@ -258,21 +283,25 @@ export default {
} }
/* 回到顶部 */ /* 回到顶部 start*/
.top { .top {
position: relative; position: relative;
display: none; /* 先将元素隐藏 */ display: none; /* 先将元素隐藏 */
transition: 0.5s;
} }
.topc { .topc {
position: fixed; position: fixed;
right: -5%; right: 10rpx;
//background: #F0F0F0; //background: #F0F0F0;
background: #52c6c6; background: #e1e1e1;
border-radius: 50%; border-radius: 50%;
top: 80%; top: 80%;
height: 50px; height: 40px;
line-height: 50px; line-height: 40px;
} }
/* 回到顶部 end*/
</style> </style>

View File

@ -0,0 +1,186 @@
<!--卡密激活 页面-->
<script>
import StaticConstant from "@/common/StaticConstant";
import ApiConstant from "@/common/ApiConstant";
import Request from '@/common/request'
import user from "@/pages/zyb/user/index.vue";
import commonTool from "../../../common/js/commonTool";
import {stringIsNotEmpty} from "../../../common/util";
let request = new Request()
export default {
name: "cardamom",
computed: {
StaticConstant() {
return StaticConstant
}
},
data() {
return {
userInputPhone: '', //
buttonFlag:true,//
message:''
}
},
methods: {
phoneInput(e) {
setTimeout(() => {
//
this.userInputPhone = e.detail.value.replace(/[^0-9]/g, '')
const chinesePhoneNumberRegex = /^1[345789]\d{9}$/;
if (!chinesePhoneNumberRegex.test(this.userInputPhone)) {
this.buttonFlag = true
} else {
this.buttonFlag = false
}
},0)
},
/*绑定手机号*/
bindPhone(){
//
request.get(ApiConstant.User.dyCheckBindPhone, {phone: this.userInputPhone},{showLoad:false}).then(r => {
console.log(r)
if (r.success) {
if(r.result.status === 0){
//
this.message = '确认绑定此手机号吗'
this.$refs.alertDialog.open()
}else if(r.result.status === 1){
uni.showToast({title: '该手机号已存在', icon: "none"});
return
}if (r.result.status === 2) {
//
this.message = '该手机号已绑定过微信'
//uni.showToast({title: '', icon: "none"});
this.$refs.alertDialog.open()
return
}
}else{
uni.showToast({title: r.message, icon: "none"});
}
}).catch(err => {
}).finally(() => {
});
},
dialogConfirm() {
console.log('点击确认')
request.post(ApiConstant.User.dyBindPhone, {phone: this.userInputPhone}).then(r => {
console.log(r)
if (r.success) {
setTimeout(() => {
uni.showToast({title: '已绑定,请重新登录', icon: "none"});
},0)
uni.removeStorageSync('userInfo')
uni.removeStorageSync('token')
setTimeout(() => {
wx.reLaunch({
url: '/pages/zyb/login',
})
},800)
}else{
uni.showToast({title: r.message, icon: "none"});
}
}).catch(err => {
}).finally(() => {
});
},
dialogClose(){
console.log('点击关闭')
}
}
}
</script>
<template>
<view>
<!-- 提示窗示例 -->
<uni-popup ref="alertDialog" type="dialog">
<uni-popup-dialog type="info" cancelText="关闭" confirmText="同意" title="通知" :content="message" @confirm="dialogConfirm"
@close="dialogClose"></uni-popup-dialog>
</uni-popup>
</view>
<view class="card radius8">
<view class="card-label">绑定手机号码</view>
<view class="card-body">
<input class="input radius8" type="text" placeholder="请输入手机号码" v-model="userInputPhone"
maxlength="11" @input='phoneInput'/>
<button type="primary" style="margin-top: 20rpx" class="radius8" @click="bindPhone"
:disabled="buttonFlag">绑定
</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>
</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

@ -2,9 +2,15 @@
import Request from '@/common/request' import Request from '@/common/request'
import ApiConstant from "@/common/ApiConstant"; import ApiConstant from "@/common/ApiConstant";
import Link from "@/pages/extUI/link/link.vue"; import Link from "@/pages/extUI/link/link.vue";
import StaticConstant from "../../../common/StaticConstant";
let request = new Request() let request = new Request()
export default { export default {
name: "user-index", name: "user-index",
computed: {
StaticConstant() {
return StaticConstant
}
},
components: {Link}, components: {Link},
data() { data() {
return { return {
@ -25,7 +31,7 @@ export default {
}, },
onLoad() { onLoad() {
this.userInfo = uni.getStorageSync('userInfo') this.userInfo = uni.getStorageSync('userInfo')
if (this.userInfo === null || this.userInfo.phone === null || this.userInfo.phone === undefined || this.userInfo.phone === '') { if (this.userInfo === null) {
wx.reLaunch({ wx.reLaunch({
url: '/pages/zyb/login', url: '/pages/zyb/login',
}) })
@ -68,7 +74,7 @@ export default {
</view> </view>
<view class="item"> <view class="item">
<view class="left">高考年份</view> <view class="left">高考年份</view>
<view class="right dark">2023</view> <view class="right dark">{{StaticConstant.year}}</view>
</view> </view>
</view> </view>

View File

@ -3,12 +3,17 @@ import Request from '@/common/request'
import ApiConstant from "@/common/ApiConstant"; import ApiConstant from "@/common/ApiConstant";
import StaticConstant from "@/common/StaticConstant"; import StaticConstant from "@/common/StaticConstant";
import ImagesConstant from "@/common/ImagesConstant"; import ImagesConstant from "@/common/ImagesConstant";
import vip from "@/pages/zyb/vip/index.vue"; import commonTool from "../../../common/js/commonTool";
import NavImage from "../../template/nav-image/nav-image.vue";
let request = new Request() let request = new Request()
export default { export default {
name: "user-index", name: "user-index",
components: {NavImage},
computed: { computed: {
commonTool() {
return commonTool
},
ImagesConstant() { ImagesConstant() {
return ImagesConstant return ImagesConstant
}, },
@ -18,45 +23,86 @@ export default {
}, },
data() { data() {
return { return {
avatar:'http://files.yitisheng.vip/yitisheng.png', avatar: ImagesConstant.systemIcon,
volunteerName:'加载中', userInfo: {},
userInfo:{ vipInfo: {},
vipFlag: false scoreInfo: {},//
}, volunteerInfo: {},//
scoreInfo:{
id:'',
province: '',//
cognitioPolyclinic: '',//
professionalCategory: '',//
culturalScore: '',//
professionalScore: '',//
chineseScore:'',
englishScore:''
},
itemList: [ itemList: [
{ {
title: '更新快报', title: '会员卡激活',
icon: '/static/icons/linear/calendar.png', icon:'/static/icons/gif/icons8-cards.gif',
url: '/pages/zyb/vip/cardamom'
},
// #ifdef MP-TOUTIAO
{
title: '我的订单',
icon:'/static/icons/gif/icons8-order.gif',
url: '/pages/zyb/order/list'
},
{
title: '联系客服',
type:'im',
icon:'/static/icons/gif/icons8-customer-service.gif',
},
// #endif
// #ifdef MP-WEIXIN
{
title: '联系客服',
type:'contact',
icon:'/static/icons/gif/icons8-customer-service.gif',
},
{
title: '专家一对一',
//icon: '/static/icons/linear/calendar.png',
icon: '/static/icons/gif/icons8-man.gif',
url: '/pages/zyb/other/updateLogs' url: '/pages/zyb/other/updateLogs'
}, },
{
title: '商务合作',
//icon: '/static/icons/linear/quest.png',
icon: '/static/icons/gif/icons8-cooperate.gif',
method:'cooperate',
url: '/pages/zyb/other/commonProblem'
},
// #endif
/*{
title: '更新快报',
//icon: '/static/icons/linear/calendar.png',
icon: '/static/icons/gif/icons8-calendar.gif',
url: '/pages/zyb/other/updateLogs'
},*/
{ {
title: '我的收藏', title: '我的收藏',
icon: '/static/icons/linear/love.png', //icon: '/static/icons/linear/love.png',
icon: '/static/icons/gif/icons8-loading-heart.gif',
url: '/pages/zyb/user/myCollect' url: '/pages/zyb/user/myCollect'
}, },
{ {
title: '使用说明', title: '使用说明',
icon: '/static/icons/linear/illustrate.png', //icon: '/static/icons/linear/illustrate.png',
icon: '/static/icons/gif/detail.gif',
url: '/pages/zyb/other/useHelp' url: '/pages/zyb/other/useHelp'
}, },
/* {
title: '问题反馈',
//icon: '/static/icons/linear/quest.png',
icon: '/static/icons/gif/icons8-doubt.gif',
url: '/pages/zyb/other/commonProblem'
},*/
{ {
title: '常见问题', title: '常见问题',
icon: '/static/icons/linear/quest.png', //icon: '/static/icons/linear/quest.png',
icon: '/static/icons/gif/icons8-doubt.gif',
url: '/pages/zyb/other/commonProblem' url: '/pages/zyb/other/commonProblem'
}, },
{ {
title: '设置', title: '设置',
icon: '/static/icons/linear/settings.png', //icon: '/static/icons/linear/settings.png',
icon: '/static/icons/gif/icons8-wotuishi-settings.gif',
url: '/pages/zyb/settings' url: '/pages/zyb/settings'
}, },
@ -64,60 +110,99 @@ export default {
] ]
} }
}, },
onShow(){ onShow() {
this.userInfo = uni.getStorageSync('userInfo') this.userInfo = uni.getStorageSync('userInfo')
if (this.userInfo === null || this.userInfo.phone === null || this.userInfo.phone === undefined || this.userInfo.phone === '') { if (this.userInfo === null || this.userInfo.id=== undefined) {
wx.reLaunch({ wx.reLaunch({
url: '/pages/zyb/login', url: '/pages/zyb/login',
}) })
} }
this.vipInfo = uni.getStorageSync('vipInfo')
this.getScore() this.getScore()
}, },
onLoad() { onLoad() {
}, },
methods: { methods: {
// //
getScore(){ getScore() {
request.get(ApiConstant.Volunteer.volunteerInfo,{}).then(r => { this.scoreInfo = uni.getStorageSync('scoreInfo')
console.log(r) if (this.scoreInfo) {
if (r.success) { this.volunteerInfo = uni.getStorageSync('volunteer')
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() { gotoEditScore() {
console.log('前往修改成绩页面') console.log('前往修改成绩页面')
this.goto('/pages/zyb/score/edit') this.goto('/pages/zyb/score/edit')
}, },
switchFillVolunteer(){ switchFillVolunteer() {
uni.switchTab({ this.goto('/pages/zyb/fillVolunteer/my')
url:'/pages/zyb/fillVolunteer/my'
})
}, },
/*前往开通vip*/ /*前往开通vip*/
gotoOpenVip(){ gotoOpenVip() {
this.goto('/pages/zyb/vip/index') this.goto('/pages/zyb/vip/index')
}, },
/*商务合作弹框事件*/
cooperate(){
console.log('商务合作')
this.$refs.popup2.open("center")
},
cooperateClose(){
this.$refs.popup2.close()
},
goto(e) { goto(e) {
uni.navigateTo({ uni.navigateTo({
url: e url: e,
nimationType: 'pop-in',
animationDuration: 2000
}) })
}, },
previewImage(e){
console.log('e', e);
uni.previewImage({
//
urls: [],
// /
current: ImagesConstant.customerServiceQrCode,
//
indicator:'default',
//
loop:false,
//
// longPressActions:{
// itemList:[this.l(''),this.l]
// },
success: res => {
console.log('res', res);
},
fail: err => {
console.log('err', err);
}
});
}
} }
} }
</script> </script>
<template> <template>
<uni-popup ref="popup2" background-color="#fff" class="radius15">
<view class="popup-content radius15" style="padding: 30rpx 30rpx">
<view class="font-size-mini4 font-weight-b" style="text-align: center">添加老师微信</view>
<image @click="previewImage" :show-menu-by-longpress="true" :src="ImagesConstant.customerServiceQrCode" style="width: 600rpx;height: 800rpx"/>
<view class="flexWrap marginTopBot20 margin-top-20"><text class="text">联系人周老师</text></view>
<view class="flexWrap marginTopBot20"><text class="text">电话15090658223(微信同号)</text></view>
<view class="font-size-mini4 font-weight-b margin-top-20 margin-top-20" @click="cooperateClose" style="text-align: center">知道了</view>
</view>
</uni-popup>
<!-- 普通弹窗 -->
<uni-popup ref="popup" background-color="#fff" class="radius15">
<view class="popup-content radius15" style="padding: 30rpx 50rpx">
<view class="font-size-mini4 font-weight-b" style="text-align: center">商务合作</view>
<view class="flexWrap marginTopBot20 margin-top-20"><text class="text">联系人周老师</text></view>
<view class="flexWrap marginTopBot20"><text class="text">电话15090658223(微信同号)</text></view>
<view class="font-size-mini4 font-weight-b margin-top-20 margin-top-20" @click="cooperateClose" style="text-align: center">知道了</view>
</view>
</uni-popup>
<!--头部--> <!--头部-->
<view class="header" style="z-index: 1"> <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="uni-flex flex" style="padding: 30rpx 30rpx 0 30rpx" @click="goto('/pages/zyb/user/detail')">
@ -127,27 +212,36 @@ export default {
</view> </view>
<!--手机号--> <!--手机号-->
<view class="flex-item-7 t2"> <view class="flex-item-7 t2">
<view class="flex"> <view class="flex font-weight-600">
<text style="line-height: 50rpx">{{userInfo.realname}}</text> <text style="line-height: 50rpx">{{ userInfo.realname }}</text>
</view> </view>
<view class="flex"> <view class="flex">
<text style="line-height: 50rpx">{{scoreInfo.province}}</text> <text style="line-height: 50rpx">{{ scoreInfo.province }}</text>
<text style="line-height: 50rpx;font-size: 24rpx">/2023</text> <text style="line-height: 50rpx;font-size: 24rpx">/2023</text>
</view> </view>
</view> </view>
<!--按钮--> <!--按钮-->
<view class="flex-item2" style="padding-top: 60rpx;"> <view class="flex-item2" style="padding-top: 60rpx;">
<image class="arrow-right" :src="ImagesConstant.keyboard.arrowRightWhite"/> <image class="arrow-right" :src="ImagesConstant.keyboard.arrowRight"/>
</view> </view>
</view> </view>
<!--开通vip提示--> <!--开通vip提示-->
<view class="uni-flex flex" style="margin-top: 30rpx"> <view class="uni-flex flex white" style="margin-top: 30rpx">
<view class="flex-item-10 vipBackground" style="height: 50rpx;padding: 30rpx" v-if="userInfo.vipFlag"> <view class="flex-item-10 vipBackground" style="height: 50rpx;padding: 30rpx"
<text style="color:white">VIP到期时间2024-08-31</text> v-if="vipInfo && vipInfo.vipLevel>0">
<text>
{{ vipInfo.skuName || 'VIP' }}到期时间{{ commonTool.dateFormatYYYYMMDD(vipInfo.validTime) }}
</text>
<text class="float-right radius60" style="border: 1rpx solid white;padding: 0 20rpx" @click="gotoOpenVip">
查看更多
</text>
</view> </view>
<view class="flex-item-10 vipBackground" style="height: 50rpx;line-height: 50rpx;padding: 30rpx;color:white" v-else> <view class="flex-item-10 vipBackground" style="height: 50rpx;line-height: 50rpx;padding: 30rpx;"
v-if="(!vipInfo) || !vipInfo.vipLevel || vipInfo.vipLevel===0">
<text>升级为VIP, 准确查大学录取率</text> <text>升级为VIP, 准确查大学录取率</text>
<text class="float-right radius60" style="border: 1rpx solid white;padding: 0 20rpx" @click="gotoOpenVip">开通VIP</text> <text class="float-right radius60" style="border: 1rpx solid white;padding: 0 20rpx" @click="gotoOpenVip">
开通VIP
</text>
</view> </view>
</view> </view>
</view> </view>
@ -157,19 +251,34 @@ export default {
<view class="flex-item-1"> <view class="flex-item-1">
<text style="font-size: 24rpx">我的成绩</text> <text style="font-size: 24rpx">我的成绩</text>
</view> </view>
<view class="flex-item-7"> <view class="flex-item-7 trow1-center">
<view class="trow1-center" <view class="flexWrap margin-left-30">
style="line-height: 60rpx;"> <view class="flex-item-10">
<text style="margin:0 30rpx">文化分:{{this.scoreInfo.culturalScore}}</text> <text class="margin-right-10">文化:{{ this.scoreInfo.culturalScore }}</text>
<text style="margin-right: 30rpx">专业分:{{this.scoreInfo.professionalScore}}</text> <text class="margin-right-10" v-if="scoreInfo && scoreInfo.professionalCategory!=='表演类'">{{scoreInfo.professionalCategory==='音乐类'?'主项':'统考'}}:{{ this.scoreInfo.professionalScore }}</text>
<br v-if="scoreInfo && scoreInfo.professionalCategory!=='表演类'"/>
<text v-if="scoreInfo && scoreInfo.yybysy">音表声乐:</text>
<text class="margin-right-10" v-if="scoreInfo && scoreInfo.yybysy">{{ scoreInfo && scoreInfo.yybysy }}</text>
<text v-if="scoreInfo && scoreInfo.yybyqy">音表器乐:</text>
<text class="margin-right-10" v-if="scoreInfo && scoreInfo.yybyqy">{{ scoreInfo && scoreInfo.yybyqy }}</text>
<text v-if="scoreInfo && scoreInfo.yyjy">音乐教育:</text>
<text class="margin-right-10" v-if="scoreInfo && scoreInfo.yyjy">{{ scoreInfo && scoreInfo.yyjy }}</text>
<!--表演类-->
<text v-if="scoreInfo && scoreInfo.fzby">服装表演:</text>
<text class="margin-right-10" v-if="scoreInfo && scoreInfo.fzby">{{ scoreInfo && scoreInfo.fzby }}</text>
<text v-if="scoreInfo && scoreInfo.xjysdy">影视导演:</text>
<text class="margin-right-10" v-if="scoreInfo && scoreInfo.xjysdy">{{ scoreInfo && scoreInfo.xjysdy }}</text>
<text v-if="scoreInfo && scoreInfo.xjysby">影视表演:</text>
<text v-if="scoreInfo && scoreInfo.xjysby">{{ scoreInfo && scoreInfo.xjysby }}</text>
</view>
</view> </view>
</view> </view>
<view class="flexWrap margin-left-30"></view>
<view class="flex-item-2"> <view class="flex-item-2" @click="gotoEditScore()">
<view class="" style="margin-top: 20rpx"> <view class="" style="margin-top: 20rpx">
<view @click="gotoEditScore()" <view style="width: 100rpx;text-align: center;position: relative;left: 20rpx">
style="border:3rpx solid #4975fd;border-radius: 20rpx; width: 100rpx;text-align: center;cursor: pointer"> <image :src="ImagesConstant.edit2" class="icon40"/>
<text style="color:#4975fd;">修改</text>
</view> </view>
</view> </view>
</view> </view>
@ -182,29 +291,44 @@ export default {
</view> </view>
<view class="flex-item-7"> <view class="flex-item-7">
<view class="trow1-center" style=""> <view class="trow1-center" style="">
<view class="flex"> <view class="flex" v-if="scoreInfo && volunteerInfo">
<text style="margin:0 30rpx">{{volunteerName}}</text> <text style="margin:0 30rpx">{{ volunteerInfo.volunteerName || '' }}</text>
</view> </view>
<view class="flex" style="margin-left:30rpx;color:#c1c4cc"> <view class="flex" style="margin-left:30rpx;color:#c1c4cc">
<text>{{scoreInfo.professionalScore}}&nbsp;&nbsp;/</text> <!-- <text>{{ scoreInfo && scoreInfo.professionalScore || '&#45;&#45;' }}&nbsp;&nbsp;/</text>-->
<text>&nbsp;{{ scoreInfo.province }}&nbsp;/</text> <text>{{ scoreInfo && scoreInfo.province || '--' }}&nbsp;/</text>
<text>&nbsp;{{scoreInfo.professionalCategory}}</text> <text>&nbsp;{{ scoreInfo && scoreInfo.cognitioPolyclinic || '--' }}&nbsp;/</text>
<text>&nbsp;{{ scoreInfo && scoreInfo.professionalCategory || '--' }}</text>
</view> </view>
</view> </view>
</view> </view>
<view class="flex-item-2"> <view class="flex-item-2" @click="switchFillVolunteer">
<view style="width: 65rpx;height: 65rpx;text-align: center; margin-left: 10rpx; <view style="padding: 15rpx 0 15rpx 65rpx">
background: linear-gradient(131deg, rgb(18, 117, 236) 0%, rgb(122, 182, 249) 100%); <image src="/static/icons/icons8-menu.png" class="icon32"/>
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>
</view> </view>
<!--剩余选项--> <!--剩余选项-->
<view class="trow1"> <view class="trow1">
<view class="uni-flex flex" v-for="(item,index) in itemList" :key="index"> <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-10" v-if="item.type==='contact' || item.type ==='im'">
<view class="uni-flex flex trow1-child" :open-type="item.type">
<button class='contact-btn' :open-type="item.type" data-im-id="Shilo_">a</button>
<view class="flex-item-1">
<image :src="item.icon" class="icon40"/>
</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 class="flex-item-10" v-else @click="item.method==='cooperate'?cooperate() : 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"> <view class="flex-item-1">
<image :src="item.icon" style="width: 40rpx;height: 40rpx"/> <image :src="item.icon" style="width: 40rpx;height: 40rpx"/>
</view> </view>
@ -221,7 +345,7 @@ export default {
<!----> <!---->
<view class="uni-flex flex"> <view class="uni-flex flex">
<view class="flex-item-10" style="text-align: center;"> <view class="flex-item-10" style="text-align: center;">
<text>{{StaticConstant.systemName}}</text> <text>{{ StaticConstant.systemName }}</text>
</view> </view>
</view> </view>
</view> </view>
@ -229,7 +353,11 @@ export default {
<style scoped lang="scss"> <style scoped lang="scss">
.header { .header {
background: linear-gradient(131deg, rgb(18, 117, 236) 0%, rgb(122, 182, 249) 100%); background: repeating-linear-gradient(#dcdaf7, #f7f7f7, #e6e4e4);
background: -ms-repeating-linear-gradient(#dcdaf7, #f7f7f7, #e6e4e4);
background: -webkit-repeating-linear-gradient(#dcdaf7, #f7f7f7, #e6e4e4);
background: -moz-repeating-linear-gradient(#dcdaf7, #f7f7f7, #e6e4e4);
/*background: linear-gradient(131deg, rgb(18, 117, 236) 0%, rgb(122, 182, 249) 100%);*/
height: 340rpx; height: 340rpx;
/*头像*/ /*头像*/
.avatar { .avatar {
@ -252,7 +380,7 @@ export default {
.t2 { .t2 {
padding: 40rpx 20rpx 0 20rpx; padding: 40rpx 20rpx 0 20rpx;
font-weight: 500; font-weight: 500;
color: white; color: black;
} }
/*开通vip框*/ /*开通vip框*/
@ -271,7 +399,7 @@ export default {
background-color: #ffffff; background-color: #ffffff;
border-radius: 15rpx; border-radius: 15rpx;
padding: 20rpx 30rpx; padding: 20rpx 30rpx;
margin-bottom: 30rpx; margin-bottom: 20rpx;
.trow1-center { .trow1-center {
font-size: 24rpx; font-size: 24rpx;
@ -292,4 +420,16 @@ export default {
} }
} }
} }
//
:deep(.contact-btn) {
display: inline-block;
position: absolute;
width: 80%;
background: salmon;
opacity: 0;
border-radius: 0;
}
</style> </style>

View File

@ -4,6 +4,8 @@ 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 user from "@/pages/zyb/user/index.vue"; import user from "@/pages/zyb/user/index.vue";
import commonTool from "../../../common/js/commonTool";
import {stringIsNotEmpty} from "../../../common/util";
let request = new Request() let request = new Request()
export default { export default {
name: "cardamom", name: "cardamom",
@ -21,11 +23,13 @@ export default {
bankcardInput(e) { bankcardInput(e) {
setTimeout(() => { setTimeout(() => {
let card = e.detail.value; let card = e.detail.value;
console.log(card.length) let value = card.replace(/[^a-zA-Z0-9]/g, ''); //
//"-" if (stringIsNotEmpty(value)) {
card = card.replace(/\s/g, '').replace(/[^\d]/g, '').replace(/(\d{4})(?=\d)/g, '$1-'); //
this.userInputCardNum = card this.userInputCardNum = value.match(/.{1,2}/g).join('-');
console.log("有间隔", this.userInputCardNum); }else{
this.userInputCardNum = ''
}
},0) },0)
}, },
/*兑换按钮事件*/ /*兑换按钮事件*/
@ -39,9 +43,9 @@ export default {
console.log(r) console.log(r)
if (r.success) { if (r.success) {
/*更新VIP状态 start*/ /*更新VIP状态 start*/
let userInfo=uni.getStorageSync('userInfo') setTimeout(function (){
userInfo.vipFlag = true commonTool.reloadVipInfo()
uni.setStorageSync('userInfo',userInfo) },100)
/*更新VIP状态 end.*/ /*更新VIP状态 end.*/
setTimeout(function () { setTimeout(function () {
uni.showToast({title: r.message, icon: "none"}); uni.showToast({title: r.message, icon: "none"});
@ -69,9 +73,10 @@ export default {
<view class="card radius8"> <view class="card radius8">
<view class="card-label">卡密激活码</view> <view class="card-label">卡密激活码</view>
<view class="card-body"> <view class="card-body">
<input class="input radius8" type="number" placeholder="请输入卡密激活码" v-model="userInputCardNum" <input class="input radius8" type="text" placeholder="请输入卡密激活码" v-model="userInputCardNum"
maxlength="19" @input='bankcardInput'/> maxlength="17" @input='bankcardInput'/>
<button type="primary" style="margin-top: 20rpx" class="radius8" @click="cardActivation" :disabled="userInputCardNum.length!==19">兑换 <button type="primary" style="margin-top: 20rpx" class="radius8" @click="cardActivation"
:disabled="userInputCardNum.length===11?false:userInputCardNum.length===17?false:true">兑换
</button> </button>
</view> </view>
</view> </view>
@ -81,7 +86,7 @@ export default {
<view class="text-body"> <view class="text-body">
<text class="text-item">-适用范围:艺术类文理科考生(自主招生暂不适用)</text> <text class="text-item">-适用范围:艺术类文理科考生(自主招生暂不适用)</text>
<text class="text-item"> <text class="text-item">
-使用期限:自购买起截止到2024-8-31日有效分数修改次数:每届服务期内高考分数放榜前每日可修改5放榜后仅可修改1次 -使用期限:自购买起截止到2024-08-31日有效分数修改次数:每届服务期内高考分数放榜前每日可修改10放榜后仅可修改1次
</text> </text>
<text class="text-item">-系统数据来源于{{ StaticConstant.bm }}部门由合作网站提供</text> <text class="text-item">-系统数据来源于{{ StaticConstant.bm }}部门由合作网站提供</text>
<text class="text-item"> <text class="text-item">

View File

@ -5,6 +5,8 @@ import ImagesConstant from "@/common/ImagesConstant";
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 commonTool from "../../../common/js/commonTool";
import {stringIsNotEmpty} from "../../../common/util";
let request = new Request() let request = new Request()
export default { export default {
@ -20,8 +22,9 @@ export default {
}, },
data() { data() {
return { return {
orderCode:'',// orderCode: '',//
totalAmount:'',// totalAmount: '',//
signStr:''
} }
}, },
onLoad(e) { onLoad(e) {
@ -32,13 +35,18 @@ export default {
}, },
methods: { methods: {
getOrderDetail() { getOrderDetail() {
request.get(ApiConstant.VIP.orderDetail, {orderCode:this.orderCode}).then(r => { request.get(ApiConstant.VIP.orderDetail, {orderCode: this.orderCode}).then(r => {
console.log(r) console.log(r)
if (r.success) { if (r.success) {
// #ifdef MP-WEIXIN
this.signStr = r.result.orderSign this.signStr = r.result.orderSign
this.totalAmount = parseFloat(r.result.totalAmount)/100 // #endif
}else{ // #ifdef MP-TOUTIAO
uni.showToast({title:r.message, icon: "none"}); this.signStr = r.result.orderSign
// #endif
this.totalAmount = parseFloat(r.result.totalAmount)
} else {
uni.showToast({title: r.message, icon: "none"});
} }
}).catch(err => { }).catch(err => {
}).finally(() => { }).finally(() => {
@ -49,47 +57,126 @@ export default {
url: url url: url
}) })
}, },
paySubmit(){ paySubmit() {
if (!this.signStr) { if (!this.signStr) {
uni.showToast({title: '获取订单异常!', icon: "none"}); uni.showToast({title: '获取订单异常!', icon: "none"});
return return
} }
let sign = JSON.parse(this.signStr); let sign = JSON.parse(this.signStr);
// let that = this
uni.requestPayment({ uni.requestPayment({
provider: 'wxpay', provider: uni.getStorageSync('providerpayment'),
//
// #ifdef MP-WEIXIN
timeStamp: sign.timeStamp, timeStamp: sign.timeStamp,
nonceStr: sign.nonceStr, nonceStr: sign.nonceStr,
package: sign.package, package: sign.package,
signType: sign.signType, signType: sign.signType,
paySign: sign.paySign, paySign: sign.paySign,
// #endif
//
// #ifdef MP-TOUTIAO
orderInfo: sign.data,
service: 5,//5-,3-,4-;341.35.0.1+(743+)
//_debug: 1,//0/1线_debug=1便
//getOrderStatus: '',//Promise service=34
// #endif
//
success: function (res) { success: function (res) {
console.log('success:' + JSON.stringify(res)); console.log('==== uni.requestPayment success', res);
console.log('支付成功!') // #ifdef MP-TOUTIAO
setTimeout(function () { let code = res.code
uni.showToast({title:'支付成功', icon: "none"}); if(0 === code){
let userInfo=uni.getStorageSync('userInfo') //
userInfo.vipFlag = true console.log('支付成功!')
uni.setStorageSync('userInfo',userInfo) setTimeout(function () {
commonTool.reloadVipInfo()
uni.showToast({title:'支付成功', icon: "none"});
}, 100)
setTimeout(function () { setTimeout(function () {
//
uni.switchTab({ uni.switchTab({
url: '/pages/zyb/home' url: '/pages/zyb/home'
}); });
}, 2000) }, 1000)
}, 1000) }else{
uni.showToast({
title: 1===code?'支付超时':2===code?'支付失败':3===code?'支付关闭':4===code?'支付取消':"支付失败",
icon: 'none'
})
}
// #endif
// #ifdef MP-WEIXIN
let code = res.errMsg
if("requestPayment:ok" === code){
//
console.log('支付成功!')
setTimeout(function () {
commonTool.reloadVipInfo()
that.openPopup2()
}, 100)
}else{
uni.showToast({
title: 1===code?'支付超时':2===code?'支付失败':3===code?'支付关闭':4===code?'支付取消':"支付失败",
icon: 'none'
})
}
// #endif
}, },
fail: function (err) { fail: function (err) {
console.log('取消支付') console.log('取消支付')
console.log('fail:' + JSON.stringify(err)); console.log('fail:' + JSON.stringify(err));
} }
}); });
},
openPopup2() {
this.$refs.popup2.open("center")
},
maskClick() {
this.$refs.popup2.close()
//
uni.switchTab({
url: '/pages/zyb/home'
});
},
previewImage(e) {
console.log('e', e);
uni.previewImage({
//
urls: [],
// /
current: ImagesConstant.customerServiceQrCode,
//
indicator: 'default',
//
loop: false,
//
// longPressActions:{
// itemList:[this.l(''),this.l]
// },
success: res => {
console.log('res', res);
},
fail: err => {
console.log('err', err);
}
});
} }
} }
} }
</script> </script>
<template> <template>
<uni-popup ref="popup2" background-color="#fff" class="radius15" :maskClick='false'>
<view class="popup-content radius15" style="padding: 30rpx 30rpx">
<view class="font-size-mini4 font-weight-b" style="text-align: center">支付成功请添加老师微信</view>
<image @click="previewImage" :show-menu-by-longpress="true" :src="ImagesConstant.customerServiceQrCode"
style="width: 600rpx;height: 800rpx"/>
<view class="font-size-mini4 font-weight-b margin-top-20 margin-top-20" @click="maskClick"
style="text-align: center">知道了
</view>
</view>
</uni-popup>
<view class="background-white"> <view class="background-white">
<view class="border-top"></view> <view class="border-top"></view>
<view style="padding: 0 40rpx"> <view style="padding: 0 40rpx">
@ -98,7 +185,7 @@ export default {
<view class="text-body"> <view class="text-body">
<text class="text-item">适用考生艺术类考生</text> <text class="text-item">适用考生艺术类考生</text>
<text class="text-item">使用专业类别省内统考</text> <text class="text-item">使用专业类别省内统考</text>
<text class="text-item">适用批次艺考类本科及专科批</text> <text class="text-item">适用批次艺考类本科及专科批</text>
<text class="text-item">适用范围河南省</text> <text class="text-item">适用范围河南省</text>
</view> </view>
</view> </view>
@ -111,9 +198,10 @@ export default {
<view class="card"> <view class="card">
<text class="z-h6">开通提示</text> <text class="z-h6">开通提示</text>
<view class="text-body"> <view class="text-body">
<text class="text-item">1高考出分前可填写模拟成绩体验产品专业成绩/文化成绩/专业类别信息每日可修改5</text> <text class="text-item">1高考出分前可填写模拟成绩体验产品专业成绩/文化成绩信息每日可修改10</text>
<text class="text-item">2出分后仅可修改1次信息将模拟信息修改为最终成绩</text> <text class="text-item">2出分后仅可修改1次信息将模拟信息修改为最终成绩</text>
<text class="text-item">3使用过程中有任何疑问请及时反馈</text> <text class="text-item">3激活后如若未生效请尝试重新登录账号</text>
<text class="text-item">4使用过程中有任何疑问请及时反馈</text>
</view> </view>
</view> </view>
</view> </view>
@ -123,13 +211,15 @@ export default {
<view class="flex-item-3"> <view class="flex-item-3">
<view style="color: #df4e44;line-height: 120rpx"> <view style="color: #df4e44;line-height: 120rpx">
<text></text> <text></text>
<text class="font-weight-600 font-size-big2">{{totalAmount}}</text> <text class="font-weight-600 font-size-big2">{{ totalAmount }}</text>
</view> </view>
</view> </view>
<view class="flex-item-7"> <view class="flex-item-7">
<view @click="paySubmit" style="line-height:90rpx;float: right" class="padding10-30 background-red2 font-size-medium radius60"> <view @click="paySubmit" style="line-height:90rpx;float: right"
class="padding10-30 background-red2 font-size-medium radius60">
<view class="white">立即支付</view> <view class="white">立即支付</view>
</view> </view>
</view> </view>
</view> </view>
</view> </view>
@ -169,5 +259,6 @@ export default {
width: 100%; width: 100%;
background-color: white; background-color: white;
} }
/*底部 end*/ /*底部 end*/
</style> </style>

425
pages/zyb/vip/index-bak.vue Normal file
View File

@ -0,0 +1,425 @@
<!--
开通VIP 页面
-->
<script>
import StaticConstant from "@/common/StaticConstant";
import ApiConstant from "@/common/ApiConstant";
import ImagesConstant from "@/common/ImagesConstant";
import Request from '@/common/request';
import {stringIsNotEmpty} from "../../../common/util";
let request = new Request()
export default {
name: "vip-index",
components: {},
computed: {
ImagesConstant() {
return ImagesConstant
},
StaticConstant() {
return StaticConstant
}
},
data() {
return {
checkFlag: false,
cardIndex: 0,
cardArray: [],
hyqyList: [
{
project: '省控线',
v0: '是',
v1: '是',
v2: '是',
},
{
project: '改成绩',
v0: '5次/天',
v1: '5次/天',
v2: '10次/天'
}, {
project: '查专业',
v0: '是',
v1: '是',
v2: '是'
}, {
project: '查大学',
v0: '查询5条',
v1: '是',
v2: '是'
}, {
project: '测文化',
v0: '查询5条',
v1: '是',
v2: '是'
}, {
project: '查位次',
v0: '是',
v1: '是',
v2: '是'
}, {
project: '算投档',
v0: '否',
v1: '是',
v2: '是'
},{
project: '智能推荐',
v0: '仅推荐院校',
v1: '仅推荐院校',
v2: '是'
},{
project: 'AI填报',
v0: '否',
v1: '否',
v2: '是'
},
{
project: '院校录取率',
v0: '否',
v1: '否',
v2: '是'
}
]
}
},
onShow() {
let userInfo = uni.getStorageSync('userInfo');
if (!userInfo) {
wx.reLaunch({
url: '/pages/zyb/login',
})
}
if (!stringIsNotEmpty(userInfo.phone)) {
uni.reLaunch({
url: '/pages/zyb/user/bindPhone'
})
}
uni.getProvider({
service: 'payment',
success: function (res) {
console.log(res)
uni.setStorageSync('providerpayment', res.provider[0]);
}
});
//
this.getSkuList()
},
onLoad() {
},
methods: {
//
kaMi() {
this.goto('/pages/zyb/vip/cardamom')
},
getSkuList() {
request.get(ApiConstant.VIP.skuList, {provider:uni.getStorageSync('providerpayment')}).then(r => {
console.log(r)
if (r.success) {
this.cardArray = r.result
}
}).catch(err => {
}).finally(() => {
});
},
//
pay() {
//IOS
if (uni.getSystemInfoSync().platform === 'ios') {
uni.showToast({title: '抱歉IOS端暂不可购买 ', icon: "none"});
return
}
if (!this.checkFlag) {
uni.showToast({title: '请阅读会员服务协议并勾选 ', icon: "none"});
return
}
request.post(ApiConstant.Pay.vip1, {skuCode: this.cardArray[this.cardIndex].skuCode,provider:uni.getStorageSync('providerpayment')}
).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", duration: 2000});
}
}).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: 550rpx;">
<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">
河南艺体生更好的选择
</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"
v-if="cardArray && cardArray.length>0"
range-key="skuName">
{{ cardArray[cardIndex] && cardArray[cardIndex].skuName }}
<image :src="ImagesConstant.triangle_bottom" class="icon32"/>
</picker>
</view>
</view>
<view class="flex" style="margin-top: 30rpx;height: 50rpx">
<view class="flex-item-7" style="line-height: 40rpx">
<view class="flex font-size-mini2 brown">
{{ cardArray[cardIndex] && 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
</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] && cardArray[cardIndex].skuPrice }}
</text>
<text class="font-size-mini"></text>
</view>
</view>
</view>
</view>
<view class="member-benefits" style="height: 900rpx">
<view class="benefits-title">会员权益</view>
<view class="benefits-table">
<view class="benefits-row header">
<text class="benefits-cell">功能</text>
<text class="benefits-cell">基础版本</text>
<text class="benefits-cell">体验版本</text>
<text class="benefits-cell">VIP版本</text>
</view>
<view class="benefits-row" v-for="(item,index) in hyqyList" :class="index%2===0?'row2':'row1'" :key="index">
<text class="benefits-cell">{{ item.project }}</text>
<text class="benefits-cell">{{ item.v0 }}</text>
<text class="benefits-cell">{{ item.v1 }}</text>
<text class="benefits-cell">{{ item.v2 }}</text>
</view>
<!-- 可以根据需求添加更多的会员权益 -->
</view>
</view>
<view style="margin-top: 100rpx"></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" v-if="cardArray[cardIndex]">
{{ cardArray[cardIndex].skuOriginalPrice }}
</text>
<text class="red" v-if="cardArray[cardIndex]">
现价{{ 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*/
/*会员权益 start*/
.member-benefits {
padding: 30rpx;
background-color: white;
}
.benefits-title {
font-size: 32rpx;
text-align: center;
margin-bottom: 20rpx;
}
.benefits-table {
box-shadow: 0 2rpx 4rpx rgba(0, 0, 0, 0.1);
}
.benefits-row {
display: flex;
border-radius: 0;
}
.header {
background-color: #6341f7;
color: white;
border-radius: 10rpx 10rpx 0 0;
}
.header-cell {
color: white;
}
.odd {
background-color: #e9eaff;
}
.even {
background-color: #e9eaff;
border-radius: 0 0 10rpx 10rpx;
}
.benefits-cell {
flex: 1;
text-align: center;
border-right: 1rpx solid #fdf4dc;
padding: 10rpx;
}
.row2 {
background-color: #ffffff;
}
.row1 {
background-color: #e9eaff;
}
/*会员权益 end*/
</style>

View File

@ -5,12 +5,14 @@
import StaticConstant from "@/common/StaticConstant"; import StaticConstant from "@/common/StaticConstant";
import ApiConstant from "@/common/ApiConstant"; import ApiConstant from "@/common/ApiConstant";
import ImagesConstant from "@/common/ImagesConstant"; import ImagesConstant from "@/common/ImagesConstant";
import Request from '@/common/request' import Request from '@/common/request';
import {stringIsNotEmpty} from "../../../common/util";
import Image from "../../component/image/image.vue";
let request = new Request() let request = new Request()
export default { export default {
name: "vip-index", name: "vip-index",
components: {}, components: {Image},
computed: { computed: {
ImagesConstant() { ImagesConstant() {
return ImagesConstant return ImagesConstant
@ -23,28 +25,95 @@ export default {
return { return {
checkFlag: false, checkFlag: false,
cardIndex: 0, cardIndex: 0,
cardArray: [ cardArray: [],
hyqyList: [
{ {
skuCode:'1', project: '省控线',
skuName: '志愿卡', v0: '是',
skuOriginalPrice:0, v1: '是',
skuPrice:18.8, v2: '是',
endTime: '2024-08-31'
}, },
{
project: '改成绩',
v0: '5次/天',
v1: '5次/天',
v2: '10次/天'
}, {
project: '查专业',
v0: '是',
v1: '是',
v2: '是'
}, {
project: '查大学',
v0: '查询5条',
v1: '是',
v2: '是'
}, {
project: '测文化',
v0: '查询5条',
v1: '是',
v2: '是'
}, {
project: '查位次',
v0: '是',
v1: '是',
v2: '是'
}, {
project: '算投档',
v0: '否',
v1: '是',
v2: '是'
},{
project: '智能推荐',
v0: '仅推荐院校',
v1: '仅推荐院校',
v2: '是'
},{
project: 'AI填报',
v0: '否',
v1: '否',
v2: '是'
},
{
project: '院校录取率',
v0: '否',
v1: '否',
v2: '是'
}
] ]
} }
}, },
onLoad() { onShow() {
let userInfo = uni.getStorageSync('userInfo');
if (!userInfo) {
wx.reLaunch({
url: '/pages/zyb/login',
})
}
if (!stringIsNotEmpty(userInfo.phone)) {
uni.reLaunch({
url: '/pages/zyb/user/bindPhone'
})
}
uni.getProvider({
service: 'payment',
success: function (res) {
console.log(res)
uni.setStorageSync('providerpayment', res.provider[0]);
}
});
// //
this.getSkuList() this.getSkuList()
}, },
onLoad() {
},
methods: { methods: {
// //
kaMi(){ kaMi() {
this.goto('/pages/zyb/vip/cardamom') this.goto('/pages/zyb/vip/cardamom')
}, },
getSkuList(){ getSkuList() {
request.get(ApiConstant.VIP.skuList, {}).then(r => { request.get(ApiConstant.VIP.skuList, {provider:uni.getStorageSync('providerpayment')}).then(r => {
console.log(r) console.log(r)
if (r.success) { if (r.success) {
this.cardArray = r.result this.cardArray = r.result
@ -55,18 +124,25 @@ export default {
}, },
// //
pay() { pay() {
//IOS
if (uni.getSystemInfoSync().platform === 'ios') {
uni.showToast({title: '抱歉IOS端暂不可购买 ', icon: "none"});
return
}
if (!this.checkFlag) { if (!this.checkFlag) {
uni.showToast({title: '请阅读会员服务协议并勾选 ', icon: "none"}); uni.showToast({title: '请阅读会员服务协议并勾选 ', icon: "none"});
return return
} }
request.post(ApiConstant.Pay.vip1,
{skuCode:this.cardArray[this.cardIndex].skuCode} request.post(ApiConstant.Pay.vip1, {skuCode: this.cardArray[this.cardIndex].skuCode,provider:uni.getStorageSync('providerpayment')}
).then(r => { ).then(r => {
console.log(r) console.log(r)
if (r.success) { if (r.success) {
this.goto('/pages/zyb/vip/checkoutCounter?orderCode='+r.result) this.goto('/pages/zyb/vip/checkoutCounter?orderCode=' + r.result)
}else{ } else {
uni.showToast({title:r.message, icon: "none"}); uni.showToast({title: r.message, icon: "none", duration: 2000});
} }
}).catch(err => { }).catch(err => {
}).finally(() => { }).finally(() => {
@ -82,13 +158,16 @@ export default {
}, },
bindPickerCardChange(e) { bindPickerCardChange(e) {
this.cardIndex = e.detail.value this.cardIndex = e.detail.value
} },
bindCardChange(index){
this.cardIndex = index
},
} }
} }
</script> </script>
<template> <template>
<view class="border-top padding50-30" style="background-color: #fdedc8;height: 700rpx;"> <view class="border-top padding50-30" style="background-color: #fdedc8;height: 550rpx;">
<view class="flex" style="padding-left: 30rpx"> <view class="flex" style="padding-left: 30rpx">
<view class="flex-item-5 font-size-big font-weight-600 brown"> <view class="flex-item-5 font-size-big font-weight-600 brown">
不浪费分数 不浪费分数
@ -103,69 +182,100 @@ export default {
<view style="color: #f8430f" class="font-size-medium font-weight-550 float-right">金榜题名</view> <view style="color: #f8430f" class="font-size-medium font-weight-550 float-right">金榜题名</view>
</view> </view>
</view> </view>
<view class="flex cardTip">
超1000万考生开通VIP <scroll-view class="nav-bar" scroll-x>
</view> <view class="nav-bar-wrap">
<view class="card"> <view v-for="(item, index) in cardArray" :key="index">
<view class="flex" style="margin-top: 30rpx"> <view class="nav-bar-item">
<view class="flex-item-6 font-weight-550" style="color: #743211"> <!-- <view class="flex cardTip">-->
{{StaticConstant.systemName}}填报高级卡VIP <!-- 河南艺体生更好的选择-->
</view> <!-- </view>-->
<view class="radius8" <view class="card" @click="bindCardChange(index)">
style="background-color: white;color: #743211;min-width: 150rpx;text-align: center;padding: 5rpx;margin: 0 0 0 auto"> <image v-show="cardIndex===index" src="/static/icons/select_blue.png" class="icon32" style="position: absolute"/>
<picker @change="bindPickerCardChange" :value="cardIndex" :range="cardArray" <view class="flex" style="margin-top: 30rpx">
range-key="skuName"> <view class="flex-item-6 font-size-mini5 font-weight-550" style="color: #743211">
{{ cardArray[cardIndex].skuName }} <!-- {{ StaticConstant.systemName }}&nbsp;-->
<image :src="ImagesConstant.triangle_bottom" class="icon32"/> {{item.skuName}}
</picker> </view>
</view> </view>
</view> <view class="flex" style="margin-top: 30rpx;height: 50rpx">
<view class="flex" style="margin-top: 30rpx"> <view class="flex-item-7" style="line-height: 40rpx">
<view class="flex-item-7" style="line-height: 50rpx"> <view class="flex font-size-mini2 brown">
<view class="flex font-size-mini2 brown"> {{ item.skuDetail }}
{{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">
<text>{{item.skuCode==='9000'?'咨询详谈':'有效期截至2024-08-31'}}</text>
</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'">
{{ item.skuPrice }}
</text>
<text class="font-size-mini"></text>
</view>
</view>
</view>
<!-- <image class="img" @click="bindCardChange(index)" :src="'https://static-qiniu.mnzy.gaokao.cn/zsgk-volunteer/gaokao/assets/images/vip-bg.png'" style="width: 500rpx;height: 280rpx"/>-->
</view> </view>
</view> </view>
</view> </view>
<view class="flex" style="margin-top: 50rpx"> </scroll-view>
<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==" </view>
alt="" srcset="" class="icon32" style="margin-top: 10rpx;margin-right: 10rpx"/> <view class="member-benefits" style="height: 900rpx">
模拟报志愿VIP <view class="benefits-title">会员权益</view>
</view> <view class="benefits-table">
<view class="flex font-size-mini2 brown"> <view class="benefits-row header">
有效期截至2024-08-31 <text class="benefits-cell">功能</text>
<!-- {{ cardArray[cardIndex].endTime }}--> <text class="benefits-cell">基础版本</text>
</view> <text class="benefits-cell">体验版本</text>
</view> <text class="benefits-cell">VIP版本</text>
<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 class="benefits-row" v-for="(item,index) in hyqyList" :class="index%2===0?'row2':'row1'" :key="index">
<text class="benefits-cell">{{ item.project }}</text>
<text class="benefits-cell">{{ item.v0 }}</text>
<text class="benefits-cell">{{ item.v1 }}</text>
<text class="benefits-cell">{{ item.v2 }}</text>
</view>
<!-- 可以根据需求添加更多的会员权益 -->
</view> </view>
</view> </view>
<image :src="ImagesConstant.huiyuanquanyi" style="width: 100%;height: 1100rpx;margin-bottom: 200rpx"/> <view style="margin-top: 100rpx"></view>
<!-- <image :src="ImagesConstant.huiyuanquanyi" style="width: 100%;height: 1100rpx;margin-bottom: 200rpx"/>-->
<view class="bottom"> <view class="bottom">
<view class="flex ms" style="height: 50rpx;line-height: 50rpx;padding: 20rpx 0"> <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="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="slateGray">活动结束将恢复原价</text>
<text class="red"> <text class="red">
限时秒杀 限时秒杀
</text> </text>
<uni-countdown style="position: relative;bottom: 10rpx" :show-day="false" :show-hour="false" :minute="10" :second="0" color="red" background-color="white" /> <uni-countdown style="position: relative;bottom: 10rpx" :show-day="false" :show-hour="false" :minute="10"
:second="0" color="red" background-color="white"/>
</view> </view>
<view class="flex" style="padding: 30rpx 20rpx"> <view class="flex" style="padding: 30rpx 20rpx">
<view class="flex-item-10 flex"> <view class="flex-item-10 flex">
<view class="flex-item-4"> <view class="flex-item-45">
<text class="slateGray font-size-mini">原价</text> <text class="slateGray font-size-mini">原价</text>
<text class="slateGray font-size-mini" style="text-decoration: line-through">{{cardArray[cardIndex].skuOriginalPrice}}</text> <text class="slateGray font-size-mini" style="text-decoration: line-through" v-if="cardArray[cardIndex]">
<text class="red"> {{ cardArray[cardIndex].skuOriginalPrice }}
现价{{cardArray[cardIndex].skuPrice}} </text>
<text class="red" v-if="cardArray[cardIndex]">
现价<text class="font-size-mini5">{{ cardArray[cardIndex].skuPrice }}</text>
</text> </text>
<checkbox-group @change="checkboxChange"> <checkbox-group @change="checkboxChange">
<checkbox value="cb"/> <checkbox value="cb"/>
@ -173,7 +283,7 @@ export default {
</checkbox-group> </checkbox-group>
<view></view> <view></view>
</view> </view>
<view class="flex-item-58 flex"> <view class="flex-item-55 flex">
<view class="kmBtn radius8" @click="kaMi">卡密激活</view> <view class="kmBtn radius8" @click="kaMi">卡密激活</view>
<view class="ktBtn radius8" @click="pay">立即开通</view> <view class="ktBtn radius8" @click="pay">立即开通</view>
</view> </view>
@ -187,8 +297,8 @@ export default {
.card { .card {
border-radius: 2%; border-radius: 2%;
padding: 40rpx 30rpx; padding: 40rpx 30rpx;
height: 300rpx;
background-image: url(https://static-qiniu.mnzy.gaokao.cn/zsgk-volunteer/gaokao/assets/images/vip-bg.png); background-image: url(https://static-qiniu.mnzy.gaokao.cn/zsgk-volunteer/gaokao/assets/images/vip-bg.png);
width: 500rpx;height: 280rpx;
background-repeat: no-repeat; background-repeat: no-repeat;
background-position: 50%; background-position: 50%;
background-size: cover; background-size: cover;
@ -215,6 +325,7 @@ export default {
height: 230rpx; height: 230rpx;
width: 100%; width: 100%;
background-color: white; background-color: white;
.ms { .ms {
background-color: #f9cdd6 !important; background-color: #f9cdd6 !important;
line-height: 50rpx; line-height: 50rpx;
@ -263,4 +374,94 @@ export default {
} }
/*卡密激活按钮 end*/ /*卡密激活按钮 end*/
/*会员权益 start*/
.member-benefits {
padding: 30rpx;
background-color: white;
}
.benefits-title {
font-size: 32rpx;
text-align: center;
margin-bottom: 20rpx;
}
.benefits-table {
box-shadow: 0 2rpx 4rpx rgba(0, 0, 0, 0.1);
}
.benefits-row {
display: flex;
border-radius: 0;
}
.header {
background-color: #6341f7;
color: white;
border-radius: 10rpx 10rpx 0 0;
}
.header-cell {
color: white;
}
.odd {
background-color: #e9eaff;
}
.even {
background-color: #e9eaff;
border-radius: 0 0 10rpx 10rpx;
}
.benefits-cell {
flex: 1;
text-align: center;
border-right: 1rpx solid #fdf4dc;
padding: 10rpx;
}
.row2 {
background-color: #ffffff;
}
.row1 {
background-color: #e9eaff;
}
/*会员权益 end*/
/*滚动条 start*/
/*横向滚动列表 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: 1800rpx;
}
.nav-bar-item {
//width: 500rpx;
display: flex;
//height: 170rpx;
margin-top: 18rpx;
margin-right: 30rpx;
position: relative;
}
/*滚动条 end*/
</style> </style>

BIN
static/home_background.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 131 KiB

BIN
static/icons/add_orange.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

BIN
static/icons/avatar.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

BIN
static/icons/boshi.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

BIN
static/icons/clonse.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

BIN
static/icons/delete.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 908 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
static/icons/edit.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

BIN
static/icons/gif/detail.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 481 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 471 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 861 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 131 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 976 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 752 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

BIN
static/icons/move.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 641 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 344 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 944 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 730 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 707 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 681 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

BIN
static/icons/search.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 344 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

BIN
static/icons/shoucang.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

BIN
static/icons/shu.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

BIN
static/icons/success.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

BIN
static/icons/wechat.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

@ -0,0 +1,193 @@
## 为减小组件包的大小默认组件包中不包含编辑、latex 公式等扩展功能,需要使用扩展功能的请参考下方的 插件扩展 栏的说明
## 功能介绍
- 全端支持(含 `v3、NVUE`
- 支持丰富的标签(包括 `table`、`video`、`svg` 等)
- 支持丰富的事件效果(自动预览图片、链接处理等)
- 支持设置占位图(加载中、出错时、预览时)
- 支持锚点跳转、长按复制等丰富功能
- 支持大部分 *html* 实体
- 丰富的插件(关键词搜索、内容编辑、`latex` 公式等)
- 效率高、容错性强且轻量化
查看 [功能介绍](https://jin-yufeng.gitee.io/mp-html/#/overview/feature) 了解更多
## 使用方法
- `uni_modules` 方式
1. 点击右上角的 `使用 HBuilder X 导入插件` 按钮直接导入项目或点击 `下载插件 ZIP` 按钮下载插件包并解压到项目的 `uni_modules/mp-html` 目录下
2. 在需要使用页面的 `(n)vue` 文件中添加
```html
<!-- 不需要引入,可直接使用 -->
<mp-html :content="html" />
```
```javascript
export default {
data() {
return {
html: '<div>Hello World!</div>'
}
}
}
```
3. 需要更新版本时在 `HBuilder X` 中右键 `uni_modules/mp-html` 目录选择 `从插件市场更新` 即可
- 源码方式
1. 从 [github](https://github.com/jin-yufeng/mp-html/tree/master/dist/uni-app) 或 [gitee](https://gitee.com/jin-yufeng/mp-html/tree/master/dist/uni-app) 下载源码
插件市场的 **非 uni_modules 版本** 无法更新,不建议从插件市场获取
2. 在需要使用页面的 `(n)vue` 文件中添加
```html
<mp-html :content="html" />
```
```javascript
import mpHtml from '@/components/mp-html/mp-html'
export default {
// HBuilderX 2.5.5+ 可以通过 easycom 自动引入
components: {
mpHtml
},
data() {
return {
html: '<div>Hello World!</div>'
}
}
}
```
- npm 方式
1. 在项目根目录下执行
```bash
npm install mp-html
```
2. 在需要使用页面的 `(n)vue` 文件中添加
```html
<mp-html :content="html" />
```
```javascript
import mpHtml from 'mp-html/dist/uni-app/components/mp-html/mp-html'
export default {
// 不可省略
components: {
mpHtml
},
data() {
return {
html: '<div>Hello World!</div>'
}
}
}
```
3. 需要更新版本时执行以下命令即可
```bash
npm update mp-html
```
使用 *cli* 方式运行的项目,通过 *npm* 方式引入时,需要在 *vue.config.js* 中配置 *transpileDependencies*,详情可见 [#330](https://github.com/jin-yufeng/mp-html/issues/330#issuecomment-913617687)
如果在 **nvue** 中使用还要将 `dist/uni-app/static` 目录下的内容拷贝到项目的 `static` 目录下,否则无法运行
查看 [快速开始](https://jin-yufeng.gitee.io/mp-html/#/overview/quickstart) 了解更多
## 组件属性
| 属性 | 类型 | 默认值 | 说明 |
|:---:|:---:|:---:|---|
| container-style | String | | 容器的样式([2.1.0+](https://jin-yufeng.gitee.io/mp-html/#/changelog/changelog#v210) |
| content | String | | 用于渲染的 html 字符串 |
| copy-link | Boolean | true | 是否允许外部链接被点击时自动复制 |
| domain | String | | 主域名(用于链接拼接) |
| error-img | String | | 图片出错时的占位图链接 |
| lazy-load | Boolean | false | 是否开启图片懒加载 |
| loading-img | String | | 图片加载过程中的占位图链接 |
| pause-video | Boolean | true | 是否在播放一个视频时自动暂停其他视频 |
| preview-img | Boolean | true | 是否允许图片被点击时自动预览 |
| scroll-table | Boolean | false | 是否给每个表格添加一个滚动层使其能单独横向滚动 |
| selectable | Boolean | false | 是否开启文本长按复制 |
| set-title | Boolean | true | 是否将 title 标签的内容设置到页面标题 |
| show-img-menu | Boolean | true | 是否允许图片被长按时显示菜单 |
| tag-style | Object | | 设置标签的默认样式 |
| use-anchor | Boolean | false | 是否使用锚点链接 |
查看 [属性](https://jin-yufeng.gitee.io/mp-html/#/basic/prop) 了解更多
## 组件事件
| 名称 | 触发时机 |
|:---:|---|
| load | dom 树加载完毕时 |
| ready | 图片加载完毕时 |
| error | 发生渲染错误时 |
| imgtap | 图片被点击时 |
| linktap | 链接被点击时 |
| play | 音视频播放时 |
查看 [事件](https://jin-yufeng.gitee.io/mp-html/#/basic/event) 了解更多
## api
组件实例上提供了一些 `api` 方法可供调用
| 名称 | 作用 |
|:---:|---|
| in | 将锚点跳转的范围限定在一个 scroll-view 内 |
| navigateTo | 锚点跳转 |
| getText | 获取文本内容 |
| getRect | 获取富文本内容的位置和大小 |
| setContent | 设置富文本内容 |
| imgList | 获取所有图片的数组 |
| pauseMedia | 暂停播放音视频([2.2.2+](https://jin-yufeng.gitee.io/mp-html/#/changelog/changelog#v222) |
| setPlaybackRate | 设置音视频播放速率([2.4.0+](https://jin-yufeng.gitee.io/mp-html/#/changelog/changelog#v240) |
查看 [api](https://jin-yufeng.gitee.io/mp-html/#/advanced/api) 了解更多
## 插件扩展
除基本功能外,本组件还提供了丰富的扩展,可按照需要选用
| 名称 | 作用 |
|:---:|---|
| audio | 音乐播放器 |
| editable | 富文本 **编辑**[示例项目](https://mp-html.oss-cn-hangzhou.aliyuncs.com/editable.zip) |
| emoji | 解析 emoji |
| highlight | 代码块高亮显示 |
| markdown | 渲染 markdown |
| search | 关键词搜索 |
| style | 匹配 style 标签中的样式 |
| txv-video | 使用腾讯视频 |
| img-cache | 图片缓存 by [@PentaTea](https://github.com/PentaTea) |
| latex | 渲染 latex 公式 by [@Zeng-J](https://github.com/Zeng-J) |
从插件市场导入的包中 **不含有** 扩展插件,使用插件需通过微信小程序 `富文本插件` 获取或参考以下方法进行打包:
1. 获取完整组件包
```bash
npm install mp-html
```
2. 编辑 `tools/config.js` 中的 `plugins` 项,选择需要的插件
3. 生成新的组件包
`node_modules/mp-html` 目录下执行
```bash
npm install
npm run build:uni-app
```
4. 拷贝 `dist/uni-app` 中的内容到项目根目录
查看 [插件](https://jin-yufeng.gitee.io/mp-html/#/advanced/plugin) 了解更多
## 关于 nvue
`nvue` 使用原生渲染,不支持部分 `css` 样式,为实现和 `html` 相同的效果,组件内部通过 `web-view` 进行渲染,性能上差于原生,根据 `weex` 官方建议,`web` 标签仅应用在非常规的降级场景。因此,如果通过原生的方式(如 `richtext`)能够满足需要,则不建议使用本组件,如果有较多的富文本内容,则可以直接使用 `vue` 页面
由于渲染方式与其他端不同,有以下限制:
1. 不支持 `lazy-load` 属性
2. 视频不支持全屏播放
3. 如果在 `flex-direction: row` 的容器中使用,需要给组件设置宽度或设置 `flex: 1` 占满剩余宽度
`nvue` 模式下,[此问题](https://ask.dcloud.net.cn/question/119678) 修复前,不支持通过 `uni_modules` 引入,需要本地引入(将 [dist/uni-app](https://github.com/jin-yufeng/mp-html/tree/master/dist/uni-app) 中的内容拷贝到项目根目录下)
## 立即体验
![富文本插件](https://mp-html.oss-cn-hangzhou.aliyuncs.com/qrcode.jpg)
## 问题反馈
遇到问题时,请先查阅 [常见问题](https://jin-yufeng.gitee.io/mp-html/#/question/faq) 和 [issue](https://github.com/jin-yufeng/mp-html/issues) 中是否已有相同的问题
可通过 [issue](https://github.com/jin-yufeng/mp-html/issues/new/choose) 、插件问答或发送邮件到 [mp_html@126.com](mailto:mp_html@126.com) 提问,不建议在评论区提问(不方便回复)
提问请严格按照 [issue 模板](https://github.com/jin-yufeng/mp-html/issues/new/choose) ,描述清楚使用环境、`html` 内容或可复现的 `demo` 项目以及复现方式,对于 **描述不清**、**无法复现** 或重复的问题将不予回复
欢迎加入 `QQ` 交流群:
群1已满`699734691`
群2`778239129`
查看 [问题反馈](https://jin-yufeng.gitee.io/mp-html/#/question/feedback) 了解更多

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