nxd-plugin 1.7.83 → 1.7.84
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.
- package/dist/chunks/{component-AiChat-C1xBPkS5.mjs → component-AiChat-BXNBLM1G.mjs} +92 -93
- package/dist/chunks/{component-AqiMonitor-DoAVs1Jf.mjs → component-AqiMonitor-C_V1Nuf_.mjs} +1 -1
- package/dist/chunks/{component-ChartCumulativePre-BOIMPYxl.mjs → component-ChartCumulativePre-Bo28Bgaa.mjs} +2 -2
- package/dist/chunks/{component-ChartServiceMaterial-CmR3bmG_.mjs → component-ChartServiceMaterial-DELVCsKj.mjs} +2 -2
- package/dist/chunks/{component-Duty-gmt7ZcSc.mjs → component-Duty-dyZZ4vHt.mjs} +2 -2
- package/dist/chunks/{component-EarlyWarningStatistic-BWYWrz65.mjs → component-EarlyWarningStatistic-CBJfrRsV.mjs} +2 -2
- package/dist/chunks/{component-Forecast72h-BZ1kB2TJ.mjs → component-Forecast72h-BkVZSGhE.mjs} +2 -2
- package/dist/chunks/{component-GeologyLiveAlarm-CNpQPmGs.mjs → component-GeologyLiveAlarm-B9jBWXf0.mjs} +2 -2
- package/dist/chunks/component-HdForecastProducts-D4x_Y0OB.mjs +211 -0
- package/dist/chunks/{component-HdHeatService-ok6q8UuG.mjs → component-HdHeatService-Bf9XH3DP.mjs} +2 -2
- package/dist/chunks/{component-HdObservation-BmQdGJV6.mjs → component-HdObservation-CM6HUrQ3.mjs} +51 -45
- package/dist/chunks/{component-HdPreSituation-LBpO58bE.mjs → component-HdPreSituation-CJ8-wiRO.mjs} +168 -133
- package/dist/chunks/{component-HdRadarTime-D7hOn_ph.mjs → component-HdRadarTime-C4ZArOUM.mjs} +2 -2
- package/dist/chunks/{component-HdSeaCase-DYPQ7CdN.mjs → component-HdSeaCase-3-YFxSuM.mjs} +2 -2
- package/dist/chunks/component-HdServiceMarterial-pSFQUH2x.mjs +316 -0
- package/dist/chunks/{component-HdServiceRequirements-DcXrcIIV.mjs → component-HdServiceRequirements-BjuiyyC5.mjs} +38 -39
- package/dist/chunks/{component-HdStationTem-US6IRwbQ.mjs → component-HdStationTem-Dit7Y8lu.mjs} +100 -100
- package/dist/chunks/component-HdSuggestion-B_abfzRO.mjs +161 -0
- package/dist/chunks/component-HdThreeWeatherTrend-B2qzvOzb.mjs +372 -0
- package/dist/chunks/component-HdWaveForcast-D8UZrHzF.mjs +269 -0
- package/dist/chunks/{component-HighQuality-B0OgPi3T.mjs → component-HighQuality-1iqLOQAF.mjs} +2 -2
- package/dist/chunks/{component-HighWayEarlyWarningRed-BTl2WWZ-.mjs → component-HighWayEarlyWarningRed-DlgG9rTx.mjs} +3 -3
- package/dist/chunks/{component-HighWayFreeze-B1aMHQWU.mjs → component-HighWayFreeze-CCp1Rxpz.mjs} +2 -2
- package/dist/chunks/{component-HighwayLiveAlarm-8u45ZdnN.mjs → component-HighwayLiveAlarm-D7PKi5rG.mjs} +2 -2
- package/dist/chunks/{component-HighwayLiveAlarmNew-DK827eVk.mjs → component-HighwayLiveAlarmNew-rH59lsj8.mjs} +3 -3
- package/dist/chunks/{component-HighwayStations-BzrbWP50.mjs → component-HighwayStations-DGt6Gsr9.mjs} +2 -2
- package/dist/chunks/{component-HighwayWeatherForecast-DER5XGc3.mjs → component-HighwayWeatherForecast-BQrNGF7m.mjs} +73 -130
- package/dist/chunks/{component-IframeWeb-DuBssYPk.mjs → component-IframeWeb-vLIWvbJY.mjs} +1 -1
- package/dist/chunks/{component-ImageGeneration-3G3j7utC.mjs → component-ImageGeneration-BtM7MHcE.mjs} +1 -1
- package/dist/chunks/{component-IntroducePic-L8VH8Yq8.mjs → component-IntroducePic-D3FSEuKX.mjs} +1 -1
- package/dist/chunks/{component-LithiumBatteryMiningArea-DSFTVepN.mjs → component-LithiumBatteryMiningArea-B5aUe7T0.mjs} +2 -2
- package/dist/chunks/{component-MapPopup-BNc18syw.mjs → component-MapPopup-UmWWAPBE.mjs} +1 -1
- package/dist/chunks/{component-MaterialPreview-DhLUbjcT.mjs → component-MaterialPreview-1Hyl4bjM.mjs} +2 -2
- package/dist/chunks/{component-PieLegend-Haojhtet.mjs → component-PieLegend-C0Acehix.mjs} +1 -1
- package/dist/chunks/component-PrecipitationRanking-C63n87WI.mjs +658 -0
- package/dist/chunks/{component-RadarChart-BYMbkI3K.mjs → component-RadarChart-BXfMyPPi.mjs} +2 -2
- package/dist/chunks/{component-RadarLegend-CiGsla7a.mjs → component-RadarLegend-B2ajP_0M.mjs} +1 -1
- package/dist/chunks/{component-RadarShortTerm-yPc2UWpz.mjs → component-RadarShortTerm-BeGEjbHr.mjs} +4 -4
- package/dist/chunks/{component-RadarTime-CkqIaTJh.mjs → component-RadarTime-DGRztCiR.mjs} +2 -2
- package/dist/chunks/{component-RenderMarkdown-D590sXEf.mjs → component-RenderMarkdown-Dv-UVGrS.mjs} +2 -2
- package/dist/chunks/{component-ReservoirLiveAlarm-DTtKdDQS.mjs → component-ReservoirLiveAlarm-CRgl_ztt.mjs} +3 -3
- package/dist/chunks/{component-ServiceMaterial-BKbVQbKm.mjs → component-ServiceMaterial-BTWYke8W.mjs} +2 -2
- package/dist/chunks/{component-ServiceMaterialsBtn-CskK-Qiz.mjs → component-ServiceMaterialsBtn-CTWGd-Is.mjs} +1 -1
- package/dist/chunks/{component-StationDialog-Bn7Fbk24.mjs → component-StationDialog-Ck8zd52d.mjs} +216 -157
- package/dist/chunks/{component-StationList-DRABlFdc.mjs → component-StationList-BvoVJwAU.mjs} +105 -91
- package/dist/chunks/{component-TimeBasedForecast-D1fJ4rGJ.mjs → component-TimeBasedForecast-BaPiit4s.mjs} +36 -36
- package/dist/chunks/{component-WarningLine-jN8sg45u.mjs → component-WarningLine-CcFfVzar.mjs} +2 -2
- package/dist/chunks/{component-WarningSignal-BkIKqyJB.mjs → component-WarningSignal-C0CnTLVH.mjs} +3 -3
- package/dist/chunks/component-WeatherForecast-DWdNramU.mjs +229 -0
- package/dist/chunks/{component-YCDataMonitor-vVlnkSzT.mjs → component-YCDataMonitor-DPMFqIFB.mjs} +108 -110
- package/dist/chunks/{component-YCDataService-okkY1-iU.mjs → component-YCDataService-CD042ss7.mjs} +4 -4
- package/dist/chunks/{component-YCHome-BfpbxDIg.mjs → component-YCHome-DjpIzt-5.mjs} +4 -4
- package/dist/chunks/{component-YCHomeLegend-CuT-BwNJ.mjs → component-YCHomeLegend-B-nlePS2.mjs} +1 -1
- package/dist/chunks/{component-YCLoginNew-KZoyW1EV.mjs → component-YCLoginNew-Bx2LoLJz.mjs} +3 -3
- package/dist/components/HdForecastProducts/HdForecastProducts.vue.d.ts +49 -0
- package/dist/components/HdPreSituation/HdPreSituation.vue.d.ts +0 -1
- package/dist/components/HdServiceMarterial/HdServiceMarterial.vue.d.ts +54 -0
- package/dist/components/HdSuggestion/HdSuggestion.vue.d.ts +49 -0
- package/dist/components/HdThreeWeatherTrend/HdThreeWeatherTrend.vue.d.ts +71 -0
- package/dist/components/HdWaveForcast/HdWaveForcast.vue.d.ts +70 -0
- package/dist/components/PrecipitationRanking/PrecipitationRanking.vue.d.ts +5 -0
- package/dist/components/WeatherForecast/WeatherForecast.vue.d.ts +9 -0
- package/dist/index.d.ts +6 -1
- package/dist/nxd-plugin.mjs +56 -51
- package/dist/styles/component-HdForecastProducts.css +1 -0
- package/dist/styles/component-HdObservation.css +1 -1
- package/dist/styles/component-HdPreSituation.css +1 -1
- package/dist/styles/component-HdServiceMarterial.css +1 -0
- package/dist/styles/component-HdServiceRequirements.css +1 -1
- package/dist/styles/component-HdStationTem.css +1 -1
- package/dist/styles/component-HdSuggestion.css +1 -0
- package/dist/styles/component-HdThreeWeatherTrend.css +1 -0
- package/dist/styles/component-HdWaveForcast.css +1 -0
- package/dist/styles/component-HighWayEarlyWarningRed.css +1 -1
- package/dist/styles/component-PrecipitationRanking.css +1 -1
- package/dist/styles/component-StationDialog.css +1 -1
- package/dist/styles/component-StationList.css +1 -1
- package/dist/styles/component-WeatherForecast.css +1 -1
- package/dist/styles/component-YCDataMonitor.css +1 -1
- package/dist/styles/component-YCLoginNew.css +1 -1
- package/package.json +1 -1
- package/dist/chunks/component-PrecipitationRanking-BanKrD3J.mjs +0 -608
- package/dist/chunks/component-WeatherForecast-CYsbJhYt.mjs +0 -225
|
@@ -26368,10 +26368,13 @@ var fc = { class: "AiChatThinking__label" }, pc = {
|
|
|
26368
26368
|
}, Hl = { class: "file-card" }, Ul = { class: "file-meta" }, Wl = { class: "file-name" }, Gl = {
|
|
26369
26369
|
key: 0,
|
|
26370
26370
|
class: "file-ext"
|
|
26371
|
-
}, Kl = ["onClick"], ql =
|
|
26371
|
+
}, Kl = ["onClick"], ql = {
|
|
26372
|
+
key: 0,
|
|
26373
|
+
class: "image-preview-overlay"
|
|
26374
|
+
}, Jl = ["src", "alt"], Yl = {
|
|
26372
26375
|
key: 0,
|
|
26373
26376
|
class: "preview-caption"
|
|
26374
|
-
},
|
|
26377
|
+
}, Xl = /* @__PURE__ */ m({
|
|
26375
26378
|
__name: "AiChatResponse",
|
|
26376
26379
|
props: {
|
|
26377
26380
|
message: {},
|
|
@@ -26386,13 +26389,13 @@ var fc = { class: "AiChatThinking__label" }, pc = {
|
|
|
26386
26389
|
let t = e, n = o(() => [...t.message.blocks || []].sort((e, t) => e.sort - t.sort)), r = o(() => n.value.filter((e) => e.type === "thinking")), d = o(() => !!t.message.reasoning_content?.trim() || (t.message.tools?.length ?? 0) > 0 || r.value.length > 0 || t.message.thinkingStatus === "thinking"), f = o(() => {
|
|
26387
26390
|
let e = r.value[0];
|
|
26388
26391
|
return !e || !e.steps || !e.steps.length ? [] : e.steps;
|
|
26389
|
-
}), m = x(!d.value), h = o(() => !d.value || m.value), _ = o(() => n.value.filter((e) => e.type !== "thinking")), T = o(() => !!t.message.content?.trim()),
|
|
26392
|
+
}), m = x(!d.value), h = o(() => !d.value || m.value), _ = o(() => n.value.filter((e) => e.type !== "thinking")), T = o(() => !!t.message.content?.trim()), A = o(() => (t.message.resources?.length ?? 0) > 0), M = o(() => !!t.message.audioUrl), N = o(() => {
|
|
26390
26393
|
let e = t.message.structuredData;
|
|
26391
26394
|
return e && (e.analysisText || e.distributionMapUrl || e.rawData || e.detailData);
|
|
26392
|
-
}),
|
|
26395
|
+
}), P = o(() => {
|
|
26393
26396
|
let e = t.message.structuredData?.analysisText;
|
|
26394
26397
|
return e ? typeof e == "string" ? e : typeof e == "object" && e.strings && Array.isArray(e.strings) ? e.strings.join("") : String(e) : "";
|
|
26395
|
-
}),
|
|
26398
|
+
}), F = o(() => t.message.structuredData?.distributionMapUrl || ""), I = o(() => {
|
|
26396
26399
|
let e = t.message.structuredData;
|
|
26397
26400
|
if (!e) return [];
|
|
26398
26401
|
let n = e.detailData || e.rawData;
|
|
@@ -26403,18 +26406,18 @@ var fc = { class: "AiChatThinking__label" }, pc = {
|
|
|
26403
26406
|
return [];
|
|
26404
26407
|
}
|
|
26405
26408
|
return Array.isArray(n) ? n : [];
|
|
26406
|
-
}),
|
|
26407
|
-
let e =
|
|
26409
|
+
}), L = o(() => {
|
|
26410
|
+
let e = I.value;
|
|
26408
26411
|
return e.length ? Object.keys(e[0]) : [];
|
|
26409
|
-
}),
|
|
26410
|
-
e &&
|
|
26411
|
-
},
|
|
26412
|
-
|
|
26413
|
-
},
|
|
26414
|
-
|
|
26415
|
-
},
|
|
26416
|
-
|
|
26417
|
-
},
|
|
26412
|
+
}), R = (e) => e ? /^(https?:)?\/\//i.test(e) || e.startsWith("data:") || !t.baseHttp ? e : t.baseHttp.replace(/\/$/, "") + (e.startsWith("/") ? e : `/${e}`) : "", z = x(null), B = o(() => R(z.value?.url)), ee = /* @__PURE__ */ new Map(), V = /* @__PURE__ */ new Map(), H = x(/* @__PURE__ */ new Set()), te = (e, t) => {
|
|
26413
|
+
e && ee.set(t, e);
|
|
26414
|
+
}, ne = (e) => {
|
|
26415
|
+
z.value = e;
|
|
26416
|
+
}, U = () => {
|
|
26417
|
+
z.value = null;
|
|
26418
|
+
}, W = (e) => {
|
|
26419
|
+
H.value.has(e) ? H.value.delete(e) : H.value.add(e);
|
|
26420
|
+
}, re = (e) => H.value.has(e), G = async (e, t) => {
|
|
26418
26421
|
if (!e) return;
|
|
26419
26422
|
let n = t || "file";
|
|
26420
26423
|
try {
|
|
@@ -26427,7 +26430,7 @@ var fc = { class: "AiChatThinking__label" }, pc = {
|
|
|
26427
26430
|
} catch {}
|
|
26428
26431
|
let r = document.createElement("a");
|
|
26429
26432
|
r.href = e, r.download = n, r.target = "_blank", document.body.appendChild(r), r.click(), document.body.removeChild(r);
|
|
26430
|
-
},
|
|
26433
|
+
}, K = (e, t) => {
|
|
26431
26434
|
let n = {
|
|
26432
26435
|
...e,
|
|
26433
26436
|
...t
|
|
@@ -26449,13 +26452,13 @@ var fc = { class: "AiChatThinking__label" }, pc = {
|
|
|
26449
26452
|
e && typeof e == "object" && (e.splitLine = { show: !1 });
|
|
26450
26453
|
});
|
|
26451
26454
|
}), n;
|
|
26452
|
-
},
|
|
26455
|
+
}, q = () => {
|
|
26453
26456
|
n.value.forEach((e) => {
|
|
26454
26457
|
if (e.type !== "echarts") return;
|
|
26455
|
-
let n =
|
|
26458
|
+
let n = ee.get(e.sort);
|
|
26456
26459
|
if (!n) return;
|
|
26457
|
-
let r =
|
|
26458
|
-
r || (r = j.init(n, void 0, { renderer: "canvas" }),
|
|
26460
|
+
let r = V.get(e.sort);
|
|
26461
|
+
r || (r = j.init(n, void 0, { renderer: "canvas" }), V.set(e.sort, r));
|
|
26459
26462
|
let i = t.theme === "dark" ? {
|
|
26460
26463
|
backgroundColor: "transparent",
|
|
26461
26464
|
textStyle: { color: "#e5e7eb" },
|
|
@@ -26500,25 +26503,25 @@ var fc = { class: "AiChatThinking__label" }, pc = {
|
|
|
26500
26503
|
xAxis: { splitLine: { show: !1 } },
|
|
26501
26504
|
yAxis: { splitLine: { show: !1 } }
|
|
26502
26505
|
};
|
|
26503
|
-
r.setOption(
|
|
26506
|
+
r.setOption(K(i, e.option || {}), !0);
|
|
26504
26507
|
});
|
|
26505
|
-
},
|
|
26506
|
-
|
|
26508
|
+
}, ie = () => {
|
|
26509
|
+
V.forEach((e) => e.dispose()), V.clear();
|
|
26507
26510
|
};
|
|
26508
26511
|
v(() => {
|
|
26509
|
-
|
|
26512
|
+
q(), window.addEventListener("resize", ae);
|
|
26510
26513
|
}), y(() => {
|
|
26511
|
-
|
|
26514
|
+
ie(), window.removeEventListener("resize", ae);
|
|
26512
26515
|
});
|
|
26513
|
-
let
|
|
26514
|
-
|
|
26516
|
+
let ae = () => {
|
|
26517
|
+
V.forEach((e) => e.resize());
|
|
26515
26518
|
};
|
|
26516
26519
|
return D(() => t.message.thinkingStatus, (e) => {
|
|
26517
26520
|
e === "end" || e === "error" ? m.value = !0 : e === "thinking" && (m.value = !1);
|
|
26518
26521
|
}, { immediate: !0 }), D(() => t.message, () => {
|
|
26519
|
-
|
|
26522
|
+
ie(), setTimeout(q, 0);
|
|
26520
26523
|
}, { deep: !0 }), D(h, (e) => {
|
|
26521
|
-
e && setTimeout(
|
|
26524
|
+
e && setTimeout(q, 0);
|
|
26522
26525
|
}), (t, n) => (b(), l("div", { class: g(["AiChatResponse", `AiChatResponse--${e.theme}`]) }, [
|
|
26523
26526
|
d.value ? (b(), s(Ac, {
|
|
26524
26527
|
key: 0,
|
|
@@ -26541,25 +26544,25 @@ var fc = { class: "AiChatThinking__label" }, pc = {
|
|
|
26541
26544
|
class: "markdown-body",
|
|
26542
26545
|
innerHTML: w(dc)(e.message.content || "")
|
|
26543
26546
|
}, null, 8, il)])) : c("", !0),
|
|
26544
|
-
|
|
26547
|
+
A.value ? (b(), s(nl, {
|
|
26545
26548
|
key: 1,
|
|
26546
26549
|
resources: e.message.resources || [],
|
|
26547
26550
|
baseHttp: e.baseHttp
|
|
26548
26551
|
}, null, 8, ["resources", "baseHttp"])) : c("", !0),
|
|
26549
|
-
|
|
26550
|
-
|
|
26552
|
+
N.value ? (b(), l("div", al, [
|
|
26553
|
+
P.value ? (b(), l("div", ol, [u("div", {
|
|
26551
26554
|
class: "markdown-body",
|
|
26552
|
-
innerHTML: w(dc)(
|
|
26555
|
+
innerHTML: w(dc)(P.value)
|
|
26553
26556
|
}, null, 8, sl)])) : c("", !0),
|
|
26554
|
-
|
|
26555
|
-
src:
|
|
26557
|
+
F.value ? (b(), l("div", cl, [n[0] ||= u("div", { class: "block-title" }, "实况分布图", -1), u("div", ll, [u("img", {
|
|
26558
|
+
src: R(F.value),
|
|
26556
26559
|
alt: "实况分布图",
|
|
26557
26560
|
loading: "lazy"
|
|
26558
26561
|
}, null, 8, ul)])])) : c("", !0),
|
|
26559
|
-
|
|
26562
|
+
I.value.length > 0 ? (b(), l("div", dl, [n[1] ||= u("div", { class: "block-title" }, "数据列表", -1), u("div", fl, [u("table", null, [u("thead", null, [u("tr", null, [(b(!0), l(i, null, S(L.value, (e) => (b(), l("th", { key: e }, C(e), 1))), 128))])]), u("tbody", null, [(b(!0), l(i, null, S(I.value, (e, t) => (b(), l("tr", { key: t }, [(b(!0), l(i, null, S(L.value, (t) => (b(), l("td", { key: t }, C(e[t] ?? ""), 1))), 128))]))), 128))])])])])) : c("", !0)
|
|
26560
26563
|
])) : c("", !0),
|
|
26561
|
-
|
|
26562
|
-
src:
|
|
26564
|
+
M.value ? (b(), l("div", pl, [u("audio", {
|
|
26565
|
+
src: R(e.message.audioUrl),
|
|
26563
26566
|
controls: "",
|
|
26564
26567
|
preload: "none",
|
|
26565
26568
|
class: "ai-audio-player"
|
|
@@ -26576,13 +26579,13 @@ var fc = { class: "AiChatThinking__label" }, pc = {
|
|
|
26576
26579
|
class: g(`is-${e.align || "left"}`)
|
|
26577
26580
|
}, C(t[e.key]), 3))), 128))]))), 128))])])])])) : e.type === "echarts" ? (b(), l("div", Sl, [e.title ? (b(), l("div", Cl, C(e.title), 1)) : c("", !0), u("div", {
|
|
26578
26581
|
ref_for: !0,
|
|
26579
|
-
ref: (t) =>
|
|
26582
|
+
ref: (t) => te(t, e.sort),
|
|
26580
26583
|
class: "echarts-container"
|
|
26581
26584
|
}, null, 512)])) : e.type === "image" ? (b(), l("div", wl, [e.title ? (b(), l("div", Tl, C(e.title), 1)) : c("", !0), u("div", {
|
|
26582
26585
|
class: "image-card",
|
|
26583
|
-
onClick: (t) =>
|
|
26586
|
+
onClick: (t) => ne(e)
|
|
26584
26587
|
}, [u("img", {
|
|
26585
|
-
src:
|
|
26588
|
+
src: R(e.url),
|
|
26586
26589
|
alt: e.caption,
|
|
26587
26590
|
loading: "lazy"
|
|
26588
26591
|
}, null, 8, Dl), e.caption ? (b(), l("div", Ol, C(e.caption), 1)) : c("", !0)], 8, El)])) : e.type === "list" ? (b(), l("div", kl, [e.title ? (b(), l("div", Al, C(e.title), 1)) : c("", !0), u("ul", null, [(b(!0), l(i, null, S(e.items, (e, t) => (b(), l("li", { key: t }, C(e), 1))), 128))])])) : e.type === "fileList" ? (b(), l("div", jl, [e.title ? (b(), l("div", Ml, C(e.title), 1)) : c("", !0), u("div", Nl, [(b(!0), l(i, null, S(e.files, (e, t) => (b(), l("div", {
|
|
@@ -26590,7 +26593,7 @@ var fc = { class: "AiChatThinking__label" }, pc = {
|
|
|
26590
26593
|
class: "file-list-item"
|
|
26591
26594
|
}, [u("div", {
|
|
26592
26595
|
class: "file-list-header",
|
|
26593
|
-
onClick: (e) =>
|
|
26596
|
+
onClick: (e) => W(t)
|
|
26594
26597
|
}, [
|
|
26595
26598
|
n[3] ||= u("div", { class: "file-list-icon" }, [u("svg", {
|
|
26596
26599
|
viewBox: "0 0 24 24",
|
|
@@ -26601,14 +26604,14 @@ var fc = { class: "AiChatThinking__label" }, pc = {
|
|
|
26601
26604
|
u("div", Fl, C(e.name), 1),
|
|
26602
26605
|
e.size ? (b(), l("div", Il, C(e.size), 1)) : c("", !0),
|
|
26603
26606
|
(b(), l("svg", {
|
|
26604
|
-
class: g(["file-list-arrow", { "is-open":
|
|
26607
|
+
class: g(["file-list-arrow", { "is-open": re(t) }]),
|
|
26605
26608
|
viewBox: "0 0 24 24",
|
|
26606
26609
|
fill: "currentColor"
|
|
26607
26610
|
}, [...n[2] ||= [u("path", { d: "M7.41 8.59L12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41z" }, null, -1)]], 2))
|
|
26608
26611
|
], 8, Pl), k(u("div", Ll, [e.description ? (b(), l("p", Rl, C(e.description), 1)) : c("", !0), u("button", {
|
|
26609
26612
|
class: "file-list-download",
|
|
26610
|
-
onClick: (t) =>
|
|
26611
|
-
}, "下载", 8, zl)], 512), [[E,
|
|
26613
|
+
onClick: (t) => G(R(e.url), e.name)
|
|
26614
|
+
}, "下载", 8, zl)], 512), [[E, re(t)]])]))), 128))])])) : e.type === "file" ? (b(), l("div", Bl, [e.title ? (b(), l("div", Vl, C(e.title), 1)) : c("", !0), u("div", Hl, [
|
|
26612
26615
|
n[5] ||= u("div", { class: "file-icon" }, [u("svg", {
|
|
26613
26616
|
viewBox: "0 0 24 24",
|
|
26614
26617
|
width: "20",
|
|
@@ -26619,7 +26622,7 @@ var fc = { class: "AiChatThinking__label" }, pc = {
|
|
|
26619
26622
|
u("button", {
|
|
26620
26623
|
class: "file-download",
|
|
26621
26624
|
title: "下载",
|
|
26622
|
-
onClick: (t) =>
|
|
26625
|
+
onClick: (t) => G(R(e.fileUrl), e.name)
|
|
26623
26626
|
}, [...n[4] ||= [u("svg", {
|
|
26624
26627
|
viewBox: "0 0 24 24",
|
|
26625
26628
|
fill: "currentColor"
|
|
@@ -26627,26 +26630,22 @@ var fc = { class: "AiChatThinking__label" }, pc = {
|
|
|
26627
26630
|
])])) : c("", !0)], 64))), 128))
|
|
26628
26631
|
], 64)) : c("", !0),
|
|
26629
26632
|
p(a, { name: "fade" }, {
|
|
26630
|
-
default: O(() => [
|
|
26631
|
-
key: 0,
|
|
26632
|
-
class: "image-preview-overlay",
|
|
26633
|
-
onClick: A(W, ["self"])
|
|
26634
|
-
}, [
|
|
26633
|
+
default: O(() => [z.value ? (b(), l("div", ql, [
|
|
26635
26634
|
u("button", {
|
|
26636
26635
|
class: "preview-close",
|
|
26637
|
-
onClick:
|
|
26636
|
+
onClick: U
|
|
26638
26637
|
}, "×"),
|
|
26639
26638
|
u("img", {
|
|
26640
|
-
src:
|
|
26641
|
-
alt:
|
|
26642
|
-
}, null, 8,
|
|
26643
|
-
|
|
26639
|
+
src: B.value,
|
|
26640
|
+
alt: z.value.caption
|
|
26641
|
+
}, null, 8, Jl),
|
|
26642
|
+
z.value.caption ? (b(), l("div", Yl, C(z.value.caption), 1)) : c("", !0)
|
|
26644
26643
|
])) : c("", !0)]),
|
|
26645
26644
|
_: 1
|
|
26646
26645
|
})
|
|
26647
26646
|
], 2));
|
|
26648
26647
|
}
|
|
26649
|
-
}), Xl = { categories: /* @__PURE__ */ JSON.parse("{\"knowledge\":{\"label\":\"查知识\",\"responses\":[{\"keywords\":[\"台风\",\"大风\",\"预警\"],\"blocks\":[{\"sort\":1,\"type\":\"thinking\",\"steps\":[{\"type\":\"text\",\"content\":\"1. 识别用户需求:查询台风预警及防御知识。\"},{\"type\":\"text\",\"content\":\"2. 检索台风数据库:获取当前编号台风“卡努”的位置、强度、移向移速。\"},{\"type\":\"text\",\"content\":\"3. 查询预警规则:根据风力影响范围匹配台风黄色预警标准。\"},{\"type\":\"text\",\"content\":\"4. 整理防御提示:结合沿海、农业、城市内涝等场景输出建议。\"}]},{\"sort\":2,\"type\":\"markdown\",\"content\":\"## 🌀 台风预警信息\\n\\n今年第 6 号台风 **“卡努”** 预计将于 48 小时内影响本市沿海区域。\\n\\n### 影响时段\\n| 阶段 | 时间 | 风力 | 降雨 |\\n|------|------|------|------|\\n| 外围影响 | 今晚~明天上午 | 东北风 6-7 级 | 阵雨 |\\n| 主体影响 | 明天下午~后天 | 偏东风 8-10 级 | 暴雨到大暴雨 |\\n| 减弱远离 | 大后天 | 东南风 5-6 级 | 小雨 |\\n\\n### 防御提示\\n1. 沿海景区、海上作业平台请于今天 18 时前撤离人员。\\n2. 加固户外广告牌、脚手架、农业大棚等易被大风吹动的搭建物。\\n3. 低洼地区居民请提前备好沙袋,注意防范城市内涝。\\n\\n> 市气象台将每 3 小时滚动发布台风路径及风雨预报。\"}]},{\"keywords\":[\"雷达\",\"云图\",\"卫星\",\"回波\"],\"blocks\":[{\"sort\":1,\"type\":\"thinking\",\"steps\":[{\"type\":\"text\",\"content\":\"1. 识别用户需求:解读雷达回波实况。\"},{\"type\":\"text\",\"content\":\"2. 读取雷达拼图:分析回波强度、走向、移动速度。\"},{\"type\":\"text\",\"content\":\"3. 反演对流参数:回波顶高、VIL、质心高度等。\"},{\"type\":\"text\",\"content\":\"4. 生成解读文本:给出短时临近预报建议。\"}]},{\"sort\":2,\"type\":\"markdown\",\"content\":\"## 📡 雷达回波实况解读\\n\\n当前我市上游 150 km 范围内存在一条东北-西南向对流回波带,强度 35-50 dBZ,正以约 40 km/h 向东南方向移动。\\n\\n### 回波特征\\n- **回波顶高**:9-12 km,属于发展旺盛的对流单体。\\n- **垂直液态水含量**:最大 45 kg/m²,伴有短时强降水风险。\\n- **移动方向**:自西北向东南,预计 1.5 小时后影响市区。\\n\\n### 建议\\n1. 短时强降水可能引发道路积水,建议避开低洼路段。\\n2. 雷电活跃时段尽量减少户外活动。\\n3. 可通过实时雷达拼图持续关注回波移动。\"}]},{\"keywords\":[\"农业\",\"农事\",\"作物\",\"墒情\"],\"blocks\":[{\"sort\":1,\"type\":\"thinking\",\"steps\":[{\"type\":\"text\",\"content\":\"1. 识别用户需求:获取农业气象服务建议。\"},{\"type\":\"text\",\"content\":\"2. 调用土壤墒情数据:各区县土壤相对湿度。\"},{\"type\":\"table\",\"columns\":[{\"key\":\"region\",\"title\":\"区域\",\"align\":\"left\"},{\"key\":\"rh\",\"title\":\"土壤相对湿度\",\"align\":\"center\"},{\"key\":\"evaluate\",\"title\":\"评价\",\"align\":\"center\"}],\"data\":[{\"region\":\"西海岸新区\",\"rh\":\"78%\",\"evaluate\":\"适宜\"},{\"region\":\"即墨区\",\"rh\":\"65%\",\"evaluate\":\"略偏旱\"},{\"region\":\"平度市\",\"rh\":\"85%\",\"evaluate\":\"偏湿\"}]},{\"type\":\"text\",\"content\":\"3. 结合未来 7 天天气预报,生成农事建议。\"}]},{\"sort\":2,\"type\":\"markdown\",\"content\":\"## 🌾 农业气象服务建议\\n\\n### 当前农田墒情\\n| 区域 | 土壤相对湿度 | 评价 | 建议 |\\n|------|------------|------|------|\\n| 西海岸新区 | 78% | 适宜 | 可正常播种夏玉米 |\\n| 即墨区 | 65% | 略偏旱 | 灌溉 1 次,确保出苗 |\\n| 平度市 | 85% | 偏湿 | 注意清沟理墒,防渍害 |\\n\\n### 未来 7 天农事建议\\n1. **今明两天**有小雨,雨后趁墒开展夏玉米、大豆等作物播种。\\n2. **周三至周五**以多云为主,利于田间管理,可喷施除草剂。\\n3. 周末有阵雨,抓紧收获成熟瓜果蔬菜,避免田间腐烂。\"}]},{\"default\":true,\"blocks\":[{\"sort\":1,\"type\":\"thinking\",\"steps\":[{\"type\":\"text\",\"content\":\"1. 识别用户需求:查询指定位置当前及未来 24 小时气象概况。\"},{\"type\":\"text\",\"content\":\"2. 定位最近自动站:西海岸新区国家气象站。\"},{\"type\":\"table\",\"columns\":[{\"key\":\"stationNumber\",\"title\":\"站号\",\"align\":\"center\"},{\"key\":\"stationName\",\"title\":\"站名\",\"align\":\"left\"},{\"key\":\"temperature\",\"title\":\"气温(°C)\",\"align\":\"right\"},{\"key\":\"relativeHumidity\",\"title\":\"相对湿度(%)\",\"align\":\"right\"},{\"key\":\"windDirectionTxt\",\"title\":\"风向\",\"align\":\"center\"},{\"key\":\"windSpeed\",\"title\":\"风速(m/s)\",\"align\":\"right\"}],\"data\":[{\"stationNumber\":\"54943\",\"stationName\":\"黄岛\",\"temperature\":\"26.3\",\"relativeHumidity\":\"78\",\"windDirectionTxt\":\"东南风\",\"windSpeed\":\"3.2\"}]},{\"type\":\"text\",\"content\":\"3. 融合数值预报:生成通俗防御建议。\"}]},{\"sort\":2,\"type\":\"markdown\",\"content\":\"根据你提供的位置信息,我查询了当前及未来 24 小时气象概况 👇\\n\\n## 🌤️ 青岛市西海岸新区 · 气象概况\\n\\n### 当前实况\\n| 要素 | 数值 |\\n|------|------|\\n| 气温 | **26.3°C** |\\n| 相对湿度 | **78%** |\\n| 风向风力 | 东南风 **3~4 级** |\\n| 能见度 | **12 km** |\\n| 气压 | 1008 hPa |\\n\\n### 防御建议\\n1. **今夜至凌晨有小雨**,沿海路段能见度较低,出行请注意交通安全。\\n2. 明早气温降至 **20°C 左右**,体感偏凉,建议携带薄外套。\\n3. 明天白天转为多云,最高气温回升至 **28°C**,适宜户外活动。\\n\\n> 数据来源:气象大数据平台\"}]}]},\"data\":{\"label\":\"查数据\",\"responses\":[{\"keywords\":[\"台风\",\"路径\",\"风力\"],\"blocks\":[{\"sort\":1,\"type\":\"thinking\",\"steps\":[{\"type\":\"text\",\"content\":\"1. 识别用户需求:查询台风路径及强度变化数据。\"},{\"type\":\"text\",\"content\":\"2. 调用台风预报接口:获取未来 72 小时路径点。\"},{\"type\":\"text\",\"content\":\"3. 绘制趋势图表:中心气压变化曲线。\"},{\"type\":\"text\",\"content\":\"4. 输出结构化表格与预报图。\"}]},{\"sort\":2,\"type\":\"markdown\",\"content\":\"#### 🌀 台风“卡努”未来 72 小时路径预报\"},{\"sort\":3,\"type\":\"table\",\"columns\":[{\"key\":\"time\",\"title\":\"时间\",\"align\":\"left\"},{\"key\":\"lon\",\"title\":\"经度\",\"align\":\"center\"},{\"key\":\"lat\",\"title\":\"纬度\",\"align\":\"center\"},{\"key\":\"level\",\"title\":\"强度等级\",\"align\":\"center\"},{\"key\":\"wind\",\"title\":\"近中心风力\",\"align\":\"center\"},{\"key\":\"dir\",\"title\":\"移向\",\"align\":\"center\"},{\"key\":\"speed\",\"title\":\"移速\",\"align\":\"right\"}],\"data\":[{\"time\":\"今天 20 时\",\"lon\":\"125.8°E\",\"lat\":\"28.4°N\",\"level\":\"强台风\",\"wind\":\"14 级\",\"dir\":\"西北\",\"speed\":\"12 km/h\"},{\"time\":\"明天 08 时\",\"lon\":\"124.9°E\",\"lat\":\"29.1°N\",\"level\":\"强台风\",\"wind\":\"15 级\",\"dir\":\"西北偏北\",\"speed\":\"10 km/h\"},{\"time\":\"明天 20 时\",\"lon\":\"123.7°E\",\"lat\":\"30.0°N\",\"level\":\"台风\",\"wind\":\"13 级\",\"dir\":\"北\",\"speed\":\"8 km/h\"},{\"time\":\"后天 08 时\",\"lon\":\"122.8°E\",\"lat\":\"31.2°N\",\"level\":\"强热带风暴\",\"wind\":\"11 级\",\"dir\":\"东北\",\"speed\":\"15 km/h\"}]},{\"sort\":4,\"type\":\"echarts\",\"title\":\"台风中心气压变化趋势\",\"option\":{\"grid\":{\"top\":40,\"right\":20,\"bottom\":30,\"left\":50},\"xAxis\":{\"type\":\"category\",\"data\":[\"今天\",\"明天\",\"后天\",\"大后天\"]},\"yAxis\":{\"type\":\"value\",\"name\":\"hPa\",\"min\":900},\"series\":[{\"type\":\"line\",\"data\":[955,940,965,985],\"smooth\":true,\"areaStyle\":{\"opacity\":0.2}}]}},{\"sort\":5,\"type\":\"image\",\"url\":\"https://picsum.photos/seed/typhoon_track/400/220\",\"caption\":\"台风路径概率预报图\"}]},{\"keywords\":[\"降水\",\"雨量\",\"降雨\",\"暴雨\"],\"blocks\":[{\"sort\":1,\"type\":\"thinking\",\"steps\":[{\"type\":\"text\",\"content\":\"1. 识别用户需求:查询未来 24 小时累计降水量。\"},{\"type\":\"text\",\"content\":\"2. 调用格点预报数据:各区县逐 6 小时降水量。\"},{\"type\":\"table\",\"columns\":[{\"key\":\"district\",\"title\":\"区县\",\"align\":\"left\"},{\"key\":\"h06\",\"title\":\"0-6h\",\"align\":\"right\"},{\"key\":\"h12\",\"title\":\"6-12h\",\"align\":\"right\"},{\"key\":\"h18\",\"title\":\"12-18h\",\"align\":\"right\"},{\"key\":\"h24\",\"title\":\"18-24h\",\"align\":\"right\"},{\"key\":\"total\",\"title\":\"过程累计\",\"align\":\"right\"}],\"data\":[{\"district\":\"市南区\",\"h06\":\"5 mm\",\"h12\":\"15 mm\",\"h18\":\"35 mm\",\"h24\":\"12 mm\",\"total\":\"67 mm\"},{\"district\":\"崂山区\",\"h06\":\"8 mm\",\"h12\":\"25 mm\",\"h18\":\"55 mm\",\"h24\":\"20 mm\",\"total\":\"108 mm\"},{\"district\":\"西海岸新区\",\"h06\":\"10 mm\",\"h12\":\"30 mm\",\"h18\":\"60 mm\",\"h24\":\"22 mm\",\"total\":\"122 mm\"}]},{\"type\":\"text\",\"content\":\"3. 生成柱状图:直观展示各区县过程累计降水量。\"}]},{\"sort\":2,\"type\":\"markdown\",\"content\":\"#### 🌧️ 未来 24 小时累计降水量预报\"},{\"sort\":3,\"type\":\"table\",\"columns\":[{\"key\":\"district\",\"title\":\"区县\",\"align\":\"left\"},{\"key\":\"h06\",\"title\":\"0-6h\",\"align\":\"right\"},{\"key\":\"h12\",\"title\":\"6-12h\",\"align\":\"right\"},{\"key\":\"h18\",\"title\":\"12-18h\",\"align\":\"right\"},{\"key\":\"h24\",\"title\":\"18-24h\",\"align\":\"right\"},{\"key\":\"total\",\"title\":\"过程累计\",\"align\":\"right\"}],\"data\":[{\"district\":\"市南区\",\"h06\":\"5 mm\",\"h12\":\"15 mm\",\"h18\":\"35 mm\",\"h24\":\"12 mm\",\"total\":\"67 mm\"},{\"district\":\"市北区\",\"h06\":\"3 mm\",\"h12\":\"12 mm\",\"h18\":\"28 mm\",\"h24\":\"10 mm\",\"total\":\"53 mm\"},{\"district\":\"李沧区\",\"h06\":\"4 mm\",\"h12\":\"18 mm\",\"h18\":\"42 mm\",\"h24\":\"15 mm\",\"total\":\"79 mm\"},{\"district\":\"崂山区\",\"h06\":\"8 mm\",\"h12\":\"25 mm\",\"h18\":\"55 mm\",\"h24\":\"20 mm\",\"total\":\"108 mm\"},{\"district\":\"城阳区\",\"h06\":\"6 mm\",\"h12\":\"20 mm\",\"h18\":\"38 mm\",\"h24\":\"14 mm\",\"total\":\"78 mm\"},{\"district\":\"西海岸新区\",\"h06\":\"10 mm\",\"h12\":\"30 mm\",\"h18\":\"60 mm\",\"h24\":\"22 mm\",\"total\":\"122 mm\"},{\"district\":\"即墨区\",\"h06\":\"7 mm\",\"h12\":\"22 mm\",\"h18\":\"45 mm\",\"h24\":\"16 mm\",\"total\":\"90 mm\"}]},{\"sort\":4,\"type\":\"echarts\",\"title\":\"各区县过程累计降水量\",\"option\":{\"grid\":{\"top\":40,\"right\":20,\"bottom\":50,\"left\":60},\"xAxis\":{\"type\":\"category\",\"data\":[\"市南\",\"市北\",\"李沧\",\"崂山\",\"城阳\",\"西海岸\",\"即墨\"],\"axisLabel\":{\"rotate\":30}},\"yAxis\":{\"type\":\"value\",\"name\":\"mm\"},\"series\":[{\"type\":\"bar\",\"data\":[67,53,79,108,78,122,90],\"itemStyle\":{\"color\":\"#22d3ee\"}}]}},{\"sort\":5,\"type\":\"image\",\"url\":\"https://picsum.photos/seed/rain_map/400/220\",\"caption\":\"24 小时降水预报图\"}]},{\"default\":true,\"blocks\":[{\"sort\":1,\"type\":\"thinking\",\"steps\":[{\"type\":\"text\",\"content\":\"1. 识别用户需求:查询未来 7 天天气预报。\"},{\"type\":\"text\",\"content\":\"2. 调用城市预报数据:天气现象、气温、风向风力、降水概率。\"},{\"type\":\"text\",\"content\":\"3. 绘制气温趋势图:最高温与最低温双曲线。\"},{\"type\":\"text\",\"content\":\"4. 输出表格与趋势图。\"}]},{\"sort\":2,\"type\":\"markdown\",\"content\":\"#### 🌦️ 青岛市未来 7 天天气预报\"},{\"sort\":3,\"type\":\"table\",\"columns\":[{\"key\":\"date\",\"title\":\"日期\",\"align\":\"left\"},{\"key\":\"weather\",\"title\":\"天气现象\",\"align\":\"left\"},{\"key\":\"max\",\"title\":\"最高温\",\"align\":\"right\"},{\"key\":\"min\",\"title\":\"最低温\",\"align\":\"right\"},{\"key\":\"wind\",\"title\":\"风向风力\",\"align\":\"left\"},{\"key\":\"rain\",\"title\":\"降水概率\",\"align\":\"right\"}],\"data\":[{\"date\":\"今天\",\"weather\":\"多云转小雨\",\"max\":\"28°C\",\"min\":\"21°C\",\"wind\":\"东南风 3-4 级\",\"rain\":\"60%\"},{\"date\":\"明天\",\"weather\":\"小雨转多云\",\"max\":\"26°C\",\"min\":\"19°C\",\"wind\":\"东北风 3 级\",\"rain\":\"40%\"},{\"date\":\"后天\",\"weather\":\"多云\",\"max\":\"29°C\",\"min\":\"20°C\",\"wind\":\"南风 2-3 级\",\"rain\":\"10%\"},{\"date\":\"周四\",\"weather\":\"晴\",\"max\":\"31°C\",\"min\":\"22°C\",\"wind\":\"南风 2 级\",\"rain\":\"0%\"},{\"date\":\"周五\",\"weather\":\"晴转多云\",\"max\":\"30°C\",\"min\":\"23°C\",\"wind\":\"东南风 3 级\",\"rain\":\"10%\"},{\"date\":\"周六\",\"weather\":\"多云转阴\",\"max\":\"28°C\",\"min\":\"22°C\",\"wind\":\"东风 3 级\",\"rain\":\"30%\"},{\"date\":\"周日\",\"weather\":\"阵雨\",\"max\":\"27°C\",\"min\":\"21°C\",\"wind\":\"东北风 3-4 级\",\"rain\":\"70%\"}]},{\"sort\":4,\"type\":\"echarts\",\"title\":\"未来 7 天气温趋势\",\"option\":{\"grid\":{\"top\":40,\"right\":20,\"bottom\":30,\"left\":40},\"legend\":{\"data\":[\"最高温\",\"最低温\"]},\"xAxis\":{\"type\":\"category\",\"data\":[\"今天\",\"明天\",\"后天\",\"周四\",\"周五\",\"周六\",\"周日\"]},\"yAxis\":{\"type\":\"value\",\"name\":\"°C\"},\"series\":[{\"name\":\"最高温\",\"type\":\"line\",\"data\":[28,26,29,31,30,28,27],\"smooth\":true,\"itemStyle\":{\"color\":\"#f59e0b\"}},{\"name\":\"最低温\",\"type\":\"line\",\"data\":[21,19,20,22,23,22,21],\"smooth\":true,\"itemStyle\":{\"color\":\"#22d3ee\"}}]}},{\"sort\":5,\"type\":\"image\",\"url\":\"https://picsum.photos/seed/weather_trend/400/220\",\"caption\":\"未来 7 天气温趋势图\"}]}]},\"material\":{\"label\":\"查材料\",\"responses\":[{\"keywords\":[\"海洋\",\"台风\",\"灾害\",\"防御\"],\"blocks\":[{\"sort\":1,\"type\":\"thinking\",\"steps\":[{\"type\":\"text\",\"content\":\"1. 识别用户需求:检索台风灾害防御相关材料。\"},{\"type\":\"text\",\"content\":\"2. 检索材料库:按关键词“台风”“灾害”“防御”匹配文档。\"},{\"type\":\"text\",\"content\":\"3. 筛选格式:PDF、XLSX、DOCX,保留权威来源。\"},{\"type\":\"text\",\"content\":\"4. 输出材料列表及摘要。\"}]},{\"sort\":2,\"type\":\"text\",\"content\":\"已检索到与台风灾害防御相关的材料,共 3 份:\"},{\"sort\":3,\"type\":\"fileList\",\"files\":[{\"name\":\"青岛市台风灾害防御应急预案.pdf\",\"url\":\"https://mozilla.github.io/pdf.js/web/compressed.tracemonkey-pldi-09.pdf\",\"size\":\"4.2 MB\",\"ext\":\"pdf\",\"description\":\"本预案明确了台风预警分级、应急响应启动条件、各部门职责分工及人员转移安置要求。\"},{\"name\":\"台风风险隐患清单.xlsx\",\"url\":\"https://mozilla.github.io/pdf.js/web/compressed.tracemonkey-pldi-09.pdf\",\"size\":\"1.8 MB\",\"ext\":\"xlsx\",\"description\":\"全市低洼易涝点、地质灾害隐患点、海上作业平台等风险隐患台账。\"},{\"name\":\"人员转移安置方案.docx\",\"url\":\"https://mozilla.github.io/pdf.js/web/compressed.tracemonkey-pldi-09.pdf\",\"size\":\"2.5 MB\",\"ext\":\"docx\",\"description\":\"受台风影响区域人员转移路线图、安置点分布及物资保障方案。\"}]}]},{\"default\":true,\"blocks\":[{\"sort\":1,\"type\":\"thinking\",\"steps\":[{\"type\":\"text\",\"content\":\"1. 识别用户需求:检索海洋气象预报相关材料。\"},{\"type\":\"text\",\"content\":\"2. 检索材料库:按关键词“海洋”“预报”“精细化”匹配。\"},{\"type\":\"text\",\"content\":\"3. 筛选格式:DOC、PDF、PPTX,按时间倒序排列。\"},{\"type\":\"text\",\"content\":\"4. 输出材料列表及摘要。\"}]},{\"sort\":2,\"type\":\"text\",\"content\":\"已检索到海洋气象预报相关材料,共 3 份:\"},{\"sort\":3,\"type\":\"fileList\",\"files\":[{\"name\":\"精细化海洋预报(20260531).doc\",\"url\":\"http://58.59.29.51:11014/productFilePath/seaService/2026/5/31/%E7%B2%BE%E7%BB%86%E5%8C%96%E6%B5%B7%E6%B4%8B%E9%A2%84%E6%8A%A5%EF%BC%8820260531%EF%BC%89.doc\",\"size\":\"5.8 MB\",\"ext\":\"doc\",\"description\":\"海洋气象预报\"},{\"name\":\"气象灾害防御工作手册.pdf\",\"url\":\"https://mozilla.github.io/pdf.js/web/compressed.tracemonkey-pldi-09.pdf\",\"size\":\"3.6 MB\",\"ext\":\"pdf\",\"description\":\"面向基层网格员的灾害防御操作指南,包含预警信息接收、传播和应急处置流程。\"},{\"name\":\"防灾减灾宣传材料.pptx\",\"url\":\"https://mozilla.github.io/pdf.js/web/compressed.tracemonkey-pldi-09.pdf\",\"size\":\"8.2 MB\",\"ext\":\"pptx\",\"description\":\"面向社区、学校的防灾减灾科普宣传课件。\"}]}]}]},\"smartMake\":{\"label\":\"智能制作\",\"responses\":[{\"keywords\":[\"预警\",\"通知\",\"发文\"],\"blocks\":[{\"sort\":1,\"type\":\"thinking\",\"steps\":[{\"type\":\"text\",\"content\":\"1. 识别用户需求:需要生成一份气象灾害预警通知公文。\"},{\"type\":\"text\",\"content\":\"2. 匹配模板:选择《气象灾害预警通知》公文模板。\"},{\"type\":\"text\",\"content\":\"3. 填充要素:当前预警类型为台风黄色预警,影响时段为 24-48 小时,重点关注沿海区域。\"},{\"type\":\"text\",\"content\":\"4. 生成落款:青岛市气象局,日期为今日。\"},{\"type\":\"text\",\"content\":\"5. 输出格式:Word 文档,便于后续编辑和正式发文。\"}]},{\"sort\":2,\"type\":\"file\",\"title\":\"\",\"name\":\"气象灾害预警通知.docx\",\"fileUrl\":\"https://mozilla.github.io/pdf.js/web/compressed.tracemonkey-pldi-09.pdf\",\"ext\":\"docx\"}]},{\"keywords\":[\"报告\",\"总结\",\"分析\"],\"blocks\":[{\"sort\":1,\"type\":\"thinking\",\"steps\":[{\"type\":\"text\",\"content\":\"1. 识别用户需求:需要生成气象服务总结报告。\"},{\"type\":\"text\",\"content\":\"2. 梳理素材:调用近期天气预报、服务产品、用户反馈等数据。\"},{\"type\":\"text\",\"content\":\"3. 构建框架:包含服务概况、重点过程、服务效益、存在问题及下一步计划。\"},{\"type\":\"text\",\"content\":\"4. 图表插入:自动插入降水预报准确率、服务覆盖人次等统计图表。\"},{\"type\":\"text\",\"content\":\"5. 输出格式:PDF 文档,便于归档和报送。\"}]},{\"sort\":2,\"type\":\"file\",\"title\":\"\",\"name\":\"气象服务总结报告.pdf\",\"fileUrl\":\"https://mozilla.github.io/pdf.js/web/compressed.tracemonkey-pldi-09.pdf\",\"ext\":\"pdf\"}]},{\"default\":true,\"blocks\":[{\"sort\":1,\"type\":\"thinking\",\"steps\":[{\"type\":\"text\",\"content\":\"1. 识别用户需求:需要基于自动站数据智能制作气象服务材料。\"},{\"type\":\"text\",\"content\":\"2. 数据获取:调用自动站接口,获取黄岛区共 17 个站点最新实况。\"},{\"type\":\"table\",\"columns\":[{\"key\":\"stationNumber\",\"title\":\"站号\",\"align\":\"center\"},{\"key\":\"stationName\",\"title\":\"站名\",\"align\":\"left\"},{\"key\":\"observationTime\",\"title\":\"观测时间\",\"align\":\"center\"},{\"key\":\"temperature\",\"title\":\"气温(°C)\",\"align\":\"right\"},{\"key\":\"relativeHumidity\",\"title\":\"相对湿度(%)\",\"align\":\"right\"},{\"key\":\"windDirectionTxt\",\"title\":\"风向\",\"align\":\"center\"},{\"key\":\"windSpeed\",\"title\":\"风速(m/s)\",\"align\":\"right\"},{\"key\":\"weatherinfo\",\"title\":\"天气\",\"align\":\"center\"}],\"data\":[{\"stationNumber\":\"54943\",\"stationName\":\"黄岛\",\"observationTime\":\"8/7 10\",\"temperature\":\"33.3\",\"relativeHumidity\":\"65\",\"windDirectionTxt\":\"东风\",\"windSpeed\":\"1.8\",\"weatherinfo\":\"晴天\"},{\"stationNumber\":\"D0002\",\"stationName\":\"黄岛金沙滩\",\"observationTime\":\"8/7 10\",\"temperature\":\"33.7\",\"relativeHumidity\":\"60\",\"windDirectionTxt\":\"北风\",\"windSpeed\":\"2.5\",\"weatherinfo\":\"晴天\"},{\"stationNumber\":\"D0008\",\"stationName\":\"黄岛琅琊\",\"observationTime\":\"8/7 10\",\"temperature\":\"32.4\",\"relativeHumidity\":\"61\",\"windDirectionTxt\":\"东风\",\"windSpeed\":\"1.7\",\"weatherinfo\":\"晴天\"},{\"stationNumber\":\"D0063\",\"stationName\":\"黄岛大涧山\",\"observationTime\":\"8/7 10\",\"temperature\":\"34.6\",\"relativeHumidity\":\"58\",\"windDirectionTxt\":\"东北风\",\"windSpeed\":\"2.4\",\"weatherinfo\":\"晴天\"},{\"stationNumber\":\"D0076\",\"stationName\":\"黄岛滨海杜鹃花区气象观测站\",\"observationTime\":\"8/7 10\",\"temperature\":\"33.9\",\"relativeHumidity\":\"缺测\",\"windDirectionTxt\":\"东风\",\"windSpeed\":\"1.3\",\"weatherinfo\":\"晴天\"},{\"stationNumber\":\"D0167\",\"stationName\":\"黄岛隐珠气象观测站\",\"observationTime\":\"8/7 10\",\"temperature\":\"33.6\",\"relativeHumidity\":\"55\",\"windDirectionTxt\":\"西北风\",\"windSpeed\":\"3.0\",\"weatherinfo\":\"晴天\"},{\"stationNumber\":\"D0189\",\"stationName\":\"黄岛竹岔岛\",\"observationTime\":\"8/7 10\",\"temperature\":\"30.8\",\"relativeHumidity\":\"74\",\"windDirectionTxt\":\"缺测\",\"windSpeed\":\"0.0\",\"weatherinfo\":\"晴天\"},{\"stationNumber\":\"D0192\",\"stationName\":\"黄岛灵山岛\",\"observationTime\":\"8/7 10\",\"temperature\":\"29.5\",\"relativeHumidity\":\"62\",\"windDirectionTxt\":\"东北风\",\"windSpeed\":\"0.3\",\"weatherinfo\":\"晴天\"},{\"stationNumber\":\"D0197\",\"stationName\":\"黄岛台子沟\",\"observationTime\":\"8/7 10\",\"temperature\":\"33.1\",\"relativeHumidity\":\"缺测\",\"windDirectionTxt\":\"东风\",\"windSpeed\":\"2.0\",\"weatherinfo\":\"晴天\"},{\"stationNumber\":\"D0199\",\"stationName\":\"黄岛轮渡\",\"observationTime\":\"8/7 10\",\"temperature\":\"33.4\",\"relativeHumidity\":\"60\",\"windDirectionTxt\":\"西北风\",\"windSpeed\":\"0.9\",\"weatherinfo\":\"晴天\"},{\"stationNumber\":\"D0200\",\"stationName\":\"黄岛董家口港\",\"observationTime\":\"8/7 10\",\"temperature\":\"30.4\",\"relativeHumidity\":\"62\",\"windDirectionTxt\":\"东南风\",\"windSpeed\":\"2.7\",\"weatherinfo\":\"晴天\"},{\"stationNumber\":\"D0206\",\"stationName\":\"黄岛实验中学气象观测站\",\"observationTime\":\"8/7 10\",\"temperature\":\"34.3\",\"relativeHumidity\":\"54\",\"windDirectionTxt\":\"西南风\",\"windSpeed\":\"2.6\",\"weatherinfo\":\"晴天\"},{\"stationNumber\":\"D0212\",\"stationName\":\"黄岛前湾港码头\",\"observationTime\":\"8/7 10\",\"temperature\":\"34.0\",\"relativeHumidity\":\"54\",\"windDirectionTxt\":\"东北风\",\"windSpeed\":\"3.4\",\"weatherinfo\":\"晴天\"},{\"stationNumber\":\"D0231\",\"stationName\":\"黄岛泊里气象观测站\",\"observationTime\":\"8/7 10\",\"temperature\":\"34.0\",\"relativeHumidity\":\"55\",\"windDirectionTxt\":\"缺测\",\"windSpeed\":\"缺测\",\"weatherinfo\":\"晴天\"},{\"stationNumber\":\"D0263\",\"stationName\":\"黄岛薛家岛气象观测站\",\"observationTime\":\"8/7 10\",\"temperature\":\"30.8\",\"relativeHumidity\":\"75\",\"windDirectionTxt\":\"东南风\",\"windSpeed\":\"3.2\",\"weatherinfo\":\"晴天\"},{\"stationNumber\":\"D0267\",\"stationName\":\"黄岛区小珠山气象观测站\",\"observationTime\":\"8/7 10\",\"temperature\":\"34.4\",\"relativeHumidity\":\"缺测\",\"windDirectionTxt\":\"北风\",\"windSpeed\":\"3.1\",\"weatherinfo\":\"晴天\"},{\"stationNumber\":\"D0501\",\"stationName\":\"黄岛滨海气象观测站\",\"observationTime\":\"8/7 10\",\"temperature\":\"34.1\",\"relativeHumidity\":\"55\",\"windDirectionTxt\":\"北风\",\"windSpeed\":\"2.5\",\"weatherinfo\":\"晴天\"}]},{\"type\":\"text\",\"content\":\"3. 降水分析:获取黄岛区近 3 小时累计降水量。\"},{\"type\":\"table\",\"columns\":[{\"key\":\"stationName\",\"title\":\"站名\",\"align\":\"left\"},{\"key\":\"rainfall1h\",\"title\":\"1h降水(mm)\",\"align\":\"right\"},{\"key\":\"rainfall3h\",\"title\":\"3h降水(mm)\",\"align\":\"right\"},{\"key\":\"rainfall6h\",\"title\":\"6h降水(mm)\",\"align\":\"right\"},{\"key\":\"rainfall12h\",\"title\":\"12h降水(mm)\",\"align\":\"right\"}],\"data\":[{\"stationName\":\"黄岛\",\"rainfall1h\":\"0.0\",\"rainfall3h\":\"0.0\",\"rainfall6h\":\"0.2\",\"rainfall12h\":\"1.5\"},{\"stationName\":\"黄岛金沙滩\",\"rainfall1h\":\"0.0\",\"rainfall3h\":\"0.0\",\"rainfall6h\":\"0.0\",\"rainfall12h\":\"0.8\"},{\"stationName\":\"黄岛琅琊\",\"rainfall1h\":\"0.0\",\"rainfall3h\":\"0.1\",\"rainfall6h\":\"0.5\",\"rainfall12h\":\"2.1\"},{\"stationName\":\"黄岛大涧山\",\"rainfall1h\":\"0.0\",\"rainfall3h\":\"0.0\",\"rainfall6h\":\"0.3\",\"rainfall12h\":\"1.2\"},{\"stationName\":\"黄岛滨海杜鹃花区气象观测站\",\"rainfall1h\":\"0.0\",\"rainfall3h\":\"0.0\",\"rainfall6h\":\"0.1\",\"rainfall12h\":\"0.9\"},{\"stationName\":\"黄岛隐珠气象观测站\",\"rainfall1h\":\"0.0\",\"rainfall3h\":\"0.0\",\"rainfall6h\":\"0.4\",\"rainfall12h\":\"1.8\"},{\"stationName\":\"黄岛竹岔岛\",\"rainfall1h\":\"0.0\",\"rainfall3h\":\"0.2\",\"rainfall6h\":\"0.6\",\"rainfall12h\":\"2.4\"},{\"stationName\":\"黄岛灵山岛\",\"rainfall1h\":\"0.0\",\"rainfall3h\":\"0.0\",\"rainfall6h\":\"0.2\",\"rainfall12h\":\"1.0\"}]},{\"type\":\"text\",\"content\":\"4. 数据解析:原始返回为 JSON 格式,已提取关键字段。\"},{\"type\":\"markdown\",\"content\":\"JSON 结构示例:\\n```json\\n{\\n \\\"msg\\\": \\\"success\\\",\\n \\\"code\\\": 0,\\n \\\"dataType\\\": 14,\\n \\\"ds\\\": [\\n {\\n \\\"stationNumber\\\": \\\"54943\\\",\\n \\\"stationName\\\": \\\"黄岛\\\",\\n \\\"observationTime\\\": \\\"8/7 10\\\",\\n \\\"temperature\\\": \\\"33.3\\\",\\n \\\"relativeHumidity\\\": \\\"65\\\",\\n \\\"windDirectionTxt\\\": \\\"东风\\\",\\n \\\"windSpeed\\\": \\\"1.8\\\",\\n \\\"weatherinfo\\\": \\\"晴天\\\"\\n }\\n ]\\n}\\n```\"},{\"type\":\"text\",\"content\":\"5. 生成服务材料:基于以上数据生成 Word 文档。\"}]},{\"sort\":2,\"type\":\"file\",\"title\":\"\",\"name\":\"智能制作成果.docx\",\"fileUrl\":\"https://mozilla.github.io/pdf.js/web/compressed.tracemonkey-pldi-09.pdf\",\"ext\":\"docx\"}]}]}}") }, Zl = class {
|
|
26648
|
+
}), Zl = { categories: /* @__PURE__ */ JSON.parse("{\"knowledge\":{\"label\":\"查知识\",\"responses\":[{\"keywords\":[\"台风\",\"大风\",\"预警\"],\"blocks\":[{\"sort\":1,\"type\":\"thinking\",\"steps\":[{\"type\":\"text\",\"content\":\"1. 识别用户需求:查询台风预警及防御知识。\"},{\"type\":\"text\",\"content\":\"2. 检索台风数据库:获取当前编号台风“卡努”的位置、强度、移向移速。\"},{\"type\":\"text\",\"content\":\"3. 查询预警规则:根据风力影响范围匹配台风黄色预警标准。\"},{\"type\":\"text\",\"content\":\"4. 整理防御提示:结合沿海、农业、城市内涝等场景输出建议。\"}]},{\"sort\":2,\"type\":\"markdown\",\"content\":\"## 🌀 台风预警信息\\n\\n今年第 6 号台风 **“卡努”** 预计将于 48 小时内影响本市沿海区域。\\n\\n### 影响时段\\n| 阶段 | 时间 | 风力 | 降雨 |\\n|------|------|------|------|\\n| 外围影响 | 今晚~明天上午 | 东北风 6-7 级 | 阵雨 |\\n| 主体影响 | 明天下午~后天 | 偏东风 8-10 级 | 暴雨到大暴雨 |\\n| 减弱远离 | 大后天 | 东南风 5-6 级 | 小雨 |\\n\\n### 防御提示\\n1. 沿海景区、海上作业平台请于今天 18 时前撤离人员。\\n2. 加固户外广告牌、脚手架、农业大棚等易被大风吹动的搭建物。\\n3. 低洼地区居民请提前备好沙袋,注意防范城市内涝。\\n\\n> 市气象台将每 3 小时滚动发布台风路径及风雨预报。\"}]},{\"keywords\":[\"雷达\",\"云图\",\"卫星\",\"回波\"],\"blocks\":[{\"sort\":1,\"type\":\"thinking\",\"steps\":[{\"type\":\"text\",\"content\":\"1. 识别用户需求:解读雷达回波实况。\"},{\"type\":\"text\",\"content\":\"2. 读取雷达拼图:分析回波强度、走向、移动速度。\"},{\"type\":\"text\",\"content\":\"3. 反演对流参数:回波顶高、VIL、质心高度等。\"},{\"type\":\"text\",\"content\":\"4. 生成解读文本:给出短时临近预报建议。\"}]},{\"sort\":2,\"type\":\"markdown\",\"content\":\"## 📡 雷达回波实况解读\\n\\n当前我市上游 150 km 范围内存在一条东北-西南向对流回波带,强度 35-50 dBZ,正以约 40 km/h 向东南方向移动。\\n\\n### 回波特征\\n- **回波顶高**:9-12 km,属于发展旺盛的对流单体。\\n- **垂直液态水含量**:最大 45 kg/m²,伴有短时强降水风险。\\n- **移动方向**:自西北向东南,预计 1.5 小时后影响市区。\\n\\n### 建议\\n1. 短时强降水可能引发道路积水,建议避开低洼路段。\\n2. 雷电活跃时段尽量减少户外活动。\\n3. 可通过实时雷达拼图持续关注回波移动。\"}]},{\"keywords\":[\"农业\",\"农事\",\"作物\",\"墒情\"],\"blocks\":[{\"sort\":1,\"type\":\"thinking\",\"steps\":[{\"type\":\"text\",\"content\":\"1. 识别用户需求:获取农业气象服务建议。\"},{\"type\":\"text\",\"content\":\"2. 调用土壤墒情数据:各区县土壤相对湿度。\"},{\"type\":\"table\",\"columns\":[{\"key\":\"region\",\"title\":\"区域\",\"align\":\"left\"},{\"key\":\"rh\",\"title\":\"土壤相对湿度\",\"align\":\"center\"},{\"key\":\"evaluate\",\"title\":\"评价\",\"align\":\"center\"}],\"data\":[{\"region\":\"西海岸新区\",\"rh\":\"78%\",\"evaluate\":\"适宜\"},{\"region\":\"即墨区\",\"rh\":\"65%\",\"evaluate\":\"略偏旱\"},{\"region\":\"平度市\",\"rh\":\"85%\",\"evaluate\":\"偏湿\"}]},{\"type\":\"text\",\"content\":\"3. 结合未来 7 天天气预报,生成农事建议。\"}]},{\"sort\":2,\"type\":\"markdown\",\"content\":\"## 🌾 农业气象服务建议\\n\\n### 当前农田墒情\\n| 区域 | 土壤相对湿度 | 评价 | 建议 |\\n|------|------------|------|------|\\n| 西海岸新区 | 78% | 适宜 | 可正常播种夏玉米 |\\n| 即墨区 | 65% | 略偏旱 | 灌溉 1 次,确保出苗 |\\n| 平度市 | 85% | 偏湿 | 注意清沟理墒,防渍害 |\\n\\n### 未来 7 天农事建议\\n1. **今明两天**有小雨,雨后趁墒开展夏玉米、大豆等作物播种。\\n2. **周三至周五**以多云为主,利于田间管理,可喷施除草剂。\\n3. 周末有阵雨,抓紧收获成熟瓜果蔬菜,避免田间腐烂。\"}]},{\"default\":true,\"blocks\":[{\"sort\":1,\"type\":\"thinking\",\"steps\":[{\"type\":\"text\",\"content\":\"1. 识别用户需求:查询指定位置当前及未来 24 小时气象概况。\"},{\"type\":\"text\",\"content\":\"2. 定位最近自动站:西海岸新区国家气象站。\"},{\"type\":\"table\",\"columns\":[{\"key\":\"stationNumber\",\"title\":\"站号\",\"align\":\"center\"},{\"key\":\"stationName\",\"title\":\"站名\",\"align\":\"left\"},{\"key\":\"temperature\",\"title\":\"气温(°C)\",\"align\":\"right\"},{\"key\":\"relativeHumidity\",\"title\":\"相对湿度(%)\",\"align\":\"right\"},{\"key\":\"windDirectionTxt\",\"title\":\"风向\",\"align\":\"center\"},{\"key\":\"windSpeed\",\"title\":\"风速(m/s)\",\"align\":\"right\"}],\"data\":[{\"stationNumber\":\"54943\",\"stationName\":\"黄岛\",\"temperature\":\"26.3\",\"relativeHumidity\":\"78\",\"windDirectionTxt\":\"东南风\",\"windSpeed\":\"3.2\"}]},{\"type\":\"text\",\"content\":\"3. 融合数值预报:生成通俗防御建议。\"}]},{\"sort\":2,\"type\":\"markdown\",\"content\":\"根据你提供的位置信息,我查询了当前及未来 24 小时气象概况 👇\\n\\n## 🌤️ 青岛市西海岸新区 · 气象概况\\n\\n### 当前实况\\n| 要素 | 数值 |\\n|------|------|\\n| 气温 | **26.3°C** |\\n| 相对湿度 | **78%** |\\n| 风向风力 | 东南风 **3~4 级** |\\n| 能见度 | **12 km** |\\n| 气压 | 1008 hPa |\\n\\n### 防御建议\\n1. **今夜至凌晨有小雨**,沿海路段能见度较低,出行请注意交通安全。\\n2. 明早气温降至 **20°C 左右**,体感偏凉,建议携带薄外套。\\n3. 明天白天转为多云,最高气温回升至 **28°C**,适宜户外活动。\\n\\n> 数据来源:气象大数据平台\"}]}]},\"data\":{\"label\":\"查数据\",\"responses\":[{\"keywords\":[\"台风\",\"路径\",\"风力\"],\"blocks\":[{\"sort\":1,\"type\":\"thinking\",\"steps\":[{\"type\":\"text\",\"content\":\"1. 识别用户需求:查询台风路径及强度变化数据。\"},{\"type\":\"text\",\"content\":\"2. 调用台风预报接口:获取未来 72 小时路径点。\"},{\"type\":\"text\",\"content\":\"3. 绘制趋势图表:中心气压变化曲线。\"},{\"type\":\"text\",\"content\":\"4. 输出结构化表格与预报图。\"}]},{\"sort\":2,\"type\":\"markdown\",\"content\":\"#### 🌀 台风“卡努”未来 72 小时路径预报\"},{\"sort\":3,\"type\":\"table\",\"columns\":[{\"key\":\"time\",\"title\":\"时间\",\"align\":\"left\"},{\"key\":\"lon\",\"title\":\"经度\",\"align\":\"center\"},{\"key\":\"lat\",\"title\":\"纬度\",\"align\":\"center\"},{\"key\":\"level\",\"title\":\"强度等级\",\"align\":\"center\"},{\"key\":\"wind\",\"title\":\"近中心风力\",\"align\":\"center\"},{\"key\":\"dir\",\"title\":\"移向\",\"align\":\"center\"},{\"key\":\"speed\",\"title\":\"移速\",\"align\":\"right\"}],\"data\":[{\"time\":\"今天 20 时\",\"lon\":\"125.8°E\",\"lat\":\"28.4°N\",\"level\":\"强台风\",\"wind\":\"14 级\",\"dir\":\"西北\",\"speed\":\"12 km/h\"},{\"time\":\"明天 08 时\",\"lon\":\"124.9°E\",\"lat\":\"29.1°N\",\"level\":\"强台风\",\"wind\":\"15 级\",\"dir\":\"西北偏北\",\"speed\":\"10 km/h\"},{\"time\":\"明天 20 时\",\"lon\":\"123.7°E\",\"lat\":\"30.0°N\",\"level\":\"台风\",\"wind\":\"13 级\",\"dir\":\"北\",\"speed\":\"8 km/h\"},{\"time\":\"后天 08 时\",\"lon\":\"122.8°E\",\"lat\":\"31.2°N\",\"level\":\"强热带风暴\",\"wind\":\"11 级\",\"dir\":\"东北\",\"speed\":\"15 km/h\"}]},{\"sort\":4,\"type\":\"echarts\",\"title\":\"台风中心气压变化趋势\",\"option\":{\"grid\":{\"top\":40,\"right\":20,\"bottom\":30,\"left\":50},\"xAxis\":{\"type\":\"category\",\"data\":[\"今天\",\"明天\",\"后天\",\"大后天\"]},\"yAxis\":{\"type\":\"value\",\"name\":\"hPa\",\"min\":900},\"series\":[{\"type\":\"line\",\"data\":[955,940,965,985],\"smooth\":true,\"areaStyle\":{\"opacity\":0.2}}]}},{\"sort\":5,\"type\":\"image\",\"url\":\"https://picsum.photos/seed/typhoon_track/400/220\",\"caption\":\"台风路径概率预报图\"}]},{\"keywords\":[\"降水\",\"雨量\",\"降雨\",\"暴雨\"],\"blocks\":[{\"sort\":1,\"type\":\"thinking\",\"steps\":[{\"type\":\"text\",\"content\":\"1. 识别用户需求:查询未来 24 小时累计降水量。\"},{\"type\":\"text\",\"content\":\"2. 调用格点预报数据:各区县逐 6 小时降水量。\"},{\"type\":\"table\",\"columns\":[{\"key\":\"district\",\"title\":\"区县\",\"align\":\"left\"},{\"key\":\"h06\",\"title\":\"0-6h\",\"align\":\"right\"},{\"key\":\"h12\",\"title\":\"6-12h\",\"align\":\"right\"},{\"key\":\"h18\",\"title\":\"12-18h\",\"align\":\"right\"},{\"key\":\"h24\",\"title\":\"18-24h\",\"align\":\"right\"},{\"key\":\"total\",\"title\":\"过程累计\",\"align\":\"right\"}],\"data\":[{\"district\":\"市南区\",\"h06\":\"5 mm\",\"h12\":\"15 mm\",\"h18\":\"35 mm\",\"h24\":\"12 mm\",\"total\":\"67 mm\"},{\"district\":\"崂山区\",\"h06\":\"8 mm\",\"h12\":\"25 mm\",\"h18\":\"55 mm\",\"h24\":\"20 mm\",\"total\":\"108 mm\"},{\"district\":\"西海岸新区\",\"h06\":\"10 mm\",\"h12\":\"30 mm\",\"h18\":\"60 mm\",\"h24\":\"22 mm\",\"total\":\"122 mm\"}]},{\"type\":\"text\",\"content\":\"3. 生成柱状图:直观展示各区县过程累计降水量。\"}]},{\"sort\":2,\"type\":\"markdown\",\"content\":\"#### 🌧️ 未来 24 小时累计降水量预报\"},{\"sort\":3,\"type\":\"table\",\"columns\":[{\"key\":\"district\",\"title\":\"区县\",\"align\":\"left\"},{\"key\":\"h06\",\"title\":\"0-6h\",\"align\":\"right\"},{\"key\":\"h12\",\"title\":\"6-12h\",\"align\":\"right\"},{\"key\":\"h18\",\"title\":\"12-18h\",\"align\":\"right\"},{\"key\":\"h24\",\"title\":\"18-24h\",\"align\":\"right\"},{\"key\":\"total\",\"title\":\"过程累计\",\"align\":\"right\"}],\"data\":[{\"district\":\"市南区\",\"h06\":\"5 mm\",\"h12\":\"15 mm\",\"h18\":\"35 mm\",\"h24\":\"12 mm\",\"total\":\"67 mm\"},{\"district\":\"市北区\",\"h06\":\"3 mm\",\"h12\":\"12 mm\",\"h18\":\"28 mm\",\"h24\":\"10 mm\",\"total\":\"53 mm\"},{\"district\":\"李沧区\",\"h06\":\"4 mm\",\"h12\":\"18 mm\",\"h18\":\"42 mm\",\"h24\":\"15 mm\",\"total\":\"79 mm\"},{\"district\":\"崂山区\",\"h06\":\"8 mm\",\"h12\":\"25 mm\",\"h18\":\"55 mm\",\"h24\":\"20 mm\",\"total\":\"108 mm\"},{\"district\":\"城阳区\",\"h06\":\"6 mm\",\"h12\":\"20 mm\",\"h18\":\"38 mm\",\"h24\":\"14 mm\",\"total\":\"78 mm\"},{\"district\":\"西海岸新区\",\"h06\":\"10 mm\",\"h12\":\"30 mm\",\"h18\":\"60 mm\",\"h24\":\"22 mm\",\"total\":\"122 mm\"},{\"district\":\"即墨区\",\"h06\":\"7 mm\",\"h12\":\"22 mm\",\"h18\":\"45 mm\",\"h24\":\"16 mm\",\"total\":\"90 mm\"}]},{\"sort\":4,\"type\":\"echarts\",\"title\":\"各区县过程累计降水量\",\"option\":{\"grid\":{\"top\":40,\"right\":20,\"bottom\":50,\"left\":60},\"xAxis\":{\"type\":\"category\",\"data\":[\"市南\",\"市北\",\"李沧\",\"崂山\",\"城阳\",\"西海岸\",\"即墨\"],\"axisLabel\":{\"rotate\":30}},\"yAxis\":{\"type\":\"value\",\"name\":\"mm\"},\"series\":[{\"type\":\"bar\",\"data\":[67,53,79,108,78,122,90],\"itemStyle\":{\"color\":\"#22d3ee\"}}]}},{\"sort\":5,\"type\":\"image\",\"url\":\"https://picsum.photos/seed/rain_map/400/220\",\"caption\":\"24 小时降水预报图\"}]},{\"default\":true,\"blocks\":[{\"sort\":1,\"type\":\"thinking\",\"steps\":[{\"type\":\"text\",\"content\":\"1. 识别用户需求:查询未来 7 天天气预报。\"},{\"type\":\"text\",\"content\":\"2. 调用城市预报数据:天气现象、气温、风向风力、降水概率。\"},{\"type\":\"text\",\"content\":\"3. 绘制气温趋势图:最高温与最低温双曲线。\"},{\"type\":\"text\",\"content\":\"4. 输出表格与趋势图。\"}]},{\"sort\":2,\"type\":\"markdown\",\"content\":\"#### 🌦️ 青岛市未来 7 天天气预报\"},{\"sort\":3,\"type\":\"table\",\"columns\":[{\"key\":\"date\",\"title\":\"日期\",\"align\":\"left\"},{\"key\":\"weather\",\"title\":\"天气现象\",\"align\":\"left\"},{\"key\":\"max\",\"title\":\"最高温\",\"align\":\"right\"},{\"key\":\"min\",\"title\":\"最低温\",\"align\":\"right\"},{\"key\":\"wind\",\"title\":\"风向风力\",\"align\":\"left\"},{\"key\":\"rain\",\"title\":\"降水概率\",\"align\":\"right\"}],\"data\":[{\"date\":\"今天\",\"weather\":\"多云转小雨\",\"max\":\"28°C\",\"min\":\"21°C\",\"wind\":\"东南风 3-4 级\",\"rain\":\"60%\"},{\"date\":\"明天\",\"weather\":\"小雨转多云\",\"max\":\"26°C\",\"min\":\"19°C\",\"wind\":\"东北风 3 级\",\"rain\":\"40%\"},{\"date\":\"后天\",\"weather\":\"多云\",\"max\":\"29°C\",\"min\":\"20°C\",\"wind\":\"南风 2-3 级\",\"rain\":\"10%\"},{\"date\":\"周四\",\"weather\":\"晴\",\"max\":\"31°C\",\"min\":\"22°C\",\"wind\":\"南风 2 级\",\"rain\":\"0%\"},{\"date\":\"周五\",\"weather\":\"晴转多云\",\"max\":\"30°C\",\"min\":\"23°C\",\"wind\":\"东南风 3 级\",\"rain\":\"10%\"},{\"date\":\"周六\",\"weather\":\"多云转阴\",\"max\":\"28°C\",\"min\":\"22°C\",\"wind\":\"东风 3 级\",\"rain\":\"30%\"},{\"date\":\"周日\",\"weather\":\"阵雨\",\"max\":\"27°C\",\"min\":\"21°C\",\"wind\":\"东北风 3-4 级\",\"rain\":\"70%\"}]},{\"sort\":4,\"type\":\"echarts\",\"title\":\"未来 7 天气温趋势\",\"option\":{\"grid\":{\"top\":40,\"right\":20,\"bottom\":30,\"left\":40},\"legend\":{\"data\":[\"最高温\",\"最低温\"]},\"xAxis\":{\"type\":\"category\",\"data\":[\"今天\",\"明天\",\"后天\",\"周四\",\"周五\",\"周六\",\"周日\"]},\"yAxis\":{\"type\":\"value\",\"name\":\"°C\"},\"series\":[{\"name\":\"最高温\",\"type\":\"line\",\"data\":[28,26,29,31,30,28,27],\"smooth\":true,\"itemStyle\":{\"color\":\"#f59e0b\"}},{\"name\":\"最低温\",\"type\":\"line\",\"data\":[21,19,20,22,23,22,21],\"smooth\":true,\"itemStyle\":{\"color\":\"#22d3ee\"}}]}},{\"sort\":5,\"type\":\"image\",\"url\":\"https://picsum.photos/seed/weather_trend/400/220\",\"caption\":\"未来 7 天气温趋势图\"}]}]},\"material\":{\"label\":\"查材料\",\"responses\":[{\"keywords\":[\"海洋\",\"台风\",\"灾害\",\"防御\"],\"blocks\":[{\"sort\":1,\"type\":\"thinking\",\"steps\":[{\"type\":\"text\",\"content\":\"1. 识别用户需求:检索台风灾害防御相关材料。\"},{\"type\":\"text\",\"content\":\"2. 检索材料库:按关键词“台风”“灾害”“防御”匹配文档。\"},{\"type\":\"text\",\"content\":\"3. 筛选格式:PDF、XLSX、DOCX,保留权威来源。\"},{\"type\":\"text\",\"content\":\"4. 输出材料列表及摘要。\"}]},{\"sort\":2,\"type\":\"text\",\"content\":\"已检索到与台风灾害防御相关的材料,共 3 份:\"},{\"sort\":3,\"type\":\"fileList\",\"files\":[{\"name\":\"青岛市台风灾害防御应急预案.pdf\",\"url\":\"https://mozilla.github.io/pdf.js/web/compressed.tracemonkey-pldi-09.pdf\",\"size\":\"4.2 MB\",\"ext\":\"pdf\",\"description\":\"本预案明确了台风预警分级、应急响应启动条件、各部门职责分工及人员转移安置要求。\"},{\"name\":\"台风风险隐患清单.xlsx\",\"url\":\"https://mozilla.github.io/pdf.js/web/compressed.tracemonkey-pldi-09.pdf\",\"size\":\"1.8 MB\",\"ext\":\"xlsx\",\"description\":\"全市低洼易涝点、地质灾害隐患点、海上作业平台等风险隐患台账。\"},{\"name\":\"人员转移安置方案.docx\",\"url\":\"https://mozilla.github.io/pdf.js/web/compressed.tracemonkey-pldi-09.pdf\",\"size\":\"2.5 MB\",\"ext\":\"docx\",\"description\":\"受台风影响区域人员转移路线图、安置点分布及物资保障方案。\"}]}]},{\"default\":true,\"blocks\":[{\"sort\":1,\"type\":\"thinking\",\"steps\":[{\"type\":\"text\",\"content\":\"1. 识别用户需求:检索海洋气象预报相关材料。\"},{\"type\":\"text\",\"content\":\"2. 检索材料库:按关键词“海洋”“预报”“精细化”匹配。\"},{\"type\":\"text\",\"content\":\"3. 筛选格式:DOC、PDF、PPTX,按时间倒序排列。\"},{\"type\":\"text\",\"content\":\"4. 输出材料列表及摘要。\"}]},{\"sort\":2,\"type\":\"text\",\"content\":\"已检索到海洋气象预报相关材料,共 3 份:\"},{\"sort\":3,\"type\":\"fileList\",\"files\":[{\"name\":\"精细化海洋预报(20260531).doc\",\"url\":\"http://58.59.29.51:11014/productFilePath/seaService/2026/5/31/%E7%B2%BE%E7%BB%86%E5%8C%96%E6%B5%B7%E6%B4%8B%E9%A2%84%E6%8A%A5%EF%BC%8820260531%EF%BC%89.doc\",\"size\":\"5.8 MB\",\"ext\":\"doc\",\"description\":\"海洋气象预报\"},{\"name\":\"气象灾害防御工作手册.pdf\",\"url\":\"https://mozilla.github.io/pdf.js/web/compressed.tracemonkey-pldi-09.pdf\",\"size\":\"3.6 MB\",\"ext\":\"pdf\",\"description\":\"面向基层网格员的灾害防御操作指南,包含预警信息接收、传播和应急处置流程。\"},{\"name\":\"防灾减灾宣传材料.pptx\",\"url\":\"https://mozilla.github.io/pdf.js/web/compressed.tracemonkey-pldi-09.pdf\",\"size\":\"8.2 MB\",\"ext\":\"pptx\",\"description\":\"面向社区、学校的防灾减灾科普宣传课件。\"}]}]}]},\"smartMake\":{\"label\":\"智能制作\",\"responses\":[{\"keywords\":[\"预警\",\"通知\",\"发文\"],\"blocks\":[{\"sort\":1,\"type\":\"thinking\",\"steps\":[{\"type\":\"text\",\"content\":\"1. 识别用户需求:需要生成一份气象灾害预警通知公文。\"},{\"type\":\"text\",\"content\":\"2. 匹配模板:选择《气象灾害预警通知》公文模板。\"},{\"type\":\"text\",\"content\":\"3. 填充要素:当前预警类型为台风黄色预警,影响时段为 24-48 小时,重点关注沿海区域。\"},{\"type\":\"text\",\"content\":\"4. 生成落款:青岛市气象局,日期为今日。\"},{\"type\":\"text\",\"content\":\"5. 输出格式:Word 文档,便于后续编辑和正式发文。\"}]},{\"sort\":2,\"type\":\"file\",\"title\":\"\",\"name\":\"气象灾害预警通知.docx\",\"fileUrl\":\"https://mozilla.github.io/pdf.js/web/compressed.tracemonkey-pldi-09.pdf\",\"ext\":\"docx\"}]},{\"keywords\":[\"报告\",\"总结\",\"分析\"],\"blocks\":[{\"sort\":1,\"type\":\"thinking\",\"steps\":[{\"type\":\"text\",\"content\":\"1. 识别用户需求:需要生成气象服务总结报告。\"},{\"type\":\"text\",\"content\":\"2. 梳理素材:调用近期天气预报、服务产品、用户反馈等数据。\"},{\"type\":\"text\",\"content\":\"3. 构建框架:包含服务概况、重点过程、服务效益、存在问题及下一步计划。\"},{\"type\":\"text\",\"content\":\"4. 图表插入:自动插入降水预报准确率、服务覆盖人次等统计图表。\"},{\"type\":\"text\",\"content\":\"5. 输出格式:PDF 文档,便于归档和报送。\"}]},{\"sort\":2,\"type\":\"file\",\"title\":\"\",\"name\":\"气象服务总结报告.pdf\",\"fileUrl\":\"https://mozilla.github.io/pdf.js/web/compressed.tracemonkey-pldi-09.pdf\",\"ext\":\"pdf\"}]},{\"default\":true,\"blocks\":[{\"sort\":1,\"type\":\"thinking\",\"steps\":[{\"type\":\"text\",\"content\":\"1. 识别用户需求:需要基于自动站数据智能制作气象服务材料。\"},{\"type\":\"text\",\"content\":\"2. 数据获取:调用自动站接口,获取黄岛区共 17 个站点最新实况。\"},{\"type\":\"table\",\"columns\":[{\"key\":\"stationNumber\",\"title\":\"站号\",\"align\":\"center\"},{\"key\":\"stationName\",\"title\":\"站名\",\"align\":\"left\"},{\"key\":\"observationTime\",\"title\":\"观测时间\",\"align\":\"center\"},{\"key\":\"temperature\",\"title\":\"气温(°C)\",\"align\":\"right\"},{\"key\":\"relativeHumidity\",\"title\":\"相对湿度(%)\",\"align\":\"right\"},{\"key\":\"windDirectionTxt\",\"title\":\"风向\",\"align\":\"center\"},{\"key\":\"windSpeed\",\"title\":\"风速(m/s)\",\"align\":\"right\"},{\"key\":\"weatherinfo\",\"title\":\"天气\",\"align\":\"center\"}],\"data\":[{\"stationNumber\":\"54943\",\"stationName\":\"黄岛\",\"observationTime\":\"8/7 10\",\"temperature\":\"33.3\",\"relativeHumidity\":\"65\",\"windDirectionTxt\":\"东风\",\"windSpeed\":\"1.8\",\"weatherinfo\":\"晴天\"},{\"stationNumber\":\"D0002\",\"stationName\":\"黄岛金沙滩\",\"observationTime\":\"8/7 10\",\"temperature\":\"33.7\",\"relativeHumidity\":\"60\",\"windDirectionTxt\":\"北风\",\"windSpeed\":\"2.5\",\"weatherinfo\":\"晴天\"},{\"stationNumber\":\"D0008\",\"stationName\":\"黄岛琅琊\",\"observationTime\":\"8/7 10\",\"temperature\":\"32.4\",\"relativeHumidity\":\"61\",\"windDirectionTxt\":\"东风\",\"windSpeed\":\"1.7\",\"weatherinfo\":\"晴天\"},{\"stationNumber\":\"D0063\",\"stationName\":\"黄岛大涧山\",\"observationTime\":\"8/7 10\",\"temperature\":\"34.6\",\"relativeHumidity\":\"58\",\"windDirectionTxt\":\"东北风\",\"windSpeed\":\"2.4\",\"weatherinfo\":\"晴天\"},{\"stationNumber\":\"D0076\",\"stationName\":\"黄岛滨海杜鹃花区气象观测站\",\"observationTime\":\"8/7 10\",\"temperature\":\"33.9\",\"relativeHumidity\":\"缺测\",\"windDirectionTxt\":\"东风\",\"windSpeed\":\"1.3\",\"weatherinfo\":\"晴天\"},{\"stationNumber\":\"D0167\",\"stationName\":\"黄岛隐珠气象观测站\",\"observationTime\":\"8/7 10\",\"temperature\":\"33.6\",\"relativeHumidity\":\"55\",\"windDirectionTxt\":\"西北风\",\"windSpeed\":\"3.0\",\"weatherinfo\":\"晴天\"},{\"stationNumber\":\"D0189\",\"stationName\":\"黄岛竹岔岛\",\"observationTime\":\"8/7 10\",\"temperature\":\"30.8\",\"relativeHumidity\":\"74\",\"windDirectionTxt\":\"缺测\",\"windSpeed\":\"0.0\",\"weatherinfo\":\"晴天\"},{\"stationNumber\":\"D0192\",\"stationName\":\"黄岛灵山岛\",\"observationTime\":\"8/7 10\",\"temperature\":\"29.5\",\"relativeHumidity\":\"62\",\"windDirectionTxt\":\"东北风\",\"windSpeed\":\"0.3\",\"weatherinfo\":\"晴天\"},{\"stationNumber\":\"D0197\",\"stationName\":\"黄岛台子沟\",\"observationTime\":\"8/7 10\",\"temperature\":\"33.1\",\"relativeHumidity\":\"缺测\",\"windDirectionTxt\":\"东风\",\"windSpeed\":\"2.0\",\"weatherinfo\":\"晴天\"},{\"stationNumber\":\"D0199\",\"stationName\":\"黄岛轮渡\",\"observationTime\":\"8/7 10\",\"temperature\":\"33.4\",\"relativeHumidity\":\"60\",\"windDirectionTxt\":\"西北风\",\"windSpeed\":\"0.9\",\"weatherinfo\":\"晴天\"},{\"stationNumber\":\"D0200\",\"stationName\":\"黄岛董家口港\",\"observationTime\":\"8/7 10\",\"temperature\":\"30.4\",\"relativeHumidity\":\"62\",\"windDirectionTxt\":\"东南风\",\"windSpeed\":\"2.7\",\"weatherinfo\":\"晴天\"},{\"stationNumber\":\"D0206\",\"stationName\":\"黄岛实验中学气象观测站\",\"observationTime\":\"8/7 10\",\"temperature\":\"34.3\",\"relativeHumidity\":\"54\",\"windDirectionTxt\":\"西南风\",\"windSpeed\":\"2.6\",\"weatherinfo\":\"晴天\"},{\"stationNumber\":\"D0212\",\"stationName\":\"黄岛前湾港码头\",\"observationTime\":\"8/7 10\",\"temperature\":\"34.0\",\"relativeHumidity\":\"54\",\"windDirectionTxt\":\"东北风\",\"windSpeed\":\"3.4\",\"weatherinfo\":\"晴天\"},{\"stationNumber\":\"D0231\",\"stationName\":\"黄岛泊里气象观测站\",\"observationTime\":\"8/7 10\",\"temperature\":\"34.0\",\"relativeHumidity\":\"55\",\"windDirectionTxt\":\"缺测\",\"windSpeed\":\"缺测\",\"weatherinfo\":\"晴天\"},{\"stationNumber\":\"D0263\",\"stationName\":\"黄岛薛家岛气象观测站\",\"observationTime\":\"8/7 10\",\"temperature\":\"30.8\",\"relativeHumidity\":\"75\",\"windDirectionTxt\":\"东南风\",\"windSpeed\":\"3.2\",\"weatherinfo\":\"晴天\"},{\"stationNumber\":\"D0267\",\"stationName\":\"黄岛区小珠山气象观测站\",\"observationTime\":\"8/7 10\",\"temperature\":\"34.4\",\"relativeHumidity\":\"缺测\",\"windDirectionTxt\":\"北风\",\"windSpeed\":\"3.1\",\"weatherinfo\":\"晴天\"},{\"stationNumber\":\"D0501\",\"stationName\":\"黄岛滨海气象观测站\",\"observationTime\":\"8/7 10\",\"temperature\":\"34.1\",\"relativeHumidity\":\"55\",\"windDirectionTxt\":\"北风\",\"windSpeed\":\"2.5\",\"weatherinfo\":\"晴天\"}]},{\"type\":\"text\",\"content\":\"3. 降水分析:获取黄岛区近 3 小时累计降水量。\"},{\"type\":\"table\",\"columns\":[{\"key\":\"stationName\",\"title\":\"站名\",\"align\":\"left\"},{\"key\":\"rainfall1h\",\"title\":\"1h降水(mm)\",\"align\":\"right\"},{\"key\":\"rainfall3h\",\"title\":\"3h降水(mm)\",\"align\":\"right\"},{\"key\":\"rainfall6h\",\"title\":\"6h降水(mm)\",\"align\":\"right\"},{\"key\":\"rainfall12h\",\"title\":\"12h降水(mm)\",\"align\":\"right\"}],\"data\":[{\"stationName\":\"黄岛\",\"rainfall1h\":\"0.0\",\"rainfall3h\":\"0.0\",\"rainfall6h\":\"0.2\",\"rainfall12h\":\"1.5\"},{\"stationName\":\"黄岛金沙滩\",\"rainfall1h\":\"0.0\",\"rainfall3h\":\"0.0\",\"rainfall6h\":\"0.0\",\"rainfall12h\":\"0.8\"},{\"stationName\":\"黄岛琅琊\",\"rainfall1h\":\"0.0\",\"rainfall3h\":\"0.1\",\"rainfall6h\":\"0.5\",\"rainfall12h\":\"2.1\"},{\"stationName\":\"黄岛大涧山\",\"rainfall1h\":\"0.0\",\"rainfall3h\":\"0.0\",\"rainfall6h\":\"0.3\",\"rainfall12h\":\"1.2\"},{\"stationName\":\"黄岛滨海杜鹃花区气象观测站\",\"rainfall1h\":\"0.0\",\"rainfall3h\":\"0.0\",\"rainfall6h\":\"0.1\",\"rainfall12h\":\"0.9\"},{\"stationName\":\"黄岛隐珠气象观测站\",\"rainfall1h\":\"0.0\",\"rainfall3h\":\"0.0\",\"rainfall6h\":\"0.4\",\"rainfall12h\":\"1.8\"},{\"stationName\":\"黄岛竹岔岛\",\"rainfall1h\":\"0.0\",\"rainfall3h\":\"0.2\",\"rainfall6h\":\"0.6\",\"rainfall12h\":\"2.4\"},{\"stationName\":\"黄岛灵山岛\",\"rainfall1h\":\"0.0\",\"rainfall3h\":\"0.0\",\"rainfall6h\":\"0.2\",\"rainfall12h\":\"1.0\"}]},{\"type\":\"text\",\"content\":\"4. 数据解析:原始返回为 JSON 格式,已提取关键字段。\"},{\"type\":\"markdown\",\"content\":\"JSON 结构示例:\\n```json\\n{\\n \\\"msg\\\": \\\"success\\\",\\n \\\"code\\\": 0,\\n \\\"dataType\\\": 14,\\n \\\"ds\\\": [\\n {\\n \\\"stationNumber\\\": \\\"54943\\\",\\n \\\"stationName\\\": \\\"黄岛\\\",\\n \\\"observationTime\\\": \\\"8/7 10\\\",\\n \\\"temperature\\\": \\\"33.3\\\",\\n \\\"relativeHumidity\\\": \\\"65\\\",\\n \\\"windDirectionTxt\\\": \\\"东风\\\",\\n \\\"windSpeed\\\": \\\"1.8\\\",\\n \\\"weatherinfo\\\": \\\"晴天\\\"\\n }\\n ]\\n}\\n```\"},{\"type\":\"text\",\"content\":\"5. 生成服务材料:基于以上数据生成 Word 文档。\"}]},{\"sort\":2,\"type\":\"file\",\"title\":\"\",\"name\":\"智能制作成果.docx\",\"fileUrl\":\"https://mozilla.github.io/pdf.js/web/compressed.tracemonkey-pldi-09.pdf\",\"ext\":\"docx\"}]}]}}") }, Ql = class {
|
|
26650
26649
|
controller = null;
|
|
26651
26650
|
currentRequestId = 0;
|
|
26652
26651
|
abort() {
|
|
@@ -26704,46 +26703,46 @@ var fc = { class: "AiChatThinking__label" }, pc = {
|
|
|
26704
26703
|
this.currentRequestId === r && (this.controller = null);
|
|
26705
26704
|
}
|
|
26706
26705
|
}
|
|
26707
|
-
},
|
|
26706
|
+
}, $l = { class: "AiChat__headerActions" }, eu = ["title"], tu = {
|
|
26708
26707
|
key: 0,
|
|
26709
26708
|
class: "AiChat__message AiChat__message--user"
|
|
26710
|
-
},
|
|
26709
|
+
}, nu = { class: "AiChat__content" }, ru = { class: "AiChat__bubble AiChat__bubble--user" }, iu = { class: "AiChat__time" }, au = {
|
|
26711
26710
|
key: 1,
|
|
26712
26711
|
class: "AiChat__message"
|
|
26713
|
-
},
|
|
26712
|
+
}, ou = { class: "AiChat__content" }, su = { class: "AiChat__bubble" }, cu = {
|
|
26714
26713
|
key: 1,
|
|
26715
26714
|
class: "AiChat__typing"
|
|
26716
|
-
},
|
|
26715
|
+
}, lu = {
|
|
26717
26716
|
key: 0,
|
|
26718
26717
|
class: "AiChat__meta"
|
|
26719
|
-
},
|
|
26718
|
+
}, uu = { class: "AiChat__time" }, du = {
|
|
26720
26719
|
key: 0,
|
|
26721
26720
|
class: "AiChat__actions"
|
|
26722
|
-
},
|
|
26721
|
+
}, fu = {
|
|
26723
26722
|
key: 1,
|
|
26724
26723
|
class: "AiChat__empty"
|
|
26725
|
-
},
|
|
26724
|
+
}, pu = {
|
|
26726
26725
|
key: 2,
|
|
26727
26726
|
class: "AiChat__contentWrapper"
|
|
26728
|
-
},
|
|
26727
|
+
}, mu = { class: "AiChat__headerActions" }, hu = {
|
|
26729
26728
|
key: 0,
|
|
26730
26729
|
class: "AiChat__message AiChat__message--user"
|
|
26731
|
-
},
|
|
26730
|
+
}, gu = { class: "AiChat__content" }, _u = { class: "AiChat__bubble AiChat__bubble--user" }, vu = { class: "AiChat__time" }, yu = {
|
|
26732
26731
|
key: 1,
|
|
26733
26732
|
class: "AiChat__message"
|
|
26734
|
-
},
|
|
26733
|
+
}, bu = { class: "AiChat__content" }, xu = { class: "AiChat__bubble" }, Su = {
|
|
26735
26734
|
key: 1,
|
|
26736
26735
|
class: "AiChat__typing"
|
|
26737
|
-
},
|
|
26736
|
+
}, Cu = {
|
|
26738
26737
|
key: 0,
|
|
26739
26738
|
class: "AiChat__meta"
|
|
26740
|
-
},
|
|
26739
|
+
}, wu = { class: "AiChat__time" }, Tu = {
|
|
26741
26740
|
key: 0,
|
|
26742
26741
|
class: "AiChat__actions"
|
|
26743
|
-
},
|
|
26742
|
+
}, Eu = ["onClick"], Du = {
|
|
26744
26743
|
key: 0,
|
|
26745
26744
|
class: "AiChat__typeTabDivider"
|
|
26746
|
-
},
|
|
26745
|
+
}, Ou = { class: "AiChat__inputBar" }, ku = { class: "AiChat__textareaWrap" }, Au = ["placeholder"], ju = ["disabled"], Mu = /* @__PURE__ */ m({
|
|
26747
26746
|
__name: "AiChat",
|
|
26748
26747
|
props: {
|
|
26749
26748
|
baseHttp: { default: "" },
|
|
@@ -26791,7 +26790,7 @@ var fc = { class: "AiChatThinking__label" }, pc = {
|
|
|
26791
26790
|
width: typeof a.width == "number" ? `${a.width}px` : a.width,
|
|
26792
26791
|
height: typeof a.height == "number" ? `${a.height}px` : a.height,
|
|
26793
26792
|
transform: `translate3d(${y.value}px, ${E.value}px, 0)`
|
|
26794
|
-
}), I = x(null), L = x(null), R = x(!1), z = x(""), B = x(a.defaultType), ee = x(""), V = x(!1), H = null, te = x(""), ne = new
|
|
26793
|
+
}), I = x(null), L = x(null), R = x(!1), z = x(""), B = x(a.defaultType), ee = x(""), V = x(!1), H = null, te = x(""), ne = new Ql(), U = "", W = x(a.appKey || ""), re = [], G = async () => {
|
|
26795
26794
|
if (!a.username || !a.password) return console.warn("[AiChat] 未配置 username/password,跳过登录"), a.appKey || "";
|
|
26796
26795
|
console.log("[AiChat] 正在登录...");
|
|
26797
26796
|
try {
|
|
@@ -26804,7 +26803,7 @@ var fc = { class: "AiChatThinking__label" }, pc = {
|
|
|
26804
26803
|
} catch (e) {
|
|
26805
26804
|
return console.error("[AiChat] 登录失败:", e), a.appKey || "";
|
|
26806
26805
|
}
|
|
26807
|
-
}, K = o(() => !!I.value || !!L.value || R.value), q = x(), ie = x(), ae = x(
|
|
26806
|
+
}, K = o(() => !!I.value || !!L.value || R.value), q = x(), ie = x(), ae = x(Zl), J = o(() => {
|
|
26808
26807
|
let e = ae.value.categories || {};
|
|
26809
26808
|
return Object.keys(e).map((t) => ({
|
|
26810
26809
|
value: t,
|
|
@@ -27042,13 +27041,13 @@ var fc = { class: "AiChatThinking__label" }, pc = {
|
|
|
27042
27041
|
B.value = e, f("changeType", e);
|
|
27043
27042
|
}, _e = async () => {
|
|
27044
27043
|
if (!a.mockData) {
|
|
27045
|
-
ae.value =
|
|
27044
|
+
ae.value = Zl;
|
|
27046
27045
|
return;
|
|
27047
27046
|
}
|
|
27048
27047
|
if (typeof a.mockData == "string") try {
|
|
27049
|
-
ae.value = await xt(a.mockData.startsWith("http") ? a.mockData : `${a.baseHttp}${a.mockData}`, !0) ||
|
|
27048
|
+
ae.value = await xt(a.mockData.startsWith("http") ? a.mockData : `${a.baseHttp}${a.mockData}`, !0) || Zl;
|
|
27050
27049
|
} catch (e) {
|
|
27051
|
-
f("error", e), ae.value =
|
|
27050
|
+
f("error", e), ae.value = Zl;
|
|
27052
27051
|
}
|
|
27053
27052
|
else ae.value = a.mockData;
|
|
27054
27053
|
};
|
|
@@ -27280,7 +27279,7 @@ var fc = { class: "AiChatThinking__label" }, pc = {
|
|
|
27280
27279
|
key: 0,
|
|
27281
27280
|
class: "AiChat__header",
|
|
27282
27281
|
onPointerdown: n[2] ||= A((...e) => w(N) && w(N)(...e), ["prevent"])
|
|
27283
|
-
}, [n[12] ||= d("<div class=\"AiChat__title\"><svg viewBox=\"0 0 24 24\" width=\"14\" height=\"14\" fill=\"currentColor\"><path d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-1 17.93c-3.95-.49-7-3.85-7-7.93 0-.62.08-1.21.21-1.79L9 15v1c0 1.1.9 2 2 2v1.93zm6.9-2.54c-.26-.81-1-1.39-1.9-1.39h-1v-3c0-.55-.45-1-1-1H8v-2h2c.55 0 1-.45 1-1V7h2c1.1 0 2-.9 2-2v-.41c2.93 1.19 5 4.06 5 7.41 0 2.08-.8 3.97-2.1 5.39z\"></path></svg><span>AI 智能助手</span><span class=\"AiChat__status\"><span class=\"AiChat__statusDot\"></span> 在线 </span></div>", 1), u("div",
|
|
27282
|
+
}, [n[12] ||= d("<div class=\"AiChat__title\"><svg viewBox=\"0 0 24 24\" width=\"14\" height=\"14\" fill=\"currentColor\"><path d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-1 17.93c-3.95-.49-7-3.85-7-7.93 0-.62.08-1.21.21-1.79L9 15v1c0 1.1.9 2 2 2v1.93zm6.9-2.54c-.26-.81-1-1.39-1.9-1.39h-1v-3c0-.55-.45-1-1-1H8v-2h2c.55 0 1-.45 1-1V7h2c1.1 0 2-.9 2-2v-.41c2.93 1.19 5 4.06 5 7.41 0 2.08-.8 3.97-2.1 5.39z\"></path></svg><span>AI 智能助手</span><span class=\"AiChat__status\"><span class=\"AiChat__statusDot\"></span> 在线 </span></div>", 1), u("div", $l, [u("button", {
|
|
27284
27283
|
class: "AiChat__headerBtn",
|
|
27285
27284
|
title: m.value ? "退出全屏" : "全屏",
|
|
27286
27285
|
onClick: P,
|
|
@@ -27290,7 +27289,7 @@ var fc = { class: "AiChatThinking__label" }, pc = {
|
|
|
27290
27289
|
width: "16",
|
|
27291
27290
|
height: "16",
|
|
27292
27291
|
fill: "currentColor"
|
|
27293
|
-
}, [u("path", { d: "M5 16h3v3h2v-5H5v2zm3-8H5v2h5V5H8v3zm6 11h2v-3h3v-2h-5v5zm2-11V5h-2v5h5V8h-3z" })], -1)]], 40,
|
|
27292
|
+
}, [u("path", { d: "M5 16h3v3h2v-5H5v2zm3-8H5v2h5V5H8v3zm6 11h2v-3h3v-2h-5v5zm2-11V5h-2v5h5V8h-3z" })], -1)]], 40, eu), u("button", {
|
|
27294
27293
|
class: "AiChat__headerBtn AiChat__headerBtn--close",
|
|
27295
27294
|
onClick: Me,
|
|
27296
27295
|
onPointerdown: n[1] ||= A(() => {}, ["stop"]),
|
|
@@ -27301,17 +27300,17 @@ var fc = { class: "AiChatThinking__label" }, pc = {
|
|
|
27301
27300
|
ref_key: "bodyRef",
|
|
27302
27301
|
ref: q,
|
|
27303
27302
|
class: "AiChat__body"
|
|
27304
|
-
}, [I.value || L.value ? (b(), l(i, { key: 0 }, [I.value ? (b(), l("div",
|
|
27303
|
+
}, [I.value || L.value ? (b(), l(i, { key: 0 }, [I.value ? (b(), l("div", tu, [n[13] ||= u("div", { class: "AiChat__avatar AiChat__avatar--user" }, [u("svg", {
|
|
27305
27304
|
viewBox: "0 0 24 24",
|
|
27306
27305
|
width: "16",
|
|
27307
27306
|
height: "16",
|
|
27308
27307
|
fill: "currentColor"
|
|
27309
|
-
}, [u("path", { d: "M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z" })])], -1), u("div",
|
|
27308
|
+
}, [u("path", { d: "M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z" })])], -1), u("div", nu, [u("div", ru, C(I.value.content), 1), u("div", iu, C(I.value.time), 1)])])) : c("", !0), L.value || R.value ? (b(), l("div", au, [n[20] ||= u("div", { class: "AiChat__avatar AiChat__avatar--ai" }, [u("svg", {
|
|
27310
27309
|
viewBox: "0 0 24 24",
|
|
27311
27310
|
width: "16",
|
|
27312
27311
|
height: "16",
|
|
27313
27312
|
fill: "currentColor"
|
|
27314
|
-
}, [u("path", { d: "M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-1 17.93c-3.95-.49-7-3.85-7-7.93 0-.62.08-1.21.21-1.79L9 15v1c0 1.1.9 2 2 2v1.93zm6.9-2.54c-.26-.81-1-1.39-1.9-1.39h-1v-3c0-.55-.45-1-1-1H8v-2h2c.55 0 1-.45 1-1V7h2c1.1 0 2-.9 2-2v-.41c2.93 1.19 5 4.06 5 7.41 0 2.08-.8 3.97-2.1 5.39z" })])], -1), u("div",
|
|
27313
|
+
}, [u("path", { d: "M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-1 17.93c-3.95-.49-7-3.85-7-7.93 0-.62.08-1.21.21-1.79L9 15v1c0 1.1.9 2 2 2v1.93zm6.9-2.54c-.26-.81-1-1.39-1.9-1.39h-1v-3c0-.55-.45-1-1-1H8v-2h2c.55 0 1-.45 1-1V7h2c1.1 0 2-.9 2-2v-.41c2.93 1.19 5 4.06 5 7.41 0 2.08-.8 3.97-2.1 5.39z" })])], -1), u("div", ou, [u("div", su, [L.value ? (b(), s(Xl, {
|
|
27315
27314
|
key: 0,
|
|
27316
27315
|
message: L.value,
|
|
27317
27316
|
theme: e.theme,
|
|
@@ -27322,11 +27321,11 @@ var fc = { class: "AiChatThinking__label" }, pc = {
|
|
|
27322
27321
|
"theme",
|
|
27323
27322
|
"isFullscreen",
|
|
27324
27323
|
"baseHttp"
|
|
27325
|
-
])) : R.value ? (b(), l("div",
|
|
27324
|
+
])) : R.value ? (b(), l("div", cu, [...n[14] ||= [
|
|
27326
27325
|
u("span", null, null, -1),
|
|
27327
27326
|
u("span", null, null, -1),
|
|
27328
27327
|
u("span", null, null, -1)
|
|
27329
|
-
]])) : c("", !0)]), L.value ? (b(), l("div",
|
|
27328
|
+
]])) : c("", !0)]), L.value ? (b(), l("div", lu, [u("div", uu, C(L.value.time), 1), L.value.thinkingStatus === "end" ? (b(), l("div", du, [
|
|
27330
27329
|
p(a, {
|
|
27331
27330
|
content: "复制",
|
|
27332
27331
|
placement: "top"
|
|
@@ -27377,7 +27376,7 @@ var fc = { class: "AiChatThinking__label" }, pc = {
|
|
|
27377
27376
|
}), u("span", null, "导出")], -1)]]),
|
|
27378
27377
|
_: 1
|
|
27379
27378
|
})
|
|
27380
|
-
])) : c("", !0)])) : c("", !0)])])) : c("", !0)], 64)) : (b(), l("div",
|
|
27379
|
+
])) : c("", !0)])) : c("", !0)])])) : c("", !0)], 64)) : (b(), l("div", fu, " 选择类型后输入问题,AI 将为你解答 "))], 512)) : K.value ? (b(), l("div", pu, [u("header", {
|
|
27381
27380
|
class: "AiChat__contentHeader",
|
|
27382
27381
|
onPointerdown: n[5] ||= A((...e) => w(N) && w(N)(...e), ["prevent"])
|
|
27383
27382
|
}, [n[22] ||= u("div", { class: "AiChat__contentTitle" }, [u("svg", {
|
|
@@ -27385,7 +27384,7 @@ var fc = { class: "AiChatThinking__label" }, pc = {
|
|
|
27385
27384
|
width: "16",
|
|
27386
27385
|
height: "16",
|
|
27387
27386
|
fill: "currentColor"
|
|
27388
|
-
}, [u("path", { d: "M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-1 17.93c-3.95-.49-7-3.85-7-7.93 0-.62.08-1.21.21-1.79L9 15v1c0 1.1.9 2 2 2v1.93zm6.9-2.54c-.26-.81-1-1.39-1.9-1.39h-1v-3c0-.55-.45-1-1-1H8v-2h2c.55 0 1-.45 1-1V7h2c1.1 0 2-.9 2-2v-.41c2.93 1.19 5 4.06 5 7.41 0 2.08-.8 3.97-2.1 5.39z" })]), u("span", null, "AI 智能助手")], -1), u("div",
|
|
27387
|
+
}, [u("path", { d: "M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-1 17.93c-3.95-.49-7-3.85-7-7.93 0-.62.08-1.21.21-1.79L9 15v1c0 1.1.9 2 2 2v1.93zm6.9-2.54c-.26-.81-1-1.39-1.9-1.39h-1v-3c0-.55-.45-1-1-1H8v-2h2c.55 0 1-.45 1-1V7h2c1.1 0 2-.9 2-2v-.41c2.93 1.19 5 4.06 5 7.41 0 2.08-.8 3.97-2.1 5.39z" })]), u("span", null, "AI 智能助手")], -1), u("div", mu, [u("button", {
|
|
27389
27388
|
class: "AiChat__headerBtn",
|
|
27390
27389
|
title: "全屏",
|
|
27391
27390
|
onClick: P,
|
|
@@ -27404,7 +27403,7 @@ var fc = { class: "AiChatThinking__label" }, pc = {
|
|
|
27404
27403
|
ref_key: "bodyRef",
|
|
27405
27404
|
ref: q,
|
|
27406
27405
|
class: "AiChat__contentPanel"
|
|
27407
|
-
}, [I.value || L.value ? (b(), l(i, { key: 0 }, [I.value ? (b(), l("div",
|
|
27406
|
+
}, [I.value || L.value ? (b(), l(i, { key: 0 }, [I.value ? (b(), l("div", hu, [u("div", gu, [u("div", _u, C(I.value.content), 1), u("div", vu, C(I.value.time), 1)])])) : c("", !0), L.value || R.value ? (b(), l("div", yu, [u("div", bu, [u("div", xu, [L.value ? (b(), s(Xl, {
|
|
27408
27407
|
key: 0,
|
|
27409
27408
|
message: L.value,
|
|
27410
27409
|
theme: e.theme,
|
|
@@ -27415,11 +27414,11 @@ var fc = { class: "AiChatThinking__label" }, pc = {
|
|
|
27415
27414
|
"theme",
|
|
27416
27415
|
"isFullscreen",
|
|
27417
27416
|
"baseHttp"
|
|
27418
|
-
])) : R.value ? (b(), l("div",
|
|
27417
|
+
])) : R.value ? (b(), l("div", Su, [...n[23] ||= [
|
|
27419
27418
|
u("span", null, null, -1),
|
|
27420
27419
|
u("span", null, null, -1),
|
|
27421
27420
|
u("span", null, null, -1)
|
|
27422
|
-
]])) : c("", !0)]), L.value ? (b(), l("div",
|
|
27421
|
+
]])) : c("", !0)]), L.value ? (b(), l("div", Cu, [u("div", wu, C(L.value.time), 1), L.value.thinkingStatus === "end" ? (b(), l("div", Tu, [
|
|
27423
27422
|
p(a, {
|
|
27424
27423
|
content: "复制",
|
|
27425
27424
|
placement: "top"
|
|
@@ -27480,7 +27479,7 @@ var fc = { class: "AiChatThinking__label" }, pc = {
|
|
|
27480
27479
|
}, [(b(!0), l(i, null, S(J.value, (e, t) => (b(), l(i, { key: e.value }, [u("button", {
|
|
27481
27480
|
class: g(["AiChat__typeTab", { "AiChat__typeTab--active": B.value === e.value }]),
|
|
27482
27481
|
onClick: (t) => ge(e.value)
|
|
27483
|
-
}, C(e.label), 11,
|
|
27482
|
+
}, C(e.label), 11, Eu), t < J.value.length - 1 ? (b(), l("span", Du)) : c("", !0)], 64))), 128))], 34), u("div", Ou, [u("div", ku, [k(u("input", {
|
|
27484
27483
|
ref_key: "textareaRef",
|
|
27485
27484
|
ref: ie,
|
|
27486
27485
|
"onUpdate:modelValue": n[7] ||= (e) => z.value = e,
|
|
@@ -27489,7 +27488,7 @@ var fc = { class: "AiChatThinking__label" }, pc = {
|
|
|
27489
27488
|
onKeydown: he,
|
|
27490
27489
|
onInput: Oe,
|
|
27491
27490
|
onPointerdown: n[8] ||= A(() => {}, ["stop"])
|
|
27492
|
-
}, null, 40,
|
|
27491
|
+
}, null, 40, Au), [[T, z.value]])]), u("button", {
|
|
27493
27492
|
class: "AiChat__send",
|
|
27494
27493
|
disabled: !z.value.trim() || R.value || V.value,
|
|
27495
27494
|
onClick: ce,
|
|
@@ -27500,10 +27499,10 @@ var fc = { class: "AiChatThinking__label" }, pc = {
|
|
|
27500
27499
|
width: "16",
|
|
27501
27500
|
height: "16",
|
|
27502
27501
|
fill: "currentColor"
|
|
27503
|
-
}, [u("path", { d: "M2.01 21L23 12 2.01 3 2 10l15 2-15 2z" })], -1)]], 40,
|
|
27502
|
+
}, [u("path", { d: "M2.01 21L23 12 2.01 3 2 10l15 2-15 2z" })], -1)]], 40, ju)])], 34)
|
|
27504
27503
|
], 6);
|
|
27505
27504
|
};
|
|
27506
27505
|
}
|
|
27507
27506
|
});
|
|
27508
27507
|
//#endregion
|
|
27509
|
-
export { St as a, ht as i, Ct as n, bt as o, xt as r,
|
|
27508
|
+
export { St as a, ht as i, Ct as n, bt as o, xt as r, Mu as t };
|