main #3
287
pnpm-lock.yaml
@ -198,6 +198,9 @@ importers:
|
|||||||
echarts:
|
echarts:
|
||||||
specifier: 5.6.0
|
specifier: 5.6.0
|
||||||
version: 5.6.0
|
version: 5.6.0
|
||||||
|
esbuild:
|
||||||
|
specifier: ^0.25.9
|
||||||
|
version: 0.25.9
|
||||||
eslint:
|
eslint:
|
||||||
specifier: 8.57.1
|
specifier: 8.57.1
|
||||||
version: 8.57.1
|
version: 8.57.1
|
||||||
@ -236,7 +239,7 @@ importers:
|
|||||||
version: 1.49.11
|
version: 1.49.11
|
||||||
sass-loader:
|
sass-loader:
|
||||||
specifier: 12.6.0
|
specifier: 12.6.0
|
||||||
version: 12.6.0(sass@1.49.11)(webpack@5.100.2)
|
version: 12.6.0(sass@1.49.11)(webpack@5.100.2(esbuild@0.25.9))
|
||||||
typescript:
|
typescript:
|
||||||
specifier: 4.6.3
|
specifier: 4.6.3
|
||||||
version: 4.6.3
|
version: 4.6.3
|
||||||
@ -495,66 +498,132 @@ packages:
|
|||||||
'@emotion/hash@0.8.0':
|
'@emotion/hash@0.8.0':
|
||||||
resolution: {integrity: sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==}
|
resolution: {integrity: sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==}
|
||||||
|
|
||||||
|
'@esbuild/aix-ppc64@0.25.9':
|
||||||
|
resolution: {integrity: sha512-OaGtL73Jck6pBKjNIe24BnFE6agGl+6KxDtTfHhy1HmhthfKouEcOhqpSL64K4/0WCtbKFLOdzD/44cJ4k9opA==}
|
||||||
|
engines: {node: '>=18'}
|
||||||
|
cpu: [ppc64]
|
||||||
|
os: [aix]
|
||||||
|
|
||||||
'@esbuild/android-arm64@0.17.19':
|
'@esbuild/android-arm64@0.17.19':
|
||||||
resolution: {integrity: sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==}
|
resolution: {integrity: sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==}
|
||||||
engines: {node: '>=12'}
|
engines: {node: '>=12'}
|
||||||
cpu: [arm64]
|
cpu: [arm64]
|
||||||
os: [android]
|
os: [android]
|
||||||
|
|
||||||
|
'@esbuild/android-arm64@0.25.9':
|
||||||
|
resolution: {integrity: sha512-IDrddSmpSv51ftWslJMvl3Q2ZT98fUSL2/rlUXuVqRXHCs5EUF1/f+jbjF5+NG9UffUDMCiTyh8iec7u8RlTLg==}
|
||||||
|
engines: {node: '>=18'}
|
||||||
|
cpu: [arm64]
|
||||||
|
os: [android]
|
||||||
|
|
||||||
'@esbuild/android-arm@0.17.19':
|
'@esbuild/android-arm@0.17.19':
|
||||||
resolution: {integrity: sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==}
|
resolution: {integrity: sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==}
|
||||||
engines: {node: '>=12'}
|
engines: {node: '>=12'}
|
||||||
cpu: [arm]
|
cpu: [arm]
|
||||||
os: [android]
|
os: [android]
|
||||||
|
|
||||||
|
'@esbuild/android-arm@0.25.9':
|
||||||
|
resolution: {integrity: sha512-5WNI1DaMtxQ7t7B6xa572XMXpHAaI/9Hnhk8lcxF4zVN4xstUgTlvuGDorBguKEnZO70qwEcLpfifMLoxiPqHQ==}
|
||||||
|
engines: {node: '>=18'}
|
||||||
|
cpu: [arm]
|
||||||
|
os: [android]
|
||||||
|
|
||||||
'@esbuild/android-x64@0.17.19':
|
'@esbuild/android-x64@0.17.19':
|
||||||
resolution: {integrity: sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==}
|
resolution: {integrity: sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==}
|
||||||
engines: {node: '>=12'}
|
engines: {node: '>=12'}
|
||||||
cpu: [x64]
|
cpu: [x64]
|
||||||
os: [android]
|
os: [android]
|
||||||
|
|
||||||
|
'@esbuild/android-x64@0.25.9':
|
||||||
|
resolution: {integrity: sha512-I853iMZ1hWZdNllhVZKm34f4wErd4lMyeV7BLzEExGEIZYsOzqDWDf+y082izYUE8gtJnYHdeDpN/6tUdwvfiw==}
|
||||||
|
engines: {node: '>=18'}
|
||||||
|
cpu: [x64]
|
||||||
|
os: [android]
|
||||||
|
|
||||||
'@esbuild/darwin-arm64@0.17.19':
|
'@esbuild/darwin-arm64@0.17.19':
|
||||||
resolution: {integrity: sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==}
|
resolution: {integrity: sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==}
|
||||||
engines: {node: '>=12'}
|
engines: {node: '>=12'}
|
||||||
cpu: [arm64]
|
cpu: [arm64]
|
||||||
os: [darwin]
|
os: [darwin]
|
||||||
|
|
||||||
|
'@esbuild/darwin-arm64@0.25.9':
|
||||||
|
resolution: {integrity: sha512-XIpIDMAjOELi/9PB30vEbVMs3GV1v2zkkPnuyRRURbhqjyzIINwj+nbQATh4H9GxUgH1kFsEyQMxwiLFKUS6Rg==}
|
||||||
|
engines: {node: '>=18'}
|
||||||
|
cpu: [arm64]
|
||||||
|
os: [darwin]
|
||||||
|
|
||||||
'@esbuild/darwin-x64@0.17.19':
|
'@esbuild/darwin-x64@0.17.19':
|
||||||
resolution: {integrity: sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==}
|
resolution: {integrity: sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==}
|
||||||
engines: {node: '>=12'}
|
engines: {node: '>=12'}
|
||||||
cpu: [x64]
|
cpu: [x64]
|
||||||
os: [darwin]
|
os: [darwin]
|
||||||
|
|
||||||
|
'@esbuild/darwin-x64@0.25.9':
|
||||||
|
resolution: {integrity: sha512-jhHfBzjYTA1IQu8VyrjCX4ApJDnH+ez+IYVEoJHeqJm9VhG9Dh2BYaJritkYK3vMaXrf7Ogr/0MQ8/MeIefsPQ==}
|
||||||
|
engines: {node: '>=18'}
|
||||||
|
cpu: [x64]
|
||||||
|
os: [darwin]
|
||||||
|
|
||||||
'@esbuild/freebsd-arm64@0.17.19':
|
'@esbuild/freebsd-arm64@0.17.19':
|
||||||
resolution: {integrity: sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==}
|
resolution: {integrity: sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==}
|
||||||
engines: {node: '>=12'}
|
engines: {node: '>=12'}
|
||||||
cpu: [arm64]
|
cpu: [arm64]
|
||||||
os: [freebsd]
|
os: [freebsd]
|
||||||
|
|
||||||
|
'@esbuild/freebsd-arm64@0.25.9':
|
||||||
|
resolution: {integrity: sha512-z93DmbnY6fX9+KdD4Ue/H6sYs+bhFQJNCPZsi4XWJoYblUqT06MQUdBCpcSfuiN72AbqeBFu5LVQTjfXDE2A6Q==}
|
||||||
|
engines: {node: '>=18'}
|
||||||
|
cpu: [arm64]
|
||||||
|
os: [freebsd]
|
||||||
|
|
||||||
'@esbuild/freebsd-x64@0.17.19':
|
'@esbuild/freebsd-x64@0.17.19':
|
||||||
resolution: {integrity: sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==}
|
resolution: {integrity: sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==}
|
||||||
engines: {node: '>=12'}
|
engines: {node: '>=12'}
|
||||||
cpu: [x64]
|
cpu: [x64]
|
||||||
os: [freebsd]
|
os: [freebsd]
|
||||||
|
|
||||||
|
'@esbuild/freebsd-x64@0.25.9':
|
||||||
|
resolution: {integrity: sha512-mrKX6H/vOyo5v71YfXWJxLVxgy1kyt1MQaD8wZJgJfG4gq4DpQGpgTB74e5yBeQdyMTbgxp0YtNj7NuHN0PoZg==}
|
||||||
|
engines: {node: '>=18'}
|
||||||
|
cpu: [x64]
|
||||||
|
os: [freebsd]
|
||||||
|
|
||||||
'@esbuild/linux-arm64@0.17.19':
|
'@esbuild/linux-arm64@0.17.19':
|
||||||
resolution: {integrity: sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==}
|
resolution: {integrity: sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==}
|
||||||
engines: {node: '>=12'}
|
engines: {node: '>=12'}
|
||||||
cpu: [arm64]
|
cpu: [arm64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
|
|
||||||
|
'@esbuild/linux-arm64@0.25.9':
|
||||||
|
resolution: {integrity: sha512-BlB7bIcLT3G26urh5Dmse7fiLmLXnRlopw4s8DalgZ8ef79Jj4aUcYbk90g8iCa2467HX8SAIidbL7gsqXHdRw==}
|
||||||
|
engines: {node: '>=18'}
|
||||||
|
cpu: [arm64]
|
||||||
|
os: [linux]
|
||||||
|
|
||||||
'@esbuild/linux-arm@0.17.19':
|
'@esbuild/linux-arm@0.17.19':
|
||||||
resolution: {integrity: sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==}
|
resolution: {integrity: sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==}
|
||||||
engines: {node: '>=12'}
|
engines: {node: '>=12'}
|
||||||
cpu: [arm]
|
cpu: [arm]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
|
|
||||||
|
'@esbuild/linux-arm@0.25.9':
|
||||||
|
resolution: {integrity: sha512-HBU2Xv78SMgaydBmdor38lg8YDnFKSARg1Q6AT0/y2ezUAKiZvc211RDFHlEZRFNRVhcMamiToo7bDx3VEOYQw==}
|
||||||
|
engines: {node: '>=18'}
|
||||||
|
cpu: [arm]
|
||||||
|
os: [linux]
|
||||||
|
|
||||||
'@esbuild/linux-ia32@0.17.19':
|
'@esbuild/linux-ia32@0.17.19':
|
||||||
resolution: {integrity: sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==}
|
resolution: {integrity: sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==}
|
||||||
engines: {node: '>=12'}
|
engines: {node: '>=12'}
|
||||||
cpu: [ia32]
|
cpu: [ia32]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
|
|
||||||
|
'@esbuild/linux-ia32@0.25.9':
|
||||||
|
resolution: {integrity: sha512-e7S3MOJPZGp2QW6AK6+Ly81rC7oOSerQ+P8L0ta4FhVi+/j/v2yZzx5CqqDaWjtPFfYz21Vi1S0auHrap3Ma3A==}
|
||||||
|
engines: {node: '>=18'}
|
||||||
|
cpu: [ia32]
|
||||||
|
os: [linux]
|
||||||
|
|
||||||
'@esbuild/linux-loong64@0.14.54':
|
'@esbuild/linux-loong64@0.14.54':
|
||||||
resolution: {integrity: sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw==}
|
resolution: {integrity: sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw==}
|
||||||
engines: {node: '>=12'}
|
engines: {node: '>=12'}
|
||||||
@ -567,72 +636,162 @@ packages:
|
|||||||
cpu: [loong64]
|
cpu: [loong64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
|
|
||||||
|
'@esbuild/linux-loong64@0.25.9':
|
||||||
|
resolution: {integrity: sha512-Sbe10Bnn0oUAB2AalYztvGcK+o6YFFA/9829PhOCUS9vkJElXGdphz0A3DbMdP8gmKkqPmPcMJmJOrI3VYB1JQ==}
|
||||||
|
engines: {node: '>=18'}
|
||||||
|
cpu: [loong64]
|
||||||
|
os: [linux]
|
||||||
|
|
||||||
'@esbuild/linux-mips64el@0.17.19':
|
'@esbuild/linux-mips64el@0.17.19':
|
||||||
resolution: {integrity: sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==}
|
resolution: {integrity: sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==}
|
||||||
engines: {node: '>=12'}
|
engines: {node: '>=12'}
|
||||||
cpu: [mips64el]
|
cpu: [mips64el]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
|
|
||||||
|
'@esbuild/linux-mips64el@0.25.9':
|
||||||
|
resolution: {integrity: sha512-YcM5br0mVyZw2jcQeLIkhWtKPeVfAerES5PvOzaDxVtIyZ2NUBZKNLjC5z3/fUlDgT6w89VsxP2qzNipOaaDyA==}
|
||||||
|
engines: {node: '>=18'}
|
||||||
|
cpu: [mips64el]
|
||||||
|
os: [linux]
|
||||||
|
|
||||||
'@esbuild/linux-ppc64@0.17.19':
|
'@esbuild/linux-ppc64@0.17.19':
|
||||||
resolution: {integrity: sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==}
|
resolution: {integrity: sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==}
|
||||||
engines: {node: '>=12'}
|
engines: {node: '>=12'}
|
||||||
cpu: [ppc64]
|
cpu: [ppc64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
|
|
||||||
|
'@esbuild/linux-ppc64@0.25.9':
|
||||||
|
resolution: {integrity: sha512-++0HQvasdo20JytyDpFvQtNrEsAgNG2CY1CLMwGXfFTKGBGQT3bOeLSYE2l1fYdvML5KUuwn9Z8L1EWe2tzs1w==}
|
||||||
|
engines: {node: '>=18'}
|
||||||
|
cpu: [ppc64]
|
||||||
|
os: [linux]
|
||||||
|
|
||||||
'@esbuild/linux-riscv64@0.17.19':
|
'@esbuild/linux-riscv64@0.17.19':
|
||||||
resolution: {integrity: sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==}
|
resolution: {integrity: sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==}
|
||||||
engines: {node: '>=12'}
|
engines: {node: '>=12'}
|
||||||
cpu: [riscv64]
|
cpu: [riscv64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
|
|
||||||
|
'@esbuild/linux-riscv64@0.25.9':
|
||||||
|
resolution: {integrity: sha512-uNIBa279Y3fkjV+2cUjx36xkx7eSjb8IvnL01eXUKXez/CBHNRw5ekCGMPM0BcmqBxBcdgUWuUXmVWwm4CH9kg==}
|
||||||
|
engines: {node: '>=18'}
|
||||||
|
cpu: [riscv64]
|
||||||
|
os: [linux]
|
||||||
|
|
||||||
'@esbuild/linux-s390x@0.17.19':
|
'@esbuild/linux-s390x@0.17.19':
|
||||||
resolution: {integrity: sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==}
|
resolution: {integrity: sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==}
|
||||||
engines: {node: '>=12'}
|
engines: {node: '>=12'}
|
||||||
cpu: [s390x]
|
cpu: [s390x]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
|
|
||||||
|
'@esbuild/linux-s390x@0.25.9':
|
||||||
|
resolution: {integrity: sha512-Mfiphvp3MjC/lctb+7D287Xw1DGzqJPb/J2aHHcHxflUo+8tmN/6d4k6I2yFR7BVo5/g7x2Monq4+Yew0EHRIA==}
|
||||||
|
engines: {node: '>=18'}
|
||||||
|
cpu: [s390x]
|
||||||
|
os: [linux]
|
||||||
|
|
||||||
'@esbuild/linux-x64@0.17.19':
|
'@esbuild/linux-x64@0.17.19':
|
||||||
resolution: {integrity: sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==}
|
resolution: {integrity: sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==}
|
||||||
engines: {node: '>=12'}
|
engines: {node: '>=12'}
|
||||||
cpu: [x64]
|
cpu: [x64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
|
|
||||||
|
'@esbuild/linux-x64@0.25.9':
|
||||||
|
resolution: {integrity: sha512-iSwByxzRe48YVkmpbgoxVzn76BXjlYFXC7NvLYq+b+kDjyyk30J0JY47DIn8z1MO3K0oSl9fZoRmZPQI4Hklzg==}
|
||||||
|
engines: {node: '>=18'}
|
||||||
|
cpu: [x64]
|
||||||
|
os: [linux]
|
||||||
|
|
||||||
|
'@esbuild/netbsd-arm64@0.25.9':
|
||||||
|
resolution: {integrity: sha512-9jNJl6FqaUG+COdQMjSCGW4QiMHH88xWbvZ+kRVblZsWrkXlABuGdFJ1E9L7HK+T0Yqd4akKNa/lO0+jDxQD4Q==}
|
||||||
|
engines: {node: '>=18'}
|
||||||
|
cpu: [arm64]
|
||||||
|
os: [netbsd]
|
||||||
|
|
||||||
'@esbuild/netbsd-x64@0.17.19':
|
'@esbuild/netbsd-x64@0.17.19':
|
||||||
resolution: {integrity: sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==}
|
resolution: {integrity: sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==}
|
||||||
engines: {node: '>=12'}
|
engines: {node: '>=12'}
|
||||||
cpu: [x64]
|
cpu: [x64]
|
||||||
os: [netbsd]
|
os: [netbsd]
|
||||||
|
|
||||||
|
'@esbuild/netbsd-x64@0.25.9':
|
||||||
|
resolution: {integrity: sha512-RLLdkflmqRG8KanPGOU7Rpg829ZHu8nFy5Pqdi9U01VYtG9Y0zOG6Vr2z4/S+/3zIyOxiK6cCeYNWOFR9QP87g==}
|
||||||
|
engines: {node: '>=18'}
|
||||||
|
cpu: [x64]
|
||||||
|
os: [netbsd]
|
||||||
|
|
||||||
|
'@esbuild/openbsd-arm64@0.25.9':
|
||||||
|
resolution: {integrity: sha512-YaFBlPGeDasft5IIM+CQAhJAqS3St3nJzDEgsgFixcfZeyGPCd6eJBWzke5piZuZ7CtL656eOSYKk4Ls2C0FRQ==}
|
||||||
|
engines: {node: '>=18'}
|
||||||
|
cpu: [arm64]
|
||||||
|
os: [openbsd]
|
||||||
|
|
||||||
'@esbuild/openbsd-x64@0.17.19':
|
'@esbuild/openbsd-x64@0.17.19':
|
||||||
resolution: {integrity: sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==}
|
resolution: {integrity: sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==}
|
||||||
engines: {node: '>=12'}
|
engines: {node: '>=12'}
|
||||||
cpu: [x64]
|
cpu: [x64]
|
||||||
os: [openbsd]
|
os: [openbsd]
|
||||||
|
|
||||||
|
'@esbuild/openbsd-x64@0.25.9':
|
||||||
|
resolution: {integrity: sha512-1MkgTCuvMGWuqVtAvkpkXFmtL8XhWy+j4jaSO2wxfJtilVCi0ZE37b8uOdMItIHz4I6z1bWWtEX4CJwcKYLcuA==}
|
||||||
|
engines: {node: '>=18'}
|
||||||
|
cpu: [x64]
|
||||||
|
os: [openbsd]
|
||||||
|
|
||||||
|
'@esbuild/openharmony-arm64@0.25.9':
|
||||||
|
resolution: {integrity: sha512-4Xd0xNiMVXKh6Fa7HEJQbrpP3m3DDn43jKxMjxLLRjWnRsfxjORYJlXPO4JNcXtOyfajXorRKY9NkOpTHptErg==}
|
||||||
|
engines: {node: '>=18'}
|
||||||
|
cpu: [arm64]
|
||||||
|
os: [openharmony]
|
||||||
|
|
||||||
'@esbuild/sunos-x64@0.17.19':
|
'@esbuild/sunos-x64@0.17.19':
|
||||||
resolution: {integrity: sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==}
|
resolution: {integrity: sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==}
|
||||||
engines: {node: '>=12'}
|
engines: {node: '>=12'}
|
||||||
cpu: [x64]
|
cpu: [x64]
|
||||||
os: [sunos]
|
os: [sunos]
|
||||||
|
|
||||||
|
'@esbuild/sunos-x64@0.25.9':
|
||||||
|
resolution: {integrity: sha512-WjH4s6hzo00nNezhp3wFIAfmGZ8U7KtrJNlFMRKxiI9mxEK1scOMAaa9i4crUtu+tBr+0IN6JCuAcSBJZfnphw==}
|
||||||
|
engines: {node: '>=18'}
|
||||||
|
cpu: [x64]
|
||||||
|
os: [sunos]
|
||||||
|
|
||||||
'@esbuild/win32-arm64@0.17.19':
|
'@esbuild/win32-arm64@0.17.19':
|
||||||
resolution: {integrity: sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==}
|
resolution: {integrity: sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==}
|
||||||
engines: {node: '>=12'}
|
engines: {node: '>=12'}
|
||||||
cpu: [arm64]
|
cpu: [arm64]
|
||||||
os: [win32]
|
os: [win32]
|
||||||
|
|
||||||
|
'@esbuild/win32-arm64@0.25.9':
|
||||||
|
resolution: {integrity: sha512-mGFrVJHmZiRqmP8xFOc6b84/7xa5y5YvR1x8djzXpJBSv/UsNK6aqec+6JDjConTgvvQefdGhFDAs2DLAds6gQ==}
|
||||||
|
engines: {node: '>=18'}
|
||||||
|
cpu: [arm64]
|
||||||
|
os: [win32]
|
||||||
|
|
||||||
'@esbuild/win32-ia32@0.17.19':
|
'@esbuild/win32-ia32@0.17.19':
|
||||||
resolution: {integrity: sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==}
|
resolution: {integrity: sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==}
|
||||||
engines: {node: '>=12'}
|
engines: {node: '>=12'}
|
||||||
cpu: [ia32]
|
cpu: [ia32]
|
||||||
os: [win32]
|
os: [win32]
|
||||||
|
|
||||||
|
'@esbuild/win32-ia32@0.25.9':
|
||||||
|
resolution: {integrity: sha512-b33gLVU2k11nVx1OhX3C8QQP6UHQK4ZtN56oFWvVXvz2VkDoe6fbG8TOgHFxEvqeqohmRnIHe5A1+HADk4OQww==}
|
||||||
|
engines: {node: '>=18'}
|
||||||
|
cpu: [ia32]
|
||||||
|
os: [win32]
|
||||||
|
|
||||||
'@esbuild/win32-x64@0.17.19':
|
'@esbuild/win32-x64@0.17.19':
|
||||||
resolution: {integrity: sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==}
|
resolution: {integrity: sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==}
|
||||||
engines: {node: '>=12'}
|
engines: {node: '>=12'}
|
||||||
cpu: [x64]
|
cpu: [x64]
|
||||||
os: [win32]
|
os: [win32]
|
||||||
|
|
||||||
|
'@esbuild/win32-x64@0.25.9':
|
||||||
|
resolution: {integrity: sha512-PPOl1mi6lpLNQxnGoyAfschAodRFYXJ+9fs6WHXz7CSWKbOqiMZsubC+BQsVKuul+3vKLuwTHsS2c2y9EoKwxQ==}
|
||||||
|
engines: {node: '>=18'}
|
||||||
|
cpu: [x64]
|
||||||
|
os: [win32]
|
||||||
|
|
||||||
'@eslint-community/eslint-utils@4.7.0':
|
'@eslint-community/eslint-utils@4.7.0':
|
||||||
resolution: {integrity: sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==}
|
resolution: {integrity: sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==}
|
||||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||||
@ -2008,6 +2167,11 @@ packages:
|
|||||||
engines: {node: '>=12'}
|
engines: {node: '>=12'}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
|
|
||||||
|
esbuild@0.25.9:
|
||||||
|
resolution: {integrity: sha512-CRbODhYyQx3qp7ZEwzxOk4JBqmD/seJrzPa/cGjY1VtIn5E09Oi9/dB4JwctnfZ8Q8iT7rioVv5k/FNT/uf54g==}
|
||||||
|
engines: {node: '>=18'}
|
||||||
|
hasBin: true
|
||||||
|
|
||||||
escalade@3.2.0:
|
escalade@3.2.0:
|
||||||
resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==}
|
resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==}
|
||||||
engines: {node: '>=6'}
|
engines: {node: '>=6'}
|
||||||
@ -4582,75 +4746,153 @@ snapshots:
|
|||||||
|
|
||||||
'@emotion/hash@0.8.0': {}
|
'@emotion/hash@0.8.0': {}
|
||||||
|
|
||||||
|
'@esbuild/aix-ppc64@0.25.9':
|
||||||
|
optional: true
|
||||||
|
|
||||||
'@esbuild/android-arm64@0.17.19':
|
'@esbuild/android-arm64@0.17.19':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
|
'@esbuild/android-arm64@0.25.9':
|
||||||
|
optional: true
|
||||||
|
|
||||||
'@esbuild/android-arm@0.17.19':
|
'@esbuild/android-arm@0.17.19':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
|
'@esbuild/android-arm@0.25.9':
|
||||||
|
optional: true
|
||||||
|
|
||||||
'@esbuild/android-x64@0.17.19':
|
'@esbuild/android-x64@0.17.19':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
|
'@esbuild/android-x64@0.25.9':
|
||||||
|
optional: true
|
||||||
|
|
||||||
'@esbuild/darwin-arm64@0.17.19':
|
'@esbuild/darwin-arm64@0.17.19':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
|
'@esbuild/darwin-arm64@0.25.9':
|
||||||
|
optional: true
|
||||||
|
|
||||||
'@esbuild/darwin-x64@0.17.19':
|
'@esbuild/darwin-x64@0.17.19':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
|
'@esbuild/darwin-x64@0.25.9':
|
||||||
|
optional: true
|
||||||
|
|
||||||
'@esbuild/freebsd-arm64@0.17.19':
|
'@esbuild/freebsd-arm64@0.17.19':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
|
'@esbuild/freebsd-arm64@0.25.9':
|
||||||
|
optional: true
|
||||||
|
|
||||||
'@esbuild/freebsd-x64@0.17.19':
|
'@esbuild/freebsd-x64@0.17.19':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
|
'@esbuild/freebsd-x64@0.25.9':
|
||||||
|
optional: true
|
||||||
|
|
||||||
'@esbuild/linux-arm64@0.17.19':
|
'@esbuild/linux-arm64@0.17.19':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
|
'@esbuild/linux-arm64@0.25.9':
|
||||||
|
optional: true
|
||||||
|
|
||||||
'@esbuild/linux-arm@0.17.19':
|
'@esbuild/linux-arm@0.17.19':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
|
'@esbuild/linux-arm@0.25.9':
|
||||||
|
optional: true
|
||||||
|
|
||||||
'@esbuild/linux-ia32@0.17.19':
|
'@esbuild/linux-ia32@0.17.19':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
|
'@esbuild/linux-ia32@0.25.9':
|
||||||
|
optional: true
|
||||||
|
|
||||||
'@esbuild/linux-loong64@0.14.54':
|
'@esbuild/linux-loong64@0.14.54':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@esbuild/linux-loong64@0.17.19':
|
'@esbuild/linux-loong64@0.17.19':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
|
'@esbuild/linux-loong64@0.25.9':
|
||||||
|
optional: true
|
||||||
|
|
||||||
'@esbuild/linux-mips64el@0.17.19':
|
'@esbuild/linux-mips64el@0.17.19':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
|
'@esbuild/linux-mips64el@0.25.9':
|
||||||
|
optional: true
|
||||||
|
|
||||||
'@esbuild/linux-ppc64@0.17.19':
|
'@esbuild/linux-ppc64@0.17.19':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
|
'@esbuild/linux-ppc64@0.25.9':
|
||||||
|
optional: true
|
||||||
|
|
||||||
'@esbuild/linux-riscv64@0.17.19':
|
'@esbuild/linux-riscv64@0.17.19':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
|
'@esbuild/linux-riscv64@0.25.9':
|
||||||
|
optional: true
|
||||||
|
|
||||||
'@esbuild/linux-s390x@0.17.19':
|
'@esbuild/linux-s390x@0.17.19':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
|
'@esbuild/linux-s390x@0.25.9':
|
||||||
|
optional: true
|
||||||
|
|
||||||
'@esbuild/linux-x64@0.17.19':
|
'@esbuild/linux-x64@0.17.19':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
|
'@esbuild/linux-x64@0.25.9':
|
||||||
|
optional: true
|
||||||
|
|
||||||
|
'@esbuild/netbsd-arm64@0.25.9':
|
||||||
|
optional: true
|
||||||
|
|
||||||
'@esbuild/netbsd-x64@0.17.19':
|
'@esbuild/netbsd-x64@0.17.19':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
|
'@esbuild/netbsd-x64@0.25.9':
|
||||||
|
optional: true
|
||||||
|
|
||||||
|
'@esbuild/openbsd-arm64@0.25.9':
|
||||||
|
optional: true
|
||||||
|
|
||||||
'@esbuild/openbsd-x64@0.17.19':
|
'@esbuild/openbsd-x64@0.17.19':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
|
'@esbuild/openbsd-x64@0.25.9':
|
||||||
|
optional: true
|
||||||
|
|
||||||
|
'@esbuild/openharmony-arm64@0.25.9':
|
||||||
|
optional: true
|
||||||
|
|
||||||
'@esbuild/sunos-x64@0.17.19':
|
'@esbuild/sunos-x64@0.17.19':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
|
'@esbuild/sunos-x64@0.25.9':
|
||||||
|
optional: true
|
||||||
|
|
||||||
'@esbuild/win32-arm64@0.17.19':
|
'@esbuild/win32-arm64@0.17.19':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
|
'@esbuild/win32-arm64@0.25.9':
|
||||||
|
optional: true
|
||||||
|
|
||||||
'@esbuild/win32-ia32@0.17.19':
|
'@esbuild/win32-ia32@0.17.19':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
|
'@esbuild/win32-ia32@0.25.9':
|
||||||
|
optional: true
|
||||||
|
|
||||||
'@esbuild/win32-x64@0.17.19':
|
'@esbuild/win32-x64@0.17.19':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
|
'@esbuild/win32-x64@0.25.9':
|
||||||
|
optional: true
|
||||||
|
|
||||||
'@eslint-community/eslint-utils@4.7.0(eslint@8.57.1)':
|
'@eslint-community/eslint-utils@4.7.0(eslint@8.57.1)':
|
||||||
dependencies:
|
dependencies:
|
||||||
eslint: 8.57.1
|
eslint: 8.57.1
|
||||||
@ -6269,6 +6511,35 @@ snapshots:
|
|||||||
'@esbuild/win32-ia32': 0.17.19
|
'@esbuild/win32-ia32': 0.17.19
|
||||||
'@esbuild/win32-x64': 0.17.19
|
'@esbuild/win32-x64': 0.17.19
|
||||||
|
|
||||||
|
esbuild@0.25.9:
|
||||||
|
optionalDependencies:
|
||||||
|
'@esbuild/aix-ppc64': 0.25.9
|
||||||
|
'@esbuild/android-arm': 0.25.9
|
||||||
|
'@esbuild/android-arm64': 0.25.9
|
||||||
|
'@esbuild/android-x64': 0.25.9
|
||||||
|
'@esbuild/darwin-arm64': 0.25.9
|
||||||
|
'@esbuild/darwin-x64': 0.25.9
|
||||||
|
'@esbuild/freebsd-arm64': 0.25.9
|
||||||
|
'@esbuild/freebsd-x64': 0.25.9
|
||||||
|
'@esbuild/linux-arm': 0.25.9
|
||||||
|
'@esbuild/linux-arm64': 0.25.9
|
||||||
|
'@esbuild/linux-ia32': 0.25.9
|
||||||
|
'@esbuild/linux-loong64': 0.25.9
|
||||||
|
'@esbuild/linux-mips64el': 0.25.9
|
||||||
|
'@esbuild/linux-ppc64': 0.25.9
|
||||||
|
'@esbuild/linux-riscv64': 0.25.9
|
||||||
|
'@esbuild/linux-s390x': 0.25.9
|
||||||
|
'@esbuild/linux-x64': 0.25.9
|
||||||
|
'@esbuild/netbsd-arm64': 0.25.9
|
||||||
|
'@esbuild/netbsd-x64': 0.25.9
|
||||||
|
'@esbuild/openbsd-arm64': 0.25.9
|
||||||
|
'@esbuild/openbsd-x64': 0.25.9
|
||||||
|
'@esbuild/openharmony-arm64': 0.25.9
|
||||||
|
'@esbuild/sunos-x64': 0.25.9
|
||||||
|
'@esbuild/win32-arm64': 0.25.9
|
||||||
|
'@esbuild/win32-ia32': 0.25.9
|
||||||
|
'@esbuild/win32-x64': 0.25.9
|
||||||
|
|
||||||
escalade@3.2.0: {}
|
escalade@3.2.0: {}
|
||||||
|
|
||||||
escape-html@1.0.3: {}
|
escape-html@1.0.3: {}
|
||||||
@ -7840,11 +8111,11 @@ snapshots:
|
|||||||
|
|
||||||
safer-buffer@2.1.2: {}
|
safer-buffer@2.1.2: {}
|
||||||
|
|
||||||
sass-loader@12.6.0(sass@1.49.11)(webpack@5.100.2):
|
sass-loader@12.6.0(sass@1.49.11)(webpack@5.100.2(esbuild@0.25.9)):
|
||||||
dependencies:
|
dependencies:
|
||||||
klona: 2.0.6
|
klona: 2.0.6
|
||||||
neo-async: 2.6.2
|
neo-async: 2.6.2
|
||||||
webpack: 5.100.2
|
webpack: 5.100.2(esbuild@0.25.9)
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
sass: 1.49.11
|
sass: 1.49.11
|
||||||
|
|
||||||
@ -8090,14 +8361,16 @@ snapshots:
|
|||||||
|
|
||||||
tapable@2.2.2: {}
|
tapable@2.2.2: {}
|
||||||
|
|
||||||
terser-webpack-plugin@5.3.14(webpack@5.100.2):
|
terser-webpack-plugin@5.3.14(esbuild@0.25.9)(webpack@5.100.2(esbuild@0.25.9)):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@jridgewell/trace-mapping': 0.3.29
|
'@jridgewell/trace-mapping': 0.3.29
|
||||||
jest-worker: 27.5.1
|
jest-worker: 27.5.1
|
||||||
schema-utils: 4.3.2
|
schema-utils: 4.3.2
|
||||||
serialize-javascript: 6.0.2
|
serialize-javascript: 6.0.2
|
||||||
terser: 5.43.1
|
terser: 5.43.1
|
||||||
webpack: 5.100.2
|
webpack: 5.100.2(esbuild@0.25.9)
|
||||||
|
optionalDependencies:
|
||||||
|
esbuild: 0.25.9
|
||||||
|
|
||||||
terser@5.43.1:
|
terser@5.43.1:
|
||||||
dependencies:
|
dependencies:
|
||||||
@ -8545,7 +8818,7 @@ snapshots:
|
|||||||
|
|
||||||
webpack-sources@3.3.3: {}
|
webpack-sources@3.3.3: {}
|
||||||
|
|
||||||
webpack@5.100.2:
|
webpack@5.100.2(esbuild@0.25.9):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/eslint-scope': 3.7.7
|
'@types/eslint-scope': 3.7.7
|
||||||
'@types/estree': 1.0.8
|
'@types/estree': 1.0.8
|
||||||
@ -8569,7 +8842,7 @@ snapshots:
|
|||||||
neo-async: 2.6.2
|
neo-async: 2.6.2
|
||||||
schema-utils: 4.3.2
|
schema-utils: 4.3.2
|
||||||
tapable: 2.2.2
|
tapable: 2.2.2
|
||||||
terser-webpack-plugin: 5.3.14(webpack@5.100.2)
|
terser-webpack-plugin: 5.3.14(esbuild@0.25.9)(webpack@5.100.2(esbuild@0.25.9))
|
||||||
watchpack: 2.4.4
|
watchpack: 2.4.4
|
||||||
webpack-sources: 3.3.3
|
webpack-sources: 3.3.3
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
|
BIN
src/assets/images/chart/charts/line_warn.png
Normal file
Before Width: | Height: | Size: 74 KiB After Width: | Height: | Size: 74 KiB |
BIN
src/assets/images/chart/charts/pie_center.png
Normal file
Before Width: | Height: | Size: 92 KiB After Width: | Height: | Size: 92 KiB |
@ -17,6 +17,8 @@ import '@/styles/pages/index.scss'
|
|||||||
import 'animate.css/animate.min.css'
|
import 'animate.css/animate.min.css'
|
||||||
// 引入标尺
|
// 引入标尺
|
||||||
import 'vue3-sketch-ruler/lib/style.css'
|
import 'vue3-sketch-ruler/lib/style.css'
|
||||||
|
|
||||||
|
import '@/styles/font/font.scss'
|
||||||
// 注册图标
|
// 注册图标
|
||||||
addCollection(uimIcons)
|
addCollection(uimIcons)
|
||||||
addCollection(lineMdIcons)
|
addCollection(lineMdIcons)
|
||||||
|
@ -1,27 +0,0 @@
|
|||||||
import { PublicConfigClass } from '@/packages/public'
|
|
||||||
import { CreateComponentType } from '@/packages/index.d'
|
|
||||||
import { DetailedSceneConfig } from './index'
|
|
||||||
import dataJson from './data.json'
|
|
||||||
|
|
||||||
export const option = {
|
|
||||||
dataset: dataJson.source,
|
|
||||||
title: '场景分布概况',
|
|
||||||
titleColor: '#ffffff',
|
|
||||||
titleSize: 20,
|
|
||||||
linkColor: '#00E5FF',
|
|
||||||
linkText: '查看更多>>',
|
|
||||||
sceneNameColor: '#ffffff',
|
|
||||||
sceneNameSize: 18,
|
|
||||||
labelColor: '#B0E0E6',
|
|
||||||
labelSize: 14,
|
|
||||||
valueColor: '#ffffff',
|
|
||||||
valueSize: 24,
|
|
||||||
pointColor1: '#00E5FF',
|
|
||||||
pointColor2: '#FFD700'
|
|
||||||
}
|
|
||||||
|
|
||||||
export default class Config extends PublicConfigClass implements CreateComponentType {
|
|
||||||
public key = DetailedSceneConfig.key
|
|
||||||
public chartConfig = DetailedSceneConfig
|
|
||||||
public option = option
|
|
||||||
}
|
|
@ -1,31 +0,0 @@
|
|||||||
<template>
|
|
||||||
<div class="go-detailed-scene-config">
|
|
||||||
<n-form-item label="标题">
|
|
||||||
<n-input v-model:value="option.title" />
|
|
||||||
</n-form-item>
|
|
||||||
<n-form-item label="标题大小">
|
|
||||||
<n-input-number v-model:value="option.titleSize" />
|
|
||||||
</n-form-item>
|
|
||||||
<n-form-item label="场景名称大小">
|
|
||||||
<n-input-number v-model:value="option.sceneNameSize" />
|
|
||||||
</n-form-item>
|
|
||||||
<n-form-item label="标签大小">
|
|
||||||
<n-input-number v-model:value="option.labelSize" />
|
|
||||||
</n-form-item>
|
|
||||||
<n-form-item label="数值大小">
|
|
||||||
<n-input-number v-model:value="option.valueSize" />
|
|
||||||
</n-form-item>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script setup lang="ts">
|
|
||||||
import { PropType } from 'vue'
|
|
||||||
import { option } from './config'
|
|
||||||
|
|
||||||
defineProps({
|
|
||||||
option: {
|
|
||||||
type: Object as PropType<typeof option>,
|
|
||||||
required: true
|
|
||||||
}
|
|
||||||
})
|
|
||||||
</script>
|
|
@ -1,20 +0,0 @@
|
|||||||
{
|
|
||||||
"source": [
|
|
||||||
{
|
|
||||||
"name": "危化品库",
|
|
||||||
"icon": "warehouse",
|
|
||||||
"metrics": [
|
|
||||||
{ "label": "场景总数", "value": 262 },
|
|
||||||
{ "label": "智控场景", "value": 6852 }
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "危废品库",
|
|
||||||
"icon": "trash",
|
|
||||||
"metrics": [
|
|
||||||
{ "label": "智控场景", "value": 6852 },
|
|
||||||
{ "label": "场景总数", "value": 262 }
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
@ -1,14 +0,0 @@
|
|||||||
import { ConfigType, PackagesCategoryEnum, ChartFrameEnum } from '@/packages/index.d'
|
|
||||||
|
|
||||||
export const DetailedSceneConfig: ConfigType = {
|
|
||||||
key: 'DetailedScene',
|
|
||||||
chartKey: 'VDetailedScene',
|
|
||||||
conKey: 'VCDetailedScene',
|
|
||||||
title: '详细场景',
|
|
||||||
category: 'MyComponents',
|
|
||||||
categoryName: '自定义组件',
|
|
||||||
package: PackagesCategoryEnum.CHARTS,
|
|
||||||
chartFrame: ChartFrameEnum.COMMON,
|
|
||||||
image: 'detailed_scene.png'
|
|
||||||
}
|
|
||||||
export default DetailedSceneConfig
|
|
@ -1,140 +0,0 @@
|
|||||||
<template>
|
|
||||||
<div class="go-detailed-scene">
|
|
||||||
<div class="header">
|
|
||||||
<div class="title">
|
|
||||||
<svg-icon icon-class="rocket" class="title-icon"></svg-icon>
|
|
||||||
<span :style="{ color: option.titleColor, fontSize: option.titleSize + 'px' }">{{ option.title }}</span>
|
|
||||||
</div>
|
|
||||||
<a class="link" :style="{ color: option.linkColor }">{{ option.linkText }}</a>
|
|
||||||
</div>
|
|
||||||
<div class="content">
|
|
||||||
<div v-for="(scene, index) in option.dataset" :key="index" class="scene-row">
|
|
||||||
<div class="scene-icon-container">
|
|
||||||
<svg-icon :icon-class="scene.icon" class="scene-icon"></svg-icon>
|
|
||||||
</div>
|
|
||||||
<div class="scene-name" :style="{ color: option.sceneNameColor, fontSize: option.sceneNameSize + 'px' }">{{ scene.name }}</div>
|
|
||||||
<div class="metrics-container">
|
|
||||||
<div v-for="(metric, mIndex) in scene.metrics" :key="mIndex" class="metric">
|
|
||||||
<div class="metric-label">
|
|
||||||
<span class="point" :style="{ backgroundColor: mIndex === 0 ? option.pointColor1 : option.pointColor2 }"></span>
|
|
||||||
<span :style="{ color: option.labelColor, fontSize: option.labelSize + 'px' }">{{ metric.label }}</span>
|
|
||||||
</div>
|
|
||||||
<div class="metric-value" :style="{ color: option.valueColor, fontSize: option.valueSize + 'px' }">{{ metric.value }}</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script setup lang="ts">
|
|
||||||
import { PropType, computed } from 'vue'
|
|
||||||
import { option as configOption } from './config'
|
|
||||||
|
|
||||||
const props = defineProps({
|
|
||||||
chartConfig: {
|
|
||||||
type: Object as PropType<{ option: typeof configOption }>,
|
|
||||||
required: true
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
const option = computed(() => props.chartConfig.option)
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
|
||||||
.go-detailed-scene {
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
background-color: #0F1C3D;
|
|
||||||
padding: 15px;
|
|
||||||
box-sizing: border-box;
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
|
|
||||||
.header {
|
|
||||||
display: flex;
|
|
||||||
justify-content: space-between;
|
|
||||||
align-items: center;
|
|
||||||
background-color: #1A385A;
|
|
||||||
padding: 5px 15px;
|
|
||||||
border-radius: 5px;
|
|
||||||
margin-bottom: 20px;
|
|
||||||
|
|
||||||
.title {
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
.title-icon {
|
|
||||||
font-size: 24px;
|
|
||||||
margin-right: 10px;
|
|
||||||
color: #00E5FF;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.link {
|
|
||||||
cursor: pointer;
|
|
||||||
font-size: 14px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.content {
|
|
||||||
flex: 1;
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
justify-content: space-around;
|
|
||||||
}
|
|
||||||
|
|
||||||
.scene-row {
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
background-color: rgba(26, 56, 90, 0.5);
|
|
||||||
border-radius: 50px;
|
|
||||||
padding: 10px 20px;
|
|
||||||
margin: 10px 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.scene-icon-container {
|
|
||||||
width: 60px;
|
|
||||||
height: 60px;
|
|
||||||
border-radius: 50%;
|
|
||||||
background: radial-gradient(circle, #00E5FF 0%, rgba(15, 28, 61, 0) 70%);
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
margin-right: 15px;
|
|
||||||
|
|
||||||
.scene-icon {
|
|
||||||
font-size: 32px;
|
|
||||||
color: #ffffff;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.scene-name {
|
|
||||||
font-weight: bold;
|
|
||||||
margin-right: auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
.metrics-container {
|
|
||||||
display: flex;
|
|
||||||
.metric {
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
align-items: center;
|
|
||||||
margin-left: 20px;
|
|
||||||
.metric-label {
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
margin-bottom: 5px;
|
|
||||||
.point {
|
|
||||||
width: 8px;
|
|
||||||
height: 8px;
|
|
||||||
border-radius: 50%;
|
|
||||||
margin-right: 5px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.metric-value {
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</style>
|
|
@ -0,0 +1,114 @@
|
|||||||
|
import { echartOptionProfixHandle, PublicConfigClass } from '@/packages/public'
|
||||||
|
import { LineDropdownConfig } from './index'
|
||||||
|
import { CreateComponentType } from '@/packages/index.d'
|
||||||
|
import cloneDeep from 'lodash/cloneDeep'
|
||||||
|
import dataJson from './data.json'
|
||||||
|
|
||||||
|
export const includes = ['xAxis', 'yAxis', 'grid']
|
||||||
|
|
||||||
|
const option = {
|
||||||
|
backgroundColor: 'rgba(13, 16, 22, 1)',
|
||||||
|
grid: {
|
||||||
|
left: '8%',
|
||||||
|
right: '8%',
|
||||||
|
top: '15%',
|
||||||
|
bottom: '15%',
|
||||||
|
containLabel: true
|
||||||
|
},
|
||||||
|
xAxis: {
|
||||||
|
type: 'category',
|
||||||
|
boundaryGap: false,
|
||||||
|
axisLine: {
|
||||||
|
show: false
|
||||||
|
},
|
||||||
|
axisTick: {
|
||||||
|
show: false
|
||||||
|
},
|
||||||
|
axisLabel: {
|
||||||
|
color: 'rgba(255, 255, 255, 0.6)',
|
||||||
|
fontSize: 12
|
||||||
|
},
|
||||||
|
},
|
||||||
|
yAxis: {
|
||||||
|
type: 'value',
|
||||||
|
axisLine: {
|
||||||
|
show: false
|
||||||
|
},
|
||||||
|
axisTick: {
|
||||||
|
show: false
|
||||||
|
},
|
||||||
|
axisLabel: {
|
||||||
|
color: 'rgba(255, 255, 255, 0.6)',
|
||||||
|
fontSize: 12
|
||||||
|
},
|
||||||
|
splitLine: {
|
||||||
|
show: true,
|
||||||
|
lineStyle: {
|
||||||
|
color: 'rgba(255, 255, 255, 0.1)',
|
||||||
|
type: 'solid'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
tooltip: {
|
||||||
|
trigger: 'axis',
|
||||||
|
axisPointer: {
|
||||||
|
type: 'line',
|
||||||
|
lineStyle: {
|
||||||
|
color: 'rgba(58, 160, 255, 1)',
|
||||||
|
type: 'solid'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
dataset: { ...dataJson },
|
||||||
|
series: [
|
||||||
|
{
|
||||||
|
type: 'line',
|
||||||
|
smooth: true,
|
||||||
|
symbol: 'none', // 默认不显示点
|
||||||
|
symbolSize: 8,
|
||||||
|
lineStyle: {
|
||||||
|
width: 2,
|
||||||
|
color: {
|
||||||
|
type: 'linear',
|
||||||
|
x: 0,
|
||||||
|
y: 0,
|
||||||
|
x2: 1,
|
||||||
|
y2: 0,
|
||||||
|
colorStops: [
|
||||||
|
{ offset: 0, color: 'rgba(58, 160, 255, 1)' },
|
||||||
|
{ offset: 1, color: 'rgba(127, 216, 255, 1)' }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
emphasis: {
|
||||||
|
focus: 'series',
|
||||||
|
symbol: 'circle', // 鼠标悬停时显示圆点
|
||||||
|
symbolSize: 8,
|
||||||
|
itemStyle: {
|
||||||
|
color: 'rgba(58, 160, 255, 1)',
|
||||||
|
borderColor: 'rgba(255, 255, 255, 0.8)',
|
||||||
|
borderWidth: 2
|
||||||
|
}
|
||||||
|
},
|
||||||
|
areaStyle: {
|
||||||
|
color: {
|
||||||
|
type: 'linear',
|
||||||
|
x: 0,
|
||||||
|
y: 0,
|
||||||
|
x2: 0,
|
||||||
|
y2: 1,
|
||||||
|
colorStops: [
|
||||||
|
{ offset: 0, color: 'rgba(58, 160, 255, 0.5)' },
|
||||||
|
{ offset: 1, color: 'rgba(58, 160, 255, 0.05)' }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
export default class Config extends PublicConfigClass implements CreateComponentType {
|
||||||
|
public key: string = LineDropdownConfig.key
|
||||||
|
public chartConfig = cloneDeep(LineDropdownConfig)
|
||||||
|
public option = echartOptionProfixHandle(option, includes)
|
||||||
|
}
|
@ -0,0 +1,16 @@
|
|||||||
|
<template>
|
||||||
|
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup lang="ts">
|
||||||
|
import { PropType } from 'vue'
|
||||||
|
import { NSpace, NCard, NFormItem, NInput } from 'naive-ui'
|
||||||
|
import config from './config'
|
||||||
|
|
||||||
|
defineProps({
|
||||||
|
chartConfig: {
|
||||||
|
type: Object as PropType<config>,
|
||||||
|
required: true
|
||||||
|
}
|
||||||
|
})
|
||||||
|
</script>
|
@ -0,0 +1,81 @@
|
|||||||
|
{
|
||||||
|
"dimensions": ["time", "value"],
|
||||||
|
"source": [
|
||||||
|
{
|
||||||
|
"time": "13:00",
|
||||||
|
"value": 50
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"time": "13:05",
|
||||||
|
"value": 45
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"time": "13:10",
|
||||||
|
"value": 55
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"time": "13:15",
|
||||||
|
"value": 48
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"time": "13:20",
|
||||||
|
"value": 42
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"time": "13:25",
|
||||||
|
"value": 38
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"time": "13:30",
|
||||||
|
"value": 35
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"time": "13:35",
|
||||||
|
"value": 40
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"time": "13:40",
|
||||||
|
"value": 50
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"time": "13:45",
|
||||||
|
"value": 65
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"time": "13:50",
|
||||||
|
"value": 78
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"time": "13:55",
|
||||||
|
"value": 80
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"time": "14:00",
|
||||||
|
"value": 75
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"time": "14:05",
|
||||||
|
"value": 68
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"time": "14:10",
|
||||||
|
"value": 60
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"time": "14:15",
|
||||||
|
"value": 55
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"time": "14:20",
|
||||||
|
"value": 52
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"time": "14:25",
|
||||||
|
"value": 58
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"time": "14:30",
|
||||||
|
"value": 62
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@ -0,0 +1,14 @@
|
|||||||
|
import { ConfigType, PackagesCategoryEnum, ChartFrameEnum } from '@/packages/index.d'
|
||||||
|
// import { ChatCategoryEnum, ChatCategoryEnumName } from '../..'
|
||||||
|
|
||||||
|
export const LineDropdownConfig: ConfigType = {
|
||||||
|
key: 'LineDropdown',
|
||||||
|
chartKey: 'VLineDropdown',
|
||||||
|
conKey: 'VCLineDropdown',
|
||||||
|
title: '下拉折线图',
|
||||||
|
category: 'MyComponents',
|
||||||
|
categoryName: '自定义组件',
|
||||||
|
package: PackagesCategoryEnum.CHARTS,
|
||||||
|
chartFrame: ChartFrameEnum.ECHARTS,
|
||||||
|
image: 'line_warn.png'
|
||||||
|
}
|
213
src/packages/components/Charts/MyComponents/PieCenter/config.ts
Normal file
@ -0,0 +1,213 @@
|
|||||||
|
import { echartOptionProfixHandle, PublicConfigClass } from '@/packages/public'
|
||||||
|
import { PieCenterConfig } from './index'
|
||||||
|
import { CreateComponentType } from '@/packages/index.d'
|
||||||
|
import cloneDeep from 'lodash/cloneDeep'
|
||||||
|
import dataJson from './data.json'
|
||||||
|
|
||||||
|
export const includes = ['legend']
|
||||||
|
|
||||||
|
// 其它配置
|
||||||
|
const otherConfig = {
|
||||||
|
// 轮播动画
|
||||||
|
isCarousel: false,
|
||||||
|
}
|
||||||
|
|
||||||
|
const option = {
|
||||||
|
...otherConfig,
|
||||||
|
backgroundColor: 'transparent',
|
||||||
|
legend: {
|
||||||
|
show: true,
|
||||||
|
orient: 'vertical',
|
||||||
|
left: '60%', // 默认更靠左一点,避免截断
|
||||||
|
top: 'center',
|
||||||
|
icon: 'rect',
|
||||||
|
showEmpty:false,
|
||||||
|
// itemWidth: 10,
|
||||||
|
itemHeight: 8,
|
||||||
|
itemGap: 5,
|
||||||
|
selectedMode: 'multiple',
|
||||||
|
// padding: [15, 20, 15, 20],
|
||||||
|
textStyle: {
|
||||||
|
color: 'rgba(255, 255, 255, 1)',
|
||||||
|
fontSize: 16
|
||||||
|
},
|
||||||
|
formatter: function (name: string) {
|
||||||
|
return name
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// color: ['rgba(255, 215, 0, 1)', 'rgba(74, 144, 226, 1)', 'rgba(80, 227, 194, 1)', 'rgba(126, 211, 33, 1)', 'rgba(144, 19, 254, 1)'],
|
||||||
|
dataset: { ...dataJson },
|
||||||
|
series: [
|
||||||
|
// 最外浅灰细边框
|
||||||
|
{
|
||||||
|
type: 'pie',
|
||||||
|
radius: ['84%', '86%'],
|
||||||
|
center: ['30%', '48%'],
|
||||||
|
silent: true,
|
||||||
|
z: 1,
|
||||||
|
data: [{ value: 1, name: '', itemStyle: {
|
||||||
|
color: {
|
||||||
|
type: 'linear',
|
||||||
|
x: 0,
|
||||||
|
y: 0,
|
||||||
|
x2: 0,
|
||||||
|
y2: 1,
|
||||||
|
colorStops: [
|
||||||
|
{ offset: 0, color: 'rgba(200, 200, 200, 0.01)' },
|
||||||
|
{ offset: 0.5, color: 'rgba(200, 200, 200, 0.1)' },
|
||||||
|
{ offset: 1, color: 'rgba(200, 200, 200, 0.01)' },
|
||||||
|
]
|
||||||
|
}
|
||||||
|
} }],
|
||||||
|
label: { show: false },
|
||||||
|
labelLine: { show: false }
|
||||||
|
},
|
||||||
|
// 中层蓝色细边框
|
||||||
|
{
|
||||||
|
type: 'pie',
|
||||||
|
radius: ['73%', '75%'],
|
||||||
|
center: ['30%', '48%'],
|
||||||
|
silent: true,
|
||||||
|
z: 2,
|
||||||
|
data: [{
|
||||||
|
value: 1, name: '', itemStyle: {
|
||||||
|
color: {
|
||||||
|
type: 'linear',
|
||||||
|
x: 0,
|
||||||
|
y: 0,
|
||||||
|
x2: 0,
|
||||||
|
y2: 1,
|
||||||
|
colorStops: [
|
||||||
|
{ offset: 0, color: 'rgba(58, 160, 255, 0.2)' },
|
||||||
|
{ offset: 1, color: 'rgba(58, 160, 255, 1)' },
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}],
|
||||||
|
label: { show: false },
|
||||||
|
labelLine: { show: false }
|
||||||
|
},
|
||||||
|
// 内层(蓝->黑)渐变环:在外边框里面
|
||||||
|
{
|
||||||
|
type: 'pie',
|
||||||
|
radius: ['66%', '73%'],
|
||||||
|
center: ['30%', '48%'],
|
||||||
|
silent: true,
|
||||||
|
z: 3,
|
||||||
|
data: [
|
||||||
|
{
|
||||||
|
value: 1,
|
||||||
|
name: '',
|
||||||
|
itemStyle: {
|
||||||
|
color: {
|
||||||
|
type: 'linear',
|
||||||
|
x: 0,
|
||||||
|
y: 0,
|
||||||
|
x2: 0,
|
||||||
|
y2: 1,
|
||||||
|
colorStops: [
|
||||||
|
{ offset: 0, color: 'rgba(10, 21, 35, 0.3)' },
|
||||||
|
{ offset: 1, color: 'rgba(127, 216, 255, 0.3)' },
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
label: { show: false },
|
||||||
|
labelLine: { show: false }
|
||||||
|
},
|
||||||
|
// 主数据环:内半径加大,让"最内环更薄"
|
||||||
|
{
|
||||||
|
type: 'pie',
|
||||||
|
radius: ['50%', '66%'], // 原 ['35%','65%'] -> 更薄的环
|
||||||
|
center: ['30%', '50%'],
|
||||||
|
avoidLabelOverlap: false,
|
||||||
|
padAngle: 4, // 扇区间隙
|
||||||
|
z: 9,
|
||||||
|
itemStyle: {
|
||||||
|
borderColor: 'rgba(13, 16, 22, 1)', // 用深色细边强调间隙
|
||||||
|
borderWidth: 2,
|
||||||
|
borderRadius: 0
|
||||||
|
},
|
||||||
|
label: { show: false },
|
||||||
|
labelLine: { show: false },
|
||||||
|
emphasis: {
|
||||||
|
label: {
|
||||||
|
show: false,
|
||||||
|
},
|
||||||
|
itemStyle: { shadowBlur: 12, shadowColor: 'rgba(0, 0, 0, 0.35)' }
|
||||||
|
},
|
||||||
|
data: dataJson.source
|
||||||
|
},
|
||||||
|
// 内部渐变装饰环(在空洞边缘,提升质感)
|
||||||
|
{
|
||||||
|
type: 'pie',
|
||||||
|
radius: ['48%', '50%'], // 位于主环内侧
|
||||||
|
center: ['30%', '50%'],
|
||||||
|
silent: true,
|
||||||
|
z: 0,
|
||||||
|
data: [
|
||||||
|
{
|
||||||
|
value: 1,
|
||||||
|
name: '',
|
||||||
|
itemStyle: {
|
||||||
|
color: {
|
||||||
|
type: 'linear',
|
||||||
|
x: 0,
|
||||||
|
y: 0,
|
||||||
|
x2: 0,
|
||||||
|
y2: 1,
|
||||||
|
colorStops: [
|
||||||
|
{ offset: 0, color: 'rgba(90, 220, 255, 0.15)' },
|
||||||
|
{ offset: 1, color: 'rgba(90, 220, 255, 0.15)' }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
label: { show: false },
|
||||||
|
labelLine: { show: false }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 'pie',
|
||||||
|
radius: ['0%', '48%'], // 位于主环内侧
|
||||||
|
center: ['30%', '50%'],
|
||||||
|
// silent: true,
|
||||||
|
z: 10,
|
||||||
|
label: {
|
||||||
|
show: true,
|
||||||
|
position: 'center',
|
||||||
|
formatter: '{a|23211}\n\n{b|总数}',
|
||||||
|
rich: {
|
||||||
|
a: {
|
||||||
|
color: 'rgba(255, 255, 255, 1)',
|
||||||
|
fontSize: 34,
|
||||||
|
align: 'center'
|
||||||
|
},
|
||||||
|
b: {
|
||||||
|
color: 'rgba(255, 255, 255, 1)',
|
||||||
|
fontSize: 16,
|
||||||
|
align: 'center'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
data: [
|
||||||
|
{
|
||||||
|
value: 1,
|
||||||
|
name: '',
|
||||||
|
itemStyle: {
|
||||||
|
color: 'transparent'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
labelLine: { show: false }
|
||||||
|
}
|
||||||
|
],
|
||||||
|
}
|
||||||
|
|
||||||
|
export default class Config extends PublicConfigClass implements CreateComponentType {
|
||||||
|
public key: string = PieCenterConfig.key
|
||||||
|
public chartConfig = cloneDeep(PieCenterConfig)
|
||||||
|
public option = echartOptionProfixHandle(option, includes)
|
||||||
|
}
|
@ -0,0 +1,26 @@
|
|||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<!-- 基础配置可以复用PieCommon的配置面板 -->
|
||||||
|
<CollapseItem name="基础配置" :expanded="true">
|
||||||
|
<SettingItemBox name="图例">
|
||||||
|
<SettingItem name="显示">
|
||||||
|
<n-switch v-model:value="optionData.legend.show" size="small" />
|
||||||
|
</SettingItem>
|
||||||
|
</SettingItemBox>
|
||||||
|
</CollapseItem>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup lang="ts">
|
||||||
|
import { PropType } from 'vue'
|
||||||
|
import { CollapseItem, SettingItemBox, SettingItem } from '@/components/Pages/ChartItemSetting'
|
||||||
|
import { NSwitch } from 'naive-ui'
|
||||||
|
import { option } from './config'
|
||||||
|
|
||||||
|
defineProps({
|
||||||
|
optionData: {
|
||||||
|
type: Object as PropType<typeof option>,
|
||||||
|
required: true
|
||||||
|
}
|
||||||
|
})
|
||||||
|
</script>
|
@ -0,0 +1,25 @@
|
|||||||
|
{
|
||||||
|
"dimensions": ["name", "value", "itemColor", "borderColor"],
|
||||||
|
"source": [
|
||||||
|
{
|
||||||
|
"name": "类型1",
|
||||||
|
"value": 5830
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "类型2",
|
||||||
|
"value": 7020
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "类型3",
|
||||||
|
"value": 4220
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "类型4",
|
||||||
|
"value": 5180
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "类型5",
|
||||||
|
"value": 2340
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@ -0,0 +1,14 @@
|
|||||||
|
import { ConfigType, PackagesCategoryEnum, ChartFrameEnum } from '@/packages/index.d'
|
||||||
|
// import { ChatCategoryEnum, ChatCategoryEnumName } from '../../../index.d'
|
||||||
|
|
||||||
|
export const PieCenterConfig: ConfigType = {
|
||||||
|
key: 'PieCenter',
|
||||||
|
chartKey: 'VPieCenter',
|
||||||
|
conKey: 'VCPieCenter',
|
||||||
|
title: '中心总数饼图',
|
||||||
|
category: 'MyComponents',
|
||||||
|
categoryName: '自定义组件',
|
||||||
|
package: PackagesCategoryEnum.CHARTS,
|
||||||
|
chartFrame: ChartFrameEnum.ECHARTS,
|
||||||
|
image: 'pie_center.png'
|
||||||
|
}
|
418
src/packages/components/Charts/MyComponents/PieCenter/index.vue
Normal file
Before Width: | Height: | Size: 161 KiB After Width: | Height: | Size: 161 KiB |
Before Width: | Height: | Size: 152 KiB After Width: | Height: | Size: 152 KiB |
@ -6,12 +6,12 @@ import dataJson from './data.json'
|
|||||||
export const option = {
|
export const option = {
|
||||||
dataset: dataJson.source,
|
dataset: dataJson.source,
|
||||||
title: '场景分布概况',
|
title: '场景分布概况',
|
||||||
titleColor: '#ffffff',
|
titleColor: '#E6F7FF',
|
||||||
titleSize: 20,
|
titleSize: 18,
|
||||||
labelColor: '#B0E0E6',
|
labelColor: '#E6F7FF',
|
||||||
labelSize: 16,
|
labelSize: 16,
|
||||||
valueColor: '#ffffff',
|
valueColor: '#ffffff',
|
||||||
valueSize: 40,
|
valueSize: 34,
|
||||||
linkColor: '#00E5FF',
|
linkColor: '#00E5FF',
|
||||||
linkText: '查看更多>>'
|
linkText: '查看更多>>'
|
||||||
}
|
}
|
||||||
|
@ -1,14 +1,18 @@
|
|||||||
{
|
{
|
||||||
"source": [
|
"source": [
|
||||||
{
|
{
|
||||||
|
"title":"储罐区",
|
||||||
"label": "场景总数",
|
"label": "场景总数",
|
||||||
"value": 264,
|
"value": 264,
|
||||||
"color": "#00E5FF"
|
"color": "#00E5FF",
|
||||||
|
"image": "scene-total.png"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"title":"储罐区",
|
||||||
"label": "智控场景",
|
"label": "智控场景",
|
||||||
"value": 264,
|
"value": 264,
|
||||||
"color": "#FFD700"
|
"color": "#FFD700",
|
||||||
|
"image": "scene-control.png"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -1,26 +0,0 @@
|
|||||||
import { PublicConfigClass } from '@/packages/public'
|
|
||||||
import { CreateComponentType } from '@/packages/index.d'
|
|
||||||
import { StorageSceneConfig } from './index'
|
|
||||||
import dataJson from './data.json'
|
|
||||||
|
|
||||||
export const option = {
|
|
||||||
dataset: dataJson.source,
|
|
||||||
title: '场景分布概况',
|
|
||||||
titleColor: '#ffffff',
|
|
||||||
titleSize: 20,
|
|
||||||
linkColor: '#00E5FF',
|
|
||||||
linkText: '查看更多>>',
|
|
||||||
sceneNameColor: '#ffffff',
|
|
||||||
sceneNameSize: 16,
|
|
||||||
labelColor: '#B0E0E6',
|
|
||||||
labelSize: 14,
|
|
||||||
valueColor: '#00E5FF',
|
|
||||||
valueSize: 20,
|
|
||||||
borderColor: '#4A90E2'
|
|
||||||
}
|
|
||||||
|
|
||||||
export default class Config extends PublicConfigClass implements CreateComponentType {
|
|
||||||
public key = StorageSceneConfig.key
|
|
||||||
public chartConfig = StorageSceneConfig
|
|
||||||
public option = option
|
|
||||||
}
|
|
@ -1,31 +0,0 @@
|
|||||||
<template>
|
|
||||||
<div class="go-storage-scene-config">
|
|
||||||
<n-form-item label="标题">
|
|
||||||
<n-input v-model:value="option.title" />
|
|
||||||
</n-form-item>
|
|
||||||
<n-form-item label="标题大小">
|
|
||||||
<n-input-number v-model:value="option.titleSize" />
|
|
||||||
</n-form-item>
|
|
||||||
<n-form-item label="场景名称大小">
|
|
||||||
<n-input-number v-model:value="option.sceneNameSize" />
|
|
||||||
</n-form-item>
|
|
||||||
<n-form-item label="标签大小">
|
|
||||||
<n-input-number v-model:value="option.labelSize" />
|
|
||||||
</n-form-item>
|
|
||||||
<n-form-item label="数值大小">
|
|
||||||
<n-input-number v-model:value="option.valueSize" />
|
|
||||||
</n-form-item>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script setup lang="ts">
|
|
||||||
import { PropType } from 'vue'
|
|
||||||
import { option } from './config'
|
|
||||||
|
|
||||||
defineProps({
|
|
||||||
option: {
|
|
||||||
type: Object as PropType<typeof option>,
|
|
||||||
required: true
|
|
||||||
}
|
|
||||||
})
|
|
||||||
</script>
|
|
@ -1,18 +0,0 @@
|
|||||||
{
|
|
||||||
"source": [
|
|
||||||
{
|
|
||||||
"name": "危化品库",
|
|
||||||
"metrics": [
|
|
||||||
{ "label": "场景总数", "value": 5, "icon": "folder" },
|
|
||||||
{ "label": "智控场景", "value": 60, "icon": "server" }
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "危废品库",
|
|
||||||
"metrics": [
|
|
||||||
{ "label": "场景总数", "value": 5, "icon": "folder" },
|
|
||||||
{ "label": "智控场景", "value": 60, "icon": "server" }
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
@ -1,14 +0,0 @@
|
|||||||
import { ConfigType, PackagesCategoryEnum, ChartFrameEnum } from '@/packages/index.d'
|
|
||||||
|
|
||||||
export const StorageSceneConfig: ConfigType = {
|
|
||||||
key: 'StorageScene',
|
|
||||||
chartKey: 'VStorageScene',
|
|
||||||
conKey: 'VCStorageScene',
|
|
||||||
title: '仓储场景',
|
|
||||||
category: 'MyComponents',
|
|
||||||
categoryName: '自定义组件',
|
|
||||||
package: PackagesCategoryEnum.CHARTS,
|
|
||||||
chartFrame: ChartFrameEnum.COMMON,
|
|
||||||
image: 'storage_scene.png'
|
|
||||||
}
|
|
||||||
export default StorageSceneConfig
|
|
@ -1,147 +0,0 @@
|
|||||||
<template>
|
|
||||||
<div class="go-storage-scene">
|
|
||||||
<div class="header">
|
|
||||||
<div class="title">
|
|
||||||
<svg-icon icon-class="rocket" class="title-icon"></svg-icon>
|
|
||||||
<span :style="{ color: option.titleColor, fontSize: option.titleSize + 'px' }">{{ option.title }}</span>
|
|
||||||
</div>
|
|
||||||
<a class="link" :style="{ color: option.linkColor }">{{ option.linkText }}</a>
|
|
||||||
</div>
|
|
||||||
<div class="content">
|
|
||||||
<div v-for="(scene, index) in option.dataset" :key="index" class="scene-item">
|
|
||||||
<div class="scene-header">
|
|
||||||
<span class="dots">···</span>
|
|
||||||
<span class="scene-name" :style="{ color: option.sceneNameColor, fontSize: option.sceneNameSize + 'px' }">{{ scene.name }}</span>
|
|
||||||
</div>
|
|
||||||
<div class="metrics-wrapper">
|
|
||||||
<div v-for="(metric, mIndex) in scene.metrics" :key="mIndex" class="metric-box" :style="{ borderColor: option.borderColor }">
|
|
||||||
<div class="metric-icon-container">
|
|
||||||
<svg-icon :icon-class="metric.icon" class="metric-icon"></svg-icon>
|
|
||||||
</div>
|
|
||||||
<div class="metric-details">
|
|
||||||
<span class="metric-label" :style="{ color: option.labelColor, fontSize: option.labelSize + 'px' }">{{ metric.label }}</span>
|
|
||||||
<span class="metric-value" :style="{ color: option.valueColor, fontSize: option.valueSize + 'px' }">{{ metric.value }}</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script setup lang="ts">
|
|
||||||
import { PropType, computed } from 'vue'
|
|
||||||
import { option as configOption } from './config'
|
|
||||||
|
|
||||||
const props = defineProps({
|
|
||||||
chartConfig: {
|
|
||||||
type: Object as PropType<{ option: typeof configOption }>,
|
|
||||||
required: true
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
const option = computed(() => props.chartConfig.option)
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
|
||||||
.go-storage-scene {
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
background-color: #0F1C3D;
|
|
||||||
padding: 15px;
|
|
||||||
box-sizing: border-box;
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
|
|
||||||
.header {
|
|
||||||
display: flex;
|
|
||||||
justify-content: space-between;
|
|
||||||
align-items: center;
|
|
||||||
background-color: #1A385A;
|
|
||||||
padding: 5px 15px;
|
|
||||||
border-radius: 5px;
|
|
||||||
margin-bottom: 20px;
|
|
||||||
|
|
||||||
.title {
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
.title-icon {
|
|
||||||
font-size: 24px;
|
|
||||||
margin-right: 10px;
|
|
||||||
color: #00E5FF;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.link {
|
|
||||||
cursor: pointer;
|
|
||||||
font-size: 14px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.content {
|
|
||||||
flex: 1;
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
justify-content: space-around;
|
|
||||||
}
|
|
||||||
|
|
||||||
.scene-item {
|
|
||||||
margin-bottom: 15px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.scene-header {
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
margin-bottom: 10px;
|
|
||||||
.dots {
|
|
||||||
color: #4A90E2;
|
|
||||||
font-weight: bold;
|
|
||||||
margin-right: 10px;
|
|
||||||
}
|
|
||||||
.scene-name {
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.metrics-wrapper {
|
|
||||||
display: flex;
|
|
||||||
justify-content: space-between;
|
|
||||||
}
|
|
||||||
|
|
||||||
.metric-box {
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
background-color: rgba(26, 56, 90, 0.5);
|
|
||||||
border-bottom: 2px solid;
|
|
||||||
padding: 10px;
|
|
||||||
width: 48%;
|
|
||||||
box-sizing: border-box;
|
|
||||||
}
|
|
||||||
|
|
||||||
.metric-icon-container {
|
|
||||||
width: 40px;
|
|
||||||
height: 40px;
|
|
||||||
background-color: rgba(0, 229, 255, 0.2);
|
|
||||||
border: 1px solid #00E5FF;
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
margin-right: 10px;
|
|
||||||
|
|
||||||
.metric-icon {
|
|
||||||
font-size: 24px;
|
|
||||||
color: #00E5FF;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.metric-details {
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: space-between;
|
|
||||||
width: 100%;
|
|
||||||
.metric-value {
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</style>
|
|
After Width: | Height: | Size: 207 KiB |
After Width: | Height: | Size: 28 KiB |
@ -40,8 +40,8 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { PropType, computed } from 'vue'
|
import { PropType, computed } from 'vue'
|
||||||
import { option as configOption } from './config'
|
import { option as configOption } from './config'
|
||||||
import bg1 from '/6.png'
|
import bg1 from './assets/6.png'
|
||||||
import bg2 from '/04.png'
|
import bg2 from './assets/04.png'
|
||||||
|
|
||||||
const backgrounds = [bg1, bg2]
|
const backgrounds = [bg1, bg2]
|
||||||
|
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
import { AlarmListConfig } from './AlarmList/index'
|
import { AlarmListConfig } from './AlarmList/index'
|
||||||
import { SceneDistributionConfig } from './SceneDistribution/index'
|
import { SceneDistributionConfig } from './SceneDistribution/index'
|
||||||
import { TopAlarmsConfig } from './TopAlarms/index'
|
import { TopAlarmsConfig } from './TopAlarms/index'
|
||||||
import { DetailedSceneConfig } from './DetailedScene/index'
|
|
||||||
import { ParkingSceneConfig } from './ParkingScene/index'
|
import { ParkingSceneConfig } from './ParkingScene/index'
|
||||||
import { WorkshopSceneConfig } from './WorkshopScene/index'
|
import { WorkshopSceneConfig } from './WorkshopScene/index'
|
||||||
import { DeviceStatusConfig } from './DeviceStatus/index'
|
import { DeviceStatusConfig } from './DeviceStatus/index'
|
||||||
import { StorageSceneConfig } from './StorageScene'
|
import { LineDropdownConfig } from './LineDropdown/index'
|
||||||
|
import { PieCenterConfig } from './PieCenter/index'
|
||||||
// import { LineGraph01Config } from './LineGraph01/index'
|
// import { LineGraph01Config } from './LineGraph01/index'
|
||||||
// import { LineGraph02Config } from './LineGraph02/index'
|
// import { LineGraph02Config } from './LineGraph02/index'
|
||||||
import { MaxTrimConfig } from './MaxTrim/index'
|
import { MaxTrimConfig } from './MaxTrim/index'
|
||||||
@ -17,11 +17,11 @@ export default [
|
|||||||
AlarmListConfig,
|
AlarmListConfig,
|
||||||
SceneDistributionConfig,
|
SceneDistributionConfig,
|
||||||
TopAlarmsConfig,
|
TopAlarmsConfig,
|
||||||
DetailedSceneConfig,
|
|
||||||
ParkingSceneConfig,
|
ParkingSceneConfig,
|
||||||
WorkshopSceneConfig,
|
WorkshopSceneConfig,
|
||||||
DeviceStatusConfig,
|
DeviceStatusConfig,
|
||||||
StorageSceneConfig,
|
LineDropdownConfig,
|
||||||
|
PieCenterConfig,
|
||||||
MaxTrimConfig,
|
MaxTrimConfig,
|
||||||
// LineGraph01Config,
|
// LineGraph01Config,
|
||||||
// LineGraph02Config,
|
// LineGraph02Config,
|
||||||
|
@ -3,4 +3,4 @@ import { PieCircleConfig } from './PieCircle/index'
|
|||||||
import { PieThreeConfig } from './PieThree'
|
import { PieThreeConfig } from './PieThree'
|
||||||
import { PieMultConfig } from './PieMult/index'
|
import { PieMultConfig } from './PieMult/index'
|
||||||
|
|
||||||
export default [PieCommonConfig, PieCircleConfig, PieThreeConfig, PieMultConfig]
|
export default [PieCommonConfig, PieCircleConfig, PieThreeConfig, PieMultConfig]
|
||||||
|
BIN
src/styles/font/Alibaba-PuHuiTi-Bold.otf
Normal file
6
src/styles/font/font.scss
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
@font-face {
|
||||||
|
font-family: 'Alibaba-PuHuiTi-Bold';
|
||||||
|
src: url('./Alibaba-PuHuiTi-Bold.otf') format('opentype');
|
||||||
|
font-weight: normal;
|
||||||
|
font-style: normal;
|
||||||
|
}
|