问答 查看内容
返回列表

已经配置好的数据集需要隐藏模型结构怎么操作?

28 1
发表于 昨天 16:07 | 查看全部 阅读模式
已经配置好的数据集需要隐藏模型结构怎么操作?

截图202604171607096096.png

评论1

观小豪楼主Lv.1 发表于 昨天 16:07 | 查看全部
关于这个问题,可以使用插件管理功能。

插件代码:


  1. <div>(() => {
  2.   <span style="color: #0000ff;">if</span> (window.__hideDatasetModelStructureUATApplied) <span style="color: #0000ff;">return</span>;
  3.   window.__hideDatasetModelStructureUATApplied = <span style="color: #0000ff;">true</span>;

  4.   <span style="color: #0000ff;">const</span> <span style="color: #008080;">PLUGIN_NAME</span> = <span style="color: #a31515;">'隐藏-数据集模型结构-UAT'</span>;
  5.   <span style="color: #0000ff;">const</span> <span style="color: #008080;">TARGET_TEST_ID</span> = <span style="color: #a31515;">'ds-detail-data-model'</span>;
  6.   <span style="color: #0000ff;">const</span> <span style="color: #008080;">MODEL_ROUTE_PATTERN</span> = <span style="color: #800000;">/(?:^|\/)data-center\/data-sets\/([^/]+)\/([^/]+)\/details\/data-model(?:[/</span>?<span style="color: #cd3131;">#</span>]|$)/;
  7.   <span style="color: #0000ff;">let</span> scheduled = <span style="color: #0000ff;">false</span>;
  8.   <span style="color: #0000ff;">let</span> hasLoggedDispatch = <span style="color: #0000ff;">false</span>;
  9.   <span style="color: #0000ff;">let</span> hasLoggedHidden = <span style="color: #0000ff;">false</span>;

  10.   <span style="color: #0000ff;">const</span> log = (...args) => console.log(<span style="color: #a31515;">`[</span>${<span style="color: #008080;">PLUGIN_NAME</span>}<span style="color: #a31515;">]`</span>, ...args);

  11.   <span style="color: #0000ff;">const</span> injectStyle = () => {
  12.     <span style="color: #0000ff;">const</span> styleId = <span style="color: #a31515;">`</span>${<span style="color: #008080;">PLUGIN_NAME</span>}<span style="color: #a31515;">-style`</span>;
  13.     <span style="color: #0000ff;">if</span> (document.getElementById(styleId)) <span style="color: #0000ff;">return</span>;

  14.     <span style="color: #0000ff;">const</span> style = document.createElement(<span style="color: #a31515;">'style'</span>);
  15.     style.id = styleId;
  16.     style.textContent = <span style="color: #a31515;">`</span>
  17. <span style="color: #a31515;">      [data-testid="</span>${<span style="color: #008080;">TARGET_TEST_ID</span>}<span style="color: #a31515;">"] {</span>
  18. <span style="color: #a31515;">        display: none !important;</span>
  19. <span style="color: #a31515;">      }</span>

  20. <span style="color: #a31515;">      .ant-tabs-tab:has([data-testid="</span>${<span style="color: #008080;">TARGET_TEST_ID</span>}<span style="color: #a31515;">"]),</span>
  21. <span style="color: #a31515;">      .gd-tabs-tab:has([data-testid="</span>${<span style="color: #008080;">TARGET_TEST_ID</span>}<span style="color: #a31515;">"]),</span>
  22. <span style="color: #a31515;">      [role="tab"]:has([data-testid="</span>${<span style="color: #008080;">TARGET_TEST_ID</span>}<span style="color: #a31515;">"]) {</span>
  23. <span style="color: #a31515;">        display: none !important;</span>
  24. <span style="color: #a31515;">      }</span>
  25. <span style="color: #a31515;">    `</span>;
  26.     document.head.appendChild(style);
  27.   };

  28.   <span style="color: #0000ff;">const</span> hideTabByDom = () => {
  29.     <span style="color: #0000ff;">const</span> node = document.querySelector(<span style="color: #a31515;">`[data-testid="</span>${<span style="color: #008080;">TARGET_TEST_ID</span>}<span style="color: #a31515;">"]`</span>);
  30.     <span style="color: #0000ff;">if</span> (!node) <span style="color: #0000ff;">return</span> <span style="color: #0000ff;">false</span>;

  31.     <span style="color: #0000ff;">const</span> tabNode = node.closest(<span style="color: #a31515;">'.ant-tabs-tab, .gd-tabs-tab, [role="tab"], li, div'</span>);
  32.     <span style="color: #0000ff;">if</span> (tabNode <span style="color: #0000ff;">instanceof</span> <span style="color: #008080;">HTMLElement</span>) {
  33.       tabNode.style.setProperty(<span style="color: #a31515;">'display'</span>, <span style="color: #a31515;">'none'</span>, <span style="color: #a31515;">'important'</span>);
  34.     }

  35.     <span style="color: #0000ff;">if</span> (node <span style="color: #0000ff;">instanceof</span> <span style="color: #008080;">HTMLElement</span>) {
  36.       node.style.setProperty(<span style="color: #a31515;">'display'</span>, <span style="color: #a31515;">'none'</span>, <span style="color: #a31515;">'important'</span>);
  37.     }
  38.     <span style="color: #0000ff;">return</span> <span style="color: #0000ff;">true</span>;
  39.   };

  40.   <span style="color: #0000ff;">const</span> redirectIfModelPage = () => {
  41.     <span style="color: #0000ff;">const</span> match = window.location.pathname.match(<span style="color: #008080;">MODEL_ROUTE_PATTERN</span>);
  42.     <span style="color: #0000ff;">if</span> (!match) <span style="color: #0000ff;">return</span>;

  43.     <span style="color: #0000ff;">const</span> nextUrl = window.location.href.replace(<span style="color: #a31515;">'/details/data-model'</span>, <span style="color: #a31515;">'/details/overview'</span>);

  44.     log(<span style="color: #a31515;">'redirect data-model to overview'</span>, nextUrl);
  45.     window.history.replaceState(<span style="color: #0000ff;">null</span>, <span style="color: #a31515;">''</span>, nextUrl);
  46.     window.dispatchEvent(<span style="color: #0000ff;">new</span> <span style="color: #008080;">PopStateEvent</span>(<span style="color: #a31515;">'popstate'</span>));
  47.   };

  48.   <span style="color: #0000ff;">const</span> applyDisplayControlLog = () => {
  49.     <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>) {
  50.       log(<span style="color: #a31515;">'GD.dispatch unavailable, DOM hide only'</span>);
  51.       <span style="color: #0000ff;">return</span>;
  52.     }

  53.     window.<span style="color: #008080;">GD</span>.dispatch(<span style="color: #a31515;">'config-display-control'</span>, { hiddenKeys: [] });
  54.     <span style="color: #0000ff;">if</span> (!hasLoggedDispatch) {
  55.       hasLoggedDispatch = <span style="color: #0000ff;">true</span>;
  56.       log(<span style="color: #a31515;">'display-control checked; no verified hiddenKey for dataset model structure'</span>);
  57.     }
  58.   };

  59.   <span style="color: #0000ff;">const</span> apply = () => {
  60.     injectStyle();
  61.     redirectIfModelPage();
  62.     <span style="color: #0000ff;">if</span> (hideTabByDom() && !hasLoggedHidden) {
  63.       hasLoggedHidden = <span style="color: #0000ff;">true</span>;
  64.       log(<span style="color: #a31515;">'model structure tab hidden'</span>);
  65.     }
  66.     applyDisplayControlLog();
  67.   };

  68.   <span style="color: #0000ff;">const</span> scheduleApply = () => {
  69.     <span style="color: #0000ff;">if</span> (scheduled) <span style="color: #0000ff;">return</span>;
  70.     scheduled = <span style="color: #0000ff;">true</span>;
  71.     setTimeout(() => {
  72.       scheduled = <span style="color: #0000ff;">false</span>;
  73.       apply();
  74.     }, <span style="color: #098658;">100</span>);
  75.     apply();
  76.     setTimeout(apply, <span style="color: #098658;">300</span>);
  77.     setTimeout(apply, <span style="color: #098658;">1000</span>);
  78.     setTimeout(apply, <span style="color: #098658;">3000</span>);
  79.   };

  80.   <span style="color: #0000ff;">if</span> (document.readyState === <span style="color: #a31515;">'loading'</span>) {
  81.     document.addEventListener(<span style="color: #a31515;">'DOMContentLoaded'</span>, scheduleApply, { once: <span style="color: #0000ff;">true</span> });
  82.   } <span style="color: #0000ff;">else</span> {
  83.     scheduleApply();
  84.   }

  85.   <span style="color: #0000ff;">new</span> <span style="color: #008080;">MutationObserver</span>(scheduleApply).observe(document.documentElement, {
  86.     childList: <span style="color: #0000ff;">true</span>,
  87.     subtree: <span style="color: #0000ff;">true</span>,
  88.   });

  89.   window.addEventListener(<span style="color: #a31515;">'load'</span>, scheduleApply);
  90.   window.addEventListener(<span style="color: #a31515;">'hashchange'</span>, scheduleApply);
  91.   window.addEventListener(<span style="color: #a31515;">'popstate'</span>, scheduleApply);
  92.   document.addEventListener(<span style="color: #a31515;">'visibilitychange'</span>, () => {
  93.     <span style="color: #0000ff;">if</span> (!document.hidden) scheduleApply();
  94.   });
  95. })();</div>
复制代码




回复

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

本版积分规则

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