NoteCheck.vue 1.42 KB
<template>
  <BasicModal
    v-bind="$attrs"
    @register="register"
    title="添加备注"
    width="500px"
    :bodyStyle="{ height: '240px' }"
    @ok="handleOk"
    @visible-change="handleShow"
  >
    备注:
    <a-textarea v-model:value="notes" placeholder="请输入" :rows="6" />
    <div style="height: 10px"></div>
  </BasicModal>
</template>
<script lang="ts" setup>
  import { BasicModal, useModalInner } from '@/components/Modal';
  import { ref } from 'vue';
  import { getSetBackRefundDate } from '@/api/project/invoice';
  import { useMessage } from '/@/hooks/web/useMessage';

  const id = ref();
  const notes = ref();
  const checkedKeys = ref();
  const emit = defineEmits(['success']);
  const { createMessage } = useMessage();
  const { error } = createMessage;
  const [register, { closeModal }] = useModalInner(async (data) => {
    // id.value = data.data.id;
    checkedKeys.value = data.checkedKeys;
  });
  const isDisabled = ref(false);
  async function handleOk() {
    if (isDisabled.value) {
      error('请勿连续点击生成按钮,需要等待三秒再点击生成');
      return;
    }
    isDisabled.value = true;
    setTimeout(() => {
      isDisabled.value = false;
    }, 3000);
    getSetBackRefundDate({ id: checkedKeys.value, notes: notes.value });
    emit('success');
    closeModal();
  }
  function handleShow(visible: boolean) {
    if (!visible) {
      notes.value = null;
    }
  }
</script>