替换Domain详情页的中文文本为英文

This commit is contained in:
jingrow 2026-01-10 00:03:18 +08:00
parent 2881c0529e
commit 88b278499b
4 changed files with 286 additions and 178 deletions

View File

@ -6,7 +6,7 @@
<div class="flex gap-2"> <div class="flex gap-2">
<TextInput <TextInput
v-model="searchQuery" v-model="searchQuery"
placeholder="搜索所有者姓名、单位名称..." :placeholder="$t('Search owner name, company name...')"
class="flex-1" class="flex-1"
> >
<template #prefix> <template #prefix>
@ -17,9 +17,9 @@
v-model="selectedStatus" v-model="selectedStatus"
class="rounded-lg border border-gray-300 px-3 py-2 text-sm focus:border-blue-500 focus:ring-1 focus:ring-blue-500" class="rounded-lg border border-gray-300 px-3 py-2 text-sm focus:border-blue-500 focus:ring-1 focus:ring-blue-500"
> >
<option value="">全部状态</option> <option value="">{{ $t('All Status') }}</option>
<option value="1">已实名认证</option> <option value="1">{{ $t('Real-name Verified') }}</option>
<option value="0">未实名认证</option> <option value="0">{{ $t('Not Real-name Verified') }}</option>
</select> </select>
</div> </div>
</div> </div>
@ -28,7 +28,7 @@
@click="createDomainOwner" @click="createDomainOwner"
variant="solid" variant="solid"
iconLeft="plus" iconLeft="plus"
label="新建所有者模板" :label="$t('Create Owner Template')"
/> />
</div> </div>
</div> </div>
@ -37,16 +37,16 @@
<div class="rounded-lg border border-gray-200 bg-white my-4"> <div class="rounded-lg border border-gray-200 bg-white my-4">
<!-- 表头 --> <!-- 表头 -->
<div class="grid grid-cols-12 gap-4 border-b border-gray-200 bg-gray-50 px-6 py-3 text-sm font-medium text-gray-700"> <div class="grid grid-cols-12 gap-4 border-b border-gray-200 bg-gray-50 px-6 py-3 text-sm font-medium text-gray-700">
<div class="col-span-4">所有者名称</div> <div class="col-span-4">{{ $t('Owner Name') }}</div>
<div class="col-span-3">实名状态</div> <div class="col-span-3">{{ $t('Real-name Status') }}</div>
<div class="col-span-3">联系信息</div> <div class="col-span-3">{{ $t('Contact Information') }}</div>
<div class="col-span-2">操作</div> <div class="col-span-2">{{ $t('Actions') }}</div>
</div> </div>
<!-- 加载状态 --> <!-- 加载状态 -->
<div v-if="isLoading" class="flex items-center justify-center py-12"> <div v-if="isLoading" class="flex items-center justify-center py-12">
<Loader2Icon class="h-6 w-6 animate-spin text-gray-400" /> <Loader2Icon class="h-6 w-6 animate-spin text-gray-400" />
<span class="ml-2 text-gray-600">加载中...</span> <span class="ml-2 text-gray-600">{{ $t('Loading...') }}</span>
</div> </div>
<!-- 错误状态 --> <!-- 错误状态 -->
@ -58,8 +58,8 @@
<!-- 空状态 --> <!-- 空状态 -->
<div v-else-if="filteredOwners.length === 0" class="flex flex-col items-center justify-center py-12 text-gray-500"> <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" /> <UsersIcon class="mb-4 h-12 w-12 text-gray-300" />
<p class="text-lg font-medium">暂无所有者模板</p> <p class="text-lg font-medium">{{ $t('No owner templates yet') }}</p>
<p class="text-sm">点击上方按钮创建第一个模板</p> <p class="text-sm">{{ $t('Click the button above to create your first template') }}</p>
</div> </div>
<!-- 数据列表 --> <!-- 数据列表 -->
@ -93,7 +93,7 @@
variant="ghost" variant="ghost"
size="sm" size="sm"
class="text-blue-600 hover:text-blue-700" class="text-blue-600 hover:text-blue-700"
title="查看详情" :title="$t('View Details')"
> >
<EyeIcon class="h-4 w-4" /> <EyeIcon class="h-4 w-4" />
</Button> </Button>
@ -102,7 +102,7 @@
variant="ghost" variant="ghost"
size="sm" size="sm"
class="text-gray-600 hover:text-gray-700" class="text-gray-600 hover:text-gray-700"
title="编辑" :title="$t('Edit')"
> >
<EditIcon class="h-4 w-4" /> <EditIcon class="h-4 w-4" />
</Button> </Button>
@ -116,7 +116,7 @@
? 'text-gray-400 cursor-not-allowed' ? 'text-gray-400 cursor-not-allowed'
: 'text-red-600 hover:text-red-700' : 'text-red-600 hover:text-red-700'
]" ]"
:title="isTemplateUsed(owner) ? '该模板已关联域名,无法删除' : '删除'" :title="isTemplateUsed(owner) ? $t('This template is associated with domains and cannot be deleted') : $t('Delete')"
> >
<Trash2Icon class="h-4 w-4" /> <Trash2Icon class="h-4 w-4" />
</Button> </Button>
@ -128,9 +128,9 @@
<!-- 分页 --> <!-- 分页 -->
<div v-if="pagination.total > pagination.limit" class="flex flex-col items-center space-y-4"> <div v-if="pagination.total > pagination.limit" class="flex flex-col items-center space-y-4">
<div class="text-sm text-gray-700"> <div class="text-sm text-gray-700">
显示第 {{ (pagination.pageno - 1) * pagination.limit + 1 }} - {{ $t('Showing') }} {{ (pagination.pageno - 1) * pagination.limit + 1 }} -
{{ Math.min(pagination.pageno * pagination.limit, pagination.total) }} {{ Math.min(pagination.pageno * pagination.limit, pagination.total) }} {{ $t('of') }}
{{ pagination.total }} 条记录 {{ pagination.total }} {{ $t('records') }}
</div> </div>
<div class="flex items-center space-x-2"> <div class="flex items-center space-x-2">
<Button <Button
@ -185,7 +185,7 @@
<!-- 标题栏 --> <!-- 标题栏 -->
<div class="p-4 border-b border-gray-200 bg-white rounded-t-lg flex-shrink-0"> <div class="p-4 border-b border-gray-200 bg-white rounded-t-lg flex-shrink-0">
<div class="flex items-center justify-between"> <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">{{ $t('Owner Details') }}</h3>
<button <button
@click="closeDetailDialog" @click="closeDetailDialog"
class="text-gray-400 hover:text-gray-600 transition-colors duration-200" class="text-gray-400 hover:text-gray-600 transition-colors duration-200"
@ -202,22 +202,22 @@
<div class="space-y-6"> <div class="space-y-6">
<!-- 基本信息 --> <!-- 基本信息 -->
<div> <div>
<h4 class="text-base font-medium text-gray-900 mb-4">基本信息</h4> <h4 class="text-base font-medium text-gray-900 mb-4">{{ $t('Basic Information') }}</h4>
<div class="grid grid-cols-2 gap-4"> <div class="grid grid-cols-2 gap-4">
<div> <div>
<label class="block text-sm font-medium text-gray-700">所有者类型</label> <label class="block text-sm font-medium text-gray-700">{{ $t('Owner Type') }}</label>
<p class="mt-1 text-sm text-gray-900">{{ getOwnerTypeText(selectedOwner.c_regtype) }}</p> <p class="mt-1 text-sm text-gray-900">{{ getOwnerTypeText(selectedOwner.c_regtype) }}</p>
</div> </div>
<div> <div>
<label class="block text-sm font-medium text-gray-700">实名认证状态</label> <label class="block text-sm font-medium text-gray-700">{{ $t('Real-name Status') }}</label>
<p class="mt-1 text-sm text-gray-900">{{ getRealNameStatusText(selectedOwner.r_status) }}</p> <p class="mt-1 text-sm text-gray-900">{{ getRealNameStatusText(selectedOwner.r_status) }}</p>
</div> </div>
<div v-if="selectedOwner.c_regtype === 'E'"> <div v-if="selectedOwner.c_regtype === 'E'">
<label class="block text-sm font-medium text-gray-700">单位名称</label> <label class="block text-sm font-medium text-gray-700">{{ $t('Company Name') }}</label>
<p class="mt-1 text-sm text-gray-900">{{ selectedOwner.c_org_m || '-' }}</p> <p class="mt-1 text-sm text-gray-900">{{ selectedOwner.c_org_m || '-' }}</p>
</div> </div>
<div> <div>
<label class="block text-sm font-medium text-gray-700">姓名</label> <label class="block text-sm font-medium text-gray-700">{{ $t('Name') }}</label>
<p class="mt-1 text-sm text-gray-900">{{ getDisplayName(selectedOwner) }}</p> <p class="mt-1 text-sm text-gray-900">{{ getDisplayName(selectedOwner) }}</p>
</div> </div>
</div> </div>
@ -225,26 +225,26 @@
<!-- 联系信息 --> <!-- 联系信息 -->
<div> <div>
<h4 class="text-base font-medium text-gray-900 mb-4">联系信息</h4> <h4 class="text-base font-medium text-gray-900 mb-4">{{ $t('Contact Information') }}</h4>
<div class="grid grid-cols-2 gap-4"> <div class="grid grid-cols-2 gap-4">
<div> <div>
<label class="block text-sm font-medium text-gray-700">电子邮箱</label> <label class="block text-sm font-medium text-gray-700">{{ $t('Email') }}</label>
<p class="mt-1 text-sm text-gray-900">{{ selectedOwner.c_em || '-' }}</p> <p class="mt-1 text-sm text-gray-900">{{ selectedOwner.c_em || '-' }}</p>
</div> </div>
<div> <div>
<label class="block text-sm font-medium text-gray-700">手机号码</label> <label class="block text-sm font-medium text-gray-700">{{ $t('Phone Number') }}</label>
<p class="mt-1 text-sm text-gray-900">{{ selectedOwner.c_ph || '-' }}</p> <p class="mt-1 text-sm text-gray-900">{{ selectedOwner.c_ph || '-' }}</p>
</div> </div>
<div> <div>
<label class="block text-sm font-medium text-gray-700">省份</label> <label class="block text-sm font-medium text-gray-700">{{ $t('Province') }}</label>
<p class="mt-1 text-sm text-gray-900">{{ selectedOwner.c_st_m || '-' }}</p> <p class="mt-1 text-sm text-gray-900">{{ selectedOwner.c_st_m || '-' }}</p>
</div> </div>
<div> <div>
<label class="block text-sm font-medium text-gray-700">城市</label> <label class="block text-sm font-medium text-gray-700">{{ $t('City') }}</label>
<p class="mt-1 text-sm text-gray-900">{{ selectedOwner.c_ct_m || '-' }}</p> <p class="mt-1 text-sm text-gray-900">{{ selectedOwner.c_ct_m || '-' }}</p>
</div> </div>
<div class="col-span-2"> <div class="col-span-2">
<label class="block text-sm font-medium text-gray-700">通讯地址</label> <label class="block text-sm font-medium text-gray-700">{{ $t('Address') }}</label>
<p class="mt-1 text-sm text-gray-900">{{ selectedOwner.c_adr_m || '-' }}</p> <p class="mt-1 text-sm text-gray-900">{{ selectedOwner.c_adr_m || '-' }}</p>
</div> </div>
</div> </div>
@ -252,14 +252,14 @@
<!-- 证件信息 --> <!-- 证件信息 -->
<div> <div>
<h4 class="text-base font-medium text-gray-900 mb-4">证件信息</h4> <h4 class="text-base font-medium text-gray-900 mb-4">{{ $t('ID Information') }}</h4>
<div class="grid grid-cols-2 gap-4"> <div class="grid grid-cols-2 gap-4">
<div> <div>
<label class="block text-sm font-medium text-gray-700">证件类型</label> <label class="block text-sm font-medium text-gray-700">{{ $t('ID Type') }}</label>
<p class="mt-1 text-sm text-gray-900">{{ getCertificateTypeName(selectedOwner.c_idtype_gswl) }}</p> <p class="mt-1 text-sm text-gray-900">{{ getCertificateTypeName(selectedOwner.c_idtype_gswl) }}</p>
</div> </div>
<div> <div>
<label class="block text-sm font-medium text-gray-700">证件号码</label> <label class="block text-sm font-medium text-gray-700">{{ $t('ID Number') }}</label>
<p class="mt-1 text-sm text-gray-900">{{ selectedOwner.c_idnum_gswl || '-' }}</p> <p class="mt-1 text-sm text-gray-900">{{ selectedOwner.c_idnum_gswl || '-' }}</p>
</div> </div>
</div> </div>
@ -274,13 +274,13 @@
@click="closeDetailDialog" @click="closeDetailDialog"
variant="outline" variant="outline"
> >
关闭 {{ $t('Close') }}
</Button> </Button>
<Button <Button
@click="editOwner(selectedOwner)" @click="editOwner(selectedOwner)"
variant="solid" variant="solid"
> >
编辑 {{ $t('Edit') }}
</Button> </Button>
</div> </div>
</div> </div>
@ -293,7 +293,7 @@
<!-- 标题栏 --> <!-- 标题栏 -->
<div class="p-4 border-b border-gray-200 bg-white rounded-t-lg flex-shrink-0"> <div class="p-4 border-b border-gray-200 bg-white rounded-t-lg flex-shrink-0">
<div class="flex items-center justify-between"> <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">{{ $t('Edit Domain Owner') }}</h3>
<button <button
@click="closeEditDialog" @click="closeEditDialog"
class="text-gray-400 hover:text-gray-600 transition-colors duration-200" class="text-gray-400 hover:text-gray-600 transition-colors duration-200"
@ -310,7 +310,7 @@
<form @submit.prevent="handleEditSubmit" class="space-y-6"> <form @submit.prevent="handleEditSubmit" class="space-y-6">
<!-- 所有者类型 --> <!-- 所有者类型 -->
<div> <div>
<label class="block text-sm font-medium text-gray-700 mb-2">所有者类型</label> <label class="block text-sm font-medium text-gray-700 mb-2">{{ $t('Owner Type') }}</label>
<div class="flex gap-4"> <div class="flex gap-4">
<label class="flex items-center"> <label class="flex items-center">
<input <input
@ -319,7 +319,7 @@
value="I" value="I"
class="mr-2" class="mr-2"
> >
<span class="text-sm">个人</span> <span class="text-sm">{{ $t('Individual') }}</span>
</label> </label>
<label class="flex items-center"> <label class="flex items-center">
<input <input
@ -328,7 +328,7 @@
value="E" value="E"
class="mr-2" class="mr-2"
> >
<span class="text-sm">企业/组织</span> <span class="text-sm">{{ $t('Enterprise/Organization') }}</span>
</label> </label>
</div> </div>
</div> </div>
@ -337,33 +337,33 @@
<div class="space-y-4"> <div class="space-y-4">
<!-- 单位名称企业时显示 --> <!-- 单位名称企业时显示 -->
<div v-if="editFormData.c_regtype === 'E'" class="w-full"> <div v-if="editFormData.c_regtype === 'E'" class="w-full">
<label class="block text-sm font-medium text-gray-700 mb-2">所有者单位名称</label> <label class="block text-sm font-medium text-gray-700 mb-2">{{ $t('Owner Company Name') }}</label>
<input <input
v-model="editFormData.c_org_m" v-model="editFormData.c_org_m"
type="text" type="text"
class="w-full border rounded-lg px-3 py-2 focus:ring-2 focus:ring-blue-500 focus:border-blue-500" class="w-full border rounded-lg px-3 py-2 focus:ring-2 focus:ring-blue-500 focus:border-blue-500"
placeholder="请输入单位名称" :placeholder="$t('Please enter company name')"
> >
</div> </div>
<!-- 姓名部分 --> <!-- 姓名部分 -->
<div class="grid grid-cols-1 md:grid-cols-2 gap-4"> <div class="grid grid-cols-1 md:grid-cols-2 gap-4">
<div> <div>
<label class="block text-sm font-medium text-gray-700 mb-2"></label> <label class="block text-sm font-medium text-gray-700 mb-2">{{ $t('Last Name') }}</label>
<input <input
v-model="editFormData.c_ln_m" v-model="editFormData.c_ln_m"
type="text" type="text"
class="w-full border rounded-lg px-3 py-2 focus:ring-2 focus:ring-blue-500 focus:border-blue-500" class="w-full border rounded-lg px-3 py-2 focus:ring-2 focus:ring-blue-500 focus:border-blue-500"
placeholder="请输入姓" :placeholder="$t('Please enter last name')"
> >
</div> </div>
<div> <div>
<label class="block text-sm font-medium text-gray-700 mb-2"></label> <label class="block text-sm font-medium text-gray-700 mb-2">{{ $t('First Name') }}</label>
<input <input
v-model="editFormData.c_fn_m" v-model="editFormData.c_fn_m"
type="text" type="text"
class="w-full border rounded-lg px-3 py-2 focus:ring-2 focus:ring-blue-500 focus:border-blue-500" class="w-full border rounded-lg px-3 py-2 focus:ring-2 focus:ring-blue-500 focus:border-blue-500"
placeholder="请输入名" :placeholder="$t('Please enter first name')"
> >
</div> </div>
</div> </div>
@ -371,21 +371,21 @@
<!-- 联系信息 --> <!-- 联系信息 -->
<div class="grid grid-cols-1 md:grid-cols-2 gap-4"> <div class="grid grid-cols-1 md:grid-cols-2 gap-4">
<div> <div>
<label class="block text-sm font-medium text-gray-700 mb-2">电子邮箱</label> <label class="block text-sm font-medium text-gray-700 mb-2">{{ $t('Email') }}</label>
<input <input
v-model="editFormData.c_em" v-model="editFormData.c_em"
type="email" type="email"
class="w-full border rounded-lg px-3 py-2 focus:ring-2 focus:ring-blue-500 focus:border-blue-500" class="w-full border rounded-lg px-3 py-2 focus:ring-2 focus:ring-blue-500 focus:border-blue-500"
placeholder="请输入电子邮箱" :placeholder="$t('Please enter email')"
> >
</div> </div>
<div> <div>
<label class="block text-sm font-medium text-gray-700 mb-2">手机号码</label> <label class="block text-sm font-medium text-gray-700 mb-2">{{ $t('Phone Number') }}</label>
<input <input
v-model="editFormData.c_ph" v-model="editFormData.c_ph"
type="tel" type="tel"
class="w-full border rounded-lg px-3 py-2 focus:ring-2 focus:ring-blue-500 focus:border-blue-500" class="w-full border rounded-lg px-3 py-2 focus:ring-2 focus:ring-blue-500 focus:border-blue-500"
placeholder="请输入手机号码" :placeholder="$t('Please enter phone number')"
> >
</div> </div>
</div> </div>
@ -393,41 +393,41 @@
<!-- 地址信息 --> <!-- 地址信息 -->
<div class="grid grid-cols-1 md:grid-cols-3 gap-4"> <div class="grid grid-cols-1 md:grid-cols-3 gap-4">
<div> <div>
<label class="block text-sm font-medium text-gray-700 mb-2">省份</label> <label class="block text-sm font-medium text-gray-700 mb-2">{{ $t('Province') }}</label>
<input <input
v-model="editFormData.c_st_m" v-model="editFormData.c_st_m"
type="text" type="text"
class="w-full border rounded-lg px-3 py-2 focus:ring-2 focus:ring-blue-500 focus:border-blue-500" class="w-full border rounded-lg px-3 py-2 focus:ring-2 focus:ring-blue-500 focus:border-blue-500"
placeholder="请输入省份" :placeholder="$t('Please enter province')"
> >
</div> </div>
<div> <div>
<label class="block text-sm font-medium text-gray-700 mb-2">城市</label> <label class="block text-sm font-medium text-gray-700 mb-2">{{ $t('City') }}</label>
<input <input
v-model="editFormData.c_ct_m" v-model="editFormData.c_ct_m"
type="text" type="text"
class="w-full border rounded-lg px-3 py-2 focus:ring-2 focus:ring-blue-500 focus:border-blue-500" class="w-full border rounded-lg px-3 py-2 focus:ring-2 focus:ring-blue-500 focus:border-blue-500"
placeholder="请输入城市" :placeholder="$t('Please enter city')"
> >
</div> </div>
<div> <div>
<label class="block text-sm font-medium text-gray-700 mb-2">邮编</label> <label class="block text-sm font-medium text-gray-700 mb-2">{{ $t('Postal Code') }}</label>
<input <input
v-model="editFormData.c_pc" v-model="editFormData.c_pc"
type="text" type="text"
class="w-full border rounded-lg px-3 py-2 focus:ring-2 focus:ring-blue-500 focus:border-blue-500" class="w-full border rounded-lg px-3 py-2 focus:ring-2 focus:ring-blue-500 focus:border-blue-500"
placeholder="请输入邮编" :placeholder="$t('Please enter postal code')"
> >
</div> </div>
</div> </div>
<div> <div>
<label class="block text-sm font-medium text-gray-700 mb-2">通讯地址</label> <label class="block text-sm font-medium text-gray-700 mb-2">{{ $t('Address') }}</label>
<input <input
v-model="editFormData.c_adr_m" v-model="editFormData.c_adr_m"
type="text" type="text"
class="w-full border rounded-lg px-3 py-2 focus:ring-2 focus:ring-blue-500 focus:border-blue-500" class="w-full border rounded-lg px-3 py-2 focus:ring-2 focus:ring-blue-500 focus:border-blue-500"
placeholder="请输入通讯地址" :placeholder="$t('Please enter address')"
> >
</div> </div>
</div> </div>
@ -441,14 +441,14 @@
@click="closeEditDialog" @click="closeEditDialog"
variant="outline" variant="outline"
> >
取消 {{ $t('Cancel') }}
</Button> </Button>
<Button <Button
@click="handleEditSubmit" @click="handleEditSubmit"
:loading="editLoading" :loading="editLoading"
variant="solid" variant="solid"
> >
保存 {{ $t('Save') }}
</Button> </Button>
</div> </div>
</div> </div>
@ -559,29 +559,29 @@ export default {
// //
getRealNameStatusText(status) { getRealNameStatusText(status) {
if (!status || status === '') { if (!status || status === '') {
return '未实名认证'; return this.$t('Not Real-name Verified');
} }
// r_status // r_status
// 0: , 1: , 2: , 3: , 4: , 5: // 0: , 1: , 2: , 3: , 4: , 5:
const statusMap = { const statusMap = {
'0': '未实名认证', '0': this.$t('Not Real-name Verified'),
'1': '已实名认证', '1': this.$t('Real-name Verified'),
'2': '实名认证中', '2': this.$t('Real-name Verification in Progress'),
'3': '实名认证失败', '3': this.$t('Real-name Verification Failed'),
'4': '实名认证过期', '4': this.$t('Real-name Verification Expired'),
'5': '待审核' '5': this.$t('Pending Review')
}; };
return statusMap[status] || '未实名认证'; return statusMap[status] || this.$t('Not Real-name Verified');
}, },
// //
getOwnerTypeText(type) { getOwnerTypeText(type) {
if (!type || type === '') return '未知'; if (!type || type === '') return this.$t('Unknown');
const typeMap = { const typeMap = {
'I': '个人', 'I': this.$t('Individual'),
'E': '企业/组织' 'E': this.$t('Enterprise/Organization')
}; };
return typeMap[type] || '未知'; return typeMap[type] || this.$t('Unknown');
}, },
// //
@ -597,25 +597,25 @@ export default {
getCertificateTypeName(type) { getCertificateTypeName(type) {
const typeMap = { const typeMap = {
// //
'SFZ': '身份证', 'SFZ': this.$t('ID Card'),
'HZ': '护照', 'HZ': this.$t('Passport'),
'GAJMTX': '港澳居民来往内地通行证', 'GAJMTX': this.$t('Mainland Travel Permit for Hong Kong and Macao Residents'),
'TWJMTX': '台湾居民来往大陆通行证', 'TWJMTX': this.$t('Mainland Travel Permit for Taiwan Residents'),
'WJLSFZ': '外国人永久居留身份证', 'WJLSFZ': this.$t('Permanent Residence ID Card for Foreigners'),
'GAJZZ': '港澳台居民居住证', 'GAJZZ': this.$t('Residence Permit for Hong Kong, Macao and Taiwan Residents'),
'ORG': '组织机构代码证', 'ORG': this.$t('Organization Code Certificate'),
'YYZZ': '工商营业执照', 'YYZZ': this.$t('Business License'),
'TYDM': '统一社会信用代码', 'TYDM': this.$t('Unified Social Credit Code'),
// //
'1': '身份证', '1': this.$t('ID Card'),
'5': '护照', '5': this.$t('Passport'),
'6': '港澳居民来往内地通行证', '6': this.$t('Mainland Travel Permit for Hong Kong and Macao Residents'),
'11': '台湾居民来往大陆通行证', '11': this.$t('Mainland Travel Permit for Taiwan Residents'),
'12': '外国人永久居留身份证', '12': this.$t('Permanent Residence ID Card for Foreigners'),
'30': '港澳台居民居住证', '30': this.$t('Residence Permit for Hong Kong, Macao and Taiwan Residents'),
'2': '组织机构代码证', '2': this.$t('Organization Code Certificate'),
'3': '工商营业执照', '3': this.$t('Business License'),
'4': '统一社会信用代码' '4': this.$t('Unified Social Credit Code')
}; };
return typeMap[type] || type || '-'; return typeMap[type] || type || '-';
}, },

View File

@ -6,32 +6,32 @@
</div> </div>
<div class="flex gap-2"> <div class="flex gap-2">
<Button <Button
@click="refreshRecords" @click="refreshRecords"
:loading="$resources.dnsRecords.loading" :loading="$resources.dnsRecords.loading"
variant="outline" variant="outline"
size="sm" size="sm"
> >
<RefreshCwIcon class="h-4 w-4 mr-1" /> <RefreshCwIcon class="h-4 w-4 mr-1" />
刷新 {{ $t('Refresh') }}
</Button> </Button>
<Button <Button
v-if="selectedRecords.length > 0" v-if="selectedRecords.length > 0"
@click="batchDeleteRecords" @click="batchDeleteRecords"
variant="outline" variant="outline"
size="sm" size="sm"
class="text-red-600 hover:text-red-700" class="text-red-600 hover:text-red-700"
> >
<Trash2Icon class="h-4 w-4 mr-1" /> <Trash2Icon class="h-4 w-4 mr-1" />
删除选中 ({{ selectedRecords.length }}) {{ $t('Delete Selected') }} ({{ selectedRecords.length }})
</Button> </Button>
<Button <Button
@click="addNewRow" @click="addNewRow"
variant="solid" variant="solid"
size="sm" size="sm"
> >
<PlusIcon class="h-4 w-4 mr-1" /> <PlusIcon class="h-4 w-4 mr-1" />
添加记录 {{ $t('Add Record') }}
</Button> </Button>
</div> </div>
</div> </div>
@ -39,7 +39,7 @@
<div v-if="$resources.dnsRecords.loading" class="flex items-center justify-center py-12"> <div v-if="$resources.dnsRecords.loading" class="flex items-center justify-center py-12">
<div class="flex items-center space-x-2"> <div class="flex items-center space-x-2">
<Loader2Icon class="h-5 w-5 animate-spin text-gray-500" /> <Loader2Icon class="h-5 w-5 animate-spin text-gray-500" />
<span class="text-gray-500">正在加载DNS记录...</span> <span class="text-gray-500">{{ $t('Loading DNS records...') }}</span>
</div> </div>
</div> </div>
@ -48,7 +48,7 @@
<div class="flex items-center"> <div class="flex items-center">
<AlertCircleIcon class="h-5 w-5 text-red-400 mr-2" /> <AlertCircleIcon class="h-5 w-5 text-red-400 mr-2" />
<div> <div>
<h3 class="text-sm font-medium text-red-800">加载失败</h3> <h3 class="text-sm font-medium text-red-800">{{ $t('Load failed') }}</h3>
<p class="text-sm text-red-700 mt-1">{{ $resources.dnsRecords.error }}</p> <p class="text-sm text-red-700 mt-1">{{ $resources.dnsRecords.error }}</p>
</div> </div>
</div> </div>
@ -70,31 +70,31 @@
/> />
</th> </th>
<th class="px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider"> <th class="px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
编号 {{ $t('Number') }}
</th> </th>
<th class="px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider"> <th class="px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
主机名 * {{ $t('Hostname') }} *
</th> </th>
<th class="px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider"> <th class="px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
类型 * {{ $t('Type') }} *
</th> </th>
<th class="px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider"> <th class="px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
线路 {{ $t('Line') }}
</th> </th>
<th class="px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider"> <th class="px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
对应值 * {{ $t('Value') }} *
</th> </th>
<th class="px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider"> <th class="px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
TTL {{ $t('TTL') }}
</th> </th>
<th class="px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider"> <th class="px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
优先级 {{ $t('Priority') }}
</th> </th>
<th class="px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider"> <th class="px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
状态 {{ $t('Status') }}
</th> </th>
<th class="px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider"> <th class="px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
操作 {{ $t('Actions') }}
</th> </th>
</tr> </tr>
</thead> </thead>
@ -121,7 +121,7 @@
type="text" type="text"
class="w-24 px-2 py-1 text-sm border border-gray-300 rounded focus:ring-2 focus:ring-blue-500 focus:border-blue-500" class="w-24 px-2 py-1 text-sm border border-gray-300 rounded focus:ring-2 focus:ring-blue-500 focus:border-blue-500"
:class="{ 'bg-gray-100 text-gray-500 cursor-not-allowed': !record.isNew }" :class="{ 'bg-gray-100 text-gray-500 cursor-not-allowed': !record.isNew }"
placeholder="主机名" :placeholder="$t('Hostname')"
:disabled="!record.isNew" :disabled="!record.isNew"
/> />
</div> </div>
@ -160,7 +160,7 @@
'bg-orange-100 text-orange-800': record.type === 'SRV', 'bg-orange-100 text-orange-800': record.type === 'SRV',
'bg-gray-100 text-gray-800': !record.type 'bg-gray-100 text-gray-800': !record.type
}"> }">
{{ record.type || '未知' }} {{ record.type || $t('Unknown') }}
</span> </span>
</div> </div>
</td> </td>
@ -171,12 +171,12 @@
v-model="record.line" v-model="record.line"
class="w-20 px-2 py-1 text-sm border border-gray-300 rounded focus:ring-2 focus:ring-blue-500 focus:border-blue-500" class="w-20 px-2 py-1 text-sm border border-gray-300 rounded focus:ring-2 focus:ring-blue-500 focus:border-blue-500"
> >
<option value="">默认</option> <option value="">{{ $t('Default') }}</option>
<option value="LTEL">电信</option> <option value="LTEL">{{ $t('Telecom') }}</option>
<option value="LCNC">联通</option> <option value="LCNC">{{ $t('Unicom') }}</option>
<option value="LMOB">移动</option> <option value="LMOB">{{ $t('Mobile') }}</option>
<option value="LEDU">教育网</option> <option value="LEDU">{{ $t('Education Network') }}</option>
<option value="LSEO">搜索引擎</option> <option value="LSEO">{{ $t('Search Engine') }}</option>
</select> </select>
</div> </div>
<div v-else class="text-sm text-gray-500"> <div v-else class="text-sm text-gray-500">
@ -190,7 +190,7 @@
v-model="record.value" v-model="record.value"
type="text" type="text"
class="w-32 px-2 py-1 text-sm border border-gray-300 rounded focus:ring-2 focus:ring-blue-500 focus:border-blue-500" class="w-32 px-2 py-1 text-sm border border-gray-300 rounded focus:ring-2 focus:ring-blue-500 focus:border-blue-500"
placeholder="记录值" :placeholder="$t('Record Value')"
/> />
</div> </div>
<div v-else class="text-sm text-gray-900 max-w-xs truncate" :title="record.value"> <div v-else class="text-sm text-gray-900 max-w-xs truncate" :title="record.value">
@ -229,7 +229,7 @@
</td> </td>
<td class="px-4 py-4 whitespace-nowrap text-sm"> <td class="px-4 py-4 whitespace-nowrap text-sm">
<span class="inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium bg-green-100 text-green-800"> <span class="inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium bg-green-100 text-green-800">
正常 {{ $t('Normal') }}
</span> </span>
</td> </td>
<td class="px-4 py-4 whitespace-nowrap text-sm"> <td class="px-4 py-4 whitespace-nowrap text-sm">
@ -241,7 +241,7 @@
size="sm" size="sm"
class="text-blue-600 hover:text-blue-700" class="text-blue-600 hover:text-blue-700"
> >
编辑 {{ $t('Edit') }}
</Button> </Button>
<Button <Button
v-if="record.editing" v-if="record.editing"
@ -250,7 +250,7 @@
size="sm" size="sm"
class="text-green-600 hover:text-green-700" class="text-green-600 hover:text-green-700"
> >
保存 {{ $t('Save') }}
</Button> </Button>
<Button <Button
v-if="record.editing" v-if="record.editing"
@ -259,7 +259,7 @@
size="sm" size="sm"
class="text-gray-600 hover:text-gray-700" class="text-gray-600 hover:text-gray-700"
> >
取消 {{ $t('Cancel') }}
</Button> </Button>
<Button <Button
v-if="!record.editing && !record.isNew" v-if="!record.editing && !record.isNew"
@ -268,7 +268,7 @@
size="sm" size="sm"
class="text-red-600 hover:text-red-700" class="text-red-600 hover:text-red-700"
> >
删除 {{ $t('Delete') }}
</Button> </Button>
</div> </div>
</td> </td>
@ -280,9 +280,9 @@
<!-- 分页 --> <!-- 分页 -->
<div v-if="pagination.total > pagination.limit" class="flex flex-col items-center space-y-4"> <div v-if="pagination.total > pagination.limit" class="flex flex-col items-center space-y-4">
<div class="text-sm text-gray-700"> <div class="text-sm text-gray-700">
显示第 {{ (pagination.pageno - 1) * pagination.limit + 1 }} - {{ $t('Showing') }} {{ (pagination.pageno - 1) * pagination.limit + 1 }} -
{{ Math.min(pagination.pageno * pagination.limit, pagination.total) }} {{ Math.min(pagination.pageno * pagination.limit, pagination.total) }} {{ $t('of') }}
{{ pagination.total }} 条记录 {{ pagination.total }} {{ $t('records') }}
</div> </div>
<div class="flex items-center space-x-2"> <div class="flex items-center space-x-2">
<Button <Button
@ -326,12 +326,12 @@
<!-- 空状态 --> <!-- 空状态 -->
<div v-else-if="!$resources.dnsRecords.loading && !$resources.dnsRecords.error && dnsRecords.length === 0" class="text-center py-12"> <div v-else-if="!$resources.dnsRecords.loading && !$resources.dnsRecords.error && dnsRecords.length === 0" class="text-center py-12">
<GlobeIcon class="mx-auto h-12 w-12 text-gray-400" /> <GlobeIcon class="mx-auto h-12 w-12 text-gray-400" />
<h3 class="mt-2 text-sm font-medium text-gray-900">暂无DNS记录</h3> <h3 class="mt-2 text-sm font-medium text-gray-900">{{ $t('No DNS records yet') }}</h3>
<p class="mt-1 text-sm text-gray-500">开始添加您的第一个DNS解析记录</p> <p class="mt-1 text-sm text-gray-500">{{ $t('Start adding your first DNS record') }}</p>
<div class="mt-6"> <div class="mt-6">
<Button @click="addNewRow" variant="solid"> <Button @click="addNewRow" variant="solid">
<PlusIcon class="h-4 w-4 mr-1" /> <PlusIcon class="h-4 w-4 mr-1" />
添加记录 {{ $t('Add Record') }}
</Button> </Button>
</div> </div>
</div> </div>
@ -450,12 +450,12 @@ export default {
// 线 // 线
getLineDisplayName(line) { getLineDisplayName(line) {
const lineMap = { const lineMap = {
'LTEL': '电信', 'LTEL': this.$t('Telecom'),
'LCNC': '联通', 'LCNC': this.$t('Unicom'),
'LMOB': '移动', 'LMOB': this.$t('Mobile'),
'LEDU': '教育网', 'LEDU': this.$t('Education Network'),
'LSEO': '搜索引擎', 'LSEO': this.$t('Search Engine'),
'': '默认' '': this.$t('Default')
}; };
return lineMap[line] || line; return lineMap[line] || line;
}, },

View File

@ -19,7 +19,7 @@
<svg class="mr-2 h-4 w-4 text-green-600" fill="currentColor" viewBox="0 0 20 20"> <svg class="mr-2 h-4 w-4 text-green-600" fill="currentColor" viewBox="0 0 20 20">
<path fill-rule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z" clip-rule="evenodd"></path> <path fill-rule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z" clip-rule="evenodd"></path>
</svg> </svg>
实名认证 {{ $t('Real-name Verified') }}
</div> </div>
<button <button
@click="showRealNameInfo" @click="showRealNameInfo"
@ -28,7 +28,7 @@
<svg class="mr-1.5 h-4 w-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"> <svg class="mr-1.5 h-4 w-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"></path> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"></path>
</svg> </svg>
查看认证信息 {{ $t('View Verification Information') }}
</button> </button>
</div> </div>
<div v-else class="flex items-center space-x-3"> <div v-else class="flex items-center space-x-3">
@ -36,13 +36,13 @@
<svg class="mr-2 h-4 w-4 text-amber-600" fill="currentColor" viewBox="0 0 20 20"> <svg class="mr-2 h-4 w-4 text-amber-600" fill="currentColor" viewBox="0 0 20 20">
<path fill-rule="evenodd" d="M8.257 3.099c.765-1.36 2.722-1.36 3.486 0l5.58 9.92c.75 1.334-.213 2.98-1.742 2.98H4.42c-1.53 0-2.493-1.646-1.743-2.98l5.58-9.92zM11 13a1 1 0 11-2 0 1 1 0 012 0zm-1-8a1 1 0 00-1 1v3a1 1 0 002 0V6a1 1 0 00-1-1z" clip-rule="evenodd"></path> <path fill-rule="evenodd" d="M8.257 3.099c.765-1.36 2.722-1.36 3.486 0l5.58 9.92c.75 1.334-.213 2.98-1.742 2.98H4.42c-1.53 0-2.493-1.646-1.743-2.98l5.58-9.92zM11 13a1 1 0 11-2 0 1 1 0 012 0zm-1-8a1 1 0 00-1 1v3a1 1 0 002 0V6a1 1 0 00-1-1z" clip-rule="evenodd"></path>
</svg> </svg>
待实名认证 {{ $t('Pending Real-name Verification') }}
</div> </div>
<button <button
@click="showUploadRealName" @click="showUploadRealName"
class="inline-flex items-center px-3 py-1.5 text-sm font-medium text-white bg-gradient-to-r from-blue-600 to-blue-700 hover:from-blue-700 hover:to-blue-800 rounded-lg transition-all duration-200 shadow-sm hover:shadow-md" class="inline-flex items-center px-3 py-1.5 text-sm font-medium text-white bg-gradient-to-r from-blue-600 to-blue-700 hover:from-blue-700 hover:to-blue-800 rounded-lg transition-all duration-200 shadow-sm hover:shadow-md"
> >
上传实名资料 {{ $t('Upload Real-name Documents') }}
</button> </button>
</div> </div>
</div> </div>
@ -51,7 +51,7 @@
<div v-if="$domain.pg.end_date" class="mt-2 inline-flex items-center rounded-full bg-amber-50 px-4 py-2 text-sm font-medium text-amber-800"> <div v-if="$domain.pg.end_date" class="mt-2 inline-flex items-center rounded-full bg-amber-50 px-4 py-2 text-sm font-medium text-amber-800">
<ClockIcon class="mr-1.5 h-4 w-4 text-amber-500" /> <ClockIcon class="mr-1.5 h-4 w-4 text-amber-500" />
到期时间{{ $format.date($domain.pg.end_date) }} {{ $t('Expiration Date') }}: {{ $format.date($domain.pg.end_date) }}
</div> </div>
</div> </div>
<div class="flex gap-2"> <div class="flex gap-2">
@ -60,7 +60,7 @@
:loading="$domain.renew?.loading" :loading="$domain.renew?.loading"
class="px-5 !bg-[#1fc76f] !hover:bg-[#1bb85f] !text-white" class="px-5 !bg-[#1fc76f] !hover:bg-[#1bb85f] !text-white"
> >
续费 {{ $t('Renew') }}
</Button> </Button>
</div> </div>
</div> </div>
@ -70,7 +70,7 @@
<!-- 域名信息 --> <!-- 域名信息 -->
<div class="rounded-md border"> <div class="rounded-md border">
<div class="h-12 border-b px-5 py-4"> <div class="h-12 border-b px-5 py-4">
<h2 class="text-lg font-medium text-gray-900">域名信息</h2> <h2 class="text-lg font-medium text-gray-900">{{ $t('Domain Information') }}</h2>
</div> </div>
<div> <div>
<div <div
@ -78,7 +78,7 @@
:key="info.label" :key="info.label"
class="flex items-center px-5 py-3 last:pb-5 even:bg-gray-50/70" class="flex items-center px-5 py-3 last:pb-5 even:bg-gray-50/70"
> >
<div class="w-1/3 text-base text-gray-600">{{ info.label }}</div> <div class="w-1/3 text-base text-gray-600">{{ $t(info.label) }}</div>
<div <div
class="flex w-2/3 items-center space-x-2 text-base text-gray-900" class="flex w-2/3 items-center space-x-2 text-base text-gray-900"
> >
@ -106,7 +106,7 @@
<!-- 操作 --> <!-- 操作 -->
<div class="rounded-md border"> <div class="rounded-md border">
<div class="h-12 border-b px-5 py-4"> <div class="h-12 border-b px-5 py-4">
<h2 class="text-lg font-medium text-gray-900">操作</h2> <h2 class="text-lg font-medium text-gray-900">{{ $t('Actions') }}</h2>
</div> </div>
<div class="p-5"> <div class="p-5">
<div class="flex flex-wrap gap-2"> <div class="flex flex-wrap gap-2">
@ -116,7 +116,7 @@
variant="outline" variant="outline"
class="bg-gray-100 text-gray-700 hover:bg-gray-200" class="bg-gray-100 text-gray-700 hover:bg-gray-200"
> >
修改DNS服务器 {{ $t('Modify DNS Servers') }}
</Button> </Button>
<!-- <Button <!-- <Button
@click="toggleAutoRenew" @click="toggleAutoRenew"
@ -133,32 +133,32 @@
<!-- DNS服务器信息 --> <!-- DNS服务器信息 -->
<div class="rounded-md border"> <div class="rounded-md border">
<div class="h-12 border-b px-5 py-4"> <div class="h-12 border-b px-5 py-4">
<h2 class="text-lg font-medium text-gray-900">DNS服务器</h2> <h2 class="text-lg font-medium text-gray-900">{{ $t('DNS Servers') }}</h2>
</div> </div>
<div class="p-5"> <div class="p-5">
<div class="space-y-3"> <div class="space-y-3">
<div class="flex justify-between"> <div class="flex justify-between">
<span class="text-gray-600">主DNS:</span> <span class="text-gray-600">{{ $t('Primary DNS') }}:</span>
<span class="font-mono text-gray-900">{{ $domain.pg.dns_host1 }}</span> <span class="font-mono text-gray-900">{{ $domain.pg.dns_host1 }}</span>
</div> </div>
<div class="flex justify-between"> <div class="flex justify-between">
<span class="text-gray-600">辅DNS:</span> <span class="text-gray-600">{{ $t('Secondary DNS') }}:</span>
<span class="font-mono text-gray-900">{{ $domain.pg.dns_host2 }}</span> <span class="font-mono text-gray-900">{{ $domain.pg.dns_host2 }}</span>
</div> </div>
<div class="flex justify-between"> <div class="flex justify-between">
<span class="text-gray-600">DNS3:</span> <span class="text-gray-600">{{ $t('DNS3') }}:</span>
<span class="font-mono text-gray-900">{{ $domain.pg.dns_host3 }}</span> <span class="font-mono text-gray-900">{{ $domain.pg.dns_host3 }}</span>
</div> </div>
<div class="flex justify-between"> <div class="flex justify-between">
<span class="text-gray-600">DNS4:</span> <span class="text-gray-600">{{ $t('DNS4') }}:</span>
<span class="font-mono text-gray-900">{{ $domain.pg.dns_host4 }}</span> <span class="font-mono text-gray-900">{{ $domain.pg.dns_host4 }}</span>
</div> </div>
<div class="flex justify-between"> <div class="flex justify-between">
<span class="text-gray-600">DNS5:</span> <span class="text-gray-600">{{ $t('DNS5') }}:</span>
<span class="font-mono text-gray-900">{{ $domain.pg.dns_host5 }}</span> <span class="font-mono text-gray-900">{{ $domain.pg.dns_host5 }}</span>
</div> </div>
<div class="flex justify-between"> <div class="flex justify-between">
<span class="text-gray-600">DNS6:</span> <span class="text-gray-600">{{ $t('DNS6') }}:</span>
<span class="font-mono text-gray-900">{{ $domain.pg.dns_host6 }}</span> <span class="font-mono text-gray-900">{{ $domain.pg.dns_host6 }}</span>
</div> </div>
</div> </div>
@ -202,12 +202,12 @@ export default {
methods: { methods: {
getStatusText(status) { getStatusText(status) {
const statusMap = { const statusMap = {
'ok': '正常', 'ok': this.$t('Normal'),
'clienthold': '锁定', 'clienthold': this.$t('Locked'),
'clientupdateprohibited': '更新锁定', 'clientupdateprohibited': this.$t('Update Locked'),
'clienttransferprohibited': '转移锁定', 'clienttransferprohibited': this.$t('Transfer Locked'),
'clientdeleteprohibited': '删除锁定', 'clientdeleteprohibited': this.$t('Delete Locked'),
'clientrenewprohibited': '续费锁定' 'clientrenewprohibited': this.$t('Renew Locked')
}; };
return statusMap[status] || status; return statusMap[status] || status;
}, },
@ -472,19 +472,19 @@ export default {
domainInformation() { domainInformation() {
return [ return [
{ {
label: '状态', label: 'Status',
value: this.getStatusText(this.$domain.pg?.status), value: this.getStatusText(this.$domain.pg?.status),
}, },
{ {
label: '域名', label: 'Domain',
value: this.$domain.pg?.domain, value: this.$domain.pg?.domain,
}, },
{ {
label: '注册时间', label: 'Registration Date',
value: this.$domain.pg?.registration_date, value: this.$domain.pg?.registration_date,
}, },
{ {
label: '所有者', label: 'Owner',
value: this.getOwnerDisplayName(), value: this.getOwnerDisplayName(),
}, },
]; ];

View File

@ -302,7 +302,115 @@ Signature,签名,
Sites,网站, Sites,网站,
Search,搜索, Search,搜索,
Search Sites,搜索站点, Search Sites,搜索站点,
Search owner name, company name...,搜索所有者姓名、单位名称...,搜索所有者姓名、单位名称...,
Site Update,站点更新, Site Update,站点更新,
Refresh,刷新,
Delete Selected,删除选中,
Add Record,添加记录,
Loading DNS records...,正在加载DNS记录...,
Load failed,加载失败,
Number,编号,
Hostname,主机名,
Type,类型,
Line,线路,
Value,对应值,
TTL,TTL,
Priority,优先级,
Status,状态,
Actions,操作,
Unknown,未知,
Record Value,记录值,
Normal,正常,
Edit,编辑,
Save,保存,
Cancel,取消,
Delete,删除,
Showing,显示,
of,,
records,条记录,
No DNS records yet,暂无DNS记录,
Start adding your first DNS record,开始添加您的第一个DNS解析记录,
Telecom,电信,
Unicom,联通,
Mobile,移动,
Education Network,教育网,
Search Engine,搜索引擎,
Default,默认,
All Status,全部状态,
Real-name Verified,实名认证,
View Verification Information,查看认证信息,
Pending Real-name Verification,待实名认证,
Upload Real-name Documents,上传实名资料,
Expiration Date,到期时间,
Renew,续费,
Domain Information,域名信息,
Status,状态,
Domain,域名,
Registration Date,注册时间,
Owner,所有者,
Actions,操作,
Modify DNS Servers,修改DNS服务器,
DNS Servers,DNS服务器,
Primary DNS,主DNS,
Secondary DNS,辅DNS,
DNS3,DNS3,
DNS4,DNS4,
DNS5,DNS5,
DNS6,DNS6,
Normal,正常,
Locked,锁定,
Update Locked,更新锁定,
Transfer Locked,转移锁定,
Delete Locked,删除锁定,
Renew Locked,续费锁定,
Not Real-name Verified,未实名认证,
Create Owner Template,新建所有者模板,
Owner Name,所有者名称,
Real-name Status,实名状态,
Contact Information,联系信息,
View Details,查看详情,
This template is associated with domains and cannot be deleted,该模板已关联域名,无法删除,
Owner Details,所有者详细信息,
Basic Information,基本信息,
Owner Type,所有者类型,
Company Name,单位名称,
Email,电子邮箱,
Phone Number,手机号码,
Province,省份,
City,城市,
ID Information,证件信息,
ID Type,证件类型,
ID Number,证件号码,
Close,关闭,
Edit Domain Owner,编辑域名所有者,
Individual,个人,
Enterprise/Organization,企业/组织,
Owner Company Name,所有者单位名称,
Please enter company name,请输入单位名称,
Last Name,,
First Name,,
Please enter last name,请输入姓,
Please enter first name,请输入名,
Please enter email,请输入电子邮箱,
Please enter phone number,请输入手机号码,
Please enter province,请输入省份,
Please enter city,请输入城市,
Postal Code,邮编,
Please enter postal code,请输入邮编,
Please enter address,请输入通讯地址,
Real-name Verification in Progress,实名认证中,
Real-name Verification Failed,实名认证失败,
Real-name Verification Expired,实名认证过期,
Pending Review,待审核,
ID Card,身份证,
Passport,护照,
Mainland Travel Permit for Hong Kong and Macao Residents,港澳居民来往内地通行证,
Mainland Travel Permit for Taiwan Residents,台湾居民来往大陆通行证,
Permanent Residence ID Card for Foreigners,外国人永久居留身份证,
Residence Permit for Hong Kong, Macao and Taiwan Residents,港澳台居民居住证,
Organization Code Certificate,组织机构代码证,
Business License,工商营业执照,
Unified Social Credit Code,统一社会信用代码,
Site update started,站点更新已启动, Site update started,站点更新已启动,
Size,尺寸, Size,尺寸,
Servers,服务器, Servers,服务器,

Can't render this file because it has a wrong number of fields in line 305.