liu
22 小时以前 fe950251bf133b5f715534df6d4bf98de05558ae
src/views/crm/refund/modules/form.vue
@@ -18,11 +18,17 @@
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', ['退费单']);
@@ -64,11 +70,16 @@
  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;
    }