#!/usr/bin/env python3
# -*- coding: utf-8 -*-

with open('TenantListView.vue', 'r', encoding='utf-8') as f:
    content = f.read()

# 找到 handleModalOk 函数中的 catch 块并修改
old_catch = '''  } catch (error: any) {
    message.error(error.response?.data?.message || '操作失败');
  } finally {
    modalLoading.value = false;
  }
};'''

new_catch = '''  } catch (error: any) {
    // 处理错误码 3102 - 套餐下有排课计划
    if (error.response?.data?.code === 3102) {
      const warnings = error.response.data.data as Array<{
        collectionId: number;
        collectionName: string;
        scheduleCount: number;
      }>;
      // 保存当前表单数据
      pendingFormData.value = {
        ...formData,
        startDate,
        expireDate,
      };
      // 显示强制移除确认弹窗
      forceRemoveWarnings.value = warnings;
      forceRemoveModalVisible.value = true;
      modalLoading.value = false;
      return;
    }
    message.error(error.response?.data?.message || '操作失败');
  } finally {
    modalLoading.value = false;
  }
};

// 强制移除确认弹窗 - 确认
const handleForceRemoveConfirm = async () => {
  if (!pendingFormData.value || !editingId.value) {
    return;
  }

  modalLoading.value = true;
  try {
    // 传递 forceRemove: true 重新调用更新接口
    await updateTenant(editingId.value, { ...pendingFormData.value, forceRemove: true } as UpdateTenantDto);
    message.success('更新成功');
    modalVisible.value = false;
    forceRemoveModalVisible.value = false;
    pendingFormData.value = null;
    loadData();
  } catch (error: any) {
    message.error(error.response?.data?.message || '操作失败');
  } finally {
    modalLoading.value = false;
  }
};

// 强制移除确认弹窗 - 取消
const handleForceRemoveCancel = () => {
  forceRemoveModalVisible.value = false;
  pendingFormData.value = null;
  forceRemoveWarnings.value = [];
};'''

content = content.replace(old_catch, new_catch)

with open('TenantListView.vue', 'w', encoding='utf-8') as f:
    f.write(content)

print('修改成功')
