| | |
| | | </el-col> |
| | | |
| | | <el-col :span="12"> |
| | | <el-form-item label="区域" prop="areaDivideId"> |
| | | <el-form-item label="场景" prop="defenseSceneId"> |
| | | <el-select class="command-select" popper-class="command-select-popper" |
| | | v-model="formData.areaDivideId" placeholder="请选择" clearable |
| | | @change="handleAreaChange"> |
| | | <el-option v-for="item in areaList" :key="item.id" :label="item.areaName" |
| | | v-model="formData.defenseSceneId" placeholder="请选择" clearable |
| | | @change="handleSceneChange"> |
| | | <el-option v-for="item in sceneList" :key="item.id" :label="item.sceneName" |
| | | :value="item.id" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | |
| | | <el-col :span="12"> |
| | | <el-form-item label="场景" prop="defenseSceneId"> |
| | | <el-form-item label="区域" prop="areaDivideId"> |
| | | <el-select class="command-select" popper-class="command-select-popper" |
| | | v-model="formData.defenseSceneId" placeholder="请先选择区域" clearable |
| | | :disabled="!formData.areaDivideId" @change="handleSceneChange"> |
| | | <el-option v-for="item in sceneList" :key="item.id" :label="item.sceneName" |
| | | v-model="formData.areaDivideId" placeholder="请先选择场景" clearable |
| | | :disabled="!formData.defenseSceneId" @change="handleAreaChange"> |
| | | <el-option v-for="item in areaList" :key="item.id" :label="item.areaName" |
| | | :value="item.id" /> |
| | | </el-select> |
| | | </el-form-item> |
| | |
| | | </el-form> |
| | | |
| | | <template #footer> |
| | | <el-button color="#2B2B4C" @click="handleCancel">{{ readonly ? '关闭' : '取消' }}</el-button> |
| | | <el-button v-if="dialogMode != 'view'" color="#2B2B4C" @click="handleCancel">{{ readonly ? '关闭' : '取消' }}</el-button> |
| | | <el-button color="#284FE3" v-if="!readonly" type="primary" :loading="submitting" :disabled="submitting" |
| | | @click="handleSubmit"> |
| | | 保存 |
| | |
| | | import { fieldRules } from '@ztzf/utils' |
| | | import { PublicCesium } from '@/utils/cesium/publicCesium' |
| | | import * as Cesium from 'cesium' |
| | | import { saveOperationLog } from '@ztzf/apis' |
| | | import { useRoute } from 'vue-router' |
| | | |
| | | // 初始化表单 |
| | | const initForm = () => ({ |
| | |
| | | const areaList = ref([]) // 区域列表 |
| | | const sceneList = ref([]) // 场景列表 |
| | | const deviceStatus = ref('') |
| | | const route = useRoute() |
| | | |
| | | const rules = { |
| | | deviceId: fieldRules(true), |
| | |
| | | } |
| | | |
| | | async function handleAreaChange (areaId) { |
| | | formData.value.defenseSceneId = '' |
| | | if (areaId) { |
| | | await loadSceneList(areaId) |
| | | } else { |
| | | sceneList.value = [] |
| | | } |
| | | } |
| | | |
| | | // 场景选择变化处理 |
| | | async function handleSceneChange (sceneId) { |
| | | const find = sceneList.value.find(item => item.id === sceneId) |
| | | const find = areaList.value.find(item => item.id === areaId) |
| | | formData.value.longitude = find?.longitude |
| | | formData.value.latitude = find?.latitude |
| | | } |
| | | |
| | | // 场景选择变化处理 |
| | | async function handleSceneChange (sceneId) { |
| | | formData.value.areaDivideId = '' |
| | | |
| | | if (sceneId) { |
| | | await loadAreaList(sceneId) |
| | | } else { |
| | | areaList.value = [] |
| | | } |
| | | } |
| | | |
| | | // 加载区域列表 |
| | | async function loadAreaList () { |
| | | const res = await fwAreaDivideListApi() |
| | | async function loadAreaList (sceneId) { |
| | | const res = await fwAreaDivideListApi({sceneId}) |
| | | areaList.value = res?.data?.data ?? [] |
| | | } |
| | | |
| | | // 加载场景列表 |
| | | async function loadSceneList(areaId) { |
| | | const res = await fwDefenseSceneListApi({areaId}) |
| | | async function loadSceneList() { |
| | | const res = await fwDefenseSceneListApi() |
| | | sceneList.value = res?.data?.data ?? [] |
| | | } |
| | | |
| | |
| | | formData.value.dispatchEndTime = formData.value.dispatchDateRange[1] |
| | | } |
| | | await fwTaskScheduleSubmitApi(formData.value) |
| | | |
| | | const actionText = dialogMode.value === 'add' ? '新增' : '修改' |
| | | saveOperationLog({ |
| | | requestUri: route.path, |
| | | title: `${route.name || '任务调度'}-${actionText}`, |
| | | type: 1 |
| | | }) |
| | | |
| | | ElMessage.success(dialogMode.value === 'add' ? '新增成功' : '更新成功') |
| | | visible.value = false |
| | | emit('success') |
| | |
| | | text: `${longitude.toFixed(6)}, ${latitude.toFixed(6)}`, |
| | | font: '14px', |
| | | fillColor: Cesium.Color.WHITE, |
| | | backgroundColor: Cesium.Color.BLACK.withAlpha(0.45), |
| | | backgroundColor: Cesium.Color.BLACK.withAlpha(0.6), |
| | | backgroundPadding: new Cesium.Cartesian2(5, 5), |
| | | pixelOffset: new Cesium.Cartesian2(0, -20), |
| | | showBackground: true, |
| | |
| | | defineExpose({ open }) |
| | | |
| | | onMounted(() => { |
| | | loadAreaList() |
| | | loadSceneList() |
| | | }) |
| | | </script> |
| | | <style scoped lang="scss"> |