Parcourir la source

feat:添加静态数据

wangsisi il y a 5 jours
Parent
commit
f4ee7736d2

+ 14 - 4
src/i18n/messages.js

@@ -127,17 +127,21 @@ export default {
             scaleExcellent: "优秀",
             loading: "加载中...",
             noRecord: "暂无记录",
-            noData: "暂无数据",
+            noData: "暂无异常",
             tabPhenology: "物候进程",
             tabAbnormal: "异常记录",
             tabFarming: "农事记录",
             tabAgriRecord: "农情记录",
             tabRemoteSensing: "时序遥感指标",
             remoteSensingChartTitle: "时序遥感指数",
-            remoteSensingLegendZone: "区域一指数曲线",
+            remoteSensingChartTitleNdvi: "NDVI",
+            remoteSensingChartTitleNdwi: "NDWI",
+            remoteSensingChartTitlePrecipitation: "日降水量",
+            remoteSensingLegendZone: "区域指数曲线",
             remoteSensingLegendStandard: "标准指数曲线",
             timeAxisLabel: "时间",
             remoteSensingValuePlaceholder: "数字",
+            remoteSensingSelectHint: "可在左侧选项卡选择遥感指标类型查看时序指标",
             recordFruitExpand: "果园出现果实迅速膨大,占比",
             recordFruitSet: "果园出现谢花坐果,占比",
             recordFullBloom: "果园进入盛花期",
@@ -184,6 +188,7 @@ export default {
             ownedPlot: "权属田块1:",
             executionArea: "执行区域",
             verified: "已认证",
+            reason: "农事原因",
             purpose: "农事目的",
             notes: "注意事项",
             prescription: "药物处方",
@@ -316,17 +321,21 @@ export default {
             scaleExcellent: "Excellent",
             loading: "Loading...",
             noRecord: "No records",
-            noData: "No data",
+            noData: "No abnormalities",
             tabPhenology: "Phenological Process",
             tabAbnormal: "Abnormalities",
             tabFarming: "Farm Work",
             tabAgriRecord: "Crop Records",
             tabRemoteSensing: "Time-series Remote Sensing",
             remoteSensingChartTitle: "Time-series Remote Sensing Index",
-            remoteSensingLegendZone: "Zone 1 Index Curve",
+            remoteSensingChartTitleNdvi: "NDVI",
+            remoteSensingChartTitleNdwi: "NDWI",
+            remoteSensingChartTitlePrecipitation: "Daily Precipitation",
+            remoteSensingLegendZone: "Zone Index Curve",
             remoteSensingLegendStandard: "Standard Index Curve",
             timeAxisLabel: "Time",
             remoteSensingValuePlaceholder: "Number",
+            remoteSensingSelectHint: "Select a remote sensing index type from the left tabs to view time-series indicators",
             recordFruitExpand: "Rapid fruit expansion in orchard, ",
             recordFruitSet: "Flower drop and fruit set in orchard, ",
             recordFullBloom: "Orchard in full bloom",
@@ -373,6 +382,7 @@ export default {
             ownedPlot: "Plot 1: ",
             executionArea: "Area",
             verified: "Cert",
+            reason: "Reason",
             purpose: "Purpose",
             notes: "Notes",
             prescription: "Rx",

+ 135 - 56
src/views/old_mini/agri_file/components/fileFloat.vue

@@ -19,20 +19,23 @@
                         </div>
                     </div>
                     <div class="tab-loading" v-if="loading">{{ t('agriFile.loading') }}</div>
-                    <div class="tab-empty" v-else-if="currentList.length === 0">{{ t('agriFile.noData') }}</div>
-                    <div v-else class="tab-content-item" v-for="item in displayList" :key="item.id">
-                        <template v-if="item?.recordText?.length">
-                            <div class="time-tag">{{ item.time }}</div>
-                            <div class="item-info">
-                                {{ item.recordText }}
-                                <span class="blue-text">{{ item.ratio }}{{ item.showRatio ? '%' : '' }}</span>
-                            </div>
-                        </template>
+                    <div class="tab-empty" v-else-if="displayList.length === 0">{{ t('agriFile.noData') }}</div>
+                    <div
+                        v-else
+                        v-for="item in displayList"
+                        :key="`${activeSubTabValue}-${item.id}`"
+                        class="tab-content-item"
+                    >
+                        <div class="time-tag">{{ item.time }}</div>
+                        <div class="item-info">
+                            {{ item.recordText }}
+                            <span class="blue-text">{{ item.ratio }}{{ item.showRatio ? '%' : '' }}</span>
+                        </div>
                     </div>
                 </template>
                 <div v-else-if="isRemoteSensingTab" class="remote-sensing-chart">
-                    <div class="remote-sensing-chart__header">
-                        <span class="remote-sensing-chart__title">{{ t('agriFile.remoteSensingChartTitle') }}</span>
+                    <div v-if="!isBaseMapTool" class="remote-sensing-chart__header">
+                        <span class="remote-sensing-chart__title">{{ remoteSensingChartTitle }}</span>
                         <div class="remote-sensing-chart__legend">
                             <div
                                 v-for="item in remoteSensingLegendItems"
@@ -48,6 +51,9 @@
                         </div>
                     </div>
                     <div class="tab-loading" v-if="loading">{{ t('agriFile.loading') }}</div>
+                    <div class="tab-empty" v-else-if="isBaseMapTool">
+                        {{ t('agriFile.remoteSensingSelectHint') }}
+                    </div>
                     <remote-sensing-chart
                         v-else-if="hasRemoteSensingData"
                         :chart-data="remoteSensingChartData"
@@ -63,7 +69,15 @@
 import { useI18n } from "@/i18n";
 import { RECORD_KEY_MAP } from "@/i18n/recordTextMap";
 import { FloatingPanel } from 'vant';
-import { computed, ref, watch } from 'vue';
+import { computed, ref } from 'vue';
+import { REMOTE_SENSING_LIGHT_STANDARD_SERIES } from '../remoteSensingLightStandardData.js';
+import { REMOTE_SENSING_LIGHT_ZONE_SERIES } from '../remoteSensingLightZoneData.js';
+import { REMOTE_SENSING_RICE_LIGHT_STANDARD_SERIES } from '../remoteSensingRiceLightStandardData.js';
+import { REMOTE_SENSING_RICE_LIGHT_ZONE_SERIES } from '../remoteSensingRiceLightZoneData.js';
+import { REMOTE_SENSING_RICE_STANDARD_SERIES } from '../remoteSensingRiceStandardData.js';
+import { REMOTE_SENSING_RICE_WATER_ZONE_SERIES } from '../remoteSensingRiceWaterZoneData.js';
+import { REMOTE_SENSING_RICE_ZONE_SERIES } from '../remoteSensingRiceZoneData.js';
+import { REMOTE_SENSING_WATER_ZONE_SERIES } from '../remoteSensingWaterZoneData.js';
 import remoteSensingChart from './remoteSensingChart.vue';
 
 const { t } = useI18n();
@@ -86,8 +100,16 @@ const props = defineProps({
         default: false,
     },
     remoteSensingData: {
-        type: Array,
-        default: () => [],
+        type: [Array, Object],
+        default: null,
+    },
+    mapTool: {
+        type: Object,
+        default: null,
+    },
+    cropVariety: {
+        type: String,
+        default: "",
     },
 });
 
@@ -102,6 +124,12 @@ const height = ref(anchors[0]);
 
 const AGRI_SUB_TAB_KEYS = ["phenology", "farming", "abnormal"];
 
+const resolveRecordI18nKey = (record) => {
+    if (record == null || record === "") return "";
+    const text = String(record).trim();
+    return RECORD_KEY_MAP[text] || text;
+};
+
 const floatTabLabels = computed(() => [
     { title: t("agriFile.tabAgriRecord"), value: "agriRecord" },
     { title: t("agriFile.tabRemoteSensing"), value: "remoteSensing" },
@@ -113,31 +141,48 @@ const agriSubTabLabels = computed(() => [
     { title: t("agriFile.tabAbnormal"), value: "abnormal" },
 ]);
 
-const currentList = ref([]);
-
 const isAgriRecordTab = computed(() => floatTabLabels.value[props.activeTab]?.value === "agriRecord");
 
 const isRemoteSensingTab = computed(() => floatTabLabels.value[props.activeTab]?.value === "remoteSensing");
 
+const isBaseMapTool = computed(() => (props.mapTool?.index ?? 0) === 0);
+
+const REMOTE_SENSING_CHART_TITLE_BY_TOOL = {
+    1: "agriFile.remoteSensingChartTitleNdvi",
+    2: "agriFile.remoteSensingChartTitleNdwi",
+    3: "agriFile.remoteSensingChartTitlePrecipitation",
+};
+
+const remoteSensingChartTitle = computed(() => {
+    const toolIndex = props.mapTool?.index ?? 0;
+    const labelKey = REMOTE_SENSING_CHART_TITLE_BY_TOOL[toolIndex];
+    return labelKey ? t(labelKey) : t("agriFile.remoteSensingChartTitle");
+});
+
 const REMOTE_SENSING_LEGEND_CONFIG = [
     { key: "zone", labelKey: "agriFile.remoteSensingLegendZone", color: "#2199F8" },
     { key: "standard", labelKey: "agriFile.remoteSensingLegendStandard", color: "#9FD1FA" },
 ];
 
-const remoteSensingLegendItems = computed(() =>
-    REMOTE_SENSING_LEGEND_CONFIG.map(({ key, labelKey, color }) => ({
+const remoteSensingLegendItems = computed(() => {
+    const items = REMOTE_SENSING_LEGEND_CONFIG.map(({ key, labelKey, color }) => ({
         key,
         label: t(labelKey),
         color,
-    }))
-);
+    }));
+    if (props.mapTool?.index === 3) {
+        return items.filter((item) => item.key === "zone");
+    }
+    return items;
+});
 
-const remoteSensingChartData = computed(() => {
-    const raw = props.remoteSensingData;
+const isRiceCrop = (variety) => String(variety ?? "").includes("水稻");
+
+const normalizeRemoteSensingRaw = (raw) => {
     if (!raw) return null;
 
     if (!Array.isArray(raw) && raw.zoneSeries?.length) {
-        return raw;
+        return { ...raw };
     }
 
     if (!Array.isArray(raw) || raw.length === 0) {
@@ -152,62 +197,96 @@ const remoteSensingChartData = computed(() => {
         standardSeries: raw.map((item) => Number(item.standard ?? item.standardValue ?? item.stdValue)),
         highlightIndex: highlightIndex >= 0 ? highlightIndex : undefined,
     };
+};
+
+const remoteSensingChartData = computed(() => {
+    const baseData = normalizeRemoteSensingRaw(props.remoteSensingData);
+    if (!baseData) return null;
+
+    const toolIndex = props.mapTool?.index ?? 0;
+    if (toolIndex === 2) {
+        if (isRiceCrop(props.cropVariety)) {
+            return {
+                ...baseData,
+                zoneSeries: REMOTE_SENSING_RICE_LIGHT_ZONE_SERIES,
+                standardSeries: REMOTE_SENSING_RICE_LIGHT_STANDARD_SERIES,
+                highlightIndex: undefined,
+                zoneAreaFillDown: true,
+            };
+        }
+        return {
+            ...baseData,
+            zoneSeries: REMOTE_SENSING_LIGHT_ZONE_SERIES,
+            standardSeries: REMOTE_SENSING_LIGHT_STANDARD_SERIES,
+            highlightIndex: undefined,
+            zoneAreaFillDown: true,
+        };
+    }
+
+    if (toolIndex === 3) {
+        return {
+            zoneSeries: isRiceCrop(props.cropVariety)
+                ? REMOTE_SENSING_RICE_WATER_ZONE_SERIES
+                : REMOTE_SENSING_WATER_ZONE_SERIES,
+            zoneOnly: true,
+            usePartialAxis: true,
+            highlightIndex: undefined,
+        };
+    }
+
+    if ((toolIndex === 0 || toolIndex === 1) && isRiceCrop(props.cropVariety)) {
+        return {
+            ...baseData,
+            zoneSeries: REMOTE_SENSING_RICE_ZONE_SERIES,
+            standardSeries: REMOTE_SENSING_RICE_STANDARD_SERIES,
+            highlightIndex: undefined,
+        };
+    }
+
+    return baseData;
 });
 
 const hasRemoteSensingData = computed(() => {
     const data = remoteSensingChartData.value;
-    return Boolean(data?.zoneSeries?.length && data?.standardSeries?.length);
+    return Boolean(
+        data?.zoneSeries?.length && (data.zoneOnly || data?.standardSeries?.length)
+    );
 });
 
 const activeSubTabValue = computed(
     () => agriSubTabLabels.value[props.activeSubTab]?.value || AGRI_SUB_TAB_KEYS[0]
 );
 
-const displayList = computed(() =>
-    currentList.value.map((item) => ({
-        ...item,
-        recordText: t(RECORD_KEY_MAP[item.record] || item.record),
-        showRatio: activeSubTabValue.value !== "farming" && String(item.ratio ?? "").length > 0,
-    }))
-);
-
-const syncCurrentList = () => {
-    if (!isAgriRecordTab.value) {
-        currentList.value = [];
-        return;
-    }
-    currentList.value = props.farmRecordData?.[activeSubTabValue.value] || [];
-};
+const displayList = computed(() => {
+    if (!isAgriRecordTab.value) return [];
+
+    const list = props.farmRecordData?.[activeSubTabValue.value] || [];
+    return list
+        .map((item) => {
+            const i18nKey = resolveRecordI18nKey(item?.record);
+            return {
+                ...item,
+                recordText: i18nKey ? t(i18nKey) : "",
+                showRatio:
+                    activeSubTabValue.value !== "farming" &&
+                    String(item.ratio ?? "").length > 0,
+            };
+        })
+        .filter((item) => item.recordText.length > 0);
+});
 
 const changePrimaryTab = (index) => {
     emit("update:activeTab", index);
-    syncCurrentList();
 };
 
 const changeSubTab = (index) => {
     emit("update:activeSubTab", index);
-    syncCurrentList();
 };
 
 const primaryActiveBgStyle = computed(() => ({
     transform: `translateX(${props.activeTab * 100}%)`,
 }));
 
-watch(
-    () => props.farmRecordData,
-    () => {
-        syncCurrentList();
-    },
-    { deep: true, immediate: true }
-);
-
-watch(() => props.activeTab, () => {
-    syncCurrentList();
-});
-
-watch(() => props.activeSubTab, () => {
-    syncCurrentList();
-});
 </script>
 
 <style lang="scss" scoped>

+ 255 - 79
src/views/old_mini/agri_file/components/remoteSensingChart.vue

@@ -18,33 +18,111 @@ const { t } = useI18n();
 
 const chartRef = ref(null);
 const chartInstance = shallowRef(null);
+let resizeObserver = null;
+
+const DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
+const YEAR_DAY_LABELS = (() => {
+    const labels = [];
+    for (let month = 1; month <= 12; month++) {
+        for (let day = 1; day <= DAYS_IN_MONTH[month - 1]; day++) {
+            labels.push(`${month}月${day}日`);
+        }
+    }
+    return labels;
+})();
+
+const VISIBLE_X_LABEL_COUNT = 30;
+
+const getCurrentYearDayIndex = () => {
+    const now = new Date();
+    let index = 0;
+    for (let m = 0; m < now.getMonth(); m++) {
+        index += DAYS_IN_MONTH[m];
+    }
+    return index + now.getDate() - 1;
+};
+
+/** 以 centerIndex 为中心计算 dataZoom 百分比区间 */
+const calcDataZoomPercent = (totalCount, visibleCount = VISIBLE_X_LABEL_COUNT) => {
+    const span = Math.min(visibleCount, totalCount);
+    const centerIndex = Math.min(getCurrentYearDayIndex(), totalCount - 1);
+    const halfSpan = Math.floor(span / 2);
+    let startIndex = centerIndex - halfSpan;
+    let endIndex = startIndex + span;
+
+    if (startIndex < 0) {
+        startIndex = 0;
+        endIndex = span;
+    }
+    if (endIndex > totalCount) {
+        endIndex = totalCount;
+        startIndex = Math.max(0, totalCount - span);
+    }
+
+    const spanPercent = (span / totalCount) * 100;
+    return {
+        start: (startIndex / totalCount) * 100,
+        end: (endIndex / totalCount) * 100,
+        spanPercent,
+    };
+};
+
+const padSeriesToLength = (series, length) => {
+    const padded = series.slice(0, length).map((item) => {
+        const num = Number(item);
+        return Number.isNaN(num) ? null : num;
+    });
+    while (padded.length < length) {
+        padded.push(null);
+    }
+    return padded;
+};
+
+const mapSeriesValues = (series) =>
+    series.map((item) => {
+        const num = Number(item);
+        return Number.isNaN(num) ? null : num;
+    });
 
 const normalizedData = computed(() => {
     const data = props.chartData;
-    if (!data?.zoneSeries?.length || !data?.standardSeries?.length) {
+    const zoneOnly = Boolean(data?.zoneOnly);
+    if (!data?.zoneSeries?.length) {
+        return null;
+    }
+    if (!zoneOnly && !data?.standardSeries?.length) {
         return null;
     }
 
-    const zoneSeries = data.zoneSeries.map((item) => Number(item));
-    const standardSeries = data.standardSeries.map((item) => Number(item));
-    const length = Math.min(zoneSeries.length, standardSeries.length);
-    const timeLabels =
-        data.timeLabels?.length >= length
-            ? data.timeLabels.slice(0, length)
-            : Array.from({ length }, () => t("agriFile.timeAxisLabel"));
+    const usePartialAxis = Boolean(data.usePartialAxis);
+    const length = usePartialAxis ? data.zoneSeries.length : YEAR_DAY_LABELS.length;
+    const timeLabels = YEAR_DAY_LABELS.slice(0, length);
+    const zoneSeries = usePartialAxis
+        ? mapSeriesValues(data.zoneSeries)
+        : padSeriesToLength(mapSeriesValues(data.zoneSeries), length);
+    const standardSeries = zoneOnly
+        ? []
+        : padSeriesToLength(mapSeriesValues(data.standardSeries), length);
 
     let highlightIndex = data.highlightIndex;
+    const validValues = zoneSeries
+        .map((value, index) => ({ value, index }))
+        .filter((item) => item.value != null);
     if (highlightIndex == null || highlightIndex < 0 || highlightIndex >= length) {
-        highlightIndex = zoneSeries.reduce(
-            (maxIndex, value, index, list) => (value > list[maxIndex] ? index : maxIndex),
-            0
-        );
+        highlightIndex =
+            validValues.length > 0
+                ? validValues.reduce((max, item) =>
+                      item.value > max.value ? item : max
+                  ).index
+                : 0;
     }
 
     return {
         timeLabels,
-        zoneSeries: zoneSeries.slice(0, length),
-        standardSeries: standardSeries.slice(0, length),
+        zoneSeries,
+        standardSeries,
+        zoneOnly,
+        zoneAreaFillDown: Boolean(data.zoneAreaFillDown),
         highlightIndex,
     };
 });
@@ -52,9 +130,26 @@ const normalizedData = computed(() => {
 const formatAxisValue = (value) => {
     const num = Number(value);
     if (Number.isNaN(num)) return value;
-    if (num === 0) return "0";
-    if (num === 1.2) return "1.2";
-    return Number.isInteger(num) ? String(num) : num.toFixed(1);
+    return num.toFixed(2);
+};
+
+const calcYAxisRange = (zoneSeries, standardSeries) => {
+    const values = [...zoneSeries, ...standardSeries].filter(
+        (item) => item != null && !Number.isNaN(item)
+    );
+    if (!values.length) {
+        return { min: 0, max: 1, interval: 0.2 };
+    }
+
+    const min = Math.min(...values);
+    const max = Math.max(...values);
+    const span = max - min || 0.1;
+    const padding = span * 0.05;
+    const axisMin = Math.floor((min - padding) * 100) / 100;
+    const axisMax = Math.ceil((max + padding) * 100) / 100;
+    const interval = Math.max(0.01, Math.ceil(((axisMax - axisMin) / 5) * 100) / 100);
+
+    return { min: axisMin, max: axisMax, interval };
 };
 
 const formatHighlightValue = (value) => {
@@ -65,16 +160,127 @@ const formatHighlightValue = (value) => {
 
 const buildOption = (data) => {
     const highlightValue = data.zoneSeries[data.highlightIndex];
+    const totalCount = data.timeLabels.length;
+    const dataZoomRange = calcDataZoomPercent(totalCount);
+    const yAxisRange = calcYAxisRange(
+        data.zoneSeries,
+        data.zoneOnly ? [] : data.standardSeries
+    );
+    const zoneAreaOrigin = data.zoneAreaFillDown ? "start" : "auto";
+
+    const series = [
+        {
+            name: "zone",
+            type: "line",
+            smooth: true,
+            symbol: "none",
+            lineStyle: {
+                width: 2,
+                color: "#2199F8",
+            },
+            areaStyle: {
+                origin: zoneAreaOrigin,
+                color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
+                    { offset: 0, color: "rgba(33, 153, 248, 0.7)" },
+                    { offset: 1, color: "rgba(33, 153, 248, 0)" },
+                ]),
+            },
+            data: data.zoneSeries,
+            markPoint:
+                highlightValue != null
+                    ? {
+                          symbol: "circle",
+                          symbolSize: 7,
+                          itemStyle: {
+                              color: "#ffffff",
+                              borderColor: "#2199F8",
+                              borderWidth: 2,
+                          },
+                          label: {
+                              show: true,
+                              position: "top",
+                              distance: 6,
+                              color: "#2199F8",
+                              fontSize: 12,
+                              formatter: () => `[${formatHighlightValue(highlightValue)}]`,
+                          },
+                          data: [
+                              {
+                                  coord: [data.highlightIndex, highlightValue],
+                              },
+                          ],
+                      }
+                    : undefined,
+            z: 3,
+        },
+    ];
+
+    if (!data.zoneOnly && data.standardSeries?.length) {
+        series.push({
+            name: "standard",
+            type: "line",
+            smooth: true,
+            symbol: "none",
+            lineStyle: {
+                width: 2,
+                color: "#9FD2FA",
+            },
+            data: data.standardSeries,
+            z: 2,
+        });
+    }
 
     return {
         animation: false,
         grid: {
             left: 4,
             right: 8,
-            top: 14,
-            bottom: 5,
+            top: 20,
+            bottom: 32,
             containLabel: true,
         },
+        dataZoom: [
+            {
+                type: "inside",
+                xAxisIndex: 0,
+                start: dataZoomRange.start,
+                end: dataZoomRange.end,
+                zoomLock: true,
+                minSpan: dataZoomRange.spanPercent,
+                maxSpan: dataZoomRange.spanPercent,
+                zoomOnMouseWheel: false,
+                moveOnMouseMove: true,
+                preventDefaultMouseMove: true,
+            },
+            {
+                type: "slider",
+                xAxisIndex: 0,
+                start: dataZoomRange.start,
+                end: dataZoomRange.end,
+                zoomLock: true,
+                minSpan: dataZoomRange.spanPercent,
+                maxSpan: dataZoomRange.spanPercent,
+                height: 18,
+                bottom: 4,
+                brushSelect: false,
+                showDetail: false,
+                borderColor: "transparent",
+                backgroundColor: "#F5F5F5",
+                fillerColor: "rgba(33, 153, 248, 0.15)",
+                handleStyle: {
+                    color: "#2199F8",
+                    borderColor: "#2199F8",
+                },
+                dataBackground: {
+                    lineStyle: { color: "#E0E0E0" },
+                    areaStyle: { color: "#F0F0F0" },
+                },
+                selectedDataBackground: {
+                    lineStyle: { color: "#2199F8" },
+                    areaStyle: { color: "rgba(33, 153, 248, 0.1)" },
+                },
+            },
+        ],
         xAxis: {
             type: "category",
             boundaryGap: false,
@@ -90,9 +296,9 @@ const buildOption = (data) => {
         },
         yAxis: {
             type: "value",
-            min: 0,
-            max: 1.2,
-            interval: 0.2,
+            min: yAxisRange.min,
+            max: yAxisRange.max,
+            interval: yAxisRange.interval,
             axisLine: { show: false },
             axisTick: { show: false },
             axisLabel: {
@@ -106,85 +312,54 @@ const buildOption = (data) => {
                 },
             },
         },
-        series: [
-            {
-                name: "zone",
-                type: "line",
-                smooth: true,
-                symbol: "none",
-                lineStyle: {
-                    width: 2,
-                    color: "#2199F8",
-                },
-                areaStyle: {
-                    color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
-                        { offset: 0, color: "rgba(33, 153, 248, 0.7)" },
-                        { offset: 1, color: "rgba(33, 153, 248, 0)" },
-                    ]),
-                },
-                data: data.zoneSeries,
-                markPoint: {
-                    symbol: "circle",
-                    symbolSize: 7,
-                    itemStyle: {
-                        color: "#ffffff",
-                        borderColor: "#2199F8",
-                        borderWidth: 2,
-                    },
-                    label: {
-                        show: true,
-                        position: "top",
-                        distance: 6,
-                        color: "#2199F8",
-                        fontSize: 12,
-                        formatter: () => `[${formatHighlightValue(highlightValue)}]`,
-                    },
-                    data: [
-                        {
-                            coord: [data.highlightIndex, highlightValue],
-                        },
-                    ],
-                },
-                z: 3,
-            },
-            {
-                name: "standard",
-                type: "line",
-                smooth: true,
-                symbol: "none",
-                lineStyle: {
-                    width: 2,
-                    color: "#9FD2FA",
-                },
-                data: data.standardSeries,
-                z: 2,
-            },
-        ],
+        series,
     };
 };
 
+const resizeChart = () => {
+    chartInstance.value?.resize();
+};
+
 const renderChart = () => {
     if (!chartRef.value || !normalizedData.value) return;
 
+    const { clientWidth, clientHeight } = chartRef.value;
+    if (!clientWidth || !clientHeight) return;
+
     if (!chartInstance.value) {
         chartInstance.value = echarts.init(chartRef.value);
     }
 
     chartInstance.value.setOption(buildOption(normalizedData.value), true);
+    nextTick(resizeChart);
 };
 
-const resizeChart = () => {
-    chartInstance.value?.resize();
+const setupResizeObserver = () => {
+    if (!chartRef.value || typeof ResizeObserver === "undefined") return;
+
+    resizeObserver?.disconnect();
+    resizeObserver = new ResizeObserver(() => {
+        if (!normalizedData.value) return;
+        if (!chartInstance.value) {
+            renderChart();
+            return;
+        }
+        resizeChart();
+    });
+    resizeObserver.observe(chartRef.value);
 };
 
 onMounted(() => {
     nextTick(() => {
         renderChart();
+        setupResizeObserver();
     });
     window.addEventListener("resize", resizeChart);
 });
 
 onBeforeUnmount(() => {
+    resizeObserver?.disconnect();
+    resizeObserver = null;
     window.removeEventListener("resize", resizeChart);
     chartInstance.value?.dispose();
     chartInstance.value = null;
@@ -204,7 +379,8 @@ watch(
 <style lang="scss" scoped>
 .remote-sensing-line-chart {
     width: 100%;
-    height: 180px;
+    min-width: 0;
+    height: 194px;
     margin-top: 10px;
 }
 </style>

+ 2 - 2
src/views/old_mini/agri_file/fileMap.js

@@ -24,10 +24,10 @@ const RECORD_TYPE_STYLE = {
     pest: { fill: "rgba(224, 49, 49, 0.45)", stroke: "#e03131" },
 };
 
-/** 物候→管理分区,农事→长势异常,异常→病虫害异常 */
+/** 物候→管理分区,农事→管理分区,异常→病虫害异常 */
 const TAB_STYLE_TYPE = {
     phenology: "zone",
-    farming: "growth",
+    farming: "zone",
     abnormal: "pest",
 };
 

+ 29 - 18
src/views/old_mini/agri_file/index.vue

@@ -34,7 +34,7 @@
                     <span class="map-legend__text">{{ item.label }}</span>
                 </div>
             </div>
-            <div class="map-legend-box">
+            <!-- <div class="map-legend-box">
                 <div class="map-legend-box__labels">
                     <span
                         v-for="(label, index) in growthScaleLabels"
@@ -42,14 +42,14 @@
                     >{{ label }}</span>
                 </div>
                 <div class="map-legend-box__bar"></div>
-            </div>
+            </div> -->
             <div class="map-tool-bar">
                 <div
                     v-for="(item, index) in mapToolItems"
                     :key="item.key"
                     class="map-tool-bar__item"
                     :class="{ 'map-tool-bar__item--active': activeMapTool === index }"
-                    @click="activeMapTool = index"
+                    @click="changeMapTool(index)"
                 >
                     <img
                         class="map-tool-bar__icon"
@@ -66,6 +66,8 @@
                 :farm-record-data="farmRecordData"
                 :loading="farmRecordLoading"
                 :remote-sensing-data="remoteSensingChartData"
+                :map-tool="activeMapToolItem"
+                :crop-variety="farmVarietyName"
             />
         </div>
     </div>
@@ -79,6 +81,8 @@ import weatherInfo from "@/components/weatherInfo.vue";
 import gardenList from "@/components/gardenList.vue";
 import fileFloat from "./components/fileFloat.vue";
 import FileMap, { RECORD_TAB_KEYS, recordsToCenterPoint } from "./fileMap.js";
+import { REMOTE_SENSING_STANDARD_SERIES } from "./remoteSensingStandardData.js";
+import { REMOTE_SENSING_ZONE_SERIES } from "./remoteSensingZoneData.js";
 import { useI18n } from "@/i18n";
 
 const { t, locale } = useI18n();
@@ -118,9 +122,9 @@ const growthScaleLabels = computed(() => GROWTH_SCALE_LABEL_KEYS.map((key) => t(
 
 const MAP_TOOL_ITEMS = [
     { key: "all", label: "底图" },
-    { key: "habitat", label: "生境" },
-    { key: "light", label: "光照" },
-    { key: "water", label: "水" },
+    { key: "habitat", label: "植被" },
+    { key: "light", label: "水体" },
+    { key: "water", label: "水" },
     // { key: "fengshui", label: "风水" },
     // { key: "soil", label: "土壤" },
 ];
@@ -128,22 +132,29 @@ const MAP_TOOL_ITEMS = [
 const mapToolItems = MAP_TOOL_ITEMS;
 const activeMapTool = ref(0);
 
+const activeMapToolItem = computed(() => {
+    const item = mapToolItems[activeMapTool.value];
+    if (!item) return null;
+    return {
+        index: activeMapTool.value,
+        key: item.key,
+        label: item.label,
+    };
+});
+
+const changeMapTool = (index) => {
+    activeMapTool.value = index;
+};
+
 const fileMap = new FileMap();
 
 const farmRecordData = ref({});
 const farmRecordLoading = ref(false);
 
-const REMOTE_SENSING_MOCK_POINTS = [
-    { time: "时间", zone: 0.52, standard: 0.38 },
-    { time: "时间", zone: 0.88, standard: 0.62 },
-    { time: "时间", zone: 1.12, standard: 0.84, highlight: true },
-    { time: "时间", zone: 0.76, standard: 0.58 },
-    { time: "时间", zone: 0.94, standard: 0.72 },
-    { time: "时间", zone: 0.68, standard: 0.5 },
-    { time: "时间", zone: 0.82, standard: 0.64 },
-];
-
-const remoteSensingChartData = ref(REMOTE_SENSING_MOCK_POINTS);
+const remoteSensingChartData = ref({
+    zoneSeries: REMOTE_SENSING_ZONE_SERIES,
+    standardSeries: REMOTE_SENSING_STANDARD_SERIES,
+});
 const activeRecordTab = ref(0);
 const activeRecordSubTab = ref(0);
 
@@ -356,7 +367,7 @@ onActivated(async () => {
             position: absolute;
             left: 12px;
             top: 50%;
-            transform: translateY(-50%);
+            transform: translateY(-62%);
             z-index: 15;
             display: flex;
             flex-direction: column;

+ 367 - 0
src/views/old_mini/agri_file/remoteSensingLightStandardData.js

@@ -0,0 +1,367 @@
+export const REMOTE_SENSING_LIGHT_STANDARD_SERIES = [
+    -0.411606033,
+    -0.409988448,
+    -0.408360321,
+    -0.406722324,
+    -0.405075146,
+    -0.403419492,
+    -0.401756085,
+    -0.400085658,
+    -0.398408961,
+    -0.396726753,
+    -0.395039804,
+    -0.393348893,
+    -0.391654807,
+    -0.38995834,
+    -0.388260288,
+    -0.386561452,
+    -0.384862635,
+    -0.38316464,
+    -0.381468269,
+    -0.37977432,
+    -0.378083588,
+    -0.376396862,
+    -0.374714926,
+    -0.373038553,
+    -0.371368508,
+    -0.369705545,
+    -0.368050405,
+    -0.366403818,
+    -0.364766496,
+    -0.363139141,
+    -0.361522434,
+    -0.359917041,
+    -0.358323611,
+    -0.356742774,
+    -0.355175139,
+    -0.3536213,
+    -0.352081826,
+    -0.35055727,
+    -0.349048164,
+    -0.347555018,
+    -0.346078325,
+    -0.344618557,
+    -0.343176167,
+    -0.341751589,
+    -0.340345241,
+    -0.338957521,
+    -0.337588816,
+    -0.336239493,
+    -0.334909912,
+    -0.333600418,
+    -0.332311349,
+    -0.331043036,
+    -0.329795805,
+    -0.328569982,
+    -0.327365895,
+    -0.326183879,
+    -0.325024276,
+    -0.323887445,
+    -0.322773764,
+    -0.321683637,
+    -0.320617499,
+    -0.319575824,
+    -0.318559132,
+    -0.317568,
+    -0.316603069,
+    -0.315665057,
+    -0.314754771,
+    -0.313873116,
+    -0.313021119,
+    -0.312199936,
+    -0.311410877,
+    -0.310655422,
+    -0.309935249,
+    -0.309252251,
+    -0.308608571,
+    -0.308006628,
+    -0.30744915,
+    -0.306939211,
+    -0.306480269,
+    -0.306076209,
+    -0.305731385,
+    -0.305450671,
+    -0.305239507,
+    -0.305103954,
+    -0.305050744,
+    -0.305087336,
+    -0.305221961,
+    -0.305463673,
+    -0.305822388,
+    -0.306308914,
+    -0.30693497,
+    -0.307713182,
+    -0.308657056,
+    -0.309780926,
+    -0.311099853,
+    -0.312629489,
+    -0.314385878,
+    -0.316385199,
+    -0.318643444,
+    -0.321176014,
+    -0.323997241,
+    -0.327119848,
+    -0.330554323,
+    -0.334308264,
+    -0.338385686,
+    -0.342786336,
+    -0.347505055,
+    -0.352531232,
+    -0.357848403,
+    -0.36343404,
+    -0.369259577,
+    -0.375290706,
+    -0.381487953,
+    -0.387807529,
+    -0.394202432,
+    -0.400623726,
+    -0.407021953,
+    -0.413348565,
+    -0.419557305,
+    -0.425605453,
+    -0.43145486,
+    -0.43707273,
+    -0.442432123,
+    -0.447512174,
+    -0.452298056,
+    -0.456780714,
+    -0.460956418,
+    -0.464826187,
+    -0.468395137,
+    -0.471671791,
+    -0.474667391,
+    -0.477395245,
+    -0.479870131,
+    -0.482107765,
+    -0.484124345,
+    -0.485936169,
+    -0.487559332,
+    -0.48900948,
+    -0.490301634,
+    -0.491450059,
+    -0.492468179,
+    -0.49336853,
+    -0.493956843,
+    -0.493650901,
+    -0.493319884,
+    -0.492962239,
+    -0.492576406,
+    -0.492160842,
+    -0.491714041,
+    -0.491234561,
+    -0.490721052,
+    -0.490172292,
+    -0.489587217,
+    -0.488964965,
+    -0.488304908,
+    -0.487606699,
+    -0.486870308,
+    -0.486096055,
+    -0.485284652,
+    -0.484437223,
+    -0.483555328,
+    -0.482640975,
+    -0.481696621,
+    -0.480725159,
+    -0.479729901,
+    -0.478714535,
+    -0.477683085,
+    -0.476639844,
+    -0.475589312,
+    -0.474536117,
+    -0.473484932,
+    -0.472440397,
+    -0.471407033,
+    -0.470389168,
+    -0.469390866,
+    -0.468415867,
+    -0.467467536,
+    -0.466548828,
+    -0.465662261,
+    -0.464809906,
+    -0.463993385,
+    -0.463213883,
+    -0.462472167,
+    -0.461768611,
+    -0.461103231,
+    -0.460475722,
+    -0.459885494,
+    -0.459331714,
+    -0.458813346,
+    -0.458329187,
+    -0.457877904,
+    -0.457458065,
+    -0.457068174,
+    -0.456706692,
+    -0.456372062,
+    -0.456062731,
+    -0.455777164,
+    -0.45551386,
+    -0.455271363,
+    -0.455048271,
+    -0.454843243,
+    -0.454655009,
+    -0.454482368,
+    -0.4543242,
+    -0.454179468,
+    -0.454047225,
+    -0.453926623,
+    -0.453816923,
+    -0.453717517,
+    -0.453627948,
+    -0.453547952,
+    -0.453477509,
+    -0.453416921,
+    -0.453366923,
+    -0.453328839,
+    -0.453304809,
+    -0.453298099,
+    -0.453313544,
+    -0.453358152,
+    -0.45344194,
+    -0.453579044,
+    -0.453789165,
+    -0.454099362,
+    -0.454546102,
+    -0.455177266,
+    -0.456053404,
+    -0.457246927,
+    -0.458837161,
+    -0.460898783,
+    -0.463482017,
+    -0.466586559,
+    -0.470137518,
+    -0.473977456,
+    -0.477886556,
+    -0.481629213,
+    -0.485007909,
+    -0.487899926,
+    -0.490264632,
+    -0.492126768,
+    -0.493550056,
+    -0.494613206,
+    -0.495393687,
+    -0.495959287,
+    -0.496365244,
+    -0.496654526,
+    -0.496859532,
+    -0.497004175,
+    -0.497105845,
+    -0.497177062,
+    -0.497226769,
+    -0.497261326,
+    -0.497285235,
+    -0.497301679,
+    -0.4973129,
+    -0.497320474,
+    -0.497325513,
+    -0.497328793,
+    -0.497330859,
+    -0.497332094,
+    -0.497332764,
+    -0.497333054,
+    -0.497333094,
+    -0.497332972,
+    -0.49733275,
+    -0.49733247,
+    -0.497332161,
+    -0.497331841,
+    -0.497331522,
+    -0.497331213,
+    -0.497330918,
+    -0.497330641,
+    -0.497330382,
+    -0.497330141,
+    -0.497329919,
+    -0.497329715,
+    -0.497329527,
+    -0.497329355,
+    -0.497329198,
+    -0.497329054,
+    -0.497328923,
+    -0.497328803,
+    -0.497328694,
+    -0.497328595,
+    -0.497328505,
+    -0.497328422,
+    -0.497328347,
+    -0.497328279,
+    -0.497328216,
+    -0.49732816,
+    -0.497328108,
+    -0.497328061,
+    -0.497328019,
+    -0.49732798,
+    -0.497327944,
+    -0.497327912,
+    -0.497327883,
+    -0.497327856,
+    -0.497327832,
+    -0.49732781,
+    -0.49732779,
+    -0.497327772,
+    -0.497327755,
+    -0.49732774,
+    -0.497327726,
+    -0.497327714,
+    -0.497327702,
+    -0.497327692,
+    -0.497327682,
+    -0.497327674,
+    -0.497327666,
+    -0.497327659,
+    -0.497327652,
+    -0.497327646,
+    -0.497327641,
+    -0.497327636,
+    -0.497327632,
+    -0.497327628,
+    -0.497327624,
+    -0.497327621,
+    -0.497327618,
+    -0.497327615,
+    -0.497327612,
+    -0.49732761,
+    -0.497327608,
+    -0.497327606,
+    -0.497327604,
+    -0.497327603,
+    -0.497327601,
+    -0.4973276,
+    -0.497327599,
+    -0.497327598,
+    -0.497327597,
+    -0.497327596,
+    -0.497327595,
+    -0.497327594,
+    -0.497327594,
+    -0.497327593,
+    -0.497327592,
+    -0.497327592,
+    -0.497327591,
+    -0.497327591,
+    -0.497327591,
+    -0.49732759,
+    -0.49732759,
+    -0.49732759,
+    -0.497327589,
+    -0.497327589,
+    -0.497327589,
+    -0.497327589,
+    -0.497327589,
+    -0.497327588,
+    -0.497327588,
+    -0.497327588,
+    -0.497327588,
+    -0.497327588,
+    -0.497327588,
+    -0.497327588,
+    -0.497327588,
+    -0.497327588,
+    -0.497327588,
+    -0.497327587,
+    -0.497327587,
+    -0.497327587,
+    -0.497327587,
+    -0.497327587
+];

+ 198 - 0
src/views/old_mini/agri_file/remoteSensingLightZoneData.js

@@ -0,0 +1,198 @@
+export const REMOTE_SENSING_LIGHT_ZONE_SERIES = [
+    -0.438017726,
+    -0.43636917,
+    -0.434713367,
+    -0.433050317,
+    -0.43138002,
+    -0.429702475,
+    -0.428017684,
+    -0.426325645,
+    -0.424616891,
+    -0.422906774,
+    -0.421191808,
+    -0.419472785,
+    -0.417750505,
+    -0.416025773,
+    -0.414299401,
+    -0.412572202,
+    -0.410844991,
+    -0.409118586,
+    -0.407393801,
+    -0.405671448,
+    -0.403952337,
+    -0.402237269,
+    -0.40052704,
+    -0.398822438,
+    -0.39712424,
+    -0.395433213,
+    -0.393750112,
+    -0.392075678,
+    -0.390410638,
+    -0.388755702,
+    -0.387111567,
+    -0.385478909,
+    -0.383858388,
+    -0.382250645,
+    -0.380656303,
+    -0.379075961,
+    -0.377510204,
+    -0.375959591,
+    -0.374424665,
+    -0.372905946,
+    -0.371403934,
+    -0.369919111,
+    -0.368451937,
+    -0.367002856,
+    -0.36557229,
+    -0.364160648,
+    -0.362768321,
+    -0.361395685,
+    -0.360043104,
+    -0.35871093,
+    -0.357399506,
+    -0.356109169,
+    -0.354840251,
+    -0.353593082,
+    -0.352367996,
+    -0.351165331,
+    -0.349985436,
+    -0.348828673,
+    -0.347695426,
+    -0.346586104,
+    -0.345501146,
+    -0.344441032,
+    -0.343406289,
+    -0.342397499,
+    -0.341415311,
+    -0.34046045,
+    -0.33953373,
+    -0.33863607,
+    -0.337768504,
+    -0.336932202,
+    -0.336128489,
+    -0.335358861,
+    -0.334625014,
+    -0.333928863,
+    -0.333272578,
+    -0.332658605,
+    -0.332089707,
+    -0.331568995,
+    -0.331099975,
+    -0.33068658,
+    -0.330333227,
+    -0.330044857,
+    -0.329826992,
+    -0.329685785,
+    -0.329628074,
+    -0.329661437,
+    -0.329794246,
+    -0.330035712,
+    -0.33039593,
+    -0.330885909,
+    -0.33151759,
+    -0.332303846,
+    -0.333258453,
+    -0.334396031,
+    -0.335731945,
+    -0.337282157,
+    -0.339063022,
+    -0.341091019,
+    -0.34338241,
+    -0.345952824,
+    -0.348816764,
+    -0.35198704,
+    -0.355474141,
+    -0.359285566,
+    -0.363425127,
+    -0.367892274,
+    -0.372681479,
+    -0.377781712,
+    -0.383176079,
+    -0.388841649,
+    -0.394749515,
+    -0.400865117,
+    -0.407148827,
+    -0.413556796,
+    -0.420042026,
+    -0.426555605,
+    -0.43304807,
+    -0.439470782,
+    -0.445777268,
+    -0.451924432,
+    -0.457873589,
+    -0.46359126,
+    -0.469049707,
+    -0.474227209,
+    -0.47910807,
+    -0.483682412,
+    -0.487945774,
+    -0.491898569,
+    -0.495545452,
+    -0.498894638,
+    -0.501957209,
+    -0.504746452,
+    -0.507277235,
+    -0.509565461,
+    -0.511627585,
+    -0.513494444,
+    -0.515229688,
+    -0.516768154,
+    -0.518109843,
+    -0.519254754,
+    -0.520202888,
+    -0.520954244,
+    -0.521508822,
+    -0.493650901,
+    -0.493319884,
+    -0.492962239,
+    -0.492576406,
+    -0.492160842,
+    -0.491714041,
+    -0.491234561,
+    -0.490721052,
+    -0.490172292,
+    -0.489587217,
+    -0.488964965,
+    -0.488304908,
+    -0.487606699,
+    -0.486870308,
+    -0.486096055,
+    -0.485284652,
+    -0.484437223,
+    -0.483555328,
+    -0.482640975,
+    -0.481696621,
+    -0.480725159,
+    -0.479729901,
+    -0.478714535,
+    -0.477683085,
+    -0.476639844,
+    -0.475589312,
+    -0.474536117,
+    -0.473484932,
+    -0.472440397,
+    -0.471407033,
+    -0.470389168,
+    -0.469390866,
+    -0.468415867,
+    -0.467467536,
+    -0.466548828,
+    -0.465662261,
+    -0.464809906,
+    -0.463993385,
+    -0.463213883,
+    -0.462472167,
+    -0.461768611,
+    -0.461103231,
+    -0.460475722,
+    -0.459885494,
+    -0.459331714,
+    -0.458813346,
+    -0.458329187,
+    -0.457877904,
+    -0.457458065,
+    -0.457068174,
+    -0.456706692,
+    -0.456372062,
+    -0.456062731
+];

+ 367 - 0
src/views/old_mini/agri_file/remoteSensingRiceLightStandardData.js

@@ -0,0 +1,367 @@
+export const REMOTE_SENSING_RICE_LIGHT_STANDARD_SERIES = [
+    -0.419179342,
+    -0.417708832,
+    -0.41622631,
+    -0.414732197,
+    -0.413226929,
+    -0.411710961,
+    -0.410184756,
+    -0.408648798,
+    -0.407103581,
+    -0.405549611,
+    -0.403987411,
+    -0.402417511,
+    -0.400840456,
+    -0.399256801,
+    -0.397667108,
+    -0.396071952,
+    -0.394471914,
+    -0.392867584,
+    -0.391259557,
+    -0.389648436,
+    -0.388034829,
+    -0.386419345,
+    -0.384802602,
+    -0.383185216,
+    -0.381567806,
+    -0.379950994,
+    -0.3783354,
+    -0.376721644,
+    -0.375110345,
+    -0.373502118,
+    -0.371897577,
+    -0.370297333,
+    -0.36870199,
+    -0.367112149,
+    -0.365528407,
+    -0.363951352,
+    -0.362381568,
+    -0.360819632,
+    -0.359266114,
+    -0.357721577,
+    -0.356186578,
+    -0.354661666,
+    -0.353147384,
+    -0.351644268,
+    -0.35015285,
+    -0.348673655,
+    -0.347207205,
+    -0.345754019,
+    -0.344314613,
+    -0.342889503,
+    -0.341479208,
+    -0.340084251,
+    -0.338705159,
+    -0.33734247,
+    -0.335996734,
+    -0.334668518,
+    -0.33335841,
+    -0.332067022,
+    -0.330794999,
+    -0.329543023,
+    -0.328311822,
+    -0.327102174,
+    -0.325914921,
+    -0.324750978,
+    -0.323611341,
+    -0.322497106,
+    -0.321409477,
+    -0.320349787,
+    -0.319319514,
+    -0.3183203,
+    -0.317353975,
+    -0.316422584,
+    -0.315528409,
+    -0.314674005,
+    -0.313862229,
+    -0.313096281,
+    -0.312379741,
+    -0.311716613,
+    -0.311111375,
+    -0.310569028,
+    -0.310095147,
+    -0.309695942,
+    -0.309378315,
+    -0.309149919,
+    -0.30901922,
+    -0.308995549,
+    -0.309089163,
+    -0.309311282,
+    -0.309674131,
+    -0.310190949,
+    -0.310875992,
+    -0.311744492,
+    -0.312812595,
+    -0.314097235,
+    -0.315615974,
+    -0.317386759,
+    -0.319427616,
+    -0.321756262,
+    -0.324389629,
+    -0.327343299,
+    -0.330630858,
+    -0.334263179,
+    -0.338247655,
+    -0.342587406,
+    -0.34728051,
+    -0.352319309,
+    -0.357689828,
+    -0.363371394,
+    -0.369336491,
+    -0.3755509,
+    -0.381974171,
+    -0.388560405,
+    -0.39525936,
+    -0.402017802,
+    -0.408781044,
+    -0.415494582,
+    -0.422105714,
+    -0.428565045,
+    -0.434827793,
+    -0.440854824,
+    -0.446613372,
+    -0.452077427,
+    -0.457227821,
+    -0.462052019,
+    -0.466543691,
+    -0.470702101,
+    -0.474531394,
+    -0.478039812,
+    -0.48123891,
+    -0.484142795,
+    -0.48676742,
+    -0.489129957,
+    -0.491248252,
+    -0.493140368,
+    -0.494824213,
+    -0.49631725,
+    -0.497636273,
+    -0.498797253,
+    -0.499815227,
+    -0.495886557,
+    -0.49537917,
+    -0.494820282,
+    -0.494205477,
+    -0.493530137,
+    -0.492789483,
+    -0.491978615,
+    -0.491092569,
+    -0.490126395,
+    -0.489075243,
+    -0.487934465,
+    -0.486699741,
+    -0.485367216,
+    -0.483933647,
+    -0.48239657,
+    -0.480754463,
+    -0.479006919,
+    -0.477154803,
+    -0.475200394,
+    -0.473147509,
+    -0.47100158,
+    -0.468769688,
+    -0.466460554,
+    -0.464084453,
+    -0.461653082,
+    -0.459179356,
+    -0.45667716,
+    -0.454161044,
+    -0.451645894,
+    -0.449146587,
+    -0.446677639,
+    -0.444252883,
+    -0.441885171,
+    -0.439586133,
+    -0.437365978,
+    -0.435233376,
+    -0.433195382,
+    -0.431257438,
+    -0.429423417,
+    -0.427695718,
+    -0.426075399,
+    -0.424562332,
+    -0.423155383,
+    -0.421852596,
+    -0.420651386,
+    -0.419548723,
+    -0.418541315,
+    -0.417625787,
+    -0.416798839,
+    -0.416057414,
+    -0.415398847,
+    -0.414821015,
+    -0.414322493,
+    -0.413902701,
+    -0.413562073,
+    -0.413302224,
+    -0.413126134,
+    -0.41303835,
+    -0.413045196,
+    -0.413154992,
+    -0.413378279,
+    -0.413728022,
+    -0.414219779,
+    -0.414871796,
+    -0.415704978,
+    -0.416742673,
+    -0.418010196,
+    -0.419533996,
+    -0.421340384,
+    -0.423453767,
+    -0.425894349,
+    -0.428675398,
+    -0.431800254,
+    -0.435259429,
+    -0.439028264,
+    -0.443065705,
+    -0.447314675,
+    -0.451704361,
+    -0.456154352,
+    -0.460580193,
+    -0.46489957,
+    -0.46903817,
+    -0.472934349,
+    -0.47654206,
+    -0.47983183,
+    -0.482790017,
+    -0.48541678,
+    -0.487723308,
+    -0.489728824,
+    -0.49145774,
+    -0.492937222,
+    -0.494195248,
+    -0.495259195,
+    -0.49615488,
+    -0.496905992,
+    -0.497533807,
+    -0.49805712,
+    -0.498492315,
+    -0.498853526,
+    -0.499152837,
+    -0.499400513,
+    -0.49960522,
+    -0.499774244,
+    -0.499913684,
+    -0.500028633,
+    -0.500123331,
+    -0.500201299,
+    -0.50026546,
+    -0.500318233,
+    -0.50036162,
+    -0.500397275,
+    -0.500426563,
+    -0.500450611,
+    -0.500470349,
+    -0.500486541,
+    -0.500499818,
+    -0.500510701,
+    -0.500519616,
+    -0.500526914,
+    -0.500532887,
+    -0.50053777,
+    -0.500541761,
+    -0.500545019,
+    -0.500547677,
+    -0.500549843,
+    -0.500551607,
+    -0.500553041,
+    -0.500554206,
+    -0.500555151,
+    -0.500555916,
+    -0.500556534,
+    -0.500557032,
+    -0.500557434,
+    -0.500557755,
+    -0.500558013,
+    -0.500558218,
+    -0.500558381,
+    -0.50055851,
+    -0.500558611,
+    -0.50055869,
+    -0.500558751,
+    -0.500558797,
+    -0.500558833,
+    -0.500558859,
+    -0.500558878,
+    -0.500558891,
+    -0.5005589,
+    -0.500558906,
+    -0.500558909,
+    -0.50055891,
+    -0.500558909,
+    -0.500558908,
+    -0.500558905,
+    -0.500558902,
+    -0.500558899,
+    -0.500558896,
+    -0.500558892,
+    -0.500558889,
+    -0.500558885,
+    -0.500558882,
+    -0.500558879,
+    -0.500558876,
+    -0.500558873,
+    -0.50055887,
+    -0.500558868,
+    -0.500558865,
+    -0.500558863,
+    -0.500558861,
+    -0.500558859,
+    -0.500558858,
+    -0.500558856,
+    -0.500558855,
+    -0.500558854,
+    -0.500558852,
+    -0.500558851,
+    -0.50055885,
+    -0.50055885,
+    -0.500558849,
+    -0.500558848,
+    -0.500558847,
+    -0.500558847,
+    -0.500558846,
+    -0.500558846,
+    -0.500558845,
+    -0.500558845,
+    -0.500558845,
+    -0.500558844,
+    -0.500558844,
+    -0.500558844,
+    -0.500558844,
+    -0.500558844,
+    -0.500558843,
+    -0.500558843,
+    -0.500558843,
+    -0.500558843,
+    -0.500558843,
+    -0.500558843,
+    -0.500558843,
+    -0.500558842,
+    -0.500558842,
+    -0.500558842,
+    -0.500558842,
+    -0.500558842,
+    -0.500558842,
+    -0.500558842,
+    -0.500558842,
+    -0.500558842,
+    -0.500558842,
+    -0.500558842,
+    -0.500558842,
+    -0.500558842,
+    -0.500558842,
+    -0.500558842,
+    -0.500558842,
+    -0.500558842,
+    -0.500558842,
+    -0.500558842,
+    -0.500558842,
+    -0.500558842,
+    -0.500558842,
+    -0.500558842,
+    -0.500558842,
+    -0.500558842,
+    -0.500558842,
+    -0.500558842,
+    -0.500558842
+];

+ 196 - 0
src/views/old_mini/agri_file/remoteSensingRiceLightZoneData.js

@@ -0,0 +1,196 @@
+export const REMOTE_SENSING_RICE_LIGHT_ZONE_SERIES = [
+    -0.460146703,
+    -0.458615652,
+    -0.457075065,
+    -0.455524942,
+    -0.453965284,
+    -0.45239609,
+    -0.450817359,
+    -0.449229093,
+    -0.447628473,
+    -0.446018791,
+    -0.444400586,
+    -0.442774411,
+    -0.441140827,
+    -0.439500409,
+    -0.437853741,
+    -0.436201418,
+    -0.434544042,
+    -0.432882224,
+    -0.43121658,
+    -0.429547734,
+    -0.427876317,
+    -0.42620296,
+    -0.424528301,
+    -0.42285298,
+    -0.421177639,
+    -0.419502919,
+    -0.417829465,
+    -0.416157918,
+    -0.414488918,
+    -0.412823104,
+    -0.411161112,
+    -0.409503572,
+    -0.407851113,
+    -0.406204356,
+    -0.404563918,
+    -0.40293041,
+    -0.401304435,
+    -0.399686592,
+    -0.39807747,
+    -0.396477653,
+    -0.394887718,
+    -0.393308232,
+    -0.391739758,
+    -0.390182853,
+    -0.388638064,
+    -0.387105938,
+    -0.385587013,
+    -0.384081827,
+    -0.382590914,
+    -0.38111481,
+    -0.37965405,
+    -0.378209176,
+    -0.376780734,
+    -0.37536928,
+    -0.373975384,
+    -0.372599632,
+    -0.371242632,
+    -0.369905019,
+    -0.368587459,
+    -0.367290659,
+    -0.366015369,
+    -0.364762397,
+    -0.363532614,
+    -0.362326965,
+    -0.361146483,
+    -0.359992299,
+    -0.358865661,
+    -0.357767948,
+    -0.35670069,
+    -0.355665586,
+    -0.354664532,
+    -0.353699644,
+    -0.352773286,
+    -0.351888105,
+    -0.35104706,
+    -0.350253469,
+    -0.349511041,
+    -0.34882393,
+    -0.348196781,
+    -0.347634782,
+    -0.347143721,
+    -0.346730048,
+    -0.346400932,
+    -0.346164329,
+    -0.346029041,
+    -0.346004778,
+    -0.346102214,
+    -0.346333033,
+    -0.346709968,
+    -0.347246815,
+    -0.347958429,
+    -0.348860686,
+    -0.349970408,
+    -0.351305234,
+    -0.352883438,
+    -0.354723673,
+    -0.35684464,
+    -0.359264665,
+    -0.3620012,
+    -0.365070213,
+    -0.368485515,
+    -0.37225801,
+    -0.376394896,
+    -0.380898872,
+    -0.385767364,
+    -0.390991846,
+    -0.396557301,
+    -0.402441884,
+    -0.408616827,
+    -0.415046645,
+    -0.421689644,
+    -0.428498745,
+    -0.435422592,
+    -0.442406902,
+    -0.44939598,
+    -0.456334315,
+    -0.463168172,
+    -0.469847073,
+    -0.476325097,
+    -0.482561925,
+    -0.488523594,
+    -0.494182938,
+    -0.499519714,
+    -0.504520454,
+    -0.509178075,
+    -0.513491299,
+    -0.517463953,
+    -0.521104183,
+    -0.524423653,
+    -0.527436759,
+    -0.530159894,
+    -0.532612753,
+    -0.535161016,
+    -0.537054443,
+    -0.538639769,
+    -0.539916996,
+    -0.540886123,
+    -0.541547151,
+    -0.541900079,
+    -0.541944907,
+    -0.49537917,
+    -0.494820282,
+    -0.494205477,
+    -0.493530137,
+    -0.492789483,
+    -0.491978615,
+    -0.491092569,
+    -0.490126395,
+    -0.489075243,
+    -0.487934465,
+    -0.486699741,
+    -0.485367216,
+    -0.483933647,
+    -0.48239657,
+    -0.480754463,
+    -0.479006919,
+    -0.477154803,
+    -0.475200394,
+    -0.473147509,
+    -0.47100158,
+    -0.468769688,
+    -0.466460554,
+    -0.464084453,
+    -0.461653082,
+    -0.459179356,
+    -0.45667716,
+    -0.454161044,
+    -0.451645894,
+    -0.449146587,
+    -0.446677639,
+    -0.444252883,
+    -0.441885171,
+    -0.439586133,
+    -0.437365978,
+    -0.435233376,
+    -0.433195382,
+    -0.431257438,
+    -0.429423417,
+    -0.427695718,
+    -0.426075399,
+    -0.424562332,
+    -0.423155383,
+    -0.421852596,
+    -0.420651386,
+    -0.419548723,
+    -0.418541315,
+    -0.417625787,
+    -0.416798839,
+    -0.416057414,
+    -0.415398847,
+    -0.414821015,
+    -0.414322493,
+    -0.413902701,
+    -0.413562073
+];

+ 367 - 0
src/views/old_mini/agri_file/remoteSensingRiceStandardData.js

@@ -0,0 +1,367 @@
+export const REMOTE_SENSING_RICE_STANDARD_SERIES = [
+    0.29693907414686477,
+    0.29920874344609666,
+    0.3015818609887229,
+    0.3040564089332621,
+    0.3066294224089174,
+    0.3092969498215203,
+    0.3120540300009932,
+    0.314894688719339,
+    0.3178119566342588,
+    0.3207979100698197,
+    0.3238437352505445,
+    0.3269398156920777,
+    0.33007584146722335,
+    0.33324093806869276,
+    0.33642381164400503,
+    0.3396129065491768,
+    0.34279657051612933,
+    0.34596322230235044,
+    0.3491015165213329,
+    0.35220050044900336,
+    0.35524975795287295,
+    0.3582395362639632,
+    0.36116085205568405,
+    0.36400557414481,
+    0.3667664810165099,
+    0.36943729222605176,
+    0.3720126734768169,
+    0.37448821575856484,
+    0.376860389303331,
+    0.3791264732420739,
+    0.381284461696572,
+    0.3833329465991272,
+    0.385270976782879,
+    0.3870978918147106,
+    0.38881312763649056,
+    0.390415989323011,
+    0.3919053841428279,
+    0.39327950561953795,
+    0.39453545646607846,
+    0.39566879520228165,
+    0.3966729881965614,
+    0.3975387462613208,
+    0.39825322364098653,
+    0.3987990587672711,
+    0.3991532430170869,
+    0.3992858198402069,
+    0.3991584479141243,
+    0.3987229165859504,
+    0.39791978983162923,
+    0.39667748617595167,
+    0.3949122806071553,
+    0.39252992751962834,
+    0.389429802257098,
+    0.38551253461700485,
+    0.3806918788060122,
+    0.37491080315899344,
+    0.36816033290858025,
+    0.3604976816141787,
+    0.3520583453029569,
+    0.3430563277802452,
+    0.333768699605059,
+    0.3245053518420043,
+    0.31557034343636436,
+    0.30722473954865853,
+    0.2996602014592993,
+    0.29298820955156635,
+    0.2872442385768424,
+    0.28240220533640453,
+    0.2783932840341501,
+    0.2751242208095753,
+    0.27249228615537396,
+    0.27039588681562166,
+    0.268741106813228,
+    0.2674450327468408,
+    0.26643683717398287,
+    0.2695825563776103,
+    0.27033339351560803,
+    0.27116859809117083,
+    0.2720970157462488,
+    0.2731282785877942,
+    0.2742728416938015,
+    0.27554201255269567,
+    0.2769479706496835,
+    0.2785037738790445,
+    0.28022334789344905,
+    0.2821214539227968,
+    0.28421363003975275,
+    0.28651610036511593,
+    0.28904564635762875,
+    0.2918194342018072,
+    0.2948547924935824,
+    0.2981689350420068,
+    0.3017786247804187,
+    0.3056997766354102,
+    0.3099469998424745,
+    0.3145330836894102,
+    0.319468435011383,
+    0.32476048085595843,
+    0.33041305535575893,
+    0.3364257956140951,
+    0.34279357679223643,
+    0.3495060209156067,
+    0.3565471164337584,
+    0.36389498552065896,
+    0.37152183285416573,
+    0.3793941027924866,
+    0.3874728614880701,
+    0.39571440704847716,
+    0.40407109538208147,
+    0.41249235330797895,
+    0.4209258355923915,
+    0.4293186705540426,
+    0.4376187312597707,
+    0.44577586709598527,
+    0.4537430339458005,
+    0.46147726987332793,
+    0.46894047599952204,
+    0.4760999775684791,
+    0.4829288562758183,
+    0.48940606007394444,
+    0.4955163095125778,
+    0.5012498293114627,
+    0.5066019399022195,
+    0.5115725461945995,
+    0.5161655602605708,
+    0.5203882916586227,
+    0.5242508345046963,
+    0.5277654748793322,
+    0.530946136386774,
+    0.5338078761507161,
+    0.5363664385861991,
+    0.5386378701248865,
+    0.5406381947668918,
+    0.5423831478706068,
+    0.5438879638957668,
+    0.5451672127731575,
+    0.54623467906231,
+    0.5471032779531142,
+    0.5477850023564128,
+    0.5482908957162479,
+    0.5486310456843824,
+    0.5488145943653877,
+    0.5488497614231408,
+    0.5487438769056275,
+    0.548503421174023,
+    0.5481340698020702,
+    0.5476407417370692,
+    0.5470276493830348,
+    0.5462983495815277,
+    0.5454557947298856,
+    0.5445023834947489,
+    0.5434400107559194,
+    0.5422701165568082,
+    0.5409937339478446,
+    0.5396115356926429,
+    0.538123879867424,
+    0.5365308544255609,
+    0.5348323208241546,
+    0.5330279568207155,
+    0.5311172985474522,
+    0.5290997819601302,
+    0.5269747837394653,
+    0.5247416616968767,
+    0.5223997947042986,
+    0.5199486221307368,
+    0.5173876827273848,
+    0.514716652859464,
+    0.5119353839375986,
+    0.5090439388556808,
+    0.5060426271970688,
+    0.5029320389279509,
+    0.49971307625725436,
+    0.4963869833080853,
+    0.4929553732179013,
+    0.4894202522649898,
+    0.4857840406088208,
+    0.4820495892327995,
+    0.4782201926910058,
+    0.47429959728650933,
+    0.4702920043482999,
+    0.46620206832680317,
+    0.46203488949397287,
+    0.457796001112059,
+    0.45349135102389593,
+    0.449127277714855,
+    0.444710480999968,
+    0.44024798759617123,
+    0.4357471119458938,
+    0.4312154127608224,
+    0.426660645850129,
+    0.4220907138823221,
+    0.41751361380106605,
+    0.41293738267011193,
+    0.41345819856725924,
+    0.4161404707163765,
+    0.41896358204839845,
+    0.4219301456888732,
+    0.4250421785563045,
+    0.42830102080239446,
+    0.4317072558181547,
+    0.4352606325960464,
+    0.4389599924463285,
+    0.4428032022337715,
+    0.44678709641320064,
+    0.4509074301835022,
+    0.45515884603555234,
+    0.4595348558283804,
+    0.4640278402820843,
+    0.4686290674231314,
+    0.4733287310615942,
+    0.47811600983152186,
+    0.4829791467032228,
+    0.4879055482047443,
+    0.492881901900029,
+    0.4978943099978308,
+    0.5029284363448934,
+    0.5079696635245307,
+    0.513003256369233,
+    0.5180145279284794,
+    0.5229890038272138,
+    0.5279125810131,
+    0.5327716771176931,
+    0.5375533670338515,
+    0.5422455038157895,
+    0.5468368216089051,
+    0.5513170189791973,
+    0.5556768217002964,
+    0.5599080247345043,
+    0.5640035137808246,
+    0.5679572673312019,
+    0.5717643406561049,
+    0.5754208335194313,
+    0.5789238436948968,
+    0.5822714085225328,
+    0.5854624368111733,
+    0.588496633371644,
+    0.5913744183694873,
+    0.5940968435307823,
+    0.596665507035671,
+    0.599082468706716,
+    0.601350166857002,
+    0.6034713379179388,
+    0.6054489397288684,
+    0.6072860791475303,
+    0.6089859444377158,
+    0.6105517427116918,
+    0.6119866425521415,
+    0.6132937218120027,
+    0.6144759204901966,
+    0.6155359985055008,
+    0.6164764981378896,
+    0.6172997108743855,
+    0.6180076483825159,
+    0.6186020173365644,
+    0.619084197837715,
+    0.619455225196865,
+    0.6197157748864721,
+    0.6198661505136167,
+    0.6199062747190379,
+    0.6198356829648773,
+    0.6196535202360142,
+    0.6193585407449909,
+    0.6189491107973742,
+    0.6184232150416517,
+    0.6177784663938944,
+    0.617012119990672,
+    0.6161210915819291,
+    0.6151019808262359,
+    0.6139510999909704,
+    0.6126645085860981,
+    0.6112380544682617,
+    0.6096674219373774,
+    0.6079481873060095,
+    0.6060758823473475,
+    0.6040460659156122,
+    0.6018544038784586,
+    0.5994967573005966,
+    0.5969692785688853,
+    0.5942685148511125,
+    0.5913915179357201,
+    0.5883359591135107,
+    0.5851002473445184,
+    0.5816836485179961,
+    0.578086403179929,
+    0.5743098396944344,
+    0.5703564794508083,
+    0.5662301304577775,
+    0.5619359655129157,
+    0.5574805811292153,
+    0.5528720335695074,
+    0.548119848702635,
+    0.5432350029624522,
+    0.5382298734581563,
+    0.5331181562332543,
+    0.5279147527657838,
+    0.5226356259941736,
+    0.5172976283784896,
+    0.5119183056942809,
+    0.5065156813311724,
+    0.5011080267593199,
+    0.4957136244722363,
+    0.49035053006840384,
+    0.48503634017089625,
+    0.4797879726012704,
+    0.474621464641708,
+    0.4695517943793962,
+    0.46459272908791116,
+    0.4597567034316754,
+    0.45505472905586547,
+    0.4504963359182266,
+    0.4460895445963686,
+    0.441840867817572,
+    0.43775533864642446,
+    0.43383656215129723,
+    0.4300867869608225,
+    0.4265069929095399,
+    0.4230969909400168,
+    0.4198555315513963,
+    0.41678041833113033,
+    0.41386862344547914,
+    0.4111164023638392,
+    0.4085194055233686,
+    0.40607278507893574,
+    0.40377129530900024,
+    0.40160938564536713,
+    0.39958128565323753,
+    0.3976810816011904,
+    0.3959027845258504,
+    0.394240389913039,
+    0.392687929288378,
+    0.39123951413930125,
+    0.3898893726818944,
+    0.3886318800450081,
+    0.38746158247590823,
+    0.38637321618135034,
+    0.3853617214100766,
+    0.3844222523615111,
+    0.3835501834745339,
+    0.3827411126127379,
+    0.38199086162108714,
+    0.38129547468546204,
+    0.3806512148828155,
+    0.38005455926681386,
+    0.3795021927927749,
+    0.37899100134708436,
+    0.37851806411044725,
+    0.37808064545153863,
+    0.3776761865179268,
+    0.377302296664532,
+    0.3769567448362393,
+    0.376637451000457,
+    0.37634247770720985,
+    0.37607002183855776,
+    0.37581840659553717,
+    0.37558607375919323,
+    0.3753715762524106,
+    0.3751735710209501,
+    0.37499081224516945,
+    0.3748221448881746,
+    0.374666498581462,
+    0.3745228818453162,
+    0.3743903766382042,
+    0.3742681332270429,
+    0.37415536536839733,
+    0.37405134578932897
+];

+ 137 - 0
src/views/old_mini/agri_file/remoteSensingRiceWaterZoneData.js

@@ -0,0 +1,137 @@
+export const REMOTE_SENSING_RICE_WATER_ZONE_SERIES = [
+    1.9031435249416973,
+    4.230293631508175,
+    1.9094503764449655,
+    2.0234882831573486,
+    0.027745962142944336,
+    0.0017163932852781727,
+    0,
+    0.0025654608180047944,
+    0.0017225742112714215,
+    0,
+    0.0004351138045421976,
+    0.00042319288695580326,
+    0.0008583069188716763,
+    1.1362990321686084,
+    0.006720391525050218,
+    0.9733656602293195,
+    0.566360354241624,
+    1.9486346643020624,
+    15.010789036750793,
+    7.692000269798882,
+    3.3913403749465942,
+    0.1482576130911184,
+    0.023412704422298702,
+    1.2434482573553396,
+    5.938846466847281,
+    4.423373937601838,
+    0.7347553968202192,
+    0.8254200220108032,
+    11.552482843399048,
+    13.209494948341671,
+    0.03564785896514877,
+    0.019538402511898312,
+    0.04178285598754883,
+    0.14643958729720907,
+    3.7681302665077965,
+    8.973816037173066,
+    0.48778758889511664,
+    7.735699415206909,
+    2.148935198761137,
+    1.8115133046876508,
+    2.6504993438720703,
+    1.1398226021697155,
+    7.277050613993197,
+    5.298146605468901,
+    1.0242938994338147,
+    1.0695755482288405,
+    5.628588795559608,
+    0.8536607026030651,
+    3.11635732640525,
+    1.6515135764052502,
+    0.09735731214277621,
+    1.5658766030242077,
+    5.475796672044453,
+    7.785698845850675,
+    8.13156093414591,
+    5.652874708175659,
+    7.562223076718055,
+    8.97964239119986,
+    12.730252742699122,
+    8.5068941116333,
+    8.257746696472168,
+    0.19534230222006954,
+    0.47318935384055294,
+    0.05819201464873913,
+    0.019043684005737305,
+    9.362815093652443,
+    11.138292703321895,
+    6.029882449752222,
+    0.005917791384035809,
+    0.004753470420837402,
+    0,
+    0.0251084566116333,
+    0.10962784290313721,
+    14.481014013199456,
+    13.840708136456215,
+    3.1293112904791087,
+    5.386209688424515,
+    7.5361281633377075,
+    5.6228642760629555,
+    2.386033535003662,
+    2.407255768673622,
+    3.8744986056258313,
+    8.504130030416945,
+    3.2439559697081677,
+    4.781319481253377,
+    7.846997397848554,
+    5.619364976780616,
+    1.7187237739548777,
+    18.794658779995643,
+    1.848626136677467,
+    1.5257426152857079,
+    5.6368172167822195,
+    2.6283711194992065,
+    0.6682127714157104,
+    6.602684243546264,
+    5.8451051141332755,
+    3.499414930843159,
+    1.1891029589037316,
+    0.024580955500397295,
+    2.4925321340560913,
+    0.38930773735046387,
+    4.0051192036116845,
+    9.625348448935256,
+    28.30106019973755,
+    4.800993204014503,
+    24.37885701652931,
+    2.8272271155174167,
+    0.22570788860321045,
+    13.455275352612261,
+    38.8848284519554,
+    64.67622518539429,
+    8.510622382118527,
+    0.6381422281265259,
+    0.4536956548690796,
+    1.916244626045227,
+    1.0398566722820135,
+    44.35884952545166,
+    23.308515548706055,
+    0.0008732080409856735,
+    0.000852346317969932,
+    1.6025155782699585,
+    12.71440386761924,
+    4.617843690937207,
+    0.0047528112077088736,
+    0.23933053006430782,
+    11.698830127727433,
+    11.923684016153402,
+    0.24667978285108916,
+    5.715331411352054,
+    4.186233878044732,
+    3.806242346758637,
+    6.135255098346448,
+    2.9366016387939453,
+    36.83325052260855,
+    16.02458357810832
+];

+ 196 - 0
src/views/old_mini/agri_file/remoteSensingRiceZoneData.js

@@ -0,0 +1,196 @@
+export const REMOTE_SENSING_RICE_ZONE_SERIES = [
+    0.3456275420463628,
+    0.3480492737519839,
+    0.3505518187854171,
+    0.3531351771466622,
+    0.35579934883571934,
+    0.3585443338525885,
+    0.3613701321972697,
+    0.3642767438697649,
+    0.3673288847385125,
+    0.37043521936852475,
+    0.3736048414811131,
+    0.3768278364892259,
+    0.38009356275690054,
+    0.3833907825838684,
+    0.38670781009143734,
+    0.39003267198726266,
+    0.39335327653305974,
+    0.396657585600845,
+    0.3999337845100626,
+    0.4031704444013956,
+    0.4063566722145028,
+    0.40948224386817084,
+    0.41253771694716057,
+    0.4155145200220558,
+    0.41840501660029816,
+    0.4212025425591509,
+    0.42390141667753023,
+    0.4264969245024633,
+    0.4289852762048907,
+    0.4313635392553691,
+    0.4336295466479571,
+    0.43578178099068576,
+    0.4378192340354567,
+    0.43974124010714816,
+    0.4415472803699172,
+    0.4432367528822845,
+    0.44480870086787344,
+    0.44626148847649455,
+    0.4475924094410859,
+    0.4487972094021395,
+    0.449869497363664,
+    0.4508000161940563,
+    0.4515757374459457,
+    0.4521787445943726,
+    0.4525848760907316,
+    0.4527621242283319,
+    0.4526688414533963,
+    0.45225191024783334,
+    0.45144520196548366,
+    0.45016888284334333,
+    0.4483303783082592,
+    0.445827968957594,
+    0.4425578895575434,
+    0.4384252683192375,
+    0.4333582497558818,
+    0.4273234224191619,
+    0.4203396881724494,
+    0.41248743747919386,
+    0.4039105330214219,
+    0.39480995156448084,
+    0.3854295352501499,
+    0.3760357148354132,
+    0.3668940377183288,
+    0.35824580316448096,
+    0.3502880935296871,
+    0.3431599906875312,
+    0.33693676297805736,
+    0.33163236978017974,
+    0.32739773544892675,
+    0.32370946029793685,
+    0.32058337846219576,
+    0.31800721303712065,
+    0.3159547857349566,
+    0.31439555616489695,
+    0.31330002244741384,
+    0.3126419917396834,
+    0.3123987863166069,
+    0.3125502596546093,
+    0.31307722706029034,
+    0.31395967197588204,
+    0.3151749119521343,
+    0.3166957968627619,
+    0.31848894985058546,
+    0.3201428729116952,
+    0.3219710423323681,
+    0.323989168870701,
+    0.3262137828593808,
+    0.32866213350632434,
+    0.3313520467304464,
+    0.3343017351124774,
+    0.3375295538484069,
+    0.3410536974113554,
+    0.3448918330911206,
+    0.34906066981373896,
+    0.35357546373893844,
+    0.3584494661254937,
+    0.36369332378814334,
+    0.36931444797070967,
+    0.3753163733120594,
+    0.38169813431767186,
+    0.3884536917664656,
+    0.3955714450829771,
+    0.4030338681712799,
+    0.4108173049004832,
+    0.41889195590656003,
+    0.4272220804888818,
+    0.4357664263756853,
+    0.444478886675555,
+    0.4533093684788224,
+    0.46220484267500356,
+    0.4711105310984156,
+    0.4799711765344564,
+    0.4887323345855438,
+    0.49734162465019194,
+    0.5057498805115801,
+    0.5139121488920576,
+    0.521788495920493,
+    0.5293445955100061,
+    0.5365520886846529,
+    0.5433887174584449,
+    0.5498382496818763,
+    0.555890221384115,
+    0.5615395300157956,
+    0.5667859155175683,
+    0.571633366548217,
+    0.5760894870198345,
+    0.5801648539808173,
+    0.5838723925816455,
+    0.5872267880289427,
+    0.590243948645573,
+    0.5929405288301985,
+    0.5953335161203934,
+    0.5974398828442395,
+    0.5992763000209838,
+    0.6008589091866516,
+    0.6022031465703549,
+    0.6033236134018216,
+    0.6042339859558119,
+    0.6049469591082478,
+    0.6054742175818196,
+    0.6058264296047775,
+    0.6060132583247231,
+    0.6060433869570059,
+    0.6059245542681082,
+    0.6056635975743385,
+    0.6052665009613838,
+    0.6047384468942997,
+    0.6040838697890425,
+    0.6033065104578241,
+    0.6024094706256478,
+    0.6013952669497358,
+    0.6002658841630077,
+    0.5990228271130511,
+    0.5976671715846034,
+    0.5961996138813603,
+    0.5946205192063071,
+    0.592929968922519,
+    0.591127806801736,
+    0.5892136843786697,
+    0.5871871055272736,
+    0.5850474703629784,
+    0.5827941185538095,
+    0.5804263720947556,
+    0.5779435775649993,
+    0.5753451478478102,
+    0.572630603249153,
+    0.5697996119045374,
+    0.5668520293154666,
+    0.5637879368083395,
+    0.5606076786611247,
+    0.5573118975980385,
+    0.5539015683113231,
+    0.5503780286336529,
+    0.5467430079563098,
+    0.5429986524686582,
+    0.5391475467851612,
+    0.535192731528546,
+    0.5311377164529143,
+    0.526986488719413,
+    0.5227435159799756,
+    0.5184137439816126,
+    0.5140025884742109,
+    0.5095159212877707,
+    0.5049600505387688,
+    0.5003416950277695,
+    0.4956510008419477,
+    0.4905394243120046,
+    0.4860108954274141,
+    0.4815292786579789,
+    0.4770945740036961,
+    0.4727067814645658,
+    0.46836590104058795,
+    0.46407193273176256,
+    0.4598248765380897
+];

+ 367 - 0
src/views/old_mini/agri_file/remoteSensingStandardData.js

@@ -0,0 +1,367 @@
+export const REMOTE_SENSING_STANDARD_SERIES = [
+    0.3032544418676001,
+    0.3052874707918053,
+    0.30735574814061717,
+    0.30945477212516587,
+    0.31157974653116777,
+    0.3137256213658439,
+    0.31588713864621126,
+    0.3180588824882491,
+    0.32023533250250413,
+    0.3224109193794035,
+    0.3245800814633223,
+    0.3267373210726535,
+    0.3288772593256852,
+    0.3309946882783243,
+    0.33308461926634303,
+    0.33514232646618775,
+    0.3371633848367903,
+    0.3391437017710421,
+    0.3410795419594355,
+    0.3429675451392761,
+    0.34480473656033717,
+    0.34658853013192126,
+    0.3483167243178071,
+    0.34998749090615155,
+    0.35159935679343884,
+    0.35315117887780884,
+    0.3546421120502569,
+    0.35607157009428325,
+    0.3574391790461089,
+    0.35874472221679127,
+    0.3599880756194984,
+    0.36116913196090566,
+    0.3622877106217144,
+    0.36334345013970026,
+    0.36433567858806143,
+    0.36526325588030395,
+    0.3661243804046168,
+    0.36691635048815885,
+    0.367635269047983,
+    0.3682756775123317,
+    0.3688301029479683,
+    0.3692885008046243,
+    0.36963757568699673,
+    0.36985996562211393,
+    0.3699332838902169,
+    0.3698290304514363,
+    0.3695114178436962,
+    0.368936211429861,
+    0.3680497692890824,
+    0.3667885893897834,
+    0.36507982943356243,
+    0.3628434367372521,
+    0.35999665365512223,
+    0.3564616359788836,
+    0.3521765705066305,
+    0.3471098311082043,
+    0.3412753249030239,
+    0.3347455362977402,
+    0.32765763056484876,
+    0.32020837379873707,
+    0.31263623232709,
+    0.30519329056517797,
+    0.2981136392165183,
+    0.29158637725028086,
+    0.28573943121371664,
+    0.2806362010952206,
+    0.2762829076319229,
+    0.2726422173417587,
+    0.26964859722410384,
+    0.2672221263819529,
+    0.2652791344374353,
+    0.26373935686303684,
+    0.2625300682026204,
+    0.261587949630068,
+    0.265862038715275,
+    0.2666245863078002,
+    0.26746634520217616,
+    0.2683950229238731,
+    0.26941896233356827,
+    0.27054716831300135,
+    0.27178932925384136,
+    0.27315583147837186,
+    0.27465776438797423,
+    0.2763069137835238,
+    0.27811574044319,
+    0.28009734069588066,
+    0.28226538541786683,
+    0.2846340336393301,
+    0.2872178168190492,
+    0.2900314898807702,
+    0.29308984536403665,
+    0.2964074875917809,
+    0.29999856466542857,
+    0.30387645743012176,
+    0.30805342635916827,
+    0.31254021961417483,
+    0.3173456483327285,
+    0.32247613841218814,
+    0.3279352715613568,
+    0.3337233319688241,
+    0.3398368782944995,
+    0.34626836346503265,
+    0.3530058265329611,
+    0.3600326812254416,
+    0.36732762439221994,
+    0.3748646841098594,
+    0.38261342163706447,
+    0.39053929390635167,
+    0.3986041742053993,
+    0.4067670188241928,
+    0.41498465759465464,
+    0.4232126773982873,
+    0.4314063608038432,
+    0.43952163779232467,
+    0.4475160075140917,
+    0.4553493893204442,
+    0.4629848676529481,
+    0.47038930314989646,
+    0.4775337916877982,
+    0.4843939630486994,
+    0.4909501205450875,
+    0.49718723143721316,
+    0.5030947847604109,
+    0.5086665379213394,
+    0.5139001760570497,
+    0.5187969088308966,
+    0.523361028371857,
+    0.5275994498445522,
+    0.5315212530875606,
+    0.5351372402743608,
+    0.5384595209728719,
+    0.541501132568016,
+    0.5442757009484847,
+    0.5467971437505645,
+    0.5490794163423871,
+    0.5511362991170632,
+    0.5529812235053098,
+    0.554627133359711,
+    0.556086377936668,
+    0.5573706325400394,
+    0.5584908429281936,
+    0.5594571897668434,
+    0.5602790696856215,
+    0.5609650898281635,
+    0.561523073143499,
+    0.5619600720285524,
+    0.562282388281896,
+    0.5624955976572587,
+    0.5626045776055619,
+    0.5626135370634913,
+    0.5625260473841402,
+    0.5623450737120208,
+    0.5620730062826315,
+    0.5617116912783624,
+    0.5612624610005732,
+    0.5607261632250543,
+    0.5601031896975197,
+    0.5593935037997841,
+    0.55859666747812,
+    0.5577118675749004,
+    0.5567379417446651,
+    0.5556734041674876,
+    0.554516471297009,
+    0.5532650878984434,
+    0.5519169536437107,
+    0.5504695505368282,
+    0.5489201714427581,
+    0.5472659499868784,
+    0.5455038920797204,
+    0.5436309093021057,
+    0.5416438543587216,
+    0.53953955877285,
+    0.5373148729507968,
+    0.5349667086910019,
+    0.532492084149417,
+    0.5298881711993777,
+    0.5271523450409443,
+    0.5242822358220935,
+    0.5212757819332007,
+    0.5181312845285129,
+    0.5148474627159697,
+    0.5114235087426365,
+    0.5078591423907093,
+    0.5041546636927295,
+    0.5003110029790803,
+    0.4963297671912539,
+    0.4922132813362605,
+    0.4879646239263732,
+    0.4835876552493713,
+    0.4790870373520849,
+    0.4744682446978651,
+    0.46973756457874816,
+    0.4649020865258917,
+    0.4599696801657117,
+    0.45494896121016165,
+    0.4670283725414004,
+    0.469829659145833,
+    0.4726572749439057,
+    0.4755082171443443,
+    0.47837937594549007,
+    0.4812675471531828,
+    0.48416944566272563,
+    0.48708171968370245,
+    0.49000096557381034,
+    0.4929237431372504,
+    0.49584659123487135,
+    0.4987660435473657,
+    0.5016786443295481,
+    0.5045809639931529,
+    0.5074696143576961,
+    0.5103412634136866,
+    0.5131926494497052,
+    0.5160205944044143,
+    0.5188220163161466,
+    0.5215939407560621,
+    0.5243335111456158,
+    0.5270379978748688,
+    0.5297048061546519,
+    0.5323314825523359,
+    0.5349157201776403,
+    0.5374553625011479,
+    0.5399484058036655,
+    0.542393000269011,
+    0.5447874497459405,
+    0.5471302102165875,
+    0.5494198870187927,
+    0.5516552308779785,
+    0.5538351328106872,
+    0.5559586179665795,
+    0.5580248384785752,
+    0.5600330653920105,
+    0.5619826797432789,
+    0.5638731628565263,
+    0.5657040859237756,
+    0.5674750989294807,
+    0.5691859189751867,
+    0.5708363180538487,
+    0.5724261103166622,
+    0.5739551388681763,
+    0.5754232621181979,
+    0.5768303397117704,
+    0.5781762180515261,
+    0.5794607154202048,
+    0.5806836067053244,
+    0.5818446077231224,
+    0.5829433591352516,
+    0.5839794099495759,
+    0.5849522005961083,
+    0.5858610455710367,
+    0.5867051156462839,
+    0.5874834196496391,
+    0.5881947858316783,
+    0.5888378428510804,
+    0.5894110004301839,
+    0.5899124297584707,
+    0.5903400437538902,
+    0.5906914773314109,
+    0.5909640678758041,
+    0.5911548361722845,
+    0.5912604681151461,
+    0.5912772975916225,
+    0.5912012910264266,
+    0.5910280341719859,
+    0.5907527218399977,
+    0.590370151390665,
+    0.5898747209249905,
+    0.5892604332598049,
+    0.5885209069003191,
+    0.5876493953546592,
+    0.5866388162506901,
+    0.5854817918066729,
+    0.5841707022605398,
+    0.5826977538617176,
+    0.5810550629558962,
+    0.5792347575263013,
+    0.5772290972731997,
+    0.5750306128952195,
+    0.5726322646628018,
+    0.5700276196321911,
+    0.5672110459329512,
+    0.5641779214807702,
+    0.5609248532445181,
+    0.5574499018765857,
+    0.5537528051656261,
+    0.5498351924816154,
+    0.5457007812666341,
+    0.5413555458087305,
+    0.5368078481544839,
+    0.5320685211948042,
+    0.5271508948001958,
+    0.522070757446094,
+    0.5168462480565671,
+    0.511497675734544,
+    0.5060472684904141,
+    0.5005188558077353,
+    0.4949374936176258,
+    0.48932904368488017,
+    0.48371972223532467,
+    0.4781356346125285,
+    0.47260231365443806,
+    0.46714427923852664,
+    0.461784635081411,
+    0.45654471652818635,
+    0.4514437999512597,
+    0.44649888078266076,
+    0.4417245234372994,
+    0.4371327827459047,
+    0.4327331932615409,
+    0.42853282012422533,
+    0.4245363631801472,
+    0.4207463047951835,
+    0.41716309124944867,
+    0.4137853376706788,
+    0.41061004704487003,
+    0.4076328348013869,
+    0.4048481516740106,
+    0.40224949886700656,
+    0.3998296309027695,
+    0.3975807428140561,
+    0.3954946395118443,
+    0.39356288617389734,
+    0.39177693934234076,
+    0.39012825908905674,
+    0.38860840311438766,
+    0.3872091040036595,
+    0.38592233109753155,
+    0.38474033855784723,
+    0.3836557012518739,
+    0.3826613400544445,
+    0.38175053809709886,
+    0.38091694939083787,
+    0.3801546011268111,
+    0.37945789082689124,
+    0.37882157938108013,
+    0.378240780876496,
+    0.37771094999709903,
+    0.3772278676567916,
+    0.37678762542247535,
+    0.37638660918868144,
+    0.3760214824815364,
+    0.3756891696966999,
+    0.3753868395128684,
+    0.37511188866865836,
+    0.3748619262452722,
+    0.37463475855938966,
+    0.3744283747393159,
+    0.3742409330316984,
+    0.37407074786530903,
+    0.37391627768175173,
+    0.3737761135298583,
+    0.37364896841039985,
+    0.3735336673500795,
+    0.37342913817814205,
+    0.3733344029749743,
+    0.3732485701594604,
+    0.37317082718032524,
+    0.3731004337760348,
+    0.3730367157678251,
+    0.37297905935095366,
+    0.3729269058501811,
+    0.3728797469066908,
+    0.37283712006505176,
+    0.37279860473036747,
+    0.37276381846736517,
+    0.37273241361483056
+];

+ 137 - 0
src/views/old_mini/agri_file/remoteSensingWaterZoneData.js

@@ -0,0 +1,137 @@
+export const REMOTE_SENSING_WATER_ZONE_SERIES = [
+    1.9031435249416973,
+    4.230293631508175,
+    1.9094503764449655,
+    2.0234882831573486,
+    0.027745962142944336,
+    0.0017163932852781727,
+    0,
+    0.0025654608180047944,
+    0.0017225742112714215,
+    0,
+    0.0004351138045421976,
+    0.00042319288695580326,
+    0.0008583069188716763,
+    1.1362990321686084,
+    0.006720391525050218,
+    0.9733656602293195,
+    0.566360354241624,
+    1.9486346643020624,
+    15.010789036750793,
+    7.692000269798882,
+    3.3913403749465942,
+    0.1482576130911184,
+    0.023412704422298702,
+    1.2434482573553396,
+    5.938846466847281,
+    4.423373937601838,
+    0.7347553968202192,
+    0.8254200220108032,
+    11.552482843399048,
+    13.209494948341671,
+    0.03564785896514877,
+    0.019538402511898312,
+    0.04178285598754883,
+    0.14643958729720907,
+    3.7681302665077965,
+    8.973816037173066,
+    0.48778758889511664,
+    7.735699415206909,
+    2.148935198761137,
+    1.8115133046876508,
+    2.6504993438720703,
+    1.1398226021697155,
+    7.277050613993197,
+    5.298146605468901,
+    1.0242938994338147,
+    1.0695755482288405,
+    5.628588795559608,
+    0.8536607026030651,
+    3.11635732640525,
+    1.6515135764052502,
+    0.09735731214277621,
+    1.5658766030242077,
+    5.475796672044453,
+    7.785698845850675,
+    8.13156093414591,
+    5.652874708175659,
+    7.562223076718055,
+    8.97964239119986,
+    12.730252742699122,
+    8.5068941116333,
+    8.257746696472168,
+    0.19534230222006954,
+    0.47318935384055294,
+    0.05819201464873913,
+    0.019043684005737305,
+    9.362815093652443,
+    11.138292703321895,
+    6.029882449752222,
+    0.005917791384035809,
+    0.004753470420837402,
+    0,
+    0.0251084566116333,
+    0.10962784290313721,
+    14.481014013199456,
+    13.840708136456215,
+    3.1293112904791087,
+    5.386209688424515,
+    7.5361281633377075,
+    5.6228642760629555,
+    2.386033535003662,
+    2.407255768673622,
+    3.8744986056258313,
+    8.504130030416945,
+    3.2439559697081677,
+    4.781319481253377,
+    7.846997397848554,
+    5.619364976780616,
+    1.7187237739548777,
+    18.794658779995643,
+    1.848626136677467,
+    1.5257426152857079,
+    5.6368172167822195,
+    2.6283711194992065,
+    0.6682127714157104,
+    6.602684243546264,
+    5.8451051141332755,
+    3.499414930843159,
+    1.1891029589037316,
+    0.024580955500397295,
+    2.4925321340560913,
+    0.38930773735046387,
+    4.0051192036116845,
+    9.625348448935256,
+    28.30106019973755,
+    4.800993204014503,
+    24.37885701652931,
+    2.8272271155174167,
+    0.22570788860321045,
+    13.455275352612261,
+    38.8848284519554,
+    64.67622518539429,
+    8.510622382118527,
+    0.6381422281265259,
+    0.4536956548690796,
+    1.916244626045227,
+    1.0398566722820135,
+    44.35884952545166,
+    23.308515548706055,
+    0.0008732080409856735,
+    0.000852346317969932,
+    1.6025155782699585,
+    12.71440386761924,
+    4.617843690937207,
+    0.0047528112077088736,
+    0.23933053006430782,
+    11.698830127727433,
+    11.923684016153402,
+    0.24667978285108916,
+    5.715331411352054,
+    4.186233878044732,
+    3.806242346758637,
+    6.135255098346448,
+    2.9366016387939453,
+    36.83325052260855,
+    16.02458357810832
+];

+ 198 - 0
src/views/old_mini/agri_file/remoteSensingZoneData.js

@@ -0,0 +1,198 @@
+export const REMOTE_SENSING_ZONE_SERIES = [
+    0.3585121796735965,
+    0.36069742740525146,
+    0.36289106862236864,
+    0.36509310332494815,
+    0.3673035315129899,
+    0.36952235318649396,
+    0.37174956834546025,
+    0.37398517698989087,
+    0.37627800742345785,
+    0.3785556604585724,
+    0.38082718781946906,
+    0.38308683857124026,
+    0.3853289795647382,
+    0.3875481499586747,
+    0.3897391119596446,
+    0.3918968967512163,
+    0.39401684473068055,
+    0.39609463933900046,
+    0.3981263339459683,
+    0.4001083714280257,
+    0.40203759624009905,
+    0.4039112589249614,
+    0.40572701311451653,
+    0.4074829051482094,
+    0.4091773564563104,
+    0.410809138822257,
+    0.41237734254050684,
+    0.41388133731547994,
+    0.4153207254922729,
+    0.4166952868569427,
+    0.4180049137747759,
+    0.4192495348242638,
+    0.42042902429936885,
+    0.4215430939493568,
+    0.42259116204742153,
+    0.4235721932556836,
+    0.42448450070069665,
+    0.4253254991001898,
+    0.42609139461384626,
+    0.42677679332131524,
+    0.4273742060305684,
+    0.4278734230589009,
+    0.42826073007948734,
+    0.4285179379368408,
+    0.42862121080540294,
+    0.4285397070262309,
+    0.4282341081480012,
+    0.42765521859462075,
+    0.4267429794123866,
+    0.42542644105400074,
+    0.4236254245584199,
+    0.4212546533764808,
+    0.41823091198739115,
+    0.41448318334196277,
+    0.40996479837329086,
+    0.40466567910744133,
+    0.39862217865170824,
+    0.39192212451319086,
+    0.38470347419114725,
+    0.37714621920646596,
+    0.36945843763358865,
+    0.36185839633530925,
+    0.35455521351756314,
+    0.34773079992304823,
+    0.34152561483848154,
+    0.33603018811604796,
+    0.33128337701744837,
+    0.3300187268171999,
+    0.32706653893058935,
+    0.3227935669482502,
+    0.31753462789280584,
+    0.31160614282012483,
+    0.3053159688144497,
+    0.298969557003982,
+    0.29287307632072024,
+    0.2873343697040504,
+    0.2826625523436404,
+    0.2791668672322828,
+    0.27715519848243525,
+    0.2769324679964805,
+    0.27879902178685767,
+    0.28304904087842553,
+    0.2845911047209022,
+    0.2862844744206105,
+    0.2881419732710675,
+    0.29017707750744964,
+    0.29240385206703623,
+    0.29483685972166224,
+    0.2974910394759846,
+    0.30038155019681834,
+    0.3035235757603954,
+    0.3069320886469429,
+    0.3106215699461869,
+    0.3146056852258142,
+    0.31889691770105555,
+    0.32350616263857684,
+    0.32844228989594626,
+    0.3337116848420568,
+    0.3393177814547107,
+    0.3452606049028357,
+    0.35153634407452533,
+    0.3581369769365305,
+    0.3650499729126542,
+    0.3722580962780677,
+    0.3797393325923411,
+    0.3874669562789733,
+    0.3954097516299889,
+    0.40353239201219954,
+    0.41179597333795304,
+    0.420158688590565,
+    0.4285766211482126,
+    0.4370046266609131,
+    0.4453972670793487,
+    0.45370975673237035,
+    0.4618988794837151,
+    0.46992383805798776,
+    0.4777470013974296,
+    0.4853345229061563,
+    0.4926568109614847,
+    0.49968884231147476,
+    0.5064103181100094,
+    0.5128056706256756,
+    0.5188639355188298,
+    0.5245785096403199,
+    0.5299468174144892,
+    0.534969910082174,
+    0.5396520216153481,
+    0.5440001033044287,
+    0.5480233562476555,
+    0.5517327776287027,
+    0.5551407331065212,
+    0.5582605641503012,
+    0.5611062359470574,
+    0.5636920287282772,
+    0.5660322730756533,
+    0.5681411279888521,
+    0.5700323992043739,
+    0.5717193943910477,
+    0.573214811347508,
+    0.5745306551185912,
+    0.5756781799618221,
+    0.5766678522697857,
+    0.5775093308360844,
+    0.5782114611985926,
+    0.5787822811702911,
+    0.579229035050208,
+    0.5795581943774084,
+    0.5797754834380935,
+    0.5798859080529264,
+    0.5798937864554554,
+    0.5798027813222948,
+    0.5796159322325638,
+    0.5793356880201789,
+    0.5789639386406832,
+    0.5785020463074758,
+    0.5779508757636446,
+    0.5773108236480751,
+    0.5765818469908124,
+    0.5757634909352026,
+    0.5748549158352144,
+    0.5738549239172559,
+    0.5727619857281542,
+    0.571574266615816,
+    0.5702896535071875,
+    0.5689057822599476,
+    0.5674200658701243,
+    0.5658297238174769,
+    0.564131812823824,
+    0.5623232592861211,
+    0.560400893625467,
+    0.5583614867647361,
+    0.5562017889105303,
+    0.5539185707689843,
+    0.5515086672690893,
+    0.5489690238012288,
+    0.5462967449023914,
+    0.5434891452332278,
+    0.5405438025963372,
+    0.5374586126410119,
+    0.534231844788833,
+    0.5308621987993105,
+    0.5273488612782495,
+    0.5236915613173693,
+    0.5198906243463174,
+    0.5159470231824765,
+    0.5118624251852331,
+    0.5076392343651999,
+    0.5032683900163075,
+    0.4975392652709032,
+    0.4935293338291538,
+    0.48965753269705214,
+    0.4859238618745951,
+    0.48232832136178266,
+    0.4788709111586149,
+    0.47555163126509187,
+    0.4723704816812134
+];

+ 5 - 4
src/views/old_mini/agri_record/index.vue

@@ -120,13 +120,13 @@ const changeGardenTab = (tab) => {
 
 const currentPheCode = ref('');
 const getFarmRiskAndTracking = async () => {
-    trendMonitorMockList.value = [];
     const selectedFarmData = JSON.parse(localStorage.getItem("selectedFarmData"));
     const res = await VE_API.monitor.getFarmRiskAndTracking({
         farm_id: gardenId.value,
         crop_type: selectedFarmData.farm_variety,
         category_code: selectedFarmData.farm_category
     });
+    trendMonitorMockList.value = [];
     if (res.code === 200) {
         currentPheCode.value = res.data?.current_phe_code;
         const growth = res.data?.growth_abnormal_tracking;
@@ -319,7 +319,7 @@ const handleTrendMonitorCardClick = (item) => {
                 color: #626262;
 
                 .reason-text{
-                    width: stretch;
+                    width: 50%;
                 }
                 .question-tag {
                     background: #2b9af6;
@@ -347,12 +347,13 @@ const handleTrendMonitorCardClick = (item) => {
 
     .archives-time-line {
         position: relative;
-        height: calc(100% - 160px);
+        height: calc(100% - 140px);
         padding: 12px;
         display: flex;
         flex-direction: column;
         min-height: 0;
-        padding-top: 150px;
+        // padding-top: 150px;
+        padding-top: 120px;
         overflow-y: auto;
         -webkit-overflow-scrolling: touch;
 

+ 4 - 4
src/views/old_mini/growth_report/historyRiskReport.vue

@@ -23,7 +23,7 @@
                                 基于历史气象站点与遥感数据,飞鸟统计近10年不同物候期冻害、高温干旱等风险的发生频率与平均等级。统计结果如下
                             </div>
                         </div>
-                        <div class="warning-part" v-if="currentFarmVariety === 1">
+                        <div class="warning-part" v-if="currentFarmVariety == 1">
                             <div class="report-part">
                                 <div class="part-title">梢期历史气象风险</div>
                                 <img class="part-img" src="@/assets/img/common/lz-chart-1.png" alt="" />
@@ -57,7 +57,7 @@
                 <div class="report-box">
                     <div class="box-title">土壤改良分析</div>
                     <div class="box-text">
-                        <div class="part-text" v-if="currentFarmVariety === 1">当前农场土壤为壤土,酸性至微酸性(pH
+                        <div class="part-text" v-if="currentFarmVariety == 1">当前农场土壤为壤土,酸性至微酸性(pH
                             6.5),有机质含量(6.25%),肥力良好。在后续的种植管理中,需保持土壤肥力,合理施肥,必要时需加入生石灰中和酸性,避免土壤酸化加剧。</div>
                         <div class="part-text" v-else>当前农场土壤为壤土,酸性至微酸性(pH 5.9),有机质含量(5.52%),肥力良好,但酸性偏低。在后续的种植管理中,需保持土壤肥力,合理施肥,需加入生石灰中和酸性,降低土壤酸化问题。</div>
                     </div>
@@ -66,7 +66,7 @@
                 <div class="report-box">
                     <div class="box-title">耕作习惯分析</div>
                     <div class="box-text">
-                        <div class="part-text" v-if="currentFarmVariety === 1">当前农场耕作管理制度完善,未出现频繁翻耕等问题。在后续的种植管理中,需继续维持合理的农事规划和农事操作,保持土壤活力。</div>
+                        <div class="part-text" v-if="currentFarmVariety == 1">当前农场耕作管理制度完善,未出现频繁翻耕等问题。在后续的种植管理中,需继续维持合理的农事规划和农事操作,保持土壤活力。</div>
                         <div class="part-text" v-else>当前农场耕作管理制度完善,未出现频繁翻耕等问题。在后续的种植管理中,需继续维持合理的农事规划和农事操作,保持土壤活力。但由于农场长期种植单一作物,导致土壤养分失衡,因此建议在施肥时多补充有机质和微量元素。同时,建议在水稻休耕时期轮种紫云英等绿肥作物,改善土壤问题。</div>
                     </div>
                 </div>
@@ -74,7 +74,7 @@
                 <div class="report-box">
                     <div class="box-title">设施投入建议</div>
                     <div class="box-text">
-                        <div class="part-text" v-if="currentFarmVariety === 1">考虑到当前农场历史高发风险为高温干旱风险,高发概率达到80%,建议提前规划好喷灌/滴灌系统,以维持农场的日常灌溉,降低高温干旱风险的影响。</div>
+                        <div class="part-text" v-if="currentFarmVariety == 1">考虑到当前农场历史高发风险为高温干旱风险,高发概率达到80%,建议提前规划好喷灌/滴灌系统,以维持农场的日常灌溉,降低高温干旱风险的影响。</div>
                         <div class="part-text" v-else>考虑到当前农场历史高发风险为低温冻害和暴雨涝渍风险,历史出现概率均超过90%,建议提前规划好排水沟渠以及灌溉系统,以便灵活排水灌水,合理控制田间温度和水层深度。</div>
                     </div>
                 </div>

+ 21 - 2
src/views/old_mini/growth_report/index.vue

@@ -61,7 +61,11 @@
                     </div>
 
                     <div class="time-tag">{{ workItems?.[0]?.reportDate || new Date().toISOString().split('T')[0] }}</div>
-                    <div class="report-title report-title-toggle" @click="toggleLocale">{{ varietyName }}{{ t("growthReport.title") }}</div>
+                    <div
+                        class="report-title"
+                        :class="{ 'report-title-toggle': localeToggleEnabled }"
+                        @click="onReportTitleClick"
+                    >{{ varietyName }}{{ t("growthReport.title") }}</div>
                     <div class="report-info">
                         <div class="info-item">
                             <img class="info-icon" src="@/assets/img/home/farm.png" alt="" />
@@ -185,7 +189,11 @@
                 <div class="report-header" :class="{ 'no-farm': !currentFarmName }">
                     <!-- <img class="header-book" src="@/assets/img/home/book.png" alt="" /> -->
                     <div class="time-tag">{{ new Date().toISOString().split('T')[0] }}</div>
-                    <div class="report-title report-title-toggle" @click="toggleLocale">{{ t("growthReport.cropTitle") }}</div>
+                    <div
+                        class="report-title"
+                        :class="{ 'report-title-toggle': localeToggleEnabled }"
+                        @click="onReportTitleClick"
+                    >{{ t("growthReport.cropTitle") }}</div>
                     <div class="report-info pb-4">
                         <div class="info-item">
                             <img class="info-icon" src="@/assets/img/home/farm.png" alt="" />
@@ -242,6 +250,9 @@ import { useI18n } from "@/i18n";
 
 const { t, toggleLocale: dispatchToggleLocale } = useI18n();
 const store = useStore();
+
+/** 暂时隐藏标题中英切换,恢复时改为 true */
+const localeToggleEnabled = false;
 const tabBarHeight = computed(() => store.state.home.tabBarHeight);
 
 const route = useRoute();
@@ -379,6 +390,9 @@ const changeGarden = async ({ id, name,farm_variety,variety_name }) => {
 };
 
 onActivated(() => {
+    if (!localeToggleEnabled) {
+        store.dispatch("locale/setLocale", "zh");
+    }
     window.scrollTo(0, 0);
     // 从新增农场页返回时,优先用缓存中的最新选中农场
     const savedFarmId = localStorage.getItem("selectedFarmId");
@@ -613,6 +627,11 @@ const toggleLocale = async () => {
     reloadPageDataAfterLocaleChange();
 };
 
+const onReportTitleClick = () => {
+    if (!localeToggleEnabled) return;
+    toggleLocale();
+};
+
 // 清理数据的函数
 const clearData = () => {
     workItems.value = [];

+ 38 - 16
src/views/old_mini/recordDetails/index.vue

@@ -14,7 +14,7 @@
                 <span>{{ t('agriRecord.phenologyWorkName') }}</span>
                 <div class="question">{{ workDetail.interaction_issue }}</div>
             </div>
-            <div class="record-body">
+            <div class="record-body" :style="{ paddingBottom: recordType === 'phenology' ? '10px' : '90px' }">
                 <div class="card-wrap" v-if="recordType === 'growth'">
                     <div class="card-item">
                         <span class="item-label">{{ t('recordDetails.scienceLabel') }}</span>
@@ -49,7 +49,7 @@
                             :content="currentPestDetail?.kepu" />
                     </div>
                     <div class="pest-classify-picker">
-                        <div class="pest-classify-picker__row pest-classify-picker__row--top">
+                        <div class="pest-classify-picker__row pest-classify-picker__row--top aaa">
                             <div v-for="(label, i) in pestTopLabels" :key="'top-' + i"
                                 class="pest-classify-picker__top-btn"
                                 :class="{ 'pest-classify-picker__top-btn--active': pestTopIndex === i }"
@@ -61,7 +61,7 @@
                                 :class="{ 'pest-classify-picker__chip--solid-active': pestCategoryIndex === i }"
                                 @click="handlePestCategoryClick(i)">{{ item.label }}</div>
                         </div>
-                        <div class="pest-classify-picker__row pest-classify-picker__row--grid4">
+                        <div class="pest-classify-picker__row pest-classify-picker__row--grid4 bbb">
                             <div v-for="(item, i) in pestDetailLabels" :key="'det-' + item.value"
                                 class="pest-classify-picker__chip pest-classify-picker__chip--soft"
                                 :class="{ 'pest-classify-picker__chip--soft-active': pestDetailIndex === i }"
@@ -128,7 +128,7 @@
                     <div v-if="!showMap && recordType === 'phenology'" class="border-wrap no-map-wrap">
                         <div class="question-info">
                             <span class="title">{{ t('recordDetails.keyAssessment') }}</span>
-                            <span class="content">{{ t('recordDetails.phenologyIssue') }}</span>
+                            <span class="content">{{ workDetail.interaction_issue }}</span>
                             <div class="current-status">{{ currentStatusText }}</div>
                         </div>
                         <div class="time-line">
@@ -402,6 +402,15 @@ const currentStatusText = computed(() =>
 
 const DEFAULT_MAP_LOCATION = "POINT(113.6142086995688 23.585836479509055)";
 
+function getFarmMapLocation() {
+    try {
+        const farmData = JSON.parse(localStorage.getItem('selectedFarmData') || '{}');
+        return farmData.geom_wkt || farmData.wkt || DEFAULT_MAP_LOCATION;
+    } catch {
+        return DEFAULT_MAP_LOCATION;
+    }
+}
+
 const mapConfirmPayload = computed(() => store.state.recordDetails.mapConfirmPayload);
 
 const hasMapConfirmGeometry = computed(() => {
@@ -423,7 +432,7 @@ function destroyUploadMap() {
 
 function ensureUploadMap() {
     if (!uploadMapContainer.value) return false;
-    location.value = location.value || DEFAULT_MAP_LOCATION;
+    location.value = getFarmMapLocation();
     destroyUploadMap();
     indexMap.initMap(location.value, uploadMapContainer.value, { editable: false, movable: false });
     return Boolean(indexMap.kmap);
@@ -618,11 +627,7 @@ const handleTabClick = (index) => {
     activeTab.value = index;
 };
 
-/**
- * 物候时间轴默认定位编码(荔枝 crop_type=1:32=果皮速长/5%长果皮)
- * 注意:farm_risk 的 current_phe_code / 路由 curCode 可能是 33、35 等,与轴上节点不一一对应,勿直接当数组下标用
- */
-const DEFAULT_PHENOLOGY_CODE = '32';
+const workDetail = ref({});
 
 const growthStageIndex = ref();
 const growthStages = ref([]);
@@ -692,9 +697,11 @@ function buildGrowthStagesFlat(rawItems) {
     return flat;
 }
 
-/** 时间轴初始定位用的物候编码(与病虫害等接口用的 route.query.curCode 分离) */
+/** 时间轴初始定位:优先 workDetail.phenelogy_code,否则路由 curCode */
 function resolveTimelineDefaultCode() {
-    return DEFAULT_PHENOLOGY_CODE;
+    const fromWork =
+        workDetail.value?.phenelogy_code ?? workDetail.value?.phenology_code;
+    return normalizePhenologyCode(fromWork ?? route.query.curCode);
 }
 
 function applyTimelineDefaultIndex(flat, rawItems) {
@@ -752,7 +759,7 @@ onActivated(async () => {
     sessionStorage.removeItem('mapManageConfirmPayload');
     syncFormFromMapConfirmPayload();
     if (route.query.workId) {
-        getWorkDetail();
+        await getWorkDetail();
     }
     if (route.query.type === 'pest') {
         getAbnormalPlan();
@@ -767,7 +774,6 @@ onActivated(async () => {
     }
 });
 
-const workDetail = ref({});
 const getWorkDetail = async () => {
     const res = await VE_API.monitor.getWorkDetail({ id: route.query.workId });
     if (res.code === 200 && res.data.length) {
@@ -910,15 +916,31 @@ const getFindPhenologyInfo = async () => {
                 }
 
                 .pest-classify-picker {
-                    margin: 8px 0;
+                    margin: 8px -10px;
                     padding: 10px;
-                    border-radius: 8px;
+                    // border-radius: 8px;
                     background: #f2f3f5;
+                    display: flex;
+                    flex-direction: column;
+                    align-items: center;
+                    .aaa{
+                        background: #E9E9E9;
+                        width: fit-content;
+                        padding: 3px;
+                        border-radius: 4px;
+                    }
+                    .bbb{
+                        background: #fff;
+                        width: stretch;
+                        padding: 3px;
+                        border-radius: 4px;
+                    }
 
                     &__row {
                         display: flex;
                         justify-content: center;
                         gap: 8px;
+                        width: stretch;
 
                         &--top {
                             .pest-classify-picker__top-btn {

+ 18 - 4
src/views/old_mini/recordDetails/mapManage.vue

@@ -64,6 +64,7 @@ import GrowthStageTimeline from "@/components/pageComponents/GrowthStageTimeline
 import UploadProgressPopup from "@/components/popup/UploadProgressPopup.vue";
 import RegionNamePopup from "./components/RegionNamePopup.vue";
 import MapManage from "./map/mapManage.js";
+import * as util from "@/common/ol_common.js";
 import { ref, onActivated, onDeactivated, computed, nextTick } from "vue";
 import { ElMessageBox, ElMessage } from "element-plus";
 import { useRouter, useRoute } from "vue-router";
@@ -75,6 +76,21 @@ const store = useStore();
 const recordType = computed(() => route.query.type);
 const mapManage = new MapManage();
 
+const DEFAULT_MAP_LOCATION = "POINT(113.6142086995688 23.585836479509055)";
+
+function getFarmMapLocation() {
+    try {
+        const farmData = JSON.parse(localStorage.getItem('selectedFarmData') || '{}');
+        return farmData.geom_wkt || farmData.wkt || DEFAULT_MAP_LOCATION;
+    } catch {
+        return DEFAULT_MAP_LOCATION;
+    }
+}
+
+function getFarmMapCoordinate() {
+    return util.wktCastGeom(getFarmMapLocation()).getFirstCoordinate();
+}
+
 const mapContainer = ref(null);
 const drawingEnabled = ref(false);
 
@@ -159,7 +175,7 @@ const handleLocationChange = (location) => {
 };
 
 const handleMapIconClick = () => {
-    mapManage.setMapPosition([113.6142086995688, 23.585836479509055]);
+    mapManage.setMapPosition(getFarmMapCoordinate());
 };
 
 const handleClearDraw = () => {
@@ -193,12 +209,10 @@ const handleConfirmDraw = () => {
     }
 };
 
-const DEFAULT_MAP_POINT = "POINT(113.6142086995688 23.585836479509055)";
-
 function initMapManageView() {
     if (!mapContainer.value) return;
     mapManage.destroyMap();
-    mapManage.initMap(DEFAULT_MAP_POINT, mapContainer.value);
+    mapManage.initMap(getFarmMapLocation(), mapContainer.value);
 
     const stored = store.state.recordDetails.mapConfirmPayload;
     if (store.getters['recordDetails/hasMapConfirmPayload']) {

+ 13 - 0
src/views/old_mini/work_detail/components/areaMap.js

@@ -205,6 +205,19 @@ class AreaMap {
             }
         })
     }
+
+    destroyMap() {
+        if (this.gardenPolygonLayer?.source) {
+            this.gardenPolygonLayer.source.clear();
+        }
+        if (this.clickPointLayer?.source) {
+            this.clickPointLayer.source.clear();
+        }
+        if (this.kmap && typeof this.kmap.destroy === "function") {
+            this.kmap.destroy();
+        }
+        this.kmap = null;
+    }
 }
 
 export default AreaMap;

+ 18 - 1
src/views/old_mini/work_detail/index.vue

@@ -177,6 +177,10 @@
                 <div class="box-wrap stage-card">
                     <div class="work-info">
                         <div class="info-item">
+                            <div class="info-title"><span class="title-block"></span>{{ $t('workDetail.reason') }}</div>
+                            <div class="info-value">{{ farmData.work_reason_detail }}</div>
+                        </div>
+                        <div class="info-item">
                             <div class="info-title"><span class="title-block"></span>{{ $t('workDetail.purpose') }}</div>
                             <div class="info-value">{{ farmData.work_purpose }}</div>
                         </div>
@@ -233,7 +237,7 @@
 import { ElMessage } from "element-plus";
 import wx from "weixin-js-sdk";
 import customHeader from "@/components/customHeader.vue";
-import { ref, computed, watch, onMounted, onActivated, nextTick } from "vue";
+import { ref, computed, watch, onMounted, onActivated, onDeactivated, onBeforeUnmount, nextTick } from "vue";
 import { useI18n } from "@/i18n";
 import { useRouter } from "vue-router";
 import { formatDate } from "@/common/commonFun";
@@ -350,15 +354,28 @@ function wktCenterPointFromZones(zones) {
     return MAP_CENTER_FALLBACK;
 }
 
+function destroyWorkDetailMap() {
+    areaMap.destroyMap();
+}
+
 function initWorkDetailMap() {
     nextTick(() => {
         if (!mapContainer.value) return;
         const zones = farmZones.value;
+        areaMap.destroyMap();
         areaMap.initMap(wktCenterPointFromZones(zones), mapContainer.value);
         areaMap.initZones(zones);
     });
 }
 
+onDeactivated(() => {
+    destroyWorkDetailMap();
+});
+
+onBeforeUnmount(() => {
+    destroyWorkDetailMap();
+});
+
 onActivated(() => {
     headerTitle.value = route.query?.title || '返青追肥';
     if (headerTitle.value === '返青追肥') {