]> acesimba.cloud Git - StationBuilder.git/commitdiff
refactor(vue): 迁移 assets 至 src-vue 并解除对 React src 的引用
authorCodeBuddy <codebuddy@local>
Wed, 23 Sep 2026 05:07:50 +0000 (13:07 +0800)
committerCodeBuddy <codebuddy@local>
Wed, 23 Sep 2026 05:07:50 +0000 (13:07 +0800)
33 files changed:
src-vue/assets/icons/Apps.svg [new file with mode: 0644]
src-vue/assets/icons/First.svg [new file with mode: 0644]
src-vue/assets/icons/Last.svg [new file with mode: 0644]
src-vue/assets/icons/Next.svg [new file with mode: 0644]
src-vue/assets/icons/Previous.svg [new file with mode: 0644]
src-vue/assets/icons/WISE_SRP.svg [new file with mode: 0644]
src-vue/assets/icons/arrow-down.svg [new file with mode: 0644]
src-vue/assets/icons/arrow-right.svg [new file with mode: 0644]
src-vue/assets/icons/building-resources.svg [new file with mode: 0644]
src-vue/assets/icons/config.svg [new file with mode: 0644]
src-vue/assets/icons/device-templates.svg [new file with mode: 0644]
src-vue/assets/icons/digital-twin-models.svg [new file with mode: 0644]
src-vue/assets/icons/domain-settings.svg [new file with mode: 0644]
src-vue/assets/icons/domain-solutions.svg [new file with mode: 0644]
src-vue/assets/icons/file.svg [new file with mode: 0644]
src-vue/assets/icons/internal-tools.svg [new file with mode: 0644]
src-vue/assets/icons/iot_suite.svg [new file with mode: 0644]
src-vue/assets/icons/knowledge-templates.svg [new file with mode: 0644]
src-vue/assets/icons/manage.svg [new file with mode: 0644]
src-vue/assets/icons/menu.svg [new file with mode: 0644]
src-vue/assets/icons/monitoring-dashboards.svg [new file with mode: 0644]
src-vue/assets/icons/notifications.svg [new file with mode: 0644]
src-vue/assets/icons/operations-templates.svg [new file with mode: 0644]
src-vue/assets/icons/search.svg [new file with mode: 0644]
src-vue/assets/icons/site-management.svg [new file with mode: 0644]
src-vue/assets/icons/support.svg [new file with mode: 0644]
src-vue/assets/icons/system-settings.svg [new file with mode: 0644]
src-vue/assets/solutions/datacenter-600x300.webp [new file with mode: 0644]
src-vue/assets/solutions/energy-600x300.webp [new file with mode: 0644]
src-vue/assets/solutions/wastewater-600x300.webp [new file with mode: 0644]
src-vue/components/SvgIcon.vue
src-vue/pages/domain/domainCommon.js
vite.local.config.js

