优化全局状态颜色映射为支持中文状态值,Jsite服务器列表状态和区域显示为中文

This commit is contained in:
jingrow 2025-07-29 13:19:25 +08:00
parent 71b62d9bdf
commit 77bc63da84
2 changed files with 127 additions and 57 deletions

View File

@ -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';
},
},
};

View File

@ -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 [