|
@@ -111,13 +111,13 @@
|
|
<el-form-item style="min-height: 36px;height: auto;" label="单位地址:" :rules="[{ required: ruleForm.invoice_variety == '电子专用发票', message: '请输入单位地址', trigger: 'blur' }]" prop="company_address">
|
|
<el-form-item style="min-height: 36px;height: auto;" label="单位地址:" :rules="[{ required: ruleForm.invoice_variety == '电子专用发票', message: '请输入单位地址', trigger: 'blur' }]" prop="company_address">
|
|
<el-input ref="company_address" :style="{height: addressHeight + 'px'}" type="textarea" :rows="1" placeholder="请输入单位地址" v-model="ruleForm.company_address"></el-input>
|
|
<el-input ref="company_address" :style="{height: addressHeight + 'px'}" type="textarea" :rows="1" placeholder="请输入单位地址" v-model="ruleForm.company_address"></el-input>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
- <el-form-item label="电话号码:">
|
|
|
|
- <el-input maxlength="11" placeholder="请输入电话号码" v-model="ruleForm.company_phone"></el-input>
|
|
|
|
|
|
+ <el-form-item label="电话号码:" prop="company_phone" :rules="[{ required: ruleForm.invoice_variety == '电子专用发票', message: '请输入电话号码', trigger: 'blur' }, { validator: ruleForm.invoice_variety == '电子专用发票' ? validateTelPhone : '', trigger: 'blur' }]">
|
|
|
|
+ <el-input placeholder="请输入电话号码" v-model="ruleForm.company_phone"></el-input>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
- <el-form-item label="开户银行:">
|
|
|
|
|
|
+ <el-form-item label="开户银行:" prop="bank_name" :rules="[{ required: ruleForm.invoice_variety == '电子专用发票', message: '请输入开户银行', trigger: 'blur' }]">
|
|
<el-input placeholder="请输入开户银行" v-model="ruleForm.bank_name"></el-input>
|
|
<el-input placeholder="请输入开户银行" v-model="ruleForm.bank_name"></el-input>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
- <el-form-item label="银行账号:">
|
|
|
|
|
|
+ <el-form-item label="银行账号:" prop="bank_account" :rules="[{ required: ruleForm.invoice_variety == '电子专用发票', message: '请输入银行账号', trigger: 'blur' }, { validator: ruleForm.invoice_variety == '电子专用发票' ? validateBankAccount : '', trigger: 'blur' }]">
|
|
<el-input placeholder="请输入银行账号" v-model="ruleForm.bank_account"></el-input>
|
|
<el-input placeholder="请输入银行账号" v-model="ruleForm.bank_account"></el-input>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
<el-form-item style="min-height: 36px;height: auto;" class="invoice_desc" label="开票备注:">
|
|
<el-form-item style="min-height: 36px;height: auto;" class="invoice_desc" label="开票备注:">
|
|
@@ -125,7 +125,7 @@
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</div>
|
|
</div>
|
|
<el-form-item label="联系电话:" prop="phone">
|
|
<el-form-item label="联系电话:" prop="phone">
|
|
- <el-input maxlength="11" placeholder="请输入手机号" v-model="ruleForm.phone"></el-input>
|
|
|
|
|
|
+ <el-input placeholder="请输入手机号" v-model="ruleForm.phone"></el-input>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
<el-form-item label="电子邮箱:" prop="mail">
|
|
<el-form-item label="电子邮箱:" prop="mail">
|
|
<el-input placeholder="邮箱用于接收电子发票" v-model="ruleForm.mail"></el-input>
|
|
<el-input placeholder="邮箱用于接收电子发票" v-model="ruleForm.mail"></el-input>
|
|
@@ -264,6 +264,17 @@
|
|
company_address: [
|
|
company_address: [
|
|
{ required: true, message: '请输入单位地址', trigger: 'blur' },
|
|
{ required: true, message: '请输入单位地址', trigger: 'blur' },
|
|
{ validator: this.validateAddress, trigger: 'blur' }
|
|
{ validator: this.validateAddress, trigger: 'blur' }
|
|
|
|
+ ],
|
|
|
|
+ company_phone: [
|
|
|
|
+ { required: true, message: '请输入电话号码', trigger: 'blur' },
|
|
|
|
+ { validator: this.validateTelPhone, trigger: 'blur' }
|
|
|
|
+ ],
|
|
|
|
+ bank_name: [
|
|
|
|
+ { required: true, message: '请输入开户行', trigger: 'blur' }
|
|
|
|
+ ],
|
|
|
|
+ bank_account: [
|
|
|
|
+ { required: true, message: '请输入银行账号', trigger: 'blur' },
|
|
|
|
+ { validator: this.validateBankAccount, trigger: 'blur' }
|
|
]
|
|
]
|
|
},
|
|
},
|
|
companyList: [],
|
|
companyList: [],
|
|
@@ -274,8 +285,6 @@
|
|
},
|
|
},
|
|
addressHeight: 36,
|
|
addressHeight: 36,
|
|
remarkHeight: 36,
|
|
remarkHeight: 36,
|
|
- isFormValid: [], // 表单校验结果
|
|
|
|
- isValid: false, // 表单是否通过校验
|
|
|
|
loading: false
|
|
loading: false
|
|
}
|
|
}
|
|
},
|
|
},
|
|
@@ -293,14 +302,15 @@
|
|
watch: {
|
|
watch: {
|
|
'ruleForm.invoice_variety': {
|
|
'ruleForm.invoice_variety': {
|
|
handler (val) {
|
|
handler (val) {
|
|
|
|
+ // 清空校验
|
|
if (val === '电子专用发票') {
|
|
if (val === '电子专用发票') {
|
|
this.ruleForm.invoice_type = '单位'
|
|
this.ruleForm.invoice_type = '单位'
|
|
- this.isFormValid = [false, false, false, false, false]
|
|
|
|
- } else {
|
|
|
|
- this.isFormValid = [false, false, false, false]
|
|
|
|
|
|
+ }
|
|
|
|
+ if(val) {
|
|
|
|
+ this.$refs['ruleForm'].clearValidate();
|
|
}
|
|
}
|
|
},
|
|
},
|
|
- immediate: true
|
|
|
|
|
|
+ // immediate: true
|
|
},
|
|
},
|
|
'ruleForm.company_address': {
|
|
'ruleForm.company_address': {
|
|
handler() {
|
|
handler() {
|
|
@@ -319,13 +329,6 @@
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
},
|
|
- computed: {
|
|
|
|
- getValidateResult() {
|
|
|
|
- console.info(this.isFormValid, 'isFormValid')
|
|
|
|
- let hasFalse = this.isFormValid.includes(false);
|
|
|
|
- return hasFalse
|
|
|
|
- }
|
|
|
|
- },
|
|
|
|
methods: {
|
|
methods: {
|
|
// 查询是否可以开发票
|
|
// 查询是否可以开发票
|
|
setPageOver () {
|
|
setPageOver () {
|
|
@@ -389,83 +392,74 @@
|
|
validateCode: (rule, value, callback) => {
|
|
validateCode: (rule, value, callback) => {
|
|
const regCode = /(^[A-Za-z0-9]{15}$)|(^[A-Za-z0-9]{17,18}$)|(^[A-Za-z0-9]{20}$)/;
|
|
const regCode = /(^[A-Za-z0-9]{15}$)|(^[A-Za-z0-9]{17,18}$)|(^[A-Za-z0-9]{20}$)/;
|
|
if (!value) {
|
|
if (!value) {
|
|
- invoiceNode.setFormValidate(invoiceNode.isFormValid)
|
|
|
|
return callback(new Error('请输入纳税人识别号'))
|
|
return callback(new Error('请输入纳税人识别号'))
|
|
} else {
|
|
} else {
|
|
if (regCode.test(value)) {
|
|
if (regCode.test(value)) {
|
|
- invoiceNode.isFormValid.push(true)
|
|
|
|
return callback()
|
|
return callback()
|
|
} else {
|
|
} else {
|
|
- invoiceNode.setFormValidate(invoiceNode.isFormValid)
|
|
|
|
return callback(new Error('请输入正确的纳税人识别号'))
|
|
return callback(new Error('请输入正确的纳税人识别号'))
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
},
|
|
validatePhone: (rule, value, callback) => {
|
|
validatePhone: (rule, value, callback) => {
|
|
- const regPhone = /^1[3-9]\d{9}$/;
|
|
|
|
|
|
+ const regPhone = /^1[3-9]\d{9}$/; // 手机号正则
|
|
|
|
+ const regTel = /^0\d{2,3}-?\d{7,8}$/ // 座机号码正则
|
|
if(!value) {
|
|
if(!value) {
|
|
- invoiceNode.setFormValidate(invoiceNode.isFormValid)
|
|
|
|
return callback(new Error('请输入手机号'));
|
|
return callback(new Error('请输入手机号'));
|
|
} else {
|
|
} else {
|
|
- if (regPhone.test(value)) {
|
|
|
|
- invoiceNode.isFormValid.push(true)
|
|
|
|
|
|
+ if (regPhone.test(value) || regTel.test(value)) {
|
|
return callback()
|
|
return callback()
|
|
} else {
|
|
} else {
|
|
- invoiceNode.setFormValidate(invoiceNode.isFormValid)
|
|
|
|
- return callback(new Error('请输入正确的手机号'))
|
|
|
|
|
|
+ return callback(new Error('联系电话格式不正确'))
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
},
|
|
|
|
+ validateTelPhone: (rule, value, callback) => {
|
|
|
|
+ const regPhone = /^1[3-9]\d{9}$/; // 手机号正则
|
|
|
|
+ const regTel = /^0\d{2,3}-?\d{7,8}$/ // 座机号码正则
|
|
|
|
+ if (regPhone.test(value) || regTel.test(value)) {
|
|
|
|
+ return callback()
|
|
|
|
+ } else {
|
|
|
|
+ return callback(new Error('电话号码格式不正确'))
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ validateBankAccount: (rule, value, callback) => {
|
|
|
|
+ const regAccount = /^\d+$/;
|
|
|
|
+ if (regAccount.test(value)) {
|
|
|
|
+ return callback()
|
|
|
|
+ } else {
|
|
|
|
+ return callback(new Error('请输入正确的银行账号'))
|
|
|
|
+ }
|
|
|
|
+ },
|
|
validateMail: (rule, value, callback) => {
|
|
validateMail: (rule, value, callback) => {
|
|
- console.info(rule, value,'isFormValid')
|
|
|
|
const regEmail = /^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,})$/
|
|
const regEmail = /^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,})$/
|
|
if(!value) {
|
|
if(!value) {
|
|
- invoiceNode.setFormValidate(invoiceNode.isFormValid)
|
|
|
|
return callback(new Error('请输入邮箱'))
|
|
return callback(new Error('请输入邮箱'))
|
|
} else {
|
|
} else {
|
|
if (regEmail.test(value.trim())) {
|
|
if (regEmail.test(value.trim())) {
|
|
- invoiceNode.isFormValid.push(true)
|
|
|
|
return callback()
|
|
return callback()
|
|
} else {
|
|
} else {
|
|
- invoiceNode.setFormValidate(invoiceNode.isFormValid)
|
|
|
|
- return callback(new Error('请输入正确的邮箱'))
|
|
|
|
|
|
+ return callback(new Error('邮箱格式不正确'))
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
},
|
|
validateCompany: (rule, value, callback) => {
|
|
validateCompany: (rule, value, callback) => {
|
|
const regCompany=/^[\u4e00-\u9fa5_a-zA-Z0-9_\(_\)_\uff08_\uff09\)]{2,50}$/;
|
|
const regCompany=/^[\u4e00-\u9fa5_a-zA-Z0-9_\(_\)_\uff08_\uff09\)]{2,50}$/;
|
|
if(!value) {
|
|
if(!value) {
|
|
- invoiceNode.setFormValidate(invoiceNode.isFormValid)
|
|
|
|
return callback(new Error('请输入公司名称'))
|
|
return callback(new Error('请输入公司名称'))
|
|
} else {
|
|
} else {
|
|
if (regCompany.test(value)) {
|
|
if (regCompany.test(value)) {
|
|
- invoiceNode.isFormValid.push(true)
|
|
|
|
return callback()
|
|
return callback()
|
|
} else {
|
|
} else {
|
|
- invoiceNode.setFormValidate(invoiceNode.isFormValid)
|
|
|
|
return callback(new Error('请输入正确的公司名称'))
|
|
return callback(new Error('请输入正确的公司名称'))
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
},
|
|
validateAddress: (rule, value, callback) => {
|
|
validateAddress: (rule, value, callback) => {
|
|
if (value.trim().length > 0) {
|
|
if (value.trim().length > 0) {
|
|
- invoiceNode.isFormValid.push(true)
|
|
|
|
return callback()
|
|
return callback()
|
|
- } else {
|
|
|
|
- invoiceNode.setFormValidate(invoiceNode.isFormValid)
|
|
|
|
}
|
|
}
|
|
},
|
|
},
|
|
- setFormValidate (array) {
|
|
|
|
- let data = Array.from(array)
|
|
|
|
- console.info(data.length, 'array')
|
|
|
|
- data.forEach((e, i) => {
|
|
|
|
- if(e) {
|
|
|
|
- data.splice(i, 1)
|
|
|
|
- data.push(false)
|
|
|
|
- }
|
|
|
|
- });
|
|
|
|
- this.isFormValid = data
|
|
|
|
- },
|
|
|
|
setHighLight(item) {
|
|
setHighLight(item) {
|
|
const keyword = utils.replaceKeyword(item.name, this.ruleForm.company_name, '<span class="highlight-text">' + this.ruleForm.company_name + '</span>')
|
|
const keyword = utils.replaceKeyword(item.name, this.ruleForm.company_name, '<span class="highlight-text">' + this.ruleForm.company_name + '</span>')
|
|
return keyword
|
|
return keyword
|