useClearDialog.js 824 B

123456789101112131415161718192021222324252627282930313233
  1. import { reactive, watch, ref } from 'vue';
  2. import { cloneDeep } from 'lodash';
  3. export default function useClearDialog(data, props, formRef, getDetail) {
  4. let formData = reactive(cloneDeep(data));
  5. let isEdit = ref(false);
  6. watch(
  7. () => props.curRow,
  8. (val) => {
  9. if (!val) {
  10. let cloneData = cloneDeep(data);
  11. for (let key in cloneData) {
  12. formData[key] = cloneData[key];
  13. }
  14. isEdit.value = false;
  15. } else {
  16. isEdit.value = true;
  17. }
  18. }
  19. );
  20. watch(
  21. () => props.visible,
  22. (visible) => {
  23. if (!visible) {
  24. formRef?.value?.clearValidate();
  25. } else {
  26. formRef?.value?.clearValidate();
  27. !!props.curRow && getDetail && getDetail();
  28. }
  29. }
  30. );
  31. return { formData, isEdit };
  32. }