From 224c27d7968eb109c30623c5fbfba98a5024544c Mon Sep 17 00:00:00 2001 From: net909 Date: Sat, 24 Jan 2026 12:27:38 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E9=9D=92=E4=BA=91DNS?= =?UTF-8?q?=E7=BF=BB=E9=A1=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/lib/DnsHelper.php | 5 ++- app/lib/dns/qingcloud.php | 3 +- app/view/domain/qingcloud.html | 71 ++++++++++++++++++++++++++++++++-- config/app.php | 2 +- 4 files changed, 73 insertions(+), 8 deletions(-) diff --git a/app/lib/DnsHelper.php b/app/lib/DnsHelper.php index b2d06f5..d201eb5 100644 --- a/app/lib/DnsHelper.php +++ b/app/lib/DnsHelper.php @@ -320,7 +320,7 @@ class DnsHelper 'log' => false, 'weight' => true, 'page' => false, - 'add' => true, + 'add' => false, ], 'bt' => [ 'name' => '宝塔域名', @@ -475,7 +475,7 @@ class DnsHelper 'log' => false, 'weight' => false, 'page' => false, - 'add' => true, + 'add' => false, ], 'powerdns' => [ 'name' => 'PowerDNS', @@ -620,6 +620,7 @@ class DnsHelper 'baidu' => ['DEF' => 'default', 'CT' => 'ct', 'CU' => 'cnc', 'CM' => 'cmnet', 'AB' => ''], 'jdcloud' => ['DEF' => '-1', 'CT' => '1', 'CU' => '2', 'CM' => '3', 'AB' => '4'], 'bt' => ['DEF' => '0', 'CT' => '285344768', 'CU' => '285345792', 'CM' => '285346816'], + 'qingcloud' => ['DEF' => '0', 'CT' => '2', 'CU' => '3', 'CM' => '4', 'AB' => '8'], 'cloudflare' => ['DEF' => '0'], 'namesilo' => ['DEF' => 'default'], 'powerdns' => ['DEF' => 'default'], diff --git a/app/lib/dns/qingcloud.php b/app/lib/dns/qingcloud.php index 789a01c..5420585 100644 --- a/app/lib/dns/qingcloud.php +++ b/app/lib/dns/qingcloud.php @@ -65,7 +65,8 @@ class qingcloud implements DnsInterface if ($SubDomain) { return $this->getHostRecords($SubDomain); } - $param = ['zone_name' => $this->domainid, 'offset' => 0, 'limit' => 100]; + $offset = ($PageNumber - 1) * $PageSize; + $param = ['zone_name' => $this->domainid, 'offset' => $offset, 'limit' => $PageSize]; if (!isNullOrEmpty($KeyWord)) { $param['search_word'] = $KeyWord; } diff --git a/app/view/domain/qingcloud.html b/app/view/domain/qingcloud.html index c8d121f..9bea0fa 100644 --- a/app/view/domain/qingcloud.html +++ b/app/view/domain/qingcloud.html @@ -5,7 +5,6 @@ td{overflow: hidden;text-overflow: ellipsis;white-space: nowrap;max-width:360px;} .dns-parent-row { cursor: pointer; } .dns-child-row td { background: #fafafa; } -.dns-child-row td:nth-child(4) { padding-left: 24px; } .dns-child-empty td { background:#fafafa; } .glyphicon-spin { animation: spin 1s infinite linear; } @keyframes spin { from {transform:rotate(0deg);} to {transform:rotate(360deg);} } @@ -126,7 +125,7 @@ td{overflow: hidden;text-overflow: ellipsis;white-space: nowrap;max-width:360px; 线路类型 记录类型 模式 - 记录值 + 记录值 TTL 状态 操作 @@ -193,6 +192,33 @@ td{overflow: hidden;text-overflow: ellipsis;white-space: nowrap;max-width:360px; +
+
+ 共 {{ total }} 条,当前第 {{ currentPage }} / {{ totalPages }} 页 +
+ +
+ +
+
@@ -228,6 +254,9 @@ new Vue({ mx: 10, }, keyword: '', + total: 0, + offset: 0, + limit: 10, parents: [], expandedMap: {}, // {pid: true/false} loadingMap: {}, // {pid: true/false} @@ -241,6 +270,29 @@ new Vue({ ] }; }, + computed: { + currentPage: function () { + return Math.floor(this.offset / this.limit) + 1; + }, + totalPages: function () { + return Math.max(1, Math.ceil(this.total / this.limit)); + }, + pageList: function () { + // 显示最多 5 个页码,居中 + var totalPages = this.totalPages; + var cur = this.currentPage; + var windowSize = 5; + var half = Math.floor(windowSize / 2); + + var start = Math.max(1, cur - half); + var end = Math.min(totalPages, start + windowSize - 1); + start = Math.max(1, end - windowSize + 1); + + var arr = []; + for (var i = start; i <= end; i++) arr.push(i); + return arr; + } + }, mounted: function () { this.loadParents(); $('[data-toggle="tooltip"]').tooltip(); @@ -251,20 +303,31 @@ new Vue({ var vm = this; vm.loading = true; vm.expandedMap = {}; + vm.loadingMap = {}; vm.childrenMap = {}; $.ajax({ url: '/record/data/{$domainId}', method: 'POST', - data: { keyword: vm.keyword }, + data: { keyword: vm.keyword, offset: vm.offset, limit: vm.limit }, dataType: 'json' }).done(function (res) { vm.loading = false; - vm.parents = (res && res.rows) ? res.rows : []; + vm.total = res.total || 0; + vm.parents = res.rows || []; }).fail(function () { layer.msg('加载父级列表失败'); }); }, + goPage: function (page) { + if (!page) return; + page = Math.max(1, Math.min(this.totalPages, page)); + if (page === this.currentPage) return; + + this.offset = (page - 1) * this.limit; + this.loadParents(); + }, + toggleParent: function (p) { var pid = p.RecordId; diff --git a/config/app.php b/config/app.php index b7ea814..d2a1174 100644 --- a/config/app.php +++ b/config/app.php @@ -31,7 +31,7 @@ return [ 'show_error_msg' => true, 'exception_tmpl' => \think\facade\App::getAppPath() . 'view/exception.tpl', - 'version' => '1045', + 'version' => '1046', 'dbversion' => '1045' ];