吉安感知网项目-前端
罗广辉
2026-01-27 8a7fb9a519cae32d38ba66058d243aa7e6b6aeb2
applications/drone-command/src/views/detectionCountermeasure/detectionRange/DetectionRangeDialog.vue
@@ -123,6 +123,7 @@
                     v-model="formData.effectiveRangeKm"
                     :min="0"
                     :precision="0"
                     :step="1"
                     :controls="false"
                     placeholder="请输入"
                  />
@@ -227,7 +228,14 @@
function formatRange(value) {
   if (value == null || value === '') return '-'
   return `${value}`
   const normalized = normalizeRange(value)
   return normalized == null ? '-' : `${normalized}`
}
function normalizeRange(value) {
   const numeric = Number(value)
   if (!Number.isFinite(numeric)) return null
   return Math.trunc(numeric)
}
// 关闭弹框
@@ -242,14 +250,16 @@
   submitting.value = true
   try {
      const {longitude, latitude} = parseDeployLocation(formData.value.deployLocation)
      const normalizedRange = normalizeRange(formData.value.effectiveRangeKm)
      const payload = {
         id: formData.value.id || formData.value.deviceId || undefined,
         effectiveRangeKmIsNotNull: formData.value.effectiveRangeKm ? 1 : 2,
         effectiveRangeKm: formData.value.effectiveRangeKm,
         effectiveRangeKmIsNotNull: normalizedRange != null ? 1 : 2,
         effectiveRangeKm: normalizedRange,
         longitude,
         latitude
      }
      formData.value.effectiveRangeKm = normalizedRange
      delete payload.deviceId
      await detectionRangeSubmitApi(payload)
@@ -280,6 +290,7 @@
      current: 1,
      size: 200,
      effectiveRangeKmIsNotNull: 2,
      isTrack: 1
   })
   const records = res?.data?.data?.records ?? []
   deviceOptions.value = records.map(item => ({
@@ -432,9 +443,18 @@
watch(
   () => formData.value.effectiveRangeKm,
   value => {
      const normalized = normalizeRange(value)
      if (value != null && normalized == null) {
         formData.value.effectiveRangeKm = null
         return
      }
      if (value != null && normalized !== value) {
         formData.value.effectiveRangeKm = normalized
         return
      }
      const parsed = parseDeployLocation(formData.value.deployLocation)
      if (!parsed) return
      updateRangeCircle(parsed.longitude, parsed.latitude, value)
      updateRangeCircle(parsed.longitude, parsed.latitude, normalized)
   }
)
</script>