这是基于vue-vben-admin 模板适用于abp vNext的前端管理项目
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

164 lines
3.9 KiB

<template>
<el-dialog
width="800px"
:title="$t('AbpIdentityServer.DisplayName:PersistedGrants')"
:visible="showDialog"
custom-class="modal-form"
@close="onFormClosed"
>
<div class="app-container">
<el-form
ref="formPersistedGrant"
label-width="130px"
>
<el-form-item
:label="$t('AbpIdentityServer.Grants:Key')"
>
<el-input
:value="persistedGrant.key"
readonly
/>
</el-form-item>
<el-form-item
:label="$t('AbpIdentityServer.Grants:Type')"
>
<el-input
:value="persistedGrant.type"
readonly
/>
</el-form-item>
<el-form-item
:label="$t('AbpIdentityServer.Grants:SubjectId')"
>
<el-input
:value="persistedGrant.subjectId"
readonly
/>
</el-form-item>
<el-form-item
:label="$t('AbpIdentityServer.Grants:SessionId')"
>
<el-input
:value="persistedGrant.sessionId"
readonly
/>
</el-form-item>
<el-form-item
:label="$t('AbpIdentityServer.Description')"
>
<el-input
:value="persistedGrant.description"
readonly
/>
</el-form-item>
<el-form-item
:label="$t('AbpIdentityServer.CreationTime')"
>
<el-input
:value="persistedGrant.creationTime | dateTimeFilter"
readonly
/>
</el-form-item>
<el-form-item
:label="$t('AbpIdentityServer.Grants:ConsumedTime')"
>
<el-input
:value="persistedGrant.consumedTime | dateTimeFilter"
readonly
/>
</el-form-item>
<el-form-item
:label="$t('AbpIdentityServer.Expiration')"
>
<el-input
:value="persistedGrant.expiration | dateTimeFilter"
readonly
/>
</el-form-item>
<el-form-item
:label="$t('AbpIdentityServer.Grants:Data')"
>
<json-editor
:value="formatData(persistedGrant.data)"
/>
</el-form-item>
</el-form>
</div>
</el-dialog>
</template>
<script lang="ts">
import { PersistedGrant } from '@/api/grants'
import { Component, Prop, Watch, Mixins } from 'vue-property-decorator'
import { dateFormat } from '@/utils/index'
import HttpProxyMiXin from '@/mixins/HttpProxyMiXin'
import JsonEditor from '@/components/JsonEditor/index.vue'
@Component({
name: 'PersistedGrantProfile',
components: {
JsonEditor
},
filters: {
dateTimeFilter(datetime: string) {
if (datetime) {
const date = new Date(datetime)
return dateFormat(date, 'YYYY-mm-dd HH:MM:SS')
}
return ''
}
}
})
export default class extends Mixins(HttpProxyMiXin) {
@Prop({ default: false })
private showDialog!: boolean
@Prop({ default: '' })
private id!: string
private persistedGrant = new PersistedGrant()
get formatData() {
return (data: string) => {
if (data) {
return JSON.parse(data)
}
return {}
}
}
@Watch('showDialog', { immediate: true })
private onShowDialogChanged() {
this.handleGetPersistedGrant()
}
private handleGetPersistedGrant() {
if (this.id && this.showDialog) {
this.request<PersistedGrant>({
service: 'IdentityServer',
controller: 'PersistedGrant',
action: 'GetAsync',
params: {
id: this.id
}
}).then(res => {
this.persistedGrant = res
})
}
}
private onFormClosed() {
this.resetFields()
this.$emit('closed')
}
private onCancel() {
this.onFormClosed()
}
public resetFields() {
const formPersistedGrant = this.$refs.formPersistedGrant as any
formPersistedGrant.resetFields()
}
}
</script>