Commit 995e5e4f authored by kewei.jia's avatar kewei.jia

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	src/views/resources/cpuDetails.vue
parents dff45e1e 17e4d144
......@@ -571,7 +571,6 @@ export default {
// })
},
openRabbitmq(data) {
console.log(data)
const port = data.portMappings.filter(item => item.port === 15672)[0].nodePort
window.open(`http://${data.lanIp}:${port}/`, '_blank')
},
......
......@@ -5,6 +5,9 @@
<el-select v-model="listQuery.type" placeholder="项目类型" clearable style="width: 200px" class="filter-item" >
<el-option v-for="item in typeOptions" :key="item.key" :label="item.display_name" :value="item.key"/>
</el-select>
<el-select v-model="listQuery.is_active" placeholder="是否服役" clearable style="width: 200px" class="filter-item" >
<el-option v-for="item in avtiveOptions" :key="item.key" :label="item.display_name" :value="item.key"/>
</el-select>
<el-select v-model="listQuery.sort" style="width: 140px" class="filter-item" @change="handleFilter">
<el-option v-for="item in sortOptions" :key="item.key" :label="item.label" :value="item.key"/>
</el-select>
......@@ -14,36 +17,34 @@
<el-table
:data="proconfigs"
border
fit
highlight-current-row
style="width: 100%;"
@sort-change="sortChange">
<el-table-column :label="$t('table.id')" prop="id" align="center" width="65">
size="medium"
style="width: 100%;">
<el-table-column :label="$t('table.id')" prop="id" align="center" width="55">
<template slot-scope="scope">
<span>{{ scope.$index + 1 }}</span>
</template>
</el-table-column>
<el-table-column label="服务名称" prop="project_name" sortable="custom" align="center">
<el-table-column label="服务名称" align="center">
<template slot-scope="scope">
<span class="link-type" @click="handleUpdate(scope.row)">{{ scope.row.project_name }}</span>
</template>
</el-table-column>
<el-table-column label="服务描述" align="center">
<template slot-scope="scope">
<span>{{ scope.row.des }}</span>
<span >{{ scope.row.des }}</span>
</template>
</el-table-column>
<el-table-column label="线上域名" align="center">
<template slot-scope="scope">
<span>{{ scope.row.host_name }}</span>
</template>
</el-table-column>
<el-table-column label="Git地址" align="center">
<template slot-scope="scope">
<span>{{ scope.row.git_path }}</span>
</template>
</el-table-column>
<el-table-column label="负责人" width="80px" align="center">
<template slot-scope="scope">
<span>{{ scope.row.auth }}</span>
......@@ -54,33 +55,77 @@
<el-tag :type="scope.row.is_active | statusFilter">{{ scope.row.is_active | activeFileter }}</el-tag>
</template>
</el-table-column>
<el-table-column label="部署容器" width="90px" align="center">
<template slot-scope="scope">
<el-tag :type="scope.row.deploy_to_testenv | statusFilter">{{ scope.row.deploy_to_testenv | deployFileter }}</el-tag>
</template>
</el-table-column>
<el-table-column :label="$t('table.actions')" align="center" width="180" class-name="small-padding fixed-width">
<el-table-column
label="API地址"
align="center"
width="80px">
<template slot-scope="scope">
<el-tooltip :content="scope.row.api" class="item" effect="dark" placement="top">
<el-button v-show="scope.row.api" type="primary" icon="el-icon-tickets" circle @click="openUrl(scope.row.api)"/>
</el-tooltip>
</template>
</el-table-column>
<el-table-column
label="DDL地址"
width="80px"
align="center">
<template slot-scope="scope">
<el-tooltip :content="scope.row.ddl" class="item" effect="dark" placement="top">
<el-button v-show="scope.row.ddl" type="success" icon="el-icon-time" circle @click="openUrl(scope.row.ddl)"/>
</el-tooltip>
</template>
</el-table-column>
<el-table-column
label="Wiki"
width="80px"
align="center">
<template slot-scope="scope">
<el-tooltip :content="scope.row.wiki" class="item" effect="dark" placement="top">
<el-button v-show="scope.row.wiki" type="warning" icon="el-icon-time" circle @click="openUrl(scope.row.wiki)"/>
</el-tooltip>
</template>
</el-table-column>
<el-table-column
label="Git地址"
width="80px"
align="center">
<template slot-scope="scope">
<el-tooltip :content="scope.row.git_path" class="item" effect="dark" placement="top">
<el-button v-show="scope.row.git_path" type="info" icon="el-icon-time" circle />
</el-tooltip>
</template>
</el-table-column>
<el-table-column :label="$t('table.actions')" align="center" width="70" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button type="primary" size="mini" @click="handleUpdate(scope.row)">{{ $t('table.edit') }}</el-button>
<el-button v-if="scope.row.status!='deleted'" size="mini" type="danger" @click="handleDelete(scope.row)">{{ $t('table.delete') }}
</el-button>
<!-- <el-button size="mini" type="danger" @click="handleDelete(scope.row)">{{ $t('table.delete') }}
</el-button> -->
</template>
</el-table-column>
</el-table>
<!-- <pagination v-show="total>0" :total="total" :page.sync="listQuery.page" :limit.sync="listQuery.limit" @pagination="getList" /> -->
<el-dialog :title="textMap[dialogStatus]" :visible.sync="dialogFormVisible">
<el-form ref="dataForm" :rules="rules" :model="temp" label-position="left" label-width="105px" style="width: 90%; margin-left:40px;">
<el-form ref="dataForm" :model="temp" label-position="left" label-width="105px" style="width: 90%; margin-left:40px;">
<el-form-item label="类型" prop="type">
<el-select v-model="temp.type" class="filter-item" placeholder="Please select">
<el-option v-for="item in typeOptions" :key="item.key" :label="item.display_name" :value="item.key"/>
</el-select>
</el-form-item>
<el-form-item label="Git地址" prop="git_path" style="width:100%">
<el-form-item label="Git地址" prop="git_path" style="width: 100%;">
<el-input v-model="temp.git_path"/>
</el-form-item>
<el-form-item label="是否激活" >
<el-form-item label="是否服役" >
<el-select v-model="temp.is_active" class="filter-item" placeholder="Please select">
<el-option v-for="item in avtiveOptions" :key="item.key" :label="item.display_name" :value="item.key"/>
</el-select>
......@@ -90,38 +135,41 @@
<el-option v-for="item in deployOptions" :key="item.key" :label="item.display_name" :value="item.key"/>
</el-select>
</el-form-item>
<el-form-item label="项目描述" style="width:100%">
<el-form-item label="项目描述" style="width: 100%;">
<el-input :autosize="{ minRows: 2, maxRows: 4}" v-model="temp.des" type="textarea" placeholder="Please input"/>
</el-form-item>
<el-form-item label="线上域名" prop="host_name" style="width:100%">
<el-form-item label="线上域名" style="width: 100%;">
<el-input v-model="temp.host_name"/>
</el-form-item>
<el-form-item label="负责人" prop="auth" style="width:100%">
<el-form-item label="负责人" style="width: 100%;">
<el-input v-model="temp.auth"/>
</el-form-item>
<el-form-item label="配置文件路径" prop="config_path" style="width:100%">
<el-form-item label="配置文件路径" style="width: 100%;">
<el-input v-model="temp.config_path"/>
</el-form-item>
<el-form-item label="Build文件路径" prop="jar_path" style="width:100%">
<el-form-item label="Build文件路径" style="width: 100%;">
<el-input v-model="temp.jar_path"/>
</el-form-item>
<el-form-item label="日志路径" prop="log_path" style="width:100%">
<el-form-item label="日志路径" style="width: 100%;">
<el-input v-model="temp.log_path"/>
</el-form-item>
<el-form-item label="部署命令" prop="build_command" style="width:100%">
<el-form-item label="部署命令" style="width: 100%;">
<el-input v-model="temp.build_command"/>
</el-form-item>
<el-form-item label="启动命令" prop="start_command" style="width:100%">
<el-input :autosize="{ minRows: 2, maxRows: 4}" v-model="temp.start_command" type="textarea"/>
<el-form-item label="API" style="width: 100%;">
<el-input v-model="temp.api"/>
</el-form-item>
<el-form-item label="数据库DDL" style="width: 100%;">
<el-input v-model="temp.ddl"/>
</el-form-item>
<el-form-item label="关闭命令" prop="stop_command" style="width:100%">
<el-input v-model="temp.stop_command"/>
<el-form-item label="Wiki" style="width: 100%;">
<el-input v-model="temp.wiki"/>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="dialogFormVisible = false">{{ $t('table.cancel') }}</el-button>
<el-button type="primary" @click="createData()">{{ $t('table.confirm') }}</el-button>
<!-- <el-button type="primary" @click="dialogStatus==='create'?createData():updateData()">{{ $t('table.confirm') }}</el-button> -->
</div>
</el-dialog>
......@@ -141,7 +189,6 @@
<script>
import { getProjects, saveProject, deleteProject } from '@/api/proconfig'
import waves from '@/directive/waves' // Waves directive
import Pagination from '@/components/Pagination' // Secondary package based on el-pagination
const typeOptions = [
{ key: 'java', display_name: 'Java' },
......@@ -150,12 +197,6 @@ const typeOptions = [
{ key: 'python', display_name: 'Python' }
]
// arr to obj ,such as { CN : "China", US : "USA" }
const calendarTypeKeyValue = typeOptions.reduce((acc, cur) => {
acc[cur.key] = cur.display_name
return acc
}, {})
const avtiveOptions = [
{ key: true, display_name: '服役中' },
{ key: false, display_name: '退役了' }
......@@ -177,8 +218,6 @@ const deployKeyValue = deployOptions.reduce((acc, cur) => {
}, {})
export default {
name: 'ComplexTable',
components: { Pagination },
directives: { waves },
filters: {
statusFilter(status) {
......@@ -188,9 +227,6 @@ export default {
}
return statusMap[status]
},
typeFilter(type) {
return calendarTypeKeyValue[type]
},
activeFileter(status) {
return activeKeyValue[status]
},
......@@ -202,8 +238,8 @@ export default {
return {
total: 0,
listQuery: {
project_name: undefined,
type: undefined,
// type: 'ui',
is_active: true,
sort: '+project_name'
},
typeOptions,
......@@ -217,11 +253,6 @@ export default {
update: 'Edit',
create: 'Create'
},
rules: {
// type: [{ required: true, message: 'type is required', trigger: 'change' }],
// timestamp: [{ type: 'date', required: true, message: 'timestamp is required', trigger: 'change' }],
// title: [{ required: true, message: 'title is required', trigger: 'blur' }]
},
proconfigs: [],
avtiveOptions,
deployOptions
......@@ -245,6 +276,10 @@ export default {
this.getProjects()
},
openUrl(data) {
window.open(`${data}`, '_blank')
},
sortChange(data) {
const { prop, order } = data
if (prop === 'project_name') {
......@@ -261,7 +296,6 @@ export default {
},
resetTemp() {
this.temp = {
port: '',
is_active: undefined,
deploy_to_testenv: undefined,
type: '',
......@@ -274,13 +308,10 @@ export default {
auth: '',
jar_path: '',
command1: '',
command2: '',
command3: '',
command4: '',
command5: '',
build_command: '',
start_command: '',
stop_command: ''
api: '',
ddl: '',
wiki: ''
}
},
handleCreate() {
......
......@@ -28,7 +28,7 @@
</el-table-column>
<el-table-column label="服务名" prop="Action" align="center">
<template slot-scope="scope">
<span >{{ scope.row._id }}</span>
<span >{{ scope.row.name }}</span>
</template>
</el-table-column>
<el-table-column label="Cpu Used Limit" prop="Microservice Name" align="center">
......@@ -93,7 +93,7 @@ export default {
}
getCpu({ startTime: this.startTime, endTime: this.endTime }).then((res) => {
if (res.data.length > 0) {
this.cpuResources = res.data
this.memoryResources = res.data
} else {
this.$notify({
title: '警告',
......
......@@ -2,11 +2,16 @@
<div class="app-container">
<div class="filter-container">
<el-date-picker
v-model="create_time"
type="date"
placeholder="选择日期"
format="yyyy 年 MM 月 dd 日"
value-format="yyyy-MM-dd"/>
v-model="startTime"
type="datetime"
dataformatas=""
placeholder="选择日期时间"
default-time="00:00:00"/>
<el-date-picker
v-model="endTime"
type="datetime"
placeholder="选择日期时间"
default-time="23:59:59"/>
<el-button v-waves class="filter-item" type="primary" icon="el-icon-search" @click="handleFilter">{{ $t('table.search') }}</el-button>
</div>
......@@ -23,22 +28,22 @@
</el-table-column>
<el-table-column label="服务名" prop="Action" align="center">
<template slot-scope="scope">
<span >{{ scope.row.name }}</span>
<span >{{ scope.row._id }}</span>
</template>
</el-table-column>
<el-table-column label="Memory Limit" prop="Microservice Name" align="center">
<el-table-column label="Memory Limit(Mib)" prop="Microservice Name" align="center">
<template slot-scope="scope">
<span >{{ scope.row.memoryLimit }}</span>
</template>
</el-table-column>
<el-table-column label="Memory Used Max" prop="Namespace" align="center">
<el-table-column label="Memory Used Max(Mib)" prop="Namespace" align="center">
<template slot-scope="scope">
<span >{{ scope.row.memoryMaxUsage }}</span>
</template>
</el-table-column>
<el-table-column label="百分比" prop="Namespace" align="center">
<template slot-scope="scope">
<span >{{ scope.row.Percentage *100+'%' }}</span>
<span >{{ (scope.row.Percentage*100).toFixed(2)+'%' }}</span>
</template>
</el-table-column>
</el-table>
......@@ -63,33 +68,33 @@ export default {
},
data() {
return {
create_time: moment().format('YYYY-MM-DD'),
startTime: moment().startOf('d').format(),
endTime: moment().endOf('d').format(),
memoryResources: null
}
},
created() {
getMemory({ create_time: this.create_time }).then((res) => {
if (res.data.length > 0) {
this.memoryResources = res.data[0].memory
} else {
this.$notify({
title: '警告',
message: '当前日期暂无数据',
type: 'warning'
})
}
})
this.fetchDate()
},
methods: {
handleFilter() {
this.create_time = this.create_time ? this.create_time : moment().format('YYYY-MM-DD')
getMemory({ create_time: this.create_time }).then((res) => {
console.log(this.startTime)
this.fetchDate()
},
fetchDate() {
if (this.startTime === null || this.endTime === null) {
this.$notify({
title: '错误',
message: '请选择开始日期和结束日期',
type: 'error'
})
return false
}
getMemory({ startTime: this.startTime, endTime: this.endTime }).then((res) => {
if (res.data.length > 0) {
this.memoryResources = res.data[0].memory
this.memoryResources = res.data
} else {
this.memoryResources = null
this.$notify({
title: '警告',
message: '当前日期暂无数据',
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment