按钮允许点击

This commit is contained in:
wintsa 2026-05-13 16:32:41 +08:00
parent 6b20b9190e
commit af0bea2e9f
7 changed files with 111 additions and 7 deletions

View File

@ -0,0 +1 @@
[ 550538ms] [INFO] %cDownload the React DevTools for a better development experience: https://react.dev/link/react-devtools font-weight:bold @ http://127.0.0.1:5173/node_modules/.vite/deps/react-dom_client.js?v=ae174d51:20102

View File

@ -0,0 +1,2 @@
[ 136ms] [INFO] %cDownload the React DevTools for a better development experience: https://react.dev/link/react-devtools font-weight:bold @ http://127.0.0.1:5173/node_modules/.vite/deps/react-dom_client.js?v=ae174d51:20102
[ 595ms] [ERROR] Failed to load resource: the server responded with a status of 404 (Not Found) @ http://127.0.0.1:5173/favicon.ico:0

View File

@ -0,0 +1,80 @@
- main [ref=e3]:
- generic:
- generic: 众为数字化管理平台
- generic: 众为数字化管理平台
- generic: 众为数字化管理平台
- generic: 众为数字化管理平台
- generic: 众为数字化管理平台
- generic: 众为数字化管理平台
- generic: 众为数字化管理平台
- generic: 众为数字化管理平台
- generic: 众为数字化管理平台
- generic: 众为数字化管理平台
- generic: 众为数字化管理平台
- generic: 众为数字化管理平台
- generic: 众为数字化管理平台
- generic: 众为数字化管理平台
- generic: 众为数字化管理平台
- generic: 众为数字化管理平台
- generic: 众为数字化管理平台
- generic: 众为数字化管理平台
- region "年度费用模板" [ref=e4]:
- generic "筛选条件" [ref=e5]:
- button "省市区" [ref=e6] [cursor=pointer]:
- img [ref=e7]
- generic [ref=e11]: 省市区
- button "自然地理区位" [ref=e12] [cursor=pointer]:
- img [ref=e13]
- generic [ref=e16]: 自然地理区位
- button "设施类别" [ref=e17] [cursor=pointer]:
- img [ref=e18]
- generic [ref=e22]: 设施类别
- button "建设阶段" [ref=e23] [cursor=pointer]:
- img [ref=e24]
- generic [ref=e29]: 建设阶段
- button "规划形式" [ref=e30] [cursor=pointer]:
- img [ref=e31]
- generic [ref=e36]: 规划形式
- region "年度总费用图表" [ref=e37]:
- generic [ref=e38]:
- button "纵坐标:造价(元)" [ref=e40] [cursor=pointer]: 造价(元)
- generic [ref=e41]:
- figure "图表共有0个系列":
- generic [ref=e42]:
- img "interactive chart":
- generic:
- img
- img
- region [ref=e43]
- toolbar "标注" [ref=e44]:
- button "库" [ref=e45] [cursor=pointer]:
- generic:
- generic:
- button "树" [ref=e46] [cursor=pointer]:
- generic:
- generic:
- button "均" [ref=e47] [cursor=pointer]:
- generic:
- button "Line Tool" [disabled] [ref=e48]
- button "Text Tool" [disabled] [ref=e49]
- button "Shape Tool" [disabled] [ref=e50]
- button "Fibonacci Tool" [disabled] [ref=e51]
- button "全屏(F11)" [ref=e52] [cursor=pointer]
- button "Clear annotations" [disabled] [ref=e53]
- status:
- generic: 请选择右侧分类项
- toolbar "缩放" [ref=e54]:
- button "缩小" [disabled] [ref=e55]
- button "放大" [ref=e56] [cursor=pointer]
- button "左移" [disabled] [ref=e57]
- button "右移" [disabled] [ref=e58]
- button "重置" [disabled] [ref=e59]
- complementary "选择内容" [ref=e60]:
- tablist "选择内容切换项" [ref=e61]:
- tab "自然地理区位" [selected] [ref=e62] [cursor=pointer]
- tab "设施类别" [ref=e63] [cursor=pointer]
- tab "建设阶段" [ref=e64] [cursor=pointer]
- tab "规划形式" [ref=e65] [cursor=pointer]
- generic [ref=e66]:
- generic [ref=e67]: 自然地理区位
- generic [ref=e68]: 加载中

View File

