forked from JointCloud/JCC-RIP
add task list api
This commit is contained in:
parent
6e8de002e8
commit
8346169215
|
@ -553,6 +553,8 @@
|
|||
"initFile": "Init File",
|
||||
"codeUpload": "Code Upload",
|
||||
"selectModel": "Select Model",
|
||||
"modelType": "Task Type"
|
||||
"modelType": "Task Type",
|
||||
"start": "Start",
|
||||
"stop": "Stop"
|
||||
}
|
||||
}
|
|
@ -553,6 +553,8 @@
|
|||
"initFile": "启动文件",
|
||||
"codeUpload": "代码上传",
|
||||
"selectModel": "选择模型",
|
||||
"modelType": "任务类型"
|
||||
"modelType": "任务类型",
|
||||
"start": "启动",
|
||||
"stop": "停止"
|
||||
}
|
||||
}
|
|
@ -3,6 +3,19 @@ import request from '@/utils/request'
|
|||
export const getAppList = (params) => {
|
||||
return request({ url: '/pcm/v1/core/task/list', method: 'get', params })
|
||||
}
|
||||
|
||||
export const getAiTaskList = (params) => {
|
||||
return request({ url: '/pcm/v1/inference/deployInstanceList', method: 'get', params })
|
||||
}
|
||||
|
||||
export const startDeployInstance = (params) => {
|
||||
return request({ url: '/pcm/v1/inference/startDeployInstance', method: 'post', params })
|
||||
}
|
||||
|
||||
export const stopDeployInstance = (params) => {
|
||||
return request({ url: '/pcm/v1/inference/stopDeployInstance', method: 'post', params })
|
||||
}
|
||||
|
||||
export const getAppPodsByAppName = (name, params) => {
|
||||
return request({ url: '/pcm/v1/apps/pods/' + name, method: 'get', params })
|
||||
}
|
||||
|
|
|
@ -47,37 +47,60 @@
|
|||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
<List
|
||||
ref="multipleTable"
|
||||
:key="$i18n.locale"
|
||||
class="multipleTable"
|
||||
:columns="columns"
|
||||
:filter-map="filterMap"
|
||||
:get-list-action="getAppList"
|
||||
:default-sort="{prop: 'existTime', order: 'ascending'}"
|
||||
:pagination="true"
|
||||
page-key="pageNum"
|
||||
limit-key="pageSize"
|
||||
tooltip-effect="dark"
|
||||
>
|
||||
<template v-slot:filterBtns>
|
||||
<el-button size="medium" type="primary" @click="createItem">{{ $t('message.create') }}</el-button>
|
||||
</template>
|
||||
</List>
|
||||
<el-tabs v-model="activeName" type="card" @tab-click="handleClick">
|
||||
<el-tab-pane label="智算部署任务" name="first">
|
||||
<List
|
||||
ref="deploymentList"
|
||||
:key="$i18n.locale"
|
||||
class="multipleTable"
|
||||
:columns="columns"
|
||||
:filter-map="filterMap"
|
||||
:get-list-action="getAiTaskList"
|
||||
:default-sort="{prop: 'existTime', order: 'ascending'}"
|
||||
:pagination="true"
|
||||
page-key="pageNum"
|
||||
limit-key="pageSize"
|
||||
tooltip-effect="dark"
|
||||
>
|
||||
<template v-slot:filterBtns>
|
||||
<el-button size="medium" type="primary" @click="createItem">{{ $t('message.create') }}</el-button>
|
||||
</template>
|
||||
</List>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="智算应用任务" name="first">
|
||||
<List
|
||||
ref="multipleTable"
|
||||
:key="$i18n.locale"
|
||||
class="multipleTable"
|
||||
:columns="columns"
|
||||
:filter-map="filterMap"
|
||||
:get-list-action="getAiTaskList"
|
||||
:default-sort="{prop: 'existTime', order: 'ascending'}"
|
||||
:pagination="true"
|
||||
page-key="pageNum"
|
||||
limit-key="pageSize"
|
||||
tooltip-effect="dark"
|
||||
>
|
||||
<template v-slot:filterBtns>
|
||||
<el-button size="medium" type="primary" @click="createItem">{{ $t('message.create') }}</el-button>
|
||||
</template>
|
||||
</List>
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
</el-card>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import List from '@/components/list'
|
||||
import { getAppList } from '@/api/task/task'
|
||||
import { getAiTaskList, startDeployInstance, stopDeployInstance } from '@/api/task/task'
|
||||
import { mapGetters } from 'vuex'
|
||||
import { runtimeFormat } from '@/utils/index'
|
||||
export default {
|
||||
components: { List },
|
||||
data() {
|
||||
return {
|
||||
getAppList,
|
||||
getAiTaskList,
|
||||
strategyList: []
|
||||
// columns: []
|
||||
}
|
||||
|
@ -103,19 +126,7 @@ export default {
|
|||
label: '错误', value: 'warning'
|
||||
}
|
||||
]
|
||||
},
|
||||
type: {
|
||||
label: this.$t('page.task') + this.$t('page.type'),
|
||||
type: 'select',
|
||||
dataSource: [
|
||||
{
|
||||
label: '部署任务', value: 'unschedulable'
|
||||
}, {
|
||||
label: '应用任务', value: 'running'
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
}
|
||||
},
|
||||
columns() {
|
||||
|
@ -156,12 +167,16 @@ export default {
|
|||
} },
|
||||
{ prop: 'more', label: this.$t('page.more'), width: 200, formatter: (row) => {
|
||||
const txt = this.$t('page.viewDetail')
|
||||
const start = this.$t('page.start')
|
||||
const stop = this.$t('page.stop')
|
||||
return <div>
|
||||
<el-dropdown>
|
||||
<el-button className='el-dropdown-link' size='mini' icon='el-icon-more' circle>
|
||||
</el-button>
|
||||
<el-dropdown-menu slot='dropdown'>
|
||||
<span onClick={() => this.viewDetail(row)}> <el-dropdown-item> {txt} </el-dropdown-item> </span>
|
||||
<span onClick={() => this.handleDeploy(row, 1)}> <el-dropdown-item> {start} </el-dropdown-item> </span>
|
||||
<span onClick={() => this.handleDeploy(row, 2)}> <el-dropdown-item> {stop} </el-dropdown-item> </span>
|
||||
</el-dropdown-menu>
|
||||
</el-dropdown>
|
||||
</div>
|
||||
|
@ -173,6 +188,21 @@ export default {
|
|||
},
|
||||
createItem() {
|
||||
this.$router.push({ path: `create` })
|
||||
},
|
||||
handleDeploy(row, type) {
|
||||
const { adapterId, clusterId, id } = row
|
||||
const data = { adapterId, clusterId, id }
|
||||
if (type === 1) {
|
||||
startDeployInstance(data).then(e => {
|
||||
this.$message.success(this.$t('message.success'))
|
||||
this.$refs.deploymentList.getList()
|
||||
})
|
||||
} else {
|
||||
stopDeployInstance(data).then(e => {
|
||||
this.$message.success(this.$t('message.success'))
|
||||
this.$refs.deploymentList.getList()
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue