99 lines
2.7 KiB
Vue
99 lines
2.7 KiB
Vue
<docs>
|
||
---
|
||
order: 0
|
||
title:
|
||
zh-CN: 基本使用
|
||
en-US: Basic Usage
|
||
---
|
||
|
||
## zh-CN
|
||
|
||
基本的表单数据域控制展示,包含布局、初始化、验证、提交。
|
||
|
||
## en-US
|
||
|
||
Basic Form data control. Includes layout, initial values, validation and submit.
|
||
</docs>
|
||
<template>
|
||
<a-form :model="formState" :label-col="labelCol" :wrapper-col="wrapperCol">
|
||
<a-form-item label="Activity name">
|
||
<a-input v-model:value="formState.name" />
|
||
</a-form-item>
|
||
<a-form-item label="Activity zone">
|
||
<a-select v-model:value="formState.region" placeholder="please select your zone">
|
||
<a-select-option value="shanghai">Zone one</a-select-option>
|
||
<a-select-option value="beijing">Zone two</a-select-option>
|
||
</a-select>
|
||
</a-form-item>
|
||
<a-form-item label="Activity time">
|
||
<a-date-picker
|
||
v-model:value="formState.date1"
|
||
show-time
|
||
type="date"
|
||
placeholder="Pick a date"
|
||
style="width: 100%"
|
||
/>
|
||
</a-form-item>
|
||
<a-form-item label="Instant delivery">
|
||
<a-switch v-model:checked="formState.delivery" />
|
||
</a-form-item>
|
||
<a-form-item label="Activity type">
|
||
<a-checkbox-group v-model:value="formState.type">
|
||
<a-checkbox value="1" name="type">Online</a-checkbox>
|
||
<a-checkbox value="2" name="type">Promotion</a-checkbox>
|
||
<a-checkbox value="3" name="type">Offline</a-checkbox>
|
||
</a-checkbox-group>
|
||
</a-form-item>
|
||
<a-form-item label="Resources">
|
||
<a-radio-group v-model:value="formState.resource">
|
||
<a-radio value="1">Sponsor</a-radio>
|
||
<a-radio value="2">Venue</a-radio>
|
||
</a-radio-group>
|
||
</a-form-item>
|
||
<a-form-item label="Activity form">
|
||
<a-input v-model:value="formState.desc" type="textarea" />
|
||
</a-form-item>
|
||
<a-form-item :wrapper-col="{ span: 14, offset: 4 }">
|
||
<a-button type="primary" @click="onSubmit">Create</a-button>
|
||
<a-button style="margin-left: 10px">Cancel</a-button>
|
||
</a-form-item>
|
||
</a-form>
|
||
</template>
|
||
<script lang="ts">
|
||
import { Dayjs } from 'dayjs';
|
||
import { defineComponent, reactive, toRaw } from 'vue';
|
||
import type { UnwrapRef } from 'vue';
|
||
|
||
interface FormState {
|
||
name: string;
|
||
region: string | undefined;
|
||
date1: Dayjs | undefined;
|
||
delivery: boolean;
|
||
type: string[];
|
||
resource: string;
|
||
desc: string;
|
||
}
|
||
export default defineComponent({
|
||
setup() {
|
||
const formState: UnwrapRef<FormState> = reactive({
|
||
name: '',
|
||
region: undefined,
|
||
date1: undefined,
|
||
delivery: false,
|
||
type: [],
|
||
resource: '',
|
||
desc: '',
|
||
});
|
||
const onSubmit = () => {
|
||
console.log('submit!', toRaw(formState));
|
||
};
|
||
return {
|
||
labelCol: { span: 4 },
|
||
wrapperCol: { span: 14 },
|
||
formState,
|
||
onSubmit,
|
||
};
|
||
},
|
||
});
|
||
</script>
|