Files
EdgeAdmin/web/public/js/components/grant/grant-selector.js

75 lines
2.2 KiB
JavaScript
Raw Normal View History

2020-09-06 16:19:34 +08:00
Vue.component("grant-selector", {
2021-08-14 21:33:48 +08:00
props: ["v-grant", "v-node-cluster-id", "v-ns-cluster-id"],
2020-09-06 16:19:34 +08:00
data: function () {
return {
grantId: (this.vGrant == null) ? 0 : this.vGrant.id,
2021-08-14 21:33:48 +08:00
grant: this.vGrant,
nodeClusterId: (this.vNodeClusterId != null) ? this.vNodeClusterId : 0,
nsClusterId: (this.vNsClusterId != null) ? this.vNsClusterId : 0
2020-09-06 16:19:34 +08:00
}
},
methods: {
// 选择授权
select: function () {
let that = this;
2021-08-14 21:33:48 +08:00
teaweb.popup("/clusters/grants/selectPopup?nodeClusterId=" + this.nodeClusterId + "&nsClusterId=" + this.nsClusterId, {
2020-09-06 16:19:34 +08:00
callback: (resp) => {
that.grantId = resp.data.grant.id;
if (that.grantId > 0) {
that.grant = resp.data.grant;
}
2021-08-14 18:06:24 +08:00
that.notifyUpdate()
2021-08-14 21:33:48 +08:00
},
height: "26em"
2021-08-14 18:06:24 +08:00
})
2020-09-06 16:19:34 +08:00
},
// 创建授权
create: function () {
2021-08-14 18:06:24 +08:00
let that = this
2020-10-25 21:27:28 +08:00
teaweb.popup("/clusters/grants/createPopup", {
2021-08-02 14:51:15 +08:00
height: "26em",
2020-09-06 16:19:34 +08:00
callback: (resp) => {
2021-08-14 18:06:24 +08:00
that.grantId = resp.data.grant.id;
if (that.grantId > 0) {
that.grant = resp.data.grant;
2020-09-06 16:19:34 +08:00
}
2021-08-14 18:06:24 +08:00
that.notifyUpdate()
2020-09-06 16:19:34 +08:00
}
2021-08-14 18:06:24 +08:00
})
2020-09-06 16:19:34 +08:00
},
// 修改授权
update: function () {
if (this.grant == null) {
window.location.reload();
return;
}
2021-08-14 18:06:24 +08:00
let that = this
2020-10-25 21:27:28 +08:00
teaweb.popup("/clusters/grants/updatePopup?grantId=" + this.grant.id, {
2021-08-02 14:51:15 +08:00
height: "26em",
2020-09-06 16:19:34 +08:00
callback: (resp) => {
2021-08-14 18:06:24 +08:00
that.grant = resp.data.grant
that.notifyUpdate()
2020-09-06 16:19:34 +08:00
}
})
},
// 删除已选择授权
remove: function () {
2021-08-14 18:06:24 +08:00
this.grant = null
this.grantId = 0
this.notifyUpdate()
},
notifyUpdate: function () {
this.$emit("change", this.grant)
2020-09-06 16:19:34 +08:00
}
},
template: `<div>
<input type="hidden" name="grantId" :value="grantId"/>
2021-08-14 21:33:48 +08:00
<div class="ui label small basic" v-if="grant != null">{{grant.name}}<span class="small grey">{{grant.methodName}}</span><span class="small grey" v-if="grant.username != null && grant.username.length > 0">{{grant.username}}</span> <a href="" title="" @click.prevent="update()"><i class="icon pencil small"></i></a> <a href="" title="" @click.prevent="remove()"><i class="icon remove"></i></a> </div>
2020-09-06 16:19:34 +08:00
<div v-if="grant == null">
<a href="" @click.prevent="select()">[选择已有认证]</a> &nbsp; &nbsp; <a href="" @click.prevent="create()">[]</a>
</div>
</div>`
})