yitisheng-mini-app/pages/zyb/other/calculateInvestment.vue

427 lines
12 KiB
Vue

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