提交 c9419f01 authored 作者: lhh's avatar lhh
-----BEGIN RSA PRIVATE KEY-----
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
-----END RSA PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
MIIGtjCCBZ6gAwIBAgIQDjUArTRdZ4P5wtQVmCqJGjANBgkqhkiG9w0BAQsFADBj
MIIGtDCCBZygAwIBAgIQJtN62MbxMBaLhLadTXD/LzANBgkqhkiG9w0BAQsFADBj
MQswCQYDVQQGEwJDTjE2MDQGA1UECgwtQmVpamluZyBYaW5jaGFjaGEgQ3JlZGl0
IE1hbmFnZW1lbnQgQ28uLCBMdGQuMRwwGgYDVQQDDBNYY2MgVHJ1c3QgT1YgU1NM
IENBMB4XDTIyMDgxODE0MDAzMVoXDTIzMDkxNzE0MDAzMFowgY4xCzAJBgNVBAYT
IENBMB4XDTIzMDkwNzA1NTM0MVoXDTI0MDkwNjA1NTM0MFowgY4xCzAJBgNVBAYT
AkNOMRIwEAYDVQQIDAnljJfkuqzluIIxEjAQBgNVBAcMCeWMl+S6rOW4gjE/MD0G
A1UECgw25riF5o6n57Sr6I2G77yI5YyX5Lqs77yJ5pWZ6IKy56eR5oqA6IKh5Lu9
5pyJ6ZmQ5YWs5Y+4MRYwFAYDVQQDDA0qLmV6aWppbmcuY29tMIIBIjANBgkqhkiG
9w0BAQEFAAOCAQ8AMIIBCgKCAQEAucCbdPPyAp6vmnr5XObuPsctUhVLyXwqbIpg
I5jWzjG7wmk8V6z8WJKPO9KZM6D9ejtN/bbbd3j1cRiw7NSl8AUykiVHJWz9TXAf
lET2EpILLeraI1B2XAcBsc8dZBGGJD/LT97ZvNLYzuQOr7R1wytWH1uisAK5Clzg
nSptMenXFyhw5Xw0Lm3zoeeqYF/KMQ1McAYMGxgu6s6dxXKiA0BcgWQ31yZey0c4
HhCt7T7sA/UNahUsxtCcSNSvdgXay5Pu/l3N88TwW2QzaCzrueILHWRFwkREhpqy
rwjN3gkaa+1TjLxzCsk/pTnPccxlFwc3YQ3hYLMl36NJ/OIpHwIDAQABo4IDODCC
AzQwDAYDVR0TAQH/BAIwADBDBgNVHR8EPDA6MDigNqA0hjJodHRwOi8veGluY2hh
9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwZGHX8Zg+EP5uwnEBWkQazq8DMnKz3QfcNRU
jFsxsZjM/98roYYp+K6/i/b8JXAVMqjC9+X/ZajgbDPLTrgDJ4TQ70ajdusqG3sw
NqG0qLUogNgUPcgVRKr2Pk+m79GD/nnxFgeaG6eBfLsb73G2cQUwsgi3bjf6mX6b
9bjxjqzwX0PWes27yyqdS9uQFzV5KLTA2FJJjGGbg54ZLxVc01aVXx2gG0eLnOFc
DSmgXUN4hBmNgYF4FYHhOVXdMl2+yGGp6IvtIIrt+cp2/TQePnxB2QYwrlDMajHr
Kp0x7LsqWwZTjepPgGWWDssiSgTCYVaPx28ESbotpzR7D+LlHQIDAQABo4IDNjCC
AzIwDAYDVR0TAQH/BAIwADBDBgNVHR8EPDA6MDigNqA0hjJodHRwOi8veGluY2hh
Y2hhMm92LmNybC5jZXJ0dW0ucGwveGluY2hhY2hhMm92LmNybDB5BggrBgEFBQcB
AQRtMGswLwYIKwYBBQUHMAGGI2h0dHA6Ly94aW5jaGFjaGEyb3Yub2NzcC1jZXJ0
dW0uY29tMDgGCCsGAQUFBzAChixodHRwOi8vcmVwb3NpdG9yeS5jZXJ0dW0ucGwv
eGluY2hhY2hhMm92LmNlcjAfBgNVHSMEGDAWgBT6oMvCx12BtSCSByALtjtwOwkO
VTAdBgNVHQ4EFgQUEJufsd5nLNR+wqR2GsFWDn7qTn0wTAYDVR0gBEUwQzAIBgZn
VTAdBgNVHQ4EFgQUXm2TAFqEePvMkmcMN+bVXSvLTH8wTAYDVR0gBEUwQzAIBgZn
gQwBAgIwNwYMKoRoAYb2dwIFARYCMCcwJQYIKwYBBQUHAgEWGWh0dHBzOi8vd3d3
LmNlcnR1bS5wbC9DUFMwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4G
A1UdDwEB/wQEAwIFoDAlBgNVHREEHjAcgg0qLmV6aWppbmcuY29tggtlemlqaW5n
LmNvbTCCAX4GCisGAQQB1nkCBAIEggFuBIIBagFoAHYAVYHUwhaQNgFK6gubVzxT
8MDkOHhwJQgXL6OqHQcT0wwAAAGCsUFwdgAABAMARzBFAiAc51lynft4sehXTgyw
tjQ83PAVmfZ3FC55eIpIETe2hgIhANvo5ZtGQpcZQ5HSGbRLy4Y9/MbUrS8dtkwP
l7I/lRj7AHYArfe++nz/EMiLnT2cHj4YarRnKV3PsQwkyoWGNOvcgooAAAGCsUFw
TwAABAMARzBFAiATnQDMw1wykBdnTIRfSSXPj7HZfDdRRq6VaiTbSpYKYQIhAMTp
V6K0W9gtdYGdeg4j6n17S1yMODYvLJxd3kAFFNDTAHYAejKMVNi3LbYg6jjgUh7p
hBZwMhOFTTvSK8E6V6NS61IAAAGCsUFwrQAABAMARzBFAiEAwWKXKxp6DcKG7R/d
rxmPUg8uNbUcdxysrpB3gOzkIlACICWpx7/+2ulDG2EC9m4RqGcXbts3VWu/yxpE
0pAYuAP8MA0GCSqGSIb3DQEBCwUAA4IBAQCf3AdKLO8EUntMjKaRa0lncwh/pBIQ
bcQfkJBfiTpo6tnRphR+DE50oYOX1TSQRm4cDgP2JURYiTK6Z2+ljqMbUx4mNLqe
+6yG+PGCUX6rX4BsJqlRP2W7WONE/I3/3S6MRfclKmakHSyrGFi8O/JJyNqm+5z9
8tnk8c1Cn7FboJZonhX0yszHkXLLeA93xm5+Etkw0+DvRcZGiEqKQivO3CnUh1gs
LZg27a8s3dtmAAHbb2icm5jloK9Jgpx/NkGL/cCoNZ8Ng2TZkRvo6GzIp43uS332
R07dQ6rNWZkPzdxKUdNcT0v3yJJyxD1H3Rk4/bxp78giw4JGHp52Df+U
LmNvbTCCAXwGCisGAQQB1nkCBAIEggFsBIIBaAFmAHUA7s3QZNXbGs7FXLedtM0T
ojKHRny87N7DUUhZRnEftZsAAAGKbjQU6wAABAMARjBEAiAMbEi/VFFT/mgWiXPw
WgVT5THVJCfr9j1oIcfiB5MFHgIgJ2nAv7xTmfoZfcO8sWoGigLdN8QtGksVUSI2
86Wg3O4AdgDatr9rP7W2Ip+bwrtca+hwkXFsu1GEhTS9pD0wSNf7qwAAAYpuNBUS
AAAEAwBHMEUCIDmQ1/B1s3jRr+0SvDSWEFN9/b4/W8QV5yULASXqQkYqAiEA0wKZ
lklUASXMM8mluAimD5e4qSXu76+148bfZA2d404AdQBIsONr2qZHNA/lagL6nTDr
HFIBy1bdLIHZu7+rOdiEcwAAAYpuNBefAAAEAwBGMEQCICyokQlEyxPTPYNBZzwv
W8AxbKUJl+I5TbJEJsiFECRUAiA8fA86Hof/yLHhMl4amx5AttDNhpDrCHDK1N7m
NYx9XjANBgkqhkiG9w0BAQsFAAOCAQEAq4Q2vW3Xh5TOYk/DofnV2uRiK08P5a5I
NRE5Tet3J5rp2WnNgXoSAOabqWGI6VrTyenTZxrmS/2Aq2A008WOj4Z7T3P9iDS/
MgJkPmc/REqHr15LIDnyRRfmn9+1ShVMwukYHSmZgPewAzSkKdGFN85t3uCEUnXz
kna3ZmSqgJrSWSO9n/3t/kICsVivjqSUuHtnCSbBa+DTSNxIkbkr1t1RJkF4KvSk
AKkvyojoKoeCd+WWEl2MBHY6TK4CzfyLN5qhQub0XqTOh6cG9TwALcLZ4MQeaeOO
ZkGv9DcyeOz7FwwzFa+vAyzhq2XlDPLlpZ4ELALbaqnq3x7HHpzlpw==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIEzzCCA7egAwIBAgIRAPJECC2rqQ2ljHLp8pqTQK4wDQYJKoZIhvcNAQELBQAw
......@@ -111,3 +111,4 @@ CjqTE5s7FCMTY5w/0YcneeVMUeMBrYVdGjux1XMQpNPyvG5k9VpWkKjHDkx0Dy5x
O/fIR/RpbxXyEV6DHpx8Uq79AtoSqFlnGNu8cN2bsWntgM6JQEhqDjXKKWYVIZQs
6GAqm4VKQPNriiTsBhYscw==
-----END CERTIFICATE-----
......@@ -134,3 +134,26 @@ export function changeFileStatus(userId, recordId, status) {
export function getOpenId(data) {
return httpRequest.post('/usercenter/v1/wechat/get-openid', data)
}
/**
* 签名
*/
export function createSign(data) {
return httpRequest.post('/sign/v1/sign/create-by-template', data)
}
/**
* 获取签名文档
*/
export function getSignDocument(params) {
return httpRequest.get('/sign/v1/sign/document', params)
}
/**
* 申请面试
*/
export function changeSubmissionStage(data) {
return httpRequest.post(`/enrollment/v1.0/application-materials/submit/${projectId}`, data, {
headers: { 'Content-Type': 'application/json' }
})
}
src/assets/images/my_02.png

41.1 KB | W: | H:

src/assets/images/my_02.png

38.6 KB | W: | H:

src/assets/images/my_02.png
src/assets/images/my_02.png
src/assets/images/my_02.png
src/assets/images/my_02.png
  • 2-up
  • Swipe
  • Onion skin
src/assets/images/my_02_hover.png

110.6 KB | W: | H:

src/assets/images/my_02_hover.png

35.9 KB | W: | H:

src/assets/images/my_02_hover.png
src/assets/images/my_02_hover.png
src/assets/images/my_02_hover.png
src/assets/images/my_02_hover.png
  • 2-up
  • Swipe
  • Onion skin
......@@ -112,7 +112,7 @@ export default {
height: 100%;
.details-news-body-title {
display: flex;
margin-top: 50px;
margin-top: 150px;
flex-direction: column;
.padd-10 {
padding: 15px 0px;
......
<template>
<div class="collapse" :class="classes">
<div class="collapse-hd">
<div class="collapse-icon" @click="toggle">
<i class="el-icon-remove-outline" v-if="isActive"></i>
<i class="el-icon-circle-plus-outline" v-else></i>
</div>
<div class="collapse-title">
<slot name="title">{{ title }}</slot>
</div>
</div>
<div class="collapse-bd" v-show="isActive">
<slot>{{ content }}</slot>
</div>
</div>
</template>
<script>
export default {
props: {
value: { type: Boolean, default: false },
title: { type: String },
content: { type: String }
},
data() {
return {
isActive: false
}
},
computed: {
classes() {
return { 'is-active': this.isActive }
}
},
methods: {
toggle() {
this.isActive = !this.isActive
this.$emit('input', this.isActive)
}
}
}
</script>
<style lang="scss" scoped>
.collapse {
margin-top: 10px;
}
.collapse-hd {
display: flex;
font-size: 14px;
line-height: 20px;
color: #222;
}
.collapse-icon {
margin-right: 6px;
font-size: 14px;
cursor: pointer;
color: #999;
}
.collapse-bd {
padding-left: 20px;
color: #666;
p {
color: #666 !important;
}
}
</style>
......@@ -10,11 +10,16 @@
@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' && detail.material.basic_info.admission_agreement_type">
<app-xy :data="detail" />
</template>
</vue-form>
<el-dialog
title="办理入学资料提交成功"
......@@ -39,9 +44,10 @@
import AppLayout from '../layout.vue'
import getMenu from './form'
import * as api from '@/api/my'
import AppXy from './xy'
export default {
components: { AppLayout },
components: { AppLayout, AppXy },
data() {
const menus = getMenu(this)
return {
......
<template>
<div class="xy">
<p>学员应仔细阅读《入学协议》以及课程介绍,如对入学协议或课程有异议,请第一时间与课程顾问咨询确认。</p>
<div class="footer">
<el-button type="primary" :disabled="disabled" size="medium" @click="handlePrimary">{{ buttonText }}</el-button>
</div>
</div>
</template>
<script>
import AppCollapse from './components/collapse'
import * as api from '@/api/my'
export default {
props: { data: { type: Object, required: true } },
components: { AppCollapse },
data() {
return {
sign: {},
documentUrl: '',
timer: null
}
},
computed: {
basicInfo() {
return this.data.material.basic_info || {}
},
buttonText() {
return this.documentUrl ? '签署完成' : '立即签署'
},
disabled() {
return !!this.documentUrl
}
},
methods: {
createSign() {
api
.createSign({
name: this.basicInfo.real_name_cn,
id_number: this.basicInfo.id_number,
email: this.basicInfo.email,
type: this.basicInfo.admission_agreement_type
})
.then(response => {
const { code, data } = response
if (code === 1) {
this.sign = data
data.flowid && this.getSignDocument(data.flowid)
} else {
this.$message.error('处理签名失败')
}
})
},
getSignDocument(flowid) {
return api.getSignDocument({ flowid, type: this.basicInfo.admission_agreement_type }).then(response => {
const { code, data } = response
if (code === 1) {
this.documentUrl = data.url
}
return response
})
},
setTimer() {
this.timer = setInterval(() => {
this.getSignDocument(this.sign.flowid).then(response => {
if (response.code === 1) {
this.$message({ type: 'success', message: '入学协议已签署完成' })
this.clearTimer()
}
})
}, 5000)
},
clearTimer() {
this.timer && clearInterval(this.timer)
},
handlePrimary() {
if (!this.sign.shortUrl) {
this.$message({ type: 'error', message: '缺少签名地址,请联系管理员' })
return
}
this.setTimer()
this.newWindowPreview(this.sign.shortUrl)
},
// 新窗口预览
newWindowPreview(url) {
const a = document.createElement('a')
a.href = url
a.target = '_blank'
document.body.appendChild(a)
a.click()
a.remove()
}
},
beforeMount() {
this.createSign()
},
destroyed() {
this.clearTimer()
}
}
</script>
<style lang="scss" scoped>
.xy {
h1 {
font-size: 18px;
font-weight: 600;
color: #222;
line-height: 25px;
text-align: center;
padding: 0 0 10px;
}
p {
margin-top: 10px;
font-size: 14px;
line-height: 20px;
color: #222;
}
.content {
height: 248px;
overflow-x: hidden;
overflow-y: auto;
& > p {
padding-left: 20px;
}
}
.footer {
display: flex;
align-items: center;
justify-content: space-between;
margin-top: 20px;
padding-top: 20px;
border-top: 1px solid #f1f1f1;
}
}
</style>
......@@ -45,7 +45,7 @@ export default function(_this) {
model: 'isAgree',
rules: [{ required: true, message: '请阅读协议', trigger: 'change' }],
prepend:
'<p>本人自愿申请紫荆-加州整合大学应用心理学硕士项目,所有申请表格内填写的内容属实,本科学士学位证书属实,没有弄虚作假的行为。如有虚假,愿承担一切法 律责任。</p>'
'<p>本人自愿申请紫荆-加州整合大学应用心理学硕士项目,所有申请表格内填写之内容与所提交之材料均属实,没有弄虚作假的行为。如有虚假,愿承担一切法律责任。</p>'
}
]
}
......
......@@ -53,35 +53,35 @@ export default function(_this) {
items: [
{
type: 'v-input',
label: '自我介绍(简述自己与心理学的渊源;对心理学的兴趣,什么促使自身喜欢心理学;讲一个与内心活动有关的故事)不低于260字',
label: '自我介绍(简述自己与心理学的渊源;对心理学的兴趣,什么促使自身喜欢心理学;讲一个与内心活动有关的故事)不低于400字',
model: 'answer1',
attrs: { type: 'textarea', rows: '8', style: 'width:100%' },
rules: [
{ required: true, message: '请输入', trigger: 'blur' },
{ min: 260, message: '长度在 260 个字符以上', trigger: 'blur' }
{ min: 400, message: '长度在 400 个字符以上', trigger: 'blur' }
]
},
{
type: 'v-input',
label:
'这个MAP计划对你个人将来有什么好处?你在这个项目中的个人发展目标是什么?(聚焦在MAP学习对个人成长的帮助;如何实现自我目标和个人的社会价值)不低于260字',
'这个MAP计划对你个人将来有什么好处?你在这个项目中的个人发展目标是什么?(聚焦在MAP学习对个人成长的帮助;如何实现自我目标和个人的社会价值)不低于400字',
model: 'answer2',
attrs: { type: 'textarea', rows: '8', style: 'width:100%' },
rules: [
{ required: true, message: '请输入', trigger: 'blur' },
{ min: 260, message: '长度在 260 个字符以上', trigger: 'blur' }
{ min: 400, message: '长度在 400 个字符以上', trigger: 'blur' }
// { min: 60, max: 1000, message: '长度在 60 到 1000 个字符', trigger: 'blur' }
]
},
{
type: 'v-input',
label:
'这个MAP计划对你将来的职业发展有什么好处?你的职业发展目标是什么?(紧密联系MAP课程对目前职业的直接帮助;对未来职业发展目标的支持;如何通过职业平台把所学的心理学技能帮助到更多有需要的人)不低于260字',
'这个MAP计划对你将来的职业发展有什么好处?你的职业发展目标是什么?(紧密联系MAP课程对目前职业的直接帮助;对未来职业发展目标的支持;如何通过职业平台把所学的心理学技能帮助到更多有需要的人)不低于400字',
model: 'answer3',
attrs: { type: 'textarea', rows: '8', style: 'width:100%' },
rules: [
{ required: true, message: '请输入', trigger: 'blur' },
{ min: 260, message: '长度在 260 个字符以上', trigger: 'blur' }
{ min: 400, message: '长度在 400 个字符以上', trigger: 'blur' }
// { min: 60, max: 1000, message: '长度在 60 到 1000 个字符', trigger: 'blur' }
]
},
......@@ -92,7 +92,7 @@ export default function(_this) {
attrs: { type: 'textarea', rows: '8', style: 'width:100%' },
rules: [
{ required: true, message: '请输入', trigger: 'blur' }
// { min: 260, message: '长度在 260 个字符以上', trigger: 'blur' }
// { min: 400, message: '长度在 400 个字符以上', trigger: 'blur' }
// { min: 60, max: 1000, message: '长度在 60 到 1000 个字符', trigger: 'blur' }
]
}
......
<template>
<div class="preview" v-loading="loading">
<template v-if="progress.FILLING">
<div class="preview-hd">
<div class="preview-hd" v-show="hasMaterial">
<el-steps align-center :active="options.length">
<template v-for="item in options">
<el-step
:title="item.title"
:status="progress.FILLING[item.code].progress === 1 ? 'success' : 'error'"
:key="item.code"
></el-step>
<el-step :title="item.title" :status="progress.FILLING[item.code].progress === 1 ? 'success' : 'error'" :key="item.code"></el-step>
</template>
</el-steps>
</div>
<div class="preivew-bd">
<div
class="preview-item"
v-for="item in options"
:key="item.code"
:class="progress.FILLING[item.code].progress === 1 ? 'is-success' : 'is-error'"
>
<div class="preview-item" v-for="item in options" :key="item.code" :class="progress.FILLING[item.code].progress === 1 ? 'is-success' : 'is-error'" v-show="hasMaterial">
<div class="preview-item-hd">
<div class="title">
{{ item.title }}
......@@ -34,11 +25,7 @@
</template>
<template v-else-if="item.isMultiple">
<div class="group" v-for="(data, index) in material[item.code]" :key="index">
<dl
v-for="subitem in item.items"
:key="subitem.code"
v-show="subitem.visible ? subitem.visible() : true"
>
<dl v-for="subitem in item.items" :key="subitem.code" v-show="subitem.visible ? subitem.visible() : true">
<dt>{{ subitem.label }}</dt>
<dd>
<template v-if="subitem.computed">
......@@ -66,7 +53,7 @@
</div>
<div class="preview-item is-success" v-if="isManager">
<div class="preview-item-hd">
<div class="title">照片/附件</div>
<div class="title">{{ hasMaterial ? '照片/附件' : '入学申请材料' }}</div>
<div class="line"></div>
</div>
<div class="preview-item-bd">
......@@ -79,15 +66,16 @@
<i class="el-icon-document"></i>
</template>
</el-image>
<div class="name">{{ item.file_type_label }}</div>
<div class="name">
<span>{{ item.file_type_label }}</span>
<span style="margin-left: 40px;">{{ item.file_name }}</span>
</div>
<div v-if="item.status_desc">
<el-tag size="mini">{{ item.status_desc }}</el-tag>
</div>
</div>
<el-button-group v-if="hasButton" style="margin-left: 40px">
<el-button size="mini" :disabled="item.status === 'INACTIVE'" @click="handleRemove(item)"
>删除</el-button
>
<el-button size="mini" :disabled="item.status === 'INACTIVE'" @click="handleRemove(item)">删除</el-button>
<el-button size="mini" :disabled="item.status === 'LOG'" @click="handleSave(item)">存档</el-button>
</el-button-group>
</li>
......@@ -271,9 +259,7 @@ export default {
},
computed(data = []) {
const result = data.map(item => {
return `<dl><dt>${item.question}</dt><dd>${
item.answer ? item.answer.replace(/\n/g, '<br />') : ''
}</dd></dl>`
return `<dl><dt>${item.question}</dt><dd>${item.answer ? item.answer.replace(/\n/g, '<br />') : ''}</dd></dl>`
})
return `<div class="answers">${result.join('')}</div>`
}
......@@ -346,6 +332,10 @@ export default {
},
hasButton() {
return this.right.includes('X')
},
hasMaterial() {
const { material = '' } = this.$route.query
return material !== '0'
}
},
methods: {
......
......@@ -38,6 +38,8 @@ export default {
hint: `
<p>成绩单:中英文成绩单各上传一个文件</p>
<p>注意事项:需要将证书原件扫描或拍照后提交,请确保证书内容清晰可辨。</p>
<p>* 中文成绩单:须学校开具的正式成绩单或档案馆调取的成绩单复印件方为有效,且必须盖有公章(例如教务处公章、档案处成绩公章等)。</p>
<p>* 英文成绩单:内容和格式必须与中文成绩单保持一致,并盖有翻译公章(推荐去淘宝找具有资质和翻译公章的翻译公司进行翻译)。英文成绩单可不盖学校公章。</p>
`,
items: [
{
......
<template>
<div v-if="loaded">
<template v-if="isComplete">
<ul class="complete-list">
<li>
<router-link to="/preview?material=0">
<img src="https://webapp-pub.ezijing.com/project/ciis/apply_icon_2.png" />
<p>查看资料</p>
</router-link>
</li>
<li>
<a href="https://accounts.ezijing.com/payment" target="_blank">
<img src="https://webapp-pub.ezijing.com/project/ciis/apply_icon_1.png" />
<p>开具发票</p>
</a>
</li>
</ul>
</template>
<template v-else>
<index-welcome @update="handleUpdate" v-if="!isSubmited" />
<index-pay v-else />
</template>
</div>
</template>
......@@ -15,7 +33,8 @@ export default {
data() {
return {
loaded: false,
progress: {}
progress: {},
isComplete: false
}
},
methods: {
......@@ -23,8 +42,13 @@ export default {
getApplication() {
this.loaded = false
api.getApplication().then(response => {
const { progress = {} } = response.data
const { progress = {}, material = {} } = response.data
this.progress = progress
if (material?.basic_info?.ciis_submit_type === '1') {
this.isComplete = true
this.loaded = true
return
}
// 缴费成功
if (progress.PREPAYMENT.total_progress) {
this.$router.push('/my/account')
......@@ -58,3 +82,49 @@ export default {
}
}
</script>
<style lang="scss">
.complete-list {
position: relative;
height: calc(100vh - 120px);
background: url(https://webapp-pub.ezijing.com/project/ciis/apply_banner.png) no-repeat center center;
background-size: cover;
display: flex;
align-items: center;
justify-content: center;
column-gap: 90px;
&::before {
content: '';
position: absolute;
left: 0;
right: 0;
bottom: 0;
top: 0;
background-color: rgba(0, 0, 0, 0.5);
}
li {
position: relative;
width: 200px;
height: 120px;
background-color: #fff;
border-radius: 6px;
z-index: 1;
color: #000;
img {
margin-bottom: 10px;
}
a {
color: inherit;
height: 100%;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
&:first-child {
color: #fff;
background-color: #e27f4d;
}
}
}
</style>
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论