Skip to content

Invoice 发票

介绍

展示申请发票页面。

基础用法

vue
<script lang="ts" setup>
import { ref, reactive } from 'vue'

// Promise 异步校验
const asyncValidator = (val: string) => {
  return new Promise((resolve) => {
    console.log('模拟异步验证中...')
    setTimeout(() => {
      console.log('验证完成')
      resolve(/^400(-?)[0-9]{7}$|^1\d{10}$|^0[0-9]{2,3}-[0-9]{7,8}$/.test(val))
    }, 1000)
  })
}

const data = ref([
  {
    type: 'radio',
    label: '发票类型',
    radioLabel: [
      { label: '企业' },
      { label: '个人或事业单位' }
    ],
    formItemProp: 'type',
    required: true
  },
  {
    label: '发票抬头',
    placeholder: '请输入发票抬头',
    formItemProp: 'name',
    rules: [{ required: true, message: '请输入发票抬头' }],
    required: true
  },
  // ... 其他表单项
])

const formValue = reactive({
  type: '企业',
  name: '',
  num: '',
  adress: '',
  tel: '',
  address: '',
  bank: '',
  account: ''
})

const submit = (valid: boolean, errors: []) => {
  if (valid) {
    console.log('success', formValue)
  } else {
    console.log('error submit!!', errors)
  }
}
</script>

<template>
  <nut-invoice
    :data="data"
    :formValue="formValue"
    @onSubmit="submit"
  >
  </nut-invoice>
</template>

API

Props

参数说明类型可选值默认值
data发票数据Array-[]
form-value表单数据对象(使用表单校验时,必填)object-{}
submit是否显示提交按钮boolean-true

Data 数据结构

可选属性如下:

键名说明类型
type类型,可选值有 inputradiostring
label表单项 labelstring
placeholder输入框 placeholderstring
radio-label单选 labelstring
form-item-prop表单域 v-model 字段, 在使用表单校验功能的情况下,该属性是必填的string
rules校验规则,可参考 FormItem Rule 数据结构Array
required是否显示必填字段的标签旁边的红色星号boolean

Events

事件名说明类型
on-submit提交表单的方法`(valid: boolean
scroll-bottom滚动到底部时触发() => void

主题定制

样式变量

组件提供了下列 CSS 变量,可用于自定义样式,使用方法请参考 ConfigProvider 组件

名称默认值
--nut-invoice-padding10px 10px 20px

MIT Licensed