Browse Source

修改菜单icon、能效日历展示

bl_ai
selia-zx 1 week ago
parent
commit
cc92182808
  1. 1
      src/assets/icons/svg/base.svg
  2. 1
      src/assets/icons/svg/bg-calendar.svg
  3. 1
      src/assets/icons/svg/change.svg
  4. 1
      src/assets/icons/svg/co2.svg
  5. 1
      src/assets/icons/svg/collect.svg
  6. 1
      src/assets/icons/svg/ddevice.svg
  7. 1
      src/assets/icons/svg/deng.svg
  8. 1
      src/assets/icons/svg/energy.svg
  9. 1
      src/assets/icons/svg/sys.svg
  10. 1
      src/assets/icons/svg/waterPump.svg
  11. 361
      src/views/newCenterairC/energyManage/energyEfficiencyCalendarViz/index.vue
  12. 2
      src/views/newLifeWater/energyManage/energyWater/index.vue
  13. 8
      src/views/newLifeWater/energyManage/warning/index.vue
  14. 8
      src/views/newLighting/energyManage/warning/index.vue

1
src/assets/icons/svg/base.svg

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1772762000168" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="16378" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M272.718 223.441H751.52q47.88 0 47.88 47.88 0 47.881-47.88 47.881H272.718q-47.88 0-47.88-47.88t47.88-47.88zM272.718 446.883H751.52q47.88 0 47.88 47.88t-47.88 47.88H272.718q-47.88 0-47.88-47.88t47.88-47.88z" p-id="16379"></path><path d="M176.957 766.085h718.205a127.68 127.68 0 0 0 84.908-34.474 127.68 127.68 0 0 0 42.773-93.207V127.681A127.68 127.68 0 0 0 895.162 0H129.077A127.68 127.68 0 0 0 1.397 127.68v702.245a17.875 17.875 0 0 0 0 5.746 85.546 85.546 0 0 0 0 12.768 175.561 175.561 0 0 0 175.56 173.007h798.005a47.88 47.88 0 0 0 47.88-47.88 48.519 48.519 0 0 0-22.982-40.858 47.242 47.242 0 0 0-24.898-7.022H176.957a79.8 79.8 0 0 1 0-159.601zM94.603 609.037V156.41a63.84 63.84 0 0 1 63.84-63.84h707.352a63.84 63.84 0 0 1 63.84 63.84v452.628a63.84 63.84 0 0 1-63.84 63.84H158.444a63.84 63.84 0 0 1-63.84-63.84z" p-id="16380"></path></svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

1
src/assets/icons/svg/bg-calendar.svg

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1772761945332" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="15333" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M0 941.611997A82.388003 82.388003 0 0 0 82.388003 1024h858.980243A82.388003 82.388003 0 0 0 1023.756249 941.611997V363.433468H0z m694.69174-429.490121h73.125446a36.562723 36.562723 0 0 1 0 73.125446h-73.125446a36.562723 36.562723 0 0 1 0-73.125446z m-219.376339 0h73.125446a36.562723 36.562723 0 0 1 0 73.125446h-73.125446a36.562723 36.562723 0 0 1 0-73.125446z m0 221.813854h73.125446a36.562723 36.562723 0 0 1 0 73.125446h-73.125446a36.562723 36.562723 0 0 1 0-73.125446z m-219.376339-221.813854h73.125446a36.562723 36.562723 0 0 1 0 73.125446h-73.125446a36.562723 36.562723 0 0 1 0-73.125446z m0 221.813854h73.125446a36.562723 36.562723 0 0 1 0 73.125446h-73.125446a36.562723 36.562723 0 0 1 0-73.125446zM1023.756249 155.757201a82.388003 82.388003 0 0 0-82.388003-82.388003H804.37991V41.194001a40.95025 40.95025 0 0 0-82.388003 0v32.175197H301.764342V41.194001a40.95025 40.95025 0 0 0-82.388003 0v32.175197H82.388003A82.388003 82.388003 0 0 0 0 155.757201v128.213282h1023.756249z" fill="" p-id="15334"></path></svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

