mirror of
https://github.com/jeecgboot/JeecgBoot.git
synced 2026-01-01 09:55:28 +08:00
106 lines
2.2 KiB
Java
106 lines
2.2 KiB
Java
<!-- 自定义页脚 -->
|
|
<template>
|
|
<!-- 自定义表单 -->
|
|
<BasicForm @register="registerForm" style="margin-top: 20px">
|
|
<template #formHeader>
|
|
<div style="margin: 0 auto 20px">
|
|
<span>我是自定义按钮</span>
|
|
</div>
|
|
</template>
|
|
<template #formFooter>
|
|
<div style="margin: 0 auto">
|
|
<a-button type="primary" @click="save" class="mr-2"> 保存 </a-button>
|
|
<a-button type="primary" @click="saveDraft" class="mr-2"> 保存草稿 </a-button>
|
|
<a-button type="error" @click="reset" class="mr-2"> 重置 </a-button>
|
|
</div>
|
|
</template>
|
|
</BasicForm>
|
|
</template>
|
|
|
|
<script lang="ts" setup>
|
|
//引入依赖
|
|
import { useForm, BasicForm, FormSchema } from '/@/components/Form';
|
|
|
|
//自定义表单字段
|
|
const formSchemas: FormSchema[] = [
|
|
{
|
|
label: '员工姓名',
|
|
field: 'name',
|
|
component: 'Input',
|
|
},
|
|
{
|
|
label: '性别',
|
|
field: 'sex',
|
|
component: 'Select',
|
|
//填写组件的属性
|
|
componentProps: {
|
|
options: [
|
|
{ label: '男', value: 1 },
|
|
{ label: '女', value: 2 },
|
|
{ label: '未知', value: 3 },
|
|
],
|
|
},
|
|
//默认值
|
|
defaultValue: 3,
|
|
},
|
|
{
|
|
label: '年龄',
|
|
field: 'age',
|
|
component: 'Input',
|
|
},
|
|
{
|
|
label: '入职时间',
|
|
subLabel: '( 选填 )',
|
|
field: 'entryTime',
|
|
component: 'TimePicker',
|
|
},
|
|
];
|
|
|
|
/**
|
|
* BasicForm绑定注册;
|
|
*/
|
|
const [registerForm, { validate, resetFields }] = useForm({
|
|
schemas: formSchemas,
|
|
labelWidth: '150px',
|
|
//隐藏操作按钮
|
|
showActionButtonGroup: false,
|
|
});
|
|
|
|
/**
|
|
* 保存
|
|
*/
|
|
async function save() {
|
|
//使用useForm方法获取表单值
|
|
let values = await validate();
|
|
console.log(values);
|
|
}
|
|
|
|
/**
|
|
* 保存草稿
|
|
*/
|
|
async function saveDraft() {
|
|
//使用useForm方法validate获取表单值
|
|
let values = await validate();
|
|
console.log(values);
|
|
}
|
|
|
|
/**
|
|
* 重置
|
|
*/
|
|
async function reset() {
|
|
//使用useForm方法resetFields清空值
|
|
await resetFields();
|
|
}
|
|
</script>
|
|
|
|
<style scoped>
|
|
/** 时间和数字输入框样式 */
|
|
:deep(.ant-input-number) {
|
|
width: 100%;
|
|
}
|
|
|
|
:deep(.ant-picker) {
|
|
width: 100%;
|
|
}
|
|
</style>
|