<template> <a-form @submit="handleSubmit" :form="form" class="form"> <a-row class="form-row" :gutter="16"> <a-col :lg="6" :md="12" :sm="24"> <a-form-item label="仓库名"> <a-input placeholder="请输入仓库名称" v-decorator="[ 'repository.name', {rules: [{ required: true, message: '请输入仓库名称', whitespace: true}]} ]" /> </a-form-item> </a-col> <a-col :xl="{span: 7, offset: 1}" :lg="{span: 8}" :md="{span: 12}" :sm="24"> <a-form-item label="仓库域名"> <a-input addonBefore="http://" addonAfter=".com" placeholder="请输入" v-decorator="[ 'repository.domain', {rules: [{ required: true, message: '请输入仓库域名', whitespace: true}, {validator: validate}]} ]" /> </a-form-item> </a-col> <a-col :xl="{span: 9, offset: 1}" :lg="{span: 10}" :md="{span: 24}" :sm="24"> <a-form-item label="仓库管理员"> <a-select placeholder="请选择管理员" v-decorator="[ 'repository.manager', {rules: [{ required: true, message: '请选择管理员'}]} ]"> <a-select-option value="王同学">王同学</a-select-option> <a-select-option value="李同学">李同学</a-select-option> <a-select-option value="黄同学">黄同学</a-select-option> </a-select> </a-form-item> </a-col> </a-row> <a-row class="form-row" :gutter="16"> <a-col :lg="6" :md="12" :sm="24"> <a-form-item label="审批人"> <a-select placeholder="请选择审批员" v-decorator="[ 'repository.auditor', {rules: [{ required: true, message: '请选择审批员'}]} ]"> <a-select-option value="王晓丽">王晓丽</a-select-option> <a-select-option value="李军">李军</a-select-option> </a-select> </a-form-item> </a-col> <a-col :xl="{span: 7, offset: 1}" :lg="{span: 8}" :md="{span: 12}" :sm="24"> <a-form-item label="生效日期"> <a-range-picker style="width: 100%" v-decorator="[ 'repository.effectiveDate', {rules: [{ required: true, message: '请选择生效日期'}]} ]" /> </a-form-item> </a-col> <a-col :xl="{span: 9, offset: 1}" :lg="{span: 10}" :md="{span: 24}" :sm="24"> <a-form-item label="仓库类型"> <a-select placeholder="请选择仓库类型" v-decorator="[ 'repository.type', {rules: [{ required: true, message: '请选择仓库类型'}]} ]" > <a-select-option value="公开">公开</a-select-option> <a-select-option value="私密">私密</a-select-option> </a-select> </a-form-item> </a-col> </a-row> <a-form-item v-if="showSubmit"> <a-button htmlType="submit" >Submit</a-button> </a-form-item> </a-form> </template> <script> export default { name: "RepositoryForm", props: { showSubmit: { type: Boolean, default: false } }, data () { return { form: this.$form.createForm(this) } }, methods: { handleSubmit (e) { e.preventDefault() this.form.validateFields((err, values) => { if (!err) { this.$notification['error']({ message: 'Received values of form:', description: values }) } }) }, validate (rule, value, callback) { const regex = /^user-(.*)$/ if (!regex.test(value)) { callback('需要以 user- 开头') } callback() } } } </script> <style scoped> </style>