1
src/assets/icons/svg/change.svg

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1772761902255" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="12543" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M480 384c52.9 0 96 43.1 96 96s-43.1 96-96 96-96-43.1-96-96 43.1-96 96-96z m0-64c-88.4 0-160 71.6-160 160s71.6 160 160 160 160-71.6 160-160-71.6-160-160-160zM259.1 85c3-0.7 5.6 2.1 4.7 5.1l-13.3 42.8L197 305.5c-0.9 2.9-4.7 3.8-6.8 1.5l-41.1-44.4c-7.2-7.8-20-6.5-25.5 2.6-10.2 16.9-19.2 34.6-27 52.9C75 369.3 64 423.8 64 480s11 110.7 32.7 161.9c15.8 37.5 36.9 72.1 62.7 103.2 10.2 12.3 9.6 30.4-1.3 42.1-13.2 14.2-35.8 13.5-48.1-1.4C41.3 702.8 0 596.2 0 480c0-100.3 30.8-193.4 83.4-270.4 4.2-6.1 3.5-14.4-1.5-19.8l-44.7-48.4c-2.1-2.3-0.9-5.9 2.1-6.6l145-32.8 74.8-17z m742.3 186.8c3-0.6 5.5 2.4 4.5 5.3L956 417.4l-25.6 72.1c-1 2.9-4.8 3.6-6.8 1.3l-28.1-33-118.2-138.7c-2-2.3-0.7-6 2.3-6.5l53.7-9.9c10.7-2 16.4-13.9 11.1-23.5-18.8-34.2-42.4-65.4-70.3-93.4-38.2-38.2-82.7-68.2-132.3-89.2C590.7 75 536.2 64 480 64c-41.2 0-81.5 5.9-120.2 17.6-15.3 4.6-31.7-2.9-38.3-17.5-7.9-17.6 1.4-38.2 19.9-43.7C385.2 7.1 431.8 0 480 0c192 0 357.7 112.8 434.5 275.7 3.1 6.5 10.2 10.2 17.3 8.9l69.6-12.8zM917.7 544c20.5 0 35.6 18.9 31.2 38.9C901.8 798.6 709.8 960 480 960c-29.3 0-58-2.6-85.9-7.7-7.2-1.3-14.3 2.5-17.4 9.1l-26.9 59.1c-1.3 2.8-5.1 3.2-6.9 0.7L262 907.8l-50-70.2c-1.8-2.5-0.2-6 2.9-6.3l36.7-3.5 187.7-18.1c3.1-0.3 5.3 2.8 4 5.6l-25.2 55.3c-4.5 9.9 1.9 21.3 12.7 22.5 16.2 1.9 32.6 2.8 49.1 2.8 56.2 0 110.7-11 161.9-32.7 49.5-20.9 94-51 132.3-89.2 38.2-38.2 68.2-82.7 89.2-132.3 10-23.6 17.7-47.9 23.1-72.7 3.3-14.5 16.3-25 31.3-25z" p-id="12544"></path></svg>

After

Width:  |  Height:  |  Size: 1.7 KiB

1
src/assets/icons/svg/co2.svg

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 15 KiB

1
src/assets/icons/svg/collect.svg

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1772761836584" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="8587" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M938.592 32C985.76 32 1024 69.376 1024 115.456v584.32c0 22.144-8.992 43.392-25.024 59.04-16 15.648-37.76 24.448-60.384 24.448H597.376v125.28h85.248c23.584 0 42.72 18.688 42.72 41.728 0 23.04-19.136 41.728-42.72 41.728H341.376c-23.584 0-42.72-18.688-42.72-41.728 0-23.04 19.136-41.728 42.72-41.728h85.248v-125.28H85.376a86.4 86.4 0 0 1-60.384-24.448A82.432 82.432 0 0 1 0 699.808V115.456C0 69.376 38.24 32 85.408 32h853.184zM608 544c-17.696 0-32 14.304-32 32v96a31.968 31.968 0 1 0 64 0v-96c0-17.696-14.304-32-32-32z m128-64c-17.696 0-32 14.304-32 32v160a31.968 31.968 0 1 0 64 0v-160c0-17.696-14.304-32-32-32z m128-64c-17.696 0-32 14.304-32 32v224a31.968 31.968 0 1 0 64 0v-224c0-17.696-14.304-32-32-32zM384.32 224H268.896L192 416h115.008l-51.296 128L448 352h-115.008l51.296-128z" fill="" p-id="8588"></path></svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

1
src/assets/icons/svg/ddevice.svg

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1772761795781" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="7589" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M928 678c0 9.389-7.611 17-17 17H109c-9.389 0-17-7.611-17-17v-66c0-9.389 7.611-17 17-17h802c9.389 0 17 7.611 17 17v66zM928 828c0 9.389-7.611 17-17 17H109c-9.389 0-17-7.611-17-17v-66c0-9.389 7.611-17 17-17h802c9.389 0 17 7.611 17 17v66zM911 173H109c-9.389 0-17 7.611-17 17v338c0 9.389 7.611 17 17 17h802c9.389 0 17-7.611 17-17V190c0-9.389-7.611-17-17-17zM432 338c0 9.389-7.611 17-17 17H189c-9.389 0-17-7.611-17-17v-66c0-9.389 7.611-17 17-17h226c9.389 0 17 7.611 17 17v66z" p-id="7590"></path></svg>

After

Width:  |  Height:  |  Size: 829 B

1
src/assets/icons/svg/deng.svg

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1772762690987" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="18333" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M362.666667 853.333333h298.666666v85.333334H362.666667v-85.333334zM512 85.333333C324.266667 85.333333 170.666667 238.933333 170.666667 426.666667c0 117.333333 59.733333 221.866667 149.333333 281.6V768c0 23.466667 19.2 42.666667 42.666667 42.666667h298.666666c23.466667 0 42.666667-19.2 42.666667-42.666667v-59.733333c89.6-61.866667 149.333333-164.266667 149.333333-281.6 0-187.733333-153.6-341.333333-341.333333-341.333334z m59.733333 448l-17.066666 17.066667V682.666667h-85.333334v-132.266667l-17.066666-17.066667-106.666667-106.666666 59.733333-59.733334 106.666667 106.666667 85.333333-85.333333 59.733334 59.733333-85.333334 85.333333z" fill="" p-id="18334"></path></svg>

After

Width:  |  Height:  |  Size: 1009 B

