Browse Source

merge

wangqin
hui 7 months ago
parent
commit
b05f1c1994
  1. 14
      ruoyi-ui/src/views/JiHeExpressway/images/ListItem/1.svg
  2. 18
      ruoyi-ui/src/views/JiHeExpressway/images/ListItem/10.svg
  3. 12
      ruoyi-ui/src/views/JiHeExpressway/images/ListItem/11.svg
  4. 17
      ruoyi-ui/src/views/JiHeExpressway/images/ListItem/2.svg
  5. 26
      ruoyi-ui/src/views/JiHeExpressway/images/ListItem/3.svg
  6. 12
      ruoyi-ui/src/views/JiHeExpressway/images/ListItem/4.svg
  7. 46
      ruoyi-ui/src/views/JiHeExpressway/images/ListItem/5.svg
  8. 26
      ruoyi-ui/src/views/JiHeExpressway/images/ListItem/6.svg
  9. 18
      ruoyi-ui/src/views/JiHeExpressway/images/ListItem/7.svg
  10. 36
      ruoyi-ui/src/views/JiHeExpressway/images/ListItem/8.svg
  11. 31
      ruoyi-ui/src/views/JiHeExpressway/images/ListItem/9.svg
  12. 5
      ruoyi-ui/src/views/JiHeExpressway/images/layer/路测设备/远端机.svg
  13. 3
      ruoyi-ui/src/views/JiHeExpressway/images/layer/路测设备/远端机_active.svg
  14. 3
      ruoyi-ui/src/views/JiHeExpressway/images/layer/路测设备/远端机_fault.svg
  15. 55
      ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/Dialogs/RemoteMachine/components/DeviceControlDialog.vue
  16. 199
      ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/Dialogs/RemoteMachine/components/DeviceParams.vue
  17. 166
      ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/Dialogs/RemoteMachine/components/DeviceParamsMulti.vue
  18. 195
      ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/Dialogs/RemoteMachine/index.vue
  19. 33
      ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/Dialogs/SmartDevice/index.vue
  20. 2
      ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/Dialogs/TrafficIncidents/index.vue
  21. 10
      ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/HomeFilter/index.vue
  22. 46
      ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/HomeFrameControl/index.vue
  23. 8
      ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/RoadAndEvents/index.vue
  24. 4
      ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/RoadAndEvents/utils/buttonEvent.js
  25. 4
      ruoyi-ui/src/views/JiHeExpressway/pages/control/event/event/EventDetailDialog/index.vue
  26. 16
      ruoyi-ui/src/views/JiHeExpressway/pages/perception/eventDetection/index.vue
  27. 20
      ruoyi-ui/src/views/JiHeExpressway/pages/perception/trafficFlow/index.vue
  28. 2
      ruoyi-ui/src/views/JiHeExpressway/pages/perception/trafficSituation/components/IndicatorAnalysis/components/changesIndicators/assets/charts3.js
  29. 22
      ruoyi-ui/src/views/JiHeExpressway/pages/perception/trafficSituation/components/IndicatorAnalysis/components/changesIndicators/index.vue
  30. 138
      ruoyi-ui/src/views/JiHeExpressway/pages/perception/trafficSituation/components/IndicatorAnalysis/components/composeFeatures/index.vue
  31. 41
      ruoyi-ui/src/views/JiHeExpressway/pages/perception/trafficSituation/components/IndicatorAnalysis/components/congestionIndicator/index.vue
  32. 138
      ruoyi-ui/src/views/JiHeExpressway/pages/perception/trafficSituation/components/IndicatorAnalysis/components/crowding/index.vue
  33. 719
      ruoyi-ui/src/views/JiHeExpressway/pages/perception/trafficSituation/components/IndicatorAnalysis/components/roadIndicators/index.vue
  34. 140
      ruoyi-ui/src/views/JiHeExpressway/pages/perception/trafficSituation/components/IndicatorAnalysis/components/saturationMax/index.vue
  35. 2
      ruoyi-ui/src/views/JiHeExpressway/pages/perception/trafficSituation/components/IndicatorAnalysis/components/trafficIndicators/assets/charts.js
  36. 27
      ruoyi-ui/src/views/JiHeExpressway/pages/perception/trafficSituation/components/IndicatorAnalysis/components/trafficIndicators/index.vue
  37. 119
      ruoyi-ui/src/views/JiHeExpressway/pages/perception/trafficSituation/components/IndicatorAnalysis/index.vue
  38. 36
      ruoyi-ui/src/views/JiHeExpressway/pages/perception/trafficSituation/index.vue
  39. 12
      ruoyi-ui/src/views/JiHeExpressway/pages/service/InformationReleaseManagement/Cards/AuditDetails/DetailCard.vue
  40. 2
      ruoyi-ui/src/views/JiHeExpressway/pages/service/InformationReleaseManagement/Cards/AuditLists/ListItem.vue
  41. 33
      ruoyi-ui/src/views/JiHeExpressway/pages/service/InformationReleaseManagement/Cards/AuditLists/index.vue
  42. 4
      ruoyi-ui/vue.config.js

14
ruoyi-ui/src/views/JiHeExpressway/images/ListItem/1.svg

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 5.5 KiB

18
ruoyi-ui/src/views/JiHeExpressway/images/ListItem/10.svg

@ -0,0 +1,18 @@
<svg width="47" height="47" viewBox="0 0 47 47" fill="none" xmlns="http://www.w3.org/2000/svg">
<g id="Group 1142814078">
<g id="Group 1321314625">
<g id="&#229;&#188;&#130;&#229;&#184;&#184;&#229;&#164;&#169;&#230;&#176;&#148;">
<rect id="Rectangle 3695" x="0.5" y="0.5" width="46" height="46" rx="23" fill="#00B3CC" fill-opacity="0.2" stroke="#00B3CC"/>
</g>
<g id="Frame">
<path id="Vector" d="M12.7002 25.3752L14.2002 27.7377L12.7002 31.6752L11.2002 27.7377L12.7002 25.3752ZM35.2002 27.7377L33.7002 25.3752L32.2002 27.7377L33.7002 31.6752L35.2002 27.7377ZM17.9502 28.5252L19.4502 30.8877L17.9502 34.8252L16.4502 30.8877L17.9502 28.5252ZM29.9502 30.8877L28.4502 28.5252L26.9502 30.8877L28.4502 34.8252L29.9502 30.8877ZM24.7002 32.4627L23.2002 30.1002L21.7002 32.4627L23.2002 36.4002L24.7002 32.4627ZM23.0502 26.9502C24.1444 26.9511 25.2254 26.7001 26.2172 26.215C27.209 25.7298 28.0875 25.0222 28.7907 24.142C29.4427 24.4623 30.1584 24.6137 30.8777 24.5835C31.597 24.5532 32.2989 24.3423 32.9245 23.9683C33.55 23.5942 34.081 23.0681 34.4728 22.434C34.8646 21.7999 35.1058 21.0764 35.1762 20.3241C35.2466 19.5719 35.144 18.8129 34.8772 18.1109C34.6104 17.4089 34.1871 16.7843 33.6428 16.2896C33.0985 15.795 32.4491 15.4446 31.7491 15.268C31.0492 15.0914 30.3191 15.0937 29.6202 15.2747C28.9726 14.0403 28.0213 13.0111 26.8657 12.2944C25.71 11.5777 24.3924 11.1998 23.0502 11.2002C21.719 11.1996 20.4117 11.5712 19.2626 12.2768C18.1134 12.9823 17.164 13.9964 16.5117 15.2149C15.8249 15.0831 15.1183 15.1208 14.4478 15.3252C13.7773 15.5296 13.1613 15.8951 12.6486 16.3926C12.1358 16.8901 11.7403 17.5061 11.4934 18.1918C11.2464 18.8775 11.1549 19.6141 11.2259 20.3434C11.2969 21.0727 11.5285 21.7746 11.9025 22.3937C12.2764 23.0127 12.7825 23.5319 13.3805 23.9102C13.9786 24.2885 14.6522 24.5155 15.3482 24.5732C16.0443 24.6309 16.7435 24.5178 17.3907 24.2428C18.094 25.0938 18.9633 25.776 19.9398 26.2432C20.9163 26.7103 21.9771 26.9514 23.0502 26.9502ZM21.8637 16.8733C21.7782 16.3032 22.1187 15.6133 22.6077 15.3031C22.9917 15.0621 23.4342 15.0936 23.8167 15.3393L23.9217 15.4054C24.3672 15.6795 24.6117 16.2118 24.5352 16.7489L23.9982 20.3352H22.3812L21.8652 16.8733H21.8637ZM24.0987 22.0677C24.0987 22.3183 24.0039 22.5587 23.8351 22.7359C23.6663 22.9131 23.4374 23.0127 23.1987 23.0127C22.96 23.0127 22.7311 22.9131 22.5623 22.7359C22.3935 22.5587 22.2987 22.3183 22.2987 22.0677C22.2987 21.8171 22.3935 21.5767 22.5623 21.3995C22.7311 21.2223 22.96 21.1227 23.1987 21.1227C23.4374 21.1227 23.6663 21.2223 23.8351 21.3995C24.0039 21.5767 24.0987 21.8171 24.0987 22.0677Z" fill="url(#paint0_linear_1151_674)"/>
</g>
</g>
</g>
<defs>
<linearGradient id="paint0_linear_1151_674" x1="23.2002" y1="13.7202" x2="23.2002" y2="36.4002" gradientUnits="userSpaceOnUse">
<stop stop-color="#00E0FF"/>
<stop offset="1" stop-color="#00A0B6"/>
</linearGradient>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 2.8 KiB

12
ruoyi-ui/src/views/JiHeExpressway/images/ListItem/11.svg

@ -0,0 +1,12 @@
<svg width="47" height="47" viewBox="0 0 47 47" fill="none" xmlns="http://www.w3.org/2000/svg">
<g id="Group 1321314619">
<path id="Vector" d="M27.6671 22.6031L33.7027 34.1569C33.8324 34.4494 33.8324 34.5956 33.7027 34.9612C33.3782 35.2537 33.2484 35.4 32.9239 35.4H20.8527C20.5282 35.4 20.3984 35.2537 20.2686 34.9612C20.1388 34.6687 20.1388 34.5225 20.2686 34.1569L26.3042 22.6031C26.5638 22.0912 27.3426 22.0912 27.6671 22.6031ZM32.5345 12C33.0537 12 33.5729 12.3656 33.5729 12.9506V23.9194C33.5729 24.7237 33.0537 25.0894 32.3398 25.0894C31.8206 25.0894 31.3014 24.5044 31.3014 23.9194V14.5594H15.0768V33.06H17.0886C17.8025 33.06 18.3217 33.645 18.3217 34.23C18.3217 34.815 17.8025 35.4 17.0886 35.4H14.0384C13.5192 35.4 13 35.0344 13 34.4494V13.5356C13 12.9506 13.1947 12.2194 13.8437 12H32.5345ZM26.8883 31.6706C26.434 31.6706 25.9797 32.1094 25.9797 32.6213C25.9797 33.06 26.434 33.5719 26.8883 33.5719C27.3426 33.5719 27.7969 33.1331 27.7969 32.6213C27.6671 32.1825 27.3426 31.6706 26.8883 31.6706ZM26.8883 26.9175C26.434 26.9175 26.1744 27.21 26.1095 27.5756V30.4275C26.1095 30.8663 26.434 31.2319 26.8883 31.2319C27.3426 31.2319 27.6022 30.9394 27.6671 30.5737V27.7219C27.6671 27.21 27.3426 26.9175 26.8883 26.9175ZM21.307 22.7494C22.0209 22.7494 22.5401 23.3344 22.5401 24.1388C22.5401 24.9431 22.0209 25.5281 21.307 25.5281H18.3866C17.6727 25.5281 17.1535 24.9431 17.1535 24.1388C17.1535 23.3344 17.6727 22.7494 18.3866 22.7494H21.307ZM26.1744 17.1187C26.8883 17.1187 27.4075 17.7037 27.4075 18.5081C27.4075 19.3125 26.8883 19.6781 26.1744 19.6781H18.3866C17.8674 19.6781 17.3482 19.0931 17.3482 18.5081C17.3482 17.9231 17.8674 17.1187 18.3866 17.1187H26.1744Z" fill="url(#paint0_linear_1151_602)"/>
<rect id="Rectangle 3700" x="0.5" y="0.5" width="46" height="46" rx="23" fill="#00B3CC" fill-opacity="0.2" stroke="#00B3CC"/>
</g>
<defs>
<linearGradient id="paint0_linear_1151_602" x1="23.4" y1="14.34" x2="23.4" y2="35.4" gradientUnits="userSpaceOnUse">
<stop stop-color="#00E0FF"/>
<stop offset="1" stop-color="#00A0B6"/>
</linearGradient>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 2.0 KiB

17
ruoyi-ui/src/views/JiHeExpressway/images/ListItem/2.svg

@ -0,0 +1,17 @@
<svg width="47" height="47" viewBox="0 0 47 47" fill="none" xmlns="http://www.w3.org/2000/svg">
<g id="Group 1321314617">
<g id="Group 1142814727">
<rect id="Rectangle 3695" x="0.5" y="0.5" width="46" height="46" rx="23" fill="#00B3CC" fill-opacity="0.2" stroke="#00B3CC"/>
</g>
<g id="Frame">
<path id="Vector" d="M11.6455 32.75H35.8253V35.5033H11.6455L11.6455 32.75Z" fill="#01D1EE"/>
<path id="Vector_2" d="M34.262 20.1975C34.2013 19.8817 34.0181 19.6027 33.7523 19.4215C33.4866 19.2402 33.16 19.1715 32.8438 19.2302L31.8471 19.4183C31.6715 19.2784 31.4846 19.1534 31.2883 19.0444L28.1766 13.9395C27.5484 12.9791 26.1795 12.6715 25.6253 12.7764L15.454 14.6979C14.9021 14.802 13.7374 15.5913 13.5031 16.712L12.4679 22.6001C12.4679 22.6001 12.249 22.8591 12.084 23.152L11.0874 23.3401C10.433 23.4634 10.0006 24.0977 10.1255 24.7575C10.1545 24.914 10.2141 25.0632 10.3008 25.1966C10.3875 25.33 10.4997 25.445 10.631 25.535C10.7622 25.625 10.9099 25.6882 11.0656 25.7211C11.2213 25.7539 11.3819 25.7557 11.5383 25.7264L11.9507 25.6486C11.9962 25.9469 12.0555 26.2922 12.1319 26.6961C12.5805 29.0709 13.2225 29.8255 13.8546 30.0105L14.3579 30.18L14.7749 32.3853C14.9106 33.1013 15.1225 33.2817 15.8093 33.1522L17.3493 32.8608C18.0361 32.7314 18.1679 32.4855 18.033 31.7694L17.616 29.5642L29.0422 27.4052L29.043 27.4083L32.7073 26.4471C33.2284 26.0447 33.5506 25.1106 33.102 22.7327C33.0257 22.3288 32.9555 21.985 32.8885 21.6906L33.3009 21.6127C33.457 21.583 33.6057 21.5229 33.7385 21.4356C33.8713 21.3484 33.9856 21.2359 34.0749 21.1044C34.1642 20.973 34.2266 20.8252 34.2587 20.6696C34.2909 20.514 34.292 20.3536 34.262 20.1975ZM15.3268 23.293C14.7047 23.4102 14.3332 22.2841 14.3702 21.8478C14.401 21.4794 14.6284 19.5092 14.7348 18.5072C14.7887 18.1596 15.3098 17.2855 16.2147 17.173L25.8226 15.3577C26.7059 15.1327 27.5076 15.7562 27.6871 16.0599C28.1542 16.9533 29.0823 18.7053 29.248 19.0367C29.4392 19.4298 29.5016 20.6145 28.4864 20.8065L15.3268 23.293ZM17.3609 28.3332C16.9389 28.4112 16.5033 28.3187 16.1494 28.0759C15.7956 27.8332 15.5524 27.4601 15.4732 27.0383C15.3075 26.1604 15.8833 25.3094 16.7581 25.1445C17.6329 24.9795 18.4793 25.5615 18.6458 26.4394C18.8123 27.3173 18.2334 28.1683 17.3609 28.3332ZM28.8271 26.1665C28.4053 26.2443 27.9699 26.1518 27.6161 25.9092C27.2623 25.6667 27.019 25.2939 26.9395 24.8724C26.8595 24.4509 26.9498 24.015 27.1906 23.66C27.4315 23.305 27.8032 23.06 28.2244 22.9786C29.0992 22.8128 29.9456 23.3956 30.1121 24.2735C30.2786 25.1514 29.7028 26.0016 28.8271 26.1665ZM31.7354 29.7091C31.7354 30.2711 31.9586 30.81 32.356 31.2074C32.7534 31.6047 33.2923 31.828 33.8543 31.828C34.4163 31.828 34.9552 31.6047 35.3526 31.2074C35.75 30.81 35.9732 30.2711 35.9732 29.7091C35.9732 29.1471 35.75 28.6082 35.3526 28.2108C34.9552 27.8134 34.4163 27.5902 33.8543 27.5902C33.2923 27.5902 32.7534 27.8134 32.356 28.2108C31.9586 28.6082 31.7354 29.1471 31.7354 29.7091Z" fill="url(#paint0_linear_1151_378)"/>
</g>
</g>
<defs>
<linearGradient id="paint0_linear_1151_378" x1="23.0386" y1="14.8002" x2="23.0386" y2="33.1909" gradientUnits="userSpaceOnUse">
<stop stop-color="#00E0FF"/>
<stop offset="1" stop-color="#00A0B6"/>
</linearGradient>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 3.1 KiB

