fix: 云平台增加数据中心来搜索
parent
1ff06b2958
commit
84b31aaba4
|
@ -350,6 +350,10 @@ const vmUrl = 'cmp/v1/vms'
|
|||
export function getVm(params) {
|
||||
return request.get(vmUrl, { params })
|
||||
}
|
||||
// 之前的接口不能根据数据中心来查询云主机,这个接口在之前的接口上加了dcId参数,在后端其他不变还是走原来的接口
|
||||
export function getVmByDc(params) {
|
||||
return request.get(`${vmUrl}/vmsOfDataCenter`, { params })
|
||||
}
|
||||
|
||||
export function patchVms(action, params) {
|
||||
return request.patch(vmUrl, {
|
||||
|
|
|
@ -2,14 +2,19 @@
|
|||
<el-card>
|
||||
<el-row :gutter="10">
|
||||
<el-row :gutter="10" class="m-b">
|
||||
<el-col :span="6">
|
||||
<el-col :span="5">
|
||||
<el-input v-model="searchObj.name" placeholder="名称"></el-input>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-col :span="5">
|
||||
<el-select v-model="searchObj.resourceCategory" @change="handleSearch" placeholder="请选择平台类型" clearable>
|
||||
<el-option v-for="item in resourceCategoryList" :key="item.id" :value="item.id" :label="item.name"></el-option>
|
||||
</el-select>
|
||||
</el-col>
|
||||
<el-col :span="5">
|
||||
<el-select v-model="searchObj.dcId" @change="handleSearch" placeholder="请选择数据中心" clearable>
|
||||
<el-option v-for="item in dcList" :key="item.id" :value="item.id" :label="item.name"></el-option>
|
||||
</el-select>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-button type="ghost" icon="el-icon-search" @click="handleSearch">搜索</el-button>
|
||||
<el-button type="ghost" icon="el-icon-refresh" @click="handleReset">重置</el-button>
|
||||
|
@ -52,7 +57,7 @@
|
|||
<script>
|
||||
import webSocket from '@cmp/cmp-common/mixins/getGlobalSocket'
|
||||
import { content, platformStatusBgFilter, platformStatusFilter } from './config'
|
||||
import { getCloudVendor, getVendorType, syncCloudVendor } from 'services/platform/index'
|
||||
import { getCloudVendor, getVendorType, syncCloudVendor, getDc } from 'services/platform/index'
|
||||
import { handleSearchParam } from '@cmp/cmp-element'
|
||||
|
||||
export default {
|
||||
|
@ -86,9 +91,11 @@ export default {
|
|||
BACK_RESOURCE: '/cmp/v1/vendors'
|
||||
},
|
||||
resourceCategoryList: [],
|
||||
dcList: [],
|
||||
searchObj: {
|
||||
name: '',
|
||||
resourceCategory: ''
|
||||
resourceCategory: '',
|
||||
dcId: ''
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -116,6 +123,7 @@ export default {
|
|||
handleReset() {
|
||||
this.searchObj.name = ''
|
||||
this.searchObj.resourceCategory = ''
|
||||
this.searchObj.dcId = ''
|
||||
this.getData()
|
||||
},
|
||||
// 跳转
|
||||
|
@ -146,7 +154,8 @@ export default {
|
|||
params: handleSearchParam({
|
||||
vendorCategory: this.$route.name,
|
||||
'name:LK': this.searchObj.name,
|
||||
type: this.searchObj.resourceCategory
|
||||
type: this.searchObj.resourceCategory,
|
||||
dcId: this.searchObj.dcId
|
||||
})
|
||||
},
|
||||
this.urlObj[this.$route.name] || ''
|
||||
|
@ -180,11 +189,19 @@ export default {
|
|||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
getDc() {
|
||||
getDc({ simple: true }).then(data => {
|
||||
if (data.success) {
|
||||
this.dcList = data.data.rows
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.getData()
|
||||
this.getVendorTypes()
|
||||
this.getDc()
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
|
|
@ -209,7 +209,8 @@ export const columns = [
|
|||
]
|
||||
export const searchConfigs = [
|
||||
{ type: 'Input', label: '名称', value: 'name' },
|
||||
{ type: 'Select', label: '请选择云类型', value: 'type', data: [] }
|
||||
{ type: 'Select', label: '请选择云类型', value: 'type', data: [] },
|
||||
{ type: 'Select', label: '请选择数据中心', value: 'dcId', data: [] }
|
||||
]
|
||||
export const test = {
|
||||
VMWARE: ['availablitiyZone', 'region', 'isPublic', 'id', 'name', 'tenant', 'account', 'password', 'address', 'domainName', 'projectName', 'version', 'remark', 'envId', 'type', 'version', 'dcId', 'logo'],
|
||||
|
|
|
@ -181,8 +181,17 @@ export default {
|
|||
},
|
||||
created() {
|
||||
this.getVType()
|
||||
this.getDc()
|
||||
},
|
||||
methods: {
|
||||
getDc() {
|
||||
getDc({ simple: true }).then(data => {
|
||||
if (data.success) {
|
||||
this.searchConfigs[2].data = data.data.rows
|
||||
this.dcList = data.data.rows
|
||||
}
|
||||
})
|
||||
},
|
||||
getVType() {
|
||||
getVendorType({ condition: JSON.stringify({ condition: 'listType' }) }).then(data => {
|
||||
if (data.success) {
|
||||
|
@ -227,15 +236,6 @@ export default {
|
|||
this.getData()
|
||||
}
|
||||
},
|
||||
getDc() {
|
||||
getDc({
|
||||
simple: true
|
||||
}).then(data => {
|
||||
if (data.success) {
|
||||
this.dcList = data.data.rows
|
||||
}
|
||||
})
|
||||
},
|
||||
getDictionaries(list, value) {
|
||||
getDictionaries({ value: value }).then(data => {
|
||||
if (data.success) {
|
||||
|
@ -284,7 +284,6 @@ export default {
|
|||
this.envListData = data.data.rows
|
||||
}
|
||||
})
|
||||
this.getDc()
|
||||
this.getDictionaries('dictionaries', 'region')
|
||||
this.modifyName = '编辑平台'
|
||||
detailCloudVendor(data.id, this.urlObj[data.vendorCategory] || '').then(data => {
|
||||
|
|
|
@ -351,18 +351,22 @@ export default {
|
|||
simple: true
|
||||
}).then(data => {
|
||||
if (data.success) {
|
||||
this.searchConfigs[3].data = data.data.rows.map(item => {
|
||||
return {
|
||||
...item,
|
||||
/* eslint-disable */
|
||||
children: item.content
|
||||
? JSON.parse(item.content).map(item1 => {
|
||||
return {
|
||||
name: item1,
|
||||
id: `${item.name}:${item1}`
|
||||
}
|
||||
})
|
||||
: ''
|
||||
this.searchConfigs.map(item => {
|
||||
if (item.value === 'labelContent') {
|
||||
item.data = data.data.rows.map(item => {
|
||||
return {
|
||||
...item,
|
||||
/* eslint-disable */
|
||||
children: item.content
|
||||
? JSON.parse(item.content).map(item1 => {
|
||||
return {
|
||||
name: item1,
|
||||
id: `${item.name}:${item1}`
|
||||
}
|
||||
})
|
||||
: ''
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
|
@ -374,7 +378,11 @@ export default {
|
|||
rows: 9999
|
||||
}).then(data => {
|
||||
if (data.success) {
|
||||
this.searchConfigs[4].data = data.data.rows
|
||||
this.searchConfigs.map(item => {
|
||||
if (item.value === 'tenantId') {
|
||||
item.data = data.data.rows
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
|
@ -384,7 +392,11 @@ export default {
|
|||
rows: 9999
|
||||
}).then(data => {
|
||||
if (data.success) {
|
||||
this.searchConfigs[5].data = data.data.rows
|
||||
this.searchConfigs.map(item => {
|
||||
if (item.value === 'projectId') {
|
||||
item.data = data.data.rows
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
|
@ -394,7 +406,11 @@ export default {
|
|||
rows: 9999
|
||||
}).then(data => {
|
||||
if (data.success) {
|
||||
this.searchConfigs[4].data = data.data.rows
|
||||
this.searchConfigs.map(item => {
|
||||
if (item.value === 'businessId') {
|
||||
item.data = data.data.rows
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
|
|
|
@ -17,7 +17,7 @@ import { downloadFile } from '@cmp/cmp-common/utils/'
|
|||
import operate from './operate/index.vue'
|
||||
import detail from './detail/index.vue'
|
||||
import webSocket from '@cmp/cmp-common/mixins/getGlobalSocket'
|
||||
import { getVm, detailTypeVm, patchVms, getVendorType } from 'services/platform/index'
|
||||
import { getVmByDc, detailTypeVm, patchVms, getVendorType, getDc } from 'services/platform/index'
|
||||
import { getTenantTree } from 'services/system/tenant'
|
||||
import { getProject } from 'services/system/project'
|
||||
import show from './show.vue'
|
||||
|
@ -47,6 +47,7 @@ export default {
|
|||
{ label: '项目', value: 'projectId', type: 'Select', data: [] },
|
||||
{ label: '业务', value: 'businessId', type: 'Select', data: [] },
|
||||
{ label: '平台', value: 'vendorType', type: 'Select', data: [] },
|
||||
{ label: '数据中心', value: 'dcId', type: 'Select', data: [] },
|
||||
{ value: 'isTemplate', type: 'Const', initValue: false }
|
||||
],
|
||||
columns: [
|
||||
|
@ -149,6 +150,7 @@ export default {
|
|||
this.getTenantList()
|
||||
this.getProject()
|
||||
this.getPlatformData()
|
||||
this.getDc()
|
||||
},
|
||||
methods: {
|
||||
show() {
|
||||
|
@ -167,10 +169,25 @@ export default {
|
|||
getPlatformData() {
|
||||
getVendorType({ condition: JSON.stringify({ condition: 'listType', resourceCategory: 'COMPUTE' }) }).then(res => {
|
||||
if (res.success) {
|
||||
this.configs[7].data = res.data.map(item => {
|
||||
return {
|
||||
id: item,
|
||||
name: item
|
||||
this.configs.map(item => {
|
||||
if (item.value === 'vendorType') {
|
||||
item.data = res.data.map(item => {
|
||||
return {
|
||||
id: item,
|
||||
name: item
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
getDc() {
|
||||
getDc({ simple: true }).then(data => {
|
||||
if (data.success) {
|
||||
this.configs.map(item => {
|
||||
if (item.value === 'dcId') {
|
||||
item.data = data.data.rows
|
||||
}
|
||||
})
|
||||
}
|
||||
|
@ -413,7 +430,24 @@ export default {
|
|||
},
|
||||
getList() {
|
||||
this.loading = true
|
||||
getVm(this.params).then(data => {
|
||||
const cloneParams = JSON.parse(this.params.params)
|
||||
console.log(cloneParams)
|
||||
// 转换参数格式
|
||||
const convertedParams = []
|
||||
cloneParams.forEach(item => {
|
||||
const paramKeys = Object.keys(item.param)
|
||||
paramKeys.forEach(key => {
|
||||
convertedParams.push({
|
||||
param: { [key]: item.param[key] },
|
||||
sign: item.sign
|
||||
})
|
||||
})
|
||||
})
|
||||
const params = {
|
||||
...this.params,
|
||||
params: JSON.stringify(convertedParams)
|
||||
}
|
||||
getVmByDc(params).then(data => {
|
||||
if (data.success) {
|
||||
this.list = this.setList(data.data.rows.concat(this.cacheList))
|
||||
this.total = data.data.total
|
||||
|
|
Loading…
Reference in New Issue