129 lines
4.0 KiB
JavaScript
129 lines
4.0 KiB
JavaScript
// 发票信息模态框等相关操作的集合
|
|
// 需要发票的类型
|
|
export const InvoiceTypeEnums = {
|
|
noNeed: { name: '不需要', index: 0 },
|
|
plain: { name: '增值税普通发票', index: 1 },
|
|
special: { name: '增值税专用发票', index: 2 }
|
|
}
|
|
const commonArr = [
|
|
{name: '企业名称', key: 'companyName'},
|
|
{name: '信用代码', key: 'dutyCode'}
|
|
]
|
|
const specialArr = [
|
|
{name: '公司地址', key: 'companyAddress'},
|
|
{name: '公司电话', key: 'companyPhone'},
|
|
{name: '开户行', key: 'openingBank'},
|
|
{name: '银行账号', key: 'bankAccount'},
|
|
{name: '联行号', key: 'linkBankNumber'}
|
|
]
|
|
import signUpApi from '../assets/js/http/signUp'
|
|
|
|
module.exports = Behavior({
|
|
data: {
|
|
// page-container 相关的配置
|
|
statusBarHeight: wx.getSystemInfoSync()['statusBarHeight'],
|
|
pageTitle: '会议报名',
|
|
invoiceConfirmModalVisible: false,
|
|
duration: 300,
|
|
position: 'bottom',
|
|
round: false,
|
|
overlay: true,
|
|
customStyle: 'height: 60%;',
|
|
overlayStyle: '',
|
|
// 验证的相关信息
|
|
confirmArr: [],
|
|
confirmObj: {}
|
|
|
|
},
|
|
methods: {
|
|
showConfirmModal(obj, callback) {
|
|
console.log("----showConfirmModal-----")
|
|
this.data.confirmObj = {...obj}
|
|
let needInvoice = Number(obj.needInvoice)
|
|
let confirmArr = [...commonArr]
|
|
if (needInvoice === InvoiceTypeEnums.special.index) {
|
|
confirmArr = confirmArr.concat(specialArr)
|
|
}
|
|
// 将回调函数存储
|
|
this.confirmModalCallback = callback
|
|
this.setData({
|
|
invoiceConfirmModalVisible: true,
|
|
confirmObj: this.data.confirmObj,
|
|
confirmArr
|
|
})
|
|
},
|
|
/**
|
|
* 判断发票信息是否发生改变
|
|
* @param confirmObj ---form表单中的数据
|
|
* @param selectedCompany ---单位的初始化信息
|
|
* @returns {boolean} --返回是否发生改变
|
|
*/
|
|
judgeInvoiceChange(confirmObj, selectedCompany) {
|
|
// 如果需要发票,判断当前的发票信息是否进行了修改,用于最后提交的时候判断是否请求接口,减少冗余的请求
|
|
let needInvoice = Number(confirmObj.needInvoice)
|
|
if(!needInvoice) {
|
|
return false
|
|
}
|
|
if (needInvoice) {
|
|
let changeInvoiceFlag = this.data.confirmArr.some(tt => {
|
|
if(selectedCompany[tt.key] !== confirmObj[tt.key]) {
|
|
return true
|
|
}
|
|
})
|
|
return changeInvoiceFlag
|
|
}
|
|
},
|
|
confirmModalCancel() {
|
|
this.setData({
|
|
invoiceConfirmModalVisible: false
|
|
})
|
|
},
|
|
confirmModalSureFunc() {
|
|
const formData = this.data.confirmObj
|
|
// 首先先判断发票信息有没有变化
|
|
let changeInvoiceFlag = this.judgeInvoiceChange(formData, this.data.selectedCompany)
|
|
if(!changeInvoiceFlag) {
|
|
this.setData({
|
|
invoiceConfirmModalVisible: false
|
|
})
|
|
this.confirmModalCallback && this.confirmModalCallback()
|
|
return
|
|
}
|
|
|
|
// 变化的时候请求接口
|
|
// 请求接口同步数据
|
|
const params = {
|
|
id: formData.companyId, // 企业id
|
|
needInvoice: formData.needInvoice,
|
|
companyName: formData.companyName,
|
|
dutyCode: formData.dutyCode
|
|
}
|
|
if (Number(formData.needInvoice) === InvoiceTypeEnums.special.index) {
|
|
params.companyAddress = formData.companyAddress
|
|
params.companyPhone = formData.companyPhone
|
|
params.openingBank = formData.openingBank
|
|
params.bankAccount = formData.bankAccount
|
|
params.linkBankNumber = formData.linkBankNumber
|
|
}
|
|
signUpApi.updateInvoiceBySignUp(params).then(res => {
|
|
if (res.success) {
|
|
this.setData({
|
|
invoiceConfirmModalVisible: false
|
|
})
|
|
this.confirmModalCallback && this.confirmModalCallback()
|
|
} else {
|
|
wx.showToast({
|
|
title: res.message,
|
|
icon: "none",
|
|
duration: 800,
|
|
});
|
|
}
|
|
})
|
|
},
|
|
// 自定义头部的参数
|
|
goBack(){
|
|
wx.navigateBack()
|
|
},
|
|
}
|
|
})
|