nxd-plugin 1.7.80 → 1.7.83

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/dist/chunks/{component-AiChat-CtsIvsGB.mjs → component-AiChat-C1xBPkS5.mjs} +312 -260
  2. package/dist/chunks/{component-AqiMonitor-D16SVL6m.mjs → component-AqiMonitor-DoAVs1Jf.mjs} +1 -1
  3. package/dist/chunks/{component-ChartCumulativePre-CXnKE427.mjs → component-ChartCumulativePre-BOIMPYxl.mjs} +2 -2
  4. package/dist/chunks/{component-ChartServiceMaterial-_cOa2zr2.mjs → component-ChartServiceMaterial-CmR3bmG_.mjs} +2 -2
  5. package/dist/chunks/{component-Duty-D0YruNKe.mjs → component-Duty-gmt7ZcSc.mjs} +2 -2
  6. package/dist/chunks/{component-EarlyWarningStatistic-CWzunUWV.mjs → component-EarlyWarningStatistic-BWYWrz65.mjs} +2 -2
  7. package/dist/chunks/component-Forecast72h-BZ1kB2TJ.mjs +427 -0
  8. package/dist/chunks/{component-GeologyLiveAlarm-CvwronHT.mjs → component-GeologyLiveAlarm-CNpQPmGs.mjs} +2 -2
  9. package/dist/chunks/component-HdHeatService-ok6q8UuG.mjs +412 -0
  10. package/dist/chunks/component-HdObservation-BmQdGJV6.mjs +600 -0
  11. package/dist/chunks/component-HdPreSituation-LBpO58bE.mjs +604 -0
  12. package/dist/chunks/component-HdRadarTime-D7hOn_ph.mjs +461 -0
  13. package/dist/chunks/component-HdSeaCase-DYPQ7CdN.mjs +219 -0
  14. package/dist/chunks/component-HdServiceRequirements-DcXrcIIV.mjs +143 -0
  15. package/dist/chunks/component-HdStationTem-US6IRwbQ.mjs +573 -0
  16. package/dist/chunks/{component-HighQuality-mh3fFFrU.mjs → component-HighQuality-B0OgPi3T.mjs} +3 -3
  17. package/dist/chunks/{component-HighWayEarlyWarningRed-bUwQzo1p.mjs → component-HighWayEarlyWarningRed-BTl2WWZ-.mjs} +907 -759
  18. package/dist/chunks/{component-HighWayFreeze-sv_B8HYz.mjs → component-HighWayFreeze-B1aMHQWU.mjs} +2 -2
  19. package/dist/chunks/{component-HighwayLiveAlarm-C5CT4pNH.mjs → component-HighwayLiveAlarm-8u45ZdnN.mjs} +2 -2
  20. package/dist/chunks/{component-HighwayLiveAlarmNew-DwM5R3uq.mjs → component-HighwayLiveAlarmNew-DK827eVk.mjs} +3 -3
  21. package/dist/chunks/{component-HighwayStations-DUpEnASL.mjs → component-HighwayStations-BzrbWP50.mjs} +2 -2
  22. package/dist/chunks/{component-HighwayWeatherForecast-DySnAsrW.mjs → component-HighwayWeatherForecast-DER5XGc3.mjs} +2 -2
  23. package/dist/chunks/{component-IframeWeb-ZChwSgDN.mjs → component-IframeWeb-DuBssYPk.mjs} +1 -1
  24. package/dist/chunks/{component-ImageGeneration-B17dWjVV.mjs → component-ImageGeneration-3G3j7utC.mjs} +1 -1
  25. package/dist/chunks/{component-IntroducePic-hpd3_zKO.mjs → component-IntroducePic-L8VH8Yq8.mjs} +1 -1
  26. package/dist/chunks/{component-LithiumBatteryMiningArea-BLx7FYWI.mjs → component-LithiumBatteryMiningArea-DSFTVepN.mjs} +2 -2
  27. package/dist/chunks/{component-MapPopup-BBY3WROQ.mjs → component-MapPopup-BNc18syw.mjs} +1 -1
  28. package/dist/chunks/{component-MaterialPreview-W3eNeSc0.mjs → component-MaterialPreview-DhLUbjcT.mjs} +2 -2
  29. package/dist/chunks/{component-PieLegend-YE4EI4RM.mjs → component-PieLegend-Haojhtet.mjs} +1 -1
  30. package/dist/chunks/component-PrecipitationRanking-BanKrD3J.mjs +608 -0
  31. package/dist/chunks/{component-RadarChart-BnaENnYS.mjs → component-RadarChart-BYMbkI3K.mjs} +2 -2
  32. package/dist/chunks/{component-RadarLegend-B_mzSJzM.mjs → component-RadarLegend-CiGsla7a.mjs} +1 -1
  33. package/dist/chunks/{component-RadarShortTerm-BGK_OnB2.mjs → component-RadarShortTerm-yPc2UWpz.mjs} +4 -4
  34. package/dist/chunks/{component-RadarTime-Bm7mOE3Z.mjs → component-RadarTime-CkqIaTJh.mjs} +2 -2
  35. package/dist/chunks/{component-RenderMarkdown-9GGS03jg.mjs → component-RenderMarkdown-D590sXEf.mjs} +2 -2
  36. package/dist/chunks/{component-ReservoirLiveAlarm-B9Sxhqyu.mjs → component-ReservoirLiveAlarm-DTtKdDQS.mjs} +3 -3
  37. package/dist/chunks/{component-ServiceMaterial-wVF-3Lpq.mjs → component-ServiceMaterial-BKbVQbKm.mjs} +2 -2
  38. package/dist/chunks/{component-ServiceMaterialsBtn-DXbl0E-k.mjs → component-ServiceMaterialsBtn-CskK-Qiz.mjs} +1 -1
  39. package/dist/chunks/component-StationDialog-Bn7Fbk24.mjs +897 -0
  40. package/dist/chunks/component-StationList-DRABlFdc.mjs +323 -0
  41. package/dist/chunks/{component-TimeBasedForecast-Cqb98MyV.mjs → component-TimeBasedForecast-D1fJ4rGJ.mjs} +4 -4
  42. package/dist/chunks/{component-WarningLine-DWxDqXz4.mjs → component-WarningLine-jN8sg45u.mjs} +2 -2
  43. package/dist/chunks/{component-WarningSignal-C6bMbzAR.mjs → component-WarningSignal-BkIKqyJB.mjs} +3 -3
  44. package/dist/chunks/component-WeatherForecast-CYsbJhYt.mjs +225 -0
  45. package/dist/chunks/{component-YCDataMonitor-CdjR4SD9.mjs → component-YCDataMonitor-vVlnkSzT.mjs} +2 -2
  46. package/dist/chunks/{component-YCDataService-BVgkmLN8.mjs → component-YCDataService-okkY1-iU.mjs} +4 -4
  47. package/dist/chunks/{component-YCHome-DoRcqj79.mjs → component-YCHome-BfpbxDIg.mjs} +4 -4
  48. package/dist/chunks/{component-YCHomeLegend-_Iq4kWV6.mjs → component-YCHomeLegend-CuT-BwNJ.mjs} +1 -1
  49. package/dist/chunks/{component-YCLoginNew-CA6LbHIs.mjs → component-YCLoginNew-KZoyW1EV.mjs} +3 -3
  50. package/dist/components/Forecast72h/Forecast72h.vue.d.ts +50 -0
  51. package/dist/components/HdHeatService/HdHeatService.vue.d.ts +56 -0
  52. package/dist/components/HdObservation/HdObservation.vue.d.ts +43 -0
  53. package/dist/components/HdPreSituation/HdPreSituation.vue.d.ts +62 -0
  54. package/dist/components/HdQxServiceEffects/HdQxServiceEffects.vue.d.ts +59 -0
  55. package/dist/components/HdRadarTime/HdRadarTime.vue.d.ts +71 -0
  56. package/dist/components/HdSeaCase/HdSeaCase.vue.d.ts +46 -0
  57. package/dist/components/HdServiceRequirements/HdServiceRequirements.vue.d.ts +51 -0
  58. package/dist/components/HdStationTem/HdStationTem.vue.d.ts +69 -0
  59. package/dist/components/HighWayEarlyWarningRed/Call.vue.d.ts +18 -0
  60. package/dist/components/HighWayEarlyWarningRed/HighWayEarlyWarningRed.vue.d.ts +5 -0
  61. package/dist/components/PrecipitationRanking/PrecipitationRanking.vue.d.ts +57 -0
  62. package/dist/components/StationDialog/StationDialog.vue.d.ts +90 -0
  63. package/dist/components/StationList/StationList.vue.d.ts +64 -0
  64. package/dist/index.d.ts +13 -1
  65. package/dist/nxd-plugin.mjs +51 -40
  66. package/dist/styles/component-Forecast72h.css +1 -0
  67. package/dist/styles/component-HdHeatService.css +1 -0
  68. package/dist/styles/component-HdObservation.css +1 -0
  69. package/dist/styles/component-HdPreSituation.css +1 -0
  70. package/dist/styles/component-HdRadarTime.css +1 -0
  71. package/dist/styles/component-HdSeaCase.css +1 -0
  72. package/dist/styles/component-HdServiceRequirements.css +1 -0
  73. package/dist/styles/component-HdStationTem.css +1 -0
  74. package/dist/styles/component-HighQuality.css +1 -1
  75. package/dist/styles/component-HighWayEarlyWarningRed.css +1 -1
  76. package/dist/styles/component-PrecipitationRanking.css +1 -0
  77. package/dist/styles/component-StationDialog.css +1 -0
  78. package/dist/styles/component-StationList.css +1 -0
  79. package/dist/styles/component-WeatherForecast.css +1 -1
  80. package/dist/styles/component-YCLoginNew.css +1 -1
  81. package/package.json +2 -1
  82. package/dist/chunks/component-WeatherForecast-EqHxKbyh.mjs +0 -210