1
src/assets/icons/svg/energy.svg

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1772761782154" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6524" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M511.8 63.4c-247.7 0-448.5 200.8-448.5 448.5s200.8 448.5 448.5 448.5 448.5-200.8 448.5-448.5S759.5 63.4 511.8 63.4zM749.6 466c-6.6 0-13-0.7-19.1-1.9l-96 149.7c4.8 10.1 7.5 21.3 7.5 33.3 0 42.5-34.5 77-77 77s-77-34.5-77-77c0-9.6 1.8-18.9 5-27.4l-80.6-89.8c-10.6 6.2-23 9.8-36.1 9.8-6.6 0-13-0.9-19.1-2.6l-68.2 89c2.9 6.9 4.5 14.5 4.5 22.5 0 32.4-26.3 58.7-58.7 58.7-32.4 0-58.7-26.3-58.7-58.7 0-32.4 26.3-58.7 58.7-58.7 5.9 0 11.6 0.9 17 2.5l64.8-84.7c-7.7-11.4-12.1-25.2-12.1-40 0-39.7 32.2-71.8 71.8-71.8s71.8 32.2 71.8 71.8c0 8-1.3 15.6-3.7 22.8l81.1 90.3C537 574 550.6 570 565 570c11.9 0 23.2 2.7 33.3 7.5l87.5-136.4c-18.8-17.3-30.6-42.1-30.6-69.7 0-52.2 42.3-94.5 94.5-94.5s94.5 42.3 94.5 94.5-42.4 94.6-94.6 94.6z" fill="" p-id="6525"></path></svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

1
src/assets/icons/svg/sys.svg

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1772761773062" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5506" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M514.4 63.4c-1.2-0.1-2.4-0.2-3.6-0.2-1.3 0-2.5 0.1-3.7 0.2C262.2 65.9 64.4 264.8 63.5 510v1.6c0 247.5 200.7 448.2 448.2 448.2s448.2-200.7 448.2-448.2c0-246.6-199.2-446.7-445.5-448.2z m28 320.3c48.3-2.1 95.1-9.9 139.8-22.6 10.6 37.7 17.2 77.1 19.5 117.7H542.4v-95.1z m0-64.3V128.7c2 0.2 4.1 0.3 6.1 0.5 47.6 49 86.1 106.9 112.6 171-38 10.6-77.8 17.2-118.7 19.2z m-63.2-190.5V319c-39.7-2.6-78.3-9.4-115.2-20 27.3-63.8 66.3-121.4 114.5-170 0.2-0.1 0.5-0.1 0.7-0.1z m0 254.4v95.5H321.4c2.5-41.2 9.6-81.2 20.8-119.4 43.9 13 89.7 21.1 137 23.9z m-222.1 95.5H129c5.8-68.3 29.5-131.6 66.3-185.1 27.4 16.9 56.2 31.7 86.3 44.2-13.4 45.1-21.8 92.2-24.5 140.9z m-0.2 63.2c2.4 50 10.8 98.3 24.5 144.4-29.8 12.4-58.3 27-85.5 43.8-37.7-54.2-61.7-118.6-67.1-188.2h128.1z m64.3 0h158v99c-47.4 2.7-93.4 10.9-137.2 23.9-11.5-39.3-18.6-80.5-20.8-122.9z m158 163.4v189c-1-0.1-2.1-0.2-3.1-0.3-47.3-48.3-85.7-105.4-112.6-168.5 37.1-10.8 75.8-17.6 115.7-20.2z m63.2 189.1V704.9c40 2 78.9 8.3 116.2 18.4-27.6 64.4-67.2 122.4-116.2 171.2 0.1 0 0 0 0 0z m0-253.9V542h159.1c-2.5 41.7-9.7 82.1-21 120.7-44.2-12.4-90.4-20-138.1-22.1zM765.7 542h128.9c-5.4 68.4-28.6 131.7-65.1 185.3-28-16.9-57.6-31.7-88.3-44 13.5-45.1 21.9-92.4 24.5-141.3z m0.2-63.2c-2.3-47.8-10.1-94.3-22.9-138.6 30.3-12.2 59.4-26.8 87-43.6 35.7 52.8 58.7 115 64.4 182.1H765.9z m23.4-232.7c-21.5 12.6-44 23.7-67.3 33.3-18.1-44.6-41.4-86.5-69.1-125.1 52 20.6 98.4 52.2 136.4 91.8z m-415.7-93c-28 38.3-51.7 80-70.3 124.3-23.1-9.8-45.4-21.1-66.7-33.8 38.2-39.3 84.9-70.4 137-90.5zM237.2 780.3c21-12.5 43-23.6 65.7-33.2 18.2 43.5 41.2 84.5 68.5 122.3-50.9-20.1-96.5-50.7-134.2-89.1z m409.9 90.8c29-39.1 53.4-81.8 72.4-127.3 23.9 9.7 47 21 69.1 33.9-39.2 40.9-87.5 73.1-141.5 93.4z" fill="" p-id="5507"></path></svg>

After

Width:  |  Height:  |  Size: 2.0 KiB

