Commit e88bd005 authored by 智勇's avatar 智勇

pipeline支持多集群 db同步管理增加权限

parent aa84dac2
...@@ -60,7 +60,7 @@ ...@@ -60,7 +60,7 @@
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button @click="dialogFormVisible = false">{{ $t('table.cancel') }}</el-button> <el-button @click="dialogFormVisible = false">{{ $t('table.cancel') }}</el-button>
<el-button type="primary" @click="createData()">{{ $t('table.confirm') }}</el-button> <el-button v-permission="['admin']" type="primary" @click="createData()">{{ $t('table.confirm') }}</el-button>
</div> </div>
</el-dialog> </el-dialog>
...@@ -70,7 +70,7 @@ ...@@ -70,7 +70,7 @@
</span> </span>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
<el-button @click="dialogDeleteVisible = false">{{ $t('table.cancel') }}</el-button> <el-button @click="dialogDeleteVisible = false">{{ $t('table.cancel') }}</el-button>
<el-button type="primary" @click="deleteData()">{{ $t('table.confirm') }}</el-button> <el-button v-permission="['admin']" type="primary" @click="deleteData()">{{ $t('table.confirm') }}</el-button>
</span> </span>
</el-dialog> </el-dialog>
...@@ -80,9 +80,12 @@ ...@@ -80,9 +80,12 @@
<script> <script>
import { getConfig, saveConfig, deleteConfig } from '@/api/dbconfig' import { getConfig, saveConfig, deleteConfig } from '@/api/dbconfig'
import Pagination from '@/components/Pagination' // Secondary package based on el-pagination import Pagination from '@/components/Pagination' // Secondary package based on el-pagination
import permission from '@/directive/permission/index.js' // 权限判断指令
export default { export default {
components: { Pagination }, components: { Pagination },
directives: { permission },
filters: { filters: {
}, },
data() { data() {
......
...@@ -92,8 +92,16 @@ ...@@ -92,8 +92,16 @@
active-color="#13ce66" active-color="#13ce66"
/> />
</el-form-item> </el-form-item>
<el-form-item v-if="temp.isDeploy" label="所属集群" prop="cluster" >
<el-select v-model="temp.cluster" filterable style="width:100%" @change="changeCluster">
<el-option v-for="item in clusterArray" :value="item.clusterName" :label="item.clusterName" :key="item.clusterName" />
</el-select>
</el-form-item>
<el-form-item v-if="temp.isDeploy" label="命名空间" prop="namespace" > <el-form-item v-if="temp.isDeploy" label="命名空间" prop="namespace" >
<el-input v-model="temp.namespace"/> <!-- <el-input v-model="temp.namespace"/> -->
<el-select v-model="temp.namespace" filterable style="width:100%">
<el-option v-for="item in nsArray" :value="item.name" :label="item.name" :key="item.name" />
</el-select>
</el-form-item> </el-form-item>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
...@@ -121,6 +129,8 @@ import { getProjects } from '@/api/proconfig' ...@@ -121,6 +129,8 @@ import { getProjects } from '@/api/proconfig'
import waves from '@/directive/waves' // Waves directive import waves from '@/directive/waves' // Waves directive
import Pagination from '@/components/Pagination' // Secondary package based on el-pagination import Pagination from '@/components/Pagination' // Secondary package based on el-pagination
import moment from 'moment' import moment from 'moment'
import { getCluster } from '@/api/cluster'
import { fetchKubernetesList } from '@/api/docker'
export default { export default {
name: 'ComplexTable', name: 'ComplexTable',
...@@ -154,7 +164,8 @@ export default { ...@@ -154,7 +164,8 @@ export default {
rules: { rules: {
application_name: [{ required: true, message: '请输入', trigger: 'change' }], application_name: [{ required: true, message: '请输入', trigger: 'change' }],
// timestamp: [{ type: 'date', required: true, message: 'timestamp is required', trigger: 'change' }], // timestamp: [{ type: 'date', required: true, message: 'timestamp is required', trigger: 'change' }],
namespace: [{ required: true, message: '请输入', trigger: 'blur' }] namespace: [{ required: true, message: '请输入', trigger: 'blur' }],
cluster: [{ required: true, message: '请输入', trigger: 'blur' }]
}, },
noticeTypes: ['dingding', 'mail'], noticeTypes: ['dingding', 'mail'],
applications: [], applications: [],
...@@ -162,7 +173,9 @@ export default { ...@@ -162,7 +173,9 @@ export default {
repos: [], repos: [],
repo: '', repo: '',
refs: {}, refs: {},
ref: undefined ref: undefined,
clusterArray: [],
nsArray: []
} }
}, },
computed: { computed: {
...@@ -172,8 +185,28 @@ export default { ...@@ -172,8 +185,28 @@ export default {
}, },
created() { created() {
this.getApplications() this.getApplications()
this.getCluster()
this.fetchK8sList()
}, },
methods: { methods: {
getCluster() {
getCluster().then(res => {
this.clusterArray = res.data
})
},
changeCluster() {
this.$store.dispatch('changeCluster', this.temp.cluster)
sessionStorage.setItem('cluster', this.temp.cluster)
this.fetchK8sList()
},
fetchK8sList() {
fetchKubernetesList().then(res => {
this.nsArray = res.data.namespaces
})
},
filterUserData() { filterUserData() {
this.getApplications() this.getApplications()
}, },
...@@ -223,7 +256,8 @@ export default { ...@@ -223,7 +256,8 @@ export default {
application_name: '', application_name: '',
create_time: moment().format('YYYY-MM-DD HH:mm:ss'), create_time: moment().format('YYYY-MM-DD HH:mm:ss'),
new_user: '', new_user: '',
update_user: '' update_user: '',
cluster: this.$store.getters.cluster
} }
}, },
......
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