提交 f369ccc8 authored 作者: pengxiaohui's avatar pengxiaohui

update: 增加手机号邮箱验证,优化样式

上级 f28f19d2
...@@ -34,7 +34,7 @@ ...@@ -34,7 +34,7 @@
<el-form-item label="地址" prop="taxpayer_address" :rules="{required: true, message: '请输入地址', trigger: 'blur'}"> <el-form-item label="地址" prop="taxpayer_address" :rules="{required: true, message: '请输入地址', trigger: 'blur'}">
<el-input v-model="form.taxpayer_address" size="small" placeholder="请输入地址"/> <el-input v-model="form.taxpayer_address" size="small" placeholder="请输入地址"/>
</el-form-item> </el-form-item>
<el-form-item label="电话" prop="taxpayer_mobile" :rules="{required: true, message: '请输入电话', trigger: 'blur'}"> <el-form-item label="电话" prop="taxpayer_mobile">
<el-input v-model="form.taxpayer_mobile" size="small" placeholder="请输入电话"/> <el-input v-model="form.taxpayer_mobile" size="small" placeholder="请输入电话"/>
</el-form-item> </el-form-item>
<el-form-item label="开户行" prop="taxpayer_bank_name" :rules="{required: true, message: '请输入开户行', trigger: 'blur'}"> <el-form-item label="开户行" prop="taxpayer_bank_name" :rules="{required: true, message: '请输入开户行', trigger: 'blur'}">
...@@ -98,6 +98,26 @@ export default { ...@@ -98,6 +98,26 @@ export default {
} }
}, },
data() { data() {
const phoneReg = /^1(3[0-9]|4[01456879]|5[0-35-9]|6[2567]|7[0-8]|8[0-9]|9[0-35-9])\d{8}$/
const checkMobile = (rule, value, callback) => {
if (value) {
if (!phoneReg.test(value)) {
callback(new Error('手机号格式错误'));
} else {
callback()
}
}
}
const emailReg = /^[A-Za-z0-9]+([_.\\-][A-Za-z0-9]+)*@([A-Za-z0-9-]+\.)+[A-Za-z]{2,6}$/
const checkEmail = (rule, value, callback) => {
if (value) {
if (!emailReg.test(value)) {
callback(new Error('邮箱格式错误'));
} else {
callback()
}
}
}
return { return {
form: Object.assign({ taxpayer_type: '2' }, defaultForm), form: Object.assign({ taxpayer_type: '2' }, defaultForm),
rules: { rules: {
...@@ -106,10 +126,11 @@ export default { ...@@ -106,10 +126,11 @@ export default {
invoice_type: { required: true, message: '请选择发票类型', trigger: 'change' }, invoice_type: { required: true, message: '请选择发票类型', trigger: 'change' },
taxpayer_name: { required: true, message: '请输入纳税人名称', trigger: 'blur' }, taxpayer_name: { required: true, message: '请输入纳税人名称', trigger: 'blur' },
taxpayer_identifier: { required: true, message: '请输入纳税人识别号', trigger: 'blur' }, taxpayer_identifier: { required: true, message: '请输入纳税人识别号', trigger: 'blur' },
recipient_email: { required: true, message: '请输入邮箱地址', trigger: 'blur' }, taxpayer_mobile: [{ required: true, message: '请输入电话', trigger: 'blur' }, { validator: checkMobile, trigger: 'blur' }],
recipient_email: [{ required: true, message: '请输入邮箱地址', trigger: 'blur' }, { validator: checkEmail, trigger: 'blur' }],
recipient_name: { required: true, message: '请输入收件人名称', trigger: 'blur' }, recipient_name: { required: true, message: '请输入收件人名称', trigger: 'blur' },
recipient_address: { required: true, message: '请输入邮寄地址', trigger: 'blur' }, recipient_address: { required: true, message: '请输入邮寄地址', trigger: 'blur' },
recipient_mobile: { required: true, message: '请输入收件人手机号', trigger: 'blur' } recipient_mobile: [{ required: true, message: '请输入收件人手机号', trigger: 'blur' }, { validator: checkMobile, trigger: 'blur' }]
} }
} }
}, },
......
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
<van-field v-model="form.taxpayer_identifier" name="pattern" label="纳税人识别号" placeholder="请输入纳税人识别号" :rules="[{ required: true, message: '请输入纳税人识别号' }]" required/> <van-field v-model="form.taxpayer_identifier" name="pattern" label="纳税人识别号" placeholder="请输入纳税人识别号" :rules="[{ required: true, message: '请输入纳税人识别号' }]" required/>
<template v-if="form.invoice_type === '3'"> <template v-if="form.invoice_type === '3'">
<van-field v-model="form.taxpayer_address" name="pattern" label="地址" placeholder="请输入地址" :rules="[{ required: true, message: '请输入地址' }]" required/> <van-field v-model="form.taxpayer_address" name="pattern" label="地址" placeholder="请输入地址" :rules="[{ required: true, message: '请输入地址' }]" required/>
<van-field v-model="form.taxpayer_mobile" type="tel" name="pattern" label="电话" placeholder="请输入电话" :rules="[{ required: true, message: '请输入电话' }]" required/> <van-field v-model="form.taxpayer_mobile" type="tel" name="pattern" label="电话" placeholder="请输入电话" :rules="[{ required: true, message: '请输入电话' }, { validator: phoneValidator, message: '输入格式有误' }]" required/>
<van-field v-model="form.taxpayer_bank_name" name="pattern" label="开户行" placeholder="请输入开户行" :rules="[{ required: true, message: '请输入开户行' }]" required/> <van-field v-model="form.taxpayer_bank_name" name="pattern" label="开户行" placeholder="请输入开户行" :rules="[{ required: true, message: '请输入开户行' }]" required/>
<van-field v-model="form.taxpayer_bank_account" name="pattern" label="银行账号" placeholder="请输入银行账号" :rules="[{ required: true, message: '请输入银行账号' }]" required/> <van-field v-model="form.taxpayer_bank_account" name="pattern" label="银行账号" placeholder="请输入银行账号" :rules="[{ required: true, message: '请输入银行账号' }]" required/>
</template> </template>
...@@ -21,11 +21,11 @@ ...@@ -21,11 +21,11 @@
</div> </div>
<div class="form-group"> <div class="form-group">
<h5>收票信息</h5> <h5>收票信息</h5>
<van-field v-if="form.invoice_type === '2'" v-model="form.recipient_email" name="pattern" label="邮箱地址" placeholder="请输入邮箱地址" :rules="[{ required: true, message: '请输入邮箱地址' }]" required/> <van-field v-if="form.invoice_type === '2'" v-model="form.recipient_email" name="pattern" label="邮箱地址" placeholder="请输入邮箱地址" :rules="[{ required: true, message: '请输入邮箱地址' }, { validator: emailValidator, message: '输入格式有误' }]" required/>
<template v-else> <template v-else>
<van-field v-model="form.recipient_address" name="pattern" label="邮寄地址" placeholder="请输入邮寄地址" :rules="[{ required: true, message: '请输入邮寄地址' }]" required/> <van-field v-model="form.recipient_address" name="pattern" label="邮寄地址" placeholder="请输入邮寄地址" :rules="[{ required: true, message: '请输入邮寄地址' }]" required/>
<van-field v-model="form.recipient_name" name="pattern" label="收件人名称" placeholder="请输入收件人名称" :rules="[{ required: true, message: '请输入收件人名称' }]" required/> <van-field v-model="form.recipient_name" name="pattern" label="收件人名称" placeholder="请输入收件人名称" :rules="[{ required: true, message: '请输入收件人名称' }]" required/>
<van-field v-model="form.recipient_mobile" type="tel" name="pattern" label="收件人手机号" placeholder="请输入收件人手机号" :rules="[{ required: true, message: '请输入收件人手机号' }]" required/> <van-field v-model="form.recipient_mobile" type="tel" name="pattern" label="收件人手机号" placeholder="请输入收件人手机号" :rules="[{ required: true, message: '请输入收件人手机号' }, { validator: phoneValidator, message: '输入格式有误' }]" required/>
<van-field v-model="form.follower" name="pattern" label="票据跟进人" placeholder="请输入票据跟进人" :rules="[{ required: true, message: '请输入票据跟进人' }]" required/> <van-field v-model="form.follower" name="pattern" label="票据跟进人" placeholder="请输入票据跟进人" :rules="[{ required: true, message: '请输入票据跟进人' }]" required/>
</template> </template>
</div> </div>
...@@ -96,6 +96,14 @@ export default { ...@@ -96,6 +96,14 @@ export default {
} }
}, },
methods: { methods: {
phoneValidator(val) {
if (val === '') return true
return /^1(3[0-9]|4[01456879]|5[0-35-9]|6[2567]|7[0-8]|8[0-9]|9[0-35-9])\d{8}$/.test(val)
},
emailValidator(val) {
if (val === '') return true
return /^[A-Za-z0-9]+([_.-][A-Za-z0-9]+)*@[A-Za-z0-9-.]+$/.test(val)
},
handleTabChange(val) { handleTabChange(val) {
this.form = Object.assign({ taxpayer_type: val }, defaultForm) this.form = Object.assign({ taxpayer_type: val }, defaultForm)
this.setInvoiceType() this.setInvoiceType()
......
<template> <template>
<div> <div class="pay-details">
<van-cell-group> <van-cell-group>
<van-cell title="项目" :value="details.project_name" /> <van-cell title="项目" :value="details.project_name" />
<van-cell title="应缴金额" :value="`¥${details.bill_total}`" /> <van-cell title="应缴金额" :value="`¥${details.bill_total}`" />
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
<van-cell title="备注" :value="details.invoice_remark" /> <van-cell title="备注" :value="details.invoice_remark" />
</van-cell-group> </van-cell-group>
<div class="btn-bar" v-if="['2', '6'].includes(details.invoice_status)"> <div class="btn-bar" v-if="['2', '6'].includes(details.invoice_status)">
<van-button type="info" size="small" block @click="handleInvoice">开具发票</van-button> <van-button type="info" size="small" round block @click="handleInvoice">开具发票</van-button>
</div> </div>
</div> </div>
</template> </template>
...@@ -47,6 +47,6 @@ export default { ...@@ -47,6 +47,6 @@ export default {
<style scoped> <style scoped>
.btn-bar{ .btn-bar{
text-align:center; text-align:center;
padding:20px 30px; padding:20px;
} }
</style> </style>
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
</template> </template>
<!-- 操作 --> <!-- 操作 -->
<template v-slot:table-operate="{ row }"> <template v-slot:table-operate="{ row }">
<el-button v-if="['1', '2', '6'].includes(row.invoice_status)" type="text" @click="handleInvoice(row)" size="mini">开具发票</el-button> <el-button v-if="['2', '6'].includes(row.invoice_status)" type="text" @click="handleInvoice(row)" size="mini">开具发票</el-button>
<el-button type="text" @click="handleInvoiceQR(row)" size="mini">开票二维码</el-button> <el-button type="text" @click="handleInvoiceQR(row)" size="mini">开票二维码</el-button>
</template> </template>
</app-list> </app-list>
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论