1
src/assets/icons/svg/waterPump.svg

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1772762705576" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="19399" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M512.001204 0C229.230529 0 0 229.230529 0 512.001204c0 282.771879 229.230529 512 512.001204 512s512-229.228121 512-512C1024.002408 229.230529 794.771879 0 512.001204 0z m237.209231 446.997545c-6.559008 0.443127-13.109587 1.034365-21.077452 1.670156 0.449148 5.038166 0.390145 8.990188 1.201743 12.756771 26.124046 121.339843-44.146568 234.231366-164.596544 263.191188-15.224075 3.661822-31.352468 4.806969-47.07747 4.903301-78.408263 0.479252-156.818935 0.317896-235.230811 0.180622-43.727523-0.075861-77.845925-32.180924-78.66234-73.57119-0.873009-44.25735 31.17907-77.686977 76.120378-79.231903 8.50612-0.291404 17.033914-0.042145 28.422769-0.042145-11.620053-45.103867-11.819942-85.77044-0.229992-126.671822 24.958429-88.058326 109.503043-154.520212 201.029323-155.502799 78.914007-0.848926 157.844872-0.470823 236.766103-0.155335 40.000677 0.160152 73.384547 33.519939 74.35148 73.126859 1.037978 42.575151-29.37164 76.532197-71.017187 79.346297z" fill="" p-id="19400"></path><path d="M619.382534 417.442873c-9.322534-8.887835-16.803921-11.215458-26.496129 0.243239-12.172758 14.393212-26.009652 27.382384-39.033744 40.88332-6.639686-3.349947-11.382835-7.155063-16.646177-8.125608-13.862181-2.549187-15.851438-11.222683-15.244546-23.303926 0.797148-15.853846 0.62375-31.80282-0.187848-47.656667-0.187847-3.696742-4.586609-10.25575-7.13098-10.294283-38.861551-0.6093-73.978194 8.897468-100.370765 40.000677-5.771494 6.802246-5.141723 12.188412 1.485922 18.306701 14.644879 13.515386 28.751503 27.612376 42.878597 41.28069-3.508895 7.064751-7.651173 12.266682-8.636168 18.009275-2.427568 14.118665-11.211846 15.944158-23.250943 15.355328-14.830318-0.727307-29.729273-0.14209-44.598124-0.09874-7.311602 0.021675-13.370888 1.306503-12.801325 10.898767 1.976011 33.403136 8.962493 64.994026 33.116549 90.143915 14.725557 15.333653 17.00381 15.212034 31.643872 0.503334 5.421086-5.443965 11.096247-10.736206 15.816518-16.75455 11.663402-14.864034 23.337642-23.68805 43.443344-11.683873 7.745096 4.628755 11.562254 7.29354 11.335873 16.248807-0.51056 19.920263-0.160152 39.863404-0.160152 63.439468 15.496214-1.625603 28.729828-1.996482 41.519111-4.572159 24.036049-4.840685 45.522912-15.014553 62.524314-33.535593 7.906453-8.614493 9.600692-15.673224-0.552705-24.176935-10.580871-8.861344-19.076153-20.388677-30.169993-28.420362-15.531134-11.244358-5.16701-21.881824-2.178308-33.499468 3.08985-12.004177 11.945174-8.902285 19.557813-8.993801 19.705924-0.237218 39.419073-0.079474 59.141855-0.079474 0-10.620608 0.740553-18.382562-0.131252-25.957873-3.40895-29.634145-12.479816-56.804598-34.874609-78.160209z m-74.716338 94.103162c-0.54548 19.766131-17.918964 36.328018-38.093303 36.313569-21.413409-0.01445-36.509845-15.096436-36.564031-36.535132-0.056595-22.076896 14.143952-36.527907 36.112475-36.75188 21.765021-0.221564 39.112014 16.417389 38.544859 36.973443z" fill="" p-id="19401"></path></svg>

After

Width:  |  Height:  |  Size: 3.2 KiB

361
src/views/newCenterairC/energyManage/energyEfficiencyCalendarViz/index.vue

