From 8357d536bcd439b6d8e024d4036c00e9ecfa44a8 Mon Sep 17 00:00:00 2001 From: zhengkunwang223 Date: Fri, 30 Dec 2022 10:31:54 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0=E7=BD=91=E7=AB=99?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E8=BF=87=E6=9C=9F=E6=97=B6=E9=97=B4=E7=9A=84?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/app/dto/request/website.go | 5 +- backend/app/service/website.go | 7 ++ frontend/src/api/interface/website.ts | 1 + frontend/src/lang/modules/zh.ts | 2 + frontend/src/utils/util.ts | 11 ++ frontend/src/views/website/website/index.vue | 123 +++++++++++++++++-- 6 files changed, 137 insertions(+), 12 deletions(-) diff --git a/backend/app/dto/request/website.go b/backend/app/dto/request/website.go index fff1310f3..ecb38844e 100644 --- a/backend/app/dto/request/website.go +++ b/backend/app/dto/request/website.go @@ -1,6 +1,8 @@ package request -import "github.com/1Panel-dev/1Panel/backend/app/dto" +import ( + "github.com/1Panel-dev/1Panel/backend/app/dto" +) type WebsiteSearch struct { dto.PageInfo @@ -36,6 +38,7 @@ type WebsiteUpdate struct { PrimaryDomain string `json:"primaryDomain" validate:"required"` Remark string `json:"remark"` WebsiteGroupID uint `json:"webSiteGroupID" validate:"required"` + ExpireDate string `json:"expireDate"` } type WebsiteDelete struct { diff --git a/backend/app/service/website.go b/backend/app/service/website.go index 76e67554f..a318157f1 100644 --- a/backend/app/service/website.go +++ b/backend/app/service/website.go @@ -254,6 +254,13 @@ func (w WebsiteService) UpdateWebsite(req request.WebsiteUpdate) error { website.PrimaryDomain = req.PrimaryDomain website.WebsiteGroupID = req.WebsiteGroupID website.Remark = req.Remark + if req.ExpireDate != "" { + expireDate, err := time.Parse(constant.DateLayout, req.ExpireDate) + if err != nil { + return err + } + website.ExpireDate = expireDate + } return websiteRepo.Save(context.TODO(), &website) } diff --git a/frontend/src/api/interface/website.ts b/frontend/src/api/interface/website.ts index 8d641f252..d20e952fa 100644 --- a/frontend/src/api/interface/website.ts +++ b/frontend/src/api/interface/website.ts @@ -67,6 +67,7 @@ export namespace Website { primaryDomain: string; remark: string; webSiteGroupId: number; + expireDate?: string; } export interface WebSiteOp { diff --git a/frontend/src/lang/modules/zh.ts b/frontend/src/lang/modules/zh.ts index 427ff5ac8..e2a9f8aed 100644 --- a/frontend/src/lang/modules/zh.ts +++ b/frontend/src/lang/modules/zh.ts @@ -947,6 +947,8 @@ export default { ext: '文件扩展名', wafInputHelper: '按行输入数据,一行一个', data: '数据', + ever: '永久', + nextYear: '一年后', }, nginx: { serverNamesHashBucketSizeHelper: '服务器名字的hash表大小', diff --git a/frontend/src/utils/util.ts b/frontend/src/utils/util.ts index f510ed500..1f5cc6115 100644 --- a/frontend/src/utils/util.ts +++ b/frontend/src/utils/util.ts @@ -49,6 +49,17 @@ export function dateFromat(row: number, col: number, dataStr: any) { return `${String(y)}-${String(m)}-${String(d)} ${String(h)}:${String(minute)}:${String(second)}`; } +//2016-01-12 +export function dateFromatSimple(dataStr: any) { + const date = new Date(dataStr); + const y = date.getFullYear(); + let m: string | number = date.getMonth() + 1; + m = m < 10 ? `0${String(m)}` : m; + let d: string | number = date.getDate(); + d = d < 10 ? `0${String(d)}` : d; + return `${String(y)}-${String(m)}-${String(d)}`; +} + // 20221013151302 export function dateFromatForName(dataStr: any) { const date = new Date(dataStr); diff --git a/frontend/src/views/website/website/index.vue b/frontend/src/views/website/website/index.vue index 8588de59e..2331e8134 100644 --- a/frontend/src/views/website/website/index.vue +++ b/frontend/src/views/website/website/index.vue @@ -48,9 +48,29 @@ -