| | |
| | | import { useMessageBoxTip, useMessageBox } from './messageBox'; |
| | | |
| | | export function useFormConfirm({ |
| | | defaultForm = undefined, |
| | | submit = { |
| | | do: () => {}, |
| | | }, |
| | | cancel = { |
| | | do: () => {}, |
| | | }, |
| | | reset = { |
| | | do: () => {}, |
| | | }, |
| | | }) { |
| | |
| | | if (!cancel.msg) cancel.msg = '是否放弃已编辑的内容?'; |
| | | |
| | | //表单内容 |
| | | const formObj = ref({}); |
| | | const formObj = ref(defaultForm ? defaultForm : {}); |
| | | let formObjClone = useCloned(formObj, { manual: true }); |
| | | //表单组件引用 |
| | | const formRef = ref(null); |
| | |
| | | formObj, |
| | | (nv, ov) => { |
| | | if (!isReset && nv != ov) { |
| | | formObjClone = useCloned(formObj, { manual: true }); |
| | | formObjClone = useCloned(nv, { manual: true }); |
| | | } |
| | | if (!isReset && nv === ov) { |
| | | edit.value = true; |
| | |
| | | ); |
| | | |
| | | // 重置表单 |
| | | const reset = function () { |
| | | const _reset = function () { |
| | | edit.value = false; |
| | | isReset = true; |
| | | formObj.value = useCloned(formObjClone.cloned, { |
| | |
| | | }; |
| | | |
| | | // 重置表单 |
| | | const onReset = function () { |
| | | const onReset = function (tips) { |
| | | if (edit.value) { |
| | | // 弹出确认框 |
| | | useMessageBox({ |
| | | confirmMsg: '是否重置表单内容?', |
| | | confirmTitle: '重置表单', |
| | | onConfirm: () => { |
| | | reset(); |
| | | return cancel.do(); |
| | | }, |
| | | }); |
| | | if (tips) { |
| | | // 弹出确认框 |
| | | useMessageBox({ |
| | | confirmMsg: '是否重置表单内容?', |
| | | confirmTitle: '重置表单', |
| | | onConfirm: () => { |
| | | _reset(); |
| | | return reset.do(); |
| | | }, |
| | | }); |
| | | } else { |
| | | _reset(); |
| | | reset.do(); |
| | | } |
| | | } else { |
| | | cancel.do(); |
| | | reset.do(); |
| | | } |
| | | }; |
| | | |