提交 f70ba650 authored 作者: 王鹏飞's avatar 王鹏飞

chore(报名申请): 新增综合评审

上级 02443146
......@@ -12,11 +12,12 @@
<ul class="nav">
<li class="nav-application" @click="toApplication"></li>
<li class="nav-interview" @click="toInterview"></li>
<li class="nav-review" @click="toReview"></li>
<li class="nav-admission" @click="toAdmission"></li>
</ul>
<div class="progress">
<el-steps :active="activeProgress" finish-status="success" align-center>
<el-step v-for="(item, index) in 3" :key="index">
<el-step v-for="(item, index) in 4" :key="index">
<template #title>{{ getProgressStatusText(index) }}</template>
</el-step>
</el-steps>
......@@ -51,8 +52,9 @@ export default {
submissionStage: {
0: ['FILLING', 'PREPAYMENT'],
1: ['INTERVIEW_APPLICATION', 'AUDITION', 'INTERVIEW'],
2: ['REGISTRATION', 'PAYMENT'],
3: ['CLOSED']
2: ['REGISTRATION'],
3: ['PAYMENT'],
4: ['CLOSED']
},
result: {},
welcomeShow: false
......@@ -117,12 +119,20 @@ export default {
}
this.$router.push('/my/interview')
},
// 办理入学
toAdmission() {
// 综合评审
toReview() {
if (this.activeProgress < 2) {
this.$message.warning('请等待面试结果')
return
}
this.$router.push('/my/review')
},
// 办理入学
toAdmission() {
if (this.activeProgress < 3) {
this.$message.warning('请完成综合评审')
return
}
this.$router.push('/my/admission')
},
handleStart() {
......@@ -165,9 +175,17 @@ export default {
}
},
{
element: '.nav-admission',
element: '.nav-review',
popover: {
title: '第三步:',
description: '点击<span style="color:#af1b40">综合评审</span>,进入综合评审材料的上传。',
position: 'bottom-right'
}
},
{
element: '.nav-admission',
popover: {
title: '第四步:',
description: '点击<span style="color:#af1b40">办理入学</span>,进入办理入学材料的上传。',
position: 'bottom-right'
}
......@@ -218,6 +236,12 @@ export default {
background-image: url('https://webapp-pub.ezijing.com/project/application/images/my_02_hover.png');
}
}
.nav-review {
background-image: url('https://webapp-pub.ezijing.com/project/application/images/my_review.png');
&:hover {
background-image: url('https://webapp-pub.ezijing.com/project/application/images/my_review_hover.png');
}
}
.nav-admission {
background-image: url('https://webapp-pub.ezijing.com/project/application/images/my_03.png');
&:hover {
......
import cjd from './cjd'
import byzs from './byzs'
// import cjd from './cjd'
// import byzs from './byzs'
// import ywjl from './ywjl'
import xy from './xy'
import xfjn from './xfjn'
import tjx from './tjx'
import grcs from './grcs'
// import tjx from './tjx'
// import grcs from './grcs'
// import yynl from './yynl'
export default function(_this) {
return {
id: 'admission',
title: '入学办理',
children: [cjd(_this), tjx(_this), grcs(_this), byzs(_this), xfjn(_this)]
children: [xfjn(_this), xy(_this)]
}
}
......@@ -3,9 +3,9 @@ export default function(_this) {
required: true,
id: 'admission_xfjn',
title: '缴费凭证',
visible() {
return _this.hasPay
},
// visible() {
// return _this.hasPay
// },
get: {
action: `${process.env.baseURL}/api/enrollment/v1.0/application-materials/${process.env.projectId}`,
callback(data) {
......@@ -28,7 +28,7 @@ export default function(_this) {
}
},
form: {
prev: { to: { query: { active: 'admission_byzs' } } },
next: { to: { query: { active: 'admission_xy' } } },
hasButton: false,
options: { 'label-position': 'top' },
hint: `
......
......@@ -2,11 +2,21 @@ export default function(_this) {
return {
id: 'admission_xy',
title: '入学协议',
required: true,
get: {
action: `${process.env.baseURL}/api/enrollment/v1.0/application-materials/${process.env.projectId}`,
callback(data) {
const { attachments = [], submission_stage: submissionStage = 'FILLING' } = data.data.material
const stageList = ['FILLING', 'PREPAYMENT', 'INTERVIEW_APPLICATION', 'AUDITION', 'INTERVIEW', 'PAYMENT', 'REGISTRATION', 'CLOSED']
const stageList = [
'FILLING',
'PREPAYMENT',
'INTERVIEW_APPLICATION',
'AUDITION',
'INTERVIEW',
'PAYMENT',
'REGISTRATION',
'CLOSED'
]
this.form.options.disabled = stageList.findIndex(item => item === submissionStage) > 6
const ADMISSION_AGREEMENT = attachments.filter(item => {
return item.file_type_id === 'ADMISSION_AGREEMENT'
......@@ -15,8 +25,7 @@ export default function(_this) {
}
},
form: {
prev: { to: { query: { active: 'admission_cjd' } } },
next: { to: { query: { active: 'admission_xfjn' } } },
prev: { to: { query: { active: 'admission_xfjn' } } },
hasButton: false,
options: { 'label-position': 'top' },
items: [
......
......@@ -54,7 +54,7 @@ export default {
const menus = getMenu(this)
return {
menus: [menus],
currentActive: 'admission_cjd',
currentActive: 'admission_xfjn',
dialogVisible: false,
detail: null,
completeVisible: false
......@@ -65,7 +65,7 @@ export default {
immediate: true,
handler(route) {
const { query = {} } = route
this.currentActive = query.active || 'admission_cjd'
this.currentActive = query.active || 'admission_xfjn'
}
},
showSubmitedDialog(value) {
......
......@@ -40,13 +40,10 @@ export default function(_this) {
update: {
action: `${process.env.baseURL}/api/enrollment/v1.0/application-materials/${process.env.projectId}/put`,
beforeRequest(data) {
const basicInfo = ['gpa_score'].reduce((result, key) => {
const basicInfo = ['gpa_score', 'average_score'].reduce((result, key) => {
result[key] = data[key]
return result
}, {})
// const basicInfo = {
// gpa_score: data.gpa_score
// }
return { basic_info: basicInfo }
}
},
......@@ -63,6 +60,13 @@ export default function(_this) {
attrs: { placeholder: '请填写您的GPA成绩' },
rules: [{ required: true, message: '请填写您的GPA成绩', trigger: 'blur' }]
},
{
type: 'v-input',
label: '百分制平均成绩',
model: 'average_score',
attrs: { placeholder: '请填写百分制平均成绩' },
rules: [{ required: true, message: '请填写百分制平均成绩', trigger: 'blur' }]
},
{
required: true,
type: 'v-upload',
......
export default function(_this) {
return {
required: true,
id: 'admission_byzs',
title: '毕业证书或在读证明',
get: {
action: `${process.env.baseURL}/api/enrollment/v1.0/application-materials/${process.env.projectId}`,
callback(data) {
const {
basic_info: basicInfo = {},
attachments = [],
submission_stage: submissionStage = 'FILLING'
} = data.data.material
const stageList = [
'FILLING',
'PREPAYMENT',
'INTERVIEW_APPLICATION',
'AUDITION',
'INTERVIEW',
'REGISTRATION',
'PAYMENT',
'CLOSED'
]
this.form.options.disabled = stageList.findIndex(item => item === submissionStage) >= 6
const attachment = attachments.reduce(
(result, item) => {
if (item.file_type_id === 'DIPLOMA_CN') {
result.DIPLOMA_CN.push(item)
}
if (item.file_type_id === 'DEGREE_CERT_CN') {
result.DEGREE_CERT_CN.push(item)
}
if (item.file_type_id === 'PROOF_READING') {
result.PROOF_READING.push(item)
}
return result
},
{ DIPLOMA_CN: [], DEGREE_CERT_CN: [], PROOF_READING: [] }
)
return Object.assign({ learn_status: basicInfo.learn_status }, attachment)
}
},
update: {
action: `${process.env.baseURL}/api/enrollment/v1.0/application-materials/${process.env.projectId}/put`,
beforeRequest(data) {
const basicInfo = ['learn_status'].reduce((result, key) => {
result[key] = data[key]
return result
}, {})
return { basic_info: basicInfo }
},
callback() {
_this.changeSubmissionStage(() => {
this.form.options.disabled = true
_this.$router.push('/my/admission')
})
}
},
form: {
prev: { to: { query: { active: 'admission_grcs' } } },
submitText: '提交申请',
options: { 'label-position': 'top' },
items: [
{
type: 'v-select',
values: [{ value: '已毕业' }, { value: '未毕业' }],
label: '您当前的学习状态',
model: 'learn_status',
rules: [{ required: true, message: '请选择', trigger: 'change' }],
append: `
提示:<br />
1、请同时上传毕业证书及学位证书(中英文)<br />
2、如尚未毕业,请上传在读证明(中英文)`
},
{
required: true,
label: '毕业证书',
type: 'v-upload',
model: 'DIPLOMA_CN',
attrs: {
action: `${process.env.baseURL}/api/enrollment/v1.0/application-materials/attachments/${process.env.projectId}/put`,
deleteAction: `${process.env.baseURL}/api/enrollment/v1.0/application-materials/attachments/${process.env.projectId}/delete`,
data: { file_type: 'DIPLOMA_CN' }
},
rules: { required: true, message: '请上传毕业证书' },
append:
'申请者需要将本科或以上毕业证书原件扫描或者拍照后提交。<br> 可上传多个文件,请确保证书号码清晰可辨。<br> 上传文件仅限“jpg,jpeg,png”格式,文件小于10MB。',
isShow(ruleForm) {
return ruleForm.learn_status === '已毕业'
}
},
{
required: true,
label: '学位证书',
type: 'v-upload',
model: 'DEGREE_CERT_CN',
attrs: {
action: `${process.env.baseURL}/api/enrollment/v1.0/application-materials/attachments/${process.env.projectId}/put`,
deleteAction: `${process.env.baseURL}/api/enrollment/v1.0/application-materials/attachments/${process.env.projectId}/delete`,
data: { file_type: 'DEGREE_CERT_CN' }
},
rules: { required: true, message: '请上传学位证书' },
append:
'已毕业学员请提交学位证书<br />申请者需要将本科或以上的学位证书原件扫描或拍照后提交<br />可上传多个文件,请确保公章清晰可辨。',
isShow(ruleForm) {
return ruleForm.learn_status === '已毕业'
}
},
{
required: true,
label: '在读证明',
type: 'v-upload',
model: 'PROOF_READING',
attrs: {
action: `${process.env.baseURL}/api/enrollment/v1.0/application-materials/attachments/${process.env.projectId}/put`,
deleteAction: `${process.env.baseURL}/api/enrollment/v1.0/application-materials/attachments/${process.env.projectId}/delete`,
data: { file_type: 'PROOF_READING' }
},
rules: { required: true, message: '请上传在读证明' },
append:
'未毕业学员提交加盖公章的在读证明<br/>申请者需要将本科或以上在读证明原件扫描或拍照后提交。<br> 可上传多个文件,请确保公章清晰可辨。',
isShow(ruleForm) {
return ruleForm.learn_status === '未毕业'
}
}
]
}
}
}
export default function(_this) {
return {
required: true,
id: 'admission_cjd',
title: '成绩单',
get: {
action: `${process.env.baseURL}/api/enrollment/v1.0/application-materials/${process.env.projectId}`,
callback(data) {
const { attachments = [], submission_stage: submissionStage = 'FILLING' } = data.data.material
const stageList = [
'FILLING',
'PREPAYMENT',
'INTERVIEW_APPLICATION',
'AUDITION',
'INTERVIEW',
'REGISTRATION',
'PAYMENT',
'CLOSED'
]
this.form.options.disabled = stageList.findIndex(item => item === submissionStage) >= 6
return attachments.reduce(
(result, item) => {
if (item.file_type_id === 'REPORT_CARD_CN') {
result.REPORT_CARD_CN.push(item)
}
if (item.file_type_id === 'REPORT_CARD_EN') {
result.REPORT_CARD_EN.push(item)
}
return result
},
{ REPORT_CARD_CN: [], REPORT_CARD_EN: [] }
)
}
},
form: {
next: { to: { query: { active: 'admission_tjx' } } },
hasButton: false,
options: { 'label-position': 'top' },
hint: `
<p>已毕业学生需提交完整成绩单,未毕业学生提交现有成绩单,成绩单需要加盖学校公章</p>
<p>请将中文成绩单及英文成绩单原件扫描或者拍照后提交。</p>
<p>获取途径:联系大学时就读学校相关部门(档案馆/教务处)获取成绩单。</p>
`,
items: [
{
required: true,
type: 'v-upload',
label: '中文成绩单',
model: 'REPORT_CARD_CN',
attrs: {
action: `${process.env.baseURL}/api/enrollment/v1.0/application-materials/attachments/${process.env.projectId}/put`,
deleteAction: `${process.env.baseURL}/api/enrollment/v1.0/application-materials/attachments/${process.env.projectId}/delete`,
data: { file_type: 'REPORT_CARD_CN' }
}
},
{
required: true,
type: 'v-upload',
label: '英文成绩单',
model: 'REPORT_CARD_EN',
attrs: {
action: `${process.env.baseURL}/api/enrollment/v1.0/application-materials/attachments/${process.env.projectId}/put`,
deleteAction: `${process.env.baseURL}/api/enrollment/v1.0/application-materials/attachments/${process.env.projectId}/delete`,
data: { file_type: 'REPORT_CARD_EN' }
}
}
]
}
}
}
export default function(_this) {
return {
required: true,
id: 'admission_grcs',
title: '个人陈述',
get: {
action: `${process.env.baseURL}/api/enrollment/v1.0/application-materials/${process.env.projectId}`,
callback(data) {
const { attachments = [], submission_stage: submissionStage = 'FILLING' } = data.data.material
const stageList = [
'FILLING',
'PREPAYMENT',
'INTERVIEW_APPLICATION',
'AUDITION',
'INTERVIEW',
'REGISTRATION',
'PAYMENT',
'CLOSED'
]
this.form.options.disabled = stageList.findIndex(item => item === submissionStage) >= 6
const PERSONAL_STATEMENT = attachments.filter(item => {
return item.file_type_id === 'PERSONAL_STATEMENT'
})
return { PERSONAL_STATEMENT }
}
},
form: {
prev: { to: { query: { active: 'admission_tjx' } } },
next: { to: { query: { active: 'admission_byzs' } } },
hasButton: false,
options: { 'label-position': 'top' },
items: [
{
type: 'v-upload',
required: true,
model: 'PERSONAL_STATEMENT',
attrs: {
action: `${process.env.baseURL}/api/enrollment/v1.0/application-materials/attachments/${process.env.projectId}/put`,
deleteAction: `${process.env.baseURL}/api/enrollment/v1.0/application-materials/attachments/${process.env.projectId}/delete`,
data: { file_type: 'PERSONAL_STATEMENT' },
limit: 1
},
append: '请上传您的个人陈述(英文)'
}
]
}
}
}
import cjd from './cjd'
import byzs from './byzs'
// import ywjl from './ywjl'
// import xy from './xy'
// import xfjn from './xfjn'
import tjx from './tjx'
import grcs from './grcs'
// import yynl from './yynl'
export default function(_this) {
return {
id: 'admission',
title: '综合评审',
children: [cjd(_this), tjx(_this), grcs(_this), byzs(_this)]
}
}
export default function(_this) {
return {
required: true,
id: 'admission_tjx',
title: '推荐信',
get: {
action: `${process.env.baseURL}/api/enrollment/v1.0/application-materials/${process.env.projectId}`,
callback(data) {
const { attachments = [], submission_stage: submissionStage = 'FILLING' } = data.data.material
const stageList = [
'FILLING',
'PREPAYMENT',
'INTERVIEW_APPLICATION',
'AUDITION',
'INTERVIEW',
'REGISTRATION',
'PAYMENT',
'CLOSED'
]
this.form.options.disabled = stageList.findIndex(item => item === submissionStage) >= 6
return attachments.reduce(
(result, item) => {
item.disabled = item.upload_operator_user_id !== _this.user?.id
if (item.file_type_id === 'RECOMMENDATION_LETTER') {
result.RECOMMENDATION_LETTER.push(item)
}
if (item.file_type_id === 'RECOMMENDATION_LETTER_2') {
result.RECOMMENDATION_LETTER_2.push(item)
}
return result
},
{ RECOMMENDATION_LETTER: [], RECOMMENDATION_LETTER_2: [] }
)
}
},
// update: {
// action: `${process.env.baseURL}/api/enrollment/v1.0/application-materials/submit/${process.env.projectId}`,
// beforeRequest(data) {
// return { submission_stage: 'INTERVIEW_APPLICATION' }
// },
// callback() {
// this.form.options.disabled = true
// _this.dialogVisible = true
// _this.getApplication()
// },
// errorCallback() {
// _this.completeVisible = true
// }
// },
form: {
prev: { to: { query: { active: 'admission_cjd' } } },
next: { to: { query: { active: 'admission_grcs' } } },
hasButton: false,
// submitText: '申请面试',
// model: { submission_stage: 'INTERVIEW_APPLICATION' },
options: {},
hint: '请上传两封推荐人署名的推荐信原件照片或扫描件(英文)',
items: [
{
type: 'v-upload',
model: 'RECOMMENDATION_LETTER',
attrs: {
action: `${process.env.baseURL}/api/enrollment/v1.0/application-materials/attachments/${process.env.projectId}/put`,
deleteAction: `${process.env.baseURL}/api/enrollment/v1.0/application-materials/attachments/${process.env.projectId}/delete`,
data: { file_type: 'RECOMMENDATION_LETTER' },
accept: 'image/*',
limit: 1
}
},
{
type: 'v-upload',
model: 'RECOMMENDATION_LETTER_2',
attrs: {
action: `${process.env.baseURL}/api/enrollment/v1.0/application-materials/attachments/${process.env.projectId}/put`,
deleteAction: `${process.env.baseURL}/api/enrollment/v1.0/application-materials/attachments/${process.env.projectId}/delete`,
data: { file_type: 'RECOMMENDATION_LETTER_2' },
accept: 'image/*',
limit: 1
}
}
]
}
}
}
export default function(_this) {
return {
required: true,
id: 'admission_xfjn',
title: '缴费凭证',
visible() {
return _this.hasPay
},
get: {
action: `${process.env.baseURL}/api/enrollment/v1.0/application-materials/${process.env.projectId}`,
callback(data) {
const { attachments = [], submission_stage: submissionStage = 'FILLING' } = data.data.material
const stageList = [
'FILLING',
'PREPAYMENT',
'INTERVIEW_APPLICATION',
'AUDITION',
'INTERVIEW',
'REGISTRATION',
'PAYMENT',
'CLOSED'
]
// this.form.options.disabled = stageList.findIndex(item => item === submissionStage) > 6
const PAYMENT_VOUCHER = attachments.filter(item => {
return item.file_type_id === 'PAYMENT_VOUCHER'
})
return { PAYMENT_VOUCHER }
}
},
form: {
prev: { to: { query: { active: 'admission_byzs' } } },
hasButton: false,
options: { 'label-position': 'top' },
hint: `
<p><strong>一、对公收款银行信息:</strong></p>
<p>户名:清控紫荆( 北京)教育科技股份有限公司</p>
<p>帐号:694485289</p>
<p>开户行:中国民生银行股份有限公司北京魏公村支行</p>
<p style="margin-top:30px;"><strong>二、支付宝收款账户信息:</strong></p>
<p>支付宝账号:service@ezijing.com</p>
<p>支付宝户名:清控紫荆(北京)教育科技股份有限公司</p>`,
items: [
{
required: true,
type: 'v-upload',
model: 'PAYMENT_VOUCHER',
label: '上传缴费凭证',
attrs: {
action: `${process.env.baseURL}/api/enrollment/v1.0/application-materials/attachments/${process.env.projectId}/put`,
deleteAction: `${process.env.baseURL}/api/enrollment/v1.0/application-materials/attachments/${process.env.projectId}/delete`,
data: { file_type: 'PAYMENT_VOUCHER' }
},
append: `申请者可将转账/支付缴费凭证截图或拍照后提交。<br>
上传多个文件,请打印出来检查无误后再上传。用A4纸打印后内容需显示完整、格式整齐、字迹清晰可辨。上传文件仅限“jpg,jpeg,pdf,png”格式,文件小于10Mb。`
}
]
}
}
}
export default function(_this) {
return {
id: 'admission_xy',
title: '入学协议',
get: {
action: `${process.env.baseURL}/api/enrollment/v1.0/application-materials/${process.env.projectId}`,
callback(data) {
const { attachments = [], submission_stage: submissionStage = 'FILLING' } = data.data.material
const stageList = ['FILLING', 'PREPAYMENT', 'INTERVIEW_APPLICATION', 'AUDITION', 'INTERVIEW', 'PAYMENT', 'REGISTRATION', 'CLOSED']
this.form.options.disabled = stageList.findIndex(item => item === submissionStage) > 6
const ADMISSION_AGREEMENT = attachments.filter(item => {
return item.file_type_id === 'ADMISSION_AGREEMENT'
})
return { ADMISSION_AGREEMENT }
}
},
form: {
prev: { to: { query: { active: 'admission_cjd' } } },
next: { to: { query: { active: 'admission_xfjn' } } },
hasButton: false,
options: { 'label-position': 'top' },
items: [
{
type: 'v-upload',
required: true,
label: '入学协议',
model: 'ADMISSION_AGREEMENT',
attrs: {
action: `${process.env.baseURL}/api/enrollment/v1.0/application-materials/attachments/${process.env.projectId}/put`,
deleteAction: `${process.env.baseURL}/api/enrollment/v1.0/application-materials/attachments/${process.env.projectId}/delete`,
data: { file_type: 'ADMISSION_AGREEMENT' }
},
prepend: `
<p><a href="https://webapp-pub.ezijing.com/project/sbu-plus/%E5%85%A5%E5%AD%A6%E5%8D%8F%E8%AE%AE.pdf" target="_blank" download="入学协议">下载入学协议</a></p>
<p>申请者可将签字后的入学协议原件扫描或拍照后提交。</p>
<p>学员应仔细阅读《入学协议》以及课程介绍,如对入学协议或课程有异议,请第一时间与课程顾问咨询确认。请用A4纸打印后,在入学协议上签上姓名和日期,内容需显示完整、格式整齐、字迹清晰可辨。上传文件仅限“jpg,jpeg,pdf,png”格式,文件小于10Mb。</p>
`
}
]
}
}
}
export default {
id: 'admission_ywjl',
title: '英文简历',
get: {
action: `${process.env.baseURL}/api/enrollment/v1.0/application-materials/${process.env.projectId}`,
callback(data) {
const { attachments = [], submission_stage: submissionStage = 'FILLING' } = data.data.material
const stageList = ['FILLING', 'PREPAYMENT', 'INTERVIEW_APPLICATION', 'AUDITION', 'INTERVIEW', 'PAYMENT', 'REGISTRATION', 'CLOSED']
this.form.options.disabled = stageList.findIndex(item => item === submissionStage) > 6
const RESUME_EN = attachments.filter(item => {
return item.file_type_id === 'RESUME_EN'
})
return { RESUME_EN }
}
},
form: {
prev: { to: { query: { active: 'admission_byzs' } } },
next: { to: { query: { active: 'admission_xy' } } },
hasButton: false,
options: {},
items: [
{
type: 'v-upload',
required: true,
model: 'RESUME_EN',
attrs: {
action: `${process.env.baseURL}/api/enrollment/v1.0/application-materials/attachments/${process.env.projectId}/put`,
deleteAction: `${process.env.baseURL}/api/enrollment/v1.0/application-materials/attachments/${process.env.projectId}/delete`,
data: { file_type: 'RESUME_EN' }
},
append: `
<p>请下载填写英文简历模板后上传 [<a href="https://webapp-pub.ezijing.com/project/sbu-plus/%E8%8B%B1%E6%96%87%E7%AE%80%E5%8E%86%E6%A8%A1%E6%9D%BF--%E7%9F%B3%E6%BA%AA.doc" target="_blank" download="英文简历模板">下载模板</a>]</p>
<p>请将英文简历填写完存为"pdf"格式上传,文件小于10MB。</p>`
}
]
}
}
export default function(_this) {
return {
id: 'admission_yynl',
title: '语言能力证明',
get: {
action: `${process.env.baseURL}/api/enrollment/v1.0/application-materials/${process.env.projectId}`,
callback(data) {
const { attachments = [], submission_stage: submissionStage = 'FILLING' } = data.data.material
const stageList = [
'FILLING',
'PREPAYMENT',
'INTERVIEW_APPLICATION',
'AUDITION',
'INTERVIEW',
'PAYMENT',
'REGISTRATION',
'CLOSED'
]
this.form.options.disabled = stageList.findIndex(item => item === submissionStage) > 6
return attachments.reduce(
(result, item) => {
if (item.file_type_id === 'DOMESTIC_LANGUAGE_SCORE') {
result.DOMESTIC_LANGUAGE_SCORE.push(item)
}
if (item.file_type_id === 'INTERNATIONAL_LANGUAGE_SCORE') {
result.INTERNATIONAL_LANGUAGE_SCORE.push(item)
}
return result
},
{ DOMESTIC_LANGUAGE_SCORE: [], INTERNATIONAL_LANGUAGE_SCORE: [] }
)
}
},
form: {
prev: { to: { query: { active: 'admission_cjd' } } },
next: { to: { query: { active: 'admission_tjx' } } },
hasButton: false,
options: { 'label-position': 'top' },
items: [
{
type: 'v-upload',
label: '国内语言成绩',
model: 'DOMESTIC_LANGUAGE_SCORE',
attrs: {
action: `${process.env.baseURL}/api/enrollment/v1.0/application-materials/attachments/${process.env.projectId}/put`,
deleteAction: `${process.env.baseURL}/api/enrollment/v1.0/application-materials/attachments/${process.env.projectId}/delete`,
data: { file_type: 'DOMESTIC_LANGUAGE_SCORE' }
},
append: `<p>有大学英语四级或六级成绩,请上传凭证</p>`
},
{
type: 'v-upload',
label: '国际语言成绩',
model: 'INTERNATIONAL_LANGUAGE_SCORE',
attrs: {
action: `${process.env.baseURL}/api/enrollment/v1.0/application-materials/attachments/${process.env.projectId}/put`,
deleteAction: `${process.env.baseURL}/api/enrollment/v1.0/application-materials/attachments/${process.env.projectId}/delete`,
data: { file_type: 'INTERNATIONAL_LANGUAGE_SCORE' }
},
append: `<p>有托福,雅思,GMAT,GRE或其他考试成绩,请上传凭证</p>`
}
]
}
}
}
<template>
<app-layout>
<vue-form
:menus="menus"
:default-active="currentActive"
@page-change="handlePageChange"
@success="handleSuccess"
@error="handleError"
@back="$router.push('/my/account')"
@prev="handlePrev"
@next="handleNext"
@uploaded="getApplication"
v-if="detail"
>
<template #aside-append>
<div class="aside-payment"><a href="https://accounts.ezijing.com/payment" target="_blank">查看缴费记录</a></div>
<div class="aside-logout" @click="$store.dispatch('logout')"><span>退出登录</span></div>
</template>
<!-- 入学协议 -->
<!-- <template #content v-if="currentActive === 'admission_xy'">
<app-xy />
</template> -->
</vue-form>
<el-dialog
title="综合评审资料提交成功"
:visible.sync="dialogVisible"
:center="true"
:close-on-click-modal="false"
width="348px"
>
<div class="dialog-tips">
<!-- <p>请确认是否已缴费,如未缴费点击下方缴费按钮 <br />(已缴费,请忽略)</p> -->
<div class="icon"><img src="https://webapp-pub.ezijing.com/project/application/images/icon_success.png" /></div>
</div>
<template #footer>
<!-- <el-button type="primary" @click="toPay">立即缴费</el-button> -->
<el-button type="primary" @click="dialogVisible = false">忽略</el-button>
</template>
</el-dialog>
<app-complete :type="2" v-model="completeVisible"></app-complete>
</app-layout>
</template>
<script>
import AppLayout from '../layout.vue'
import getMenu from './form'
import * as api from '@/api/my'
import AppComplete from '../application/complete.vue'
export default {
components: { AppLayout, AppComplete },
data() {
const menus = getMenu(this)
return {
menus: [menus],
currentActive: 'admission_cjd',
dialogVisible: false,
detail: null,
completeVisible: false
}
},
watch: {
$route: {
immediate: true,
handler(route) {
const { query = {} } = route
this.currentActive = query.active || 'admission_cjd'
}
},
showSubmitedDialog(value) {
this.dialogVisible = value
}
},
computed: {
isSubmited() {
if (this.detail) {
return this.detail.material.submission_stage === 'PAYMENT'
}
return false
},
showSubmitedDialog() {
return this.isSubmited && this.currentActive === 'admission_byzs'
},
user() {
return this.$store.state.user
},
hasPay() {
if (this.detail) {
return this.detail.material.submission_stage === 'CLOSED'
}
return false
}
},
methods: {
// 获取报名信息
getApplication() {
api.getApplication().then(response => {
const { data, error, message } = response
if (error.toString() === '0') {
this.detail = data
} else {
this.$message.error(message)
}
})
},
changeSubmissionStage(callback) {
api
.changeSubmissionStage({ submission_stage: 'REGISTRATION' })
.then(() => {
this.getApplication()
callback && callback()
})
.catch(() => {
this.completeVisible = true
})
},
handlePageChange(value) {
this.currentActive = value
this.$router.push({ path: this.$route.path, query: { active: value } })
console.log('页面切换了', value)
},
handleSuccess(data) {
console.log('提交成功了', data)
this.$message({ type: 'success', message: data.message })
},
handleError(data) {
console.log('提交失败了', data)
this.$message({ type: 'error', message: data.message })
},
handlePrev(to) {
this.$router.push(to)
},
handleNext(to) {
this.$router.push(to)
},
toPay() {
this.dialogVisible = false
this.$router.push({ path: '/my/admission', query: { active: 'admission_xfjn' } })
},
// 更换推荐人
changeProvider(data) {
api.updateProvider(data.id, data).then(response => {
const { error, message } = response
if (error.toString() === '0') {
this.sendToProvider(data)
// this.$message({ type: 'success', message })
} else {
this.$message.error(message)
}
})
},
// 再次邀请推荐
sendToProvider(data) {
api.sendToProvider(data.id).then(response => {
const { error, message } = response
if (error.toString() === '0') {
this.$message({ type: 'success', message })
} else {
this.$message.error(message)
}
})
},
// 发送推荐信
sendToProviders() {
api.sendToProviders().then(response => {
const { error, message } = response
if (error.toString() === '0') {
this.$message({ type: 'success', message })
} else {
this.$message.error(message)
}
})
}
},
beforeMount() {
this.getApplication()
}
}
</script>
<style lang="scss" scoped>
.dialog-tips {
text-align: center;
p {
color: #262626;
line-height: 20px;
}
.icon {
margin-top: 20px;
text-align: center;
}
}
</style>
......@@ -31,6 +31,11 @@ export default (routes, resolve) => {
component: resolve(__dirname, '../modules/my/interview/index.vue'),
meta: { requiredLogin: true }
},
{
path: 'review',
component: resolve(__dirname, '../modules/my/review/index.vue'),
meta: { requiredLogin: true }
},
{
path: 'admission',
component: resolve(__dirname, '../modules/my/admission/index.vue'),
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论