问答 查看内容
返回列表

想要隐藏数据集的更新入口怎么操作

307 1
发表于 2026-4-10 09:22:22 | 查看全部 阅读模式
想要隐藏数据集的更新入口怎么操作

截图202604100922215081.png

评论1

观小豪楼主Lv.1 发表于 2026-4-10 09:23:31 | 查看全部
关于这个问题,可以使用插件管理功能进行隐藏:
截图202604100923045950.png



  1. <div>(() => {
  2.   <span style="color: #0000ff;">const</span> <span style="color: #008080;">PLUGIN_NAME</span> = <span style="color: #a31515;">'隐藏-数据集数据更新调度'</span>;
  3.   <span style="color: #0000ff;">const</span> hiddenKeys = [<span style="color: #a31515;">'data_set_refresh_api'</span>];
  4.   <span style="color: #0000ff;">const</span> <span style="color: #008080;">UPDATE_ROUTE_PATTERN</span> = <span style="color: #800000;">/\/data-center\/data-sets\/[^/]+\/[^/]+\/details\/update(?:[/</span>?<span style="color: #cd3131;">#</span>]|$)/;
  5.   <span style="color: #0000ff;">const</span> <span style="color: #008080;">DATASET_DETAIL_ROUTE_PATTERN</span> = <span style="color: #800000;">/\/data-center\/data-sets\/[^/]+\/[^/]+\/details(?:[/</span>?<span style="color: #cd3131;">#</span>]|$)/;
  6.   <span style="color: #0000ff;">const</span> <span style="color: #008080;">OVERVIEW_ROUTE_REPLACER</span> = <span style="color: #a31515;">'/details/overview'</span>;
  7.   <span style="color: #0000ff;">const</span> <span style="color: #008080;">TAB_TEXTS</span> = [<span style="color: #a31515;">'数据更新'</span>];
  8.   <span style="color: #0000ff;">const</span> <span style="color: #008080;">BUTTON_TEXTS</span> = [<span style="color: #a31515;">'更新'</span>];

  9.   <span style="color: #0000ff;">const</span> dispatchHiddenKeys = () => {
  10.     <span style="color: #0000ff;">if</span> (!window.<span style="color: #008080;">GD</span> || <span style="color: #0000ff;">typeof</span> window.<span style="color: #008080;">GD</span>.dispatch !== <span style="color: #a31515;">'function'</span>) {
  11.       console.warn(<span style="color: #a31515;">`[</span>${<span style="color: #008080;">PLUGIN_NAME</span>}<span style="color: #a31515;">] GD.dispatch is unavailable`</span>);
  12.       <span style="color: #0000ff;">return</span>;
  13.     }
  14.     window.<span style="color: #008080;">GD</span>.dispatch(<span style="color: #a31515;">'config-display-control'</span>, { hiddenKeys });
  15.   };

  16.   <span style="color: #0000ff;">const</span> hideByText = (texts, scope = document) => {
  17.     <span style="color: #0000ff;">const</span> elements = <span style="color: #008080;">Array</span>.<span style="color: #0000ff;">from</span>(scope.querySelectorAll(<span style="color: #a31515;">'*'</span>));
  18.     elements.forEach((el) => {
  19.       <span style="color: #0000ff;">const</span> text = (el.textContent || <span style="color: #a31515;">''</span>).trim();
  20.       <span style="color: #0000ff;">if</span> (!text || !texts.includes(text)) <span style="color: #0000ff;">return</span>;
  21.       <span style="color: #0000ff;">if</span> (!(el <span style="color: #0000ff;">instanceof</span> <span style="color: #008080;">HTMLElement</span>)) <span style="color: #0000ff;">return</span>;
  22.       el.style.display = <span style="color: #a31515;">'none'</span>;
  23.     });
  24.   };

  25.   <span style="color: #0000ff;">const</span> hideUpdateEntry = () => {
  26.     <span style="color: #0000ff;">if</span> (!<span style="color: #008080;">DATASET_DETAIL_ROUTE_PATTERN</span>.test(window.location.href)) <span style="color: #0000ff;">return</span>;
  27.     hideByText(<span style="color: #008080;">TAB_TEXTS</span>);
  28.     hideByText(<span style="color: #008080;">BUTTON_TEXTS</span>);
  29.   };

  30.   <span style="color: #0000ff;">const</span> hideUpdatePageBlocks = () => {
  31.     <span style="color: #0000ff;">if</span> (!<span style="color: #008080;">UPDATE_ROUTE_PATTERN</span>.test(window.location.href)) <span style="color: #0000ff;">return</span>;
  32.     <span style="color: #0000ff;">const</span> keywords = [<span style="color: #a31515;">'调度状态'</span>, <span style="color: #a31515;">'数据更新周期'</span>, <span style="color: #a31515;">'更新周期'</span>, <span style="color: #a31515;">'设置更新周期'</span>, <span style="color: #a31515;">'24h定时更新任务密度图'</span>];
  33.     <span style="color: #0000ff;">const</span> nodes = <span style="color: #008080;">Array</span>.<span style="color: #0000ff;">from</span>(document.querySelectorAll(<span style="color: #a31515;">'div, span, label, p'</span>));
  34.     nodes.forEach((node) => {
  35.       <span style="color: #0000ff;">const</span> text = (node.textContent || <span style="color: #a31515;">''</span>).trim();
  36.       <span style="color: #0000ff;">if</span> (!text || !keywords.some((keyword) => text.includes(keyword))) <span style="color: #0000ff;">return</span>;
  37.       <span style="color: #0000ff;">const</span> container = node.closest(<span style="color: #a31515;">'.row-flex, .column-flex, .ant-row, .gd-card, div'</span>);
  38.       <span style="color: #0000ff;">if</span> (container <span style="color: #0000ff;">instanceof</span> <span style="color: #008080;">HTMLElement</span>) {
  39.         container.style.display = <span style="color: #a31515;">'none'</span>;
  40.       } <span style="color: #0000ff;">else</span> <span style="color: #0000ff;">if</span> (node <span style="color: #0000ff;">instanceof</span> <span style="color: #008080;">HTMLElement</span>) {
  41.         node.style.display = <span style="color: #a31515;">'none'</span>;
  42.       }
  43.     });
  44.   };

  45.   <span style="color: #0000ff;">const</span> redirectUpdatePage = () => {
  46.     <span style="color: #0000ff;">const</span> { href } = window.location;
  47.     <span style="color: #0000ff;">if</span> (!<span style="color: #008080;">UPDATE_ROUTE_PATTERN</span>.test(href)) <span style="color: #0000ff;">return</span>;
  48.     <span style="color: #0000ff;">const</span> nextUrl = href.replace(<span style="color: #a31515;">'/details/update'</span>, <span style="color: #008080;">OVERVIEW_ROUTE_REPLACER</span>);
  49.     <span style="color: #0000ff;">if</span> (nextUrl !== href) {
  50.       window.location.replace(nextUrl);
  51.     }
  52.   };

  53.   <span style="color: #0000ff;">const</span> apply = () => {
  54.     dispatchHiddenKeys();
  55.     hideUpdateEntry();
  56.     hideUpdatePageBlocks();
  57.     redirectUpdatePage();
  58.     console.log(<span style="color: #a31515;">`[</span>${<span style="color: #008080;">PLUGIN_NAME</span>}<span style="color: #a31515;">] applied`</span>);
  59.   };

  60.   <span style="color: #0000ff;">const</span> scheduleApply = () => {
  61.     apply();
  62.     setTimeout(apply, <span style="color: #098658;">300</span>);
  63.     setTimeout(apply, <span style="color: #098658;">1000</span>);
  64.     setTimeout(apply, <span style="color: #098658;">3000</span>);
  65.   };

  66.   <span style="color: #0000ff;">const</span> observer = <span style="color: #0000ff;">new</span> <span style="color: #008080;">MutationObserver</span>(() => {
  67.     hideUpdateEntry();
  68.     hideUpdatePageBlocks();
  69.   });

  70.   <span style="color: #0000ff;">if</span> (document.readyState === <span style="color: #a31515;">'loading'</span>) {
  71.     document.addEventListener(<span style="color: #a31515;">'DOMContentLoaded'</span>, scheduleApply, { once: <span style="color: #0000ff;">true</span> });
  72.   } <span style="color: #0000ff;">else</span> {
  73.     scheduleApply();
  74.   }

  75.   observer.observe(document.documentElement, { childList: <span style="color: #0000ff;">true</span>, subtree: <span style="color: #0000ff;">true</span> });
  76.   window.addEventListener(<span style="color: #a31515;">'load'</span>, scheduleApply);
  77.   window.addEventListener(<span style="color: #a31515;">'hashchange'</span>, scheduleApply);
  78.   window.addEventListener(<span style="color: #a31515;">'popstate'</span>, scheduleApply);
  79.   document.addEventListener(<span style="color: #a31515;">'visibilitychange'</span>, () => {
  80.     <span style="color: #0000ff;">if</span> (!document.hidden) scheduleApply();
  81.   });
  82. })();</div>
复制代码




插件管理介绍:https://docs.guandata.com/product/bi/575594549863251968

回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

微信服务号
联系我们
电话:400-880-0750
邮箱:hello@guandata.com
Copyright © 2001-2026 观远社区 版权所有 All Rights Reserved. 浙 ICP 备15006424号-3
去回复 去发帖 返回顶部
快速回复 返回顶部 返回列表