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

chore(报名申请): 隐藏报名缴费,修改面试申请和办理入学阶段表单配置

上级 41fcc96f
export default {
export default function(_this) {
return {
required: true,
id: 'admission_byzs',
title: '毕业证书注册备案表',
title: '毕业证书或在读证明',
get: {
action: `${process.env.baseURL}/api/enrollment/v1.0/application-materials/${process.env.projectId}`,
callback(data) {
......@@ -11,38 +13,93 @@ export default {
'INTERVIEW_APPLICATION',
'AUDITION',
'INTERVIEW',
'PAYMENT',
'REGISTRATION',
'PAYMENT',
'CLOSED'
]
this.form.options.disabled = stageList.findIndex(item => item === submissionStage) > 6
const DIPLOMA_FILING_TABLE = attachments.filter(item => {
return item.file_type_id === 'DIPLOMA_FILING_TABLE'
})
return { DIPLOMA_FILING_TABLE }
this.form.options.disabled = stageList.findIndex(item => item === submissionStage) >= 6
return 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: [] }
)
}
},
update: {
action: `${process.env.baseURL}/api/enrollment/v1.0/application-materials/submit/${process.env.projectId}`,
beforeRequest(data) {
return { submission_stage: 'REGISTRATION' }
},
callback() {
this.form.options.disabled = true
_this.getApplication()
},
errorCallback() {
_this.completeVisible = true
}
},
form: {
prev: { to: { query: { active: 'admission_cjd' } } },
next: { to: { query: { active: 'admission_ywjl' } } },
hasButton: false,
options: {},
prev: { to: { query: { active: 'admission_grcs' } } },
submitText: '提交申请',
options: { 'label-position': 'top' },
hint: `
提示:<br />
1、请同时上传毕业证书及学位证书(中英文)<br />
2、如尚未毕业,请上传在读证明(中英文)`,
items: [
{
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。'
},
{
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 />可上传多个文件,请确保公章清晰可辨。'
},
{
required: true,
model: 'DIPLOMA_FILING_TABLE',
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: 'DIPLOMA_FILING_TABLE' }
data: { file_type: 'PROOF_READING' }
},
prepend: `
<p>学信网《教育部学历证书电子注册备案表》[<a href="https://zws-imgs-pub.ezijing.com/pc/sofia/%E6%AF%95%E4%B8%9A%E8%AF%81%E4%B9%A6%E6%B3%A8%E5%86%8C%E5%A4%87%E6%A1%88%E8%A1%A8.pdf" target="_blank" download="毕业证书注册备案表">下载流程表</a>]
<p>学历在学信网可查的同学,请下载学信网电子注册备案表提交到系统,具体获取流程请</p>
<p>下载附件 上传文件仅限“jpg,jpeg,pdf,png”格式,文件小于10Mb。</p>
`
rules: { required: true, message: '请上传在读证明' },
append:
'未毕业学员提交加盖公章的在读证明<br/>申请者需要将本科或以上在读证明原件扫描或拍照后提交。<br> 可上传多个文件,请确保公章清晰可辨。'
}
]
}
}
}
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', 'PAYMENT', 'REGISTRATION', 'CLOSED']
this.form.options.disabled = stageList.findIndex(item => item === submissionStage) > 6
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') {
......@@ -23,7 +33,7 @@ export default function(_this) {
}
},
form: {
next: { to: { query: { active: 'admission_xy' } } },
next: { to: { query: { active: 'admission_tjx' } } },
hasButton: false,
options: { 'label-position': 'top' },
hint: `
......@@ -38,7 +48,6 @@ export default function(_this) {
label: '中文成绩单',
model: 'REPORT_CARD_CN',
attrs: {
disabled: true,
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' }
......
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 byzs from './byzs'
// import ywjl from './ywjl'
import xy from './xy'
// 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),
xy(_this),
xfjn(_this)
]
children: [cjd(_this), tjx(_this), grcs(_this), byzs(_this), xfjn(_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 { submission_stage: submissionStage = 'FILLING' } = data.data.material
const { attachments = [], submission_stage: submissionStage = 'FILLING' } = data.data.material
const stageList = [
'FILLING',
'PREPAYMENT',
'INTERVIEW_APPLICATION',
'AUDITION',
'INTERVIEW',
'PAYMENT',
'REGISTRATION',
'PAYMENT',
'CLOSED'
]
this.form.options.disabled = stageList.findIndex(item => item === submissionStage) > 6
const list = data.data.material.reco_letters || []
// this.form.options.disabled = list.length >= 2
return list.length ? list : [{}, {}]
}
},
update: {
action: `${process.env.baseURL}/api/enrollment/v1.0/application-materials/${process.env.projectId}/put`,
beforeRequest(data) {
return { reco_letters: data }
},
callback({ message }) {
// this.form.options.disabled = true
const letters = _this.detail.material.reco_letters || []
if (!letters.length) {
_this.sendToProviders()
_this.getApplication()
} else {
this.$message({ type: 'success', message })
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
},
form: {
minlength: 2,
prev: { to: { query: { active: 'admission_cjd' } }, isSubmit: true },
next: { to: { query: { active: 'admission_xy' } }, isSubmit: true },
hasAdd: true,
options: { disabled: false, labelWidth: '140px' },
disabled(data) {
return !!data.letter_content
},
aside: {
prepend: {
html: '<p style="color:#33C011;">推荐人已完成</p>',
visible(data) {
return !!data.letter_content
{ RECOMMENDATION_LETTER: [], RECOMMENDATION_LETTER_2: [] }
)
}
},
buttons: [
// 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: [
{
text: '再次邀请',
visible(data) {
const editable = ['PREPAYMENT', 'REGISTRATION'].includes(_this.detail.material.submission_stage)
return data.id && !data.letter_content && editable
},
onClick(data) {
_this.sendToProvider(data)
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
}
},
{
text: '更换推荐人',
visible(data) {
const editable = ['PREPAYMENT', 'REGISTRATION'].includes(_this.detail.material.submission_stage)
return data.id && !data.letter_content && editable
},
onClick(data, $form) {
$form.validate().then(() => {
_this.changeProvider(data)
})
}
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
}
]
},
items: [
{
type: 'v-input',
label: '推荐人姓名',
model: 'provider_name',
attrs: { placeholder: '请输入推荐人姓名' },
rules: [{ required: true, message: '请输入推荐人姓名', trigger: 'blur' }]
},
{
type: 'v-input',
label: '推荐人电话',
model: 'provider_phone_number',
attrs: { placeholder: '请输入推荐人电话', maxlength: 11 },
rules: [{ required: true, pattern: /^1[3-9]\d{9}$/, message: '请输入推荐人电话', trigger: 'blur' }]
},
{
type: 'v-input',
label: '推荐人邮箱',
model: 'provider_email',
attrs: { placeholder: '请输入推荐人邮箱' },
rules: [{ type: 'email', required: true, message: '请输入推荐人邮箱', trigger: 'blur' }]
},
{
type: 'v-select',
values: [
{ value: '老师/导师' },
{ value: '领导' },
{ value: '同学' },
{ value: '同事' },
{ value: '亲属' },
{ value: '朋友' },
{ value: '其他' }
],
label: '与推荐人关系',
model: 'provider_relationship',
rules: [{ required: true, message: '请选择与推荐人关系', trigger: 'change' }]
}
]
}
......
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', 'PAYMENT', 'REGISTRATION', 'CLOSED']
this.form.options.disabled = stageList.findIndex(item => item === submissionStage) > 6
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'
})
......@@ -15,7 +28,7 @@ export default function(_this) {
}
},
form: {
prev: { to: { query: { active: 'admission_xy' } } },
prev: { to: { query: { active: 'admission_byzs' } } },
hasButton: false,
options: { 'label-position': 'top' },
hint: `
......
......@@ -29,14 +29,15 @@
width="348px"
>
<div class="dialog-tips">
<p>请确认是否已缴费,如未缴费点击下方缴费按钮 <br />(已缴费,请忽略)</p>
<!-- <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="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>
......@@ -45,15 +46,18 @@ import AppLayout from '../layout.vue'
import getMenu from './form'
import * as api from '@/api/my'
import AppXy from './xy'
import AppComplete from '../application/complete.vue'
export default {
components: { AppLayout, AppXy },
components: { AppLayout, AppXy, AppComplete },
data() {
const menus = getMenu(this)
return {
menus: [menus],
currentActive: 'admission_cjd',
dialogVisible: false,
detail: null
detail: null,
completeVisible: false
}
},
watch: {
......@@ -71,12 +75,21 @@ export default {
computed: {
isSubmited() {
if (this.detail) {
return !!this.detail.material.attachments.find(item => item.file_type_id === 'ADMISSION_AGREEMENT')
return this.detail.material.submission_stage === 'PAYMENT'
}
return false
},
showSubmitedDialog() {
return this.isSubmited && this.currentActive === 'admission_xy'
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: {
......
......@@ -11,13 +11,13 @@
<div>
<ul v-if="detail">
<li
v-for="item in currentOptions"
:class="progress[item.code].progress === 1 ? 'is-success' : 'is-error'"
:key="item.code"
v-for="(item, index) in currentOptions"
:class="!progress(item.code) ? 'is-success' : 'is-error'"
:key="index"
>
<span class="name">{{ item.title }}</span>
<span class="line"></span>
<span class="status">{{ progress[item.code].progress === 1 ? '已完成' : '未完成' }}</span>
<span class="status">{{ !progress(item.code) ? '已完成' : '未完成' }}</span>
<span class="view" @click="handleView(item.view.to)">立即查看</span>
</li>
</ul>
......@@ -29,6 +29,7 @@
</template>
<script>
import { get } from 'lodash'
import * as api from '@/api/my'
export default {
props: { value: { type: Boolean, default: false }, type: { type: Number, default: 0 } },
......@@ -36,65 +37,55 @@ export default {
return {
dialogVisible: false,
detail: null,
progress: {},
options: [
[
{
title: '个人资料',
code: 'applicaitonInfo',
code: 'FILLING.total_progress',
view: { to: { path: '/my/application', query: { active: 'application_info' } } }
}
// {
// title: '推荐信',
// code: 'applicationTjx',
// view: { to: { path: '/my/application', query: { active: 'application_tjx' } } }
// }
// {
// title: '无犯罪证明',
// code: 'applicationWfzzm',
// view: { to: { path: '/my/application', query: { active: 'application_wfzzm' } } }
// }
],
[
{
title: '毕业证书&学位证书/在读证明',
code: 'interviewByzs',
view: { to: { path: '/my/interview', query: { active: 'interview_byzs' } } }
},
// {
// title: '学位证书',
// code: 'interviewXwzs',
// view: { to: { path: '/my/interview', query: { active: 'interview_byzs' } } }
// },
// {
// title: '在读证明',
// code: 'interviewZdzm',
// view: { to: { path: '/my/interview', query: { active: 'interview_byzs' } } }
// },
{
title: '英文简历',
code: 'interviewYwjl',
code: 'INTERVIEW_APPLICATION.attachments.missed_required_list.RESUME_EN',
view: { to: { path: '/my/interview', query: { active: 'interview_ywjl' } } }
},
{
title: '推荐信',
code: 'interviewTjx',
view: { to: { path: '/my/interview', query: { active: 'interview_tjx' } } }
},
{
title: '成绩单',
code: 'interviewCjd',
code: 'INTERVIEW_APPLICATION.attachments.missed_required_list.REPORT_CARD_CN',
view: { to: { path: '/my/interview', query: { active: 'interview_cjd' } } }
},
{
title: '语言能力证明',
code: 'interviewYynlzm',
code: 'INTERVIEW_APPLICATION.attachments.missed_required_list.INTERNATIONAL_LANGUAGE_SCORE',
view: { to: { path: '/my/interview', query: { active: 'interview_yynl' } } }
}
],
[
{
title: '成绩单',
code: 'REGISTRATION.attachments.missed_required_list.REPORT_CARD_EN',
view: { to: { path: '/my/admission', query: { active: 'admission_cjd' } } }
},
{
title: '推荐信',
code: [
'REGISTRATION.attachments.missed_required_list.RECOMMENDATION_LETTER',
'REGISTRATION.attachments.missed_required_list.RECOMMENDATION_LETTER_2'
],
view: { to: { path: '/my/admission', query: { active: 'admission_tjx' } } }
},
{
title: '个人陈述',
code: 'REGISTRATION.attachments.missed_required_list.PERSONAL_STATEMENT',
view: { to: { path: '/my/admission', query: { active: 'admission_grcs' } } }
},
{
title: '个人照片',
code: 'interviewZp',
view: { to: { path: '/my/interview', query: { active: 'interview_zp' } } }
title: '毕业证或在读证明',
code: 'REGISTRATION.attachments.missed_required_list.DIPLOMA_CN',
view: { to: { path: '/my/admission', query: { active: 'admission_byzs' } } }
}
]
]
......@@ -119,83 +110,20 @@ export default {
api.getApplication(this.$route.query).then(response => {
const { data, error, message } = response
if (error.toString() === '0') {
const { progress } = data
this.detail = data
const fillingMissedRequiredList = progress.FILLING.attachments.missed_required_list
// 个人资料
const applicaitonInfo = { progress: 0 }
const infoRequriedList = ['basic_info', 'educations', 'careers', 'answers']
for (const key of infoRequriedList) {
if (progress.FILLING[key].progress < 1) {
applicaitonInfo.progress = 0
break
}
applicaitonInfo.progress = 1
}
if (applicaitonInfo.progress === 1 && !fillingMissedRequiredList.ID_CARD_PHOTO) {
applicaitonInfo.progress = 1
} else {
applicaitonInfo.progress = 0
}
// 推荐信
const applicationTjx = { progress: 0 }
applicationTjx.progress = progress.FILLING.reco_letters ? progress.FILLING.reco_letters.progress : 0
// 无犯罪证明
const applicationWfzzm = { progress: 0 }
applicationWfzzm.progress = fillingMissedRequiredList.NO_CRIMINAL_CERT ? 0 : 1
const missedRequiredList = progress.INTERVIEW_APPLICATION.attachments.missed_required_list
// 2寸照片
const interviewZp = { progress: 0 }
interviewZp.progress = missedRequiredList.PERSONAL_PHOTO_FOR_ID ? 0 : 1
// 毕业证书
const interviewByzs = { progress: 0 }
interviewByzs.progress =
missedRequiredList.DIPLOMA_CN || missedRequiredList.DEGREE_CERT_CN || missedRequiredList.PROOF_READING
? 0
: 1
// 学位证书
const interviewXwzs = { progress: 0 }
interviewXwzs.progress = missedRequiredList.DEGREE_CERT_CN ? 0 : 1
// 学位证书英文
const interviewXwzsEnglish = { progress: 0 }
interviewXwzsEnglish.progress = missedRequiredList.DEGREE_CERT_EN ? 0 : 1
// 在读证明
const interviewZdzm = { progress: 0 }
interviewZdzm.progress = missedRequiredList.PROOF_READING ? 0 : 1
// 英文简历
const interviewYwjl = { progress: 0 }
interviewYwjl.progress = missedRequiredList.RESUME_EN ? 0 : 1
// 成绩单
const interviewCjd = { progress: 0 }
interviewCjd.progress = missedRequiredList.REPORT_CARD_CN || missedRequiredList.REPORT_CARD_EN ? 0 : 1
// 语言能力证明
const interviewYynlzm = { progress: 0 }
interviewYynlzm.progress = missedRequiredList.INTERNATIONAL_LANGUAGE_SCORE ? 0 : 1
// 推荐信
const interviewTjx = { progress: 0 }
interviewTjx.progress = missedRequiredList.RECOMMENDATION_LETTER ? 0 : 1
this.progress = {
applicaitonInfo,
applicationTjx,
applicationWfzzm,
interviewZp,
interviewByzs,
interviewXwzs,
interviewXwzsEnglish,
interviewZdzm,
interviewYwjl,
interviewCjd,
interviewYynlzm,
interviewTjx
}
} else {
this.$message.error(message)
}
})
},
progress(prop) {
if (Array.isArray(prop)) {
return prop.every(item => {
return get(this.detail.progress, item)
})
}
return get(this.detail.progress, prop)
},
handleView(to) {
this.dialogVisible = false
this.$router.push(to)
......
......@@ -26,8 +26,13 @@ export default function(_this) {
callback() {
_this.getApplication()
this.form.options.disabled = true
_this.$router.push({ path: this.$route.path, query: { active: 'application_pay' } })
// _this.$router.push({ path: this.$route.path, query: { active: 'application_pay' } })
// _this.$router.push({ path: '/my/interview' })
if (_this.hasPay) {
_this.$router.push({ path: this.$route.path, query: { active: 'application_pay' } })
} else {
_this.$router.push({ path: '/my/interview' })
}
},
errorCallback() {
_this.completeVisible = true
......
......@@ -17,7 +17,7 @@ export default function(_this) {
title: '缴报名费',
show: false,
visible() {
return _this.visible
return _this.visible && _this.hasPay
}
}
]
......
......@@ -49,7 +49,8 @@ export default {
tabActive: 'application_info_profile',
dialogVisible: false,
detail: null,
completeVisible: false
completeVisible: false,
hasPay: false
}
},
watch: {
......
......@@ -33,7 +33,7 @@ export default function(_this) {
}
},
form: {
prev: { to: { query: { active: 'interview_tjx' } } },
prev: { to: { query: { active: 'interview_ywjl' } } },
next: { to: { query: { active: 'interview_yynl' } } },
hasButton: false,
options: { 'label-position': 'top' },
......
import byzs from './byzs'
// import byzs from './byzs'
import cjd from './cjd'
import yynl from './yynl'
// import xwzs from './xwzs'
import ywjl from './ywjl'
import zp from './zp'
import tjx from './tjx'
// import zp from './zp'
// import tjx from './tjx'
export default function(_this) {
return {
id: 'interview',
title: '申请面试',
children: [byzs(_this), ywjl(_this), tjx(_this), cjd(_this), yynl(_this), zp(_this)]
children: [ywjl(_this), cjd(_this), yynl(_this)]
}
}
......@@ -25,8 +25,8 @@ export default function(_this) {
}
},
form: {
prev: { to: { query: { active: 'interview_byzs' } } },
next: { to: { query: { active: 'interview_tjx' } } },
// prev: { to: { query: { active: 'interview_byzs' } } },
next: { to: { query: { active: 'interview_cjd' } } },
hasButton: false,
options: { 'label-position': 'top' },
items: [
......
......@@ -29,12 +29,26 @@ export default function(_this) {
)
}
},
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: 'interview_cjd' } } },
next: { to: { query: { active: 'interview_zp' } } },
hasButton: false,
submitText: '申请面试',
model: { submission_stage: 'INTERVIEW_APPLICATION' },
options: { 'label-position': 'top' },
hint: '可上传托福、雅思、多邻国、大学英语四六级成绩等',
hint: '可上传CET-4,CET-6,TOEFL,IELTS等',
items: [
{
required: true,
......
......@@ -45,7 +45,7 @@ export default {
const menus = getMenu(this)
return {
menus: [menus],
currentActive: 'interview_byzs',
currentActive: 'interview_ywjl',
completeVisible: false,
dialogVisible: false,
detail: null
......@@ -56,7 +56,7 @@ export default {
immediate: true,
handler(route) {
const { query = {} } = route
this.currentActive = query.active || 'interview_byzs'
this.currentActive = query.active || 'interview_ywjl'
}
},
showSubmitedDialog(value) {
......@@ -81,7 +81,7 @@ export default {
return false
},
showSubmitedDialog() {
return this.isSubmited && this.currentActive === 'interview_byzs'
return this.isSubmited && this.currentActive === 'interview_yynl'
},
user() {
return this.$store.state.user
......
......@@ -8,7 +8,7 @@
"name": "project-pc",
"version": "1.0.0",
"dependencies": {
"@ezijing/vue-form": "^2.3.13",
"@ezijing/vue-form": "^2.3.15",
"axios": "^0.21.1",
"cookie-universal-nuxt": "^2.1.4",
"core-js": "^3.9.1",
......@@ -16,6 +16,7 @@
"element-ui": "^2.15.1",
"file-saver": "^2.0.5",
"js-file-download": "^0.4.12",
"lodash": "^4.17.21",
"nuxt": "^2.15.3",
"qrcode.vue": "^1.7.0",
"qs": "^6.10.1",
......@@ -1012,9 +1013,9 @@
}
},
"node_modules/@ezijing/vue-form": {
"version": "2.3.13",
"resolved": "https://registry.npmjs.org/@ezijing/vue-form/-/vue-form-2.3.13.tgz",
"integrity": "sha512-d5Z2iNkUb0BDPTP2wagvRXiWkxHQi9ddVhDBBzspMiEwQG1Bk+mVi5JotIRNmHvnzhTojTw1J4qnBEoctffs7g==",
"version": "2.3.15",
"resolved": "https://registry.npmjs.org/@ezijing/vue-form/-/vue-form-2.3.15.tgz",
"integrity": "sha512-SI3WPWxZbzVkYhOaiiIGjxlRf9Ii9VqPfzqHuzHoCigz3vC4x/BXkZS0dUTyK9F3jvWpU1AQxCBxsAvsiEbSGg==",
"dependencies": {
"@vue/babel-helper-vue-jsx-merge-props": "^1.0.0",
"@vue/babel-preset-jsx": "^1.1.2",
......@@ -13735,9 +13736,9 @@
"integrity": "sha512-5a6wqoJV/xEdbRNKVo6I4hO3VjyDq//8q2f9I6PBAvMesJHFauXDorcNCsr9RzvsZnaWi5NYCcfyqP1QeFHFbw=="
},
"@ezijing/vue-form": {
"version": "2.3.13",
"resolved": "https://registry.npmjs.org/@ezijing/vue-form/-/vue-form-2.3.13.tgz",
"integrity": "sha512-d5Z2iNkUb0BDPTP2wagvRXiWkxHQi9ddVhDBBzspMiEwQG1Bk+mVi5JotIRNmHvnzhTojTw1J4qnBEoctffs7g==",
"version": "2.3.15",
"resolved": "https://registry.npmjs.org/@ezijing/vue-form/-/vue-form-2.3.15.tgz",
"integrity": "sha512-SI3WPWxZbzVkYhOaiiIGjxlRf9Ii9VqPfzqHuzHoCigz3vC4x/BXkZS0dUTyK9F3jvWpU1AQxCBxsAvsiEbSGg==",
"requires": {
"@vue/babel-helper-vue-jsx-merge-props": "^1.0.0",
"@vue/babel-preset-jsx": "^1.1.2",
......
......@@ -10,7 +10,7 @@
"generate": "nuxt generate"
},
"dependencies": {
"@ezijing/vue-form": "^2.3.13",
"@ezijing/vue-form": "^2.3.15",
"axios": "^0.21.1",
"cookie-universal-nuxt": "^2.1.4",
"core-js": "^3.9.1",
......@@ -18,6 +18,7 @@
"element-ui": "^2.15.1",
"file-saver": "^2.0.5",
"js-file-download": "^0.4.12",
"lodash": "^4.17.21",
"nuxt": "^2.15.3",
"qrcode.vue": "^1.7.0",
"qs": "^6.10.1",
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论