@ -22,26 +22,43 @@
</div> </div>
</div> </div>
</div> </div>
<div class="indicator-selector"> <!-- <div class="indicator-selector">
<el-select v-model="selectedIndicator" @change="handleIndicatorChange" class="custom-select"> <el-select
v-model="selectedIndicator"
@change="handleIndicatorChange"
class="custom-select"
>
<el-option <el-option
v-for="indicator in indicators" v-for="indicator in indicators"
:key="indicator.value" :key="indicator.value"
:label="indicator.label" :label="indicator.label"
:value="indicator.value" :value="indicator.value"
> >
<span class="option-dot" :style="{ background: indicator.color }"></span> <span
class="option-dot"
:style="{ background: indicator.color }"
></span>
<span class="option-label">{{ indicator.label }}</span> <span class="option-label">{{ indicator.label }}</span>
</el-option> </el-option>
</el-select> </el-select>
</div> </div> -->
</div> </div>
<!-- 月份导航 --> <!-- 月份导航 -->
<div class="month-navigation"> <div class="month-navigation">
<el-button class="nav-btn" icon="el-icon-arrow-left" @click="prevMonth" size="small"></el-button> <el-button
class="nav-btn"
icon="el-icon-arrow-left"
@click="prevMonth"
size="small"
></el-button>
<div class="current-month">{{ currentYear }}{{ currentMonth }}</div> <div class="current-month">{{ currentYear }}{{ currentMonth }}</div>
<el-button class="nav-btn" icon="el-icon-arrow-right" @click="nextMonth" size="small"></el-button> <el-button
class="nav-btn"
icon="el-icon-arrow-right"
@click="nextMonth"
size="small"
></el-button>
</div> </div>
<!-- 日历视图 --> <!-- 日历视图 -->
@ -49,19 +66,66 @@
<div class="calendar-header"> <div class="calendar-header">
<div class="weekday" v-for="day in weekDays" :key="day">{{ day }}</div> <div class="weekday" v-for="day in weekDays" :key="day">{{ day }}</div>
</div> </div>
<div class="calendar-body"> <div class="calendar-container">
<div <div class="calendar-header">
v-for="(day, index) in calendarDays" <div class="weekday" v-for="day in weekDays" :key="day">
:key="index" {{ day }}
:class="['calendar-day', { 'other-month': day.isOtherMonth, 'selected': isSelected(day), 'today': isToday(day) }]" </div>
@click="handleDayClick(day)" </div>
> <div class="calendar-body">
<div class="day-number">{{ day.day }}</div> <div
<div class="day-indicator" v-if="day.hasData"> v-for="(day, index) in calendarDays"
<div class="indicator-value" :style="{ color: getIndicatorColor(day) }"> :key="index"
{{ getIndicatorValue(day) }} :class="[
'calendar-day',
{
'other-month': day.isOtherMonth,
selected: isSelected(day),
today: isToday(day),
},
]"
@click="handleDayClick(day)"
>
<div class="day-number">{{ day.day }}</div>
<div class="day-flex" v-if="day.hasData">
<!-- EER -->
<div class="day-indicator">
<div
class="indicator-value"
:style="{ color: getEerColor(day.eer) }"
>
EER:{{ formatEer(day.eer) }}
</div>
</div>
<!-- 用电量 -->
<div class="day-indicator">
<div
class="indicator-value" :style="{ color: getEerColor(day.eer) }"
>
用电量:{{ formatNumber(day.energy) }}
<span class="indicator-unit">kWh</span>
</div>
</div>
<!-- 供冷量 -->
<div class="day-indicator">
<div
class="indicator-value" :style="{ color: getEerColor(day.eer) }"
>
供冷量:{{ formatNumber(day.cooling) }}
<span class="indicator-unit">kWr</span>
</div>
</div>
<!-- 供能单价 -->
<div class="day-indicator">
<div
class="indicator-value"
>
供能单价:{{ day.price }}
<span class="indicator-unit"></span>
</div>
</div>
</div> </div>
<div class="indicator-unit">{{ getIndicatorUnit() }}</div> <div v-else class="no-data" style="margin-top: 0.1rem;">暂无数据</div>
</div> </div>
</div> </div>
</div> </div>
@ -79,10 +143,20 @@
<div class="detail-panel" v-if="selectedDateData"> <div class="detail-panel" v-if="selectedDateData">
<div class="detail-header"> <div class="detail-header">
<div class="detail-title">日期详情 - {{ selectedDateData.date }}</div> <div class="detail-title">日期详情 - {{ selectedDateData.date }}</div>
<el-button class="close-btn" icon="el-icon-close" @click="closeDetail" size="small" circle></el-button> <el-button
class="close-btn"
icon="el-icon-close"
@click="closeDetail"
size="small"
circle
></el-button>
</div> </div>
<div class="detail-content"> <div class="detail-content">
<div class="detail-row" v-for="(item, index) in detailData" :key="index"> <div
class="detail-row"
v-for="(item, index) in detailData"
:key="index"
>
<div class="detail-label"> <div class="detail-label">
<span class="label-dot" :style="{ background: item.color }"></span> <span class="label-dot" :style="{ background: item.color }"></span>
{{ item.label }} {{ item.label }}
@ -98,7 +172,9 @@
<div class="monthly-summary"> <div class="monthly-summary">
<div class="summary-header"> <div class="summary-header">
<div class="summary-title">月度汇总</div> <div class="summary-title">月度汇总</div>
<div class="summary-period">{{ currentYear }}{{ currentMonth }}</div> <div class="summary-period">
{{ currentYear }}{{ currentMonth }}
</div>
</div> </div>
<div class="summary-cards"> <div class="summary-cards">
<div class="summary-card"> <div class="summary-card">
@ -107,15 +183,21 @@
</div> </div>
<div class="summary-card"> <div class="summary-card">
<div class="summary-label">总用电量</div> <div class="summary-label">总用电量</div>
<div class="summary-value">{{ monthlySummary.totalEnergy }} <span class="unit">kWh</span></div> <div class="summary-value">
{{ monthlySummary.totalEnergy }} <span class="unit">kWh</span>
</div>
</div> </div>
<div class="summary-card"> <div class="summary-card">
<div class="summary-label">总供冷量</div> <div class="summary-label">总供冷量</div>
<div class="summary-value">{{ monthlySummary.totalCooling }} <span class="unit">RT</span></div> <div class="summary-value">
{{ monthlySummary.totalCooling }} <span class="unit">RT</span>
</div>
</div> </div>
<div class="summary-card"> <div class="summary-card">
<div class="summary-label">平均单价</div> <div class="summary-label">平均单价</div>
<div class="summary-value">¥{{ monthlySummary.avgPrice }} <span class="unit">/kWh</span></div> <div class="summary-value">
¥{{ monthlySummary.avgPrice }} <span class="unit">/kWh</span>
</div>
</div> </div>
</div> </div>
</div> </div>
@ -141,7 +223,7 @@ export default {
viewTypes: ["日视图", "月视图"], viewTypes: ["日视图", "月视图"],
activeView: 1, activeView: 1,
// //
currentDate: new Date().toISOString().split('T')[0], currentDate: new Date().toISOString().split("T")[0],
currentYear: new Date().getFullYear(), currentYear: new Date().getFullYear(),
currentMonth: new Date().getMonth() + 1, currentMonth: new Date().getMonth() + 1,
selectedDay: null, selectedDay: null,
@ -153,7 +235,7 @@ export default {
{ label: "能效值(EER)", value: "eer", color: "#91CC75", unit: "" }, { label: "能效值(EER)", value: "eer", color: "#91CC75", unit: "" },
{ label: "用电量", value: "energy", color: "#5470C6", unit: "kWh" }, { label: "用电量", value: "energy", color: "#5470C6", unit: "kWh" },
{ label: "供冷量", value: "cooling", color: "#15e1fd", unit: "RT" }, { label: "供冷量", value: "cooling", color: "#15e1fd", unit: "RT" },
{ label: "供能单价", value: "price", color: "#FAC858", unit: "元/kWh" } { label: "供能单价", value: "price", color: "#FAC858", unit: "元/kWh" },
], ],
selectedIndicator: "eer", selectedIndicator: "eer",
// //
@ -163,7 +245,7 @@ export default {
{ label: "优秀(≥6.5)", color: "#91CC75" }, { label: "优秀(≥6.5)", color: "#91CC75" },
{ label: "良好(6.5-5.5)", color: "#4facfe" }, { label: "良好(6.5-5.5)", color: "#4facfe" },
{ label: "一般(5.5-4.5)", color: "#FAC858" }, { label: "一般(5.5-4.5)", color: "#FAC858" },
{ label: "急需改善(<4.5)", color: "#EE6666" } { label: "急需改善(<4.5)", color: "#EE6666" },
], ],
// //
detailData: [ detailData: [
@ -171,19 +253,19 @@ export default {
{ label: "用电量", key: "energy", color: "#5470C6", unit: "kWh" }, { label: "用电量", key: "energy", color: "#5470C6", unit: "kWh" },
{ label: "供冷量", key: "cooling", color: "#15e1fd", unit: "RT" }, { label: "供冷量", key: "cooling", color: "#15e1fd", unit: "RT" },
{ label: "供能单价", key: "price", color: "#FAC858", unit: "元/kWh" }, { label: "供能单价", key: "price", color: "#FAC858", unit: "元/kWh" },
{ label: "节电量", key: "saving", color: "#EE6666", unit: "kWh" } { label: "节电量", key: "saving", color: "#EE6666", unit: "kWh" },
], ],
// //
monthlySummary: { monthlySummary: {
avgEer: 6.5, avgEer: 6.5,
totalEnergy: 5620000, totalEnergy: 5620000,
totalCooling: 198500, totalCooling: 198500,
avgPrice: 1.18 avgPrice: 1.18,
}, },
// //
dailyData: {}, dailyData: {},
// //
trendChart: null trendChart: null,
}; };
}, },
mounted() { mounted() {
@ -202,12 +284,28 @@ export default {
const daysInMonth = new Date(year, month, 0).getDate(); const daysInMonth = new Date(year, month, 0).getDate();
for (let day = 1; day <= daysInMonth; day++) { for (let day = 1; day <= daysInMonth; day++) {
const date = `${year}-${String(month).padStart(2, '0')}-${String(day).padStart(2, '0')}`; const date = `${year}-${String(month).padStart(2, "0")}-${String(
const eer = (4 + Math.random() * 4).toFixed(1); day
const energy = Math.floor(150000 + Math.random() * 100000); ).padStart(2, "0")}`;
const cooling = Math.floor(energy / 25 + Math.random() * 10);
const price = (1.1 + Math.random() * 0.2).toFixed(2); //
const saving = Math.floor(energy * 0.25 + Math.random() * 10000); const baseEer = 4 + (day % 10) / 10; // 4.0-5.0
const eer = (baseEer + Math.random() * 3).toFixed(1);
//
const dayOfWeek = new Date(year, month - 1, day).getDay();
const isWeekend = dayOfWeek === 0 || dayOfWeek === 6;
const baseEnergy = isWeekend ? 100000 : 180000;
const energy = Math.floor(baseEnergy + Math.random() * 80000);
//
const cooling = Math.floor(energy / 25 + Math.random() * 5000);
//
const price = (1.05 + Math.random() * 0.25).toFixed(2);
//
const saving = Math.floor(energy * 0.15 + Math.random() * 5000);
this.dailyData[date] = { this.dailyData[date] = {
date, date,
@ -216,10 +314,11 @@ export default {
cooling, cooling,
price: parseFloat(price), price: parseFloat(price),
saving, saving,
hasData: true hasData: true,
}; };
} }
}, },
// //
generateCalendar() { generateCalendar() {
const year = this.currentYear; const year = this.currentYear;
@ -235,17 +334,20 @@ export default {
days.push({ days.push({
day: prevMonthDays - i, day: prevMonthDays - i,
isOtherMonth: true, isOtherMonth: true,
hasData: false hasData: false,
}); });
} }
// //
for (let i = 1; i <= daysInMonth; i++) { for (let i = 1; i <= daysInMonth; i++) {
const date = `${year}-${String(month + 1).padStart(2, '0')}-${String(i).padStart(2, '0')}`; const date = `${year}-${String(month + 1).padStart(2, "0")}-${String(
i
).padStart(2, "0")}`;
days.push({ days.push({
day: i, day: i,
isOtherMonth: false, isOtherMonth: false,
...this.dailyData[date] date,
...this.dailyData[date],
}); });
} }
@ -255,7 +357,7 @@ export default {
days.push({ days.push({
day: i, day: i,
isOtherMonth: true, isOtherMonth: true,
hasData: false hasData: false,
}); });
} }
@ -316,32 +418,44 @@ export default {
isToday(day) { isToday(day) {
if (day.isOtherMonth) return false; if (day.isOtherMonth) return false;
const today = new Date(); const today = new Date();
return day.day === today.getDate() && return (
this.currentMonth === today.getMonth() + 1 && day.day === today.getDate() &&
this.currentYear === today.getFullYear(); this.currentMonth === today.getMonth() + 1 &&
this.currentYear === today.getFullYear()
);
}, },
// //
getIndicatorColor(day) { formatNumber(num) {
if (this.selectedIndicator !== 'eer') { if (num === undefined || num === null) return "--";
const indicator = this.indicators.find(i => i.value === this.selectedIndicator); return num.toLocaleString("zh-CN");
return indicator ? indicator.color : '#ffffff'; },
}
// EER
formatEer(eer) {
if (eer === undefined || eer === null) return "--";
return parseFloat(eer).toFixed(1);
},
// ========== ==========
const eer = day.eer; // EER
if (eer >= 6.5) return '#91CC75'; getEerColor(eer) {
if (eer >= 5.5) return '#4facfe'; if (eer >= 6.5) return "#91CC75"; // -绿
if (eer >= 4.5) return '#FAC858'; if (eer >= 5.5) return "#4facfe"; // -
return '#EE6666'; if (eer >= 4.5) return "#FAC858"; // -
return "#EE6666"; // -
}, },
// //
getIndicatorValue(day) { getIndicatorValue(day) {
const key = this.selectedIndicator; const key = this.selectedIndicator;
return day[key] !== undefined ? day[key] : '-'; return day[key] !== undefined ? day[key] : "-";
}, },
// //
getIndicatorUnit() { getIndicatorUnit() {
const indicator = this.indicators.find(i => i.value === this.selectedIndicator); const indicator = this.indicators.find(
return indicator ? indicator.unit : ''; (i) => i.value === this.selectedIndicator
);
return indicator ? indicator.unit : "";
}, },
// //
closeDetail() { closeDetail() {
@ -355,13 +469,20 @@ export default {
}, },
// //
updateTrendChart() { updateTrendChart() {
const daysInMonth = new Date(this.currentYear, this.currentMonth, 0).getDate(); const daysInMonth = new Date(
this.currentYear,
this.currentMonth,
0
).getDate();
const xData = []; const xData = [];
const eerData = []; const eerData = [];
const energyData = []; const energyData = [];
for (let day = 1; day <= daysInMonth; day++) { for (let day = 1; day <= daysInMonth; day++) {
const date = `${this.currentYear}-${String(this.currentMonth).padStart(2, '0')}-${String(day).padStart(2, '0')}`; const date = `${this.currentYear}-${String(this.currentMonth).padStart(
2,
"0"
)}-${String(day).padStart(2, "0")}`;
const data = this.dailyData[date]; const data = this.dailyData[date];
xData.push(`${day}`); xData.push(`${day}`);
eerData.push(data ? data.eer : null); eerData.push(data ? data.eer : null);
@ -372,76 +493,76 @@ export default {
tooltip: { tooltip: {
trigger: "axis", trigger: "axis",
axisPointer: { axisPointer: {
type: "cross" type: "cross",
} },
}, },
legend: { legend: {
data: ["能效值(EER)", "用电量"], data: ["能效值(EER)", "用电量"],
textStyle: { textStyle: {
color: "#ffffff" color: "#ffffff",
} },
}, },
grid: { grid: {
left: "3%", left: "3%",
right: "4%", right: "4%",
bottom: "3%", bottom: "3%",
containLabel: true containLabel: true,
}, },
xAxis: { xAxis: {
type: "category", type: "category",
data: xData, data: xData,
axisLabel: { axisLabel: {
color: "rgba(255, 255, 255, 0.8)" color: "rgba(255, 255, 255, 0.8)",
}, },
axisLine: { axisLine: {
lineStyle: { lineStyle: {
color: "#365576" color: "#365576",
} },
}, },
axisTick: { axisTick: {
show: false show: false,
} },
}, },
yAxis: [ yAxis: [
{ {
type: "value", type: "value",
name: "EER", name: "EER",
nameTextStyle: { nameTextStyle: {
color: "rgba(255, 255, 255, 0.8)" color: "rgba(255, 255, 255, 0.8)",
}, },
axisLabel: { axisLabel: {
color: "rgba(255, 255, 255, 0.8)" color: "rgba(255, 255, 255, 0.8)",
}, },
axisLine: { axisLine: {
lineStyle: { lineStyle: {
color: "#365576" color: "#365576",
} },
}, },
splitLine: { splitLine: {
lineStyle: { lineStyle: {
color: "#1a3d62", color: "#1a3d62",
type: "dashed" type: "dashed",
} },
} },
}, },
{ {
type: "value", type: "value",
name: "kWh", name: "kWh",
nameTextStyle: { nameTextStyle: {
color: "rgba(255, 255, 255, 0.8)" color: "rgba(255, 255, 255, 0.8)",
}, },
axisLabel: { axisLabel: {
color: "rgba(255, 255, 255, 0.8)" color: "rgba(255, 255, 255, 0.8)",
}, },
axisLine: { axisLine: {
lineStyle: { lineStyle: {
color: "#365576" color: "#365576",
} },
}, },
splitLine: { splitLine: {
show: false show: false,
} },
} },
], ],
series: [ series: [
{ {
@ -450,12 +571,12 @@ export default {
smooth: true, smooth: true,
data: eerData, data: eerData,
itemStyle: { itemStyle: {
color: "#91CC75" color: "#91CC75",
}, },
lineStyle: { lineStyle: {
color: "#91CC75", color: "#91CC75",
width: 2 width: 2,
} },
}, },
{ {
name: "用电量", name: "用电量",
@ -472,21 +593,21 @@ export default {
colorStops: [ colorStops: [
{ {
offset: 0, offset: 0,
color: "#5470C6" color: "#5470C6",
}, },
{ {
offset: 1, offset: 1,
color: "#73C0DE" color: "#73C0DE",
} },
] ],
} },
} },
} },
] ],
}; };
this.trendChart.setOption(option); this.trendChart.setOption(option);
} },
} },
}; };
</script> </script>
@ -655,26 +776,44 @@ export default {
&.today { &.today {
background: rgba(145, 204, 117, 0.2); background: rgba(145, 204, 117, 0.2);
border: 1px solid #91CC75; border: 1px solid #91cc75;
} }
.day-number { .day-number {
font-size: 0.16rem; font-size: 0.16rem;
color: #ffffff; color: #ffffff;
margin-bottom: 0.05rem; font-weight: bold;
} border-radius: 50%;
width: 0.16rem;
.day-indicator { height: 0.15rem;
background: #085d68;
padding: 0.2rem;
text-align: center; text-align: center;
display: flex;
.indicator-value { flex-direction: column;
font-size: 0.14rem; align-items: center;
font-weight: bold; justify-content: center;
} }
.day-flex {
.indicator-unit { display: flex;
font-size: 0.1rem; flex-direction: column;
opacity: 0.7; margin-top: 0.4rem;
.day-indicator {
text-align: left;
.indicator-value {
font-size: 0.14rem;
font-weight: bold;
display: flex;
flex-direction: row;
align-items: flex-end;
.indicator-unit {
font-size: 0.1rem;
opacity: 0.7;
color: #ffffff;
margin-left: 0.1rem;
}
}
} }
} }
} }

