From 0796eebe3520fafb0ac5d36ee584af81506d7e9c Mon Sep 17 00:00:00 2001 From: riku <risaku@163.com> Date: 星期六, 20 九月 2025 14:05:52 +0800 Subject: [PATCH] 2025.9.20 数据产品(待完成) --- src/composables/formConfirm.js | 45 ++++++++++++++++++++++++++++----------------- 1 files changed, 28 insertions(+), 17 deletions(-) diff --git a/src/composables/formConfirm.js b/src/composables/formConfirm.js index 306b125..e1eafd1 100644 --- a/src/composables/formConfirm.js +++ b/src/composables/formConfirm.js @@ -1,24 +1,29 @@ -// 琛ㄥ崟鐨勭‘璁ゅ拰鍙栨秷 -import { onActivated, onDeactivated, ref, watch } from 'vue'; +import { defineProps, onActivated, onDeactivated, reactive, ref, watch } from 'vue'; import { useCloned } from '@vueuse/core'; import { useMessageBoxTip, useMessageBox } from './messageBox'; +// 琛ㄥ崟鐨勭‘璁ゅ拰鍙栨秷 export function useFormConfirm({ defaultForm = undefined, submit = { - do: () => {}, + do: () => {} }, cancel = { - do: () => {}, + do: () => {} }, reset = { - do: () => {}, + do: () => {} }, }) { if (!submit.title) submit.title = '鎻愪氦'; if (!submit.msg) submit.msg = '纭鏄惁鎻愪氦锛�'; if (!cancel.title) cancel.title = '鍙栨秷'; if (!cancel.msg) cancel.msg = '鏄惁鏀惧純宸茬紪杈戠殑鍐呭锛�'; + + // const formProps = defineProps({ + // // 鏄惁鍦ㄦ彁浜ゆ垚鍔熷悗娓呯┖琛ㄥ崟 + // clearAftSubmit: Boolean + // }); //琛ㄥ崟鍐呭 const formObj = ref(defaultForm ? defaultForm : {}); @@ -64,40 +69,46 @@ // 閲嶇疆琛ㄥ崟 const _reset = function () { + formRef.value.clearValidate(); edit.value = false; isReset = true; formObj.value = useCloned(formObjClone.cloned, { - manual: true, + manual: true }).cloned.value; - formRef.value.clearValidate(); }; // 娓呯┖琛ㄥ崟 const clear = function () { - edit.value = false; isReset = true; formRef.value.resetFields(); + edit.value = false; }; // 鎻愪氦鎴愬姛鍚� const submited = function () { + // if (formProps.clearAftSubmit) clear(); edit.value = false; formObjClone = useCloned(formObj, { manual: true }); }; // 鎻愪氦琛ㄥ崟 - const onSubmit = function () { - formRef.value.validate((valid) => { + const onSubmit = function (messageBox = true) { + formRef.value.validate(async (valid) => { if (valid) { + if (messageBox) { useMessageBoxTip({ confirmMsg: submit.msg, confirmTitle: submit.title, onConfirm: async () => { - await submit.do(); + const res = await submit.do(); submited(); - return; - }, + return res; + } }); + } else { + await submit.do(); + submited(); + } } }); }; @@ -110,9 +121,9 @@ confirmMsg: cancel.msg, confirmTitle: cancel.title, onConfirm: () => { - clear(); + // clear(); return cancel.do(); - }, + } }); } else { cancel.do(); @@ -130,7 +141,7 @@ onConfirm: () => { _reset(); return reset.do(); - }, + } }); } else { _reset(); @@ -141,5 +152,5 @@ } }; - return { formObj, formRef, edit, onSubmit, onCancel, onReset }; + return { formObj, formRef, edit, onSubmit, onCancel, onReset, clear }; } -- Gitblit v1.9.3