#4775 #4619、#4732、#4708、#4733

Merged
chenyifan01 merged 14 commits from fix-csh into V20231018 6 months ago
  1. +1
    -0
      entity/ai_task.go
  2. +1
    -0
      models/cloudbrain.go
  3. +7
    -5
      models/resource_queue.go
  4. +3
    -0
      services/ai_task_service/task/opt_handler.go
  5. +1
    -0
      services/ai_task_service/task/task_service.go
  6. +3
    -1
      web_src/vuepages/apis/modules/modelbase.js
  7. +19
    -4
      web_src/vuepages/components/cloudbrain/details/ConfigInfo.vue
  8. +2
    -1
      web_src/vuepages/langs/config/en-US.js
  9. +2
    -1
      web_src/vuepages/langs/config/zh-CN.js
  10. +92
    -92
      web_src/vuepages/pages/cloudbrain/configs.js
  11. +13
    -5
      web_src/vuepages/pages/cloudbrain/create/index.vue
  12. +1
    -0
      web_src/vuepages/pages/modelbase/model/index.vue
  13. +27
    -33
      web_src/vuepages/pages/modelmanage/local/index.vue
  14. +10
    -3
      web_src/vuepages/pages/modelmanage/settings/index.vue
  15. +1
    -1
      web_src/vuepages/pages/resources/scene/index.vue
  16. +1
    -1
      web_src/vuepages/pages/resources/specification/index.vue

+ 1
- 0
entity/ai_task.go View File

@@ -143,6 +143,7 @@ type AITaskDetailInfo struct {
FailedReason string `json:"failed_reason"`
UserId int64 `json:"-"`
AppName string `json:"app_name"`
HasInternet int `json:"has_internet"`
}

func (a *AITaskDetailInfo) Tr(language string) {


+ 1
- 0
models/cloudbrain.go View File

@@ -310,6 +310,7 @@ type Cloudbrain struct {
Spec *Specification `xorm:"-"`
Config *CloudbrainConfig `xorm:"-"`
AppName string //超算任务的应用类型
HasInternet int
}

type CloudbrainShow struct {


+ 7
- 5
models/resource_queue.go View File

@@ -100,11 +100,13 @@ type ResourceQueueListRes struct {
}

type ResourceQueueCodesRes struct {
ID int64
QueueCode string
Cluster string
AiCenterCode string
AiCenterName string
ID int64
QueueCode string
Cluster string
AiCenterCode string
AiCenterName string
ComputeResource string
AccCardType string
}

func (ResourceQueueCodesRes) TableName() string {


+ 3
- 0
services/ai_task_service/task/opt_handler.go View File

@@ -107,6 +107,7 @@ func (DefaultCreationHandler) BuildRequest4Restart(ctx *context.CreationContext)
IsFileNoteBookRequest: task.BootFile != "",
IsRestartRequest: true,
DatasetNames: task.DatasetName,
HasInternet: models.SpecInternetQuery(task.HasInternet),
}
log.Info("BuildRequest4Restart success.displayJobName=%s jobType=%s cluster=%s", ctx.Request.DisplayJobName, ctx.Request.JobType, ctx.Request.Cluster)
return nil
@@ -422,6 +423,7 @@ func (DefaultCreationHandler) InsertCloudbrainRecord4Async(ctx *context.Creation
UpdatedUnix: timeutil.TimeStampNow(),
GpuQueue: ctx.Spec.QueueCode,
AppName: req.AppName,
HasInternet: int(req.HasInternet),
}

err := models.CreateCloudbrain(c)
@@ -595,6 +597,7 @@ func (DefaultCreationHandler) CreateCloudbrainRecord4Restart(ctx *context.Creati
SubTaskName: models.SubTaskName,
ModelId: req.PretrainModelId,
GpuQueue: ctx.Spec.QueueCode,
HasInternet: int(req.HasInternet),
}
err := models.RestartCloudbrain(ctx.SourceCloudbrain, c)



+ 1
- 0
services/ai_task_service/task/task_service.go View File

@@ -138,6 +138,7 @@ func buildAITaskInfo(task *models.Cloudbrain, creator *models.User, config *enti
EngineName: task.EngineName,
UserId: task.UserID,
AppName: task.AppName,
HasInternet: task.HasInternet,
}, nil
}



+ 3
- 1
web_src/vuepages/apis/modules/modelbase.js View File

@@ -52,13 +52,15 @@ export const stopTrainJob = (params) => {
url: `/api/v1/repos/${params.userName}/openi-notebook/modelarts/train-job/${params.jobId}/stop_version`,
method: 'post',
params: {},
data: {},
});
}

