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

调整报名模块

上级 67352980
module.exports = {
domain: 'dev.ezijing.com',
url: 'https://project-api.ezijing.com',
url: 'https://project-api2.ezijing.com',
isEnableToIphoneDebugger: false,
apiBaseURL: 'https://project-api.ezijing.com/api',
apiBaseURL: 'https://project-api2.ezijing.com/api',
webpack: {
externals: {
CKEDITOR: 'window.CKEDITOR',
......
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -143,3 +143,35 @@ export function createSign(data) {
export function getSignDocument(data) {
return httpRequest.get('/usercenter/v1/sign/document', data)
}
/**
* 提交留资
*/
export function submitApply(data) {
return httpRequest.post(`/enrollment/v1.0/applications/${projectId}/apply`, data, {
headers: { 'Content-Type': 'application/json' }
})
}
/**
* 查询留资
*/
export function getApply(params) {
return httpRequest.get(`/enrollment/v1.0/applications/${projectId}/apply`, params, {
headers: { 'Content-Type': 'application/json' }
})
}
/**
* 申请支付
*/
export function getPayment(params) {
return httpRequest.get(`/enrollment/v1.0/applications/${projectId}/request-payment/APPLICATION_FEE`, params)
}
/**
* 获取支付订单列表
*/
export function getPaymentList() {
return httpRequest.get(`/enrollment/v1.0/applications/${projectId}/get-payment-info/APPLICATION_FEE`)
}
......@@ -20,7 +20,7 @@ export default {
methods: {
// 获取订单
getOrder(callback) {
api.getOrder({ wx_open_id: this.openId, payment_method: 'WX_PAY' }).then(response => {
api.getPayment({ wx_open_id: this.openId, payment_method: 'WX_PAY' }).then(response => {
const { data, error, message } = response
if (error.toString() === '0') {
this.order = data
......
......@@ -37,7 +37,7 @@ export default {
methods: {
// 获取订单
getOrder() {
api.getOrder({ payment_method: 'WX_PAY_QR' }).then(response => {
api.getPayment({ payment_method: 'WX_PAY_QR' }).then(response => {
const { data, error, message } = response
this.qrcodeError = error.toString() === '1'
if (error.toString() === '0') {
......
......@@ -15,37 +15,23 @@ export default {
data() {
return {
loaded: false,
progress: {}
isSubmited: false
}
},
methods: {
// 获取报名信息
getApplication() {
this.loaded = false
api.getApplication().then(response => {
const { progress = {} } = response.data
this.progress = progress
// 缴费成功
// if (progress.PREPAYMENT.total_progress) {
// this.$router.push('/my/account')
// } else {
// this.loaded = true
// }
api.getApply().then(response => {
const { error, data } = response
if (parseInt(error) === 0 && data) {
this.isSubmited = true
}
this.loaded = true
})
},
handleUpdate(data) {
const { progress } = data
this.progress = progress
}
},
computed: {
isSubmited() {
const { FILLING = {} } = this.progress
if (FILLING && FILLING.basic_info) {
return !!FILLING.basic_info.progress
}
return false
handleUpdate() {
this.isSubmited = true
}
},
beforeCreate() {
......
......@@ -36,74 +36,41 @@ export default {
const isMobile = /android|iphone|ipad|ipod/i.test(UA)
return {
isWechat: isMobile && /micromessenger/i.test(UA),
order: { id: '', payment_url: '' },
dialogVisible: false,
timer: null,
paymentRecords: [] // 所有订单
}
},
computed: {
// 二维码地址
qrcodeValue() {
return this.order.payment_url
},
// 支付成功
paySuccess() {
return this.order.payment_status === 'SUCCESS'
},
// 待支付订单
orderList() {
// 筛选待支付订单
const list = this.paymentRecords.filter(item => {
return item.bill_type === 'APPLICATION_FEE' && item.payment_status === 'WAITING_FOR_PAY'
})
// 待支付订单是否有当前订单
const found = list.find(item => item.id === this.order.id)
return found ? list : [...list, this.order]
}
},
methods: {
// 获取报名信息
async getApplication() {
await api.getApplication().then(response => {
const { payment_records: paymentRecords = [] } = response.data.material
// 获取支付订单
this.paymentRecords = paymentRecords
if (paymentRecords && paymentRecords.length) {
// 获取支付成功的订单
const orderPaySuccess = paymentRecords.find(item => {
return !!this.paymentRecords.find(item => {
return item.bill_type === 'APPLICATION_FEE' && item.payment_status === 'SUCCESS'
})
if (orderPaySuccess) {
this.order = orderPaySuccess
this.dialogVisible = true
return
}
// 获取最后一个订单
const [lastPayment] = paymentRecords.reverse()
this.order = lastPayment
}
})
},
methods: {
// 检查支付状态
checkPay(order) {
const userId = window.G.UserInfo.id
api.checkPay(order.id, { user_id: userId }).then(response => {
if (response.data.payment_status === 'SUCCESS') {
this.timer && clearInterval(this.timer)
api.getPaymentList().then(response => {
if (parseInt(response.error) === 0) {
this.paymentRecords = response.data
}
if (this.paySuccess) {
this.dialogVisible = true
}
})
},
// 检测支付状态定时器
setCheckPayTimer() {
this.checkPay()
this.timer && clearInterval(this.timer)
this.timer = setInterval(() => {
if (this.paySuccess) {
this.timer && clearInterval(this.timer)
return
} else {
this.checkPay()
}
this.orderList.forEach(order => this.checkPay(order))
}, 3000)
},
// 填写个人资料
......@@ -114,8 +81,7 @@ export default {
this.order = order
}
},
async mounted() {
await this.getApplication()
mounted() {
this.setCheckPayTimer()
},
destroyed() {
......
......@@ -11,21 +11,21 @@
</div>
<div class="form">
<el-form :model="ruleForm" :rules="rules" label-width="90px" ref="ruleForm">
<el-form-item label="姓名" prop="real_name_cn">
<el-input v-model="ruleForm.real_name_cn"></el-input>
<el-form-item label="姓名" prop="name">
<el-input v-model="ruleForm.name"></el-input>
</el-form-item>
<el-form-item label="性别" prop="gender">
<el-select v-model="ruleForm.gender" style="width: 100%">
<el-option value="男"></el-option>
<el-option value="女"></el-option>
<el-option value="未知"></el-option>
<el-option value="1" label="男"></el-option>
<el-option value="2" label="女"></el-option>
<el-option value="0" label="未知"></el-option>
</el-select>
</el-form-item>
<el-form-item label="公司" prop="company_name_cn">
<el-input v-model="ruleForm.company_name_cn"></el-input>
<el-form-item label="公司" prop="company">
<el-input v-model="ruleForm.company"></el-input>
</el-form-item>
<el-form-item label="从业年限" prop="work_year">
<el-select v-model="ruleForm.work_year" style="width: 100%">
<el-form-item label="从业年限" prop="working_years">
<el-select v-model="ruleForm.working_years" style="width: 100%">
<el-option value="1年"></el-option>
<el-option value="2年"></el-option>
<el-option value="3年"></el-option>
......@@ -35,8 +35,8 @@
<el-option value="10年以上"></el-option>
</el-select>
</el-form-item>
<el-form-item label="手机号" prop="phone_number">
<el-input v-model="ruleForm.phone_number" :maxlength="11"></el-input>
<el-form-item label="手机号" prop="phone">
<el-input v-model="ruleForm.phone" :maxlength="11"></el-input>
</el-form-item>
<el-form-item label="邮箱" prop="email">
<el-input v-model="ruleForm.email"></el-input>
......@@ -57,20 +57,20 @@ export default {
material: {},
progress: {},
ruleForm: {
real_name_cn: '',
phone_number: '',
name: '',
phone: '',
email: '',
gender: '',
company_name_cn: '',
work_year: ''
company: '',
working_years: ''
},
rules: {
real_name_cn: [{ required: true, message: '请输入姓名', trigger: 'blur' }],
phone_number: [{ required: true, pattern: /^1[3-9]\d{9}$/, message: '请输入手机号', trigger: 'blur' }],
name: [{ required: true, message: '请输入姓名', trigger: 'blur' }],
phone: [{ required: true, pattern: /^1[3-9]\d{9}$/, message: '请输入手机号', trigger: 'blur' }],
email: [{ type: 'email', required: true, message: '请输入邮箱', trigger: 'blur' }],
gender: [{ required: true, message: '请选择性别', trigger: 'blur' }],
company_name_cn: [{ required: true, message: '请输入公司名称', trigger: 'blur' }],
work_year: [{ required: true, message: '请选择从业年限', trigger: 'blur' }]
company: [{ required: true, message: '请输入公司名称', trigger: 'blur' }],
working_years: [{ required: true, message: '请选择从业年限', trigger: 'blur' }]
}
}
},
......@@ -79,11 +79,9 @@ export default {
this.$refs.ruleForm.validate().then(this.handleSubmitRequest)
},
handleSubmitRequest() {
const params = {
basic_info: this.ruleForm
}
api.updateApplication(params).then(response => {
if (response.error === '0') {
const params = Object.assign({}, this.ruleForm, { project_id: webConf.others.projectId })
api.submitApply(params).then(response => {
if (parseInt(response.error) === 0) {
this.$emit('update', response.data)
} else {
this.$message({ type: 'error', message: response.message })
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论