You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
flow-playform-react/src/const/isdp/componentDeploy.ts

584 lines
12 KiB
TypeScript

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

import { globalOption, patternTrim } from '../globalOption';
/**
* 实例运行状态
*/
export const runStatusConstant = {
HEALTHY: 'healthy',
UNKNOWN: 'unknown',
RUN: 'run',
ERROR: 'error',
STOP: 'stop'
};
export const runStatusDic = [
{
label: '可用',
value: runStatusConstant.HEALTHY,
color: 'green'
},
{
label: '未知',
value: runStatusConstant.UNKNOWN,
color: 'gray'
},
{
// 部署 可停止
label: '运行',
value: runStatusConstant.RUN,
color: 'blue'
},
{
label: '异常',
value: runStatusConstant.ERROR,
color: 'orange'
},
{
// 部署 可启用
label: '停止',
value: runStatusConstant.STOP,
color: 'red'
}
];
export const runStatusMap = runStatusDic.reduce((obj, item) => {
obj[item.value] = item.label;
return obj;
}, {});
/**
* 组件运行状态
*/
export const startStatusConstant = {
RUN: 'run',
STOP: 'stop'
};
export const startStatusDic = [
{
label: '启用中',
value: startStatusConstant.RUN
},
{
label: '已下架',
value: startStatusConstant.STOP
}
];
export const startStatusMap = startStatusDic.reduce((obj, item) => {
obj[item.value] = item.label;
return obj;
}, {});
/**
* 组件编译状态
* BUILT_IDLE 空闲中
* BUILT_RUNNING 编译中
* BUILT_SUCCESS 编译成功
* BUILT_FAILED 编译失败
* BUILT_CANCELED 编译取消
* BUILT_NEVER 未编译
*/
export const compileStatusConstant = {
BUILT_IDLE: 'idle',
BUILT_RUNNING: 'running',
BUILT_SUCCESS: 'success',
BUILT_FAILED: 'failed',
BUILT_CANCELED: 'canceled',
BUILT_NEVER: 'never',
};
export const compileStatusDic = [
{
label: '未编译',
value: compileStatusConstant.BUILT_NEVER,
color: 'gray'
},
{
label: '空闲中',
value: compileStatusConstant.BUILT_IDLE,
color: 'blue'
},
{
label: '编译中',
value: compileStatusConstant.BUILT_RUNNING,
color: 'blue'
},
{
label: '编译成功',
value: compileStatusConstant.BUILT_SUCCESS,
color: 'green'
},
{
label: '编译失败',
value: compileStatusConstant.BUILT_FAILED,
color: 'red'
},
{
label: '编译取消',
value: compileStatusConstant.BUILT_CANCELED,
color: 'orange'
}
];
export const compileStatusMap = startStatusDic.reduce((obj, item) => {
obj[item.value] = item.label;
return obj;
}, {});
/**
* 实例运行类型
*/
export const runTypeConstant = {
LOCAL: 0,
ONLINE: 1
};
export const runTypeDic = [
{
label: '本地运行',
value: runTypeConstant.LOCAL
},
{
label: '线上运行',
value: runTypeConstant.ONLINE
}
];
export const option = {
...globalOption,
height: '300',
calcHeight: 30,
tip: false,
searchShow: false,
header: false,
viewBtn: false,
delBtn: false,
index: true,
menuWidth: 300,
addBtn: false,
editBtn: false,
submitText: '修改',
emptyText: '暂无数据',
span: 24,
column: [
{
label: 'id',
prop: 'id',
hide: true,
display: false
},
{
label: '标识',
prop: 'identifier',
type: 'input',
overHidden: true,
display: false
},
{
label: '实例名称',
prop: 'name',
type: 'input',
overHidden: true,
rules: [
{ required: true, message: '必须填写实例名称' },
{ max: 50, message: '实例名称不能超过50字符' }
]
},
{
label: '运行类型',
prop: 'runType',
type: 'input',
width: 80,
display: false,
dicData: runTypeDic
},
{
label: '运行状态',
prop: 'runStatus',
type: 'input',
width: 80,
dicData: runStatusDic,
display: false,
slot: true
},
{
label: '创建时间',
prop: 'createTime',
type: 'input',
// width: 160,
display: false
},
{
label: '实例描述',
prop: 'description',
type: 'textarea',
hide: true,
minRows: 3,
span: 24
}
]
};
export const instanceOption = {
...globalOption,
calcHeight: 'auto',
// height: '300',
// calcHeight: 30,
tip: false,
searchShow: false,
header: false,
viewBtn: false,
delBtn: false,
index: true,
menuWidth: 350,
addBtn: false,
editBtn: false,
submitText: '修改',
emptyText: '取消',
span: 24,
column: [
...option.column,
{
label: '图标',
prop: 'logoUrl',
type: 'upload',
hide: true,
listType: 'picture-img',
action: '/api/blade-isdp/fileSystem/fileUpload',
propsHttp: {
res: 'data',
url: 'link'
},
fileType: 'img',
limit: 1,
fileSize: 1024 * 10,
accept: 'image/png, image/jpeg, image/jpg'
// tip: '图片尺寸不超过300*300像素大小限制为1mb以内',
// rules: [{
// required: true,
// message: "请输入图片地址",
// trigger: "blur"
// }]
}
]
};
export const envConfigOption = {
...globalOption,
height: 300,
calcHeight: 30,
tip: false,
searchShow: false,
addBtn: false,
addRowBtn: false,
cellBtn: false,
index: true,
menuWidth: 80,
editBtn: false,
delBtn: false,
column: [
{
label: '启动项名称',
prop: 'name',
placeholder: '启动项名称',
formSlot: true,
rules: [
{ required: true, message: '启动项名称不能为空' },
{ max: 50, message: '启动项名称最长为50字符' }
],
width: 120,
span: 24,
cell: true
},
{
label: '参数名key',
prop: 'key',
formSlot: true,
rules: [
{ required: true, message: '请输入参数名key' },
{ max: 50, message: '参数名key最长为50字符' }
],
span: 24,
cell: true
},
{
label: '配置值',
prop: 'value',
span: 24,
formSlot: true,
rules: [{ max: 200, message: '配置值最长为200字符' }],
cell: true
},
{
label: '描述说明',
prop: 'desc',
type: 'input',
formSlot: true,
span: 24,
rules: [{ max: 200, message: '描述说明最长为200字符' }],
cell: true
}
// {
// label: "配置类型",
// prop: "unmodifiable",
// value: false,
// width: 80,
// dicData: [
// {
// label: "自定义配置",
// value: false
// },
// {
// label: "必须配置",
// value: true
// }
// ]
// },
]
};
export const addInstanceOption = {
...globalOption,
submitBtn: false,
emptyBtn: false,
column: [
{
label: '部署环境',
prop: 'environment',
type: 'select',
value: 'docker-env-prod',
// disabled: true,
dicData: [],
rules: [{ required: true, message: '请选择环境变量' }],
overHidden: true
},
{
label: '主机',
prop: 'deployEnvId',
type: 'select',
value: '',
props: {
label: 'name',
value: 'id',
desc: 'ip'
},
rules: [{ required: true, message: '请输入主机' }],
overHidden: true
},
{
label: 'CPU核数',
prop: 'cpuCount',
type: 'slider',
step: 1,
min: 1,
max: 12,
showStops: true,
marks: [1, 4, 8].reduce((obj, pre) => {
obj[pre] = pre + '核';
return obj;
}, {})
},
// {
// label: "容器名称",
// prop: "containerName",
// tip: "为空时自动生成",
// rules: [
// { min: 1, max: 63, message: "容器名称长度为1-63个字符" },
// patternTrim,
// ],
// },
{
label: '是否使用GPU',
prop: 'useGpu',
type: 'switch',
labelWidth: 100,
value: false,
dicData: [
{ label: '否', value: false },
{ label: '是', value: true }
]
},
{
label: '最大内存',
prop: 'memory',
type: 'slider',
step: 64,
min: 64,
max: 8192,
formSlot: true,
span: 24,
marks: {
64: '64MB',
1024: '1GB',
2048: '2GB',
4096: '4GB',
6144: '6GB'
},
showStops: true
},
// 网络模式 选择框
{
label: '网络模式',
prop: 'networkType',
type: 'select',
span: 6,
value: 'bridge',
dicData: [
{
label: '桥接模式',
value: 'bridge'
},
{
label: '主机模式',
value: 'host'
},
{
label: '禁用网络',
value: 'null'
}
],
rules: [{ required: true, message: '请选择网络模式' }],
overHidden: true
},
// 网卡
{
label: '网卡',
prop: 'networkMode',
type: 'select',
value: 'bridge',
span: 9,
overHidden: true,
rules: [{ required: true, message: '请选择网卡' }]
},
// ip
{
label: 'IP',
prop: 'ipv4Address',
type: 'input',
formSlot: true,
value: '',
overHidden: true,
span: 9
},
{
label: '端口映射',
prop: 'ports',
type: 'dynamic',
span: 24,
children: {
height: 120,
column: [
{
label: '主机端口',
prop: 'hostPort',
type: 'number',
value: '80',
max: 65535,
rules: [{ required: true, message: '请输入主机端口' }]
},
{
label: '容器端口',
prop: 'containerPort',
type: 'number',
max: 65535,
rules: [{ required: true, message: '请输入容器端口' }]
},
{
label: '备注',
prop: 'remake',
type: 'input',
value: ''
}
]
}
},
{
label: '目录挂载',
prop: 'volumes',
type: 'dynamic',
span: 24,
children: {
height: 170,
column: [
{
label: '主机路径',
prop: 'hostPath',
type: 'input',
value: '',
rules: [{ required: true, message: '请输入主机路径' }, patternTrim]
},
{
label: '容器路径',
prop: 'containerPath',
type: 'input',
value: '',
rules: [{ required: true, message: '请输入容器路径' }, patternTrim]
},
{
label: '备注',
prop: 'remake',
type: 'input'
}
]
}
},
{
// 设备挂载
label: '设备挂载',
prop: 'devices',
type: 'dynamic',
span: 24,
children: {
height: 120,
column: [
{
label: '主机路径',
prop: 'hostPath',
type: 'input',
value: '',
rules: [{ required: true, message: '请输入主机路径' }, patternTrim]
},
{
label: '容器路径',
prop: 'containerPath',
type: 'input',
value: '',
rules: [{ required: true, message: '请输入容器路径' }, patternTrim]
},
{
label: '权限',
prop: 'permissions',
type: 'select',
value: 'rwm',
dicData: [
{ value: 'rwm', label: 'rwm' },
{ value: 'rw', label: 'rw' },
{ value: 'r', label: 'r' }
],
rules: [{ required: true, message: '请输入权限' }]
},
{
label: '备注',
prop: 'remake',
type: 'input',
value: ''
}
]
}
},
// 重启策略
{
label: '重启策略',
prop: 'restartPolicy',
type: 'select',
span: 6,
display: false,
hide: true,
value: 'always',
dicData: [
{
label: '始终',
value: 'always'
},
{
label: '失败',
value: 'on-failure'
},
{
label: '无',
value: 'no'
}
],
overHidden: true
}
]
};