diff --git a/src-vue/assets/icons/Apps.svg b/src-vue/assets/icons/Apps.svg
new file mode 100644 (file)
index 0000000..bb34b96
--- /dev/null
@@ -0,0 +1,11 @@
+<svg width="20" height="20" viewBox="6 14 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M6 14H12V20H6V14Z" fill="currentColor"/>
+<path d="M6 21H12V27H6V21Z" fill="currentColor"/>
+<path d="M19 14H13V20H19V14Z" fill="currentColor"/>
+<path d="M13 21H19V27H13V21Z" fill="currentColor"/>
+<path d="M26 14H20V20H26V14Z" fill="currentColor"/>
+<path d="M20 21H26V27H20V21Z" fill="currentColor"/>
+<path d="M12 28H6V34H12V28Z" fill="currentColor"/>
+<path d="M13 28H19V34H13V28Z" fill="currentColor"/>
+<path d="M26 28H20V34H26V28Z" fill="currentColor"/>
+</svg>
diff --git a/src-vue/assets/icons/First.svg b/src-vue/assets/icons/First.svg
new file mode 100644 (file)
index 0000000..ec3ed83
--- /dev/null
@@ -0,0 +1,3 @@
+<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M11 9V23H9V9H11ZM23 10.707L17.707 16L23 21.293L21.5859 22.707L14.8789 16L21.5859 9.29297L23 10.707Z" fill="currentColor"/>
+</svg>
diff --git a/src-vue/assets/icons/Last.svg b/src-vue/assets/icons/Last.svg
new file mode 100644 (file)
index 0000000..04d72fc
--- /dev/null
@@ -0,0 +1,3 @@
+<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M23 23H21V9H23V23ZM17.1211 16L10.4141 22.707L9 21.293L14.293 16L9 10.707L10.4141 9.29297L17.1211 16Z" fill="currentColor"/>
+</svg>
diff --git a/src-vue/assets/icons/Next.svg b/src-vue/assets/icons/Next.svg
new file mode 100644 (file)
index 0000000..9d876bc
--- /dev/null
@@ -0,0 +1,3 @@
+<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M13.7068 9.29303L20.4138 16.0004L13.7068 22.7069L12.2928 21.2929L17.586 16.0001L12.2928 10.707L13.7068 9.29303Z" fill="currentColor"/>
+</svg>
diff --git a/src-vue/assets/icons/Previous.svg b/src-vue/assets/icons/Previous.svg
new file mode 100644 (file)
index 0000000..7209693
--- /dev/null
@@ -0,0 +1,3 @@
+<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M18.9999 9.29303L12.2928 16.0004L18.9999 22.7069L20.4138 21.2929L15.1207 16.0001L20.4138 10.707L18.9999 9.29303Z" fill="currentColor"/>
+</svg>
diff --git a/src-vue/assets/icons/WISE_SRP.svg b/src-vue/assets/icons/WISE_SRP.svg
new file mode 100644 (file)
index 0000000..256d51b
--- /dev/null
@@ -0,0 +1,34 @@
+<svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
+<g clip-path="url(#clip0_211_32681)">
+<path d="M23.855 10.3101L35.715 17.1551V30.8451L23.855 37.6901L12 30.8451V17.1551L23.855 10.3101Z" fill="url(#paint0_linear_211_32681)"/>
+<path d="M23.855 10.31L35.71 17.155V30.845L23.855 37.69L12 30.845V17.155L23.855 10.31ZM23.855 8L10 16V32L23.855 40L37.71 32V16L23.855 8Z" fill="url(#paint1_linear_211_32681)"/>
+<path d="M24.855 12.04V17.73L29.785 20.575V26.27L34.715 29.115V17.73L24.855 12.04Z" fill="url(#paint2_linear_211_32681)"/>
+<path d="M18.9299 15.465V21.155L23.8549 24V29.69L28.7849 32.535V21.155L18.9299 15.465Z" fill="url(#paint3_linear_211_32681)"/>
+<path d="M13 18.885L22.855 24.575V35.96L13 30.27V18.885Z" fill="url(#paint4_linear_211_32681)"/>
+</g>
+<defs>
+<linearGradient id="paint0_linear_211_32681" x1="12" y1="10.3101" x2="39.0997" y2="33.7823" gradientUnits="userSpaceOnUse">
+<stop offset="0.1" stop-color="white"/>
+<stop offset="0.8" stop-color="#BEDFFF"/>
+</linearGradient>
+<linearGradient id="paint1_linear_211_32681" x1="23.855" y1="8" x2="23.855" y2="40" gradientUnits="userSpaceOnUse">
+<stop offset="0.2" stop-color="#1E90FF"/>
+<stop offset="1" stop-color="#003CA6"/>
+</linearGradient>
+<linearGradient id="paint2_linear_211_32681" x1="29.785" y1="12.04" x2="29.785" y2="29.115" gradientUnits="userSpaceOnUse">
+<stop offset="0.2" stop-color="#1E90FF"/>
+<stop offset="1" stop-color="#003CA6"/>
+</linearGradient>
+<linearGradient id="paint3_linear_211_32681" x1="23.8574" y1="15.465" x2="23.8574" y2="32.535" gradientUnits="userSpaceOnUse">
+<stop offset="0.2" stop-color="#1E90FF"/>
+<stop offset="1" stop-color="#003CA6"/>
+</linearGradient>
+<linearGradient id="paint4_linear_211_32681" x1="17.9275" y1="18.885" x2="17.9275" y2="35.96" gradientUnits="userSpaceOnUse">
+<stop offset="0.2" stop-color="#1E90FF"/>
+<stop offset="1" stop-color="#003CA6"/>
+</linearGradient>
+<clipPath id="clip0_211_32681">
+<rect width="40" height="40" fill="white" transform="translate(4 4)"/>
+</clipPath>
+</defs>
+</svg>
diff --git a/src-vue/assets/icons/arrow-down.svg b/src-vue/assets/icons/arrow-down.svg
new file mode 100644 (file)
index 0000000..638c1d8
--- /dev/null
@@ -0,0 +1,3 @@
+<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M8 9L12.0001 15L16 9H8Z" fill="currentColor"/>
+</svg>
diff --git a/src-vue/assets/icons/arrow-right.svg b/src-vue/assets/icons/arrow-right.svg
new file mode 100644 (file)
index 0000000..4e65ada
--- /dev/null
@@ -0,0 +1,3 @@
+<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M9 16L15 11.9999L9 8L9 16Z" fill="currentColor"/>
+</svg>
diff --git a/src-vue/assets/icons/building-resources.svg b/src-vue/assets/icons/building-resources.svg
new file mode 100644 (file)
index 0000000..5707146
--- /dev/null
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#000000" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" role="img" aria-label="建站资源"><path d="m12 3 9 5-9 5-9-5 9-5Zm-9 9 9 5 9-5M3 16l9 5 9-5"/></svg>
diff --git a/src-vue/assets/icons/config.svg b/src-vue/assets/icons/config.svg
new file mode 100644 (file)
index 0000000..1f88305
--- /dev/null
@@ -0,0 +1,3 @@
+<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path fill-rule="evenodd" clip-rule="evenodd" d="M19.3254 15.2654L21.5741 15.0103C21.8091 13.9692 22.0001 13.0862 22.0001 12.0007C22.0001 10.9143 21.8096 10.03 21.5729 8.98855L19.3254 8.73284C19.2052 8.45275 19.0691 8.17876 18.9186 7.91261C18.7683 7.64732 18.6028 7.38958 18.4228 7.14142L19.3268 5.0293C18.5662 4.30021 17.9035 3.68575 16.9856 3.13806C16.0683 2.59066 15.2386 2.3123 14.2448 2L12.9043 3.86483C12.6024 3.83204 12.3042 3.80823 12.0001 3.80823C11.697 3.80823 11.3991 3.83174 11.0984 3.86454L9.75728 2.00029C8.76289 2.31202 7.93404 2.59066 7.01591 3.13777C6.09464 3.68692 5.43502 4.29469 4.67166 5.02524L5.57873 7.14056C5.39873 7.38872 5.23291 7.64645 5.08267 7.91202C4.93216 8.1779 4.79581 8.45159 4.67534 8.73227L2.42718 8.98885C2.18992 10.0308 2 10.9138 2 12.0007C2 13.0871 2.1902 13.9689 2.42746 15.0103L4.67421 15.2654C4.79467 15.5464 4.93102 15.8209 5.08182 16.088C5.23235 16.3536 5.3976 16.611 5.5776 16.8586L4.67194 18.9748C5.43473 19.7044 6.09408 20.3116 7.01448 20.8608C7.93178 21.4079 8.76176 21.6871 9.75501 22L11.0964 20.134C11.3977 20.168 11.6965 20.1912 12.0001 20.1912C12.3042 20.1912 12.6024 20.1668 12.9043 20.134L14.2448 22C15.2386 21.6868 16.0692 21.4073 16.9868 20.8602C17.9077 20.3108 18.5671 19.7039 19.3305 18.9739L18.4239 16.8571C18.6039 16.609 18.7698 16.3515 18.92 16.0857C19.0694 15.8212 19.2049 15.5475 19.3254 15.2654ZM20 12.0007C20 12.3899 19.9682 12.7577 19.9181 13.1417L17.8757 13.3736L17.8353 13.4948C17.6521 14.0446 17.4861 14.5425 17.1931 15.0617C16.8956 15.5882 16.5545 15.987 16.1752 16.4306L16.1752 16.4306L16.1007 16.5178L16.9236 18.439C16.6262 18.6787 16.3133 18.8973 15.9867 19.092C15.6681 19.2821 15.3362 19.4502 14.9934 19.5936L13.7779 17.9014L13.6271 17.9319C13.0708 18.0446 12.5843 18.1432 12.0001 18.1432C11.4129 18.1432 10.9499 18.0489 10.3916 17.9352L10.3916 17.9352L10.2239 17.9011L9.00667 19.5939C8.66425 19.4502 8.33259 19.2824 8.01454 19.0926C7.68828 18.8981 7.37534 18.6796 7.07855 18.4398L7.90144 16.5181L7.82349 16.427C7.44547 15.9856 7.10535 15.5884 6.80869 15.064C6.51751 14.549 6.35033 14.0483 6.16785 13.5018L6.12497 13.3736L4.08204 13.1417C4.03188 12.7574 4.00012 12.3902 4.00012 12.0007C4.00012 11.6101 4.03188 11.242 4.08233 10.8566L6.12441 10.6238L6.16413 10.5053C6.34838 9.95514 6.5161 9.4543 6.80954 8.93602C7.10617 8.41143 7.44674 8.0127 7.82454 7.57039L7.82455 7.57039L7.90258 7.47898L7.07911 5.55929C7.37647 5.31955 7.68913 5.1007 8.01597 4.90595C8.3343 4.71641 8.66567 4.54837 9.00866 4.40498L10.2259 6.09741L10.3744 6.06722C10.9318 5.95362 11.4097 5.85622 12.0001 5.85622C12.5922 5.85622 13.0714 5.95363 13.6311 6.0674L13.7777 6.09712L14.9934 4.40527C15.3359 4.54866 15.6672 4.71641 15.9856 4.90624C16.3147 5.10274 16.6279 5.321 16.9227 5.55813L16.1004 7.48072L16.1753 7.5686C16.5537 8.01204 16.8943 8.41117 17.1917 8.9366C17.4823 9.45045 17.6494 9.94985 17.8319 10.4951L17.8754 10.625L19.9178 10.8569C19.9677 11.242 20 11.6103 20 12.0007ZM14.0002 11.9993C14.0002 13.1257 13.1005 14.047 12.0003 14.047C10.8988 14.047 10.0002 13.1286 10.0002 11.9993C10.0002 10.8714 10.8974 9.95159 12.0003 9.95159C13.105 9.95159 14.0002 10.8682 14.0002 11.9993ZM12.0003 16.0949C9.80009 16.0949 8.00009 14.2542 8.00009 11.9993C8.00009 9.74696 9.79896 7.90361 12.0003 7.90361C14.198 7.90361 16.0003 9.74871 16.0003 11.9993C16.0003 14.2557 14.204 16.0949 12.0003 16.0949Z" fill="currentColor"/>
+</svg>
diff --git a/src-vue/assets/icons/device-templates.svg b/src-vue/assets/icons/device-templates.svg
new file mode 100644 (file)
index 0000000..f6389ee
--- /dev/null
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#000000" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" role="img" aria-label="设备模板"><rect x="6" y="6" width="12" height="12" rx="2"/><rect x="9" y="9" width="6" height="6" rx="1"/><path d="M9 3v3m6-3v3M9 18v3m6-3v3M3 9h3m-3 6h3m12-6h3m-3 6h3"/></svg>
diff --git a/src-vue/assets/icons/digital-twin-models.svg b/src-vue/assets/icons/digital-twin-models.svg
new file mode 100644 (file)
index 0000000..50c7fb9
--- /dev/null
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#000000" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" role="img" aria-label="数字孪生模型"><path d="m12 3 8 4.5v9L12 21l-8-4.5v-9L12 3ZM4 7.5l8 4.5 8-4.5M12 12v9"/><path d="m8 5.3 8 4.5v4.5" stroke-dasharray="2 2"/></svg>
diff --git a/src-vue/assets/icons/domain-settings.svg b/src-vue/assets/icons/domain-settings.svg
new file mode 100644 (file)
index 0000000..24a93a8
--- /dev/null
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#000000" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" role="img" aria-label="领域配置"><path d="M4 7h6m4 0h6M4 17h10m4 0h2"/><circle cx="12" cy="7" r="2"/><circle cx="16" cy="17" r="2"/><path d="M4 12h2m4 0h10"/><circle cx="8" cy="12" r="2"/></svg>
diff --git a/src-vue/assets/icons/domain-solutions.svg b/src-vue/assets/icons/domain-solutions.svg
new file mode 100644 (file)
index 0000000..2af0452
--- /dev/null
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#000000" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" role="img" aria-label="领域方案"><rect x="3" y="3" width="7" height="7" rx="1.5"/><rect x="14" y="3" width="7" height="7" rx="1.5"/><rect x="3" y="14" width="7" height="7" rx="1.5"/><path d="M14 17.5h7m-3.5-3.5v7"/></svg>
diff --git a/src-vue/assets/icons/file.svg b/src-vue/assets/icons/file.svg
new file mode 100644 (file)
index 0000000..999e112
--- /dev/null
@@ -0,0 +1,3 @@
+<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path fill-rule="evenodd" clip-rule="evenodd" d="M9.6139 1.99976H1.99976V21.9999H21.9999V3.99944H11.6135L9.6139 1.99976ZM3.99989 5.99957H19.9998V19.9998H3.99989V5.99957Z" fill="currentColor"/>
+</svg>
diff --git a/src-vue/assets/icons/internal-tools.svg b/src-vue/assets/icons/internal-tools.svg
new file mode 100644 (file)
index 0000000..c4f6405
--- /dev/null
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#000000" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" role="img" aria-label="内部工具配置"><path d="M14 4a6 6 0 0 0-7.4 7.4L3.5 14.5a3 3 0 0 0 4.2 4.2l3.1-3.1A6 6 0 0 0 18.2 8L15 11l-3-3 2-4Z"/><circle cx="5.8" cy="16.5" r=".5"/></svg>
diff --git a/src-vue/assets/icons/iot_suite.svg b/src-vue/assets/icons/iot_suite.svg
new file mode 100644 (file)
index 0000000..1e3f5ec
--- /dev/null
@@ -0,0 +1,10 @@
+<svg width="123" height="40" viewBox="0 0 123 40" fill="none" xmlns="http://www.w3.org/2000/svg">
+<g clip-path="url(#clip0_48899_475337)">
+<path d="M44.9346 7.54688C47.4309 7.54689 50.0724 8.61211 51.9639 10.708L49.3818 14.3203C47.9591 13.1276 46.6216 12.4796 44.9434 12.4795C43.3501 12.4795 42.3613 13.1874 42.3613 14.4824C42.3615 15.7772 43.7248 16.3224 45.6416 17.1572L48.3428 18.3506C51.0093 19.5434 52.6113 21.5454 52.6113 24.9277C52.6113 28.9236 49.5945 32.4424 44.3633 32.4424C41.5518 32.4423 38.5271 31.2839 36.2949 28.9922H36.2871L39.2178 25.0215C40.7599 26.4698 42.7621 27.4756 44.4746 27.4756C46.3915 27.4755 47.2861 26.6654 47.2861 25.3789C47.286 23.9905 46.0933 23.5388 44.2363 22.6699L41.4756 21.3838C39.2093 20.3869 37.0957 18.2903 37.0957 14.8057C37.0958 10.7758 40.3509 7.54688 44.9346 7.54688ZM99.1133 13.1191C103.339 13.1192 107.216 16.6805 107.216 22.7979C107.216 28.9151 103.314 32.4423 99.1133 32.4424C94.913 32.4424 90.9854 28.881 90.9854 22.7979C90.9854 16.6805 94.8874 13.1191 99.1133 13.1191ZM6.6709 18.9297L7.54004 26.5381H7.65918C8.06813 23.9906 8.50299 21.409 8.9375 18.9297L11.1445 7.99805H15.498L17.7646 18.9297C18.1992 21.3834 18.5733 23.9651 19.0078 26.5381H19.1533C19.4174 23.9566 19.7063 21.409 19.9619 18.9297L21.3594 7.99805H26.293L22.5439 31.999H16.0088L14.0664 21.5449C13.7171 19.7048 13.4271 17.7709 13.2227 15.9648H13.0781C12.814 17.7709 12.5581 19.7047 12.2344 21.5449L10.3516 31.999H3.94434L0 7.99805H5.30762L6.6709 18.9297ZM33.5518 31.999H28.3545V7.99805H33.5518V31.999ZM69.0293 12.7695H60.5264V17.2168H67.751V22.0566H60.5264V27.1514H69.3525V31.9912H55.3291V7.99805H69.0293V12.7695ZM88.207 31.9912H82.9932V7.90527H88.207V31.9912ZM122.458 12.7012H116.57V31.9912H111.356V12.7012H105.503V7.91309H122.458V12.7012ZM99.1133 17.7793C97.1963 17.7793 96.2842 19.7221 96.2842 22.7979C96.2842 25.8735 97.1622 27.7822 99.1133 27.7822C101.064 27.7822 101.908 25.8393 101.908 22.7979C101.908 19.7222 101.03 17.7794 99.1133 17.7793ZM79.9092 24.6719H71.6953V20.6416H79.9092V24.6719Z" fill="#004280"/>
+</g>
+<defs>
+<clipPath id="clip0_48899_475337">
+<rect width="123" height="40" fill="white"/>
+</clipPath>
+</defs>
+</svg>
diff --git a/src-vue/assets/icons/knowledge-templates.svg b/src-vue/assets/icons/knowledge-templates.svg
new file mode 100644 (file)
index 0000000..57b0a69
--- /dev/null
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#000000" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" role="img" aria-label="知识模板"><path d="M12 5v15M12 5c-3-2-6-2-9-1v15c3-1 6-1 9 1 3-2 6-2 9-1V4c-3-1-6-1-9 1ZM6 8h3m-3 4h3m6-4h3m-3 4h3"/></svg>
diff --git a/src-vue/assets/icons/manage.svg b/src-vue/assets/icons/manage.svg
new file mode 100644 (file)
index 0000000..b07a3df
--- /dev/null
@@ -0,0 +1,11 @@
+<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M2 2H8V8H2V2Z" fill="currentColor"/>
+<path d="M2 9H8V15H2V9Z" fill="currentColor"/>
+<path d="M15 2H9V8H15V2Z" fill="currentColor"/>
+<path d="M9 9H15V15H9V9Z" fill="currentColor"/>
+<path d="M22 2H16V8H22V2Z" fill="currentColor"/>
+<path d="M16 9H22V15H16V9Z" fill="currentColor"/>
+<path d="M8 16H2V22H8V16Z" fill="currentColor"/>
+<path d="M9 16H15V22H9V16Z" fill="currentColor"/>
+<path d="M22 16H16V22H22V16Z" fill="currentColor"/>
+</svg>
diff --git a/src-vue/assets/icons/menu.svg b/src-vue/assets/icons/menu.svg
new file mode 100644 (file)
index 0000000..59a860c
--- /dev/null
@@ -0,0 +1,3 @@
+<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path fill-rule="evenodd" clip-rule="evenodd" d="M4 5H20.0002V7H4V5ZM4 17H20.0002V19H4V17ZM20.0002 11.0001H4V13.0001H20.0002V11.0001Z" fill="currentColor"/>
+</svg>
diff --git a/src-vue/assets/icons/monitoring-dashboards.svg b/src-vue/assets/icons/monitoring-dashboards.svg
new file mode 100644 (file)
index 0000000..90105a3
--- /dev/null
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#000000" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" role="img" aria-label="监控仪表板"><rect x="3" y="4" width="18" height="13" rx="2"/><path d="M8 21h8m-4-4v4M6 13l3-3 3 2 5-5m-3 0h3v3"/></svg>
diff --git a/src-vue/assets/icons/notifications.svg b/src-vue/assets/icons/notifications.svg
new file mode 100644 (file)
index 0000000..5110d19
--- /dev/null
@@ -0,0 +1,4 @@
+<svg width="20" height="20" viewBox="6 14 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M17.001 15.084C19.875 15.5689 21.9999 18.0774 22 21V23.7217C23.2804 25.1778 24 27.0598 24 29.001L23.9971 31.001H19C18.9994 32.6537 17.6536 33.9997 16.001 34C14.3478 34 13.0006 32.6541 13 31.001H8.00488L8 29.001C8 27.0601 8.71905 25.1775 10 23.7217V21C10.0001 18.082 12.1299 15.5683 15 15.084V14H17.001V15.084ZM15 31.001C15.0006 31.5506 15.4513 32 16.001 32C16.5501 31.9997 16.9994 31.5502 17 31.001H15ZM16.001 17C13.7953 17 12 18.7944 12 21V24.5127C10.7229 25.8185 10 27.1169 10 29C10 29 21.952 29.0003 22 29C22 27.1173 21.2767 25.8183 20 24.5127V21C20 18.7973 18.2036 17.0002 16.001 17Z" fill="currentColor"/>
+<path d="M25 17.5C25 19.433 23.433 21 21.5 21C19.567 21 18 19.433 18 17.5C18 15.567 19.567 14 21.5 14C23.433 14 25 15.567 25 17.5Z" fill="#F55D3E"/>
+</svg>
diff --git a/src-vue/assets/icons/operations-templates.svg b/src-vue/assets/icons/operations-templates.svg
new file mode 100644 (file)
index 0000000..bf9e766
--- /dev/null
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#000000" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" role="img" aria-label="运维模板"><rect x="3" y="3" width="6" height="6" rx="1.5"/><rect x="15" y="15" width="6" height="6" rx="1.5"/><path d="M9 6h7a2 2 0 0 1 2 2v3m-2-2 2 2 2-2M15 18H8a2 2 0 0 1-2-2v-3m-2 2 2-2 2 2"/></svg>
diff --git a/src-vue/assets/icons/search.svg b/src-vue/assets/icons/search.svg
new file mode 100644 (file)
index 0000000..3debfbd
--- /dev/null
@@ -0,0 +1,3 @@
+<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path fill-rule="evenodd" clip-rule="evenodd" d="M14.473 15.887L18.293 19.707L19.708 18.293L15.888 14.473C16.6122 13.4595 17.001 12.2447 17 10.999C17 7.69402 14.305 4.99902 11 4.99902C7.696 4.99902 5 7.69602 5 10.999C5 14.302 7.698 16.999 11 16.999C12.2454 16.9999 13.4598 16.6111 14.473 15.887ZM15 11C15 13.2 13.202 15 11 15C8.795 15 7 13.203 7 11C7 8.79602 8.795 7.00002 11 7.00002C13.201 7.00002 15 8.79702 15 11Z" fill="currentColor"/>
+</svg>
diff --git a/src-vue/assets/icons/site-management.svg b/src-vue/assets/icons/site-management.svg
new file mode 100644 (file)
index 0000000..9eadf47
--- /dev/null
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#000000" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" role="img" aria-label="站点管理"><path d="M3 21h18M5 21V9l7-5 7 5v12M9 21v-5h6v5M9 10h.01M15 10h.01M9 13h.01M15 13h.01"/></svg>
diff --git a/src-vue/assets/icons/support.svg b/src-vue/assets/icons/support.svg
new file mode 100644 (file)
index 0000000..b660a1f
--- /dev/null
@@ -0,0 +1,3 @@
+<svg width="20" height="20" viewBox="6 14 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path fill-rule="evenodd" clip-rule="evenodd" d="M6 24.0003C6 29.5092 10.4926 34.0001 16.0012 34.0001C21.5098 34.0001 26.0001 29.5086 26.0001 24.0003C26.0001 18.4921 21.51 14 16.0012 14C10.4926 14 6 18.4915 6 24.0003ZM24 24.0003C24 28.4051 20.4062 32 16.0012 32C11.5964 32 8.00012 28.4057 8.00012 24.0003C8.00012 19.595 11.5962 16.0001 16.0012 16.0001C20.4065 16.0001 24 19.5956 24 24.0003ZM15.1417 26.4355H16.8918C16.8825 25.906 16.9267 25.5397 17.0248 25.3342C17.1228 25.129 17.3748 24.856 17.7807 24.5198C18.5671 23.8667 19.0782 23.3508 19.3186 22.973C19.5586 22.5948 19.6777 22.1912 19.6777 21.7688C19.6777 21.0012 19.3511 20.3316 18.6978 19.7553C18.0444 19.1788 17.1648 18.8896 16.0587 18.8896C15.0088 18.8896 14.1595 19.1742 13.5132 19.746C12.8666 20.3175 12.5191 21.0105 12.4678 21.8295L14.2318 22.0537C14.3554 21.4819 14.5818 21.0573 14.9107 20.7772C15.242 20.4994 15.6505 20.3597 16.1403 20.3597C16.6492 20.3597 17.0528 20.4926 17.3513 20.7585C17.6523 21.0222 17.8017 21.3419 17.8017 21.713C17.8017 21.9811 17.7178 22.2286 17.5475 22.4525C17.4378 22.5948 17.1019 22.8936 16.5395 23.3485C15.9771 23.8061 15.6037 24.2165 15.4169 24.5805C15.2282 24.947 15.1346 25.4113 15.1346 25.976C15.1346 26.0318 15.1372 26.1835 15.1417 26.4355ZM15.1418 29.0117V27.0938H16.892V29.0117H15.1418Z" fill="currentColor"/>
+</svg>
diff --git a/src-vue/assets/icons/system-settings.svg b/src-vue/assets/icons/system-settings.svg
new file mode 100644 (file)
index 0000000..b56f853
--- /dev/null
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#000000" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" role="img" aria-label="系统设定"><path d="m9 3-.6 2.2-1.8 1L4.4 6 2.9 8.6 4.5 10v2L3 13.6l1.5 2.6 2.2-.3 1.7 1L9 19h3l.6-2.2 1.8-1 2.2.3 1.5-2.6-1.6-1.5v-2l1.5-1.5L16.5 6l-2.2.3-1.7-1L12 3H9Z" transform="translate(1.5 1)"/><circle cx="12" cy="12" r="3"/></svg>
diff --git a/src-vue/assets/solutions/datacenter-600x300.webp b/src-vue/assets/solutions/datacenter-600x300.webp
new file mode 100644 (file)
index 0000000..da7fdc3
Binary files /dev/null and b/src-vue/assets/solutions/datacenter-600x300.webp differ
diff --git a/src-vue/assets/solutions/energy-600x300.webp b/src-vue/assets/solutions/energy-600x300.webp
new file mode 100644 (file)
index 0000000..b16c69f
Binary files /dev/null and b/src-vue/assets/solutions/energy-600x300.webp differ
diff --git a/src-vue/assets/solutions/wastewater-600x300.webp b/src-vue/assets/solutions/wastewater-600x300.webp
new file mode 100644 (file)
index 0000000..d3423ba
Binary files /dev/null and b/src-vue/assets/solutions/wastewater-600x300.webp differ
index 3f36d12da00b85ba05db501cb3f447bac7bbc381..936148bbe5a8bf84c7100cf7aabe53d66028a99f 100644 (file)
@@ -8,8 +8,8 @@ const props = defineProps({
   onClick: { type: Function, default: null },
 });
 
