feat: form
							parent
							
								
									fb22422d8e
								
							
						
					
					
						commit
						787d51f375
					
				| 
						 | 
				
			
			@ -0,0 +1,98 @@
 | 
			
		|||
<script>
 | 
			
		||||
 | 
			
		||||
import AdvancedSearch from './advanced-search'
 | 
			
		||||
// import Coordinated from './coordinated'
 | 
			
		||||
// import CustomizedFormControls from './customized-form-controls'
 | 
			
		||||
// import DynamicFormItem from './dynamic-form-item'
 | 
			
		||||
// import DynamicRule from './dynamic-rule'
 | 
			
		||||
// import FormInModal from './form-in-modal'
 | 
			
		||||
// import GlobalState from './global-state'
 | 
			
		||||
// import HorizontalLogin from './horizontal-login'
 | 
			
		||||
// import Layout from './layout'
 | 
			
		||||
// import NormalLogin from './normal-login'
 | 
			
		||||
// import Register from './register'
 | 
			
		||||
// import TimeRelatedControls from './time-related-controls'
 | 
			
		||||
// import ValidateOther from './validate-other'
 | 
			
		||||
// import ValidateStatic from './validate-static'
 | 
			
		||||
// import WithoutFormCreate from './without-form-create'
 | 
			
		||||
 | 
			
		||||
import CN from './../index.zh-CN'
 | 
			
		||||
import US from './../index.en-US'
 | 
			
		||||
 | 
			
		||||
