|
|
@@ -57,9 +57,9 @@
|
|
|
|
|
|
<!-- 底部按钮 -->
|
|
|
<div class="fixed-btn-wrap">
|
|
|
- <div class="fixed-btn" @click="handleConfirm">
|
|
|
+ <el-button class="fixed-btn" :loading="loading" @click="handleConfirm">
|
|
|
确认信息
|
|
|
- </div>
|
|
|
+ </el-button>
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
@@ -97,6 +97,7 @@ const router = useRouter();
|
|
|
const route = useRoute();
|
|
|
|
|
|
const isAddVariety = ref(false);
|
|
|
+const loading = ref(false);
|
|
|
onActivated(() => {
|
|
|
isAddVariety.value = route.query.addVariety ? true : false;
|
|
|
|
|
|
@@ -184,7 +185,7 @@ const selectRegionImage = ref("");
|
|
|
const selectRegionTitle = ref("勾选 区域");
|
|
|
|
|
|
// 获取第一个选择的品种名称用于弹窗标题
|
|
|
-const getFirstSelectedVarietyName = () => {
|
|
|
+const getFirstSelectedVariety = () => {
|
|
|
for (const farm of farmData.value.farms) {
|
|
|
const selectedRegion = (farm.regions || []).find(
|
|
|
(r) => r.regionId && r.phenologyId && r.phenologyStartDate
|
|
|
@@ -194,7 +195,10 @@ const getFirstSelectedVarietyName = () => {
|
|
|
(t) => String(t.id) === String(selectedRegion.regionId)
|
|
|
);
|
|
|
if (varietyItem?.name) {
|
|
|
- return varietyItem.name;
|
|
|
+ return {
|
|
|
+ name: varietyItem.name,
|
|
|
+ id: varietyItem.id,
|
|
|
+ };
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
@@ -202,6 +206,7 @@ const getFirstSelectedVarietyName = () => {
|
|
|
};
|
|
|
|
|
|
const handleConfirm = async () => {
|
|
|
+ loading.value = true;
|
|
|
// 组装为 initFarmData 接口所需的 farmDataList 结构
|
|
|
const status = farmData.value.status;
|
|
|
const farmDataList = farmData.value.farms
|
|
|
@@ -258,18 +263,20 @@ const handleConfirm = async () => {
|
|
|
|
|
|
const { code, msg } = await VE_API.farm_v3[status === 'INIT' || isAddVariety.value ? 'initFarmData' : 'confirmReproductivePhenology'](params);
|
|
|
if (code === 0) {
|
|
|
+ loading.value = false;
|
|
|
// 从点击新增品种进来的才需要勾选区域
|
|
|
- if (route.query.from === 'addVariety') {
|
|
|
+ if (isAddVariety.value) {
|
|
|
// 显示勾选区域引导弹窗
|
|
|
- const varietyName = getFirstSelectedVarietyName();
|
|
|
- if (varietyName) {
|
|
|
- selectRegionTitle.value = `勾选 ${varietyName} 区域`;
|
|
|
+ const variety = getFirstSelectedVariety();
|
|
|
+ if (variety) {
|
|
|
+ selectRegionTitle.value = `勾选 ${variety.name} 区域`;
|
|
|
}
|
|
|
showSelectRegionPopup.value = true;
|
|
|
} else {
|
|
|
showTipPopup.value = true;
|
|
|
}
|
|
|
} else {
|
|
|
+ loading.value = false;
|
|
|
ElMessage.error(msg || "提交失败");
|
|
|
}
|
|
|
};
|
|
|
@@ -281,7 +288,7 @@ const handleSkipSelectRegion = () => {
|
|
|
|
|
|
const handleGoSelectRegion = () => {
|
|
|
showSelectRegionPopup.value = false;
|
|
|
- router.push("/draw_area?subjectId=" + route.query.subjectId);
|
|
|
+ router.push("/draw_area?targetUrl=growth_report&subjectId=" + route.query.subjectId);
|
|
|
};
|
|
|
|
|
|
// 大物候期转换所需参数// 组装为后端所需的 farmDataList 结构
|
|
|
@@ -562,6 +569,7 @@ onBeforeUnmount(() => {
|
|
|
.fixed-btn {
|
|
|
min-width: 110px;
|
|
|
height: 40px;
|
|
|
+ padding: 0 30px;
|
|
|
line-height: 40px;
|
|
|
text-align: center;
|
|
|
border-radius: 20px;
|