26
ruoyi-ui/src/views/JiHeExpressway/images/ListItem/3.svg

@ -0,0 +1,26 @@
<svg width="47" height="47" viewBox="0 0 47 47" fill="none" xmlns="http://www.w3.org/2000/svg">
<g id="Group 1321314618">
<g id="Group 1142814728">
<rect id="Rectangle 3695" x="0.5" y="0.5" width="46" height="46" rx="23" fill="#00B3CC" fill-opacity="0.2" stroke="#00B3CC"/>
</g>
<g id="&#233;&#161;&#181;&#233;&#157;&#162;-1">
<g id="&#233;&#166;&#150;&#233;&#161;&#181;-&#229;&#185;&#179;&#233;&#157;&#162;3">
<g id="&#231;&#188;&#150;&#231;&#187;&#132;-16&#229;&#164;&#135;&#228;&#187;&#189;">
<g id="1">
<g id="&#232;&#183;&#175;&#233;&#157;&#162;&#231;&#138;&#182;&#230;&#128;&#129;">
<g id="Frame">
<path id="Vector" d="M24.0274 10.0225C16.5867 10.0225 10.5664 16.0765 10.5664 23.4835C10.5664 30.8904 16.6205 36.9783 24.0274 36.9783C31.4682 36.9783 37.5222 30.9242 37.5222 23.4835C37.5222 16.0427 31.4682 10.0225 24.0274 10.0225ZM24.0274 35.0505C17.6689 35.0505 12.4942 29.8758 12.4942 23.5173C12.4942 21.0483 13.2721 18.7823 14.5912 16.9221L17.7028 20.0337L17.0263 21.7586L16.0793 22.6379V26.0539L16.9587 27.0009H17.2293V28.4552C17.2293 28.4552 17.3646 28.692 17.4998 28.7258C17.6013 28.7596 18.413 28.7935 18.8865 28.7258C19.0556 28.692 19.1909 28.4891 19.2247 28.4552V27.0009C21.0511 27.0009 22.8775 27.0009 24.67 27.0009L30.6565 32.9535C28.7963 34.2726 26.4964 35.0505 24.0274 35.0505ZM28.0184 24.5658L28.3228 23.1114C28.3566 22.9761 28.4242 22.8747 28.5595 22.8747H30.8932C31.0285 22.8747 31.13 22.9761 31.13 23.1114V24.5658C31.13 24.701 31.0285 24.8025 30.8932 24.8025H28.2551C28.1198 24.8025 27.9845 24.701 28.0184 24.5658ZM24.873 21.6909L21.7275 18.5793C24.1965 18.4779 25.8538 18.5117 29.1683 18.7484L30.4197 21.8262C28.4242 21.7247 26.6317 21.6909 24.873 21.6909ZM20.0365 24.5658C20.0703 24.701 19.935 24.8025 19.7997 24.8025H17.1616C17.0263 24.8025 16.9249 24.701 16.9249 24.5658V23.1114C16.9249 22.9761 17.0263 22.8747 17.1616 22.8747H19.4953C19.6306 22.8747 19.6982 22.9761 19.7321 23.1114L20.0365 24.5658ZM17.6351 21.8262L18.1763 20.5072L19.4277 21.7586C18.8527 21.7586 18.2777 21.7924 17.6351 21.8262ZM33.4636 30.1463L30.8256 27.5421V27.0009H31.0961L31.9755 26.0539V22.6379L31.0285 21.7586L29.6418 18.1735C29.6418 18.1735 28.2213 17.9705 26.7331 17.8691C24.9406 17.7676 23.0128 17.7676 21.2202 17.8691C21.1188 17.8691 21.0511 17.8691 20.9496 17.8691L17.1954 14.1487C19.0895 12.762 21.4231 11.9503 23.9598 11.9503C30.3182 11.9503 35.4929 17.125 35.4929 23.4835C35.5606 25.9863 34.7827 28.2523 33.4636 30.1463Z" fill="url(#paint0_linear_1151_590)"/>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
<defs>
<linearGradient id="paint0_linear_1151_590" x1="24.0443" y1="12.718" x2="24.0443" y2="36.9783" gradientUnits="userSpaceOnUse">
<stop stop-color="#00E0FF"/>
<stop offset="1" stop-color="#00A0B6"/>
</linearGradient>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

12
ruoyi-ui/src/views/JiHeExpressway/images/ListItem/4.svg

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 8.3 KiB

46
ruoyi-ui/src/views/JiHeExpressway/images/ListItem/5.svg

@ -0,0 +1,46 @@
<svg width="47" height="47" viewBox="0 0 47 47" fill="none" xmlns="http://www.w3.org/2000/svg">
<g id="Group 1321314624">
<rect id="Rectangle 3698" x="0.5" y="0.5" width="46" height="46" rx="23" fill="#00B3CC" fill-opacity="0.2" stroke="#00B3CC"/>
<g id="Frame 427319035">
<g id="&#233;&#161;&#181;&#233;&#157;&#162;-1">
<g id="&#233;&#166;&#150;&#233;&#161;&#181;-&#229;&#185;&#179;&#233;&#157;&#162;3">
<g id="&#231;&#188;&#150;&#231;&#187;&#132;-16&#229;&#164;&#135;&#228;&#187;&#189;">
<g id="1">
<g id="&#232;&#183;&#175;&#233;&#157;&#162;&#231;&#138;&#182;&#230;&#128;&#129;">
<g id="Group 1142814053">
<path id="Vector" d="M35.4893 30.6859C33.8106 30.6749 32.4926 29.3337 32.5215 27.6214C32.5478 25.9574 33.9694 24.6993 35.5413 24.713C37.0307 24.7256 38.4965 25.9348 38.5054 27.7097C38.5128 29.3537 37.1396 30.6964 35.4893 30.6859ZM35.5114 28.9841C35.6789 28.9863 35.8452 28.9555 36.0007 28.8935C36.1563 28.8314 36.2982 28.7393 36.4182 28.6225C36.5382 28.5056 36.634 28.3662 36.7001 28.2123C36.7663 28.0584 36.8014 27.893 36.8036 27.7255V27.6887C36.8 27.349 36.663 27.0244 36.4221 26.7848C36.1812 26.5453 35.8558 26.4101 35.5161 26.4085C34.8058 26.4085 34.2133 26.9258 34.2138 27.695C34.2138 28.5593 34.922 29.0199 35.5114 28.9841ZM11.922 28.3511C11.7503 28.3464 11.5872 28.2753 11.4668 28.1529C11.3465 28.0305 11.2782 27.8662 11.2764 27.6945C11.2806 27.3364 11.6007 27.0273 11.954 27.0404C12.12 27.053 12.2756 27.1257 12.3917 27.2449C12.5079 27.364 12.5766 27.5214 12.5849 27.6876C12.5834 27.863 12.5131 28.0308 12.3891 28.1549C12.2651 28.279 12.0974 28.3495 11.922 28.3511Z" fill="url(#paint0_linear_1151_665)"/>
<path id="Vector_2" d="M36.1452 27.7177C36.1419 27.889 36.0707 28.052 35.9473 28.1708C35.8238 28.2896 35.6583 28.3545 35.487 28.3513C35.3175 28.3474 35.1565 28.2764 35.0394 28.1538C34.9223 28.0313 34.8586 27.8672 34.8624 27.6978V27.6836C34.8698 27.3297 35.1779 27.0285 35.5217 27.0422C35.6932 27.0512 35.8545 27.1268 35.9709 27.2531C36.0874 27.3793 36.15 27.546 36.1452 27.7177ZM18.4883 17.1903C18.9439 17.1651 19.3996 17.1423 19.8552 17.122C20.2348 17.1062 20.3888 17.2519 20.3925 17.632C20.3974 18.1227 20.3999 18.6133 20.3999 19.104L21.1259 19.8306L21.8898 19.0667V17.5915C21.8898 17.3044 22.0071 17.1509 22.2578 17.1509C22.762 17.1541 23.2672 17.1593 23.7699 17.1856L24.8481 16.1073C23.8855 15.9896 22.915 15.958 21.945 15.958C20.4661 15.958 18.9872 16.0106 17.5083 16.0574L17.3574 16.0632L18.4883 17.1903ZM24.937 27.7035L21.1264 23.8935L17.3164 27.7035H24.937Z" fill="url(#paint1_linear_1151_665)"/>
<path id="Vector_3" d="M41.8415 25.8021C41.7794 25.2732 41.4508 24.9467 40.9524 24.7737C40.8717 24.737 40.8066 24.6727 40.769 24.5924C40.103 23.237 39.0579 22.3189 37.6335 21.838C36.3675 21.4116 35.0941 21.0047 33.8324 20.5704C33.4323 20.4332 33.0085 20.296 32.6721 20.0526C31.3577 19.1031 30.0328 18.1694 28.6107 17.386C28.4004 17.2704 28.1901 17.1563 27.9756 17.0469L27.0887 17.9339C27.6144 18.1888 28.1202 18.4938 28.6265 18.7919C29.3021 19.1883 29.9577 19.6215 30.6122 20.0536C30.7405 20.1383 30.8225 20.2902 30.9277 20.4111C30.7726 20.4637 30.6196 20.5636 30.4618 20.5636C29.1217 20.5762 27.7806 20.571 26.4405 20.571H24.4484L23.1599 21.8606L29.0019 27.7031H31.8288C31.9402 25.4782 33.5464 24.1991 35.2129 24.0498C36.0113 23.9734 36.8115 24.1755 37.4778 24.6218C38.5819 25.3494 39.1323 26.4019 39.177 27.7194C39.7028 27.7194 40.1954 27.7515 40.6817 27.7063C40.9488 27.6778 41.2032 27.5773 41.4177 27.4156C41.9519 26.9997 41.9109 26.3899 41.8415 25.8021ZM15.0966 25.8594L19.0948 21.8606L17.8052 20.571H16.4272C15.2859 20.571 14.1466 20.5768 13.0099 20.5647C12.8811 20.5647 12.7528 20.4685 12.6246 20.4159C12.6771 20.2897 12.6987 20.1325 12.7881 20.0416C13.5382 19.2825 14.3695 18.6081 15.2669 18.0306L14.2481 17.0117C13.031 17.8356 11.8207 18.6673 10.5999 19.4853C10.1042 19.8155 9.63154 20.1956 9.02273 20.3265C8.27671 20.4869 7.53436 20.6635 6.79044 20.8344C6.35513 20.9337 6.04547 21.4016 6.07333 21.8364C6.12275 22.5593 6.17848 23.2854 6.16008 24.0083C6.14799 24.463 6.14431 24.9546 5.77208 25.3263C5.70291 25.4059 5.66109 25.5056 5.65274 25.6107C5.62225 25.9046 5.60332 26.2006 5.60017 26.4955C5.59438 27.0617 5.94663 27.5822 6.49813 27.6522C7.07224 27.7252 7.66212 27.6684 8.26566 27.6684C8.31824 25.6438 9.83605 24.2044 11.6593 24.0482C12.4851 23.9756 13.3098 24.1992 13.9857 24.6791C14.439 24.9852 14.8184 25.3884 15.0966 25.8594Z" fill="url(#paint2_linear_1151_665)"/>
<path id="Vector_4" d="M14.064 28.3793L20.5821 21.8612L14.064 15.343L14.6092 14.7979L21.1273 21.316L27.6454 14.7979L28.1911 15.343L21.673 21.8612L28.1911 28.3793L27.6454 28.9245L21.1273 22.4063L14.6092 28.9245L14.064 28.3793Z" fill="url(#paint3_linear_1151_665)"/>
<path id="Vector_5" d="M13.0502 28.3475C12.9373 28.5434 12.7742 28.7056 12.5777 28.8174C12.3812 28.9293 12.1585 28.9866 11.9324 28.9837C11.2132 28.9837 10.6433 28.4274 10.6418 27.7219C10.6418 26.9785 11.2069 26.4044 11.9393 26.4075C12.2779 26.4114 12.6015 26.5477 12.8408 26.7873C13.0801 27.0269 13.216 27.3507 13.2195 27.6893V27.7319C13.2172 27.9225 13.1719 28.1101 13.087 28.2807L14.7199 26.6473C14.3067 25.569 13.2904 24.7967 12.1485 24.7225C11.7433 24.6934 11.3364 24.7471 10.9527 24.8803C10.5689 25.0135 10.2162 25.2234 9.91618 25.4973C9.61614 25.7712 9.37499 26.1032 9.20743 26.4733C9.03986 26.8434 8.94939 27.2437 8.94151 27.6499C8.92784 29.3243 10.2191 30.6623 11.9051 30.6855C12.3582 30.6927 12.8067 30.5949 13.2157 30.3997C13.6246 30.2045 13.9827 29.9172 14.262 29.5604L13.0502 28.3475Z" fill="url(#paint4_linear_1151_665)"/>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
<defs>
<linearGradient id="paint0_linear_1151_665" x1="24.8909" y1="25.3102" x2="24.8909" y2="30.686" gradientUnits="userSpaceOnUse">
<stop stop-color="#00E0FF"/>
<stop offset="1" stop-color="#00A0B6"/>
</linearGradient>
<linearGradient id="paint1_linear_1151_665" x1="26.7309" y1="17.1973" x2="26.7309" y2="28.3514" gradientUnits="userSpaceOnUse">
<stop stop-color="#00E0FF"/>
<stop offset="1" stop-color="#00A0B6"/>
</linearGradient>
<linearGradient id="paint2_linear_1151_665" x1="23.7408" y1="18.0836" x2="23.7408" y2="27.7305" gradientUnits="userSpaceOnUse">
<stop stop-color="#00E0FF"/>
<stop offset="1" stop-color="#00A0B6"/>
</linearGradient>
<linearGradient id="paint3_linear_1151_665" x1="21.1275" y1="16.2105" x2="21.1275" y2="28.9245" gradientUnits="userSpaceOnUse">
<stop stop-color="#00E0FF"/>
<stop offset="1" stop-color="#00A0B6"/>
</linearGradient>
<linearGradient id="paint4_linear_1151_665" x1="11.8307" y1="25.3119" x2="11.8307" y2="30.6858" gradientUnits="userSpaceOnUse">
<stop stop-color="#00E0FF"/>
<stop offset="1" stop-color="#00A0B6"/>
</linearGradient>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 6.5 KiB

26
ruoyi-ui/src/views/JiHeExpressway/images/ListItem/6.svg

@ -0,0 +1,26 @@
<svg width="47" height="47" viewBox="0 0 47 47" fill="none" xmlns="http://www.w3.org/2000/svg">
<g id="Group 1321314623">
<rect id="Rectangle 3695" x="0.5" y="0.5" width="46" height="46" rx="23" fill="#00B3CC" fill-opacity="0.2" stroke="#00B3CC"/>
<g id="Frame 10084">
<g id="Group 1142814079">
<g id="&#233;&#166;&#150;&#233;&#161;&#181;-&#229;&#185;&#179;&#233;&#157;&#162;3">
<g id="&#231;&#188;&#150;&#231;&#187;&#132;-16&#229;&#164;&#135;&#228;&#187;&#189;">
<g id="1">
<g id="&#232;&#183;&#175;&#233;&#157;&#162;&#231;&#138;&#182;&#230;&#128;&#129;">
<g id="Frame">
<path id="Vector" d="M22.5673 14.6438C22.5673 13.2397 23.6281 12.0996 24.932 12.0996C26.2346 12.0996 27.2941 13.2397 27.2941 14.6438C27.2941 16.0478 26.2346 17.1879 24.932 17.1879C24.6218 17.1894 24.3144 17.1247 24.0275 16.9975C23.7406 16.8702 23.4798 16.6831 23.26 16.4466C23.0403 16.2102 22.866 15.9293 22.7471 15.6199C22.6282 15.3105 22.5671 14.9787 22.5673 14.6438ZM17.1255 17.7116L19.2419 17.5263L19.2861 18.175L19.3212 18.5906C19.4005 19.6801 20.2702 20.4931 21.2634 20.406C21.7432 20.3596 22.1864 20.1097 22.4959 19.7109C22.8054 19.3122 22.9559 18.7972 22.9144 18.2789L22.9079 18.2087C22.8768 17.7858 22.7678 17.3738 22.5872 16.9971C22.4066 16.6204 22.1581 16.2864 21.8562 16.015C21.5544 15.7435 21.2053 15.54 20.8296 15.4164C20.4538 15.2928 20.059 15.2516 19.6683 15.2952H19.5539L16.781 15.541C15.4004 15.6617 15.559 17.8478 16.9409 17.7285L17.1229 17.7116H17.1255ZM22.9235 19.294L23.1575 23.9723C23.2316 25.4887 25.2284 25.3693 25.1491 23.853L24.9203 19.1732C24.8462 17.6569 22.8481 17.7776 22.9235 19.294ZM19.3862 25.7232L22.9729 21.4478L24.4835 18.2957L21.89 16.0324L20.98 15.5255L18.5217 18.2241L16.2168 22.0305L19.3862 25.7232ZM9.80127 32.8839L11.6148 35.0433L16.8798 29.6714C18.2422 28.2912 16.3845 26.1711 15.0624 27.5119L9.80127 32.8839ZM23.5384 33.833L23.0964 28.9679C22.9222 26.9461 20.2585 27.2831 20.4327 29.2459L20.8695 34.111L23.5384 33.833ZM30.8392 26.4898C30.5714 26.6807 29.5548 27.7956 29.3754 27.8447C29.2012 27.8938 28.0936 27.6481 27.7361 28.3305C27.7257 28.3459 27.7205 28.3684 27.7062 28.3951L26.6207 27.7731L26.1956 26.5305L25.0828 23.5539C24.4978 22.1779 22.683 23.1046 23.2758 24.4848L23.7568 25.7723L20.9098 23.8796L20.3833 22.7185C19.9855 21.8452 19.2302 21.7034 18.6439 21.9926C18.5256 21.087 17.6754 20.6447 16.9604 20.8483L17.7599 16.9043C18.0589 15.4216 16.1102 14.9414 15.8073 16.4241L15.0819 20.0073L14.9883 19.9483L14.5853 19.6815L14.1875 20.6026L14.8739 21.0603C14.8349 21.2906 14.7699 21.6247 14.6763 22.06L15.9698 22.2902L14.7543 28.089C14.3617 30.0154 16.9604 30.7188 17.3673 28.7349L18.2266 24.5508L20.5367 29.6391C21.3427 31.4054 23.7607 30.1459 22.9313 28.3249L21.7301 25.6726L24.4029 27.4726L25.3649 28.1213L27.3682 29.4734C26.7962 31.5458 25.8212 35.4996 25.8212 35.4996H35.8013L30.8392 26.4884V26.4898Z" fill="url(#paint0_linear_1151_664)"/>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
<defs>
<linearGradient id="paint0_linear_1151_664" x1="22.8013" y1="14.4396" x2="22.8013" y2="35.4996" gradientUnits="userSpaceOnUse">
<stop stop-color="#00E0FF"/>
<stop offset="1" stop-color="#00A0B6"/>
</linearGradient>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 3.1 KiB