@ -1463,18 +1463,27 @@ function App() {
button.setAttribute(name, value); button.setAttribute(name, value);
} }
}; };
const enableCustomToolbarButton = (button: HTMLButtonElement) => {
if (button.disabled) {
button.disabled = false;
}
if (button.hasAttribute('disabled')) {
button.removeAttribute('disabled');
}
setButtonAttribute(button, 'aria-disabled', 'false');
};
const syncToolbarButtons = () => { const syncToolbarButtons = () => {
const templateButton = getTemplateButton(); const templateButton = getTemplateButton();
if (templateButton) { if (templateButton) {
templateButton.classList.add('chart-template-button'); templateButton.classList.add('chart-template-button');
setButtonAttribute(templateButton, 'aria-disabled', 'false'); enableCustomToolbarButton(templateButton);
setButtonAttribute(templateButton, 'aria-expanded', String(filterModalKey === 'templateLibrary')); setButtonAttribute(templateButton, 'aria-expanded', String(filterModalKey === 'templateLibrary'));
} }
const indicatorButton = getIndicatorButton(); const indicatorButton = getIndicatorButton();
if (indicatorButton) { if (indicatorButton) {
indicatorButton.classList.add('chart-indicator-button'); indicatorButton.classList.add('chart-indicator-button');
setButtonAttribute(indicatorButton, 'aria-disabled', 'false'); enableCustomToolbarButton(indicatorButton);
setButtonAttribute(indicatorButton, 'aria-expanded', String(filterModalKey === 'indicatorTree')); setButtonAttribute(indicatorButton, 'aria-expanded', String(filterModalKey === 'indicatorTree'));
} }
@ -1489,7 +1498,7 @@ function App() {
const isFullscreen = document.fullscreenElement === fullscreenTarget; const isFullscreen = document.fullscreenElement === fullscreenTarget;
button.classList.add('chart-fullscreen-button'); button.classList.add('chart-fullscreen-button');
button.classList.toggle('ag-charts-toolbar__button--active', isFullscreen); button.classList.toggle('ag-charts-toolbar__button--active', isFullscreen);
setButtonAttribute(button, 'aria-disabled', 'false'); enableCustomToolbarButton(button);
setButtonAttribute(button, 'aria-pressed', String(isFullscreen)); setButtonAttribute(button, 'aria-pressed', String(isFullscreen));
icon?.classList.toggle('anticon-arrow-salt', !isFullscreen); icon?.classList.toggle('anticon-arrow-salt', !isFullscreen);
icon?.classList.toggle('anticon-shrink', isFullscreen); icon?.classList.toggle('anticon-shrink', isFullscreen);
@ -1498,7 +1507,7 @@ function App() {
const statisticButton = getStatisticButton(); const statisticButton = getStatisticButton();
if (statisticButton) { if (statisticButton) {
statisticButton.classList.add('chart-statistic-button'); statisticButton.classList.add('chart-statistic-button');
setButtonAttribute(statisticButton, 'aria-disabled', 'false'); enableCustomToolbarButton(statisticButton);
setButtonAttribute(statisticButton, 'aria-expanded', String(statisticMenuOpen)); setButtonAttribute(statisticButton, 'aria-expanded', String(statisticMenuOpen));
} }
}; };
@ -1586,6 +1595,7 @@ function App() {
window.setTimeout(syncToolbarButtons, 0), window.setTimeout(syncToolbarButtons, 0),
window.setTimeout(syncToolbarButtons, 100), window.setTimeout(syncToolbarButtons, 100),
window.setTimeout(syncToolbarButtons, 500), window.setTimeout(syncToolbarButtons, 500),
window.setTimeout(syncToolbarButtons, 1000),
]; ];
document.addEventListener('keydown', handleKeyDown, true); document.addEventListener('keydown', handleKeyDown, true);
document.addEventListener('fullscreenchange', handleFullscreenChange); document.addEventListener('fullscreenchange', handleFullscreenChange);
@ -1606,7 +1616,7 @@ function App() {
frame.removeEventListener('keydown', handleToolbarKeyDown, true); frame.removeEventListener('keydown', handleToolbarKeyDown, true);
observer.disconnect(); observer.disconnect();
}; };
}, [appliedFilters, filterModalKey, filterTreeByKey, statisticMenuOpen]); }, [activeContentKey, appliedFilters, filterModalKey, filterTreeByKey, selectedContentNodes.length, statisticMenuOpen]);
const chartOptions = useMemo<AgCartesianChartOptions>(() => { const chartOptions = useMemo<AgCartesianChartOptions>(() => {
const groupNames: string[] = []; const groupNames: string[] = [];

View File

@ -361,8 +361,12 @@ button {
.chart-frame .chart-template-button, .chart-frame .chart-template-button,
.chart-frame .chart-indicator-button, .chart-frame .chart-indicator-button,
.chart-frame .chart-statistic-button { .chart-frame .chart-statistic-button,
.chart-frame .chart-fullscreen-button {
color: #46413b; color: #46413b;
cursor: pointer !important;
opacity: 1 !important;
pointer-events: auto !important;
} }
.chart-frame .ag-charts-myButton-template, .chart-frame .ag-charts-myButton-template,
@ -378,7 +382,8 @@ button {
.chart-frame .chart-template-button[aria-expanded="true"], .chart-frame .chart-template-button[aria-expanded="true"],
.chart-frame .chart-indicator-button[aria-expanded="true"], .chart-frame .chart-indicator-button[aria-expanded="true"],
.chart-frame .chart-statistic-button[aria-expanded="true"] { .chart-frame .chart-statistic-button[aria-expanded="true"],
.chart-frame .chart-fullscreen-button.ag-charts-toolbar__button--active {
color: #0078a8; color: #0078a8;
border-color: rgba(0, 120, 168, 0.36); border-color: rgba(0, 120, 168, 0.36);
background: rgba(255, 252, 248, 0.94); background: rgba(255, 252, 248, 0.94);

1
vite-test.err.log Normal file
View File

@ -0,0 +1 @@
$ vite --host 0.0.0.0 --host "127.0.0.1" --port "5173"

5
vite-test.out.log Normal file
View File

@ -0,0 +1,5 @@
VITE v7.3.2 ready in 283 ms
➜ Local: http://127.0.0.1:5173/
 ➜ press h + enter to show help