const md = {
 | 
			
		||||
  cn: `# Form 表单
 | 
			
		||||
           具有数据收集、校验和提交功能的表单,包含复选框、单选框、输入框、下拉选择框等元素。
 | 
			
		||||
 | 
			
		||||
## 表单
 | 
			
		||||
 | 
			
		||||
我们为 \`form\` 提供了以下三种排列方式:
 | 
			
		||||
 | 
			
		||||
- 水平排列:标签和表单控件水平排列;(默认)
 | 
			
		||||
- 垂直排列:标签和表单控件上下垂直排列;
 | 
			
		||||
- 行内排列:表单项水平行内排列。
 | 
			
		||||
 | 
			
		||||
## 表单域
 | 
			
		||||
 | 
			
		||||
表单一定会包含表单域,表单域可以是输入控件,标准表单域,标签,下拉菜单,文本域等。
 | 
			
		||||
 | 
			
		||||
这里我们封装了表单域 \`<Form.Item />\` 。
 | 
			
		||||
 | 
			
		||||
**注意:** 如果使用 \`Form.create\` 处理表单使其具有自动收集数据并校验的功能,建议使用\`jsx\`
 | 
			
		||||
## 代码演示
 | 
			
		||||
        `,
 | 
			
		||||
  us: `# Form
 | 
			
		||||
           Form is used to collect, validate, and submit the user input, usually contains various form items including checkbox, radio, input, select, and etc.
 | 
			
		||||
 | 
			
		||||
## Form
 | 
			
		||||
 | 
			
		||||
You can align the controls of a \`form\` using the \`layout\` prop:
 | 
			
		||||
 | 
			
		||||
- \`horizontal\`:to horizontally align the \`label\`s and controls of the fields. (Default)
 | 
			
		||||
- \`vertical\`:to vertically align the \`label\`s and controls of the fields.
 | 
			
		||||
- \`inline\`:to render form fields in one line.
 | 
			
		||||
 | 
			
		||||
## Form fields
 | 
			
		||||
 | 
			
		||||
A form consists of one or more form fields whose type includes input, textarea, checkbox, radio, select, tag, and more.
 | 
			
		||||
A form field is defined using \`<Form.Item />\`.
 | 
			
		||||
 | 
			
		||||
**Note:** If you use \`Form.create\` to process forms with automatic data collection and validation, we recommend using \`jsx\`
 | 
			
		||||
## Examples
 | 
			
		||||
        `,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
  category: 'Components',
 | 
			
		||||
  subtitle: '表单',
 | 
			
		||||
  type: 'Data Entry',
 | 
			
		||||
  cols: 1,
 | 
			
		||||
  title: 'Form',
 | 
			
		||||
  render () {
 | 
			
		||||
    return (
 | 
			
		||||
      <div>
 | 
			
		||||
        <md cn={md.cn} us={md.us} />
 | 
			
		||||
        <AdvancedSearch />
 | 
			
		||||
        {/* <Coordinated />
 | 
			
		||||
        <CustomizedFormControls />
 | 
			
		||||
        <DynamicFormItem />
 | 
			
		||||
        <DynamicRule />
 | 
			
		||||
        <FormInModal />
 | 
			
		||||
        <GlobalState />
 | 
			
		||||
        <HorizontalLogin />
 | 
			
		||||
        <Layout />
 | 
			
		||||
        <NormalLogin />
 | 
			
		||||
        <Register />
 | 
			
		||||
        <TimeRelatedControls />
 | 
			
		||||
        <ValidateStatic />
 | 
			
		||||
        <WithoutFormCreate />
 | 
			
		||||
        <ValidateOther />
 | 
			
		||||
        */}
 | 
			
		||||
        <api>
 | 
			
		||||
          <CN slot='cn' />
 | 
			
		||||
          <US />
 | 
			
		||||
        </api>
 | 
			
		||||
      </div>
 | 
			
		||||
    )
 | 
			
		||||
  },
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,178 @@
 | 
			
		|||
<cn>
 | 
			
		||||
#### 自定义校验
 | 
			
		||||
我们提供了 `validateStatus` `help` `hasFeedback` 等属性,你可以不需要使用 `Form.create` 和 `getFieldDecorator`,自己定义校验的时机和内容。
 | 
			
		||||
1. `validateStatus`: 校验状态,可选 'success', 'warning', 'error', 'validating'。
 | 
			
		||||
2. `hasFeedback`:用于给输入框添加反馈图标。
 | 
			
		||||
3. `help`:设置校验文案。
 | 
			
		||||
</cn>
 | 
			
		||||
 | 
			
		||||
<us>
 | 
			
		||||
#### Customized Validation
 | 
			
		||||
We provide properties like `validateStatus` `help` `hasFeedback` to customize your own validate status and message, without using `Form.create` and `getFieldDecorator`.
 | 
			
		||||
1. `validateStatus`: validate status of form components which could be 'success', 'warning', 'error', 'validating'.
 | 
			
		||||
2. `hasFeedback`: display feed icon of input control
 | 
			
		||||
3. `help`: display validate message.
 | 
			
		||||
</us>
 | 
			
		||||
 | 
			
		||||
```html
 | 
			
		||||
<template>
 | 
			
		||||
  <a-form>
 | 
			
		||||
    <a-form-item
 | 
			
		||||
      :labelCol="labelCol"
 | 
			
		||||
      :wrapperCol="wrapperCol"
 | 
			
		||||
      label='Fail'
 | 
			
		||||
      validateStatus='error'
 | 
			
		||||
      help='Should be combination of numbers & alphabets'
 | 
			
		||||
    >
 | 
			
		||||
      <a-input placeholder='unavailable choice' id='error' />
 | 
			
		||||
    </a-form-item>
 | 
			
		||||
 | 
			
		||||
    <a-form-item
 | 
			
		||||
      :labelCol="labelCol"
 | 
			
		||||
      :wrapperCol="wrapperCol"
 | 
			
		||||
      label='Warning'
 | 
			
		||||
      validateStatus='warning'
 | 
			
		||||
    >
 | 
			
		||||
      <a-input placeholder='Warning' id='warning' />
 | 
			
		||||
    </a-form-item>
 | 
			
		||||
 | 
			
		||||
    <a-form-item
 | 
			
		||||
      :labelCol="labelCol"
 | 
			
		||||
      :wrapperCol="wrapperCol"
 | 
			
		||||
      label='Validating'
 | 
			
		||||
      hasFeedback
 | 
			
		||||
      validateStatus='validating'
 | 
			
		||||
      help='The information is being validated...'
 | 
			
		||||
    >
 | 
			
		||||
      <a-input placeholder="I'm the content is being validated" id='validating' />
 | 
			
		||||
    </a-form-item>
 | 
			
		||||
 | 
			
		||||
    <a-form-item
 | 
			
		||||
      :labelCol="labelCol"
 | 
			
		||||
      :wrapperCol="wrapperCol"
 | 
			
		||||
      label='Success'
 | 
			
		||||
      hasFeedback
 | 
			
		||||
      validateStatus='success'
 | 
			
		||||
    >
 | 
			
		||||
      <a-input placeholder="I'm the content" id='success' />
 | 
			
		||||
    </a-form-item>
 | 
			
		||||
 | 
			
		||||
    <a-form-item
 | 
			
		||||
      :labelCol="labelCol"
 | 
			
		||||
      :wrapperCol="wrapperCol"
 | 
			
		||||
      label='Warning'
 | 
			
		||||
      hasFeedback
 | 
			
		||||
      validateStatus='warning'
 | 
			
		||||
    >
 | 
			
		||||
      <a-input placeholder='Warning' id='warning' />
 | 
			
		||||
    </a-form-item>
 | 
			
		||||
 | 
			
		||||
    <a-form-item
 | 
			
		||||
      :labelCol="labelCol"
 | 
			
		||||
      :wrapperCol="wrapperCol"
 | 
			
		||||
      label='Fail'
 | 
			
		||||
      hasFeedback
 | 
			
		||||
      validateStatus='error'
 | 
			
		||||
      help='Should be combination of numbers & alphabets'
 | 
			
		||||
    >
 | 
			
		||||
      <a-input placeholder='unavailable choice' id='error' />
 | 
			
		||||
    </a-form-item>
 | 
			
		||||
 | 
			
		||||
    <a-form-item
 | 
			
		||||
      :labelCol="labelCol"
 | 
			
		||||
      :wrapperCol="wrapperCol"
 | 
			
		||||
      label='Success'
 | 
			
		||||
      hasFeedback
 | 
			
		||||
      validateStatus='success'
 | 
			
		||||
    >
 | 
			
		||||
      <a-date-picker style="width: 100%" />
 | 
			
		||||
    </a-form-item>
 | 
			
		||||
 | 
			
		||||
    <a-form-item
 | 
			
		||||
      :labelCol="labelCol"
 | 
			
		||||
      :wrapperCol="wrapperCol"
 | 
			
		||||
      label='Warning'
 | 
			
		||||
      hasFeedback
 | 
			
		||||
      validateStatus='warning'
 | 
			
		||||
    >
 | 
			
		||||
      <a-time-picker style="width: 100%" />
 | 
			
		||||
    </a-form-item>
 | 
			
		||||
 | 
			
		||||
    <a-form-item
 | 
			
		||||
      :labelCol="labelCol"
 | 
			
		||||
      :wrapperCol="wrapperCol"
 | 
			
		||||
      label='Error'
 | 
			
		||||
      hasFeedback
 | 
			
		||||
      validateStatus='error'
 | 
			
		||||
    >
 | 
			
		||||
      <a-select defaultValue='1'>
 | 
			
		||||
        <a-select-option value='1'>Option 1</a-select-option>
 | 
			
		||||
        <a-select-option value='2'>Option 2</a-select-option>
 | 
			
		||||
        <a-select-option value='3'>Option 3</a-select-option>
 | 
			
		||||
      </a-select>
 | 
			
		||||
    </a-form-item>
 | 
			
		||||
 | 
			
		||||
    <a-form-item
 | 
			
		||||
      :labelCol="labelCol"
 | 
			
		||||
      :wrapperCol="wrapperCol"
 | 
			
		||||
      label='Validating'
 | 
			
		||||
      hasFeedback
 | 
			
		||||
      validateStatus='validating'
 | 
			
		||||
      help='The information is being validated...'
 | 
			
		||||
    >
 | 
			
		||||
      <a-cascader :defaultValue="['1']" :options="[]" />
 | 
			
		||||
    </a-form-item>
 | 
			
		||||
 | 
			
		||||
    <a-form-item
 | 
			
		||||
      label='inline'
 | 
			
		||||
      :labelCol="labelCol"
 | 
			
		||||
      :wrapperCol="wrapperCol"
 | 
			
		||||
    >
 | 
			
		||||
      <a-col :span="11">
 | 
			
		||||
        <a-form-item validateStatus='error' help='Please select the correct date'>
 | 
			
		||||
          <a-date-picker style="width: 100%"/>
 | 
			
		||||
        </a-form-item>
 | 
			
		||||
      </a-col>
 | 
			
		||||
      <a-col :span="2">
 | 
			
		||||
        <span :style="{ display: 'inline-block', width: '100%', textAlign: 'center' }">
 | 
			
		||||
          -
 | 
			
		||||
        </span>
 | 
			
		||||
      </a-col>
 | 
			
		||||
      <a-col :span="11">
 | 
			
		||||
        <a-form-item>
 | 
			
		||||
          <a-date-picker style="width: 100%"/>
 | 
			
		||||
        </a-form-item>
 | 
			
		||||
      </a-col>
 | 
			
		||||
    </a-form-item>
 | 
			
		||||
 | 
			
		||||
    <a-form-item
 | 
			
		||||
      :labelCol="labelCol"
 | 
			
		||||
      :wrapperCol="wrapperCol"
 | 
			
		||||
      label='Success'
 | 
			
		||||
      hasFeedback
 | 
			
		||||
      validateStatus='success'
 | 
			
		||||
    >
 | 
			
		||||
      <a-input-number style="width: 100%" />
 | 
			
		||||
    </a-form-item>
 | 
			
		||||
  </a-form>
 | 
			
		||||
</template>
 | 
			
		||||
<script>
 | 
			
		||||
export default {
 | 
			
		||||
  data () {
 | 
			
		||||
    return {
 | 
			
		||||
      labelCol: {
 | 
			
		||||
        xs: { span: 24 },
 | 
			
		||||
        sm: { span: 5 },
 | 
			
		||||
      },
 | 
			
		||||
      wrapperCol: {
 | 
			
		||||
        xs: { span: 24 },
 | 
			
		||||
        sm: { span: 12 },
 | 
			
		||||
      },
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,67 @@
 | 
			
		|||
<cn>
 | 
			
		||||
#### 自行处理表单数据
 | 
			
		||||
使用 `Form.create` 处理后的表单具有自动收集数据并校验的功能,但如果您不需要这个功能,或者默认的行为无法满足业务需求,可以选择不使用 `Form.create` 并自行处理数据。
 | 
			
		||||
</cn>
 | 
			
		||||
 | 
			
		||||
<us>
 | 
			
		||||
#### Handle Form Data Manually
 | 
			
		||||
`Form.create` will collect and validate form data automatically. But if you don't need this feature or the default behaviour cannot satisfy your business, you can drop `Form.create` and handle form data manually.
 | 
			
		||||
</us>
 | 
			
		||||
 | 
			
		||||
```html
 | 
			
		||||
<template>
 | 
			
		||||
  <a-form>
 | 
			
		||||
    <a-form-item
 | 
			
		||||
      :labelCol="labelCol"
 | 
			
		||||
      :wrapperCol="wrapperCol"
 | 
			
		||||
      label="Prime between 8 & 12"
 | 
			
		||||
      :validateStatus="number.validateStatus"
 | 
			
		||||
      :help="number.errorMsg || tips"
 | 
			
		||||
    >
 | 
			
		||||
      <a-input-number
 | 
			
		||||
        :min="8"
 | 
			
		||||
        :max="12"
 | 
			
		||||
        :value="number.value"
 | 
			
		||||
        @change="handleNumberChange"
 | 
			
		||||
      />
 | 
			
		||||
    </a-form-item>
 | 
			
		||||
  </a-form>
 | 
			
		||||
</template>
 | 
			
		||||
<script>
 | 
			
		||||
function validatePrimeNumber (number) {
 | 
			
		||||
  if (number === 11) {
 | 
			
		||||
    return {
 | 
			
		||||
      validateStatus: 'success',
 | 
			
		||||
      errorMsg: null,
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  return {
 | 
			
		||||
    validateStatus: 'error',
 | 
			
		||||
    errorMsg: 'The prime between 8 and 12 is 11!',
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
export default {
 | 
			
		||||
  data () {
 | 
			
		||||
    return {
 | 
			
		||||
      labelCol: { span: 7 },
 | 
			
		||||
      wrapperCol: { span: 12 },
 | 
			
		||||
      number: {
 | 
			
		||||
        value: 11,
 | 
			
		||||
      },
 | 
			
		||||
      tips: 'A prime is a natural number greater than 1 that has no positive divisors other than 1 and itself.',
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  methods: {
 | 
			
		||||
    handleNumberChange (value) {
 | 
			
		||||
      this.number = {
 | 
			
		||||
        ...validatePrimeNumber(value),
 | 
			
		||||
        value,
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1,24 +1,3 @@
 | 
			
		|||
---
 | 
			
		||||
category: Components
 | 
			
		||||
type: Data Entry
 | 
			
		||||
cols: 1
 | 
			
		||||
title: Form
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
Form is used to collect, validate, and submit the user input, usually contains various form items including checkbox, radio, input, select, and etc.
 | 
			
		||||
 | 
			
		||||
## Form
 | 
			
		||||
 | 
			
		||||
You can align the controls of a `form` using the `layout` prop:
 | 
			
		||||
 | 
			
		||||
- `horizontal`:to horizontally align the `label`s and controls of the fields. (Default)
 | 
			
		||||
- `vertical`:to vertically align the `label`s and controls of the fields.
 | 
			
		||||
- `inline`:to render form fields in one line.
 | 
			
		||||
 | 
			
		||||
## Form fields
 | 
			
		||||
 | 
			
		||||
A form consists of one or more form fields whose type includes input, textarea, checkbox, radio, select, tag, and more.
 | 
			
		||||
A form field is defined using `<Form.Item />`.
 | 
			
		||||
 | 
			
		||||
```jsx
 | 
			
		||||
<Form.Item {...props}>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,26 +1,3 @@
 | 
			
		|||
---
 | 
			
		||||
category: Components
 | 
			
		||||
subtitle: 表单
 | 
			
		||||
type: Data Entry
 | 
			
		||||
cols: 1
 | 
			
		||||
title: Form
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
具有数据收集、校验和提交功能的表单,包含复选框、单选框、输入框、下拉选择框等元素。
 | 
			
		||||
 | 
			
		||||
## 表单
 | 
			
		||||
 | 
			
		||||
我们为 `form` 提供了以下三种排列方式:
 | 
			
		||||
 | 
			
		||||
- 水平排列:标签和表单控件水平排列;(默认)
 | 
			
		||||
- 垂直排列:标签和表单控件上下垂直排列;
 | 
			
		||||
- 行内排列:表单项水平行内排列。
 | 
			
		||||
 | 
			
		||||
## 表单域
 | 
			
		||||
 | 
			
		||||
表单一定会包含表单域,表单域可以是输入控件,标准表单域,标签,下拉菜单,文本域等。
 | 
			
		||||
 | 
			
		||||
这里我们封装了表单域 `<Form.Item />` 。
 | 
			
		||||
 | 
			
		||||
```jsx
 | 
			
		||||
<Form.Item {...props}>
 | 
			
		||||
| 
						 | 
				
			
			@ -36,7 +13,7 @@ title: Form
 | 
			
		|||
 | 
			
		||||
| 参数 | 说明 | 类型 | 默认值 |
 | 
			
		||||
| --- | --- | --- | --- |
 | 
			
		||||
| form | 经 `Form.create()` 包装过的组件会自带 `this.props.form` 属性,直接传给 Form 即可。1.7.0 之后无需设置 | object | 无 |
 | 
			
		||||
| form | 经 `Form.create()` 包装过的组件会自带 `this.form` 属性,直接传给 Form 即可。无需手动设置 | object | 无 |
 | 
			
		||||
| hideRequiredMark | 隐藏所有表单项的必选标记 | Boolean | false |
 | 
			
		||||
| layout | 表单布局(2.8 之后支持) | 'horizontal'\|'vertical'\|'inline' | 'horizontal' |
 | 
			
		||||
| onSubmit | 数据验证成功后回调事件 | Function(e:Event) |  |
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -7,7 +7,10 @@ export const InputNumberProps = {
 | 
			
		|||
  prefixCls: PropTypes.string,
 | 
			
		||||
  min: PropTypes.number,
 | 
			
		||||
  max: PropTypes.number,
 | 
			
		||||
  value: PropTypes.number,
 | 
			
		||||
  value: PropTypes.oneOfType([
 | 
			
		||||
    PropTypes.number,
 | 
			
		||||
    PropTypes.string,
 | 
			
		||||
  ]),
 | 
			
		||||
  step: PropTypes.oneOfType([
 | 
			
		||||
    PropTypes.number,
 | 
			
		||||
    PropTypes.string,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -553,7 +553,7 @@ function createBaseForm (option = {}, mixins = []) {
 | 
			
		|||
      },
 | 
			
		||||
 | 
			
		||||
      render () {
 | 
			
		||||
        const { $listeners } = this
 | 
			
		||||
        const { $listeners, $slots } = this
 | 
			
		||||
        const formProps = {
 | 
			
		||||
          [formPropName]: this.getForm(),
 | 
			
		||||
        }
 | 
			
		||||
| 
						 | 
				
			
			@ -566,7 +566,7 @@ function createBaseForm (option = {}, mixins = []) {
 | 
			
		|||
          on: $listeners,
 | 
			
		||||
          ref: 'WrappedComponent',
 | 
			
		||||
        }
 | 
			
		||||
        return <WrappedComponent {...wrappedComponentProps}/>
 | 
			
		||||
        return <WrappedComponent {...wrappedComponentProps}>{$slots.default}</WrappedComponent>
 | 
			
		||||
      },
 | 
			
		||||
    }
 | 
			
		||||
    if (Array.isArray(WrappedComponent.props)) {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -491,8 +491,9 @@ export default {
 | 
			
		|||
    const inputDisplayValueFormat = this.formatWrapper(inputDisplayValue)
 | 
			
		||||
    const isUpDisabled = !!upDisabledClass || disabled || readOnly
 | 
			
		||||
    const isDownDisabled = !!downDisabledClass || disabled || readOnly
 | 
			
		||||
    const { mouseenter = noop, mouseleave = noop, mouseover = noop, mouseout = noop } = this.$listeners
 | 
			
		||||
    const contentProps = {
 | 
			
		||||
      on: this.$listeners,
 | 
			
		||||
      on: { mouseenter, mouseleave, mouseover, mouseout },
 | 
			
		||||
      class: classes,
 | 
			
		||||
    }
 | 
			
		||||
    const upHandlerProps = {
 | 
			
		||||
| 
						 | 
				
			
			@ -578,7 +579,7 @@ export default {
 | 
			
		|||
            step={this.step}
 | 
			
		||||
            name={this.name}
 | 
			
		||||
            id={this.id}
 | 
			
		||||
            onChange={this.onChange}
 | 
			
		||||
            onInput={this.onChange}
 | 
			
		||||
            ref='inputRef'
 | 
			
		||||
            value={inputDisplayValueFormat}
 | 
			
		||||
            pattern={this.pattern}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -4,7 +4,7 @@ import Iframe from './components/iframe.vue'
 | 
			
		|||
const AsyncTestComp = () => {
 | 
			
		||||
  const d = window.location.hash.replace('#', '')
 | 
			
		||||
  return {
 | 
			
		||||
    component: import(`../components/form/demo/${d}`),
 | 
			
		||||
    component: import(`../components/form/demo/test.vue`),
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue