| | |
| | | }); |
| | | const param = computed(() => { |
| | | return { |
| | | provinceCode: formObj.value.location.pCode, |
| | | provinceName: formObj.value.location.pName, |
| | | cityCode: formObj.value.location.cCode, |
| | | cityName: formObj.value.location.cName, |
| | | districtCode: formObj.value.location.dCode, |
| | | districtName: formObj.value.location.dName, |
| | | missionCode: formObj.value.missionCode, |
| | | deviceType: formObj.value.deviceType, |
| | |
| | | }); |
| | | |
| | | function submitMission() { |
| | | const newMission = { ...param.value }; |
| | | // const newMission = { ...param.value }; |
| | | if (props.mode == 'create') { |
| | | createMission(); |
| | | } else { |
| | | updateMission(); |
| | | } |
| | | } |
| | | |
| | | // 创建任务 |
| | |
| | | .finally(() => emits('update:modelValue', false)); |
| | | }); |
| | | } |
| | | |
| | | function updateMission() { |
| | | fetchData((page, pageSize) => { |
| | | return missionApi |
| | | .updateMission(param.value) |
| | | .then((res) => { |
| | | missionStore.fetchMission(); |
| | | // 通知服务端启动任务范围内的第三方数据获取任务 |
| | | thirdPartyDataApi.fetchMissionData(param.value.missionCode); |
| | | }) |
| | | .finally(() => emits('update:modelValue', false)); |
| | | }); |
| | | } |
| | | |
| | | const { formObj, formRef, edit, onSubmit, onCancel } = useFormConfirm({ |
| | | submit: { |
| | | do: createMission |
| | | do: submitMission |
| | | }, |
| | | cancel: { |
| | | do: () => { |
| | |
| | | initFormObj(); |
| | | } |
| | | if (m && props.mode == 'update') { |
| | | formObj.value.location = { dName: m.districtName }; |
| | | formObj.value.location = { |
| | | pCode: m.provinceCode, |
| | | pName: m.provinceName, |
| | | cCode: m.cityCode, |
| | | cName: m.cityName, |
| | | dCode: m.districtCode, |
| | | dName: m.districtName |
| | | }; |
| | | formObj.value.missionCode = m.missionCode; |
| | | formObj.value.deviceType = m.deviceType; |
| | | formObj.value.deviceCode = m.deviceCode; |
| | |
| | | <el-table-column label="管理" width="160" align="center"> |
| | | <template #default="{ row }"> |
| | | <!-- <MissionEdit mode="update"></MissionEdit> --> |
| | | <!-- <el-button |
| | | <el-button |
| | | type="primary" |
| | | size="small" |
| | | icon="EditPen" |
| | | class="el-button-custom" |
| | | @click="updateMission(row)" |
| | | ></el-button> --> |
| | | ></el-button> |
| | | <el-button |
| | | type="primary" |
| | | size="small" |
| | |
| | | { |
| | | label: '市控点', |
| | | value: '20' |
| | | }, |
| | | { |
| | | label: '小微站', |
| | | value: '21' |
| | | } |
| | | ]; |
| | |
| | | } |
| | | |
| | | // 判断场景类型是否选中 |
| | | if (v.pollutedSource.sceneList.length == 0) { |
| | | if ( |
| | | v.pollutedSource == undefined || |
| | | v.pollutedSource.sceneList.length == 0 |
| | | ) { |
| | | b3 = selectedSceneTypes.value.indexOf(NO_SCENE) != -1; |
| | | } else { |
| | | b3 = |
| | |
| | | } |
| | | |
| | | // 筛选场景类型 |
| | | if (objData.pollutedSource.sceneList.length == 0) { |
| | | // 若没有找到风险源时,将该分类设定为null |
| | | if (sceneOptions.value.findIndex((v) => v.value == NO_SCENE) == -1) { |
| | | sceneOptions.value.push({ |
| | | label: '未知', |
| | | value: NO_SCENE |
| | | }); |
| | | selectedSceneTypes.value.push(NO_SCENE); |
| | | } |
| | | } else { |
| | | objData.pollutedSource.sceneList.forEach((s) => { |
| | | if (sceneOptions.value.findIndex((v) => v.value == s.typeId) == -1) { |
| | | if (objData.pollutedSource != undefined) { |
| | | if (objData.pollutedSource.sceneList.length == 0) { |
| | | // 若没有找到风险源时,将该分类设定为null |
| | | if (sceneOptions.value.findIndex((v) => v.value == NO_SCENE) == -1) { |
| | | sceneOptions.value.push({ |
| | | label: s.type, |
| | | value: s.typeId |
| | | label: '未知', |
| | | value: NO_SCENE |
| | | }); |
| | | selectedSceneTypes.value.push(s.typeId); |
| | | selectedSceneTypes.value.push(NO_SCENE); |
| | | } |
| | | }); |
| | | } else { |
| | | objData.pollutedSource.sceneList.forEach((s) => { |
| | | if ( |
| | | sceneOptions.value.findIndex((v) => v.value == s.typeId) == -1 |
| | | ) { |
| | | sceneOptions.value.push({ |
| | | label: s.type, |
| | | value: s.typeId |
| | | }); |
| | | selectedSceneTypes.value.push(s.typeId); |
| | | } |
| | | }); |
| | | } |
| | | } |
| | | // case '2': |
| | | // break; |
| | |
| | | dataAnalysisApi |
| | | .fetchPollutionTraceHistory(props.missionCode) |
| | | .then((res) => { |
| | | factorOptions.value = []; |
| | | selectedFactorTypes.value = []; |
| | | sceneOptions.value = []; |
| | | selectedSceneTypes.value = []; |
| | | const objList = JSON.parse(res.data); |
| | | objList.forEach((obj) => { |
| | | obj._type = obj.msgType + ''; |
| | |
| | | <el-text :type="noWarn ? 'info' : 'warning'"> |
| | | {{ |
| | | item.pollutedSource.sceneList.length == 0 |
| | | ? '未找到风险源' |
| | | ? '可能存在现场污染,请注意周边情况。' |
| | | : '找到' + item.pollutedSource.sceneList.length + '个风险源' |
| | | }} |
| | | </el-text> |
| | |
| | | size="default" |
| | | :min="1" |
| | | > |
| | | <el-space> |
| | | <el-checkbox |
| | | v-for="item in factorOptions" |
| | | :value="item.value" |
| | | :key="item.label" |
| | | > |
| | | {{ item.label }} |
| | | </el-checkbox> |
| | | </el-space> |
| | | <!-- <el-space> --> |
| | | <el-checkbox |
| | | v-for="item in factorOptions" |
| | | :value="item.value" |
| | | :key="item.label" |
| | | > |
| | | {{ item.label }} |
| | | </el-checkbox> |
| | | <!-- </el-space> --> |
| | | </el-checkbox-group> |
| | | </el-space> |
| | | </div> |
| | |
| | | import { ref } from 'vue'; |
| | | |
| | | const props = defineProps({ |
| | | // 数据切片,线索、提示、溯源 |
| | | /** |
| | | * 包含追踪信息的数据切片,包括线索、提示和溯源数据 |
| | | * @type {Array} |
| | | */ |
| | | dataSlice: Array, |
| | | // 监测因子 |
| | | /** |
| | | * 监测因子类型数组 |
| | | * @type {Array} |
| | | */ |
| | | factorType: Array, |
| | | /** |
| | | * 监测因子的可用选项 |
| | | * @type {Array<{value: string, label: string}>} |
| | | */ |
| | | factorOptions: Array, |
| | | // 场景类型 |
| | | /** |
| | | * 用于过滤的场景类型数组 |
| | | * @type {Array} |
| | | */ |
| | | sceneType: Array, |
| | | /** |
| | | * 场景选择的可用选项 |
| | | * @type {Array<{value: string, label: string}>} |
| | | */ |
| | | sceneOptions: Array |
| | | }); |
| | | |