| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211 |
- <template>
- <div class="app-container">
- <el-card shadow="hover">
- <template #header>选科信息</template>
- <el-row :gutter="20">
- <el-col :span="12">
- <el-form ref="form" v-if="selectObj" :model="form" :rules="rule" label-position="right" label-width="80px">
- <el-form-item label="选科轮次" class="form-item-readonly">{{ selectObj.year }}{{ selectObj.name }}
- </el-form-item>
- <el-form-item label="选科时间" class="form-item-readonly">{{ selectObj.beginTime }} 至 {{ selectObj.endTime }}
- </el-form-item>
- <el-form-item label="选科状态" class="form-item-readonly">
- 未选择/已选择<span class="f-red">缺字段</span>
- </el-form-item>
- <el-form-item label="AI选科" class="form-item-readonly">
- 进入/查看<span class="f-red">缺字段</span>
- </el-form-item>
- </el-form>
- </el-col>
- <el-col :span="12" style="vertical-align: center">
- 为了让同学们更好地选科,请完成左侧几项功能,如有疑问,请观看此
- <el-link type="primary" icon="el-icon-video-play" underline @click="helpVideo.visible=true">介绍视频</el-link>
- 、咨询客服或拨打电话4001797985
- </el-col>
- </el-row>
- </el-card>
- <!-- 自选专业 推荐专业 -->
- <select-subject class="mt20" :evaluationMajors="evaluationMajors" :optionalMajors="optionalMajors" :list="reportInfo.models"></select-subject>
- <!-- 选科报名表 -->
- <report-table class="mt20" ref="reportRef" ></report-table>
- <test-summary></test-summary>
- <el-card shadow="hover" class="mt20">
- <template #header>意向选科</template>
- <el-row :gutter="20">
- <el-col :span="12">
- <el-card shadow="hover">
- <template #header>
- <div class="fx-row fx-bet-cen">
- <div>专业选科</div>
- <div>
- <el-button type="primary" plain size="small" round>点击进入</el-button>
- </div>
- </div>
- </template>
- <div>介绍文案、测评结果</div>
- </el-card>
- </el-col>
- <el-col :span="12">
- <el-card shadow="hover">
- <template #header>
- <div class="fx-row fx-bet-cen">
- <div>组合选科</div>
- <div>
- <el-button type="primary" plain size="small" round>点击进入</el-button>
- </div>
- </div>
- </template>
- <div>介绍文案、测评结果</div>
- </el-card>
- </el-col>
- </el-row>
- </el-card>
- <el-card shadow="hover" class="mt20">
- <template #header>选科报名</template>
- <div class="fx-column">
- <div v-if="!allowSelect" class="mb30">
- <span class="f-red">*</span>
- 当前时段未开启选科
- </div>
- <el-form ref="form" v-if="selectObj" :model="form" :rules="rule" label-position="right" label-width="80px">
- <el-form-item label="选科轮次" class="form-item-readonly">{{ selectObj.year }}{{ selectObj.name }}</el-form-item>
- <el-form-item label="选科时间" class="form-item-readonly">{{ selectObj.beginTime }} 至 {{ selectObj.endTime }}
- </el-form-item>
- <el-form-item prop="groupId" label="选科组合">
- <el-radio-group v-model="form.groupId" :disabled="!allowSelect">
- <el-radio v-for="(opt,idx) in selectGroupOptions" :key="idx" :label="opt.value">{{ opt.text }}
- </el-radio>
- </el-radio-group>
- </el-form-item>
- <div class="fx-row fx-cen-cen mt20" v-if="allowSelect">
- <el-button v-loading="submitting" type="primary" @click="handleSubmit" style="width: 150px" round>保存
- </el-button>
- </div>
- </el-form>
- </div>
- </el-card>
- <el-card shadow="hover" class="mt20">
- <template #header>选科通知</template>
- </el-card>
- <el-dialog :visible.sync="helpVideo.visible">
- <mx-video v-if="helpVideo.visible" :src="helpVideo.src" :ali-id-type="helpVideo.aliIdType"
- class="mt15"></mx-video>
- </el-dialog>
- </div>
- </template>
- <script>
- import { getStudentSelected, saveStudentSelected } from '@/api/webApi/selection'
- import transferMixin from '@/components/mx-transfer-mixin'
- import consts from '@/common/mx-const'
- import TestEntry from '@/views/elective/test/components/test-entry'
- import TestResult from '@/views/elective/test/components/test-result'
- import TestSummary from '@/views/elective/test/components/test-summary'
- import SelectSubject from '@/views/system/user/profile/components/select-subject'
- import ReportTable from '@/views/system/user/profile/components/report-table'
- import {
- getOptionalMajors,
- getRecommendMajor,
- getData,
- getPrimaryElectivesModels
- } from '@/api/webApi/elective/ selected-subject'
- export default {
- provide(){
- return {
- optionalMajors: this.getOptionalMajors
- }
- },
- components: { SelectSubject, TestSummary, TestResult, TestEntry,ReportTable },
- mixins: [transferMixin],
- name: 'round-select',
- data() {
- return {
- helpVideo: {
- visible: false,
- src: '9fca0b997b8346ce8c3ce69feaf89294',
- aliIdType: 2
- },
- reportInfo: [],
- optionalMajors: [],
- evaluationMajors: [],
- form: {
- groupId: ''
- },
- rule: {
- groupId: [{
- required: true,
- message: '选科组合必填'
- }]
- },
- //
- selectObj: null,
- allowSelect: true,
- submitting: false,
- propData: {},
- }
- },
- computed: {
- selectGroupOptions() {
- return this.selectObj.groupList?.map(g => ({
- text: g.name,
- value: g.groupId
- })) || []
- }
- },
- mounted() {
- this.loadStudentSelected()
- this.getOptionalMajors()
- this.getReportList()
- this.getRecommendMajor()
- },
- methods: {
- getRecommendMajor() {
- getRecommendMajor().then(res => {
- this.evaluationMajors= res.data
- })
- },
- getReportList() {
- getPrimaryElectivesModels().then(res => {
- this.reportInfo= res.data
- this.$refs.reportRef.init(this.reportInfo)
- })
- },
- getOptionalMajors() {
- getOptionalMajors().then(res => {
- console.log(res)
- this.optionalMajors= res.data.reverse().splice(0,6)
- this.$refs.reportRef.initOption(this.optionalMajors)
- })
- },
- loadStudentSelected() {
- getStudentSelected().then(res => {
- console.log('getStudentSelected', res)
- this.selectObj = res.data.selectResult
- this.allowSelect = res.data.allowSelect
- this.form.groupId = this.selectObj?.groupId
- })
- },
- handleSubmit() {
- this.$refs.form.validate((valid) => {
- if (!valid) return
- this.submitting = true
- saveStudentSelected({
- groupId: this.form.groupId
- }).then(res => {
- this.msgSuccess('保存成功')
- this.loadStudentSelected()
- }).finally(() => this.submitting = false)
- })
- }
- }
- }
- </script>
- <style scoped>
- </style>
|