修复模板id缺失时无法删除所有者模板的问题

This commit is contained in:
jingrow 2025-08-06 20:16:42 +08:00
parent c1a938226b
commit 3f462923f1
2 changed files with 30 additions and 29 deletions

View File

@ -58,7 +58,7 @@
<!-- 空状态 -->
<div v-else-if="filteredOwners.length === 0" class="flex flex-col items-center justify-center py-12 text-gray-500">
<UsersIcon class="mb-4 h-12 w-12 text-gray-300" />
<p class="text-lg font-medium">暂无域名所有者模板</p>
<p class="text-lg font-medium">暂无所有者模板</p>
<p class="text-sm">点击上方按钮创建第一个模板</p>
</div>
@ -185,7 +185,7 @@
<!-- 标题栏 -->
<div class="p-4 border-b border-gray-200 bg-white rounded-t-lg flex-shrink-0">
<div class="flex items-center justify-between">
<h3 class="text-lg font-medium text-gray-900">域名所有者详情</h3>
<h3 class="text-lg font-medium text-gray-900">所有者详细信息</h3>
<button
@click="closeDetailDialog"
class="text-gray-400 hover:text-gray-600 transition-colors duration-200"
@ -716,7 +716,7 @@ export default {
params: data,
onSuccess: (response) => {
if (response.status === 'Success') {
toast.success('域名所有者模板创建成功!');
toast.success('所有者模板创建成功!');
this.fetchOwners(); //
this.handleCloseDialog(); //
} else {
@ -737,7 +737,7 @@ export default {
}
},
//
//
viewOwner(owner) {
this.selectedOwner = owner;
this.showDetailDialog = true;
@ -804,7 +804,7 @@ export default {
onSuccess: (response) => {
if (response.status === 'Success') {
toast.success('域名所有者模板更新成功!');
toast.success('所有者模板更新成功!');
this.fetchOwners(); //
this.closeEditDialog(); //
} else {
@ -832,7 +832,7 @@ export default {
async deleteOwner(owner) {
confirmDialog({
title: '确认删除',
message: `确定要删除域名所有者模板 "<strong>${this.getDisplayName(owner)}</strong>" 吗?<br><br>此操作将不可逆。`,
message: `确定要删除所有者模板 "<strong>${this.getDisplayName(owner)}</strong>" 吗?<br><br>此操作将不可逆。`,
primaryAction: {
label: '删除',
variant: 'solid',
@ -843,7 +843,7 @@ export default {
params: { name: owner.name },
onSuccess: (response) => {
if (response.status === 'Success') {
toast.success('域名所有者模板删除成功!');
toast.success('所有者模板删除成功!');
this.fetchOwners(); //
hide();
} else {

View File

@ -3432,7 +3432,7 @@ def update_domain_owner(name, **data):
@jingrow.whitelist()
def delete_domain_owner(name):
"""删除域名所有者模板"""
"""删除所有者模板"""
try:
if not name:
return {"status": "Error", "message": "域名所有者名称不能为空"}
@ -3452,35 +3452,36 @@ def delete_domain_owner(name):
# 检查是否有 c_sysid西部数码模板标识
c_sysid = getattr(domain_owner, 'c_sysid', None)
if not c_sysid:
return {"status": "Error", "message": "域名所有者没有模板标识,无法删除"}
# 先删除西部数码的模板
# 如果有模板标识,先删除西部数码的模板
if c_sysid:
try:
client = get_west_client()
if not client:
return {"status": "Error", "message": "API客户端初始化失败"}
# 调用西部数码删除模板接口
west_result = client.delete_contact_template(c_sysid)
if west_result.get('result') != 200:
error_msg = west_result.get('msg', west_result.get('message', '所有者模板删除失败'))
return {"status": "Error", "message": f"所有者模板删除失败: {error_msg}"}
except Exception as e:
return {"status": "Error", "message": f"所有者模板删除失败: {str(e)}"}
# 删除本地记录(无论是否有模板标识)
try:
client = get_west_client()
if not client:
return {"status": "Error", "message": "API客户端初始化失败"}
domain_owner.delete(ignore_permissions=True)
jingrow.db.commit()
# 调用西部数码删除模板接口
west_result = client.delete_contact_template(c_sysid)
if west_result.get('result') != 200:
error_msg = west_result.get('msg', west_result.get('message', '所有者模板删除失败'))
return {"status": "Error", "message": f"所有者模板删除失败: {error_msg}"}
return {"status": "Success", "message": "所有者模板删除成功"}
except Exception as e:
return {"status": "Error", "message": f"所有者模板删除失败: {str(e)}"}
# 西部数码模板删除成功后,删除本地记录
try:
domain_owner.delete(ignore_permissions=True)
return {"status": "Success", "message": "域名所有者模板删除成功"}
except Exception as e:
return {"status": "Error", "message": f"本地记录删除失败: {str(e)}"}
except Exception as e:
return {"status": "Error", "message": f"删除失败: {str(e)}"}
return {"status": "Error", "message": f"所有者模板删除失败: {str(e)}"}
@jingrow.whitelist()