From a01743ec9699312715c6d5a6276b7a35059ec6e9 Mon Sep 17 00:00:00 2001 From: huangchenhao <123673748@qq.com> Date: Fri, 28 Nov 2025 00:50:43 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BF=AB=E9=80=9F=E5=A4=84=E7=BD=AE=E5=AD=97?= =?UTF-8?q?=E6=AE=B5=E4=BF=AE=E6=94=B9=20=E8=A7=86=E9=A2=91=E6=A0=87?= =?UTF-8?q?=E9=A2=98=E4=BF=AE=E6=94=B9=20=E5=8F=B3=E4=B8=8B=E8=A7=92?= =?UTF-8?q?=E6=97=A5=E6=9C=9F=E4=BF=AE=E6=94=B9=20=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E6=BC=94=E7=BB=83=E6=97=A5=E6=9C=9F=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../images/LocationPanel/地理位置展出1.png | Bin 0 -> 6015 bytes .../assets/images/LocationPanel/日期icon.png | Bin 0 -> 1674 bytes .../components/LeftPanel/ForcePreset.vue | 2 +- .../components/LeftPanel/LocationPanel.vue | 7 +- .../components/RightPanel/DispatchCommand.vue | 8 +- .../components/shared/ActionButton.vue | 9 +- .../shared/EmergencyPlanContent.vue | 84 ++++++++++++------ .../composables/useDisasterData.js | 8 +- .../composables/useForceDispatch.js | 14 +-- .../constants/index.js | 10 +-- 10 files changed, 92 insertions(+), 50 deletions(-) create mode 100644 packages/screen/src/views/3DSituationalAwarenessRefactor/assets/images/LocationPanel/地理位置展出1.png create mode 100644 packages/screen/src/views/3DSituationalAwarenessRefactor/assets/images/LocationPanel/日期icon.png diff --git a/packages/screen/src/views/3DSituationalAwarenessRefactor/assets/images/LocationPanel/地理位置展出1.png b/packages/screen/src/views/3DSituationalAwarenessRefactor/assets/images/LocationPanel/地理位置展出1.png new file mode 100644 index 0000000000000000000000000000000000000000..6feaf334b5529f6ec3e38509aa4e6ea5258aada8 GIT binary patch literal 6015 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 Vg!Uy8lKuPnjgVH7Dv|i$`yYUKgC+m~ literal 0 HcmV?d00001 diff --git a/packages/screen/src/views/3DSituationalAwarenessRefactor/assets/images/LocationPanel/日期icon.png b/packages/screen/src/views/3DSituationalAwarenessRefactor/assets/images/LocationPanel/日期icon.png new file mode 100644 index 0000000000000000000000000000000000000000..d356b5ea00f9c4abf2f7256eda72b1c7946f1911 GIT binary patch literal 1674 zcmV;526g#~P)P0012b1^@s6UwFrL00001b5ch_0Itp) z=>Px#L}ge>W=%~1DgXcg2mk?xX#fNO00031000^Q000001E2u_0{{R30RRC20H6W@ z1ONa40RR918K46I1ONa40RR919RL6T0IhQ|o&W#^^hrcPR7ef&R$FXb#TowpnR8ov zcfGp~wqxgF45ckj5nv?}tsr^mQ;6CkL|!T?XrQfBCA~l^Aq3hM2_z(V07OebLKS^L z4HAe-QK~+r66Gat+#e?asR++^8^w9ghXC{WA6?+FlT3lG>4pWdv$@p1{-kzs$Xox6j+kOe*im5+)%M&-32;Wo0Nli zMGWGxyj^?arE&+uxKBZ}jwC-r)mlWnvOq!6LM4$F7lq9Uep8^>#Q>Lc`RK&q=>Bhf zCv7Gx$R3Kp z{cODGpR8=|ewWzXp0*VPfO;f|FG3`rs#@N1iM`Nz!niO*{yIUZ6F(F#hOU9N2j~Lscy;cEquiWYAY0z6JTMHG^ipR^vce`wIu7(wDhWEqeHpop;j6m#$ibOecFA2J(j?UE*yh1#AAfUN6w0}p$xOOkABp1v+lTffku ze67f$yh47lVkrfIfy1lXQvvo|6|Um~gP~Xpk64j*lBl8x$;hZJmBXU6^ydpSZeP)O z^Xx#4R-Z-zzL)xwOST(?WR`=YEQ+&8@I4hS6fc`VEkwQqBpbUF|svhN;Gi>&Jgwo6EIHw{7W8C^F_Y zZ@~K%TYJmf`v#9umyYA0Duq)Ncq5>xpxh1=QK$hX-EagTEP)tvy?3zj#-NO?#-%x+ zTzZAK<)JguS^bKq2crjN^2(2Cwd=$IW%AEeEQiekZB`Y4i~`hotdSbOUk7)ZE06(< z#2q^zEAUw}OW1aqoDJ*QKO7d#&22Gp_OjxUu_LOzvI!YJbN#{in{!P*feo<}Y=4r1 za*Mp%B`k1YcsTEQz#*VCn6nVLV8^4pIo=-%>-jIeK>p?4n>2r%w0@Nd-;Wz7+Fw;l zP&5C2EIW2hb>Ic}J(zk2PcS>_KVp~J?bzj&Q^ zuUK_sxU}$atDPQXwi7tDcRJ_D5zR~`n~c#7Yx5a+bt}$@S@?XU9hZ)sI>2eq?lQL< zp6-knI^AOzKfT)8Vjl$b+BvH3KieFS`y`(&-u0qHE9Ts&^>MJ|W-GDYE|#xGo?Mbp z6;l7KMtiRN_op#_~1@=UX_+HnZl}G=)!|XimLz-ls2+oS(#JmZuNV zV9<)IO6w9z6S1(b3f9Tu{Jl2G?}Tj^;$9TRry-A7{HFP @@ -67,7 +70,7 @@ const locationInfo = [ .location-panel { width: 100%; padding: clamp(16px, vh(16), 18px) clamp(6px, vw(6), 6px); - background: url('../../assets/images/LocationPanel/地理位置内容背景.png') no-repeat center center; + background: url('../../assets/images/LocationPanel/地理位置展出1.png') no-repeat center center; background-size: 100% 100%; border-radius: vw(8); box-shadow: 0 0 vw(12) rgba(0, 0, 0, 0.35); @@ -82,7 +85,7 @@ const locationInfo = [ display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: repeat(2, minmax(0, 1fr)); - gap: clamp(2px, vh(4), 6px) 0px; + gap: clamp(2px, vh(10), 6px) 0px; width: 100%; height: 100%; } diff --git a/packages/screen/src/views/3DSituationalAwarenessRefactor/components/RightPanel/DispatchCommand.vue b/packages/screen/src/views/3DSituationalAwarenessRefactor/components/RightPanel/DispatchCommand.vue index f08d955..4b19353 100644 --- a/packages/screen/src/views/3DSituationalAwarenessRefactor/components/RightPanel/DispatchCommand.vue +++ b/packages/screen/src/views/3DSituationalAwarenessRefactor/components/RightPanel/DispatchCommand.vue @@ -17,7 +17,7 @@ 序号 {{ getColumnName('name') }} {{ getColumnName('dept') }} - 位置信息(公里) + 操作 @@ -30,7 +30,7 @@ {{ index + 1 }} {{ item.name }} {{ item.department || item.type || '-' }} - {{ item.distance || item.altitude || '-' }} + 联动 @@ -111,7 +111,7 @@ const getColumnName = (type) => { .table-header { display: grid; - grid-template-columns: vw(50) 1fr 1fr 1fr vw(80); + grid-template-columns: vw(50) 1fr 1fr vw(80); gap: vw(8); padding: vh(12) vw(16); // background: rgba(20, 53, 118, 0.5); @@ -147,7 +147,7 @@ const getColumnName = (type) => { .table-row { display: grid; - grid-template-columns: vw(50) 1fr 1fr 1fr vw(80); + grid-template-columns: vw(50) 1fr 1fr vw(80); gap: vw(8); padding: vh(6) vw(16); background: linear-gradient(to right, #163b60, #133147); diff --git a/packages/screen/src/views/3DSituationalAwarenessRefactor/components/shared/ActionButton.vue b/packages/screen/src/views/3DSituationalAwarenessRefactor/components/shared/ActionButton.vue index f4587fd..e624d78 100644 --- a/packages/screen/src/views/3DSituationalAwarenessRefactor/components/shared/ActionButton.vue +++ b/packages/screen/src/views/3DSituationalAwarenessRefactor/components/shared/ActionButton.vue @@ -58,6 +58,13 @@ const handleClick = () => { font-weight: 500; white-space: nowrap; + &:hover { + background-image: none; + background-color: #4FECFF; + color: #062B5B; + border-radius: 5px; + } + &__icon { width: vw(16); height: vh(16); @@ -95,7 +102,7 @@ const handleClick = () => { } &--medium { - padding: vh(10) vw(20); + padding: vh(12) vw(32); font-size: fs(14); } diff --git a/packages/screen/src/views/3DSituationalAwarenessRefactor/components/shared/EmergencyPlanContent.vue b/packages/screen/src/views/3DSituationalAwarenessRefactor/components/shared/EmergencyPlanContent.vue index adbf06b..2b1f619 100644 --- a/packages/screen/src/views/3DSituationalAwarenessRefactor/components/shared/EmergencyPlanContent.vue +++ b/packages/screen/src/views/3DSituationalAwarenessRefactor/components/shared/EmergencyPlanContent.vue @@ -19,6 +19,7 @@ class="custom-select" popper-class="custom-dropdown" > + @@ -31,6 +32,7 @@ class="custom-select" popper-class="custom-dropdown" > + @@ -59,7 +61,14 @@ class="custom-select" popper-class="custom-dropdown" > - + + @@ -81,6 +90,10 @@ class="custom-select" popper-class="custom-dropdown" > + @@ -92,6 +105,7 @@ class="custom-select" popper-class="custom-dropdown" > + @@ -176,10 +190,16 @@ :key="plan.id" class="dispatch-card" > - +

- 基地{{ plan.id }}:{{ plan.stationName || 'xxxxx名称' }} + 基地{{ plan.id }}:{{ plan.stationName || "xxxxx名称" }}

props.stations); * 表单数据 */ const formData = reactive({ - commander: "王军", - viceCommander: "刘勇", - trafficControl: "公安交警、交通执法队", + commander: "陈前", + viceCommander: "樵继川", + trafficControl: "忠县交通巡逻警察大队", infoRelease: "融媒体中心", - vehicleDispatch: "xxx消防队", - personnelRescue: "xx医院", + vehicleDispatch: "忠县交通运输综合执法支队", + personnelRescue: "忠县人民医院", clearanceMethod: "两端对接抢通,必要时开辟工作面", estimatedTime: "6小时", }); @@ -259,41 +279,41 @@ const clearanceSteps = reactive([ number: "①", title: "评估封控", content: - "对现场进行封控,清点各类应急物资提前到达现场,划定作业区与危险区,设立观察哨,全程监控边坡状况。", + "对现场进行封闭,落实告警阻拦措施;对灾毁周边稳定性进行评估,划定作业区与危险区,设立观察哨,全程监控边坡状态。", }, { id: 2, number: "②", title: "边坡排险", content: - "在确保安全的前提下,使用长臂挖掘机或人工在安全地域进行清除工作。注意下方施救作业。", + "在确保安全的前提下,使用长臂挖掘机或人工在安全绳保护下对坡面上已松动、悬空的岩石和土体进行清除,注意下方暂停作业。", }, { id: 3, number: "③", title: "梯形清方", content: - '按照机械自上而下,装载机抢先挖入土石堆入车,确土车上车主生,增土车队运输,将受阻路段疏通清理通道。确保抢险不停工,形成高效的"挖一装一运"循环。', + '挖掘机在最前方、负责将塌方体挖松,装载机将土石料装入渣土车,渣土车编队运输,将废料运至指定弃渣场。确保挖掘机、装载机、渣土车数量匹配,形成高效的"挖一装一运"循环。', }, { id: 4, number: "④", title: "开辟工作面", content: - "根据地质情况而规划车,利用挖掘机、装载机完成设备增加的工作面。增加作业效率。", + "根据抢通和救援要求,利用挖掘机、装载机或无人设备开辟新的工作面,增加作业效率。", }, { id: 5, number: "⑤", title: "交通疏导", content: - "清理出足够疏散车辆的临时性通道,临时道路根据道路情况设置限量所制路牌。在应急抢险下,试行错位通车。", + "清理出足够疏散车辆的临时性通道,临时通道边缘用锥桶或沙袋进行警示和防护,在现场指挥下,放行积压车辆。", }, { id: 6, number: "⑥", title: "全断面抢通", - content: "将剩余集聚废弃物的清理清除,恢复道路原貌状。", + content: "将剩余塌方体彻底清理,恢复路面原状。", }, ]); @@ -305,14 +325,16 @@ const dispatchPlans = ref([ id: 1, stationName: "", // 站点名称,从 stations 自动赋值 resources: [ - { label: "轮播挖掘机挖掘机", value: "1台" }, + { label: "轮式挖掘机", value: "1台" }, { label: "平板拖车", value: "1台" }, { label: "自卸货车", value: "4台" }, { label: "工程车", value: "1台" }, + { label: "装载机", value: "1台" }, { label: "人员", value: "15人" }, + { label: "锥桶", value: "30件" }, + { label: "铁锹", value: "10件" }, + { label: "雪糕筒", value: "50件" }, { label: "标志标牌", value: "5块" }, - { label: "铁锹", value: "30件" }, - { label: "铁镐", value: "10件" }, { label: "麻袋、砂石袋等", value: "若干" }, ], }, @@ -320,14 +342,16 @@ const dispatchPlans = ref([ id: 2, stationName: "", resources: [ - { label: "轮播挖掘机挖掘机", value: "1台" }, + { label: "轮式挖掘机", value: "1台" }, { label: "平板拖车", value: "1台" }, { label: "自卸货车", value: "4台" }, { label: "工程车", value: "1台" }, - { label: "人员", value: "15人" }, + { label: "装载机", value: "15台" }, + { label: "人员", value: "5人" }, + { label: "锥桶", value: "30件" }, + { label: "铁锹", value: "10件" }, + { label: "雪糕筒", value: "50件" }, { label: "标志标牌", value: "5块" }, - { label: "铁锹", value: "30件" }, - { label: "铁镐", value: "10件" }, { label: "麻袋、砂石袋等", value: "若干" }, ], }, @@ -337,7 +361,7 @@ const dispatchPlans = ref([ * 后续处治文本 */ const followUpText = ref( - '将该处于方案大部分障碍清点,设置"注意落石"等标志牌,进行巡逻管控,进行巡逻处理信号监测统设备。' + "将该处作为重大涉灾隐患点,设置“注意落石、观察通行”等标志,进行提级管控,进行边坡治理或设置监测预警设备。" ); /** @@ -384,7 +408,7 @@ watch( */ const handleAddPlan = () => { // 暂时禁止新增预案 - return + return; console.log("[EmergencyPlanContent] 点击新增预案"); const newId = Math.max(...dispatchPlans.value.map((p) => p.id)) + 1; const newIndex = dispatchPlans.value.length; @@ -393,14 +417,16 @@ const handleAddPlan = () => { id: newId, stationName: getStationNameByIndex(newIndex), resources: [ - { label: "轮播挖掘机挖掘机", value: "1台" }, + { label: "轮式挖掘机", value: "1台" }, { label: "平板拖车", value: "1台" }, { label: "自卸货车", value: "4台" }, { label: "工程车", value: "1台" }, - { label: "人员", value: "15人" }, + { label: "装载机", value: "15台" }, + { label: "人员", value: "5人" }, + { label: "锥桶", value: "30件" }, + { label: "铁锹", value: "10件" }, + { label: "雪糕筒", value: "50件" }, { label: "标志标牌", value: "5块" }, - { label: "铁锹", value: "30件" }, - { label: "铁镐", value: "10件" }, { label: "麻袋、砂石袋等", value: "若干" }, ], }); @@ -411,7 +437,7 @@ const handleAddPlan = () => { */ const handleDeletePlan = (id) => { // 暂时禁止删除预案 - return + return; console.log("[EmergencyPlanContent] 删除预案", id); const index = dispatchPlans.value.findIndex((p) => p.id === id); if (index > -1) { @@ -716,6 +742,8 @@ const handleDeletePlan = (id) => { line-height: 1.6; padding: vh(8) vw(12); transition: box-shadow 0.3s ease; + overflow: hidden !important; + // resize: none !important; &:hover { box-shadow: 0 0 0 1px var(--primary-color) inset !important; diff --git a/packages/screen/src/views/3DSituationalAwarenessRefactor/composables/useDisasterData.js b/packages/screen/src/views/3DSituationalAwarenessRefactor/composables/useDisasterData.js index 4e88021..158ec7c 100644 --- a/packages/screen/src/views/3DSituationalAwarenessRefactor/composables/useDisasterData.js +++ b/packages/screen/src/views/3DSituationalAwarenessRefactor/composables/useDisasterData.js @@ -82,8 +82,10 @@ export function useDisasterData() { { id: 1, source: '气象预警', + // content: + // `忠县气象台${getCurrentDate()} 08:30分升级发布"暴雨黄色预警信号",过去6小时,文峰、红池坝、天元、长桂等乡镇累计降雨量已达70毫米以上。`, content: - `忠县气象台${getCurrentDate()} 08:30分升级发布"暴雨黄色预警信号",过去6小时,文峰、红池坝、天元、长桂等乡镇累计降雨量已达70毫米以上。`, + `忠县气象台2025-11-19 08:30分升级发布"暴雨黄色预警信号",过去6小时,文峰、红池坝、天元、长桂等乡镇累计降雨量已达70毫米以上。`, timestamp: getCurrentDateTime('08:30') }, { @@ -95,8 +97,10 @@ export function useDisasterData() { { id: 3, source: '融媒体中心', + // content: + // `发布了阻断信息:巴南S204武大线三湾于${getCurrentDateWithoutYear()}发生山体滑坡,边坡有继续垮塌风险,需断道观察,车辆从桥口坝绕行金田村,预计${getCurrentDate()} 24:00恢复通行。`, content: - `发布了阻断信息:巴南S204武大线三湾于${getCurrentDateWithoutYear()}发生山体滑坡,边坡有继续垮塌风险,需断道观察,车辆从桥口坝绕行金田村,预计${getCurrentDate()} 24:00恢复通行。`, + `发布了阻断信息:巴南S204武大线三湾于11月19日发生山体滑坡,边坡有继续垮塌风险,需断道观察,车辆从桥口坝绕行金田村,预计2025-11-19 24:00恢复通行。`, timestamp: getCurrentDateTime('24:00') } ]) diff --git a/packages/screen/src/views/3DSituationalAwarenessRefactor/composables/useForceDispatch.js b/packages/screen/src/views/3DSituationalAwarenessRefactor/composables/useForceDispatch.js index a173bcc..05881c9 100644 --- a/packages/screen/src/views/3DSituationalAwarenessRefactor/composables/useForceDispatch.js +++ b/packages/screen/src/views/3DSituationalAwarenessRefactor/composables/useForceDispatch.js @@ -47,6 +47,13 @@ export function useForceDispatch() { }, { id: 2, + name: '挖掘机-002', + type: '挖掘机', + distance: 1.2, + status: 'ready' + }, + { + id: 3, name: '运输车-002', type: '运输车', distance: 0.8, @@ -63,13 +70,6 @@ export function useForceDispatch() { battery: 85, status: 'flying' }, - { - id: 2, - name: '无人机-002', - altitude: 100, - battery: 92, - status: 'flying' - } ]) // 切换标签页 diff --git a/packages/screen/src/views/3DSituationalAwarenessRefactor/constants/index.js b/packages/screen/src/views/3DSituationalAwarenessRefactor/constants/index.js index 27afcb2..f61b875 100644 --- a/packages/screen/src/views/3DSituationalAwarenessRefactor/constants/index.js +++ b/packages/screen/src/views/3DSituationalAwarenessRefactor/constants/index.js @@ -46,7 +46,7 @@ export const VIDEO_MONITORS = [ { id: 3, type: VIDEO_TYPES.VEHICLE_EXTERNAL, - title: '指挥车外部视角', + title: '设备操作视角', videoSrc: 'http://222.212.85.86:9000/300bdf2b-a150-406e-be63-d28bd29b409f/demo/ylzg/指挥车外部视角.mp4', dateRange: '2025/9/1-2025/12/1', @@ -58,7 +58,7 @@ export const VIDEO_MONITORS = [ { id: 4, type: VIDEO_TYPES.VEHICLE_MEETING, - title: '指挥车会议视角', + title: '指挥会议室视角', videoSrc: 'http://222.212.85.86:9000/300bdf2b-a150-406e-be63-d28bd29b409f/demo/ylzg/指挥车会议视角.mp4', dateRange: '2025/9/1-2025/12/1', @@ -79,9 +79,9 @@ export const DIRECTIONS = { // 现场设备标签页 export const DISPATCH_TABS = [ - { key: 'personnel', label: '现场单兵', count: 23 }, - { key: 'equipment', label: '现场设备', count: 21 }, - { key: 'drone', label: '现场无人机', count: 21 }, + { key: 'personnel', label: '现场单兵', count: 3 }, + { key: 'equipment', label: '现场设备', count: 3 }, + { key: 'drone', label: '现场无人机', count: 1 }, ] // 响应等级