|
|
@@ -11,12 +11,12 @@
|
|
|
<div v-for="(crop, cropIndex) in farmData.farms" :key="cropIndex" class="crop-section">
|
|
|
<div class="crop-header">
|
|
|
<div class="crop-tag">{{ crop.speciesName }}</div>
|
|
|
- <div class="add-btn" @click="addVariety(crop)">+ 新增品种</div>
|
|
|
+ <div class="add-btn" v-if="farmData.status === 'INIT'" @click="addVariety(crop)">+ 新增品种</div>
|
|
|
</div>
|
|
|
|
|
|
<div v-for="(region, regionIndex) in crop.regions" :key="regionIndex" class="variety-card">
|
|
|
<div class="field-row">
|
|
|
- <div class="field-value">
|
|
|
+ <div class="field-value" v-if="farmData.status === 'INIT'">
|
|
|
<el-select
|
|
|
v-model="region.regionId"
|
|
|
class="variety-input"
|
|
|
@@ -31,6 +31,9 @@
|
|
|
</template>
|
|
|
</el-select>
|
|
|
</div>
|
|
|
+ <div class="tag-val" v-else>
|
|
|
+ {{ region.regionName }}
|
|
|
+ </div>
|
|
|
</div>
|
|
|
|
|
|
<div class="field-row">
|
|
|
@@ -121,9 +124,19 @@ const farmData = ref({
|
|
|
const getPhenologyInitOrConfirmStatus = async (subjectId) => {
|
|
|
const {data} = await VE_API.farm_v3.phenologyInitOrConfirmStatus({subjectId});
|
|
|
farmData.value = data;
|
|
|
- data.farms.forEach(item => {
|
|
|
- addVariety(item);
|
|
|
- });
|
|
|
+ if (data.status === 'INIT') {
|
|
|
+ data.farms.forEach(item => {
|
|
|
+ addVariety(item);
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ // 大物候期确认
|
|
|
+ data.farms.forEach(item => {
|
|
|
+ item.regions.forEach(region => {
|
|
|
+ region.phenologyId = region.currentPhenologyId;
|
|
|
+ region.phenologyStartDate = region.currentPhenologyStartDate;
|
|
|
+ });
|
|
|
+ });
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
const addVariety = (crop) => {
|
|
|
@@ -181,11 +194,11 @@ const handleConfirm = async () => {
|
|
|
(r) => r.regionId && r.phenologyId && r.phenologyStartDate
|
|
|
)
|
|
|
.map((r) => {
|
|
|
- const origin =
|
|
|
- (farm.typeIdItems || []).find(
|
|
|
- (t) => String(t.id) === String(r.regionId)
|
|
|
- ) || {};
|
|
|
if (status === 'INIT') {
|
|
|
+ const origin =
|
|
|
+ (farm.typeIdItems || []).find(
|
|
|
+ (t) => String(t.id) === String(r.regionId)
|
|
|
+ ) || {};
|
|
|
return {
|
|
|
id: r.regionId,
|
|
|
name: origin.name || "",
|
|
|
@@ -200,7 +213,13 @@ const handleConfirm = async () => {
|
|
|
}
|
|
|
}
|
|
|
})
|
|
|
- .filter((item) => item.id);
|
|
|
+ .filter((item) => {
|
|
|
+ if (status === 'INIT') {
|
|
|
+ return item.id;
|
|
|
+ } else {
|
|
|
+ return item.regionId;
|
|
|
+ }
|
|
|
+ });
|
|
|
|
|
|
return {
|
|
|
farmId: farm.farmId,
|
|
|
@@ -423,6 +442,17 @@ const handleTipConfirm = () => {
|
|
|
flex: 1;
|
|
|
}
|
|
|
|
|
|
+.tag-val {
|
|
|
+ background: rgba(33, 153, 248, 0.1);
|
|
|
+ color: #2199F8;
|
|
|
+ border-radius: 2px;
|
|
|
+ padding: 0 10px;
|
|
|
+ width: fit-content;
|
|
|
+ height: 26px;
|
|
|
+ line-height: 26px;
|
|
|
+ box-sizing: border-box;
|
|
|
+}
|
|
|
+
|
|
|
.select-input,
|
|
|
.date-picker {
|
|
|
width: 100%;
|