Files
income_payments_applet/behavior/confirmInvoiceModal.js
T

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()
},
}
})