18
ruoyi-ui/src/views/JiHeExpressway/images/ListItem/7.svg

@ -0,0 +1,18 @@
<svg width="47" height="48" viewBox="0 0 47 48" fill="none" xmlns="http://www.w3.org/2000/svg">
<g id="Group 1321314622">
<rect id="Rectangle 3696" x="0.5" y="0.5" width="46" height="46" rx="23" fill="#00B3CC" fill-opacity="0.2" stroke="#00B3CC"/>
<g id="Frame 10136">
<g id="Group 1142814077">
<g id="Frame">
<path id="Vector" d="M20.8562 32.6846C20.3947 32.6875 19.9507 32.5146 19.6213 32.2036C19.2918 31.8926 19.1038 31.4688 19.0982 31.0249V28.9883C19.1038 28.5444 19.2918 28.1206 19.6213 27.8096C19.9507 27.4986 20.3947 27.3257 20.8562 27.3286H25.0252C25.9932 27.3286 26.7849 28.0761 26.7849 28.9883V31.0249C26.7793 31.4691 26.591 31.8931 26.2612 32.2041C25.9314 32.5152 25.487 32.6879 25.0252 32.6846H20.8562ZM8.13379 34.7996V33.2687H12.4089V19.6143H10.6051V17.3171H14.6011C16.0376 16.6686 24.5616 12.4307 30.2193 9.59961L31.3603 11.6299L29.1273 12.7463V19.9943H30.283C31.1546 19.9943 31.868 20.6679 31.868 21.4907V23.3247C31.8628 23.7249 31.6932 24.1069 31.3962 24.3872C31.0993 24.6676 30.699 24.8236 30.283 24.821H26.349C25.9327 24.824 25.532 24.6682 25.2347 24.3878C24.9374 24.1074 24.7676 23.7252 24.7624 23.3247V21.4907C24.7624 20.6679 25.4757 19.9943 26.349 19.9943H27.5047V13.5581C15.4107 19.5939 15.2149 19.6143 14.8509 19.6143H14.8443V33.2687H37.5338V34.7996H8.13379ZM34.1663 32.6846H29.9989C29.5371 32.6879 29.0927 32.5152 28.7629 32.2041C28.4331 31.8931 28.2449 31.4691 28.2393 31.0249V28.9883C28.2393 28.0761 29.031 27.3286 29.9989 27.3286H34.1663C35.1343 27.3286 35.9259 28.0761 35.9259 28.9883V31.0249C35.9203 31.4691 35.7321 31.8931 35.4023 32.2041C35.0725 32.5152 34.6281 32.6879 34.1663 32.6846Z" fill="url(#paint0_linear_1151_663)"/>
</g>
</g>
</g>
</g>
<defs>
<linearGradient id="paint0_linear_1151_663" x1="22.8338" y1="12.1196" x2="22.8338" y2="34.7996" gradientUnits="userSpaceOnUse">
<stop stop-color="#00E0FF"/>
<stop offset="1" stop-color="#00A0B6"/>
</linearGradient>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

36
ruoyi-ui/src/views/JiHeExpressway/images/ListItem/8.svg

@ -0,0 +1,36 @@
<svg width="47" height="47" viewBox="0 0 47 47" fill="none" xmlns="http://www.w3.org/2000/svg">
<g id="&#229;&#188;&#130;&#229;&#184;&#184;&#229;&#164;&#169;&#230;&#176;&#148;">
<rect id="Rectangle 3695" x="0.5" y="0.5" width="46" height="46" rx="23" fill="#00B3CC" fill-opacity="0.2" stroke="#00B3CC"/>
<g id="Frame 10084">
<g id="&#233;&#161;&#181;&#233;&#157;&#162;-1">
<g id="&#233;&#166;&#150;&#233;&#161;&#181;-&#229;&#185;&#179;&#233;&#157;&#162;3">
<g id="&#231;&#188;&#150;&#231;&#187;&#132;-16&#229;&#164;&#135;&#228;&#187;&#189;">
<g id="1">
<g id="&#232;&#183;&#175;&#233;&#157;&#162;&#231;&#138;&#182;&#230;&#128;&#129;">
<path id="Vector" d="M31.7805 23.027C32.0948 22.5379 32.3306 22.1465 32.645 21.6574C33.0379 20.9726 33.5881 20.5812 34.2168 20.4834C34.5311 20.3856 34.9241 20.2877 35.1599 19.9942C35.317 19.8964 35.3956 19.7008 35.4742 19.5051C35.5528 19.3094 35.6314 19.0159 35.7886 18.8203C36.1815 17.9398 36.5745 17.0593 36.9674 16.2767C37.046 16.1788 36.9674 15.9832 36.8889 15.8853C36.8103 15.7875 36.7317 15.8853 36.6531 15.9832L36.5745 16.081C36.103 16.7658 35.5528 17.5485 35.0813 18.2333C35.0027 18.3311 34.9241 18.429 34.7669 18.3311C34.6097 18.3311 34.6097 18.2333 34.6883 18.0376C34.7669 17.9398 34.7669 17.842 34.8455 17.7441C35.317 17.0593 35.7886 16.3745 36.2601 15.7875C36.3387 15.6897 36.3387 15.5919 36.2601 15.3962C36.1815 15.2984 36.103 15.2984 36.0244 15.3962C35.8672 15.5919 35.7886 15.7875 35.6314 15.9832C35.2385 16.5702 34.8455 17.0593 34.5311 17.6463C34.4525 17.7441 34.2168 17.842 34.1382 17.7441C34.0596 17.5485 34.1382 17.5485 34.2168 17.3528C34.2168 17.3528 34.2168 17.255 34.2954 17.255C34.6883 16.668 35.1599 16.081 35.5528 15.3962C35.6314 15.2984 35.71 15.2005 35.7886 15.0049C35.7886 14.907 35.71 14.907 35.71 14.8092C35.6314 14.7114 35.5528 14.7114 35.4742 14.8092C35.0027 15.494 34.5311 16.1788 34.1382 16.9615C33.8238 17.4506 33.6666 17.5485 33.5095 17.4506C33.3523 17.4506 33.3523 17.3528 33.4309 17.1572C33.5095 17.0593 33.5881 16.9615 33.5881 16.8637L35.0027 15.1027C35.1599 14.907 35.1599 14.907 35.0027 14.7114C35.0027 14.7114 35.0027 14.6135 34.9241 14.6135C34.8455 14.4179 34.7669 14.4179 34.6097 14.6135C34.6097 14.7114 34.6097 14.8092 34.5311 14.8092C33.6666 15.6897 32.8021 16.4723 31.9377 17.3528C31.8591 17.3528 31.8591 17.4506 31.8591 17.5485C31.8591 18.1355 31.7805 18.6246 31.7805 19.2116C31.7805 19.6029 31.7019 19.8964 31.5447 20.0921C31.2303 20.4834 30.9946 20.9726 30.6802 21.4617C30.9946 22.0487 31.3875 22.5379 31.7805 23.027C31.7805 23.1248 31.7805 23.1248 31.7805 23.027ZM33.3501 27.0335C29.6564 21.4571 28.5561 20.3856 24.8623 14.7114C24.7837 14.7114 24.7837 14.6135 24.7051 14.6135H24.393C24.1572 14.6135 24 14.8092 24 15.1027V17.3528C24 17.4506 24 17.5485 24.0786 17.6463C25.1003 19.1138 26.1219 20.6791 27.1436 22.1465C27.3794 22.5379 27.6938 22.9292 27.9295 23.3205C28.0867 23.2227 28.1653 23.1248 28.3225 23.1248C28.4797 23.027 28.6368 23.027 28.794 23.027C29.0298 23.027 29.1084 23.1248 29.187 23.3205C29.187 23.4183 29.2656 23.4183 29.2656 23.5162C31.1517 26.6468 30.3658 25.1747 32.252 28.3053C32.4092 28.5988 32.645 28.7944 32.8807 28.8923C33.2737 29.0879 33.1404 28.627 33.5333 28.3335C33.7691 27.8443 33.6645 27.4248 33.3501 27.0335Z" fill="url(#paint0_linear_1151_546)"/>
<path id="Vector_2" d="M29.4639 24.7946C29.2851 24.4967 29.1064 24.298 28.8383 24.0001L28.7489 24.0994C26.8722 26.6814 24.9956 29.3626 23.1189 31.9446C23.0295 32.0439 23.0295 32.1432 22.9401 32.2425V32.5404C23.1189 33.2355 23.5657 33.4342 24.1019 33.5335H24.4594C24.7275 33.5335 24.9062 33.3349 24.9956 33.0369C25.7105 31.9446 26.5148 30.8522 27.2297 29.7599C28.1234 28.4689 29.017 27.0786 30.0001 25.7876C30.0894 25.6883 30.0894 25.589 30.0001 25.4897C29.9107 25.2911 29.732 25.0925 29.4639 24.7946ZM20.0804 15.7578C19.0974 14.864 17.7569 14.4668 15.1653 14.4668H9.26709V15.2612C10.965 15.2612 11.1438 15.4599 11.1438 17.2474V30.7529C11.1438 32.6397 10.965 32.739 9.26709 32.739V33.5335H15.2546V32.739C13.1992 32.739 13.1098 32.5404 13.1098 30.7529V24.9932H14.9865C17.3994 24.9932 21.689 24.6953 21.689 19.6307C21.5996 17.9425 21.0634 16.6515 20.0804 15.7578ZM14.9865 24.0001H13.1098V17.0487C13.1098 15.7578 13.1992 15.4599 13.646 15.4599H14.8972C16.5951 15.4599 17.7569 15.7578 18.4718 16.4529C19.1867 17.148 19.5442 18.2404 19.5442 19.5314C19.6336 23.305 17.3101 24.0001 14.9865 24.0001Z" fill="url(#paint1_linear_1151_546)"/>
<g id="Frame">
<path id="Vector_3" d="M34.3727 26.2849C34.5126 26.0353 34.92 26.0353 35.0599 26.2849L38.9999 33.3097C39.0337 33.37 39.0511 33.4377 39.0504 33.5063C39.0498 33.575 39.0311 33.6423 38.9962 33.7021C38.9626 33.7609 38.9135 33.81 38.8539 33.8444C38.7942 33.8787 38.7263 33.8971 38.6569 33.8977H30.777C30.7076 33.8971 30.6396 33.8787 30.58 33.8444C30.5204 33.81 30.4713 33.7609 30.4377 33.7021C30.403 33.6423 30.3845 33.5749 30.3838 33.5063C30.3832 33.4377 30.4004 33.3701 30.434 33.3097L34.3727 26.2849ZM34.7169 31.4977C34.5527 31.4977 34.3953 31.5609 34.2792 31.6734C34.1631 31.7859 34.0978 31.9385 34.0978 32.0977C34.0978 32.2568 34.1631 32.4094 34.2792 32.5219C34.3953 32.6344 34.5527 32.6977 34.7169 32.6977C34.8811 32.6977 35.0386 32.6344 35.1547 32.5219C35.2708 32.4094 35.336 32.2568 35.336 32.0977C35.336 31.9385 35.2708 31.7859 35.1547 31.6734C35.0386 31.5609 34.8811 31.4977 34.7169 31.4977ZM34.7169 28.4977C34.6356 28.4977 34.5551 28.5132 34.48 28.5433C34.4049 28.5735 34.3367 28.6177 34.2792 28.6734C34.2217 28.7291 34.1761 28.7953 34.145 28.868C34.1139 28.9408 34.0978 29.0189 34.0978 29.0977V30.2977C34.0978 30.4568 34.1631 30.6094 34.2792 30.7219C34.3953 30.8344 34.5527 30.8977 34.7169 30.8977C34.8811 30.8977 35.0386 30.8344 35.1547 30.7219C35.2708 30.6094 35.336 30.4568 35.336 30.2977V29.0977C35.336 29.0189 35.32 28.9408 35.2889 28.868C35.2578 28.7953 35.2122 28.7291 35.1547 28.6734C35.0972 28.6177 35.029 28.5735 34.9539 28.5433C34.8788 28.5132 34.7982 28.4977 34.7169 28.4977Z" fill="url(#paint2_linear_1151_546)"/>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
<defs>
<linearGradient id="paint0_linear_1151_546" x1="30.5" y1="15.914" x2="30.5" y2="28.9392" gradientUnits="userSpaceOnUse">
<stop stop-color="#00E0FF"/>
<stop offset="1" stop-color="#00A0B6"/>
</linearGradient>
<linearGradient id="paint1_linear_1151_546" x1="19.6671" y1="16.3735" x2="19.6671" y2="33.5335" gradientUnits="userSpaceOnUse">
<stop stop-color="#00E0FF"/>
<stop offset="1" stop-color="#00A0B6"/>
</linearGradient>
<linearGradient id="paint2_linear_1151_546" x1="34.7171" y1="26.8777" x2="34.7171" y2="33.8977" gradientUnits="userSpaceOnUse">
<stop stop-color="#00E0FF"/>
<stop offset="1" stop-color="#00A0B6"/>
</linearGradient>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 6.5 KiB

31
ruoyi-ui/src/views/JiHeExpressway/images/ListItem/9.svg

