diff --git a/dashboard/src2/components/JsiteServerOverview.vue b/dashboard/src2/components/JsiteServerOverview.vue index 321f8cc..bd4fdad 100644 --- a/dashboard/src2/components/JsiteServerOverview.vue +++ b/dashboard/src2/components/JsiteServerOverview.vue @@ -292,27 +292,13 @@ export default { return regionMap[region] || region; }, renewServer() { - const renewRequest = createResource({ - url: '/api/action/jcloud.api.aliyun_server_light.renew_aliyun_instance', - params: { - instance_id: this.$jsiteServer.pg.instance_id, - region_id: this.$jsiteServer.pg.region - }, - onSuccess: () => { - toast.success('续费请求已提交'); - }, - onError: (error) => { - toast.error(getToastErrorMessage(error)); - } - }); - toast.promise( - renewRequest.submit(), - { - loading: '正在处理续费请求...', - success: '续费请求已提交', - error: (e) => getToastErrorMessage(e), - }, - ); + const JsiteServerRenewalDialog = defineAsyncComponent(() => import('./JsiteServerRenewalDialog.vue')); + + renderDialog(h(JsiteServerRenewalDialog, { + server: this.server, + serverDoc: this.$jsiteServer.pg, + onSuccess: this.onRenewalSuccess + })); }, async restartServer() { if (!this.$jsiteServer.pg.instance_id) { @@ -501,6 +487,11 @@ export default { }); } }, + onRenewalSuccess(data) { + toast.success('服务器续费成功!'); + // 刷新服务器数据 + this.$jsiteServer.reload(); + }, }, computed: { serverInformation() { diff --git a/dashboard/src2/components/JsiteServerRenewalDialog.vue b/dashboard/src2/components/JsiteServerRenewalDialog.vue new file mode 100644 index 0000000..920f415 --- /dev/null +++ b/dashboard/src2/components/JsiteServerRenewalDialog.vue @@ -0,0 +1,541 @@ + + + + + \ No newline at end of file