From 858b9bccead46cdefc99325b7c956d50a2964309 Mon Sep 17 00:00:00 2001 From: Ben Lin <maobin001@msn.com> Date: 星期六, 08 三月 2025 10:20:28 +0800 Subject: [PATCH] 一些优化 --- src/views/demo/form/RuleForm.vue | 116 +++++++++++++++++++++++++--------------------------------- 1 files changed, 50 insertions(+), 66 deletions(-) diff --git a/src/views/demo/form/RuleForm.vue b/src/views/demo/form/RuleForm.vue index 183c047..182b606 100644 --- a/src/views/demo/form/RuleForm.vue +++ b/src/views/demo/form/RuleForm.vue @@ -12,14 +12,14 @@ </CollapseContainer> </PageWrapper> </template> -<script lang="ts"> - import { defineComponent } from 'vue'; - import { BasicForm, FormSchema, useForm } from '/@/components/Form/index'; - import { CollapseContainer } from '/@/components/Container'; - import { useMessage } from '/@/hooks/web/useMessage'; - import { PageWrapper } from '/@/components/Page'; - import { isAccountExist } from '/@/api/demo/system'; - +<script lang="ts" setup> + import { BasicForm, FormSchema, useForm } from '@/components/Form'; + import { CollapseContainer } from '@/components/Container'; + import { useMessage } from '@/hooks/web/useMessage'; + import { PageWrapper } from '@/components/Page'; + import { isAccountExist } from '@/api/demo/system'; + import dayjs from "dayjs" + const schemas: FormSchema[] = [ { field: 'field1', @@ -120,14 +120,11 @@ rules: [ { required: true, - // @ts-ignore - validator: async (rule, value) => { + validator: async (_, value) => { if (!value) { - /* eslint-disable-next-line */ return Promise.reject('鍊间笉鑳戒负绌�'); } if (value === '1') { - /* eslint-disable-next-line */ return Promise.reject('鍊间笉鑳戒负1'); } return Promise.resolve(); @@ -192,10 +189,12 @@ message: '璇疯緭鍏ユ暟鎹�', }, { + trigger: 'blur', validator(_, value) { return new Promise((resolve, reject) => { + if (!value) return resolve(); isAccountExist(value) - .then(() => resolve()) + .then(resolve) .catch((err) => { reject(err.message || '楠岃瘉澶辫触'); }); @@ -206,57 +205,42 @@ }, ]; - export default defineComponent({ - components: { BasicForm, CollapseContainer, PageWrapper }, - setup() { - const { createMessage } = useMessage(); - const [ - register, - { validateFields, clearValidate, getFieldsValue, resetFields, setFieldsValue }, - ] = useForm({ - labelWidth: 120, - schemas, - actionColOptions: { - span: 24, - }, - }); - async function validateForm() { - try { - const res = await validateFields(); - console.log('passing', res); - } catch (error) { - console.log('not passing', error); - } - } - async function resetValidate() { - clearValidate(); - } - function getFormValues() { - const values = getFieldsValue(); - createMessage.success('values:' + JSON.stringify(values)); - } - function setFormValues() { - setFieldsValue({ - field1: 1111, - field4: ['1'], - field5: ['1'], - field7: '1', - field33: '2020-12-12', - field3: '2020-12-12', - }); - } - return { - register, - schemas, - handleSubmit: (values: any) => { - createMessage.success('click search,values:' + JSON.stringify(values)); - }, - getFormValues, - setFormValues, - validateForm, - resetValidate, - resetFields, - }; - }, - }); + const { createMessage } = useMessage(); + const [register, { validateFields, clearValidate, getFieldsValue, resetFields, setFieldsValue }] = + useForm({ + labelWidth: 120, + schemas, + actionColOptions: { + span: 24, + }, + }); + async function validateForm() { + try { + const res = await validateFields(); + console.log('passing', res); + } catch (error) { + console.log('not passing', error); + } + } + async function resetValidate() { + clearValidate(); + } + function getFormValues() { + const values = getFieldsValue(); + createMessage.success('values:' + JSON.stringify(values)); + } + function setFormValues() { + setFieldsValue({ + field1: 1111, + field4: ['1'], + field5: ['1'], + field7: '1', + field33: '2020-12-12', + field3: dayjs('2020-12-12',"YYYY-MM-DD"), + }); + } + + function handleSubmit(values: any) { + createMessage.success('click search,values:' + JSON.stringify(values)); + } </script> -- Gitblit v1.9.3