@ -0,0 +1,31 @@
<svg width="47" height="47" viewBox="0 0 47 47" fill="none" xmlns="http://www.w3.org/2000/svg">
<g id="Group 1321314621">
<rect id="Rectangle 3697" x="0.5" y="0.5" width="46" height="46" rx="23" fill="#00B3CC" fill-opacity="0.2" stroke="#00B3CC"/>
<g id="Frame 427319034">
<g id="&#233;&#161;&#181;&#233;&#157;&#162;-1">
<g id="&#233;&#166;&#150;&#233;&#161;&#181;-&#229;&#185;&#179;&#233;&#157;&#162;3">
<g id="&#231;&#188;&#150;&#231;&#187;&#132;-16&#229;&#164;&#135;&#228;&#187;&#189;">
<g id="1">
<g id="&#232;&#183;&#175;&#233;&#157;&#162;&#231;&#138;&#182;&#230;&#128;&#129;">
<g id="Frame" clip-path="url(#clip0_1151_651)">
<g id="Frame_2">
<path id="Vector" d="M30.5266 25.9526C30.7505 25.9499 30.9636 26.0409 31.1146 26.2015L31.1605 26.2497L31.2198 26.3059L31.2927 26.3702L31.3736 26.4371C31.6164 26.6325 31.967 26.8547 32.2583 26.8547C32.5497 26.8547 32.8976 26.6352 33.1404 26.4424L33.2213 26.3755L33.3238 26.2872L33.3778 26.2337L33.3967 26.2149C33.5057 26.105 33.6437 26.0277 33.7949 25.9917C33.946 25.9558 34.1043 25.9626 34.2517 26.0115L34.303 26.0302L34.3246 26.0409L35.7812 26.8493L35.7974 26.86C35.9321 26.9558 36.0316 27.0926 36.0808 27.2496C36.1299 27.4066 36.1261 27.5753 36.0698 27.73L36.0536 27.7755C35.9772 27.95 35.9334 28.1368 35.9242 28.3269C35.9242 29.1058 36.5392 29.7402 37.3052 29.7723H37.4239C37.7018 29.7723 37.9229 30.0132 37.9904 30.3746C38.0605 30.7547 38.0983 31.1401 38.101 31.5256C38.0902 31.9164 38.047 32.3018 37.9796 32.6819C37.9095 33.0326 37.7045 33.2628 37.4509 33.2842H37.3511C36.9674 33.287 36.6005 33.4408 36.3309 33.7118C36.0614 33.9828 35.9112 34.3489 35.9134 34.7296C35.9242 34.8903 35.9565 35.0509 36.0105 35.2061L36.0401 35.2811C36.104 35.4319 36.1175 35.599 36.0786 35.7579C36.0398 35.9169 35.9507 36.0593 35.8244 36.1644L35.7839 36.1965L35.7677 36.2072L34.2841 37.0343L34.2679 37.0397C34.1155 37.1016 33.9477 37.1161 33.7868 37.0812C33.6259 37.0463 33.4795 36.9637 33.367 36.8443L33.3481 36.8229L33.2672 36.7426L33.1998 36.6783C32.9543 36.4561 32.5416 36.1537 32.2017 36.1537C31.8672 36.1537 31.4275 36.4722 31.1713 36.7051L31.1012 36.7747C30.9942 36.907 30.8489 37.0035 30.6849 37.0514C30.521 37.0993 30.3461 37.0961 30.184 37.0424L30.1382 37.0236L30.122 37.0183L28.6923 36.2152L28.6762 36.2045C28.5419 36.1084 28.443 35.9714 28.3943 35.8144C28.3456 35.6574 28.3499 35.489 28.4064 35.3346L28.4226 35.2891C28.4984 35.1136 28.5413 34.9258 28.5494 34.735C28.5512 34.3642 28.4085 34.007 28.1511 33.7381C27.8937 33.4693 27.5416 33.3095 27.1683 33.2922H27.0496C26.7718 33.2922 26.5506 33.0513 26.4832 32.69C26.4127 32.3082 26.3721 31.9216 26.3618 31.5336C26.3726 31.1482 26.413 30.7627 26.4832 30.3826C26.5533 30.0293 26.7583 29.8018 27.0118 29.7803H27.1117C27.4954 29.7775 27.8623 29.6237 28.1318 29.3527C28.4014 29.0817 28.5515 28.7157 28.5494 28.3349C28.5408 28.1713 28.5081 28.0099 28.4523 27.8558L28.4226 27.7808C28.3574 27.6302 28.3433 27.4627 28.3822 27.3035C28.4211 27.1442 28.511 27.0018 28.6384 26.8975L28.6789 26.8654L28.695 26.8547L30.2056 26.0195L30.2218 26.0142C30.3184 25.9742 30.4219 25.9533 30.5266 25.9526ZM24.3441 10.0795C24.6759 10.2722 24.951 10.5453 25.1398 10.8772L32.9381 24.6142C32.6876 24.7337 32.4595 24.8949 32.2637 25.0907L32.2907 25.1201C32.0735 24.888 31.8118 24.7012 31.5209 24.5707C31.23 24.4402 30.9158 24.3685 30.5967 24.3599H30.4133L30.3432 24.3653L23.2759 11.9238L11.6446 32.0583H24.7892C24.8161 32.3661 24.8566 32.6739 24.9133 32.9791L24.9267 33.046C25.0114 33.4656 25.2038 33.8565 25.4851 34.1809H11.6473C11.2712 34.1827 10.9013 34.0858 10.575 33.9002C10.2486 33.7146 9.97748 33.4468 9.7889 33.1239C9.60032 32.8009 9.501 32.4343 9.50098 32.0611C9.50095 31.6878 9.60023 31.3212 9.78877 30.9983L21.4309 10.8638C21.5702 10.6224 21.7561 10.4106 21.978 10.2406C22.1999 10.0706 22.4534 9.94571 22.724 9.8731C22.9947 9.80049 23.2771 9.78159 23.5551 9.81747C23.8331 9.85335 24.1012 9.94331 24.3441 10.0822V10.0795ZM30.737 30.0453C30.4455 30.3402 30.2477 30.7135 30.1681 31.1189C30.0885 31.5244 30.1306 31.944 30.2892 32.3259C30.6129 33.1075 31.3709 33.6161 32.2125 33.6161C33.3616 33.6161 34.2949 32.6793 34.2949 31.5229C34.2959 31.1109 34.1744 30.7077 33.9455 30.3639C33.7166 30.0201 33.3906 29.751 33.0082 29.5903C32.6276 29.4324 32.208 29.3914 31.8036 29.4725C31.3993 29.5536 31.0287 29.7532 30.7397 30.0453H30.737ZM23.427 26.7476C23.6376 26.7478 23.8461 26.7891 24.0405 26.8692C24.235 26.9494 24.4117 27.0667 24.5605 27.2146C24.7093 27.3625 24.8273 27.538 24.9077 27.7312C24.9881 27.9243 25.0294 28.1313 25.0292 28.3403C25.0291 28.5492 24.9874 28.7561 24.9067 28.9491C24.8259 29.1421 24.7076 29.3175 24.5586 29.4651C24.4096 29.6127 24.2327 29.7298 24.0381 29.8096C23.8434 29.8894 23.6349 29.9304 23.4243 29.9302C22.999 29.9299 22.5912 29.7619 22.2907 29.4632C21.9902 29.1645 21.8216 28.7596 21.822 28.3376C21.8224 27.9155 21.9917 27.5109 22.2926 27.2127C22.5936 26.9146 23.0017 26.7472 23.427 26.7476ZM23.2921 16.9239C23.5735 16.9242 23.8516 16.9848 24.1072 17.1015C24.3628 17.2183 24.59 17.3885 24.7731 17.6006C24.9563 17.8126 25.0911 18.0614 25.1684 18.3299C25.2457 18.5984 25.2635 18.8803 25.2208 19.1564L24.2955 25.2326C24.2774 25.3584 24.2143 25.4736 24.1178 25.5571C24.0212 25.6406 23.8976 25.687 23.7695 25.6876H22.82C22.6915 25.6876 22.5672 25.6416 22.4701 25.558C22.373 25.4744 22.3095 25.3589 22.2914 25.2326L21.3661 19.1564C21.3243 18.8806 21.3428 18.5991 21.4204 18.3311C21.498 18.0631 21.633 17.8149 21.816 17.6033C21.999 17.3917 22.2259 17.2217 22.481 17.1049C22.7362 16.9882 23.0138 16.9274 23.2948 16.9266L23.2921 16.9239Z" fill="url(#paint0_linear_1151_651)"/>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
<defs>
<linearGradient id="paint0_linear_1151_651" x1="23.801" y1="12.5298" x2="23.801" y2="37.0998" gradientUnits="userSpaceOnUse">
<stop stop-color="#00E0FF"/>
<stop offset="1" stop-color="#00A0B6"/>
</linearGradient>
<clipPath id="clip0_1151_651">
<rect width="33.5719" height="33.5719" fill="white" transform="translate(7.01465 9.56836)"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 5.8 KiB

5
ruoyi-ui/src/views/JiHeExpressway/images/layer/路测设备/远端机.svg

@ -0,0 +1,5 @@
<svg width="21" height="19" viewBox="0 0 21 19" fill="none" xmlns="http://www.w3.org/2000/svg">
<g id="Group 1142815835">
<path id="Vector" d="M20.6037 11.8437C20.6037 11.8079 20.6037 11.7722 20.5903 11.7364L18.8482 2.20744C18.7812 1.84965 18.5936 1.49187 18.3256 1.25335C18.0308 0.990976 17.6422 0.835938 17.1866 0.835938H3.7329C3.27729 0.835938 2.84849 1.0029 2.54028 1.26528C2.24548 1.52765 2.07128 1.88543 2.05788 2.26707L0.315863 11.6648C0.302463 11.7244 0.289062 11.7841 0.289062 11.8318M3.6123 2.43403C3.6257 2.39825 3.6257 2.36248 3.6257 2.31477C3.6257 2.29092 3.6391 2.26707 3.6525 2.25514C3.6793 2.23129 3.7061 2.21936 3.7329 2.21936H17.1732C17.1866 2.21936 17.2 2.21936 17.2 2.24321C17.2536 2.29092 17.2804 2.36248 17.2938 2.44596L18.4194 8.54018C18.3658 8.52826 18.3256 8.52826 18.272 8.52826H2.63409C2.59388 8.52826 2.54028 8.52826 2.48668 8.54018L3.6123 2.43403ZM2.32588 9.42271C2.40628 9.37501 2.52688 9.33923 2.63409 9.33923H18.2854C18.3926 9.33923 18.4998 9.36308 18.5936 9.42271L18.8348 10.7227H2.09808L2.32588 9.42271ZM20.1213 18.2599H0.784868C0.516865 18.2599 0.289062 18.0691 0.289062 17.8187V15.8866C0.289062 15.6481 0.503465 15.4454 0.784868 15.4454H20.1213C20.3893 15.4454 20.6171 15.6362 20.6171 15.8866V17.8306C20.6171 18.0691 20.4027 18.2599 20.1213 18.2599ZM20.1079 12.2253H0.811668C0.530265 12.2253 0.302463 12.4281 0.302463 12.6785V14.5748C0.302463 14.8252 0.530265 15.028 0.811668 15.028H20.0945C20.3759 15.028 20.6037 14.8252 20.6037 14.5748V12.6785C20.6171 12.44 20.3893 12.2253 20.1079 12.2253ZM4.67091 14.4674C4.67091 14.6106 4.5503 14.7179 4.3895 14.7179C4.2287 14.7179 4.1081 14.6106 4.1081 14.4674V12.8932C4.1081 12.7501 4.2287 12.6428 4.3895 12.6428C4.5503 12.6428 4.67091 12.7501 4.67091 12.8932V14.4674ZM5.85012 14.4674C5.85012 14.6106 5.72952 14.7179 5.56871 14.7179C5.40791 14.7179 5.28731 14.6106 5.28731 14.4674V12.8932C5.28731 12.7501 5.40791 12.6428 5.56871 12.6428C5.72952 12.6428 5.85012 12.7501 5.85012 12.8932V14.4674ZM7.02933 14.4674C7.02933 14.6106 6.90873 14.7179 6.74793 14.7179C6.58712 14.7179 6.46652 14.6106 6.46652 14.4674V12.8932C6.46652 12.7501 6.58712 12.6428 6.74793 12.6428C6.90873 12.6428 7.02933 12.7501 7.02933 12.8932V14.4674ZM16.8784 14.5867C16.2888 14.5867 15.8064 14.1574 15.8064 13.6326C15.8064 13.1079 16.2888 12.6785 16.8784 12.6785C17.468 12.6785 17.9504 13.1079 17.9504 13.6326C17.9504 14.1574 17.4814 14.5867 16.8784 14.5867Z" fill="#0FD4FF"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

3
ruoyi-ui/src/views/JiHeExpressway/images/layer/路测设备/远端机_active.svg

@ -0,0 +1,3 @@
<svg width="22" height="18" viewBox="0 0 22 18" fill="none" xmlns="http://www.w3.org/2000/svg">
<path id="Vector" d="M21.2267 11.0922C21.2267 11.0565 21.2267 11.0207 21.2133 10.9849L19.4713 1.45597C19.4043 1.09819 19.2167 0.740407 18.9487 0.501885C18.6539 0.239512 18.2653 0.0844727 17.8097 0.0844727H4.35594C3.90034 0.0844727 3.47153 0.251438 3.16333 0.513812C2.86853 0.776185 2.69433 1.13397 2.68093 1.5156L0.93891 10.9134C0.92551 10.973 0.912109 11.0326 0.912109 11.0803M4.23534 1.68257C4.24874 1.64679 4.24874 1.61101 4.24874 1.56331C4.24874 1.53945 4.26214 1.5156 4.27554 1.50368C4.30234 1.47982 4.32914 1.4679 4.35594 1.4679H17.7963C17.8097 1.4679 17.8231 1.4679 17.8231 1.49175C17.8767 1.53945 17.9035 1.61101 17.9169 1.69449L19.0425 7.78872C18.9889 7.77679 18.9487 7.77679 18.8951 7.77679H3.25713C3.21693 7.77679 3.16333 7.77679 3.10973 7.78872L4.23534 1.68257ZM2.94893 8.67125C3.02933 8.62354 3.14993 8.58777 3.25713 8.58777H18.9085C19.0157 8.58777 19.1229 8.61162 19.2167 8.67125L19.4579 9.97119H2.72113L2.94893 8.67125ZM20.7443 17.5085H1.40791C1.13991 17.5085 0.912109 17.3177 0.912109 17.0672V15.1352C0.912109 14.8967 1.12651 14.6939 1.40791 14.6939H20.7443C21.0123 14.6939 21.2401 14.8847 21.2401 15.1352V17.0791C21.2401 17.3177 21.0257 17.5085 20.7443 17.5085ZM20.7309 11.4739H1.43471C1.15331 11.4739 0.92551 11.6766 0.92551 11.9271V13.8233C0.92551 14.0738 1.15331 14.2765 1.43471 14.2765H20.7175C20.9989 14.2765 21.2267 14.0738 21.2267 13.8233V11.9271C21.2401 11.6885 21.0123 11.4739 20.7309 11.4739ZM5.29395 13.716C5.29395 13.8591 5.17335 13.9664 5.01255 13.9664C4.85175 13.9664 4.73115 13.8591 4.73115 13.716V12.1417C4.73115 11.9986 4.85175 11.8913 5.01255 11.8913C5.17335 11.8913 5.29395 11.9986 5.29395 12.1417V13.716ZM6.47316 13.716C6.47316 13.8591 6.35256 13.9664 6.19176 13.9664C6.03096 13.9664 5.91036 13.8591 5.91036 13.716V12.1417C5.91036 11.9986 6.03096 11.8913 6.19176 11.8913C6.35256 11.8913 6.47316 11.9986 6.47316 12.1417V13.716ZM7.65238 13.716C7.65238 13.8591 7.53177 13.9664 7.37097 13.9664C7.21017 13.9664 7.08957 13.8591 7.08957 13.716V12.1417C7.08957 11.9986 7.21017 11.8913 7.37097 11.8913C7.53177 11.8913 7.65238 11.9986 7.65238 12.1417V13.716ZM17.5015 13.8352C16.9119 13.8352 16.4295 13.4059 16.4295 12.8812C16.4295 12.3564 16.9119 11.9271 17.5015 11.9271C18.0911 11.9271 18.5735 12.3564 18.5735 12.8812C18.5735 13.4059 18.1045 13.8352 17.5015 13.8352Z" fill="#FFDB82"/>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

3
ruoyi-ui/src/views/JiHeExpressway/images/layer/路测设备/远端机_fault.svg

@ -0,0 +1,3 @@
<svg width="21" height="18" viewBox="0 0 21 18" fill="none" xmlns="http://www.w3.org/2000/svg">
<path id="Vector" d="M20.9533 11.0922C20.9533 11.0565 20.9533 11.0207 20.9399 10.9849L19.1979 1.45597C19.1309 1.09819 18.9433 0.740407 18.6752 0.501885C18.3804 0.239512 17.9918 0.0844727 17.5362 0.0844727H4.08251C3.6269 0.0844727 3.1981 0.251438 2.88989 0.513812C2.59509 0.776185 2.42089 1.13397 2.40749 1.5156L0.665472 10.9134C0.652072 10.973 0.638672 11.0326 0.638672 11.0803M3.9619 1.68257C3.9753 1.64679 3.9753 1.61101 3.9753 1.56331C3.9753 1.53945 3.9887 1.5156 4.0021 1.50368C4.0289 1.47982 4.05571 1.4679 4.08251 1.4679H17.5228C17.5362 1.4679 17.5496 1.4679 17.5496 1.49175C17.6032 1.53945 17.63 1.61101 17.6434 1.69449L18.769 7.78872C18.7154 7.77679 18.6752 7.77679 18.6216 7.77679H2.98369C2.94349 7.77679 2.88989 7.77679 2.83629 7.78872L3.9619 1.68257ZM2.67549 8.67125C2.75589 8.62354 2.87649 8.58777 2.98369 8.58777H18.635C18.7422 8.58777 18.8494 8.61162 18.9433 8.67125L19.1845 9.97119H2.44769L2.67549 8.67125ZM20.4709 17.5085H1.13448C0.866474 17.5085 0.638672 17.3177 0.638672 17.0672V15.1352C0.638672 14.8967 0.853074 14.6939 1.13448 14.6939H20.4709C20.7389 14.6939 20.9667 14.8847 20.9667 15.1352V17.0791C20.9667 17.3177 20.7523 17.5085 20.4709 17.5085ZM20.4575 11.4739H1.16128C0.879874 11.4739 0.652072 11.6766 0.652072 11.9271V13.8233C0.652072 14.0738 0.879874 14.2765 1.16128 14.2765H20.4441C20.7255 14.2765 20.9533 14.0738 20.9533 13.8233V11.9271C20.9667 11.6885 20.7389 11.4739 20.4575 11.4739ZM5.02051 13.716C5.02051 13.8591 4.89991 13.9664 4.73911 13.9664C4.57831 13.9664 4.45771 13.8591 4.45771 13.716V12.1417C4.45771 11.9986 4.57831 11.8913 4.73911 11.8913C4.89991 11.8913 5.02051 11.9986 5.02051 12.1417V13.716ZM6.19973 13.716C6.19973 13.8591 6.07912 13.9664 5.91832 13.9664C5.75752 13.9664 5.63692 13.8591 5.63692 13.716V12.1417C5.63692 11.9986 5.75752 11.8913 5.91832 11.8913C6.07912 11.8913 6.19973 11.9986 6.19973 12.1417V13.716ZM7.37894 13.716C7.37894 13.8591 7.25834 13.9664 7.09754 13.9664C6.93673 13.9664 6.81613 13.8591 6.81613 13.716V12.1417C6.81613 11.9986 6.93673 11.8913 7.09754 11.8913C7.25834 11.8913 7.37894 11.9986 7.37894 12.1417V13.716ZM17.228 13.8352C16.6384 13.8352 16.156 13.4059 16.156 12.8812C16.156 12.3564 16.6384 11.9271 17.228 11.9271C17.8176 11.9271 18.3 12.3564 18.3 12.8812C18.3 13.4059 17.831 13.8352 17.228 13.8352Z" fill="#FF5F5F"/>
</svg>

After

Width:  |  Height:  |  Size: 2.3 KiB

55
ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/Dialogs/RemoteMachine/components/DeviceControlDialog.vue

@ -0,0 +1,55 @@
<template>
<Dialog v-model="modelVisible" title="设备操作" width="600px">
<div class="DeviceControlDialog">
<DeviceParams :dialogData="dialogData" />
</div>
</Dialog>
</template>
<script>
import Dialog from "@screen/components/Dialog/index.vue";
import DeviceParams from "./DeviceParams.vue";
export default {
name: "DeviceControlDialog",
components: {
Dialog,
DeviceParams,
},
model: {
prop: "visible",
event: "update:value",
},
props: {
visible: Boolean,
dialogData: {
type: Object,
default: () => ({}),
},
},
computed: {
modelVisible: {
get() {
return this.visible;
},
set(val) {
this.$emit("update:value", val);
},
},
},
};
</script>
<style lang="scss" scoped>
.DeviceControlDialog {
width: 510px;
display: flex;
flex-direction: column;
gap: 15px;
min-height: 360px;
.tips {
font-size: 12px;
}
}
</style>

199
ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/Dialogs/RemoteMachine/components/DeviceParams.vue

@ -0,0 +1,199 @@
<template>
<div class='DeviceParams'>
<div class="no-data" v-if="!devicesList.length" v-loading="secondLoading">暂无设备参数</div>
<Descriptions :list="devicesList" style="gap: 18px;" column="5">
<template v-for="item in devicesList.slice(0, -1)" #[`content-${getSlotKey(item.key)}`]="{ data }">
<span>{{ data.text }}</span>
<Switcher v-if="!disabled" class="switcher" :activeOption="activeOption" :value="data.state"
@change="(value) => handleSwitcherChange(value, data)" />
<ElTag style="margin-left: 20px;" v-else effect="dark" :type="data.state ? '' : 'info'">{{ data.state ? '开' :
'关' }}
</ElTag>
</template>
</Descriptions>
</div>
</template>
<script>
import Descriptions from '@screen/components/Descriptions.vue';
import Switcher from '@screen/pages/service/PublishingChannelManagement/components/Switcher.vue';
import request from "@/utils/request";
import { Message } from 'element-ui';
import { confirm } from "@screen/utils/common";
export default {
name: 'DeviceParams',
components: {
Descriptions,
Switcher
},
props: {
dialogData: {
type: Object,
default: () => ({})
},
disabled: Boolean
},
data() {
return {
secondLoading: true,
devicesList: [],
activeOption: {
active: {
text: "开"
},
unActive: {
text: "关"
}
}
}
},
created() {
Promise.all([this.getAc(), this.getDc()]).then(res => {
// if (result.code != 200) return;
let ac = res[0].data;
let dc = res[1].data;
let deviceInfo = _.merge({}, ac, dc);
const typeMap = {
ac: '220v',
dc: '12v',
}
for (const key in deviceInfo.formatValue) {
// electricity
// voltage
if (key.includes('electricity')) {
const args = key.match(/[a-z]+|[0-9]+$/g);
const type = args[0], num = args.slice(-1)[0], prefix = args.slice(0, 2).join('_');
// console.log(type , num , prefix , "+++=========="); //dc 2 dc_out
this.devicesList.push(
{
label: `支路${num}${typeMap[type]}) 电压`,
key: `${prefix}_voltage_${num}`,
text: deviceInfo.formatValue[`${prefix}_voltage_${num}`],
gridColumn: 3
},
{
label: '电流',
key: `${prefix}_electricity_${num}`,
text: deviceInfo.formatValue[key],
gridColumn: 2,
state: deviceInfo.value[key] > 0
}
);
}
}
this.devicesList.push(
{
label: '风扇',
key: `fan_status`,
// key: `aa_electricity_1`,
text: { 0: '正常', 1: '开' }[deviceInfo.formatValue['fan_status']] || '-',
gridColumn: 2,
state: (deviceInfo.formatValue['fan_status'] === '0')
},
{
label: '温度',
key: `temperature`,
text: deviceInfo.formatValue['temperature'] ? `${deviceInfo.formatValue['temperature']} °C` : '-',
gridColumn: 2
},
{
label: '箱门',
key: `door_status`,
text: { 0: '关闭', 1: '打开' }[deviceInfo.formatValue['door_status']] || '-',
gridColumn: 1
},
{
label: '湿度',
key: `humidity`,
text: deviceInfo.formatValue['humidity'] ? `${deviceInfo.formatValue['humidity']} %` : '-',
gridColumn: 2
},
{
label: '市电掉电',
key: `power_status`,
text: { 0: '正常', 1: '掉电' }[deviceInfo.formatValue['power_status']] || '-',
gridColumn: 2
},
)
// this.data = result.rows;
// this.total = result.total;
})
.finally(() => {
this.secondLoading = false
})
},
methods: {
getAc() {
return request({
url: `/business/device/properties/latest/${this.dialogData.iotDeviceId || '10.0.36.143-1883'}/1ac`,
method: "get",
params: {}
})
},
getDc() {
return request({
url: `/business/device/properties/latest/${this.dialogData.iotDeviceId || '10.0.36.143-1883'}/1dc`,
method: "get",
params: {}
})
},
async handleSwitcherChange(value, data) {
let str = data.state ? "关闭" : "开启";
let deviceName = "";
if (data.key.includes("fan")) {
str += "风扇?";
deviceName = "fan_out_en";
} else {
str += "该支路?"
deviceName = data.key.match(/^[a-z]+_out|[0-9]+/g).join("_") + "_en"; //dc_out_2_en ac_out_2_en;
}
data.state = value;
const isContinue = await confirm({ message: `${str}` })
.catch(() => {
data.state = !value;
});
if (!isContinue) return;
// https://www.yuque.com/dayuanzhong-ovjwn/gkht0m/ww776d5kzs72ilzh?singleDoc=
request({
url: `/business/device/functions/${this.dialogData.iotDeviceId}/${102}`,
method: "POST",
data: {
deviceName,
// 1=0=
value: value ? 1 : 0
}
})
.then(result => {
if (result.code != 200) {
Message.error("操作失败");
data.state = !value;
return;
};
Message.success("操作成功");
})
.catch(() => {
data.state = !value;
Message.error("操作失败");
})
},
getSlotKey(key) {
return key.includes('electricity') || key.includes('fan') ? key : ''
}
}
}
</script>
<style lang='scss' scoped>
.DeviceParams {
height: 100%;
}
</style>

166
ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/Dialogs/RemoteMachine/components/DeviceParamsMulti.vue

@ -0,0 +1,166 @@
<template>
<div class='DeviceParams'>
<div class="no-data" v-if="!devicesList.length" v-loading="secondLoading">暂无设备参数</div>
<Descriptions :list="devicesList" style="gap: 18px;" column="5">
<template v-for="item in devicesList" #[`content-${item.key}`]="{ data }">
<span style="font-size: 15px;font-weight: 400;color: #3de8ff;">{{ data.text }}</span>
<Switcher v-if="!disabled" class="switcher" :activeOption="activeOption" :value="data.state"
@change="(value) => handleSwitcherChange(value, data)" />
<ElTag style="margin-left: 20px;" v-else effect="dark" :type="data.state ? '' : 'info'">{{ data.state ? '开' :
'关' }}
</ElTag>
</template>
</Descriptions>
</div>
</template>
<script>
import Descriptions from '@screen/components/Descriptions.vue';
import Switcher from '@screen/pages/service/PublishingChannelManagement/components/Switcher.vue';
import { cloneDeep } from 'lodash';
import request from "@/utils/request";
import { Message } from 'element-ui';
import { confirm } from "@screen/utils/common";
import { batchFunctions } from "@screen/pages/Home/components/RoadAndEvents/utils/httpList.js";
import { multiResultShow } from "@screen/utils/common";
export default {
name: 'DeviceParams',
components: {
Descriptions,
Switcher
},
props: {
dialogData: {
type: Object,
default: () => ({})
},
disabled: Boolean,
isMultiControl: Boolean,
selectItems: {
type: Array,
default: () => []
}
},
data() {
return {
secondLoading: true,
devicesList: [
{
labelHidden: true,
text: `支路1 (220v): `,
key: `ac_out_1_en`,
// text: deviceInfo.formatValue[`${prefix}_voltage_${num}`],
gridColumn: 1,
state: 0
},
{
labelHidden: true,
text: `支路2 (220v): `,
key: `ac_out_2_en`,
// text: deviceInfo.formatValue[`${prefix}_voltage_${num}`],
gridColumn: 1,
state: 0
},
{
labelHidden: true,
text: `支路1 (12v): `,
key: `dc_out_1_en`,
// text: deviceInfo.formatValue[`${prefix}_voltage_${num}`],
gridColumn: 1,
state: 0
},
{
labelHidden: true,
text: `支路2 (12v): `,
key: `dc_out_2_en`,
// text: deviceInfo.formatValue[`${prefix}_voltage_${num}`],
gridColumn: 1,
state: 0
},
{
labelHidden: true,
text: '风扇:',
key: `fan_out_en`,
// text: { 0: '', 1: '' }[deviceInfo.formatValue['fan_status']] || '-',
gridColumn: 1,
state: 0
},
],
activeOption: {
active: {
text: "开"
},
unActive: {
text: "关"
}
}
}
},
created() {
},
methods: {
async handleSwitcherChange(value, data) {
let str = data.state ? "关闭" : "开启";
let deviceName = data.key;
str += `${data.text.replace(":", "")}?`;
// if (data.key.includes("fan")) {
// str += "?";
// deviceName = "fan_out_en";
// } else {
// str += "?"
// deviceName = data.key.match(/^[a-z]+_out|[0-9]+/g).join("_") + "_en"; //dc_out_2_en ac_out_2_en;
// }
data.state = value;
if (!this.selectItems.length) {
setTimeout(() => { data.state = !value; }, 10);
return Message.error("请至少选择一个设备!");
}
const selectItems = this.selectItems.map(item => JSON.parse(item));
const isContinue = await confirm({ message: `${str}` })
.catch(() => {
data.state = !value;
});
if (!isContinue) return;
batchFunctions(
{
"devices": selectItems,
"functions": [
{
"functionId": "102",
"params": {
deviceName,
// 1=0=
value: value ? 1 : 0
}
}
]
})
.then(result => {
multiResultShow(result.data, item => item.result.code == 200, "操作");
})
.catch(() => {
data.state = !value;
Message.error("操作失败");
})
},
getSlotKey(key) {
return key.includes('electricity') || key.includes('fan') ? key : ''
}
}
}
</script>
<style lang='scss' scoped>
.DeviceParams {
height: 100%;
padding-right: 9px;
padding-left: 14px;
margin-top: 15px;
}
</style>

195
ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/Dialogs/RemoteMachine/index.vue

@ -0,0 +1,195 @@
<template>
<Dialog v-model="obverseVisible" title="远端机" width="600px">
<Video class="video-stream" :pileNum="dialogData.stakeMark" />
<div class="RemoteMachine">
<ElTabs v-model="activeName" class="tabs">
<ElTabPane label="基本信息" name="first">
<!-- {{ dialogData }} -->
<Descriptions :list="list" :data="data" style="gap: 18px" />
</ElTabPane>
<ElTabPane label="设备参数" name="second">
<DeviceParams disabled :dialogData="dialogData" />
</ElTabPane>
<ElTabPane label="在线率统计" name="third">
<LineChart v-if="activeName === 'third'" :productId="dialogData.id" style="height: 180px" />
</ElTabPane>
</ElTabs>
</div>
<template #footer>
<Button v-if="activeName != 'first' && data.deviceState == '1'" @click.native="deviceControlVisible = true">
设备操作
</Button>
<Button v-else-if="activeName != 'first'" style="background-color: #bbb">
设备离线
</Button>
</template>
<DeviceControlDialog v-model="deviceControlVisible" :dialogData="dialogData" />
</Dialog>
</template>
<script>
import Dialog from "@screen/components/Dialog/index.vue";
import Button from "@screen/components/Buttons/Button.vue";
import Descriptions from "@screen/components/Descriptions.vue";
import Video from "@screen/components/Video";
import LineChart from "../../LineChart/index.vue";
import DeviceParams from "./components/DeviceParams.vue";
import DeviceControlDialog from "./components/DeviceControlDialog.vue";
import request from "@/utils/request";
import {
getRoadInfoByStakeMark,
getProduct,
} from "@screen/pages/Home/components/RoadAndEvents/utils/httpList.js";
import { dialogDelayVisible } from "./../mixin";
// 广
export default {
name: "RemoteMachine",
mixins: [dialogDelayVisible],
components: {
Dialog,
Descriptions,
LineChart,
Video,
Button,
DeviceParams,
DeviceControlDialog,
},
data() {
return {
activeName: "first",
releaseVisible: false,
deviceControlVisible: false,
data: {
deviceName: "LH24",
roadName: "G35济泽高速",
stakeMark: "k094+079",
direction: "1",
organizationName: "山东高速济南发展公司",
brand: "XXX厂家",
deviceState: "0",
},
list: [
{
label: "设备名称",
key: "deviceName",
},
{
label: "设备桩号",
key: "stakeMark",
},
{
label: "道路名称",
key: "roadName",
},
{
label: "设备方向",
key: "direction",
enum: "CameraDirectionEnum",
},
{
label: "设备状态",
key: "deviceState",
// enum: "DeviceTypeEnum",
visible: false,
},
{
label: "设备状态",
key: "deviceStateLiteral",
// enum: "DeviceTypeEnum",
},
{
label: "设备厂商",
key: "manufacturer",
},
],
};
},
async created() {
if (this.dialogData) {
this.data = {
...this.dialogData,
}
}
let deviceInfo = await this.getDeviceInfo();
this.data = {
roadName: null,
deviceStateLiteral: deviceInfo?.data.formatValue.deviceState,
...this.data
};
getProduct(this.dialogData.productId).then((data) => {
this.dialogData.brand = data.brand;
});
const roadInfo = await getRoadInfoByStakeMark(this.dialogData.stakeMark);
if (roadInfo) this.data.roadName = roadInfo.roadName;
console.log('this.data', this.data)
},
methods: {
async getDeviceInfo() {
return request({
url: `/business/device/properties/latest/${this.dialogData.iotDeviceId || "10.0.36.143-1883"
}/3`,
method: "get",
params: {},
});
},
},
};
</script>
<style lang="scss">
div.switcher {
font-size: 12px;
padding: 2px;
}
</style>
<style lang="scss" scoped>
.RemoteMachine {
width: 510px;
// height: 240px;
color: #fff;
display: flex;
flex-direction: column;
.camera-video {
flex: 1.5;
}
.tabs {
flex: 1;
display: flex;
flex-direction: column;
::v-deep {
.el-tabs__content {
flex: 1;
.el-tab-pane {
height: 100%;
}
}
}
}
.bottom {
margin-top: 12px;
display: flex;
gap: 9px;
align-items: center;
justify-content: end;
>div {
font-size: 16px;
padding: 6px 12px;
}
}
}
</style>

33
ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/Dialogs/SmartDevice/index.vue

