From fd8b36dcc2f73ef8625fb467f9c941dafbb97261 Mon Sep 17 00:00:00 2001 From: dushixiang Date: Sun, 6 Nov 2022 18:04:11 +0800 Subject: [PATCH] =?UTF-8?q?-=20=E5=A2=9E=E5=8A=A0=E8=B5=84=E4=BA=A7?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E4=BD=BF=E7=94=A8IP=E7=AB=AF=E5=8F=A3?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E7=9A=84=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/api/asset.go | 3 ++- server/repository/asset.go | 7 ++++++- web/src/components/asset/Asset.js | 15 ++++++++++++++- 3 files changed, 22 insertions(+), 3 deletions(-) diff --git a/server/api/asset.go b/server/api/asset.go index 02133e0..78befc9 100644 --- a/server/api/asset.go +++ b/server/api/asset.go @@ -118,12 +118,13 @@ func (assetApi AssetApi) AssetPagingEndpoint(c echo.Context) error { protocol := c.QueryParam("protocol") tags := c.QueryParam("tags") ip := c.QueryParam("ip") + port := c.QueryParam("port") active := c.QueryParam("active") order := c.QueryParam("order") field := c.QueryParam("field") - items, total, err := repository.AssetRepository.Find(context.Background(), pageIndex, pageSize, name, protocol, tags, ip, active, order, field) + items, total, err := repository.AssetRepository.Find(context.Background(), pageIndex, pageSize, name, protocol, tags, ip, port, active, order, field) if err != nil { return err } diff --git a/server/repository/asset.go b/server/repository/asset.go index 79f2929..3fc56de 100644 --- a/server/repository/asset.go +++ b/server/repository/asset.go @@ -43,7 +43,7 @@ func (r assetRepository) FindByProtocolAndIds(c context.Context, protocol string return } -func (r assetRepository) Find(c context.Context, pageIndex, pageSize int, name, protocol, tags, ip, active, order, field string) (o []model.AssetForPage, total int64, err error) { +func (r assetRepository) Find(c context.Context, pageIndex, pageSize int, name, protocol, tags, ip, port, active, order, field string) (o []model.AssetForPage, total int64, err error) { db := r.GetDB(c).Table("assets").Select("assets.id,assets.name,assets.ip,assets.port,assets.protocol,assets.active,assets.active_message,assets.owner,assets.created,assets.tags,assets.description, users.nickname as owner_name").Joins("left join users on assets.owner = users.id") dbCounter := r.GetDB(c).Table("assets") @@ -57,6 +57,11 @@ func (r assetRepository) Find(c context.Context, pageIndex, pageSize int, name, dbCounter = dbCounter.Where("assets.ip like ?", "%"+ip+"%") } + if len(port) > 0 { + db = db.Where("assets.port = ?", port) + dbCounter = dbCounter.Where("assets.port = ?", ip) + } + if len(protocol) > 0 { db = db.Where("assets.protocol = ?", protocol) dbCounter = dbCounter.Where("assets.protocol = ?", protocol) diff --git a/web/src/components/asset/Asset.js b/web/src/components/asset/Asset.js index 98326dc..a064619 100644 --- a/web/src/components/asset/Asset.js +++ b/web/src/components/asset/Asset.js @@ -116,7 +116,9 @@ const Asset = () => { title: '网络', dataIndex: 'network', key: 'network', - hideInSearch: true, + fieldProps: { + placeholder: '示例: 127.0.0.1:22' + }, render: (text, record) => { return `${record['ip'] + ':' + record['port']}`; } @@ -346,6 +348,15 @@ const Asset = () => { order = Object.values(sort)[0]; } + let ip, port; + if (params.network) { + let split = params.network.split(':'); + if (split.length >= 2) { + ip = split[0]; + port = split[1]; + } + } + let queryParams = { pageIndex: params.current, pageSize: params.pageSize, @@ -354,6 +365,8 @@ const Asset = () => { protocol: params.protocol, active: params.active, 'tags': params.tags?.join(','), + ip: ip, + port: port, field: field, order: order }