|
|
@@ -23,7 +23,7 @@
|
|
|
<div class="edit-map-footer-btn" v-if="!viewOnly">
|
|
|
<div class="btn-delete" @click="deletePolygon">删除地块</div>
|
|
|
<!-- <div class="btn-cancel" @click="goBack">取消</div> -->
|
|
|
- <div class="btn-confirm" @click="confirm">确认</div>
|
|
|
+ <div class="btn-confirm" @click="confirm">确认区域</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
@@ -173,26 +173,27 @@ const regionTypeTabs = ref([]);
|
|
|
const activeRegionType = ref("variety");
|
|
|
const regionInfo = ref([]);
|
|
|
async function fetchRegionInfo() {
|
|
|
- const { data } = await VE_API.basic_farm.fetchRegionInfo({ subjectId: localStorage.getItem('selectedFarmId') });
|
|
|
+ const subjectId = route.query.subjectId || localStorage.getItem('selectedFarmId');
|
|
|
+ const { data } = await VE_API.basic_farm.fetchRegionInfo({ subjectId });
|
|
|
if (data && data.length > 0) {
|
|
|
regionInfo.value = data[0] || [];
|
|
|
regionTypeTabs.value = regionInfo.value.problemZoneList || [];
|
|
|
regionTypeTabs.value.unshift({ name: "品种区", code: "variety" });
|
|
|
- // if (data[0]?.regionList?.length) {
|
|
|
- // // if (!hasAppliedInitialVariety.value && route.query?.varietyId) {
|
|
|
- // // activeVariety.value = resolveInitialVarietyIndex(data[0]?.regionList);
|
|
|
- // // hasAppliedInitialVariety.value = true;
|
|
|
- // // }
|
|
|
-
|
|
|
- // // point.value = data[0].point;
|
|
|
- // varietyTabs.value = regionInfo.value.regionList || [];
|
|
|
- // }
|
|
|
+ varietyTabs.value = regionInfo.value.regionList || [];
|
|
|
+ activeVariety.value = 0;
|
|
|
|
|
|
if (route.query.firstAct) {
|
|
|
activeRegionType.value = route.query.firstAct;
|
|
|
- const index = regionTypeTabs.value.findIndex(item => item.code === route.query.firstAct);
|
|
|
- if (index !== -1) {
|
|
|
- varietyTabs.value = data[0].problemZoneList[index].children || [];
|
|
|
+ if (route.query.firstAct === "variety") {
|
|
|
+ varietyTabs.value = regionInfo.value.regionList || [];
|
|
|
+ activeVariety.value = 0;
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ const matchedGroup = (regionInfo.value.problemZoneList || []).find(
|
|
|
+ (item) => String(item?.code) === String(route.query.firstAct)
|
|
|
+ );
|
|
|
+ if (matchedGroup) {
|
|
|
+ varietyTabs.value = matchedGroup.children || [];
|
|
|
activeVariety.value = 0;
|
|
|
}
|
|
|
}
|
|
|
@@ -412,7 +413,62 @@ const deletePolygon = () => {
|
|
|
|
|
|
const saveAndBack = () => {
|
|
|
const polygonData = drawRegionMap.getAreaGeometry();
|
|
|
+ const subjectId = route.query.subjectId || localStorage.getItem("selectedFarmId") || "";
|
|
|
+ const geometryArr = Array.isArray(polygonData?.geometryArr)
|
|
|
+ ? polygonData.geometryArr
|
|
|
+ .map((g) => (g == null ? "" : String(g).trim()))
|
|
|
+ .filter((g) => g.length > 10)
|
|
|
+ : [];
|
|
|
+ const geom = geometryArr[0] || "";
|
|
|
+
|
|
|
+ const currentGroup = (regionTypeTabs.value || []).find(
|
|
|
+ (item) => String(item?.code) === String(activeRegionType.value)
|
|
|
+ );
|
|
|
+ const currentTab = (varietyTabs.value || [])[activeVariety.value] || {};
|
|
|
+
|
|
|
+ const regionList =
|
|
|
+ activeRegionType.value === "variety" && geom
|
|
|
+ ? [
|
|
|
+ {
|
|
|
+ regionId: currentTab.regionId ?? currentTab.id ?? "",
|
|
|
+ typeId: currentTab.typeId ?? "",
|
|
|
+ regionName: currentTab.regionName ?? currentTab.problemZoneTypeName ?? "",
|
|
|
+ geom,
|
|
|
+ },
|
|
|
+ ]
|
|
|
+ : [];
|
|
|
+
|
|
|
+ const problemZoneList =
|
|
|
+ activeRegionType.value !== "variety" && geom
|
|
|
+ ? [
|
|
|
+ {
|
|
|
+ name: currentGroup?.name ?? "",
|
|
|
+ code: currentGroup?.code ?? activeRegionType.value,
|
|
|
+ children: [
|
|
|
+ {
|
|
|
+ farmSubjectId: subjectId,
|
|
|
+ handleStatus: 1,
|
|
|
+ createTime: new Date().toISOString(),
|
|
|
+ problemZoneTypeId: currentTab.problemZoneTypeId ?? currentTab.typeId ?? "",
|
|
|
+ problemZoneTypeName: currentTab.problemZoneTypeName ?? currentTab.regionName ?? "",
|
|
|
+ parentName: currentGroup?.name ?? "",
|
|
|
+ parentCode: currentGroup?.code ?? activeRegionType.value,
|
|
|
+ geomItems: [{ geomWkt: geom, remark: "" }],
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ },
|
|
|
+ ]
|
|
|
+ : [];
|
|
|
+
|
|
|
+ const params = {
|
|
|
+ subjectId,
|
|
|
+ regionList,
|
|
|
+ problemZoneList,
|
|
|
+ };
|
|
|
+
|
|
|
sessionStorage.setItem("drawRegionPolygonData", JSON.stringify(polygonData));
|
|
|
+ console.log(params);
|
|
|
+ sessionStorage.setItem("drawRegionSubmitParams", JSON.stringify(params));
|
|
|
if (selectedAbnormalType.value) {
|
|
|
sessionStorage.setItem("drawRegionAbnormalType", selectedAbnormalType.value);
|
|
|
} else {
|