<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>