@ -12,19 +12,12 @@
<DeviceParams disabled :dialogData="dialogData" />
</ElTabPane>
<ElTabPane label="在线率统计" name="third">
<LineChart
v-if="activeName === 'third'"
:productId="dialogData.id"
style="height: 180px"
/>
<LineChart v-if="activeName === 'third'" :productId="dialogData.id" style="height: 180px" />
</ElTabPane>
</ElTabs>
</div>
<template #footer>
<Button
v-if="activeName != 'first' && data.deviceState == '1'"
@click.native="deviceControlVisible = true"
>
<Button v-if="activeName != 'first' && data.deviceState == '1'" @click.native="deviceControlVisible = true">
设备操作
</Button>
<Button v-else-if="activeName != 'first'" style="background-color: #bbb">
@ -32,10 +25,7 @@
</Button>
</template>
<DeviceControlDialog
v-model="deviceControlVisible"
:dialogData="dialogData"
/>
<DeviceControlDialog v-model="deviceControlVisible" :dialogData="dialogData" />
</Dialog>
</template>
@ -122,12 +112,16 @@ export default {
},
async created() {
// if (!this.dialogData.iotDeviceId) this.dialogData.iotDeviceId = '10.0.36.146-1883';
if(this.dialogData){
this.data = {
...this.dialogData,
}
}
let deviceInfo = await this.getDeviceInfo();
this.data = {
...this.dialogData,
roadName: null,
deviceStateLiteral: deviceInfo.data.formatValue.deviceState,
deviceStateLiteral: deviceInfo?.data.formatValue.deviceState,
...this.data
};
// console.log(
@ -148,9 +142,8 @@ export default {
methods: {
async getDeviceInfo() {
return request({
url: `/business/device/properties/latest/${
this.dialogData.iotDeviceId || "10.0.36.143-1883"
}/3`,
url: `/business/device/properties/latest/${this.dialogData.iotDeviceId || "10.0.36.143-1883"
}/3`,
method: "get",
params: {},
});
@ -200,7 +193,7 @@ div.switcher {
align-items: center;
justify-content: end;
> div {
>div {
font-size: 16px;
padding: 6px 12px;
}

2
ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/Dialogs/TrafficIncidents/index.vue

@ -161,7 +161,7 @@ export default {
// this.$emit('traffic-relieve', this.data);
// });
request({
url: `dc/system/event/${this.data.eventType}/${this.dialogData.id}`,
url: `dc/system/event/${this.dialogData.id}`,
method: "delete",
}).then((result) => {
if (result.code == 200) Message.success("成功!");

10
ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/HomeFilter/index.vue

@ -110,7 +110,8 @@ export default {
this.formList[2].options.options = options;
},
immediate: true,
deep: true
deep: true,
isButtonClick: false
}
},
methods: {
@ -126,6 +127,13 @@ export default {
this.$parent.$refs.RoadAndEventsRef?.setFilterDataNoAction?.(data);
},
async handleResetForm() {
if(this.isButtonClick){return}
this.isButtonClick = true;
setTimeout(() => {
this.isButtonClick = false;
}, 500);
this.$refs.FormConfigRef?.reset();
this.activeIcon = "filter";
this.filterEnd(initSearch);

46
ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/HomeFrameControl/index.vue

@ -1,13 +1,18 @@
<template>
<div class="HomeFrameControl">
<ElPopover trigger="manual" :value="activeIcon === 'FrameControl'" :visibleArrow="false" placement="left"
popper-class="global-input-search-popover">
<Button :class="['btn', { 'btn-active': activeIcon }]" slot="reference"
@click.native="handleClick('FrameControl')">
<img src="@screen/images/home-FrameControl/FrameControl.svg" />
</Button>
popper-class="global-input-search-popover" @hide="onHide()">
<el-tooltip slot="reference" effect="light" content="批量控制" placement="left">
<Button :class="['btn', { 'btn-active': activeIcon }]"
@click.native="handleClick('FrameControl')">
<img src="@screen/images/home-FrameControl/FrameControl.svg" />
</Button>
</el-tooltip>
<el-tabs v-model="tabAction" @tab-click="tabClick">
<el-tab-pane label="批量管控" name="1"></el-tab-pane>
<el-tab-pane label="批量管控" name="1">{{ }}</el-tab-pane>
<el-tab-pane label="定时管控" name="2"></el-tab-pane>
<el-tab-pane label="管控记录" name="3"></el-tab-pane>
</el-tabs>
@ -31,7 +36,7 @@
<div v-if="tabAction === '2'" style="width:70vw;height: 500px; overflow-y:auto" class="cardPanel">
<Empty v-if="!data.length" class="no-data" style="position: absolute">暂无数据</Empty>
<template v-else>
<div class="cardBox" v-for="(item, index) in data" :key="index">
<div class="cardBox" v-for="(item, index) in data2" :key="index">
<Card :buttonIcon="null" :keyMap="keyMap" :cardData="item" class="card" buttonText="详情">
<template #form-remark="{ data }">
<div class="remark">
@ -322,22 +327,6 @@ export default {
return true;
},
},
// {
// label: ":",
// key: "controlOp",
// type: "select",
// default: null,
// options: {
// clearable: true,
// options: [{
// label: "线",
// value: "1"
// }, {
// label: "线",
// value: "0"
// }]
// },
// },
],
DeviceTopics,
componentMap,
@ -353,6 +342,7 @@ export default {
label: "描述",
},
],
data2:[], //
dataRecord:{
operType: "0",
operTime:[]
@ -417,6 +407,10 @@ export default {
changeHandle(this.data, this.formList);
},
methods: {
onHide(){
this.data['deviceType']=deviceTypeDefault;
changeHandle(this.data, this.formList);
},
submitClick() {
this.$refs.ControlComponent?.handleSubmit();
},
@ -429,6 +423,9 @@ export default {
} else if(this.tabAction === '3'){
this.dataRecord.operTime = [moment().startOf('month').format('YYYY-MM-DD 00:00:00'),moment().endOf('month').format('YYYY-MM-DD 23:59:59'),]
this.bindRecord();
} else if(this.tabAction === '1'){
// this.data['deviceType']=deviceTypeDefault;
// changeHandle(this.data, this.formList);
}
},
handleClick(type) {
@ -466,7 +463,7 @@ export default {
.then((result) => {
if (result.code != 200) return;
this.tableTotal = result.total;
this.data = result.rows;
this.data2 = result.rows;
})
.finally(() => {
});
@ -487,7 +484,6 @@ export default {
e.operTime = moment(e.operTime).format('YYYY-MM-DD HH:mm:ss')
e.operType = _.find(this.Enum_ControlType,{key:e.operType}).label
});
console.log(result.rows)
this.tableData = result.rows;
this.tableTotal = result.total;
})

8
ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/RoadAndEvents/index.vue

@ -47,6 +47,7 @@ import TrafficIncidents from "./../Dialogs/TrafficIncidents/index.vue";
import PerceiveEvent from "./../Dialogs/PerceiveEvent/index.vue";
import RoadNetworkFacilities from "./../Dialogs/RoadNetworkFacilities/index.vue";
import SmartDevice from "./../Dialogs/SmartDevice/index.vue";
import RemoteMachine from "./../Dialogs/RemoteMachine/index.vue";
import SolarEnergy from "./../Dialogs/SolarEnergy/index.vue";
import Intermodulation from "./../Dialogs/Intermodulation/index.vue";
import GuardrailCollision from "./../Dialogs/GuardrailCollision/index.vue";
@ -71,7 +72,8 @@ export default {
Intermodulation,
GuardrailCollision,
FatigueWakesUp,
RoadNetworkFacilities
RoadNetworkFacilities,
RemoteMachine
},
data() {
return {
@ -288,10 +290,10 @@ export default {
gridColumnStart: (index % columns) + 1,
}
},
async handleTrafficRelieve(e){
async handleTrafficRelieve(e) {
await this.handleDeviceImmediate(e._itemData)
setTimeout(async () => {
await this.handleDeviceImmediate(e._itemData)
await this.handleDeviceImmediate(e._itemData)
}, 500);
this.dialogConfig = {
// 0 ControlCamera | 1 Camera

4
ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/RoadAndEvents/utils/buttonEvent.js

@ -79,6 +79,10 @@ export const DeviceForMap = {
deviceType: "15",
dialog: "SolarEnergy",
},
远端机: {
deviceType: "16",
dialog: "RemoteMachine",
},
};
export const lngLatMap = {}; //优化 缩略图 + 地图 复用lngLatmap

4
ruoyi-ui/src/views/JiHeExpressway/pages/control/event/event/EventDetailDialog/index.vue

@ -11,7 +11,7 @@
<div
class="video-pic"
:style="{
height: formData.component === 'VideoMulti' ? '220px' : undefined,
height: formData.component === 'VideoMulti' ? '242px' : undefined,
}"
>
<component
@ -265,7 +265,7 @@ export default {
});
} else {
request({
url: `dc/system/event/${this.formData.eventType}/${this.formData.id}`,
url: `dc/system/event/${this.formData.id}`,
method: "delete",
}).then((result) => {
if (result.code == 200) Message.success("成功!");

16
ruoyi-ui/src/views/JiHeExpressway/pages/perception/eventDetection/index.vue

@ -51,11 +51,13 @@ export default {
display: flex;
flex-direction: column;
align-items: stretch;
padding:8px 16px 16px;
padding: 8px 16px 16px;
.row_01 {
flex-basis: 55%; margin-bottom: 15px;
display: flex; align-items: stretch;
flex-basis: 55%;
margin-bottom: 15px;
display: flex;
align-items: stretch;
pointer-events: none;
> div {
@ -77,14 +79,16 @@ export default {
width: 100%;
flex-basis: 50%;
margin-bottom: 15px;
&:last-child{ margin-bottom: 0;}
&:last-child {
margin-bottom: 0;
}
}
}
}
.row_02 {
flex: 1; height: 0;
flex: 1;
height: 0;
// pointer-events: none;
}
}

20
ruoyi-ui/src/views/JiHeExpressway/pages/perception/trafficFlow/index.vue

@ -5,7 +5,7 @@
<section class="row_02">
<!-- 在途车流量车型分类 -->
<!-- 全路段拥堵状况 -->
<Congestion class="unit_01"></Congestion>
<Congestion class="unit_01" />
<!-- 畅通率 -->
<!-- <Unblocked class="content-m" /> -->
<!-- 全路车流量状况 -->
@ -48,9 +48,12 @@ export default {
height: 100%;
padding: 14px;
.row_01 { height: 160px;}
.row_01 {
height: 160px;
}
.row_02 { overflow: hidden;
.row_02 {
overflow: hidden;
// --keep-ratio: scaleX(1);
display: flex;
pointer-events: none;
@ -59,8 +62,13 @@ export default {
> div {
pointer-events: auto;
}
.unit_01{ flex-basis: 50%; margin-right: 14px;}
.unit_02{ flex-basis: 50%;}
.unit_01 {
flex-basis: 50%;
margin-right: 14px;
}
.unit_02 {
flex-basis: 50%;
}
}
.row_03 {
@ -84,7 +92,7 @@ export default {
}
.unit_03 {
flex:1;
flex: 1;
}
}
}

2
ruoyi-ui/src/views/JiHeExpressway/pages/perception/trafficSituation/components/IndicatorAnalysis/components/changesIndicators/assets/charts3.js

@ -29,7 +29,7 @@ let options = {
left: 0,
right: 0,
top: "15%",
bottom: "6%",
bottom: "8%",
containLabel: true,
},
xAxis: {

22
ruoyi-ui/src/views/JiHeExpressway/pages/perception/trafficSituation/components/IndicatorAnalysis/components/changesIndicators/index.vue

@ -158,12 +158,13 @@ export default {
.congestion {
display: inline-flex;
width: 100%;
height: 310px;
// height: 310px;
flex-direction: column;
--keep-ratio: scaleX(1);
.board {
height: 300px;
// height: 300px;
flex: 1;
width: 100%;
padding: 0px 20px;
border-radius: 5px 5px 5px 5px;
@ -175,15 +176,20 @@ export default {
background: linear-gradient(180deg, rgba(6, 66, 88, 0) 0%, #064258 93%);
#ChangesIndictors {
display: inline-flex;
height: 280px;
// display: inline-flex;
height: 180px;
// width: 100%;
width: 100%;
display: flex;
flex: 1;
// height: 0;
position: relative;
}
}
}
.charts {
height: 180px;
width: 100%;
}
// .charts {
// height: 180px;
// width: 100%;
// }
</style>

138
ruoyi-ui/src/views/JiHeExpressway/pages/perception/trafficSituation/components/IndicatorAnalysis/components/composeFeatures/index.vue

@ -1,76 +1,74 @@
<template>
<div class='congestion'>
<WgtTitle :title="'近一年交通组成特征指数最大值'"></WgtTitle>
<div class="board">
<div class="charts keep-ratio " id="composeFeatures"></div>
</div>
<div class="congestion">
<WgtTitle :title="'近一年交通组成特征指数最大值'"></WgtTitle>
<div class="board">
<div class="charts keep-ratio" id="composeFeatures"></div>
</div>
</template>
<script>
import WgtTitle from '../../../../../widgets/title'
import * as echarts from "echarts";
import chartsStatistics from "./assets/charts";
export default {
name: 'ComposeFeatures',
components: {
WgtTitle
},
data() {
return {
myChart:null,
}
},
created() {
},
methods: {
reiszeChart(){
this.$nextTick(() => {
if ( this.myChart ) {
this.myChart.resize();
}
});
}
},
update(){
},
mounted() {
setTimeout(() => {
this.$nextTick(() => {
this.myChart = echarts.init(document.getElementById('composeFeatures'));
this.myChart.setOption(chartsStatistics);
});
</div>
</template>
<script>
import WgtTitle from "../../../../../widgets/title";
import * as echarts from "echarts";
import chartsStatistics from "./assets/charts";
export default {
name: "ComposeFeatures",
components: {
WgtTitle,
},
data() {
return {
myChart: null,
};
},
created() {},
methods: {
reiszeChart() {
this.$nextTick(() => {
if (this.myChart) {
this.myChart.resize();
}
});
},
}
</script>
<style lang='scss' scoped>
.congestion {
},
update() {},
mounted() {
setTimeout(() => {
this.$nextTick(() => {
this.myChart = echarts.init(document.getElementById("composeFeatures"));
this.myChart.setOption(chartsStatistics);
});
});
},
};
</script>
<style lang="scss" scoped>
.congestion {
width: 100%;
.board {
// height: 150px;
flex: 1;
width: 100%;
.board{
height:150px;
width: 100%;
padding: 0px 20px;
background: linear-gradient(180deg, rgba(6,66,88,0.2) 0%, #064258 100%);
border-radius: 5px 5px 5px 5px;
opacity: 1;
border: 1px solid;
border-image: linear-gradient(360deg, rgba(55, 231, 255,0.3), rgba(55, 231, 255, 0)) 1 1;
display: flex;
justify-content: space-between;
align-items: center;
}
padding: 0px 20px;
background: linear-gradient(180deg, rgba(6, 66, 88, 0.2) 0%, #064258 100%);
border-radius: 5px 5px 5px 5px;
opacity: 1;
border: 1px solid;
border-image: linear-gradient(
360deg,
rgba(55, 231, 255, 0.3),
rgba(55, 231, 255, 0)
)
1 1;
display: flex;
justify-content: space-between;
align-items: center;
}
.charts {
height:120px;
width: 100%;
}
</style>
}
.charts {
height: 120px;
width: 100%;
}
</style>

41
ruoyi-ui/src/views/JiHeExpressway/pages/perception/trafficSituation/components/IndicatorAnalysis/components/congestionIndicator/index.vue

@ -165,7 +165,8 @@ export default {
flex-direction: column;
.board {
height: 275px;
// height: 275px;
flex: 1;
width: 100%;
padding: 0px 0px;
border-radius: 5px 5px 5px 5px;
@ -173,23 +174,29 @@ export default {
display: flex;
align-items: center;
flex-direction: column;
margin-top: 20px;
margin-top: 10px;
overflow: hidden;
background: linear-gradient(180deg, rgba(6, 66, 88, 0) 0%, #064258 93%);
.bodySort {
position: relative;
display: inline-block;
width: 100%;
height: 100%;
flex: 1;
// height: 120px;
// position: relative;
// display: inline-block;
// width: 100%;
// height: 100%;
overflow: auto;
padding: 5px 10px;
// padding: 5px 10px;
> div:first-child {
.barTitle {
background: linear-gradient(180deg, #ff6969 0%, #ffb904 100%);
}
.text {
font-size: 12px;
}
.lineHight .inner {
background: linear-gradient(180deg, #ff6969 0%, #ffb904 100%);
}
@ -197,11 +204,11 @@ export default {
> div {
display: inline-flex;
width: 95%;
width: 100%;
height: 41px;
background: #0d517460;
border-radius: 0px 0px 0px 0px;
margin: 5px;
// margin: 5px;
font-size: 14px;
font-family: PingFang SC, PingFang SC;
font-weight: 500;
@ -225,6 +232,10 @@ export default {
margin: 0 10px;
}
.text {
font-size: 12px;
}
.lineHight {
width: 60%;
height: 8px;
@ -249,7 +260,7 @@ export default {
.textStr {
display: inline-flex;
width: 100%;
height: 45px;
height: 35px;
flex-direction: row;
> div {
@ -278,8 +289,8 @@ export default {
}
}
.charts {
height: 180px;
width: 100%;
}
// .charts {
// height: 180px;
// width: 100%;
// }
</style>

138
ruoyi-ui/src/views/JiHeExpressway/pages/perception/trafficSituation/components/IndicatorAnalysis/components/crowding/index.vue

@ -1,76 +1,74 @@
<template>
<div class='congestion'>
<WgtTitle :title="'近一年拥挤度最大值'"></WgtTitle>
<div class="board">
<div class="charts keep-ratio " id="Crowding"></div>
</div>
<div class="congestion">
<WgtTitle :title="'近一年拥挤度最大值'"></WgtTitle>
<div class="board">
<div class="charts keep-ratio" id="Crowding"></div>
</div>
</template>
<script>
import WgtTitle from '../../../../../widgets/title'
import * as echarts from "echarts";
import chartsStatistics from "./assets/charts";
export default {
name: 'Crowding',
components: {
WgtTitle
},
data() {
return {
myChart:null,
}
},
created() {
},
methods: {
reiszeChart(){
this.$nextTick(() => {
if ( this.myChart ) {
this.myChart.resize();
}
});
}
},
update(){
},
mounted() {
setTimeout(() => {
this.$nextTick(() => {
this.myChart = echarts.init(document.getElementById('Crowding'));
this.myChart.setOption(chartsStatistics);
});
</div>
</template>
<script>
import WgtTitle from "../../../../../widgets/title";
import * as echarts from "echarts";
import chartsStatistics from "./assets/charts";
export default {
name: "Crowding",
components: {
WgtTitle,
},
data() {
return {
myChart: null,
};
},
created() {},
methods: {
reiszeChart() {
this.$nextTick(() => {
if (this.myChart) {
this.myChart.resize();
}
});
},
}
</script>
<style lang='scss' scoped>
.congestion {
},
update() {},
mounted() {
setTimeout(() => {
this.$nextTick(() => {
this.myChart = echarts.init(document.getElementById("Crowding"));
this.myChart.setOption(chartsStatistics);
});
});
},
};
</script>
<style lang="scss" scoped>
.congestion {
width: 100%;
.board {
// height: 150px;
flex: 1;
width: 100%;
.board{
height:150px;
width: 100%;
padding: 0px 20px;
background: linear-gradient(180deg, rgba(6,66,88,0.2) 0%, #064258 100%);
border-radius: 5px 5px 5px 5px;
opacity: 1;
border: 1px solid;
border-image: linear-gradient(360deg, rgba(55, 231, 255,0.3), rgba(55, 231, 255, 0)) 1 1;
display: flex;
justify-content: space-between;
align-items: center;
}
padding: 0px 20px;
background: linear-gradient(180deg, rgba(6, 66, 88, 0.2) 0%, #064258 100%);
border-radius: 5px 5px 5px 5px;
opacity: 1;
border: 1px solid;
border-image: linear-gradient(
360deg,
rgba(55, 231, 255, 0.3),
rgba(55, 231, 255, 0)
)
1 1;
display: flex;
justify-content: space-between;
align-items: center;
}
.charts {
height:120px;
width: 100%;
}
</style>
}
.charts {
height: 120px;
width: 100%;
}
</style>

719
ruoyi-ui/src/views/JiHeExpressway/pages/perception/trafficSituation/components/IndicatorAnalysis/components/roadIndicators/index.vue

@ -1,374 +1,411 @@
<template>
<div class='congestion'>
<WgtTitle :title="'道路指标情况'"></WgtTitle>
<div class="board">
<div id="roadChart1" class="keep-ratio" >
</div>
<div id="roadChart2" class="keep-ratio" >
</div>
<div id="roadChart3" class="keep-ratio" >
</div>
</div>
<div class="congestion">
<WgtTitle :title="'道路指标情况'"></WgtTitle>
<div class="board">
<div id="roadChart1" class="keep-ratio"></div>
<div id="roadChart2" class="keep-ratio"></div>
<div id="roadChart3" class="keep-ratio"></div>
</div>
</template>
<script>
import WgtTitle from '../../../../../widgets/title'
import chartsStatistics from './assets/chart1';
import chartsStatistics2 from './assets/chart2';
import chartsStatistics3 from './assets/chart3';
import * as echarts from "echarts";
export default {
name: 'RoadIndicators',
components: {
WgtTitle
},
data() {
return {
tableData: [{
date: '2023-12-31 13:00:00',
name: '2640.78m',
address: 'K100+000-K110+000'
},{
date: '2023-12-31 13:00:00',
name: '2640.78m',
address: 'K100+000-K110+000'
},{
date: '2023-12-31 13:00:00',
name: '2640.78m',
address: 'K100+000-K110+000'
},{
date: '2023-12-31 13:00:00',
name: '2640.78m',
address: 'K100+000-K110+000'
},{
date: '2023-12-31 13:00:00',
name: '2640.78m',
address: 'K100+000-K110+000'
},{
date: '2023-12-31 13:00:00',
name: '2640.78m',
address: 'K100+000-K110+000'
},{
date: '2023-12-31 13:00:00',
name: '2640.78m',
address: 'K100+000-K110+000'
},{
date: '2023-12-31 13:00:00',
name: '2640.78m',
address: 'K100+000-K110+000'
},{
date: '2023-12-31 13:00:00',
name: '2640.78m',
address: 'K100+000-K110+000'
},{
date: '2023-12-31 13:00:00',
name: '2640.78m',
address: 'K100+000-K110+000'
},{
date: '2023-12-31 13:00:00',
name: '2640.78m',
address: 'K100+000-K110+000'
},{
date: '2023-12-31 13:00:00',
name: '2640.78m',
address: 'K100+000-K110+000'
},{
date: '2023-12-31 13:00:00',
name: '2640.78m',
address: 'K100+000-K110+000'
</div>
</template>
<script>
import WgtTitle from "../../../../../widgets/title";
import chartsStatistics from "./assets/chart1";
import chartsStatistics2 from "./assets/chart2";
import chartsStatistics3 from "./assets/chart3";
import * as echarts from "echarts";
export default {
name: "RoadIndicators",
components: {
WgtTitle,
},
data() {
return {
tableData: [
{
date: "2023-12-31 13:00:00",
name: "2640.78m",
address: "K100+000-K110+000",
},
]
}
},
created() {
},
methods: {
selectItem(index){
this.selectIndex = index;
},
{
date: "2023-12-31 13:00:00",
name: "2640.78m",
address: "K100+000-K110+000",
},
{
date: "2023-12-31 13:00:00",
name: "2640.78m",
address: "K100+000-K110+000",
},
{
date: "2023-12-31 13:00:00",
name: "2640.78m",
address: "K100+000-K110+000",
},
{
date: "2023-12-31 13:00:00",
name: "2640.78m",
address: "K100+000-K110+000",
},
{
date: "2023-12-31 13:00:00",
name: "2640.78m",
address: "K100+000-K110+000",
},
{
date: "2023-12-31 13:00:00",
name: "2640.78m",
address: "K100+000-K110+000",
},
{
date: "2023-12-31 13:00:00",
name: "2640.78m",
address: "K100+000-K110+000",
},
{
date: "2023-12-31 13:00:00",
name: "2640.78m",
address: "K100+000-K110+000",
},
{
date: "2023-12-31 13:00:00",
name: "2640.78m",
address: "K100+000-K110+000",
},
{
date: "2023-12-31 13:00:00",
name: "2640.78m",
address: "K100+000-K110+000",
},
{
date: "2023-12-31 13:00:00",
name: "2640.78m",
address: "K100+000-K110+000",
},
{
date: "2023-12-31 13:00:00",
name: "2640.78m",
address: "K100+000-K110+000",
},
],
};
},
created() {},
methods: {
selectItem(index) {
this.selectIndex = index;
},
mounted() {
setTimeout(() => {
this.$nextTick(() => {
var myChart = echarts.init(document.getElementById('roadChart1'));
myChart.setOption(chartsStatistics);
var myChart2 = echarts.init(document.getElementById('roadChart2'));
myChart2.setOption(chartsStatistics2);
var myChart3 = echarts.init(document.getElementById('roadChart3'));
myChart3.setOption(chartsStatistics3);
});
},
mounted() {
setTimeout(() => {
this.$nextTick(() => {
var myChart = echarts.init(document.getElementById("roadChart1"));
myChart.setOption(chartsStatistics);
var myChart2 = echarts.init(document.getElementById("roadChart2"));
myChart2.setOption(chartsStatistics2);
var myChart3 = echarts.init(document.getElementById("roadChart3"));
myChart3.setOption(chartsStatistics3);
});
},
}
</script>
<style lang='scss' scoped>
.showClass {
color:#00EBC1;
}
::v-deep .el-table .cell {
padding-left:0px !important;
}
::v-deep .el-table .el-table__header-wrapper th {
background-color: #064258 !important;
color:#00D1FF;
border-color: #064258 !important;
border:0px !important;
font-size:12px !important;
}
::v-deep .el-table {
border:0px !important;
background-color: transparent;
font-size:12px !important;
}
::v-deep .el-table__body-wrapper {
background-color: #064258;
color: #fff;
}
::v-deep .el-table tr:hover td {
background: #1b2528 !important;
color:#00D1FF;
}
::v-deep .el-table tr:nth-child(odd) td{
background-color: #13272F ;
border:0px !important;
}
::v-deep .el-table tr:nth-child(even) td{
border:0px !important;
}
::v-deep .el-table tr {
background-color: #133242 !important;
border-collapse:0;
border:0px !important;
background-color: transparent !important;
}
.congestion {
display: inline-flex;
});
},
};
</script>
<style lang="scss" scoped>
.showClass {
color: #00ebc1;
}
::v-deep .el-table .cell {
padding-left: 0px !important;
}
::v-deep .el-table .el-table__header-wrapper th {
background-color: #064258 !important;
color: #00d1ff;
border-color: #064258 !important;
border: 0px !important;
font-size: 12px !important;
}
::v-deep .el-table {
border: 0px !important;
background-color: transparent;
font-size: 12px !important;
}
::v-deep .el-table__body-wrapper {
background-color: #064258;
color: #fff;
}
::v-deep .el-table tr:hover td {
background: #1b2528 !important;
color: #00d1ff;
}
::v-deep .el-table tr:nth-child(odd) td {
background-color: #13272f;
border: 0px !important;
}
::v-deep .el-table tr:nth-child(even) td {
border: 0px !important;
}
::v-deep .el-table tr {
background-color: #133242 !important;
border-collapse: 0;
border: 0px !important;
background-color: transparent !important;
}
.congestion {
display: inline-flex;
width: 100%;
// height: 188px;
flex-direction: column;
.board {
// height: 150px;
flex: 1;
width: 100%;
height: 188px;
flex-direction: column;
padding: 0px 0px;
border-radius: 5px 5px 5px 5px;
opacity: 1;
display: flex;
justify-content: space-between;
align-items: center;
flex-direction: row;
margin-top: 20px;
background: linear-gradient(180deg, rgba(6, 66, 88, 0) 0%, #064258 93%);
> div {
display: inline-flex;
width: 33%;
height: 100%;
position: relative;
top: -10px;
}
.board{
height: 150px;
.warningList {
display: inline-flex;
flex-direction: column;
width: 100%;
padding: 0px 0px;
border-radius: 5px 5px 5px 5px;
opacity: 1;
display: flex;
justify-content: space-between;
align-items: center;
flex-direction: row;
margin-top:20px;
background: linear-gradient(180deg, rgba(6,66,88,0) 0%, #064258 93%);
height: calc(100% - 40px);
> div {
display: inline-flex;
width:33%;
height:100%;
position: relative;
top:-10px;
}
.warningList {
display: inline-flex;
flex-direction: column;
width:100%;
height:calc(100% - 40px);
>div {
width: 100%;
height: 138px;
background: #133242;
border-radius: 2px 2px 2px 2px;
opacity: 1;
border: 1px solid;
border-image: linear-gradient(
360deg,
rgba(55, 231, 255, 1),
rgba(55, 231, 255, 0)
)
1 1;
overflow: hidden;
margin-top: 20px;
padding: 23px 29px;
font-size: 14px;
font-family: PingFang SC, PingFang SC;
font-weight: 400;
color: #37e7ff;
> .left-w {
display: inline-flex;
width: 40%;
height: 100%;
flex-direction: column;
.left-row {
margin: 2px;
display: inline-flex;
width:100%;
height:138px;
background: #133242;
border-radius: 2px 2px 2px 2px;
opacity: 1;
border: 1px solid;
border-image: linear-gradient(360deg, rgba(55, 231, 255, 1), rgba(55, 231, 255, 0)) 1 1;
overflow: hidden;
margin-top:20px;
padding:23px 29px;
font-size: 14px;
font-family: PingFang SC, PingFang SC;
font-weight: 400;
color: #37E7FF;
>.left-w {
display: inline-flex;
width:40%;
height:100%;
flex-direction: column;
.left-row {
margin:2px;
display: inline-flex;
width:100%;
height:30px;
flex-direction: row;
>.value {
color:#fff;
}
.org {
font-size: 14px;
font-family: PangMenZhengDao;
font-weight: 400;
color: #F4A125
}
}
}
width: 100%;
height: 30px;
flex-direction: row;
>.right-w {
margin-left:30px;
display: inline-flex;
width:100%;
height:100%;
flex-direction: column;
.right-row {
margin-bottom: 10px;
}
.right-text {
color:#fff;
}
> .value {
color: #fff;
}
.org {
font-size: 14px;
font-family: PangMenZhengDao;
font-weight: 400;
color: #f4a125;
}
}
}
}
.weaterMain {
display: inline-flex;
flex-direction: row;
width:100%;
height: 40px;
.buttons {
width:100%;
height:38px;
>div {
display: inline-flex;
width:10%;
height:35px;
justify-content: center;
align-items: center;
font-size: 12px;
font-family: PangMenZhengDao;
font-weight: 800;
color: #FFFFFF;
z-index: 9;
}
> .right-w {
margin-left: 30px;
display: inline-flex;
width: 100%;
height: 100%;
flex-direction: column;
>div::after {
content: "";
position: absolute;
display: inline-flex;
width: 55px;
height: 36px;
background: linear-gradient(180deg, #6557D7 0%, rgba(101,87,216,0) 100%);
border-radius: 50%;
opacity: 1;
z-index:-1;
}
.right-row {
margin-bottom: 10px;
}
.redSel::after {
background: linear-gradient(180deg, #E73A14 0%, rgba(240,92,9,0) 100%);
}
.right-text {
color: #fff;
}
}
}
}
.yelSel::after {
background: linear-gradient(180deg, #FFFA79 0%, rgba(255,208,137,0) 100%);
}
.weaterMain {
display: inline-flex;
flex-direction: row;
width: 100%;
height: 40px;
.bluSel::after {
background: linear-gradient(180deg, #121ADE 0%, rgba(40,18,228,0) 100%);
}
.buttons {
width: 100%;
height: 38px;
> div {
display: inline-flex;
width: 10%;
height: 35px;
justify-content: center;
align-items: center;
font-size: 12px;
font-family: PangMenZhengDao;
font-weight: 800;
color: #ffffff;
z-index: 9;
}
.orgSel::after{
background: linear-gradient(180deg, #FFA623 0%, rgba(255,173,53,0) 100%);
}
> div::after {
content: "";
position: absolute;
display: inline-flex;
width: 55px;
height: 36px;
background: linear-gradient(
180deg,
#6557d7 0%,
rgba(101, 87, 216, 0) 100%
);
border-radius: 50%;
opacity: 1;
z-index: -1;
}
.weaterTitle::after {
content: "";
position: absolute;
top:0px;
left:0px;
width:100%;
height:2px;
background: linear-gradient(90deg, rgba(189,255,246,0) 0%, #BDFFF6 52%, rgba(189,255,246,0) 100%);
border-radius: 0px 0px 0px 0px;
opacity: 1;
.redSel::after {
background: linear-gradient(
180deg,
#e73a14 0%,
rgba(240, 92, 9, 0) 100%
);
}
.weaterTitle::before {
content: "";
position: absolute;
top:38px;
left:0px;
width:100%;
height:2px;
background: linear-gradient(90deg, rgba(189,255,246,0) 0%, #BDFFF6 52%, rgba(189,255,246,0) 100%);
border-radius: 0px 0px 0px 0px;
opacity: 1;
.yelSel::after {
background: linear-gradient(
180deg,
#fffa79 0%,
rgba(255, 208, 137, 0) 100%
);
}
.weaterTitle {
position: relative;
display: inline-flex;
width: 277px;
height: 38px;
background: linear-gradient(269deg, rgba(55,231,255,0) 6%, rgba(55,231,255,0.6) 50%, rgba(55,231,255,0) 92%);
border-radius: 0px 0px 0px 0px;
opacity: 1;
justify-content: center;
align-items: center;
>span.text {
display: inline-flex;
font-size: 16px;
font-family: PangMenZhengDao;
font-weight: 400;
color: #FFFFFF;
}
.bluSel::after {
background: linear-gradient(
180deg,
#121ade 0%,
rgba(40, 18, 228, 0) 100%
);
}
.num {
display: inline-flex;
justify-content: center;
align-items: center;
font-size: 22px;
font-family: PangMenZhengDao;
font-weight: 400;
color: #D9001B;
}
.orgSel::after {
background: linear-gradient(
180deg,
#ffa623 0%,
rgba(255, 173, 53, 0) 100%
);
}
}
}
}
.charts {
height:180px;
.weaterTitle::after {
content: "";
position: absolute;
top: 0px;
left: 0px;
width: 100%;
height: 2px;
background: linear-gradient(
90deg,
rgba(189, 255, 246, 0) 0%,
#bdfff6 52%,
rgba(189, 255, 246, 0) 100%
);
border-radius: 0px 0px 0px 0px;
opacity: 1;
}
.weaterTitle::before {
content: "";
position: absolute;
top: 38px;
left: 0px;
width: 100%;
height: 2px;
background: linear-gradient(
90deg,
rgba(189, 255, 246, 0) 0%,
#bdfff6 52%,
rgba(189, 255, 246, 0) 100%
);
border-radius: 0px 0px 0px 0px;
opacity: 1;
}
.weaterTitle {
position: relative;
display: inline-flex;
width: 277px;
height: 38px;
background: linear-gradient(
269deg,
rgba(55, 231, 255, 0) 6%,
rgba(55, 231, 255, 0.6) 50%,
rgba(55, 231, 255, 0) 92%
);
border-radius: 0px 0px 0px 0px;
opacity: 1;
justify-content: center;
align-items: center;
> span.text {
display: inline-flex;
font-size: 16px;
font-family: PangMenZhengDao;
font-weight: 400;
color: #ffffff;
}
.num {
display: inline-flex;
justify-content: center;
align-items: center;
font-size: 22px;
font-family: PangMenZhengDao;
font-weight: 400;
color: #d9001b;
}
}
</style>
}
}
}
.charts {
height: 180px;
width: 100%;
}
</style>

140
ruoyi-ui/src/views/JiHeExpressway/pages/perception/trafficSituation/components/IndicatorAnalysis/components/saturationMax/index.vue

@ -1,76 +1,76 @@
<template>
<div class='congestion'>
<WgtTitle :title="'近一年饱和度最大值'"></WgtTitle>
<div class="board">
<div class="charts keep-ratio " id="temperatureTrend"></div>
</div>
<div class="congestion">
<WgtTitle :title="'近一年饱和度最大值'"></WgtTitle>
<div class="board">
<div class="charts keep-ratio" id="temperatureTrend"></div>
</div>
</template>
<script>
import WgtTitle from '../../../../../widgets/title'
import * as echarts from "echarts";
import chartsStatistics from "./assets/charts";
export default {
name: 'SaturationMax',
components: {
WgtTitle
},
data() {
return {
myChart:null,
}
},
created() {
},
methods: {
reiszeChart(){
this.$nextTick(() => {
if ( this.myChart ) {
this.myChart.resize();
}
});
}
},
update(){
},
mounted() {
setTimeout(() => {
this.$nextTick(() => {
this.myChart = echarts.init(document.getElementById('temperatureTrend'));
this.myChart.setOption(chartsStatistics);
});
</div>
</template>
<script>
import WgtTitle from "../../../../../widgets/title";
import * as echarts from "echarts";
import chartsStatistics from "./assets/charts";
export default {
name: "SaturationMax",
components: {
WgtTitle,
},
data() {
return {
myChart: null,
};
},
created() {},
methods: {
reiszeChart() {
this.$nextTick(() => {
if (this.myChart) {
this.myChart.resize();
}
});
},
}
</script>
<style lang='scss' scoped>
.congestion {
},
update() {},
mounted() {
setTimeout(() => {
this.$nextTick(() => {
this.myChart = echarts.init(
document.getElementById("temperatureTrend")
);
this.myChart.setOption(chartsStatistics);
});
});
},
};
</script>
<style lang="scss" scoped>
.congestion {
width: 100%;
.board {
// height: 150px;
flex: 1;
width: 100%;
.board{
height:150px;
width: 100%;
padding: 0px 20px;
background: linear-gradient(180deg, rgba(6,66,88,0.2) 0%, #064258 100%);
border-radius: 5px 5px 5px 5px;
opacity: 1;
border: 1px solid;
border-image: linear-gradient(360deg, rgba(55, 231, 255,0.3), rgba(55, 231, 255, 0)) 1 1;
display: flex;
justify-content: space-between;
align-items: center;
}
padding: 0px 20px;
background: linear-gradient(180deg, rgba(6, 66, 88, 0.2) 0%, #064258 100%);
border-radius: 5px 5px 5px 5px;
opacity: 1;
border: 1px solid;
border-image: linear-gradient(
360deg,
rgba(55, 231, 255, 0.3),
rgba(55, 231, 255, 0)
)
1 1;
display: flex;
justify-content: space-between;
align-items: center;
}
.charts {
height:120px;
width: 100%;
}
</style>
}
.charts {
height: 120px;
width: 100%;
}
</style>

2
ruoyi-ui/src/views/JiHeExpressway/pages/perception/trafficSituation/components/IndicatorAnalysis/components/trafficIndicators/assets/charts.js

@ -81,7 +81,7 @@ var options = {
top: "25%", //上边距
right: "0", //右边距
left: "0", //左边距
bottom: "0%", //下边距
bottom: "5%", //下边距
containLabel: true,
},
xAxis: {

27
ruoyi-ui/src/views/JiHeExpressway/pages/perception/trafficSituation/components/IndicatorAnalysis/components/trafficIndicators/index.vue

@ -92,7 +92,7 @@
<div class="chartOrg">
<div class="itemChart">
<div class="title">上月指标</div>
<div id="chart2" class=""></div>
<div id="chart2" class="keep-ratio"></div>
</div>
<div class="itemChart">
<div class="title">本月指标</div>
@ -317,20 +317,20 @@ export default {
gr.addColorStop(1, "rgba(92,197,255,0)");
gr.addColorStop(0, "rgba(92,197,255,0.5)");
//
drawRoundRect(context, 98, 11, 90, 22, 12, gr);
drawRoundRect(context, 98, 41, 90, 22, 12, gr);
var gr = context.createLinearGradient(35, 0, 75, 0);
//
gr.addColorStop(1, "rgba(92,197,255,0)");
gr.addColorStop(0, "rgba(92,197,255,0.5)");
drawRoundRect(context, -1, 146, 80, 20, 12, gr);
drawRoundRect(context, -1, 176, 80, 20, 12, gr);
var gr = context.createLinearGradient(230, 0, 275, 0);
//
gr.addColorStop(1, "rgba(92,197,255,0)");
gr.addColorStop(0, "rgba(92,197,255,0.5)");
context.lineWidth = 1; // 线
drawRoundRect(context, 211, 146, 220, 20, 12, gr);
drawRoundRect(context, 211, 176, 220, 20, 12, gr);
const domMap3 = document.getElementById("chart3");
let parentDiv3 = domMap3.firstChild;
@ -348,20 +348,20 @@ export default {
gr.addColorStop(1, "rgba(92,197,255,0)");
gr.addColorStop(0, "rgba(92,197,255,0.5)");
//
drawRoundRect(context3, 98, 14, 90, 20, 12, gr);
drawRoundRect(context3, 98, 44, 90, 20, 12, gr);
var gr = context3.createLinearGradient(35, 0, 75, 0);
//
gr.addColorStop(1, "rgba(92,197,255,0)");
gr.addColorStop(0, "rgba(92,197,255,0.5)");
drawRoundRect(context3, -1, 148, 80, 20, 12, gr);
drawRoundRect(context3, -1, 178, 80, 20, 12, gr);
var gr = context3.createLinearGradient(240, 0, 290, 0);
//
gr.addColorStop(1, "rgba(92,197,255,0)");
gr.addColorStop(0, "rgba(92,197,255,0.5)");
context3.lineWidth = 1; // 线
drawRoundRect(context3, 211, 148, 200, 20, 12, gr);
drawRoundRect(context3, 211, 178, 200, 20, 12, gr);
});
});
},
@ -374,14 +374,15 @@ export default {
}
.congestion {
width: 100%;
margin: 5px 0;
// width: 100%;
// margin: 5px 0;
.body {
display: flex;
flex-direction: row;
align-items: center;
height: 395px;
// height: 395px;
flex: 1;
width: 100%;
font-size: 14px;
@ -417,6 +418,7 @@ export default {
font-family: PingFang SC, PingFang SC;
font-weight: 500;
color: #30bfec;
padding-top: 20px;
}
#chart2 {
@ -441,9 +443,10 @@ export default {
}
.board {
height: 320px;
// height: 320px;
flex: 1;
width: 100%;
padding: 10px 0px;
padding-top: 10px;
border-radius: 5px 5px 5px 5px;
opacity: 1;

119
ruoyi-ui/src/views/JiHeExpressway/pages/perception/trafficSituation/components/IndicatorAnalysis/index.vue

@ -4,9 +4,9 @@
<RoadIndicators class="content-l" />
<SaturationMax class="content-l" />
<Crowding class="content-l" />
<ComposeFeatures class="content-l" />
<ComposeFeatures class="content-l" style="margin-right: 0" />
</section>
<section class="content">
<section class="content-c">
<TrafficIndicators class="content-max" />
</section>
<section class="foot">
@ -79,36 +79,43 @@ export default {
height: 100%;
}
.content {
width: 100%;
display: inline-flex;
justify-content: space-between;
pointer-events: none;
margin-top: 19px;
margin-left: 19px;
> div {
pointer-events: auto;
}
.content-w {
width: 66.5%;
}
.content-max {
width: 100%;
}
.content-l {
width: 25%;
margin-left: 0px;
}
}
// .content {
// // width: 100%;
// // display: inline-flex;
// // justify-content: space-between;
// // pointer-events: none;
// // margin-top: 19px;
// // margin-left: 19px;
// width: 100%;
// margin: auto;
// display: flex;
// flex: 1;
// pointer-events: none;
// margin-top: 19px;
// flex-basis: 20%;
// > div {
// pointer-events: auto;
// }
// .content-w {s
// width: 66.5%;
// }
// .content-l {
// margin-right: 20px;
// flex-basis: 25%;
// display: flex;
// flex-direction: column;
// }
// }
.TrafficFlow {
width: 100%;
height: 100%;
position: relative;
display: flex;
flex-direction: column;
// position: relative;
z-index: 6;
color: white;
@ -119,36 +126,48 @@ export default {
flex: 1;
pointer-events: none;
margin-top: 19px;
flex-basis: 25%;
.content-l {
width: calc(50%);
min-width: 460px;
margin-right: 20px;
> div {
pointer-events: auto;
}
.content-m {
display: inline-flex;
flex-direction: column;
width: calc(100% / 4);
margin-right: 20px;
// .content-w {
// width: 66.5%;
// }
.content-m-t {
width: 100%;
height: 240px;
margin-bottom: 20px;
}
.content-l {
margin-right: 20px;
flex-basis: 25%;
display: flex;
flex-direction: column;
}
}
.content-c {
width: 100%;
margin: auto;
display: flex;
// flex: 1;
pointer-events: none;
margin-top: 19px;
flex-basis: 50%;
.content-r {
width: 30%;
.content-max {
flex: 1;
width: 100%;
display: flex;
justify-content: space-between;
align-items: center;
flex-direction: column;
}
}
.foot {
width: 100%;
margin: auto;
display: flex;
flex: 1;
height: 0;
// flex: 1;
flex-basis: 35%;
pointer-events: none;
margin-top: 19px;
@ -161,8 +180,8 @@ export default {
}
.foot-l {
width: 70%;
height: 330px;
flex-basis: 70%;
// height: 330px;
}
.foot-m {
@ -171,7 +190,9 @@ export default {
.foot-r {
margin-left: 20px;
width: 33%;
flex-basis: 30%;
flex: 1;
display: flex;
}
}
}

36
ruoyi-ui/src/views/JiHeExpressway/pages/perception/trafficSituation/index.vue

@ -1,6 +1,6 @@
<template>
<div class="TrafficFlowMax">
<el-tabs class="footTabs" v-model="activeName" @tab-click="changeTabs">
<el-tabs class="full_tab" v-model="activeName" @tab-click="changeTabs">
<el-tab-pane label="综合指标分析" name="first">
<IndicatorAnalysis />
</el-tab-pane>
@ -33,6 +33,22 @@ export default {
</script>
<style lang="scss" scoped>
.full_tab {
width: 100%;
height: 100%;
display: flex;
flex-direction: column;
flex: 1;
::v-deep .el-tabs__header {
}
::v-deep .el-tabs__content {
flex: 1;
.el-tab-pane {
width: 100%;
height: 100%;
}
}
}
::v-deep .el-tabs__item {
display: inline-flex;
justify-content: center;
@ -58,10 +74,10 @@ export default {
margin: 0px !important;
}
.footTabs {
display: inline;
width: 99%;
}
// .footTabs {
// display: inline;
// width: 99%;
// }
.TrafficFlowMax {
width: 100%;
@ -87,11 +103,11 @@ export default {
pointer-events: auto;
}
.content-l {
width: calc(50%);
min-width: 460px;
margin-right: 20px;
}
// .content-l {
// width: calc(50%);
// min-width: 460px;
// margin-right: 20px;
// }
.content-m {
display: inline-flex;

12
ruoyi-ui/src/views/JiHeExpressway/pages/service/InformationReleaseManagement/Cards/AuditDetails/DetailCard.vue

@ -1,18 +1,18 @@
<template>
<div class='DetailCard'>
<div class="header">
<div class="left">
<div class="left keep-ratio" origin="left" >
<div class="title">{{ data.descTitle || '-' }}</div>
<div class="state" :style="{ backgroundColor: status[data.state].color }">{{ status[data.state].text }}</div>
</div>
<div class="right">
<div class="right keep-ratio">
<span>
<i class="el-icon-time"></i>
</span>
<span>{{ data.time || '-' }}</span>
</div>
</div>
<div class="body">
<div class="body keep-ratio" origin="left" >
<div class="content">
{{ data.desc }}
</div>
@ -65,10 +65,10 @@ export default {
data() {
return {
shareWithData: [
'message',
'weChat',
'weibo',
'website'
'message',
'website',
'weibo'
],//shareWith.keys().map(item => item.match(/[^./]+/)[0]),
status: {
0: {

2
ruoyi-ui/src/views/JiHeExpressway/pages/service/InformationReleaseManagement/Cards/AuditLists/ListItem.vue

@ -1,5 +1,5 @@
<template>
<div class='ListItem' v-on="$listeners">
<div class='ListItem' v-on="$listeners" v-bind="$attrs">
<img class="prefix keep-ratio" :src="require(`@screen/images/ListItem/${data.icon}.svg`)" />
<div class="center keep-ratio">
<div class="header">

33
ruoyi-ui/src/views/JiHeExpressway/pages/service/InformationReleaseManagement/Cards/AuditLists/index.vue

@ -3,11 +3,12 @@
<InputSearch style="width: 100%" :formList="searchFormList" @handleSearch="handleSearch" />
<div class="body">
<ListItem
v-for="item in list.rows"
v-for="(item,index) in list.rows"
:key="item.id"
:data="item"
origin="left"
@click.native="onClick(item)"
:style="listIndex===index?'background: linear-gradient(to right, #0c2e3f 0%,#1399b3 100%)':''"
@click.native="onClick(item,index)"
/>
</div>
<div class="footer">
@ -29,17 +30,17 @@ import { method } from "lodash";
import request from '@/utils/request'
import {DirectionTypes,EventSubclass} from '@screen/utils/enum.js';
const enum_event_type = [
{key:'1',value:'交通事故',icon:"TrafficControl"},
{key:'2',value:'车辆故障',icon:"TrafficControl"},
{key:'3',value:'交通管制',icon:"TrafficControl"},
{key:'4',value:'交通拥堵',icon:"TrafficControl"},
{key:'5',value:'非法上路',icon:"TrafficControl"},
{key:'6',value:'路障清除',icon:"TrafficControl"},
{key:'7',value:'施工建设',icon:"TrafficControl"},
{key:'8',value:'服务区异常',icon:"TrafficControl"},
{key:'9',value:'设施设备隐患',icon:"TrafficControl"},
{key:'10',value:'异常天气', icon:"AbnormalWeather"},
{key:'11',value:'其他事件',icon:"TrafficControl"}
{key:'1',value:'交通事故'},
{key:'2',value:'车辆故障'},
{key:'3',value:'交通管制'},
{key:'4',value:'交通拥堵'},
{key:'5',value:'非法上路'},
{key:'6',value:'路障清除'},
{key:'7',value:'施工建设'},
{key:'8',value:'服务区异常'},
{key:'9',value:'设施设备隐患'},
{key:'10',value:'异常天气'},
{key:'11',value:'其他事件'}
]
export default {
name: "Auditlists",
@ -54,6 +55,7 @@ export default {
return {
searchFormList,
list:{total:0,rows:[]},
listIndex: 0,
queryParams: {
pageNum: 1,
pageSize: 10,
@ -65,7 +67,8 @@ export default {
this.bindList()
},
methods:{
onClick(e){
onClick(e,index){
this.listIndex = index;
this.$emit("click",e.eventId);
},
handleSearch(e){
@ -101,7 +104,7 @@ export default {
const ev = _.find(enum_event_type,{key:e.eventType})
e.content = `${e.eventTime} ${e.stakeMark} ${DirectionTypes[e.direction]} ${e.eventSubclass? EventSubclass[e.eventSubclass]:''}`
e.type = e.eventType
e.icon = ev.icon
e.icon = ev.key
e.title = ev.value
e.isverify = e.eventState
});

4
ruoyi-ui/vue.config.js

@ -53,8 +53,8 @@ module.exports = {
// target: `http://10.168.69.255:8087`, //正晨后台 连现场物联 刘文阁
// target: `http://10.168.78.135:8087`, //王钦
// target: `http://10.168.66.196:8087`, //正晨后台 连现场物联 刘文阁2
target: `http://10.168.68.42:8087`, //王思祥
// target: `http://10.168.72.174:8087`, //赵祥龙
// target: `http://10.168.68.42:8087`, //王思祥
target: `http://10.168.72.174:8087`, //赵祥龙
// target: `http://10.168.65.156:8097`, //孟
// target: `http://10.168.56.165:8087`, //王家宝
// target: `http://10.168.77.128:8087`, //王兴琳

Loading…
Cancel
Save