| | |
| | | |
| | | type RefundFormModalData = { |
| | | refund?: Pick<CrmRefundApi.Refund, 'id'>; |
| | | /** 只读模式:审核通过的退费单仅允许查看详情 */ |
| | | readonly?: boolean; |
| | | }; |
| | | |
| | | const emit = defineEmits(['success']); |
| | | const formData = ref<Partial<CrmRefundApi.Refund>>(); |
| | | const readonly = ref(false); |
| | | const getTitle = computed(() => { |
| | | if (readonly.value) { |
| | | return '退费单详情'; |
| | | } |
| | | return formData.value?.id |
| | | ? $t('ui.actionTitle.edit', ['退费单']) |
| | | : $t('ui.actionTitle.create', ['退费单']); |
| | |
| | | async onOpenChange(isOpen: boolean) { |
| | | if (!isOpen) { |
| | | formData.value = undefined; |
| | | readonly.value = false; |
| | | return; |
| | | } |
| | | formApi.setState({ schema: useFormSchema(formApi) }); |
| | | await formApi.resetForm(); |
| | | const data = modalApi.getData() as null | RefundFormModalData; |
| | | // 只读详情:禁用全部字段并隐藏「确定」按钮;编辑/新增则恢复可操作 |
| | | readonly.value = !!data?.readonly; |
| | | formApi.setDisabled(readonly.value); |
| | | modalApi.setState({ showConfirmButton: !readonly.value }); |
| | | if (!data?.refund?.id) { |
| | | return; |
| | | } |