|
@@ -46,12 +46,12 @@
|
|
|
label-width="auto"
|
|
|
class="demo-ruleForm"
|
|
|
>
|
|
|
- <el-form-item label="农场位置" prop="position">
|
|
|
+ <el-form-item label="农场位置" prop="address">
|
|
|
<div class="position-wrap">
|
|
|
<el-input
|
|
|
placeholder="农场位置"
|
|
|
readonly
|
|
|
- v-model="ruleForm.position"
|
|
|
+ v-model="ruleForm.address"
|
|
|
autocomplete="off"
|
|
|
/>
|
|
|
<div class="draw-btn" @click="toSubPage">点击勾选地块</div>
|
|
@@ -68,20 +68,17 @@
|
|
|
<div class="unit">亩</div>
|
|
|
</div>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="种植作物" prop="period">
|
|
|
+ <el-form-item label="种植作物" prop="phenologyId">
|
|
|
<div class="select-wrap">
|
|
|
- <el-select class="select-item" v-model="ruleForm.type" placeholder="作物类型">
|
|
|
- <el-option v-for="(item, index) in specieList" :key="index" :value="item.id">{{ item.name }}</el-option>
|
|
|
+ <el-select @change="changeSpecie" class="select-item" v-model="ruleForm.speciesItem" placeholder="作物类型">
|
|
|
+ <el-option v-for="(item, index) in specieList" :key="index" :label="item.name" :value="{value: item.id, ...item}" />
|
|
|
</el-select>
|
|
|
<el-select
|
|
|
- v-model="ruleForm.period"
|
|
|
+ v-model="ruleForm.phenologyId"
|
|
|
placeholder="物候期"
|
|
|
class="period-select select-item"
|
|
|
>
|
|
|
- <el-option label="秋梢期" value="秋梢期" />
|
|
|
- <el-option label="开花期" value="开花期" />
|
|
|
- <el-option label="膨果期" value="膨果期" />
|
|
|
- <el-option label="成熟期" value="成熟期" />
|
|
|
+ <el-option v-for="(item, index) in phenologyList" :key="index" :label="item.name" :value="item.id" />
|
|
|
</el-select>
|
|
|
</div>
|
|
|
</el-form-item>
|
|
@@ -114,6 +111,7 @@ import { mapLocation } from "./map/index.js"
|
|
|
import { onMounted, ref, reactive, watch, onActivated } from "vue";
|
|
|
import { useStore } from "vuex";
|
|
|
import { convertPointToArray } from "@/utils/index";
|
|
|
+import { ElMessage } from "element-plus";
|
|
|
const route = useRoute();
|
|
|
const router = useRouter();
|
|
|
const store = useStore();
|
|
@@ -186,24 +184,24 @@ const handleSearchRes = (v) => {
|
|
|
const coordinateArray = [parseFloat(parts[1]), parseFloat(parts[0])];
|
|
|
indexMap.setMapPosition(coordinateArray);
|
|
|
centerPoint.value = `POINT (${coordinateArray[0]} ${coordinateArray[1]})`
|
|
|
- ruleForm.position = v.item?.title || v.item?.address;
|
|
|
+ ruleForm.address = v.item?.title || v.item?.address;
|
|
|
pointAddress.value = v.item?.province + v.item?.city + v.item?.district
|
|
|
};
|
|
|
|
|
|
// 表单
|
|
|
const ruleFormRef = ref(null);
|
|
|
const ruleForm = reactive({
|
|
|
- position: "",
|
|
|
+ address: "",
|
|
|
area: "",
|
|
|
- type: "",
|
|
|
- period: "",
|
|
|
+ speciesItem: "",
|
|
|
+ phenologyId: "",
|
|
|
name: "",
|
|
|
});
|
|
|
const rules = reactive({
|
|
|
- position: [{ required: true, message: "请选择农场位置", trigger: "blur" }],
|
|
|
+ address: [{ required: true, message: "请选择农场位置", trigger: "blur" }],
|
|
|
area: [{ required: true, message: "请勾选地块获得农场面积", trigger: "blur" }],
|
|
|
- type: [{ required: true, message: "请选择品类", trigger: "blur" }],
|
|
|
- period: [{ required: true, message: "请选择物候期", trigger: "blur" }],
|
|
|
+ speciesItem: [{ required: true, message: "请选择品类", trigger: "blur" }],
|
|
|
+ phenologyId: [{ required: true, message: "请选择物候期", trigger: "blur" }],
|
|
|
name: [{ required: true, message: "请输入您的农场名称", trigger: "blur" }],
|
|
|
});
|
|
|
|
|
@@ -213,8 +211,16 @@ const submitForm = (formEl) => {
|
|
|
if (valid) {
|
|
|
const params = {
|
|
|
...ruleForm,
|
|
|
- gemo: polygonArr.value
|
|
|
+ wkt: centerPoint.value,
|
|
|
+ speciesId: ruleForm.speciesItem?.id,
|
|
|
+ containerId: ruleForm.speciesItem?.defaultContainerId,
|
|
|
+ // geom: polygonArr.value
|
|
|
}
|
|
|
+ VE_API.farm.saveFarm(params).then((res) => {
|
|
|
+ console.log('code', res.code);
|
|
|
+ ElMessage.success("创建成功")
|
|
|
+ router.replace('/home?reload=true')
|
|
|
+ })
|
|
|
console.log("submit!", params);
|
|
|
} else {
|
|
|
console.log("error submit!");
|
|
@@ -231,7 +237,7 @@ const resetForm = (formEl) => {
|
|
|
const centerPoint = ref(null)
|
|
|
|
|
|
function toSubPage() {
|
|
|
- router.push(`/edit_map?mapCenter=${centerPoint.value}&pointName=${ruleForm.position}&pointAddress=${pointAddress.value}`);
|
|
|
+ router.push(`/edit_map?mapCenter=${centerPoint.value}&pointName=${ruleForm.address}&pointAddress=${pointAddress.value}`);
|
|
|
}
|
|
|
|
|
|
const pointAddress = ref(null)
|
|
@@ -245,7 +251,7 @@ function getLocationName(location) {
|
|
|
const add = result.formatted_addresses?.recommend
|
|
|
? result.formatted_addresses.recommend
|
|
|
: result.address + "";
|
|
|
- ruleForm.position = add
|
|
|
+ ruleForm.address = add
|
|
|
pointAddress.value = result.address
|
|
|
});
|
|
|
}
|
|
@@ -264,6 +270,18 @@ function getSpecieList() {
|
|
|
specieList.value = data
|
|
|
})
|
|
|
}
|
|
|
+
|
|
|
+function changeSpecie(v) {
|
|
|
+ getPhenology(v.defaultContainerId)
|
|
|
+}
|
|
|
+
|
|
|
+const phenologyList = ref([])
|
|
|
+function getPhenology(containerId) {
|
|
|
+ VE_API.farm.fetchPhenologyList({containerId}).then(({data}) => {
|
|
|
+ console.log('getPhenology', data);
|
|
|
+ phenologyList.value = data
|
|
|
+ })
|
|
|
+}
|
|
|
</script>
|
|
|
|
|
|
<style lang="scss" scoped>
|