// 删除训练任务
export const deleteTrainJob = (params) => {
return service({
url: `/api/v1/repos/${params.userName}/openi-notebook/modelarts/train-job/${params.jobId}/del_version`,
// url: `/api/v1/repos/${params.userName}/openi-notebook/modelarts/train-job/${params.jobId}/del_version`,
url: `/api/v1/${params.userName}/openi-notebook/ai_task/del?id=${params.id}`,
method: 'post',
params: {},
});


+ 19
- 4
web_src/vuepages/components/cloudbrain/details/ConfigInfo.vue View File

@@ -1,15 +1,18 @@
<template>
<div class="item-container">
<template v-for="(item, index) in configs.fields">
<div :key="item + '-' + index" v-if="item != 'dataset' && item != 'modelList' && item != 'failedReason'" class="item-block">
<div :key="item + '-' + index" v-if="item != 'dataset' && item != 'modelList' && item != 'failedReason'"
class="item-block">
<div class="title"> {{ renderTitle(item) }} </div>
<div class="content" v-html="renderContent(item)"></div>
</div>
<div :key="item + '-' + index" v-if="item == 'failedReason' && renderContent(item)" class="item-block item-failed-reason">
<div :key="item + '-' + index" v-if="item == 'failedReason' && renderContent(item)"
class="item-block item-failed-reason">
<div class="title"> {{ renderTitle(item) }} </div>
<div class="content" v-html="renderContent(item)"></div>
</div>
<div :key="item + '-' + index" v-if="item == 'dataset' && data.task.dataset_list.length > 0" class="item-block item-dataset">
<div :key="item + '-' + index" v-if="item == 'dataset' && data.task.dataset_list.length > 0"
class="item-block item-dataset">
<div class="table-container">
<el-table ref="tableRef" :data="data.task.dataset_list" style="width:100%">
<el-table-column prop="FileName" :label="$t('cloudbrainObj.datasetFiles')"
@@ -41,7 +44,8 @@
</el-table>
</div>
</div>
<div :key="item + '-' + index" v-if="item == 'modelList' && data.task.pretrain_model_list.length > 0" class="item-block item-model-list">
<div :key="item + '-' + index" v-if="item == 'modelList' && data.task.pretrain_model_list.length > 0"
class="item-block item-model-list">
<div class="table-container">
<el-table ref="tableRef" :data="data.task.pretrain_model_list" style="width:100%">
<el-table-column prop="FileName" :label="$t('modelManage.modelFiles')"
@@ -142,6 +146,9 @@ export default {
case 'aiCenter':
result = i18n.t('resourcesManagement.aiCenter');
break;
case 'hasInternet':
result = i18n.t('cloudbrainObj.networkType');
break;
case 'creator':
result = i18n.t('modelManage.creator');
break;
@@ -260,6 +267,14 @@ export default {
case 'aiCenter':
result = task.ai_center;
break;
case 'hasInternet':
result = '--'
if (task.has_internet == 1) {
result = i18n.t('cloudbrainObj.noInternet');
} else if (task.has_internet == 2) {
result = i18n.t('cloudbrainObj.hasInternet');
}
break;
case 'branch':
result = `${task.branch_name}` + (task.commit_id ? `<span class="commit-id">${task.commit_id.slice(0, 10)}</span>` : '');
break;


+ 2
- 1
web_src/vuepages/langs/config/en-US.js View File

@@ -338,6 +338,7 @@ const en = {
modelAccess: 'Model Access',
modelAccessPublic: 'Public',
modelAccessPrivate: 'Private',
modelAccessTips: 'Only public projects can be set as public models',
modelSettings: 'Model Settings',
edit: 'Edit',
editFiles: 'Edit files',
@@ -561,7 +562,7 @@ const en = {
allNetworkType: 'All network',
noInternet: 'No',
hasInternet: 'Yes',
networkTypeDesc: '「Access Internet」Describe whether the computing resource center supports internet access',
networkTypeDesc: '「Access Internet」Describe whether the computing resource center supports internet access. When \'No\' is selected, more computing resource centers can be allocated, and the dataset and models on the OpenI platform can still be used.',
resourceSpec: 'Specification',
specPlaceholder: 'Select resource specification',
specDescr: 'Resource Note',


+ 2
- 1
web_src/vuepages/langs/config/zh-CN.js View File

@@ -354,6 +354,7 @@ const zh = {
modelAccess: '模型权限',
modelAccessPublic: '公开',
modelAccessPrivate: '私有',
modelAccessTips: '公开项目才可以设置模型为公开',
modelSettings: '模型信息设置',
edit: '编辑',
editFiles: '编辑文件',
@@ -577,7 +578,7 @@ const zh = {
allNetworkType: '全部网络',
noInternet: '否',
hasInternet: '是',
networkTypeDesc: '「访问Internet」是描述您的任务分配到的计算资源中心是否支持互联网访问情况',
networkTypeDesc: '「访问Internet」是描述您的任务分配到的计算资源中心是否支持互联网访问情况。选择“否”时可分配的计算资源中心更多,且依然可以使用启智平台上的数据集和模型。',
resourceSpec: '资源规格',
specPlaceholder: '请选择资源规格',
specDescr: '资源说明',


+ 92
- 92
web_src/vuepages/pages/cloudbrain/configs.js View File

@@ -579,14 +579,14 @@ export const DetailPageConfigs = {
fields: [
'taskName', 'imagev1',
'status', 'spec',
'creator', 'modelName',
'branch', 'modelVersion',
'computerRes', 'modelFiles',
'createTime', 'codePath',
'startTime', 'datasetPath',
'endTime', 'modelPath',
'duration', 'outputPath',
'descr', '',
'creator', 'hasInternet',
'branch', 'modelName',
'computerRes', 'modelVersion',
'createTime', 'modelFiles',
'startTime', 'codePath',
'endTime', 'datasetPath',
'duration', 'modelPath',
'descr', 'outputPath',
'failedReason',
'dataset',
'modelList',
@@ -604,10 +604,10 @@ export const DetailPageConfigs = {
fields: [
'taskName', 'imagev2',
'status', 'spec',
'creator', 'modelName',
'computerRes', 'modelVersion',
'createTime', 'modelFiles',
'startTime', '',
'creator', 'hasInternet',
'computerRes', 'modelName',
'createTime', 'modelVersion',
'startTime', 'modelFiles',
'endTime', '',
'duration', '',
'descr', '',
@@ -631,13 +631,13 @@ export const DetailPageConfigs = {
'taskName', 'imagev1',
'status', 'spec',
'creator', 'aiCenter',
'branch', 'modelName',
'computerRes', 'modelVersion',
'createTime', 'modelFiles',
'startTime', 'codePath',
'endTime', 'datasetPath',
'duration', 'modelPath',
'descr', '',
'branch', 'hasInternet',
'computerRes', 'modelName',
'createTime', 'modelVersion',
'startTime', 'modelFiles',
'endTime', 'codePath',
'duration', 'datasetPath',
'descr', 'modelPath',
'failedReason',
'dataset',
'modelList',
@@ -656,11 +656,11 @@ export const DetailPageConfigs = {
'taskName', 'imagev2',
'status', 'spec',
'creator', 'aiCenter',
'branch', 'modelName',
'computerRes', 'modelVersion',
'createTime', 'modelFiles',
'startTime', 'codeObsPath',
'endTime', '',
'branch', 'hasInternet',
'computerRes', 'modelName',
'createTime', 'modelVersion',
'startTime', 'modelFiles',
'endTime', 'codeObsPath',
'duration', '',
'descr', '',
'failedReason',
@@ -683,10 +683,10 @@ export const DetailPageConfigs = {
'taskName', 'imagev2',
'status', 'spec',
'creator', 'aiCenter',
'branch', 'modelName',
'computerRes', 'modelVersion',
'createTime', 'modelFiles',
'startTime', '',
'branch', 'hasInternet',
'computerRes', 'modelName',
'createTime', 'modelVersion',
'startTime', 'modelFiles',
'endTime', '',
'duration', '',
'descr', '',
@@ -708,10 +708,10 @@ export const DetailPageConfigs = {
'taskName', 'imagev2',
'status', 'spec',
'creator', 'aiCenter',
'branch', 'modelName',
'computerRes', 'modelVersion',
'createTime', 'modelFiles',
'startTime', '',
'branch', 'hasInternet',
'computerRes', 'modelName',
'createTime', 'modelVersion',
'startTime', 'modelFiles',
'endTime', '',
'duration', '',
'descr', '',
@@ -733,10 +733,10 @@ export const DetailPageConfigs = {
'taskName', 'imagev2',
'status', 'spec',
'creator', 'aiCenter',
'branch', 'modelName',
'computerRes', 'modelVersion',
'createTime', 'modelFiles',
'startTime', '',
'branch', 'hasInternet',
'computerRes', 'modelName',
'createTime', 'modelVersion',
'startTime', 'modelFiles',
'endTime', '',
'duration', '',
'descr', '',
@@ -758,10 +758,10 @@ export const DetailPageConfigs = {
'taskName', 'imagev2',
'status', 'spec',
'creator', 'aiCenter',
'branch', 'modelName',
'computerRes', 'modelVersion',
'createTime', 'modelFiles',
'startTime', '',
'branch', 'hasInternet',
'computerRes', 'modelName',
'createTime', 'modelVersion',
'startTime', 'modelFiles',
'endTime', '',
'duration', '',
'descr', '',
@@ -783,10 +783,10 @@ export const DetailPageConfigs = {
'taskName', 'imagev2',
'status', 'spec',
'creator', 'aiCenter',
'branch', 'modelName',
'computerRes', 'modelVersion',
'createTime', 'modelFiles',
'startTime', '',
'branch', 'hasInternet',
'computerRes', 'modelName',
'createTime', 'modelVersion',
'startTime', 'modelFiles',
'endTime', '',
'duration', '',
'descr', '',
@@ -814,12 +814,12 @@ export const DetailPageConfigs = {
fields: [
'taskName', 'imagev1',
'status', 'spec',
'creator', 'modelName',
'branch', 'modelVersion',
'computerRes', 'modelFiles',
'createTime', 'bootFile',
'startTime', 'runParameters',
'endTime', '',
'creator', 'hasInternet',
'branch', 'modelName',
'computerRes', 'modelVersion',
'createTime', 'modelFiles',
'startTime', 'bootFile',
'endTime', 'runParameters',
'duration', '',
'descr', '',
'failedReason',
@@ -843,13 +843,13 @@ export const DetailPageConfigs = {
fields: [
'taskName', 'imagev2',
'status', 'spec',
'creator', 'modelName',
'branch', 'modelVersion',
'computerRes', 'modelFiles',
'runVersion', 'bootFile',
'createTime', 'runParameters',
'startTime', 'workServerNum',
'endTime', '',
'creator', 'hasInternet',
'branch', 'modelName',
'computerRes', 'modelVersion',
'runVersion', 'modelFiles',
'createTime', 'bootFile',
'startTime', 'runParameters',
'endTime', 'workServerNum',
'duration', '',
'descr', '',
'failedReason',
@@ -878,13 +878,13 @@ export const DetailPageConfigs = {
'taskName', 'imagev1',
'status', 'spec',
'creator', 'aiCenter',
'branch', 'modelName',
'computerRes', 'modelVersion',
'runVersion', 'modelFiles',
'createTime', 'bootFile',
'startTime', 'runParameters',
'endTime', 'workServerNum',
'duration', '',
'branch', 'hasInternet',
'computerRes', 'modelName',
'runVersion', 'modelVersion',
'createTime', 'modelFiles',
'startTime', 'bootFile',
'endTime', 'runParameters',
'duration', 'workServerNum',
'descr', '',
'failedReason',
'dataset',
@@ -913,13 +913,13 @@ export const DetailPageConfigs = {
'taskName', 'imagev2',
'status', 'spec',
'creator', 'aiCenter',
'branch', 'modelName',
'computerRes', 'modelVersion',
'runVersion', 'modelFiles',
'createTime', 'bootFile',
'startTime', 'runParameters',
'endTime', 'workServerNum',
'duration', '',
'branch', 'hasInternet',
'computerRes', 'modelName',
'runVersion', 'modelVersion',
'createTime', 'modelFiles',
'startTime', 'bootFile',
'endTime', 'runParameters',
'duration', 'workServerNum',
'descr', '',
'failedReason',
'dataset',
@@ -948,13 +948,13 @@ export const DetailPageConfigs = {
'taskName', 'imagev2',
'status', 'spec',
'creator', 'aiCenter',
'branch', 'modelName',
'computerRes', 'modelVersion',
'runVersion', 'modelFiles',
'createTime', 'bootFile',
'startTime', 'runParameters',
'endTime', 'workServerNum',
'duration', '',
'branch', 'hasInternet',
'computerRes', 'modelName',
'runVersion', 'modelVersion',
'createTime', 'modelFiles',
'startTime', 'bootFile',
'endTime', 'runParameters',
'duration', 'workServerNum',
'descr', '',
'failedReason',
'dataset',
@@ -983,13 +983,13 @@ export const DetailPageConfigs = {
'taskName', 'imagev2',
'status', 'spec',
'creator', 'aiCenter',
'branch', 'modelName',
'computerRes', 'modelVersion',
'runVersion', 'modelFiles',
'createTime', 'bootFile',
'startTime', 'runParameters',
'endTime', 'workServerNum',
'duration', '',
'branch', 'hasInternet',
'computerRes', 'modelName',
'runVersion', 'modelVersion',
'createTime', 'modelFiles',
'startTime', 'bootFile',
'endTime', 'runParameters',
'duration', 'workServerNum',
'descr', '',
'failedReason',
'dataset',
@@ -1110,13 +1110,13 @@ export const DetailPageConfigs = {
'taskName', 'imagev1',
'status', 'spec',
'creator', 'aiCenter',
'branch', 'modelName',
'bootFile', 'modelVersion',
'computerRes', 'modelFiles',
'createTime', 'codePath',
'startTime', 'datasetPath',
'endTime', 'modelPath',
'duration', '',
'branch', 'hasInternet',
'bootFile', 'modelName',
'computerRes', 'modelVersion',
'createTime', 'modelFiles',
'startTime', 'codePath',
'endTime', 'datasetPath',
'duration', 'modelPath',
'descr', '',
'failedReason',
'dataset',


+ 13
- 5
web_src/vuepages/pages/cloudbrain/create/index.vue View File

@@ -329,12 +329,20 @@ export default {
this.state.branchName = '';
}
}
if (this.formCfg['spec'] && task.spec) {
if (this.formCfg['spec']) {
let networkType = 'all';
if (task.spec.has_internet == 1) {
networkType = 'no_internet';
} else if (task.spec.has_internet == 2) {
networkType = 'has_internet'
if (task.has_internet == 1 || task.has_internet == 2) {
if (task.has_internet == 1) {
networkType = 'no_internet';
} else if (task.has_internet == 2) {
networkType = 'has_internet'
}
} else if (task.spec) {
if (task.spec.has_internet == 1) {
networkType = 'no_internet';
} else if (task.spec.has_internet == 2) {
networkType = 'has_internet'
}
}
this.state.networkType = networkType;
this.$nextTick(() => { this.state.spec = ''; });


+ 1
- 0
web_src/vuepages/pages/modelbase/model/index.vue View File

@@ -257,6 +257,7 @@ export default {
deleteTrainJob({
userName: this.userName,
jobId: taskJob.job_id,
id: taskJob.id,
}).then(res => {
this.isOperating = false;
this.maskLoading = false;


+ 27
- 33
web_src/vuepages/pages/modelmanage/local/index.vue View File

@@ -62,22 +62,15 @@
:placeholder="$t('modelManage.modelLabelInputTips')" @input="labelInput"></el-input>
</div>
</div>
<div class="row" v-if="repoIsPrivate == false">
<div class="row">
<div class="r-title"><label>{{ $t('modelManage.modelAccess') }}</label></div>
<div class="field">
<div class="ui radio checkbox">
<input id="isPrivate_false" type="radio" name="isPrivate" checked="checked" value="false">
<label>{{ $t('modelManage.modelAccessPublic') }}</label>
</div>
</div>
<div class="field">
<label>&nbsp;&nbsp;</label>
</div>
<div class="field">
<div class="ui radio checkbox">
<input id="isPrivate_true" type="radio" name="isPrivate" value="true">
<label>{{ $t('modelManage.modelAccessPrivate') }}</label>
</div>
<div class="r-content">
<el-radio v-model="state.isPrivate" label="0" :disabled="repoIsPrivate">{{
$t('modelManage.modelAccessPublic') }}<span v-if="repoIsPrivate">
({{ $t('modelManage.modelAccessTips') }})</span>
</el-radio>
<el-radio v-model="state.isPrivate" label="1" :disabled="repoIsPrivate">{{
$t('modelManage.modelAccessPrivate') }}</el-radio>
</div>
</div>
<div class="row" style="align-items:flex-start;">
@@ -125,7 +118,7 @@ export default {
license: '',
label: '',
description: '',
isPrivate: false,
isPrivate: REPOISPRIVATE ? '1' : '0',
},
licenseList: [],
nameErr: false,
@@ -157,21 +150,12 @@ export default {
// });
return;
}
var radio = document.getElementsByName("isPrivate");
if (radio != null && radio.length > 0) {
for (var i = 0; i < radio.length; i++) {
if (radio[i].checked) {
this.state.isPrivate = radio[i].value;
}
}
} else {
this.state.isPrivate = true;
}
const submintApi = this.type == '1' ? modifyModel : saveLocalModel;
submintApi({
repo: location.pathname.split('/').slice(0, 3).join('/'),
...this.state,
label: this.state.label.split(/\s+/).join(' ').trim(),
isPrivate: (this.repoIsPrivate || this.state.isPrivate == 1) ? true : false,
}).then(res => {
res = res.data;
if (res && res.code == '0') {
@@ -234,13 +218,9 @@ export default {
this.state.engine = data.engine.toString();
this.state.label = data.label;
this.state.description = data.description;
this.state.isPrivate = data.isPrivate;
if (data.isPrivate) {
$('#isPrivate_true').attr("checked", true);
$('#isPrivate_false').attr("checked", false);
} else {
$('#isPrivate_true').attr("checked", false);
$('#isPrivate_false').attr("checked", true);
this.state.isPrivate = data.isPrivate ? '1' : '0';
if (this.repoIsPrivate) {
this.state.isPrivate = '1';
}
}
}).catch(err => {
@@ -520,4 +500,18 @@ export default {
border-color: #85b7d9;
}
}

/deep/ .el-radio.is-checked {
.el-radio__inner {
// border-color: #409EFF;
// background: #409EFF;
border-color: rgb(16, 16, 16);
background: rgb(16, 16, 16);
}

.el-radio__label {
// color: #409EFF;
color: rgb(16, 16, 16);
}
}
</style>

+ 10
- 3
web_src/vuepages/pages/modelmanage/settings/index.vue View File

@@ -58,11 +58,15 @@
:placeholder="$t('modelManage.modelLabelInputTips')" @input="labelInput"></el-input>
</div>
</div>
<div class="row" v-if="repoIsPrivate == false">
<div class="row">
<div class="r-title"><label>{{ $t('modelManage.modelAccess') }}</label></div>
<div class="r-content">
<el-radio v-model="state.isPrivate" label="0">{{ $t('modelManage.modelAccessPublic') }}</el-radio>
<el-radio v-model="state.isPrivate" label="1">{{ $t('modelManage.modelAccessPrivate') }}</el-radio>
<el-radio v-model="state.isPrivate" label="0" :disabled="repoIsPrivate">{{
$t('modelManage.modelAccessPublic') }}<span v-if="repoIsPrivate">
({{ $t('modelManage.modelAccessTips') }})</span>
</el-radio>
<el-radio v-model="state.isPrivate" label="1" :disabled="repoIsPrivate">{{
$t('modelManage.modelAccessPrivate') }}</el-radio>
</div>
</div>
<div class="row" style="align-items:flex-start;">
@@ -215,6 +219,9 @@ export default {
this.state.license = data.license;
this.state.description = data.description;
this.state.isPrivate = data.isPrivate ? '1' : '0';
if (this.repoIsPrivate) {
this.state.isPrivate = '1';
}
getModelLicenseList().then(res => {
res = res.data;
try {


+ 1
- 1
web_src/vuepages/pages/resources/scene/index.vue View File

@@ -191,7 +191,7 @@ export default {
const item = data[i];
list.push({
k: item.ID,
v: `${item.QueueCode}(${getListValueWithKey(this.clusterList, item.Cluster)} - ${item.AiCenterName})`,
v: `${item.QueueCode}(${getListValueWithKey(this.clusterList, item.Cluster)} - ${item.AiCenterName}) ${item.ComputeResource}(${item.AccCardType})`,
});
}
this.queueList.push(...list);


+ 1
- 1
web_src/vuepages/pages/resources/specification/index.vue View File

@@ -206,7 +206,7 @@ export default {
const item = data[i];
list.push({
k: item.ID,
v: `${item.QueueCode}(${getListValueWithKey(this.clusterList, item.Cluster)} - ${item.AiCenterName})`,
v: `${item.QueueCode}(${getListValueWithKey(this.clusterList, item.Cluster)} - ${item.AiCenterName}) ${item.ComputeResource}(${item.AccCardType})`,
});
}
this.queueList.push(...list);


Loading…
Cancel
Save