1
This commit is contained in:
parent
46325ee801
commit
58abe588aa
3
.playwright-mcp/console-2026-05-13T08-06-15-907Z.log
Normal file
3
.playwright-mcp/console-2026-05-13T08-06-15-907Z.log
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
[ 6918ms] [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
|
||||||
|
[ 7315ms] [ERROR] Failed to load resource: the server responded with a status of 404 (Not Found) @ http://127.0.0.1:5173/favicon.ico:0
|
||||||
|
[ 331036ms] [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
|
||||||
6
.playwright-mcp/console-2026-05-13T08-22-17-883Z.log
Normal file
6
.playwright-mcp/console-2026-05-13T08-22-17-883Z.log
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
[ 300ms] [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
|
||||||
|
[ 1230ms] [ERROR] Failed to load resource: the server responded with a status of 404 (Not Found) @ http://127.0.0.1:5173/favicon.ico:0
|
||||||
|
[ 40506ms] [ERROR] Failed to load resource: the server responded with a status of 401 () @ https://nest.zwgczx.com/api/v1/zw/getBuildingFunctionCostFilterTree?key=templateLibrary¤ttime=1778660578349&__random__=1778660578349:0
|
||||||
|
[ 40812ms] [ERROR] Failed to load resource: the server responded with a status of 401 () @ https://nest.zwgczx.com/api/v1/zw/getBuildingFunctionCostFilterTree?key=indicatorTree&templateId=3¤ttime=1778660578682&__random__=1778660578682:0
|
||||||
|
[ 52231ms] [ERROR] Failed to load resource: the server responded with a status of 401 () @ https://nest.zwgczx.com/api/v1/zw/getBuildingFunctionCostFilterTree?key=templateLibrary¤ttime=1778660590101&__random__=1778660590101:0
|
||||||
|
[ 53824ms] [ERROR] Failed to load resource: the server responded with a status of 401 () @ https://nest.zwgczx.com/api/v1/zw/getBuildingFunctionCostFilterTree?key=indicatorTree&templateId=3¤ttime=1778660591693&__random__=1778660591693:0
|
||||||
84
.playwright-mcp/page-2026-05-13T08-06-23-224Z.yml
Normal file
84
.playwright-mcp/page-2026-05-13T08-06-23-224Z.yml
Normal file
@ -0,0 +1,84 @@
|
|||||||
|
- 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=e27]: 建筑功能
|
||||||
|
- button "建设阶段" [ref=e28] [cursor=pointer]:
|
||||||
|
- img [ref=e29]
|
||||||
|
- generic [ref=e34]: 建设阶段
|
||||||
|
- button "规划形式" [ref=e35] [cursor=pointer]:
|
||||||
|
- img [ref=e36]
|
||||||
|
- generic [ref=e41]: 规划形式
|
||||||
|
- region "年度总费用图表" [ref=e42]:
|
||||||
|
- generic [ref=e43]:
|
||||||
|
- button "纵坐标:造价(元)" [ref=e45] [cursor=pointer]: 造价(元)
|
||||||
|
- generic [ref=e46]:
|
||||||
|
- figure "图表,共有0个系列":
|
||||||
|
- generic [ref=e47]:
|
||||||
|
- img "interactive chart":
|
||||||
|
- generic:
|
||||||
|
- img
|
||||||
|
- img
|
||||||
|
- region [ref=e48]
|
||||||
|
- toolbar "标注" [ref=e49]:
|
||||||
|
- button "库" [ref=e50] [cursor=pointer]:
|
||||||
|
- generic:
|
||||||
|
- generic: 库
|
||||||
|
- button "树" [ref=e51] [cursor=pointer]:
|
||||||
|
- generic:
|
||||||
|
- generic: 树
|
||||||
|
- button "均" [ref=e52] [cursor=pointer]:
|
||||||
|
- generic: 均
|
||||||
|
- button "Line Tool" [disabled] [ref=e53]
|
||||||
|
- button "Text Tool" [disabled] [ref=e54]
|
||||||
|
- button "Shape Tool" [disabled] [ref=e55]
|
||||||
|
- button "Fibonacci Tool" [disabled] [ref=e56]
|
||||||
|
- button "全屏(F11)" [ref=e57] [cursor=pointer]
|
||||||
|
- button "Clear annotations" [disabled] [ref=e58]
|
||||||
|
- status:
|
||||||
|
- generic: 请选择右侧分类项
|
||||||
|
- toolbar "缩放" [ref=e59]:
|
||||||
|
- button "缩小" [disabled] [ref=e60]
|
||||||
|
- button "放大" [ref=e61] [cursor=pointer]
|
||||||
|
- button "左移" [disabled] [ref=e62]
|
||||||
|
- button "右移" [disabled] [ref=e63]
|
||||||
|
- button "重置" [disabled] [ref=e64]
|
||||||
|
- complementary "选择内容" [ref=e65]:
|
||||||
|
- tablist "选择内容切换项" [ref=e66]:
|
||||||
|
- tab "自然地理区位" [selected] [ref=e67] [cursor=pointer]
|
||||||
|
- tab "设施类别" [ref=e68] [cursor=pointer]
|
||||||
|
- tab "建筑功能" [ref=e69] [cursor=pointer]
|
||||||
|
- tab "建设阶段" [ref=e70] [cursor=pointer]
|
||||||
|
- tab "规划形式" [ref=e71] [cursor=pointer]
|
||||||
|
- generic [ref=e72]:
|
||||||
|
- generic [ref=e73]: 自然地理区位
|
||||||
|
- generic [ref=e74]: 加载中
|
||||||
84
.playwright-mcp/page-2026-05-13T08-22-19-114Z.yml
Normal file
84
.playwright-mcp/page-2026-05-13T08-22-19-114Z.yml
Normal file
@ -0,0 +1,84 @@
|
|||||||
|
- 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=e27]: 建筑功能
|
||||||
|
- button "建设阶段" [ref=e28] [cursor=pointer]:
|
||||||
|
- img [ref=e29]
|
||||||
|
- generic [ref=e34]: 建设阶段
|
||||||
|
- button "规划形式" [ref=e35] [cursor=pointer]:
|
||||||
|
- img [ref=e36]
|
||||||
|
- generic [ref=e41]: 规划形式
|
||||||
|
- region "年度总费用图表" [ref=e42]:
|
||||||
|
- generic [ref=e43]:
|
||||||
|
- button "纵坐标:造价(元)" [ref=e45] [cursor=pointer]: 造价(元)
|
||||||
|
- generic [ref=e46]:
|
||||||
|
- figure "图表,共有0个系列":
|
||||||
|
- generic [ref=e47]:
|
||||||
|
- img "interactive chart":
|
||||||
|
- generic:
|
||||||
|
- img
|
||||||
|
- img
|
||||||
|
- region [ref=e48]
|
||||||
|
- toolbar "标注" [ref=e49]:
|
||||||
|
- button "库" [ref=e50] [cursor=pointer]:
|
||||||
|
- generic:
|
||||||
|
- generic: 库
|
||||||
|
- button "树" [ref=e51] [cursor=pointer]:
|
||||||
|
- generic:
|
||||||
|
- generic: 树
|
||||||
|
- button "均" [ref=e52] [cursor=pointer]:
|
||||||
|
- generic: 均
|
||||||
|
- button "Line Tool" [disabled] [ref=e53]
|
||||||
|
- button "Text Tool" [disabled] [ref=e54]
|
||||||
|
- button "Shape Tool" [disabled] [ref=e55]
|
||||||
|
- button "Fibonacci Tool" [disabled] [ref=e56]
|
||||||
|
- button "全屏(F11)" [ref=e57] [cursor=pointer]
|
||||||
|
- button "Clear annotations" [disabled] [ref=e58]
|
||||||
|
- status:
|
||||||
|
- generic: 请选择右侧分类项
|
||||||
|
- toolbar "缩放" [ref=e59]:
|
||||||
|
- button "缩小" [disabled] [ref=e60]
|
||||||
|
- button "放大" [ref=e61] [cursor=pointer]
|
||||||
|
- button "左移" [disabled] [ref=e62]
|
||||||
|
- button "右移" [disabled] [ref=e63]
|
||||||
|
- button "重置" [disabled] [ref=e64]
|
||||||
|
- complementary "选择内容" [ref=e65]:
|
||||||
|
- tablist "选择内容切换项" [ref=e66]:
|
||||||
|
- tab "自然地理区位" [selected] [ref=e67] [cursor=pointer]
|
||||||
|
- tab "设施类别" [ref=e68] [cursor=pointer]
|
||||||
|
- tab "建筑功能" [ref=e69] [cursor=pointer]
|
||||||
|
- tab "建设阶段" [ref=e70] [cursor=pointer]
|
||||||
|
- tab "规划形式" [ref=e71] [cursor=pointer]
|
||||||
|
- generic [ref=e72]:
|
||||||
|
- generic [ref=e73]: 自然地理区位
|
||||||
|
- generic [ref=e74]: 加载中
|
||||||
50
src/App.tsx
50
src/App.tsx
@ -2,7 +2,7 @@ import { useEffect, useMemo, useRef, useState } from 'react';
|
|||||||
import { AgCharts } from 'ag-charts-react';
|
import { AgCharts } from 'ag-charts-react';
|
||||||
import type { AgCartesianChartOptions } from 'ag-charts-community';
|
import type { AgCartesianChartOptions } from 'ag-charts-community';
|
||||||
import { ModuleRegistry } from 'ag-charts-community';
|
import { ModuleRegistry } from 'ag-charts-community';
|
||||||
import { Building2, Construction, LayoutGrid, Library, LocateFixed, MapPinned, Waypoints } from 'lucide-react';
|
import { Building2, Construction, LayoutGrid, Library, LocateFixed, MapPinned, SquareFunction, Waypoints } from 'lucide-react';
|
||||||
import {
|
import {
|
||||||
AnnotationsModule,
|
AnnotationsModule,
|
||||||
ContextMenuModule,
|
ContextMenuModule,
|
||||||
@ -42,6 +42,7 @@ const metricOptions = [
|
|||||||
const contentOptions = [
|
const contentOptions = [
|
||||||
{ key: 'geoLocation', label: '自然地理区位' },
|
{ key: 'geoLocation', label: '自然地理区位' },
|
||||||
{ key: 'facilityType', label: '设施类别' },
|
{ key: 'facilityType', label: '设施类别' },
|
||||||
|
{ key: 'buildingFunction', label: '建筑功能' },
|
||||||
{ key: 'constructionStage', label: '建设阶段' },
|
{ key: 'constructionStage', label: '建设阶段' },
|
||||||
{ key: 'planningForm', label: '规划形式' },
|
{ key: 'planningForm', label: '规划形式' },
|
||||||
] as const;
|
] as const;
|
||||||
@ -52,6 +53,7 @@ const filterOptions = [
|
|||||||
{ key: 'region', label: '省市区', icon: MapPinned },
|
{ key: 'region', label: '省市区', icon: MapPinned },
|
||||||
{ key: 'geoLocation', label: '自然地理区位', icon: LocateFixed },
|
{ key: 'geoLocation', label: '自然地理区位', icon: LocateFixed },
|
||||||
{ key: 'facilityType', label: '设施类别', icon: Building2 },
|
{ key: 'facilityType', label: '设施类别', icon: Building2 },
|
||||||
|
{ key: 'buildingFunction', label: '建筑功能', icon: SquareFunction },
|
||||||
{ key: 'constructionStage', label: '建设阶段', icon: Construction },
|
{ key: 'constructionStage', label: '建设阶段', icon: Construction },
|
||||||
{ key: 'planningForm', label: '规划形式', icon: LayoutGrid },
|
{ key: 'planningForm', label: '规划形式', icon: LayoutGrid },
|
||||||
] as const;
|
] as const;
|
||||||
@ -90,6 +92,17 @@ const contentTreeConfigs = {
|
|||||||
fieldid: '305426',
|
fieldid: '305426',
|
||||||
defaultExpandedLevel: 3,
|
defaultExpandedLevel: 3,
|
||||||
},
|
},
|
||||||
|
buildingFunction: {
|
||||||
|
endpoint: '/api/public/browser/data/256',
|
||||||
|
treeid: '95004',
|
||||||
|
fieldid: '305919',
|
||||||
|
defaultExpandedLevel: 0,
|
||||||
|
browserParams: {
|
||||||
|
workflowid: '182032',
|
||||||
|
wfid: '182032',
|
||||||
|
billid: '-1817',
|
||||||
|
},
|
||||||
|
},
|
||||||
constructionStage: {
|
constructionStage: {
|
||||||
endpoint: '/api/public/browser/data/256',
|
endpoint: '/api/public/browser/data/256',
|
||||||
treeid: '94007',
|
treeid: '94007',
|
||||||
@ -649,6 +662,7 @@ function App() {
|
|||||||
const treeInitialLoadStartedRef = useRef<Record<ContentKey, boolean>>({
|
const treeInitialLoadStartedRef = useRef<Record<ContentKey, boolean>>({
|
||||||
geoLocation: false,
|
geoLocation: false,
|
||||||
facilityType: false,
|
facilityType: false,
|
||||||
|
buildingFunction: false,
|
||||||
constructionStage: false,
|
constructionStage: false,
|
||||||
planningForm: false,
|
planningForm: false,
|
||||||
});
|
});
|
||||||
@ -658,6 +672,7 @@ function App() {
|
|||||||
region: false,
|
region: false,
|
||||||
geoLocation: false,
|
geoLocation: false,
|
||||||
facilityType: false,
|
facilityType: false,
|
||||||
|
buildingFunction: false,
|
||||||
constructionStage: false,
|
constructionStage: false,
|
||||||
planningForm: false,
|
planningForm: false,
|
||||||
});
|
});
|
||||||
@ -670,18 +685,21 @@ function App() {
|
|||||||
const [treeByContent, setTreeByContent] = useState<Record<ContentKey, TreeNode[]>>({
|
const [treeByContent, setTreeByContent] = useState<Record<ContentKey, TreeNode[]>>({
|
||||||
geoLocation: [],
|
geoLocation: [],
|
||||||
facilityType: [],
|
facilityType: [],
|
||||||
|
buildingFunction: [],
|
||||||
constructionStage: [],
|
constructionStage: [],
|
||||||
planningForm: [],
|
planningForm: [],
|
||||||
});
|
});
|
||||||
const [treeLoadingByContent, setTreeLoadingByContent] = useState<Record<ContentKey, boolean>>({
|
const [treeLoadingByContent, setTreeLoadingByContent] = useState<Record<ContentKey, boolean>>({
|
||||||
geoLocation: false,
|
geoLocation: false,
|
||||||
facilityType: false,
|
facilityType: false,
|
||||||
|
buildingFunction: false,
|
||||||
constructionStage: false,
|
constructionStage: false,
|
||||||
planningForm: false,
|
planningForm: false,
|
||||||
});
|
});
|
||||||
const [treeErrorByContent, setTreeErrorByContent] = useState<Record<ContentKey, string | null>>({
|
const [treeErrorByContent, setTreeErrorByContent] = useState<Record<ContentKey, string | null>>({
|
||||||
geoLocation: null,
|
geoLocation: null,
|
||||||
facilityType: null,
|
facilityType: null,
|
||||||
|
buildingFunction: null,
|
||||||
constructionStage: null,
|
constructionStage: null,
|
||||||
planningForm: null,
|
planningForm: null,
|
||||||
});
|
});
|
||||||
@ -697,6 +715,7 @@ function App() {
|
|||||||
region: [],
|
region: [],
|
||||||
geoLocation: [],
|
geoLocation: [],
|
||||||
facilityType: [],
|
facilityType: [],
|
||||||
|
buildingFunction: [],
|
||||||
constructionStage: [],
|
constructionStage: [],
|
||||||
planningForm: [],
|
planningForm: [],
|
||||||
});
|
});
|
||||||
@ -706,6 +725,7 @@ function App() {
|
|||||||
region: false,
|
region: false,
|
||||||
geoLocation: false,
|
geoLocation: false,
|
||||||
facilityType: false,
|
facilityType: false,
|
||||||
|
buildingFunction: false,
|
||||||
constructionStage: false,
|
constructionStage: false,
|
||||||
planningForm: false,
|
planningForm: false,
|
||||||
});
|
});
|
||||||
@ -715,6 +735,7 @@ function App() {
|
|||||||
region: null,
|
region: null,
|
||||||
geoLocation: null,
|
geoLocation: null,
|
||||||
facilityType: null,
|
facilityType: null,
|
||||||
|
buildingFunction: null,
|
||||||
constructionStage: null,
|
constructionStage: null,
|
||||||
planningForm: null,
|
planningForm: null,
|
||||||
});
|
});
|
||||||
@ -724,6 +745,7 @@ function App() {
|
|||||||
region: [],
|
region: [],
|
||||||
geoLocation: [],
|
geoLocation: [],
|
||||||
facilityType: [],
|
facilityType: [],
|
||||||
|
buildingFunction: [],
|
||||||
constructionStage: [],
|
constructionStage: [],
|
||||||
planningForm: [],
|
planningForm: [],
|
||||||
});
|
});
|
||||||
@ -733,6 +755,7 @@ function App() {
|
|||||||
region: false,
|
region: false,
|
||||||
geoLocation: false,
|
geoLocation: false,
|
||||||
facilityType: false,
|
facilityType: false,
|
||||||
|
buildingFunction: false,
|
||||||
constructionStage: false,
|
constructionStage: false,
|
||||||
planningForm: false,
|
planningForm: false,
|
||||||
});
|
});
|
||||||
@ -742,6 +765,7 @@ function App() {
|
|||||||
region: null,
|
region: null,
|
||||||
geoLocation: null,
|
geoLocation: null,
|
||||||
facilityType: null,
|
facilityType: null,
|
||||||
|
buildingFunction: null,
|
||||||
constructionStage: null,
|
constructionStage: null,
|
||||||
planningForm: null,
|
planningForm: null,
|
||||||
});
|
});
|
||||||
@ -751,6 +775,7 @@ function App() {
|
|||||||
region: [],
|
region: [],
|
||||||
geoLocation: [],
|
geoLocation: [],
|
||||||
facilityType: [],
|
facilityType: [],
|
||||||
|
buildingFunction: [],
|
||||||
constructionStage: [],
|
constructionStage: [],
|
||||||
planningForm: [],
|
planningForm: [],
|
||||||
});
|
});
|
||||||
@ -765,6 +790,7 @@ function App() {
|
|||||||
region: 0,
|
region: 0,
|
||||||
geoLocation: 0,
|
geoLocation: 0,
|
||||||
facilityType: 0,
|
facilityType: 0,
|
||||||
|
buildingFunction: 0,
|
||||||
constructionStage: 0,
|
constructionStage: 0,
|
||||||
planningForm: 0,
|
planningForm: 0,
|
||||||
});
|
});
|
||||||
@ -834,6 +860,7 @@ function App() {
|
|||||||
}
|
}
|
||||||
const treeParams = {
|
const treeParams = {
|
||||||
...browserTreeDefaults,
|
...browserTreeDefaults,
|
||||||
|
...('browserParams' in config ? config.browserParams : {}),
|
||||||
treeid: config.treeid,
|
treeid: config.treeid,
|
||||||
cube_treeid: config.treeid,
|
cube_treeid: config.treeid,
|
||||||
fieldid: config.fieldid,
|
fieldid: config.fieldid,
|
||||||
@ -1469,18 +1496,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'));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1495,7 +1531,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);
|
||||||
@ -1504,7 +1540,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));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -1592,6 +1628,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);
|
||||||
@ -1612,7 +1649,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[] = [];
|
||||||
@ -1869,6 +1906,7 @@ function App() {
|
|||||||
region: [],
|
region: [],
|
||||||
geoLocation: [],
|
geoLocation: [],
|
||||||
facilityType: [],
|
facilityType: [],
|
||||||
|
buildingFunction: [],
|
||||||
constructionStage: [],
|
constructionStage: [],
|
||||||
planningForm: [],
|
planningForm: [],
|
||||||
});
|
});
|
||||||
|
|||||||
@ -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
1
vite-test.err.log
Normal file
@ -0,0 +1 @@
|
|||||||
|
$ vite --host 0.0.0.0 --host "127.0.0.1" --port "5173"
|
||||||
6
vite-test.out.log
Normal file
6
vite-test.out.log
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
|
||||||
|
[32m[1mVITE[22m v7.3.2[39m [2mready in [0m[1m307[22m[2m[0m ms[22m
|
||||||
|
|
||||||
|
[32m➜[39m [1mLocal[22m: [36mhttp://127.0.0.1:[1m5173[22m/[39m
|
||||||
|
[2m[32m ➜[39m[22m[2m press [22m[1mh + enter[22m[2m to show help[22m
|
||||||
|
[2m16:10:18[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||||
Loading…
x
Reference in New Issue
Block a user