From 77bc63da84800129522f590c9a068ec93baadd33 Mon Sep 17 00:00:00 2001 From: jingrow Date: Tue, 29 Jul 2025 13:19:25 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=85=A8=E5=B1=80=E7=8A=B6?= =?UTF-8?q?=E6=80=81=E9=A2=9C=E8=89=B2=E6=98=A0=E5=B0=84=E4=B8=BA=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E4=B8=AD=E6=96=87=E7=8A=B6=E6=80=81=E5=80=BC=EF=BC=8C?= =?UTF-8?q?Jsite=E6=9C=8D=E5=8A=A1=E5=99=A8=E5=88=97=E8=A1=A8=E7=8A=B6?= =?UTF-8?q?=E6=80=81=E5=92=8C=E5=8C=BA=E5=9F=9F=E6=98=BE=E7=A4=BA=E4=B8=BA?= =?UTF-8?q?=E4=B8=AD=E6=96=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dashboard/src/components/global/Badge.vue | 75 ++++++++------- dashboard/src2/objects/jsite_server.js | 109 +++++++++++++++++----- 2 files changed, 127 insertions(+), 57 deletions(-) diff --git a/dashboard/src/components/global/Badge.vue b/dashboard/src/components/global/Badge.vue index a4bc03b..895ae13 100644 --- a/dashboard/src/components/global/Badge.vue +++ b/dashboard/src/components/global/Badge.vue @@ -22,42 +22,45 @@ export default { computed: { _color() { if (this.theme) return this.theme; - return { - Approved: 'green', - Recovering: 'orange', - Recovered: 'blue', - Broken: 'red', - Installing: 'orange', - Running: 'blue', - Pending: 'orange', - Failure: 'red', - Fatal: 'red', - Failed: 'red', - 'Update Available': 'blue', - Enabled: 'blue', - 'Awaiting Approval': 'orange', - 'Awaiting Deploy': 'orange', - Success: 'green', - Completed: 'green', - Deployed: 'green', - Expired: 'red', - Paid: 'green', - Unpaid: 'orange', - 'Invoice Created': 'blue', - Rejected: 'red', - 'In Review': 'orange', - 'Attention Required': 'red', - Active: 'green', - Trial: 'orange', - Published: 'green', - Owner: 'blue', - Primary: 'green', - 'Latest Deployed': 'orange', - 'Not Deployed': 'orange', - 'Action Required': 'red', - 'First Deploy': 'green', - 'Will be Uninstalled': 'red', - }[this.label]; + + // 状态配置数组 - 每个配置包含英文、中文、颜色三个属性 + const statusConfigs = [ + // 服务器状态 + { en: 'Pending', zh: '待处理', color: 'orange' }, + { en: 'Starting', zh: '启动中', color: 'orange' }, + { en: 'Running', zh: '运行中', color: 'green' }, + { en: 'Stopping', zh: '停止中', color: 'orange' }, + { en: 'Stopped', zh: '已停止', color: 'red' }, + { en: 'Resetting', zh: '重置中', color: 'blue' }, + { en: 'Upgrading', zh: '升级中', color: 'purple' }, + { en: 'Disabled', zh: '已禁用', color: 'gray' }, + + // 其他状态 + { en: 'Approved', zh: '已批准', color: 'green' }, + { en: 'Recovering', zh: '恢复中', color: 'orange' }, + { en: 'Recovered', zh: '已恢复', color: 'blue' }, + { en: 'Broken', zh: '损坏', color: 'red' }, + { en: 'Installing', zh: '安装中', color: 'orange' }, + { en: 'Failure', zh: '失败', color: 'red' }, + { en: 'Fatal', zh: '致命错误', color: 'red' }, + { en: 'Failed', zh: '失败', color: 'red' }, + { en: 'Success', zh: '成功', color: 'green' }, + { en: 'Completed', zh: '已完成', color: 'green' }, + { en: 'Deployed', zh: '已部署', color: 'green' }, + { en: 'Expired', zh: '已过期', color: 'red' }, + { en: 'Paid', zh: '已支付', color: 'green' }, + { en: 'Unpaid', zh: '未支付', color: 'orange' }, + { en: 'Rejected', zh: '已拒绝', color: 'red' }, + { en: 'Active', zh: '激活', color: 'green' }, + { en: 'Trial', zh: '试用', color: 'orange' }, + { en: 'Published', zh: '已发布', color: 'green' }, + { en: 'Owner', zh: '所有者', color: 'blue' }, + { en: 'Primary', zh: '主要', color: 'green' }, + ]; + + // 查找匹配的配置 + const config = statusConfigs.find(item => item.en === this.label || item.zh === this.label); + return config ? config.color : 'gray'; }, }, }; diff --git a/dashboard/src2/objects/jsite_server.js b/dashboard/src2/objects/jsite_server.js index 32035c6..9c0f326 100644 --- a/dashboard/src2/objects/jsite_server.js +++ b/dashboard/src2/objects/jsite_server.js @@ -46,7 +46,7 @@ export default { fieldname: 'status', options: [ { label: '', value: '' }, - { label: '待定', value: 'Pending' }, + { label: '待处理', value: 'Pending' }, { label: '启动中', value: 'Starting' }, { label: '运行中', value: 'Running' }, { label: '停止中', value: 'Stopping' }, @@ -62,13 +62,32 @@ export default { fieldname: 'region', options: [ { label: '', value: '' }, - { label: '中国大陆', value: '中国大陆' }, - { label: '中国香港', value: '中国香港' }, - { label: '美国-洛杉矶', value: '美国-洛杉矶' }, - { label: '新加坡', value: '新加坡' }, - { label: '英国-伦敦', value: '英国-伦敦' }, - { label: '德国-法兰克福', value: '德国-法兰克福' }, - { label: '阿联酋-迪拜', value: '阿联酋-迪拜' } + { label: '华北1(青岛)', value: 'cn-qingdao' }, + { label: '华北2(北京)', value: 'cn-beijing' }, + { label: '华北3(张家口)', value: 'cn-zhangjiakou' }, + { label: '华北5(呼和浩特)', value: 'cn-huhehaote' }, + { label: '华东1(杭州)', value: 'cn-hangzhou' }, + { label: '华东2(上海)', value: 'cn-shanghai' }, + { label: '华南1(深圳)', value: 'cn-shenzhen' }, + { label: '华南2(河源)', value: 'cn-heyuan' }, + { label: '西南1(成都)', value: 'cn-chengdu' }, + { label: '华南3(广州)', value: 'cn-guangzhou' }, + { label: '华北6(乌兰察布)', value: 'cn-wulanchabu' }, + { label: '华东5(南京)', value: 'cn-nanjing' }, + { label: '华东6(福州)', value: 'cn-fuzhou' }, + { label: '华中1(武汉)', value: 'cn-wuhan-lr' }, + { label: '中国香港', value: 'cn-hongkong' }, + { label: '新加坡', value: 'ap-southeast-1' }, + { label: '马来西亚(吉隆坡)', value: 'ap-southeast-3' }, + { label: '印度尼西亚(雅加达)', value: 'ap-southeast-5' }, + { label: '日本(东京)', value: 'ap-northeast-1' }, + { label: '美国(硅谷)', value: 'us-west-1' }, + { label: '美国(弗吉尼亚)', value: 'us-east-1' }, + { label: '德国(法兰克福)', value: 'eu-central-1' }, + { label: '英国(伦敦)', value: 'eu-west-1' }, + { label: '菲律宾(马尼拉)', value: 'ap-southeast-6' }, + { label: '泰国(曼谷)', value: 'ap-southeast-7' }, + { label: '韩国(首尔)', value: 'ap-northeast-2' } ] } ]; @@ -89,7 +108,20 @@ export default { label: '状态', fieldname: 'status', type: 'Badge', - width: 0.8 + width: 0.8, + format(value) { + const statusMap = { + 'Pending': '待处理', + 'Starting': '启动中', + 'Running': '运行中', + 'Stopping': '停止中', + 'Stopped': '已停止', + 'Resetting': '重置中', + 'Upgrading': '升级中', + 'Disabled': '已禁用' + }; + return statusMap[value] || value; + } }, { label: '配置', @@ -112,7 +144,40 @@ export default { label: '区域', fieldname: 'region', format(value) { - return value || '-'; + if (!value) return '-'; + + // 区域ID到中文名称的映射表 + const regionMap = { + 'cn-qingdao': '华北1(青岛)', + 'cn-beijing': '华北2(北京)', + 'cn-zhangjiakou': '华北3(张家口)', + 'cn-huhehaote': '华北5(呼和浩特)', + 'cn-hangzhou': '华东1(杭州)', + 'cn-shanghai': '华东2(上海)', + 'cn-shenzhen': '华南1(深圳)', + 'cn-heyuan': '华南2(河源)', + 'cn-chengdu': '西南1(成都)', + 'cn-guangzhou': '华南3(广州)', + 'cn-wulanchabu': '华北6(乌兰察布)', + 'cn-nanjing': '华东5(南京)', + 'cn-fuzhou': '华东6(福州)', + 'cn-wuhan-lr': '华中1(武汉)', + 'cn-hongkong': '中国香港', + 'ap-southeast-1': '新加坡', + 'ap-southeast-3': '马来西亚(吉隆坡)', + 'ap-southeast-5': '印度尼西亚(雅加达)', + 'ap-northeast-1': '日本(东京)', + 'us-west-1': '美国(硅谷)', + 'us-east-1': '美国(弗吉尼亚)', + 'eu-central-1': '德国(法兰克福)', + 'eu-west-1': '英国(伦敦)', + 'ap-southeast-6': '菲律宾(马尼拉)', + 'ap-southeast-7': '泰国(曼谷)', + 'ap-northeast-2': '韩国(首尔)' + }; + + // 如果是RegionId,返回对应的中文名称;如果已经是中文名称,直接返回 + return regionMap[value] || value; } }, { @@ -120,7 +185,7 @@ export default { fieldname: 'end_date', format(value) { if (!value) return '-'; - return new Date(value).toLocaleDateString('zh-CN'); + return value; } } ], @@ -135,17 +200,19 @@ export default { }, statusBadge({ documentResource: jsiteServer }) { const status = jsiteServer.pg?.status; - const statusConfig = { - Pending: { label: '待定', color: 'gray' }, - Starting: { label: '启动中', color: 'yellow' }, - Running: { label: '运行中', color: 'green' }, - Stopping: { label: '停止中', color: 'orange' }, - Stopped: { label: '已停止', color: 'red' }, - Resetting: { label: '重置中', color: 'blue' }, - Upgrading: { label: '升级中', color: 'purple' }, - Disabled: { label: '已禁用', color: 'gray' } + const statusMap = { + 'Pending': '待处理', + 'Starting': '启动中', + 'Running': '运行中', + 'Stopping': '停止中', + 'Stopped': '已停止', + 'Resetting': '重置中', + 'Upgrading': '升级中', + 'Disabled': '已禁用' + }; + return { + label: statusMap[status] || status }; - return statusConfig[status] || { label: status, color: 'gray' }; }, breadcrumbs({ documentResource: jsiteServer }) { return [