Commit 3ee40a06 authored by 黎博's avatar 黎博

update

parent c1240313
...@@ -125,3 +125,12 @@ export function getDockerProjectDetail(queryInfo) { ...@@ -125,3 +125,12 @@ export function getDockerProjectDetail(queryInfo) {
params: queryInfo params: queryInfo
}) })
} }
// 同步MQ
export function syncMq(data) {
return request({
url: '/k8s/sync/mq',
method: 'post',
data
})
}
...@@ -40,6 +40,7 @@ import role from '../views/user/role' ...@@ -40,6 +40,7 @@ import role from '../views/user/role'
import permission from '../views/user/permission' import permission from '../views/user/permission'
// 添加发送短信功能(2021-08-16) // 添加发送短信功能(2021-08-16)
import sendMessage from '../views/effect/SendMessage' import sendMessage from '../views/effect/SendMessage'
// 迁移容器平台
import TestEnv from '../views/docker/TestEnv' import TestEnv from '../views/docker/TestEnv'
import DevEnv from '../views/docker/DevEnv' import DevEnv from '../views/docker/DevEnv'
import EnvDetail from '../views/docker/EnvDetail' import EnvDetail from '../views/docker/EnvDetail'
......
...@@ -22,21 +22,41 @@ ...@@ -22,21 +22,41 @@
<el-table-column prop="owner" label="所有者" width="120" /> <el-table-column prop="owner" label="所有者" width="120" />
<el-table-column prop="operation" label="操作"> <el-table-column prop="operation" label="操作">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button type="primary" size="mini" @click="syncMySQL(scope.row.name)">同步线上MySQL</el-button> <el-button type="primary" size="mini" @click="handleSyncMysql(scope.row.name)">同步线上MySQL</el-button>
<el-button size="mini" type="primary" @click="syncMQ(scope.row.name)">同步线上MQ</el-button> <el-button size="mini" type="primary" @click="handleMqSync(scope.row.name)">同步线上MQ</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
</div> </div>
<!-- 同步MQ对话框 -->
<el-dialog title="同步MQ" :visible.sync="mqSyncDialogVisible" width="50%" :before-close="handleClose">
<el-form ref="mqDataForm" label-position="left" label-width="130px" style="width: 95%; margin-left:20px;">
<el-form-item label="Namespace名称">
<el-input v-model="namespace" :disabled="true" />
</el-form-item>
<el-form-item label="服务地址">
<el-input v-model="mqUrl" :disabled="true" />
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="mqSyncDialogVisible = false">取消</el-button>
<el-button type="primary" @click="syncMQ()">开始同步</el-button>
</span>
</el-dialog>
</div> </div>
</template> </template>
<script> <script>
import { getNamespaceList } from '@/api/k8s' import { getNamespaceList, getServiceDetail, syncMq } from '@/api/k8s'
export default { export default {
data() { data() {
return { return {
tableData: [] tableData: [],
mqSyncDialogVisible: false,
mqDataForm: {},
namespace: '',
mqUrl: ''
} }
}, },
methods: { methods: {
...@@ -56,7 +76,39 @@ export default { ...@@ -56,7 +76,39 @@ export default {
path: `/docker/env` path: `/docker/env`
}) })
}, },
syncMySQL() {} handleSyncMysql() {
this.$router.push('/effect/database')
},
// 打开MQ同步对话框
handleMqSync(name) {
this.namespace = name
getServiceDetail({
namespace: this.namespace,
serviceType: 'base',
serviceName: 'rabbitmq'
}).then((resp) => {
if (resp.data.data != null) {
this.mqUrl =
resp.data.data.lanIp + ':' + resp.data.data.portMappings[1].nodePort
} else {
return this.$message.error('当前环境没有MQ!')
}
})
this.mqSyncDialogVisible = true
},
// 同步MQ
syncMQ() {
var formdata = new FormData()
formdata.set('host', this.mqUrl)
syncMq(formdata).then((resp) => {
if (resp.data.data === true) {
this.mqSyncDialogVisible = false
return this.$message.success('同步成功!')
} else {
return this.$message.error('同步失败!')
}
})
}
}, },
created() { created() {
this.getNamespaceList() this.getNamespaceList()
......
...@@ -89,7 +89,7 @@ ...@@ -89,7 +89,7 @@
<!-- 分页 --> <!-- 分页 -->
<el-pagination background @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page.sync="listQuery.pageNum" :page-sizes="[10, 20, 50, 100, 200, 300]" :page-size="listQuery.pageSize" layout="total, sizes, prev, pager, next" :total="total"></el-pagination> <el-pagination background @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page.sync="listQuery.pageNum" :page-sizes="[10, 20, 50, 100, 200, 300]" :page-size="listQuery.pageSize" layout="total, sizes, prev, pager, next" :total="total"></el-pagination>
<el-dialog title="xx对话框" :visible.sync="dialogFormVisible"> <el-dialog :title="dialogName" :visible.sync="dialogFormVisible">
<el-form ref="dataForm" :rules="rules" :model="temp" label-position="left" label-width="115px" style="width: 90%; margin-left:40px;"> <el-form ref="dataForm" :rules="rules" :model="temp" label-position="left" label-width="115px" style="width: 90%; margin-left:40px;">
<el-form-item label="类型" prop="projectType"> <el-form-item label="类型" prop="projectType">
<el-select v-model="temp.projectType" class="filter-item" placeholder="Please select"> <el-select v-model="temp.projectType" class="filter-item" placeholder="Please select">
...@@ -227,10 +227,7 @@ export default { ...@@ -227,10 +227,7 @@ export default {
dialogFormVisible: false, dialogFormVisible: false,
dialogDeleteVisible: false, dialogDeleteVisible: false,
dialogStatus: '', dialogStatus: '',
textMap: { dialogName: '',
update: 'Edit',
create: 'Create'
},
proconfigs: [], proconfigs: [],
disabled: undefined, disabled: undefined,
rules: { rules: {
...@@ -275,6 +272,7 @@ export default { ...@@ -275,6 +272,7 @@ export default {
}, },
// 打开新建项目对话框 // 打开新建项目对话框
handleCreate() { handleCreate() {
this.dialogName = '新建项目'
this.temp = {} this.temp = {}
this.dialogFormVisible = true this.dialogFormVisible = true
this.$nextTick(() => { this.$nextTick(() => {
...@@ -283,6 +281,7 @@ export default { ...@@ -283,6 +281,7 @@ export default {
}, },
// 打开更新项目对话框 // 打开更新项目对话框
handleUpdate(row) { handleUpdate(row) {
this.dialogName = '编辑项目'
this.temp = Object.assign({}, row) this.temp = Object.assign({}, row)
this.dialogFormVisible = true this.dialogFormVisible = true
this.$nextTick(() => { this.$nextTick(() => {
...@@ -298,6 +297,7 @@ export default { ...@@ -298,6 +297,7 @@ export default {
addDockerProject(this.temp).then(resp => { addDockerProject(this.temp).then(resp => {
if (resp.data.data === true) { if (resp.data.data === true) {
this.dialogFormVisible = false this.dialogFormVisible = false
this.getProjectList()
return this.$message.success('创建成功!') return this.$message.success('创建成功!')
} else { } else {
return this.$message.error('创建失败!') return this.$message.error('创建失败!')
......
...@@ -22,21 +22,41 @@ ...@@ -22,21 +22,41 @@
<el-table-column prop="owner" label="所有者" width="120" /> <el-table-column prop="owner" label="所有者" width="120" />
<el-table-column prop="operation" label="操作"> <el-table-column prop="operation" label="操作">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button type="primary" size="mini" @click="syncMySQL(scope.row.name)">同步线上MySQL</el-button> <el-button type="primary" size="mini" @click="handleSyncMysql(scope.row.name)">同步线上MySQL</el-button>
<el-button size="mini" type="primary" @click="syncMQ(scope.row.name)">同步线上MQ</el-button> <el-button size="mini" type="primary" @click="handleMqSync(scope.row.name)">同步线上MQ</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
</div> </div>
<!-- 同步MQ对话框 -->
<el-dialog title="同步MQ" :visible.sync="mqSyncDialogVisible" width="50%" :before-close="handleClose">
<el-form ref="mqDataForm" label-position="left" label-width="130px" style="width: 95%; margin-left:20px;">
<el-form-item label="Namespace名称">
<el-input v-model="namespace" :disabled="true" />
</el-form-item>
<el-form-item label="服务地址">
<el-input v-model="mqUrl" :disabled="true" />
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="mqSyncDialogVisible = false">取消</el-button>
<el-button type="primary" @click="syncMQ()">开始同步</el-button>
</span>
</el-dialog>
</div> </div>
</template> </template>
<script> <script>
import { getNamespaceList } from '@/api/k8s' import { getNamespaceList, getServiceDetail, syncMq } from '@/api/k8s'
export default { export default {
data() { data() {
return { return {
tableData: [] tableData: [],
mqSyncDialogVisible: false,
mqDataForm: {},
namespace: '',
mqUrl: ''
} }
}, },
methods: { methods: {
...@@ -58,7 +78,40 @@ export default { ...@@ -58,7 +78,40 @@ export default {
// 强制刷新整个页面 // 强制刷新整个页面
this.$router.go(0) this.$router.go(0)
}, },
syncMySQL() {} // 跳转到数据库同步页面
handleSyncMysql() {
this.$router.push('/effect/database')
},
// 打开MQ同步对话框
handleMqSync(name) {
this.namespace = name
getServiceDetail({
namespace: this.namespace,
serviceType: 'base',
serviceName: 'rabbitmq'
}).then((resp) => {
if (resp.data.data != null) {
this.mqUrl =
resp.data.data.lanIp + ':' + resp.data.data.portMappings[1].nodePort
} else {
return this.$message.error('当前环境没有MQ!')
}
})
this.mqSyncDialogVisible = true
},
// 同步MQ
syncMQ() {
var formdata = new FormData()
formdata.set('host', this.mqUrl)
syncMq(formdata).then((resp) => {
if (resp.data.data === true) {
this.mqSyncDialogVisible = false
return this.$message.success('同步成功!')
} else {
return this.$message.error('同步失败!')
}
})
}
}, },
created() { created() {
this.getNamespaceList() this.getNamespaceList()
......
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