保存地块前校验地块重合

master
贾肃 5 months ago
parent 703bd7723b
commit e46ebf6575
  1. 47
      src/views/system/base/massifForm.vue

@ -8,7 +8,9 @@ import {isArray} from "@/utils/validate.js";
import {ElMessage} from "element-plus"; import {ElMessage} from "element-plus";
import {areaConversion} from "@/utils/ruoyi.js"; import {areaConversion} from "@/utils/ruoyi.js";
import * as turf from "@turf/turf"; import * as turf from "@turf/turf";
let { proxy } = getCurrentInstance(); import {lazyAMapApiLoaderInstance} from "@vuemap/vue-amap";
let {proxy} = getCurrentInstance();
const uploadJsonData = ref([]) const uploadJsonData = ref([])
const props = defineProps({}) const props = defineProps({})
const settingsStore = useSettingsStore() const settingsStore = useSettingsStore()
@ -109,27 +111,34 @@ const uploadJson = (file) => {
} }
} }
const formRef = ref(null) const formRef = ref(null)
//
const polygonList = ref([])
const saveMassif = () => { const saveMassif = () => {
proxy.$refs["formRef"].validate(valid => { lazyAMapApiLoaderInstance.then(() => {
if (valid){ let newFormData = deepClone(formData.value)
let newFormData = deepClone(formData.value) for (let item of newFormData.coordinateList) {
for (let item of newFormData.coordinateList) { if (!item.longitude || !item.latitude || !newFormData.massifName) {
if (!item.longitude || !item.latitude){ ElMessage.error('地块保存失败,请确认地块名称和坐标点均已填写。')
ElMessage.error('请确认坐标是否完整') return
return
}
} }
if (formData.value.coordinateType === 2){ }
newFormData.coordinateList = uploadJsonData.value let polygonTemp = newFormData.coordinateList.map(item =>[item.longitude, item.latitude])
for (let item of polygonList.value) {
if (AMap.GeometryUtil.doesRingRingIntersect(polygonTemp.value, item.path) || AMap.GeometryUtil.isRingInRing(polygonTemp.value, item.path) || AMap.GeometryUtil.isRingInRing(item.path, polygonTemp.value)) {
ElMessage.error('当前地块与已有地块边界重合,请修改后再确认')
return
} }
emit('beforeSubmit', formData.value)
loading.value = true
setTimeout(() => {
loading.value = false
emit('submitSuccess', formData.value)
showDrawer.value = false
}, 2000)
} }
if (formData.value.coordinateType === 2) {
newFormData.coordinateList = uploadJsonData.value
}
emit('beforeSubmit', formData.value)
loading.value = true
setTimeout(() => {
loading.value = false
emit('submitSuccess', formData.value)
showDrawer.value = false
}, 2000)
}) })
} }
@ -139,7 +148,7 @@ defineExpose({
toView toView
}) })
const rules = ref({ const rules = ref({
massifName: [{ required: true, message: "地块名称不能为空", trigger: "blur" }], massifName: [{required: true, message: "地块名称不能为空", trigger: "blur"}],
}) })
</script> </script>

Loading…
Cancel
Save