| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- <template>
- <div class="vent-form">
- <BasicForm @register="registerForm" />
- <div class="j-box-bottom-button offset-20" style="margin-top: 30px">
- <div class="j-box-bottom-button-float">
- <a-button preIcon="ant-design:sync-outlined" @click="onReset">重置</a-button>
- <a-button type="primary" preIcon="ant-design:save-filled" @click="handleSubmit">保存</a-button>
- </div>
- </div>
- </div>
- </template>
- <script lang="ts" setup>
- import { inject, nextTick, watch } from 'vue';
- import { BasicForm, useForm } from '/@/components/Form/index';
- // 声明Emits
- const props = defineProps({
- formSchema: { type: Array },
- record: { type: Object },
- });
- const emit = defineEmits(['saveOrUpdate']);
- // const testData = inject('formData') as any;
- //表单配置
- const [registerForm, { resetFields, setFieldsValue, validate, reload }] = useForm({
- schemas: props.formSchema,
- showActionButtonGroup: false,
- });
- watch(
- () => props.record,
- (newV) => {
- nextTick(() => {
- setFieldsValue({ ...newV });
- });
- },
- { immediate: true }
- );
- // 重置表单
- async function onReset() {
- await resetFields();
- await setFieldsValue({ ...props.record });
- }
- //表单提交事件
- async function handleSubmit(v) {
- try {
- let values = await validate();
- emit('saveOrUpdate', values);
- } finally {
- // setModalProps({ confirmLoading: false });
- }
- }
- </script>
- <style lang="less" scoped>
- @ventSpace: zxm;
- .j-box-bottom-button-float {
- border: none !important;
- padding-bottom: 30px;
- left: 0px !important;
- right: 0px !important;
- bottom: 0px !important;
- }
- .vent-form {
- max-height: 700px;
- overflow-y: auto;
- .@{ventSpace}-select-selection-item {
- color: rgba(255, 255, 255, 1) !important;
- }
- }
- </style>
|