fix: 修复下载/访问记录弹窗内容不渲染(VModal+OverlayScrollbars 下 v-if 插入报错)

- RecordsDrawer 改用 v-show 常驻渲染,避免打开弹窗后动态插入节点触发 insertBefore 异常
- 版本 1.3.2
This commit is contained in:
shirainbown
2026-08-10 18:18:39 +08:00
parent 27569315a9
commit 5007961329
6 changed files with 13 additions and 8 deletions
+1 -1
View File
@@ -1 +1 @@
version=1.3.1
version=1.3.2
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1 +1 @@
(()=>{"use strict";var e,r,n,t,o,a={"./src/index.ts"(e,r,n){n.d(r,{default:()=>i});var t=n("@halo-dev/components"),o=window.HaloUiShared,a=n("vue"),i=(0,o.definePlugin)({components:{},routes:[{parentName:"Root",route:{path:"/resource-manager",name:"ResourceManager",component:()=>n.e(631).then(n.bind(n,"./src/views/ResourceManager.vue")),meta:{title:"资源访问管理",permissions:["plugin:sharelink:view"],menu:{name:"资源访问管理",group:"content",icon:(0,a.markRaw)(t.IconArrowDownCircleLine),priority:52}}}},{parentName:"Root",route:{path:"/download-manager",name:"DownloadManagerRedirect",redirect:"/resource-manager"}},{parentName:"Root",route:{path:"/link-manager",name:"LinkManagerRedirect",redirect:"/resource-manager"}}],extensionPoints:{}})},"@halo-dev/api-client"(e){e.exports=window.HaloApiClient},"@halo-dev/components"(e){e.exports=window.HaloComponents},vue(e){e.exports=window.Vue}},i={};function s(e){var r=i[e];if(void 0!==r)return r.exports;var n=i[e]={exports:{}};return a[e](n,n.exports,s),n.exports}if(s.m=a,s.d=(e,r,n)=>{var t=(r,n)=>{for(var t in r)s.o(r,t)&&!s.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,[n]:r[t]})};t(r,"get"),t(n,"value")},s.f={},s.e=e=>Promise.all(Object.keys(s.f).reduce((r,n)=>(s.f[n](e,r),r),[])),s.u=e=>631===e?"chunks/631.9382678d.js":""+e+".javascript",s.miniCssF=e=>631===e?"chunks/631.d30af8f8.css":""+e+".css",s.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),e={},r="sharelink:",s.l=function(n,t,o,a){if(e[n])return void e[n].push(t);if(void 0!==o)for(var i,u,l=document.getElementsByTagName("script"),d=0;d<l.length;d++){var c=l[d];if(c.getAttribute("src")==n||c.getAttribute("data-rspack")==r+o){i=c;break}}i||(u=!0,(i=document.createElement("script")).timeout=120,s.nc&&i.setAttribute("nonce",s.nc),i.setAttribute("data-rspack",r+o),i.src=n),e[n]=[t];var p=function(r,t){i.onerror=i.onload=null,clearTimeout(m);var o=e[n];if(delete e[n],i.parentNode&&i.parentNode.removeChild(i),o&&o.forEach(function(e){return e(t)}),r)return r(t)},m=setTimeout(p.bind(null,void 0,{type:"timeout",target:i}),12e4);i.onerror=p.bind(null,i.onerror),i.onload=p.bind(null,i.onload),u&&document.head.appendChild(i)},s.r=e=>{"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},s.p="/plugins/sharelink/assets/console/","u">typeof document){var u=function(e,r,n,t,o,a){var i=document.createElement("link");return i.rel="stylesheet",i.type="text/css",s.nc&&(i.nonce=s.nc),i.href=r,i.onerror=i.onload=function(n){if(i.onerror=i.onload=null,"load"===n.type)t();else{var a=n&&("load"===n.type?"missing":n.type),s=n&&n.target&&n.target.href||r,u=Error("Loading CSS chunk "+e+" failed.\\n("+s+")");u.code="CSS_CHUNK_LOAD_FAILED",u.type=a,u.request=s,i.parentNode&&i.parentNode.removeChild(i),o(u)}},n?n.parentNode.insertBefore(i,n.nextSibling):document.head.appendChild(i),i},l=function(e,r){for(var n=document.getElementsByTagName("link"),t=0;t<n.length;t++){var o=n[t],a=o.getAttribute("data-href")||o.getAttribute("href");if(a&&(a=a.split("?")[0]),"stylesheet"===o.rel&&(a===e||a===r))return o}for(var i=document.getElementsByTagName("style"),t=0;t<i.length;t++){var o=i[t],a=o.getAttribute("data-href");if(a===e||a===r)return o}},d={889:0};s.f.miniCss=function(e,r,n){if(d[e])r.push(d[e]);else 0!==d[e]&&({631:1})[e]&&r.push(d[e]=new Promise(function(r,t){var o=s.miniCssF(e),a=s.p+o;if(l(o,a))return r();u(e,a,null,r,t,n)}).then(function(){d[e]=0},function(r){throw delete d[e],r}))}}n={889:0},s.f.j=function(e,r){var t=s.o(n,e)?n[e]:void 0;if(0!==t)if(t)r.push(t[2]);else{var o=new Promise((r,o)=>t=n[e]=[r,o]);r.push(t[2]=o);var a=s.p+s.u(e),i=Error();s.l(a,function(r){if(s.o(n,e)&&(0!==(t=n[e])&&(n[e]=void 0),t)){var o=r&&("load"===r.type?"missing":r.type),a=r&&r.target&&r.target.src;i.message="Loading chunk "+e+" failed.\n("+o+": "+a+")",i.name="ChunkLoadError",i.type=o,i.request=a,t[1](i)}},"chunk-"+e,e)}},t=(e,r)=>{var t,o,[a,i,u]=r,l=0;if(a.some(e=>0!==n[e])){for(t in i)s.o(i,t)&&(s.m[t]=i[t]);u&&u(s)}for(e&&e(r);l<a.length;l++)o=a[l],s.o(n,o)&&n[o]&&n[o][0](),n[o]=0},(o=window.rspackChunksharelink=window.rspackChunksharelink||[]).forEach(t.bind(null,0)),o.push=t.bind(null,o.push.bind(o));var c=s("./src/index.ts");window.sharelink=c.default})();
(()=>{"use strict";var e,r,n,t,o,a={"./src/index.ts"(e,r,n){n.d(r,{default:()=>i});var t=n("@halo-dev/components"),o=window.HaloUiShared,a=n("vue"),i=(0,o.definePlugin)({components:{},routes:[{parentName:"Root",route:{path:"/resource-manager",name:"ResourceManager",component:()=>n.e(216).then(n.bind(n,"./src/views/ResourceManager.vue")),meta:{title:"资源访问管理",permissions:["plugin:sharelink:view"],menu:{name:"资源访问管理",group:"content",icon:(0,a.markRaw)(t.IconArrowDownCircleLine),priority:52}}}},{parentName:"Root",route:{path:"/download-manager",name:"DownloadManagerRedirect",redirect:"/resource-manager"}},{parentName:"Root",route:{path:"/link-manager",name:"LinkManagerRedirect",redirect:"/resource-manager"}}],extensionPoints:{}})},"@halo-dev/api-client"(e){e.exports=window.HaloApiClient},"@halo-dev/components"(e){e.exports=window.HaloComponents},vue(e){e.exports=window.Vue}},i={};function s(e){var r=i[e];if(void 0!==r)return r.exports;var n=i[e]={exports:{}};return a[e](n,n.exports,s),n.exports}if(s.m=a,s.d=(e,r,n)=>{var t=(r,n)=>{for(var t in r)s.o(r,t)&&!s.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,[n]:r[t]})};t(r,"get"),t(n,"value")},s.f={},s.e=e=>Promise.all(Object.keys(s.f).reduce((r,n)=>(s.f[n](e,r),r),[])),s.u=e=>216===e?"chunks/216.a71ca438.js":""+e+".javascript",s.miniCssF=e=>216===e?"chunks/216.7732423c.css":""+e+".css",s.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),e={},r="sharelink:",s.l=function(n,t,o,a){if(e[n])return void e[n].push(t);if(void 0!==o)for(var i,u,l=document.getElementsByTagName("script"),d=0;d<l.length;d++){var c=l[d];if(c.getAttribute("src")==n||c.getAttribute("data-rspack")==r+o){i=c;break}}i||(u=!0,(i=document.createElement("script")).timeout=120,s.nc&&i.setAttribute("nonce",s.nc),i.setAttribute("data-rspack",r+o),i.src=n),e[n]=[t];var p=function(r,t){i.onerror=i.onload=null,clearTimeout(m);var o=e[n];if(delete e[n],i.parentNode&&i.parentNode.removeChild(i),o&&o.forEach(function(e){return e(t)}),r)return r(t)},m=setTimeout(p.bind(null,void 0,{type:"timeout",target:i}),12e4);i.onerror=p.bind(null,i.onerror),i.onload=p.bind(null,i.onload),u&&document.head.appendChild(i)},s.r=e=>{"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},s.p="/plugins/sharelink/assets/console/","u">typeof document){var u=function(e,r,n,t,o,a){var i=document.createElement("link");return i.rel="stylesheet",i.type="text/css",s.nc&&(i.nonce=s.nc),i.href=r,i.onerror=i.onload=function(n){if(i.onerror=i.onload=null,"load"===n.type)t();else{var a=n&&("load"===n.type?"missing":n.type),s=n&&n.target&&n.target.href||r,u=Error("Loading CSS chunk "+e+" failed.\\n("+s+")");u.code="CSS_CHUNK_LOAD_FAILED",u.type=a,u.request=s,i.parentNode&&i.parentNode.removeChild(i),o(u)}},n?n.parentNode.insertBefore(i,n.nextSibling):document.head.appendChild(i),i},l=function(e,r){for(var n=document.getElementsByTagName("link"),t=0;t<n.length;t++){var o=n[t],a=o.getAttribute("data-href")||o.getAttribute("href");if(a&&(a=a.split("?")[0]),"stylesheet"===o.rel&&(a===e||a===r))return o}for(var i=document.getElementsByTagName("style"),t=0;t<i.length;t++){var o=i[t],a=o.getAttribute("data-href");if(a===e||a===r)return o}},d={889:0};s.f.miniCss=function(e,r,n){if(d[e])r.push(d[e]);else 0!==d[e]&&({216:1})[e]&&r.push(d[e]=new Promise(function(r,t){var o=s.miniCssF(e),a=s.p+o;if(l(o,a))return r();u(e,a,null,r,t,n)}).then(function(){d[e]=0},function(r){throw delete d[e],r}))}}n={889:0},s.f.j=function(e,r){var t=s.o(n,e)?n[e]:void 0;if(0!==t)if(t)r.push(t[2]);else{var o=new Promise((r,o)=>t=n[e]=[r,o]);r.push(t[2]=o);var a=s.p+s.u(e),i=Error();s.l(a,function(r){if(s.o(n,e)&&(0!==(t=n[e])&&(n[e]=void 0),t)){var o=r&&("load"===r.type?"missing":r.type),a=r&&r.target&&r.target.src;i.message="Loading chunk "+e+" failed.\n("+o+": "+a+")",i.name="ChunkLoadError",i.type=o,i.request=a,t[1](i)}},"chunk-"+e,e)}},t=(e,r)=>{var t,o,[a,i,u]=r,l=0;if(a.some(e=>0!==n[e])){for(t in i)s.o(i,t)&&(s.m[t]=i[t]);u&&u(s)}for(e&&e(r);l<a.length;l++)o=a[l],s.o(n,o)&&n[o]&&n[o][0](),n[o]=0},(o=window.rspackChunksharelink=window.rspackChunksharelink||[]).forEach(t.bind(null,0)),o.push=t.bind(null,o.push.bind(o));var c=s("./src/index.ts");window.sharelink=c.default})();
+9 -4
View File
@@ -201,13 +201,18 @@ watch(
</VSpace>
</div>
<VLoading v-if="loading" />
<!--
注意Halo VModal OverlayScrollbars 重排了弹窗内容 DOM
打开弹窗后再用 v-if 插入节点会触发 insertBefore 报错内容丢失
因此这里所有状态始终渲染仅用 v-show 切换显隐
-->
<VLoading v-show="loading" />
<VEmpty
v-else-if="records.length === 0"
v-show="!loading && records.length === 0"
:title="isLink ? '暂无访问记录' : '暂无下载记录'"
:message="isLink ? '该链接还没有产生访问' : '该资源还没有产生下载'"
/>
<div v-else class="table-wrapper">
<div v-show="!loading && records.length > 0" class="table-wrapper">
<table class="records-table">
<thead>
<tr>
@@ -244,7 +249,7 @@ watch(
</table>
</div>
<div v-if="total > 0" class="records-pagination">
<div v-show="total > 0" class="records-pagination">
<VPagination
v-model:page="page"
v-model:size="size"