add task list api

This commit is contained in:
ann 2024-07-23 17:29:03 +08:00
parent 6e8de002e8
commit 8346169215
4 changed files with 80 additions and 33 deletions

View File

@ -553,6 +553,8 @@
"initFile": "Init File",
"codeUpload": "Code Upload",
"selectModel": "Select Model",
"modelType": "Task Type"
"modelType": "Task Type",
"start": "Start",
"stop": "Stop"
}
}

View File

@ -553,6 +553,8 @@
"initFile": "启动文件",
"codeUpload": "代码上传",
"selectModel": "选择模型",
"modelType": "任务类型"
"modelType": "任务类型",
"start": "启动",
"stop": "停止"
}
}

View File

@ -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 })
}

View File

@ -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()
})
}
}
}
}