riku
2023-05-09 0959c095ad9715633d6ccdf10eb3b3d52f0bede1
src/composables/formConfirm.js
@@ -4,10 +4,14 @@
import { useMessageBoxTip, useMessageBox } from './messageBox';
export function useFormConfirm({
  defaultForm = undefined,
  submit = {
    do: () => {},
  },
  cancel = {
    do: () => {},
  },
  reset = {
    do: () => {},
  },
}) {
@@ -17,7 +21,7 @@
  if (!cancel.msg) cancel.msg = '是否放弃已编辑的内容?';
  //表单内容
  const formObj = ref({});
  const formObj = ref(defaultForm ? defaultForm : {});
  let formObjClone = useCloned(formObj, { manual: true });
  //表单组件引用
  const formRef = ref(null);
@@ -59,7 +63,7 @@
  );
  // 重置表单
  const reset = function () {
  const _reset = function () {
    edit.value = false;
    isReset = true;
    formObj.value = useCloned(formObjClone.cloned, {
@@ -116,19 +120,24 @@
  };
  // 重置表单
  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();
    }
  };