-// All icons live in src/assets/icons/*.svg and use fill="currentColor".
-const modules = import.meta.glob("../../src/assets/icons/*.svg", {
+// All icons live in src-vue/assets/icons/*.svg and use fill="currentColor".
+const modules = import.meta.glob("../assets/icons/*.svg", {
   query: "?raw",
   import: "default",
   eager: true,
index ec1455f3f289451f43758d8eba9692c05c1f0917..98ec8447ec8a4654502e72664c8c61f34261c3ec 100644 (file)
@@ -2,9 +2,9 @@
 // Pure helpers live here; components needing them import from this module.
 
 import { ref, watch } from "vue";
-import wastewaterPhoto from "../../../src/assets/solutions/wastewater-600x300.webp";
-import datacenterPhoto from "../../../src/assets/solutions/datacenter-600x300.webp";
-import energyPhoto from "../../../src/assets/solutions/energy-600x300.webp";
+import wastewaterPhoto from "../../assets/solutions/wastewater-600x300.webp";
+import datacenterPhoto from "../../assets/solutions/datacenter-600x300.webp";
+import energyPhoto from "../../assets/solutions/energy-600x300.webp";
 
 // ---- app/page.tsx:2606 ----
 export function friendlyDomainName(name) {
index 7ebf7728bc5b358e826e6c3fac45824e12ddb43d..c4e22b5e5dc5c42cdddb7849895d2e98848848db 100644 (file)
@@ -17,7 +17,7 @@ export default defineConfig({
   },
   resolve: {
     alias: {
-      "@/assets": fileURLToPath(new URL("./src/assets", import.meta.url)),
+      "@/assets": fileURLToPath(new URL("./src-vue/assets", import.meta.url)),
       "@": fileURLToPath(new URL("./src-vue", import.meta.url)),
     },
   },