Files
certd/ui/certd-ui/src/components/access-provider-selector/access-provider-selector.vue
T

86 lines
1.9 KiB
Vue
Raw Normal View History

2021-01-28 01:00:06 +08:00
<template>
2021-02-04 21:24:07 +08:00
<div class="access-provider-selector">
2021-01-28 01:00:06 +08:00
<a-select
:value="value"
@update:value="valueUpdate"
>
2021-01-31 02:09:54 +08:00
<a-select-option v-for="item of getProviders()" :key="item.key" :value="item.key" :disabled="isDisabled(item)">
2021-01-28 01:00:06 +08:00
{{ item.name }}
</a-select-option>
</a-select>
<a-button class="suffix" @click="providerManagerOpen">
管理授权
</a-button>
</div>
2021-02-04 21:24:07 +08:00
<access-provider-manager ref="providerManagerRef"
2021-01-28 01:00:06 +08:00
:value="value"
2021-01-31 02:09:54 +08:00
:filter="filter"
2021-01-28 01:00:06 +08:00
@update:value="valueUpdate"
2021-02-04 21:24:07 +08:00
></access-provider-manager>
2021-01-28 01:00:06 +08:00
</template>
<script>
2021-01-31 02:09:54 +08:00
import { ref, inject } from 'vue'
2021-02-04 21:24:07 +08:00
import AccessProviderManager from './access-provider-manager'
2021-01-28 01:00:06 +08:00
export default {
2021-02-04 22:07:01 +08:00
name: 'access-provider-selector',
2021-02-04 21:24:07 +08:00
components: { AccessProviderManager },
2021-01-28 01:00:06 +08:00
emits: ['update:providers', 'update:value'],
// 属性定义
props: {
value: {
type: String
},
2021-01-30 00:06:50 +08:00
filter: {}
2021-01-28 01:00:06 +08:00
},
setup (props, context) {
const providerManagerRef = ref(null)
const providerManagerOpen = () => {
console.log('providerManagerRef', providerManagerRef)
if (providerManagerRef.value) {
providerManagerRef.value.open()
}
}
const providersUpdate = (val) => {
console.log('accessUpdate', val)
context.emit('update:providers', val)
}
const valueUpdate = (val) => {
context.emit('update:value', val)
}
2021-01-30 00:06:50 +08:00
const isDisabled = (item) => {
if (!props.filter) {
return false
}
2021-01-31 02:09:54 +08:00
return item.type !== props.filter
2021-01-30 00:06:50 +08:00
}
2021-01-31 02:09:54 +08:00
const getProviders = inject('get:accessProviders')
2021-01-28 01:00:06 +08:00
return {
providersUpdate,
valueUpdate,
providerManagerOpen,
2021-01-30 00:06:50 +08:00
providerManagerRef,
2021-01-31 02:09:54 +08:00
isDisabled,
getProviders
2021-01-28 01:00:06 +08:00
}
}
}
</script>
<style lang="less">
2021-02-04 21:24:07 +08:00
.access-provider-selector{
2021-01-28 01:00:06 +08:00
display: flex;
flex-direction: row;
.ant-select{
flex:1;
}
.suffix{
flex-shrink: 0;
margin-left:5px;
}
}
</style>