2
src/views/newLifeWater/energyManage/energyWater/index.vue

@ -53,7 +53,7 @@
class="custom-input-number" class="custom-input-number"
/> />
</div> </div>
<el-button type="primary" size="small" @click="applyThresholdConfig" class="apply-btn">应用配置</el-button> <div class="primary-btn"><el-button type="primary" size="small" @click="applyThresholdConfig" class="apply-btn">应用配置</el-button></div>
</div> </div>
<!-- 总体吨水能耗概览 --> <!-- 总体吨水能耗概览 -->

8
src/views/newLifeWater/energyManage/warning/index.vue

@ -107,12 +107,6 @@
</div> </div>
</div> </div>
<div class="filter-actions"> <div class="filter-actions">
<el-input
v-model="filterForm.keyword"
placeholder="搜索水泵/区域"
clearable
class="search-input custom-input"
></el-input>
<div class="primary-btn"><el-button type="primary" @click="handleSearch" class="custom-btn">查询</el-button></div> <div class="primary-btn"><el-button type="primary" @click="handleSearch" class="custom-btn">查询</el-button></div>
<el-button @click="handleReset" class="custom-btn">重置</el-button> <el-button @click="handleReset" class="custom-btn">重置</el-button>
<div class="success-btn"><el-button type="success" @click="handleExport" class="custom-btn">导出</el-button></div> <div class="success-btn"><el-button type="success" @click="handleExport" class="custom-btn">导出</el-button></div>
@ -1065,7 +1059,7 @@ export default {
.filter-section { .filter-section {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
align-items: flex-start; align-items: flex-end;
padding: 0.2rem; padding: 0.2rem;
background: rgba(255, 255, 255, 0.05); background: rgba(255, 255, 255, 0.05);
border-radius: 0.08rem; border-radius: 0.08rem;

8
src/views/newLighting/energyManage/warning/index.vue

@ -97,12 +97,6 @@
</div> </div>
</div> </div>
<div class="filter-actions"> <div class="filter-actions">
<el-input
v-model="filterForm.keyword"
placeholder="搜索项目/部门"
clearable
class="search-input custom-input"
></el-input>
<div class="primary-btn"><el-button type="primary" @click="handleSearch" class="custom-btn">查询</el-button></div> <div class="primary-btn"><el-button type="primary" @click="handleSearch" class="custom-btn">查询</el-button></div>
<el-button @click="handleReset" class="custom-btn">重置</el-button> <el-button @click="handleReset" class="custom-btn">重置</el-button>
<div class="success-btn"><el-button type="success" @click="handleExport" class="custom-btn">导出</el-button></div> <div class="success-btn"><el-button type="success" @click="handleExport" class="custom-btn">导出</el-button></div>
@ -898,7 +892,7 @@ export default {
.filter-section { .filter-section {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
align-items: flex-start; align-items: flex-end;
padding: 0.2rem; padding: 0.2rem;
background: rgba(255, 255, 255, 0.05); background: rgba(255, 255, 255, 0.05);
border-radius: 0.08rem; border-radius: 0.08rem;

Loading…
Cancel
Save