@@ -0,0 +1,461 @@
1
+ import { n as e } from "./component-AqiMonitor-DoAVs1Jf.mjs";
2
+ import { i as t } from "./component-AiChat-C1xBPkS5.mjs";
3
+ import { ElCheckbox as n, ElConfigProvider as r, ElDatePicker as i, ElLoadingDirective as a, ElOption as o, ElSelect as s } from "element-plus/es";
4
+ import { Fragment as c, computed as l, createBlock as u, createCommentVNode as d, createElementBlock as f, createElementVNode as p, createTextVNode as ee, createVNode as m, defineComponent as h, getCurrentInstance as te, nextTick as g, normalizeClass as _, normalizeStyle as v, onBeforeUnmount as y, onMounted as ne, openBlock as b, ref as x, renderList as S, toDisplayString as C, unref as re, vShow as ie, watch as w, withCtx as T, withDirectives as E, withModifiers as ae } from "vue";
5
+ import oe from "element-plus/es/locale/lang/zh-cn.mjs";
6
+ //#region src/components/HdRadarTime/HdRadarTime.vue?vue&type=script&setup=true&lang.ts
7
+ var se = { class: "HdRadarTime-main" }, ce = { class: "HdRadarTime-controls" }, le = { class: "HdRadarTime-queryTime" }, ue = { class: "HdRadarTime-dropdownText" }, de = { class: "HdRadarTime-dropdownPanel" }, fe = { class: "HdRadarTime-dropdownList" }, pe = {
8
+ key: 0,
9
+ class: "HdRadarTime-dropdownItem HdRadarTime-dropdownItem--empty"
10
+ }, me = ["onClick"], he = { class: "HdRadarTime-checkboxes" }, ge = { class: "HdRadarTime-speed" }, _e = { class: "HdRadarTime-playWrap" }, ve = {
11
+ key: 0,
12
+ xmlns: "http://www.w3.org/2000/svg",
13
+ width: "16",
14
+ height: "16",
15
+ viewBox: "0 0 24 24",
16
+ fill: "#fff"
17
+ }, ye = {
18
+ key: 1,
19
+ xmlns: "http://www.w3.org/2000/svg",
20
+ width: "16",
21
+ height: "16",
22
+ viewBox: "0 0 24 24",
23
+ fill: "#fff"
24
+ }, be = { class: "HdRadarTime-trackBg" }, xe = { class: "HdRadarTime-ticks" }, Se = ["onClick"], Ce = 1e3, we = /* @__PURE__ */ e(/* @__PURE__ */ h({
25
+ __name: "HdRadarTime",
26
+ props: {
27
+ mock: {
28
+ type: Boolean,
29
+ default: !0
30
+ },
31
+ baseHttp: { default: "" },
32
+ appKey: { default: "" },
33
+ appSalt: { default: "" },
34
+ ids: { default: () => ({}) },
35
+ mockData: {},
36
+ initialQueryTime: { default: "" },
37
+ initialSpeed: { default: 1 },
38
+ showGrid: {
39
+ type: Boolean,
40
+ default: !0
41
+ },
42
+ showLegend: {
43
+ type: Boolean,
44
+ default: !0
45
+ },
46
+ showCurrentTime: {
47
+ type: Boolean,
48
+ default: !0
49
+ }
50
+ },
51
+ emits: [
52
+ "close",
53
+ "radarChange",
54
+ "riskChange",
55
+ "legendChange",
56
+ "gridChange"
57
+ ],
58
+ setup(e, { emit: h }) {
59
+ let we = te()?.appContext.config.globalProperties.$bus, D = e, O = h, k = x(null), A = x(null), j = x(null), M = x(null), N = x(!1), P = x(!1), F = x(!1), I = x(D.initialQueryTime || ""), L = x([]), R = x([]), z = x(0), B = x(0), V = x(!1), H = x(D.initialSpeed), U = x(!1), Te = [
60
+ .5,
61
+ 1,
62
+ 1.5,
63
+ 2,
64
+ 3,
65
+ 4
66
+ ], W = null, G = {
67
+ x: 0,
68
+ y: 0
69
+ }, K = !1, q = l(() => R.value.map((e) => {
70
+ let t = e.radar_time || e.time || "";
71
+ return {
72
+ time: t,
73
+ displayTimeWithoutYear: t ? t.substring(5, 16) : ""
74
+ };
75
+ })), Ee = l(() => q.value.length > 0 && z.value >= 0 && q.value[z.value]?.displayTimeWithoutYear || "选择时间"), J = l(() => L.value[B.value] || null), Y = l(() => J.value?.type === "live"), De = l(() => {
76
+ if (!L.value.length) return 50;
77
+ let e = L.value.filter((e) => e.type === "live").length / L.value.length * 100;
78
+ return Math.max(e, 4.5);
79
+ }), Oe = l(() => {
80
+ if (!L.value.length || L.value.length <= 1) return 0;
81
+ let e = B.value / (L.value.length - 1) * 98;
82
+ return Math.max(0, Math.min(98, e));
83
+ }), ke = (e) => {
84
+ if (!L.value.length || L.value.length <= 1) return 0;
85
+ let t = e / (L.value.length - 1) * 98;
86
+ return Math.max(0, Math.min(98, t));
87
+ };
88
+ w(F, (e) => {
89
+ O("legendChange", e);
90
+ }), w(P, async (e) => {
91
+ if (!Y.value) {
92
+ O("gridChange", {
93
+ visible: !1,
94
+ gridData: null
95
+ });
96
+ return;
97
+ }
98
+ O("gridChange", {
99
+ visible: e,
100
+ gridData: e ? await Xe() : null
101
+ });
102
+ }), w(B, () => {
103
+ g(() => {
104
+ Ae();
105
+ });
106
+ }), w(H, () => {
107
+ V.value && Re();
108
+ });
109
+ let Ae = async () => {
110
+ let e = J.value;
111
+ e && (O("radarChange", {
112
+ time: e.time,
113
+ type: e.type,
114
+ imageInfo: e.imageInfo || null
115
+ }), e.type === "forecast" ? (e.riskData ||= await Ye(e.time), O("riskChange", {
116
+ time: e.time,
117
+ riskData: e.riskData || null
118
+ })) : O("riskChange", {
119
+ time: e.time,
120
+ riskData: null
121
+ }), P.value && Y.value ? O("gridChange", {
122
+ visible: !0,
123
+ gridData: await Xe()
124
+ }) : P.value && !Y.value && O("gridChange", {
125
+ visible: !1,
126
+ gridData: null
127
+ }));
128
+ }, je = (e) => {
129
+ I.value = e || "", Q();
130
+ }, Me = () => {
131
+ N.value = !N.value;
132
+ }, Ne = () => {
133
+ N.value = !1;
134
+ }, Pe = (e) => {
135
+ z.value = e, Je(), Ne();
136
+ }, Fe = (e) => {
137
+ j.value && !j.value.contains(e.target) && Ne();
138
+ }, Ie = (e) => {
139
+ B.value = e;
140
+ }, Le = () => {
141
+ V.value = !V.value;
142
+ }, Re = () => {
143
+ X();
144
+ let e = Math.max(200, Ce / H.value);
145
+ W = setInterval(() => {
146
+ L.value.length && (B.value = B.value >= L.value.length - 1 ? 0 : B.value + 1);
147
+ }, e);
148
+ }, X = () => {
149
+ W &&= (clearInterval(W), null);
150
+ };
151
+ w(V, (e) => {
152
+ e ? Re() : X();
153
+ });
154
+ let ze = (e) => {
155
+ e.button === 0 && (K = !0, He(e), e.preventDefault());
156
+ }, Be = (e) => {
157
+ K && He(e);
158
+ }, Ve = () => {
159
+ K = !1;
160
+ }, He = (e) => {
161
+ if (!M.value || !L.value.length) return;
162
+ let t = M.value.getBoundingClientRect(), n = e.clientX - t.left;
163
+ n = Math.max(0, Math.min(n, t.width));
164
+ let r = n / t.width, i = Math.round(r * (L.value.length - 1));
165
+ B.value = Math.max(0, Math.min(L.value.length - 1, i));
166
+ }, Ue = (e) => {
167
+ if (!k.value) return;
168
+ let t = k.value.getBoundingClientRect();
169
+ G.x = e.clientX - t.left, G.y = e.clientY - t.top, document.addEventListener("mousemove", We), document.addEventListener("mouseup", Ge), e.preventDefault();
170
+ }, We = (e) => {
171
+ k.value && (k.value.style.left = `${e.clientX - G.x}px`, k.value.style.top = `${e.clientY - G.y}px`, k.value.style.transform = "none");
172
+ }, Ge = () => {
173
+ document.removeEventListener("mousemove", We), document.removeEventListener("mouseup", Ge);
174
+ }, Ke = (e) => e ? e.data === void 0 ? e.result === void 0 ? e : e.result : e.data?.result?.output === void 0 ? e.data?.result === void 0 ? e.data : e.data.result : e.data.result.output : null, qe = (e) => {
175
+ let t = D.ids[e];
176
+ return t?.id ? t : null;
177
+ }, Z = async (e, n = {}) => {
178
+ let r = qe(e);
179
+ if (!r) return null;
180
+ try {
181
+ return Ke(await t({
182
+ id: r.id,
183
+ baseHttp: D.baseHttp,
184
+ reqType: r.reqType,
185
+ variables: n,
186
+ isFormData: r.isFormData,
187
+ appKey: D.appKey,
188
+ appSalt: D.appSalt
189
+ }));
190
+ } catch (t) {
191
+ return console.error(`[HdRadarTime] request ${e} failed:`, t), null;
192
+ }
193
+ }, Q = async () => {
194
+ U.value = !0;
195
+ try {
196
+ if (D.mock) {
197
+ let e = D.mockData?.liveData?.length ? D.mockData : Ze();
198
+ R.value = e.liveData || [], !R.value.length && e.timelineData?.length && (R.value = e.timelineData.filter((e) => e.type === "live").map((e) => ({
199
+ radar_time: e.time,
200
+ time: e.time,
201
+ ...e.imageInfo
202
+ }))), !I.value && e.radarQueryTime && (I.value = e.radarQueryTime);
203
+ } else {
204
+ let e = await Z("radarList", { queryTime: I.value });
205
+ R.value = Array.isArray(e) ? e : [];
206
+ }
207
+ z.value = R.value.length > 0 ? R.value.length - 1 : 0, Je();
208
+ } finally {
209
+ U.value = !1;
210
+ }
211
+ }, Je = () => {
212
+ let e = I.value ? new Date(I.value.replace(/-/g, "/")) : /* @__PURE__ */ new Date(), t = Math.max(0, Math.min(z.value, R.value.length - 1)), n = R.value.slice(t).map((e) => {
213
+ let t = e.radar_time || e.time || "";
214
+ return {
215
+ time: t,
216
+ type: "live",
217
+ fullTime: t,
218
+ imageInfo: {
219
+ time: t,
220
+ url: e.url || "",
221
+ extent: e.extent,
222
+ ...e
223
+ }
224
+ };
225
+ }), r = n.length > 0 ? new Date(n[n.length - 1].time.replace(/-/g, "/")) : e, i = (e) => String(e).padStart(2, "0");
226
+ for (let e = 1; e <= 12; e++) {
227
+ let t = new Date(r.getTime() + e * 10 * 60 * 1e3), a = `${t.getFullYear()}-${i(t.getMonth() + 1)}-${i(t.getDate())} ${i(t.getHours())}:${i(t.getMinutes())}:00`;
228
+ n.push({
229
+ time: a,
230
+ type: "forecast",
231
+ fullTime: a
232
+ });
233
+ }
234
+ L.value = n, B.value = 0;
235
+ }, Ye = async (e) => {
236
+ if (D.mock) {
237
+ let t = L.value.find((t) => t.time === e && t.type === "forecast");
238
+ return t?.riskData ? t.riskData : $(e);
239
+ }
240
+ return await Z("forecastRisk", { time: e });
241
+ }, Xe = async () => D.mock ? Qe() : await Z("gridData", { time: J.value?.time || "" });
242
+ function Ze() {
243
+ let e = [], t = [], n = /* @__PURE__ */ new Date(), r = (e) => String(e).padStart(2, "0"), i = (e) => `${e.getFullYear()}-${r(e.getMonth() + 1)}-${r(e.getDate())} ${r(e.getHours())}:${r(e.getMinutes())}:00`, a = (e) => `${r(e.getMonth() + 1)}-${r(e.getDate())} ${r(e.getHours())}:${r(e.getMinutes())}`;
244
+ for (let r = 0; r < 13; r++) {
245
+ let o = /* @__PURE__ */ new Date(n.getTime() - (12 - r) * 10 * 60 * 1e3), s = i(o), c = `https://example.com/radar/${s.replace(/[-: ]/g, "")}.png`;
246
+ t.push({
247
+ radar_time: s,
248
+ displayTime: a(o),
249
+ url: c,
250
+ extent: [
251
+ 118,
252
+ 34,
253
+ 121,
254
+ 37
255
+ ]
256
+ }), e.push({
257
+ time: s,
258
+ type: "live",
259
+ fullTime: s,
260
+ imageInfo: {
261
+ time: s,
262
+ url: c,
263
+ extent: [
264
+ 118,
265
+ 34,
266
+ 121,
267
+ 37
268
+ ]
269
+ }
270
+ });
271
+ }
272
+ for (let t = 1; t <= 12; t++) {
273
+ let r = i(new Date(n.getTime() + t * 10 * 60 * 1e3));
274
+ e.push({
275
+ time: r,
276
+ type: "forecast",
277
+ fullTime: r,
278
+ riskData: $(r)
279
+ });
280
+ }
281
+ return {
282
+ timelineData: e,
283
+ liveData: t,
284
+ radarQueryTime: i(n)
285
+ };
286
+ }
287
+ function $(e) {
288
+ return {
289
+ polygons: [{
290
+ polygonJson: [
291
+ {
292
+ lng: 118.5 + Math.random() * .5,
293
+ lat: 34.5 + Math.random() * .5
294
+ },
295
+ {
296
+ lng: 119 + Math.random() * .5,
297
+ lat: 35 + Math.random() * .5
298
+ },
299
+ {
300
+ lng: 119.5 + Math.random() * .5,
301
+ lat: 34.8 + Math.random() * .5
302
+ },
303
+ {
304
+ lng: 119.2 + Math.random() * .5,
305
+ lat: 34.3 + Math.random() * .5
306
+ }
307
+ ],
308
+ lineColor: "#ff4d4f",
309
+ weight: 2,
310
+ fillColor: "#ff4d4f",
311
+ fillOpacity: .3,
312
+ lineStyle: "solid",
313
+ otherData: { polyId: `risk-poly-${e}` }
314
+ }],
315
+ markers: [{
316
+ lng: 119 + (Math.random() - .5) * .8,
317
+ lat: 35 + (Math.random() - .5) * .8,
318
+ htmlString: "<div style=\"color:#ff4d4f;font-weight:bold;\">风险点</div>",
319
+ otherData: { markId: `risk-mark-${e}` }
320
+ }]
321
+ };
322
+ }
323
+ function Qe() {
324
+ return {
325
+ type: "grid",
326
+ points: Array.from({ length: 20 }, (e, t) => ({
327
+ lng: 118.5 + t % 5 * .5,
328
+ lat: 34.5 + Math.floor(t / 5) * .5,
329
+ value: Math.floor(Math.random() * 60)
330
+ }))
331
+ };
332
+ }
333
+ return ne(() => {
334
+ document.addEventListener("click", Fe), A.value?.addEventListener("mousedown", Ue), we?.on("toComponent", (e) => {
335
+ e.componentName === "HdRadarTime" && Q();
336
+ }), Q();
337
+ }), y(() => {
338
+ document.removeEventListener("click", Fe), A.value?.removeEventListener("mousedown", Ue), X();
339
+ }), (t, l) => {
340
+ let h = i, te = r, g = n, y = o, ne = s, x = a;
341
+ return E((b(), f("div", {
342
+ class: "HdRadarTime",
343
+ ref_key: "popupRef",
344
+ ref: k,
345
+ "element-loading-background": "rgba(0, 0, 0, 0.3)"
346
+ }, [p("div", {
347
+ class: "HdRadarTime-header",
348
+ ref_key: "dragHandleRef",
349
+ ref: A
350
+ }, [p("button", {
351
+ class: "HdRadarTime-close",
352
+ onClick: l[0] ||= (e) => O("close"),
353
+ title: "关闭"
354
+ }, [...l[5] ||= [p("span", null, "×", -1)]])], 512), p("div", se, [
355
+ p("div", ce, [
356
+ p("div", le, [m(te, { locale: re(oe) }, {
357
+ default: T(() => [m(h, {
358
+ modelValue: I.value,
359
+ "onUpdate:modelValue": l[1] ||= (e) => I.value = e,
360
+ type: "datetime",
361
+ placeholder: "选择查询时间",
362
+ format: "YYYY-MM-DD HH:mm",
363
+ "value-format": "YYYY-MM-DD HH:mm:ss",
364
+ clearable: !1,
365
+ size: "small",
366
+ class: "HdRadarTime-datePicker",
367
+ "popper-class": "HdRadarTime-datePopper",
368
+ onChange: je
369
+ }, null, 8, ["modelValue"])]),
370
+ _: 1
371
+ }, 8, ["locale"])]),
372
+ p("div", {
373
+ class: "HdRadarTime-dropdown",
374
+ ref_key: "dropdownRef",
375
+ ref: j
376
+ }, [p("div", {
377
+ class: "HdRadarTime-dropdownTrigger",
378
+ onClick: Me
379
+ }, [p("span", ue, C(q.value.length > 0 ? Ee.value : "暂无数据"), 1), p("span", { class: _(["HdRadarTime-dropdownArrow", { "HdRadarTime-dropdownArrow--open": N.value }]) }, "▼", 2)]), E(p("div", de, [p("div", fe, [q.value.length === 0 ? (b(), f("div", pe, " 暂无数据 ")) : (b(!0), f(c, { key: 1 }, S(q.value, (e, t) => (b(), f("div", {
380
+ key: t,
381
+ class: _(["HdRadarTime-dropdownItem", { "HdRadarTime-dropdownItem--active": z.value === t }]),
382
+ onClick: (e) => Pe(t)
383
+ }, C(e.displayTimeWithoutYear), 11, me))), 128))])], 512), [[ie, N.value]])], 512),
384
+ p("div", he, [e.showGrid && Y.value ? (b(), u(g, {
385
+ key: 0,
386
+ modelValue: P.value,
387
+ "onUpdate:modelValue": l[2] ||= (e) => P.value = e,
388
+ size: "small"
389
+ }, {
390
+ default: T(() => [...l[6] ||= [ee("dBZ网格", -1)]]),
391
+ _: 1
392
+ }, 8, ["modelValue"])) : d("", !0), e.showLegend ? (b(), u(g, {
393
+ key: 1,
394
+ modelValue: F.value,
395
+ "onUpdate:modelValue": l[3] ||= (e) => F.value = e,
396
+ size: "small"
397
+ }, {
398
+ default: T(() => [...l[7] ||= [ee("图例", -1)]]),
399
+ _: 1
400
+ }, 8, ["modelValue"])) : d("", !0)]),
401
+ p("div", ge, [l[8] ||= p("span", { class: "HdRadarTime-speedLabel" }, "播放间隔", -1), m(ne, {
402
+ modelValue: H.value,
403
+ "onUpdate:modelValue": l[4] ||= (e) => H.value = e,
404
+ class: "HdRadarTime-speedSelect",
405
+ "popper-class": "HdRadarTime-speedPopper",
406
+ size: "small",
407
+ teleported: !1
408
+ }, {
409
+ default: T(() => [(b(), f(c, null, S(Te, (e) => m(y, {
410
+ key: e,
411
+ label: `×${e}`,
412
+ value: e
413
+ }, null, 8, ["label", "value"])), 64))]),
414
+ _: 1
415
+ }, 8, ["modelValue"])])
416
+ ]),
417
+ p("div", _e, [p("button", {
418
+ class: _(["HdRadarTime-playBtn", { "HdRadarTime-playBtn--playing": V.value }]),
419
+ onClick: Le
420
+ }, [V.value ? (b(), f("svg", ye, [...l[10] ||= [p("path", { d: "M6 4h4v16H6V4zm8 0h4v16h-4V4z" }, null, -1)]])) : (b(), f("svg", ve, [...l[9] ||= [p("path", { d: "M8 5v14l11-7z" }, null, -1)]]))], 2)]),
421
+ p("div", {
422
+ class: "HdRadarTime-track",
423
+ ref_key: "trackRef",
424
+ ref: M,
425
+ onMousedown: ze,
426
+ onMousemove: Be,
427
+ onMouseup: Ve,
428
+ onMouseleave: Ve
429
+ }, [
430
+ p("div", be, [p("div", {
431
+ class: "HdRadarTime-trackSection HdRadarTime-trackSection--live",
432
+ style: v({ width: De.value + "%" })
433
+ }, [...l[11] ||= [p("span", { class: "HdRadarTime-trackLabel" }, "实况", -1)]], 4), p("div", {
434
+ class: "HdRadarTime-trackSection HdRadarTime-trackSection--forecast",
435
+ style: v({ width: 100 - De.value + "%" })
436
+ }, [...l[12] ||= [p("span", {
437
+ class: "HdRadarTime-trackLabel",
438
+ style: { color: "#fff" }
439
+ }, "外推", -1)]], 4)]),
440
+ p("div", xe, [(b(!0), f(c, null, S(L.value, (e, t) => (b(), f("div", {
441
+ key: t,
442
+ class: _(["HdRadarTime-tick", { "HdRadarTime-tick--active": B.value === t }]),
443
+ style: v({ left: ke(t) + "%" }),
444
+ onClick: ae((e) => Ie(t), ["stop"])
445
+ }, [...l[13] ||= [p("div", { class: "HdRadarTime-tickDot" }, null, -1)]], 14, Se))), 128))]),
446
+ p("div", {
447
+ class: "HdRadarTime-indicator",
448
+ style: v({ left: Oe.value + "%" })
449
+ }, null, 4),
450
+ e.showCurrentTime && J.value ? (b(), f("div", {
451
+ key: 0,
452
+ class: "HdRadarTime-currentTime",
453
+ style: v({ left: Oe.value + "%" })
454
+ }, C(J.value.time.substring(11, 16)), 5)) : d("", !0)
455
+ ], 544)
456
+ ])])), [[x, U.value]]);
457
+ };
458
+ }
459
+ }), [["__scopeId", "data-v-77788119"]]);
460
+ //#endregion
461
+ export { we as t };
@@ -0,0 +1,219 @@
1
+ import { n as e } from "./component-AqiMonitor-DoAVs1Jf.mjs";
2
+ import { i as t } from "./component-AiChat-C1xBPkS5.mjs";
3
+ import { ElOption as n, ElSelect as r } from "element-plus/es";
4
+ import { Fragment as i, computed as a, createBlock as o, createCommentVNode as s, createElementBlock as c, createElementVNode as l, createVNode as u, defineComponent as d, getCurrentInstance as f, normalizeClass as p, normalizeStyle as m, onMounted as h, openBlock as g, ref as _, renderList as v, toDisplayString as y, watch as ee, withCtx as b } from "vue";
5
+ //#region src/components/HdSeaCase/HdSeaCase.vue?vue&type=script&setup=true&lang.ts
6
+ var x = { class: "HdSeaCase" }, S = { class: "HdSeaCase-panel" }, C = { class: "HdSeaCase-caseBar" }, w = { class: "HdSeaCase-body" }, te = { class: "HdSeaCase-cards" }, ne = ["onClick"], T = { class: "HdSeaCase-cardHeader" }, E = { class: "HdSeaCase-cardBody" }, D = { class: "HdSeaCase-axis" }, O = ["onClick"], k = { class: "HdSeaCase-stages" }, A = ["onClick"], j = {
7
+ key: 0,
8
+ class: "HdSeaCase-detailMask"
9
+ }, M = { class: "HdSeaCase-detailPopup" }, N = { class: "HdSeaCase-detailHeader" }, P = { class: "HdSeaCase-detailBody" }, F = {
10
+ key: 0,
11
+ class: "HdSeaCase-detailGallery"
12
+ }, I = { class: "HdSeaCase-galleryList" }, L = ["src"], R = { class: "HdSeaCase-detailTitleList" }, z = ["onClick"], B = /* @__PURE__ */ e(/* @__PURE__ */ d({
13
+ __name: "HdSeaCase",
14
+ props: {
15
+ mock: {
16
+ type: Boolean,
17
+ default: !0
18
+ },
19
+ baseHttp: { default: "" },
20
+ appKey: { default: "" },
21
+ appSalt: { default: "" },
22
+ ids: { default: () => ({}) },
23
+ mockData: { default: () => [{
24
+ id: "cooperation",
25
+ title: "海洋气象应急保障合作机制协议",
26
+ stages: [
27
+ {
28
+ id: "s1",
29
+ time: "2021年9月23日",
30
+ label: "西海岸新区海洋发展局调研",
31
+ content: "为开展近海海域气象监测,大力促进海洋产业发展,陈清峰副局长带队赴青岛西海岸新区海洋发展局进行调研。",
32
+ detailTitle: "西海岸新区海洋发展局调研",
33
+ items: [{
34
+ title: "调研交流",
35
+ images: ["http://58.59.29.51:11014/staticImg/TypicalInstance/海洋11.png", "http://58.59.29.51:11014/staticImg/TypicalInstance/海洋2.png"],
36
+ content: "为开展近海海域气象监测,大力促进海洋产业发展,陈清峰副局长带队赴青岛西海岸新区海洋发展局进行调研。"
37
+ }]
38
+ },
39
+ {
40
+ id: "s2",
41
+ time: "2023年2月28日",
42
+ label: "推动“三级联动”机制调研",
43
+ content: "为推动“三级联动”向纵深发展,着力解决制约气象高质量发展的基础性、关键性问题,王贵全局长带队前往西海岸新区海洋发展局进行调研交流。",
44
+ detailContent: "为推动“三级联动”向纵深发展,着力解决制约气象高质量发展的基础性、关键性问题,王贵全局长带队前往西海岸新区海洋发展局进行调研交流。"
45
+ },
46
+ {
47
+ id: "s3",
48
+ time: "学习经验做法",
49
+ label: "学习经验做法",
50
+ content: "赴威海、日照等地学习经验做法,广泛征求本地渔民和行业管理部门意见,对新区海域进行区划。",
51
+ detailContent: "赴威海、日照等地学习经验做法,广泛征求本地渔民和行业管理部门意见,对新区海域进行区划。"
52
+ },
53
+ {
54
+ id: "s4",
55
+ time: "服务产品",
56
+ label: "形成预报产品",
57
+ content: "形成精细化海洋气象预报服务产品。",
58
+ detailTitle: "形成预报产品",
59
+ items: [{
60
+ title: "预报服务产品",
61
+ images: ["http://58.59.29.51:11014/staticImg/TypicalInstance/海洋气象服务_10.png", "http://58.59.29.51:11014/staticImg/TypicalInstance/海洋气象服务_10.png"],
62
+ content: "回访分区气象预报服务成果。"
63
+ }]
64
+ },
65
+ {
66
+ id: "s5",
67
+ time: "2024年",
68
+ label: "海洋气象应急保障合作机制协议",
69
+ content: "双方将在共谋共建共享、预警信息传播、海上突发事件处置、海上安全监管、服务效益评价等方面开展工作。",
70
+ detailTitle: "海洋气象应急保障合作机制协议",
71
+ items: [{
72
+ title: "建立合作",
73
+ images: ["../../assets/img/icons/面板.png"],
74
+ content: "签订海洋气象应急保障合作机制协议。"
75
+ }]
76
+ }
77
+ ]
78
+ }, {
79
+ id: "wind2021",
80
+ title: "2021年5月7日,海面大风,船舶禁止通行,游客滞留",
81
+ stages: [
82
+ {
83
+ id: "w1",
84
+ time: "5月7日8时",
85
+ label: "海面大风,禁止船舶通行",
86
+ content: "受蒙古气旋持续影响,青岛西海岸新区近海海域风力7级到8级,阵风10级。海上风浪较大,风力达到7级以上,灵山湾全面禁止船舶通行。"
87
+ },
88
+ {
89
+ id: "w2",
90
+ time: "5月7日9时",
91
+ label: "商讨应急方案",
92
+ content: "韩千钧副区长迅速组织海事、气象、港务、灵山湾管委会等部门商讨方案。研究决定,由气象局提供精准的航线风力预报。"
93
+ },
94
+ {
95
+ id: "w3",
96
+ time: "5月7日13时10分",
97
+ label: "给出船舶航行精准气象条件建议",
98
+ content: "气象局根据监测实况及天气形势变化,预计7日下午到傍晚有大风间歇窗口期,有利于航行。"
99
+ },
100
+ {
101
+ id: "w4",
102
+ time: "5月7日15时25分",
103
+ label: "游客成功离岛",
104
+ content: "基于气象局给出的决策建议,海事处安排船舶,截至当日15时25分,顺利转移所有岛上游客。"
105
+ }
106
+ ]
107
+ }] }
108
+ },
109
+ emits: ["close"],
110
+ setup(e, { emit: d }) {
111
+ let B = f()?.appContext.config.globalProperties.$bus, V = e, H = d, U = _([]), W = _(""), G = _(0), K = _(!1), q = _(null), J = _(0), Y = a(() => U.value.find((e) => e.id === W.value) || U.value[0] || null), X = a(() => q.value?.items?.length ? q.value.items[J.value] || q.value.items[0] : null), Z = () => {
112
+ H("close", "HdSeaCase");
113
+ }, re = (e) => {
114
+ let t = 100 / (Y.value?.stages.length || 1);
115
+ return `${t * e + t / 2}%`;
116
+ }, ie = () => {
117
+ G.value = 0;
118
+ }, Q = (e, t) => {
119
+ G.value = t, q.value = e, J.value = 0, K.value = !0;
120
+ }, ae = () => {
121
+ K.value = !1, q.value = null, J.value = 0;
122
+ };
123
+ ee(K, (e) => {
124
+ e || (J.value = 0);
125
+ });
126
+ let oe = (e) => e ? e.data === void 0 ? e.result === void 0 ? e : e.result : e.data?.result?.output === void 0 ? e.data?.result === void 0 ? e.data : e.data.result : e.data.result.output : null, se = () => {
127
+ U.value = V.mockData || [], W.value = U.value[0]?.id || "";
128
+ }, ce = async () => {
129
+ let e = V.ids.data;
130
+ if (!e?.id) {
131
+ console.warn("HdSeaCase 缺少数据工作流配置");
132
+ return;
133
+ }
134
+ try {
135
+ let n = oe(await t({
136
+ id: e.id,
137
+ baseHttp: V.baseHttp,
138
+ reqType: e.reqType,
139
+ variables: {},
140
+ isFormData: e.isFormData,
141
+ appKey: V.appKey,
142
+ appSalt: V.appSalt
143
+ }));
144
+ n && (U.value = Array.isArray(n) ? n : n.list || [], W.value = U.value[0]?.id || "");
145
+ } catch (e) {
146
+ console.error("HdSeaCase 数据加载失败", e);
147
+ }
148
+ }, $ = async () => {
149
+ V.mock ? se() : await ce();
150
+ };
151
+ return h(() => {
152
+ B?.on("toComponent", (e) => {
153
+ e.componentName === "HdSeaCase" && $();
154
+ }), $();
155
+ }), (e, t) => {
156
+ let a = n, d = r;
157
+ return g(), c("div", x, [l("div", S, [
158
+ l("button", {
159
+ class: "HdSeaCase-close",
160
+ onClick: Z
161
+ }, [...t[1] ||= [l("span", null, "✕", -1)]]),
162
+ t[3] ||= l("div", { class: "HdSeaCase-header" }, [l("div", { class: "HdSeaCase-title" }, "海洋专项服务典型案例")], -1),
163
+ l("div", C, [u(d, {
164
+ modelValue: W.value,
165
+ "onUpdate:modelValue": t[0] ||= (e) => W.value = e,
166
+ class: "HdSeaCase-caseSelect",
167
+ "popper-class": "HdSeaCase-casePopper",
168
+ size: "small",
169
+ teleported: !1,
170
+ onChange: ie
171
+ }, {
172
+ default: b(() => [(g(!0), c(i, null, v(U.value, (e) => (g(), o(a, {
173
+ key: e.id,
174
+ label: e.title,
175
+ value: e.id
176
+ }, null, 8, ["label", "value"]))), 128))]),
177
+ _: 1
178
+ }, 8, ["modelValue"])]),
179
+ l("div", w, [
180
+ l("div", te, [(g(!0), c(i, null, v(Y.value?.stages, (e, t) => (g(), c("div", {
181
+ key: e.id,
182
+ class: p(["HdSeaCase-card", { "HdSeaCase-card--active": G.value === t }]),
183
+ onClick: (n) => Q(e, t)
184
+ }, [l("div", T, [l("span", null, y(e.time || e.label), 1)]), l("div", E, y(e.content), 1)], 10, ne))), 128))]),
185
+ l("div", D, [t[2] ||= l("div", { class: "HdSeaCase-line" }, null, -1), (g(!0), c(i, null, v(Y.value?.stages, (e, t) => (g(), c("div", {
186
+ key: e.id,
187
+ class: p(["HdSeaCase-node", { "HdSeaCase-node--active": G.value === t }]),
188
+ style: m({ left: re(t) }),
189
+ onClick: (n) => Q(e, t)
190
+ }, null, 14, O))), 128))]),
191
+ l("div", k, [(g(!0), c(i, null, v(Y.value?.stages, (e, t) => (g(), c("button", {
192
+ key: e.id,
193
+ class: p(["HdSeaCase-stageBtn", { "HdSeaCase-stageBtn--highlight": t === Y.value?.stages.length - 1 }]),
194
+ onClick: (n) => Q(e, t)
195
+ }, y(e.label), 11, A))), 128))])
196
+ ])
197
+ ]), K.value ? (g(), c("div", j, [l("div", M, [
198
+ l("button", {
199
+ class: "HdSeaCase-detailClose",
200
+ onClick: ae
201
+ }, [...t[4] ||= [l("span", null, "✕", -1)]]),
202
+ l("div", N, y(q.value?.detailTitle || Y.value?.title), 1),
203
+ l("div", P, [X.value ? (g(), c("div", F, [l("div", I, [(g(!0), c(i, null, v(X.value.images, (e, t) => (g(), c("div", {
204
+ key: t,
205
+ class: "HdSeaCase-galleryItem"
206
+ }, [l("img", {
207
+ src: e,
208
+ alt: ""
209
+ }, null, 8, L)]))), 128))])])) : s("", !0), l("div", R, [(g(!0), c(i, null, v(q.value?.items, (e, t) => (g(), c("div", {
210
+ key: t,
211
+ class: p(["HdSeaCase-titleItem", { "HdSeaCase-titleItem--active": J.value === t }]),
212
+ onClick: (e) => J.value = t
213
+ }, y(e.title), 11, z))), 128))])])
214
+ ])])) : s("", !0)]);
215
+ };
216
+ }
217
+ }), [["__scopeId", "data-v-cf5c0a5e"]]);
218
+ //#endregion
219
+ export { B as t };