第四步:基础设施点数据分类显示
This commit is contained in:
@@ -31,7 +31,7 @@
|
|||||||
<el-option
|
<el-option
|
||||||
v-for="(opt, index) in selectOptions"
|
v-for="(opt, index) in selectOptions"
|
||||||
:key="index"
|
:key="index"
|
||||||
:label="opt.value === PointType.RISK_AREA || opt.value === InfrastructurePointType.HOSPITAL ? opt.label : `${opt.label}预警点`"
|
:label="opt.value === PointType.RISK_AREA || Object.values(InfrastructurePointType).includes(opt.value as InfrastructurePointType) ? opt.label : `${opt.label}预警点`"
|
||||||
:value="opt.value"
|
:value="opt.value"
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
|
|||||||
@@ -2,6 +2,14 @@ import { ref } from 'vue';
|
|||||||
import type { XianHiddenDangerSpots } from '@/types/base/XianHiddenDangerSpots';
|
import type { XianHiddenDangerSpots } from '@/types/base/XianHiddenDangerSpots';
|
||||||
import type { XianRiskSpots } from '@/types/base/XianRiskSpots';
|
import type { XianRiskSpots } from '@/types/base/XianRiskSpots';
|
||||||
import type { XianHospitals } from '@/types/base/XianHospitals';
|
import type { XianHospitals } from '@/types/base/XianHospitals';
|
||||||
|
import type { XianDangerousSource } from '@/types/base/XianDangerousSource';
|
||||||
|
import type { XianEmergencyShelter } from '@/types/base/XianEmergencyShelter';
|
||||||
|
import type { XianFirefighter } from '@/types/base/XianFirefighter';
|
||||||
|
import type { XianStorePoints } from '@/types/base/XianStorePoints';
|
||||||
|
import type { XianSchool } from '@/types/base/XianSchool';
|
||||||
|
import type { XianBridge } from '@/types/base/XianBridge';
|
||||||
|
import type { XianReservoirList } from '@/types/base/XianReservoirList';
|
||||||
|
import type { XianSubwayStations } from '@/types/base/XianSubwayStations';
|
||||||
import type { PaginationType } from '@/types/common/PaginationType';
|
import type { PaginationType } from '@/types/common/PaginationType';
|
||||||
import { PointType } from '@/types/common/DisasterType';
|
import { PointType } from '@/types/common/DisasterType';
|
||||||
import { InfrastructurePointType } from '@/types/common/InfrastructurePointType';
|
import { InfrastructurePointType } from '@/types/common/InfrastructurePointType';
|
||||||
@@ -59,8 +67,19 @@ export const useDisasterChainTable = () => {
|
|||||||
/**
|
/**
|
||||||
* 表格数据
|
* 表格数据
|
||||||
*/
|
*/
|
||||||
const tableDatas = ref<(XianHiddenDangerSpots | XianRiskSpots | XianHospitals)[]>([]);
|
const tableDatas = ref<(
|
||||||
|
| XianHiddenDangerSpots
|
||||||
|
| XianRiskSpots
|
||||||
|
| XianHospitals
|
||||||
|
| XianDangerousSource
|
||||||
|
| XianEmergencyShelter
|
||||||
|
| XianFirefighter
|
||||||
|
| XianStorePoints
|
||||||
|
| XianSchool
|
||||||
|
| XianBridge
|
||||||
|
| XianReservoirList
|
||||||
|
| XianSubwayStations
|
||||||
|
)[]>([]);
|
||||||
/**
|
/**
|
||||||
* 分页配置
|
* 分页配置
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -44,7 +44,30 @@ export const usePointsHandle = () => {
|
|||||||
|
|
||||||
const id = `${prefix}${point.id}`;
|
const id = `${prefix}${point.id}`;
|
||||||
ids.push(id);
|
ids.push(id);
|
||||||
info.push({ id, name: point.name!, lon: point.lon, lat: point.lat, scale_grade: point.scale_grade, risk_grade: point.risk_grade, risk_level: point.risk_level, level: point.level });
|
info.push({
|
||||||
|
id,
|
||||||
|
name: point.name!,
|
||||||
|
lon: point.lon,
|
||||||
|
lat: point.lat,
|
||||||
|
scale_grade: point.scale_grade,
|
||||||
|
risk_grade: point.risk_grade,
|
||||||
|
risk_level: point.risk_level,
|
||||||
|
level: point.level,
|
||||||
|
safe_product_level: point.safe_product_level,
|
||||||
|
type: point.type,
|
||||||
|
construction_category: point.construction_category,
|
||||||
|
team_type: point.team_type,
|
||||||
|
fire_type: point.fire_type,
|
||||||
|
department: point.department,
|
||||||
|
school_type: point.school_type,
|
||||||
|
school_creater: point.school_creater,
|
||||||
|
bridge_type: point.bridge_type,
|
||||||
|
build_time: point.build_time,
|
||||||
|
safety_status: point.safety_status,
|
||||||
|
net_flood_capacity: point.net_flood_capacity,
|
||||||
|
line: point.line,
|
||||||
|
depth_of_accumulated_water: point.depth_of_accumulated_water,
|
||||||
|
});
|
||||||
options.push({
|
options.push({
|
||||||
id: id,
|
id: id,
|
||||||
type: 'billboard',
|
type: 'billboard',
|
||||||
|
|||||||
@@ -24,4 +24,32 @@ export interface Point {
|
|||||||
risk_level?: string;
|
risk_level?: string;
|
||||||
/** 医院等级(医院专用) */
|
/** 医院等级(医院专用) */
|
||||||
level?: string;
|
level?: string;
|
||||||
|
/** 安全生产标准化等级(危险源专用) */
|
||||||
|
safe_product_level?: string;
|
||||||
|
/** 避难所类型(避难所专用) */
|
||||||
|
type?: string;
|
||||||
|
/** 避难所性质(避难所专用) */
|
||||||
|
construction_category?: string;
|
||||||
|
/** 队伍类型(消防站专用) */
|
||||||
|
team_type?: string;
|
||||||
|
/** 消防站类型(消防站专用) */
|
||||||
|
fire_type?: string;
|
||||||
|
/** 所属部门(储备点/学校专用) */
|
||||||
|
department?: string;
|
||||||
|
/** 学校类型(学校专用) */
|
||||||
|
school_type?: string;
|
||||||
|
/** 所属部门(学校专用) */
|
||||||
|
school_creater?: string;
|
||||||
|
/** 桥梁类型(桥梁专用) */
|
||||||
|
bridge_type?: string;
|
||||||
|
/** 建成时间(桥梁专用) */
|
||||||
|
build_time?: string;
|
||||||
|
/** 水库安全状态编码(水库专用) */
|
||||||
|
safety_status?: string;
|
||||||
|
/** 净防洪库容(水库专用) */
|
||||||
|
net_flood_capacity?: string;
|
||||||
|
/** 地铁线路(地铁站专用) */
|
||||||
|
line?: string;
|
||||||
|
/** 积水深度(地铁站专用) */
|
||||||
|
depth_of_accumulated_water?: string;
|
||||||
}
|
}
|
||||||
@@ -10,8 +10,12 @@ export interface XianReservoirList extends Point {
|
|||||||
location?: string;
|
location?: string;
|
||||||
/** 安全评定结果 */
|
/** 安全评定结果 */
|
||||||
safetyAssessResult?: string;
|
safetyAssessResult?: string;
|
||||||
|
/** 水库安全状态编码 */
|
||||||
|
safetyStatus?: string;
|
||||||
|
/** 净防洪库容(万m³) */
|
||||||
|
netFloodCapacity?: string;
|
||||||
/** 经度 */
|
/** 经度 */
|
||||||
lon?: number;
|
lon?: number;
|
||||||
/** 纬度 */
|
/** 纬度 */
|
||||||
lat?: number;
|
lat?: number;
|
||||||
}
|
}
|
||||||
@@ -6,10 +6,12 @@ import type { Point } from './Point';
|
|||||||
export interface XianSubwayStations extends Point {
|
export interface XianSubwayStations extends Point {
|
||||||
/** 站点名称 */
|
/** 站点名称 */
|
||||||
stationName?: string;
|
stationName?: string;
|
||||||
|
/** 地铁线路 */
|
||||||
|
line?: string;
|
||||||
/** 参照积水点 */
|
/** 参照积水点 */
|
||||||
referToTheWaterAccumulationPoint?: string;
|
referToTheWaterAccumulationPoint?: string;
|
||||||
/** 积水深度 */
|
/** 积水深度 */
|
||||||
depthOfAccumulatedWater?: string;
|
depthOfAccumulatedWater?: string;
|
||||||
/** 核算后积水深度 */
|
/** 核算后积水深度 */
|
||||||
accumulatedWaterAfterAccounting?: string;
|
accumulatedWaterAfterAccounting?: string;
|
||||||
}
|
}
|
||||||
@@ -79,6 +79,14 @@
|
|||||||
import type { XianHiddenDangerSpots } from '@/types/base/XianHiddenDangerSpots';
|
import type { XianHiddenDangerSpots } from '@/types/base/XianHiddenDangerSpots';
|
||||||
import type { XianRiskSpots } from '@/types/base/XianRiskSpots';
|
import type { XianRiskSpots } from '@/types/base/XianRiskSpots';
|
||||||
import type { XianHospitals } from '@/types/base/XianHospitals';
|
import type { XianHospitals } from '@/types/base/XianHospitals';
|
||||||
|
import type { XianDangerousSource } from '@/types/base/XianDangerousSource';
|
||||||
|
import type { XianEmergencyShelter } from '@/types/base/XianEmergencyShelter';
|
||||||
|
import type { XianFirefighter } from '@/types/base/XianFirefighter';
|
||||||
|
import type { XianStorePoints } from '@/types/base/XianStorePoints';
|
||||||
|
import type { XianSchool } from '@/types/base/XianSchool';
|
||||||
|
import type { XianBridge } from '@/types/base/XianBridge';
|
||||||
|
import type { XianReservoirList } from '@/types/base/XianReservoirList';
|
||||||
|
import type { XianSubwayStations } from '@/types/base/XianSubwayStations';
|
||||||
import {
|
import {
|
||||||
useDisasterChainTable,
|
useDisasterChainTable,
|
||||||
type SearchConditions,
|
type SearchConditions,
|
||||||
@@ -132,6 +140,14 @@
|
|||||||
{value: PointType.COLLAPSE, label: '崩塌'},
|
{value: PointType.COLLAPSE, label: '崩塌'},
|
||||||
{value: PointType.RISK_AREA, label: '风险区'},
|
{value: PointType.RISK_AREA, label: '风险区'},
|
||||||
{value: InfrastructurePointType.HOSPITAL, label: '医院'},
|
{value: InfrastructurePointType.HOSPITAL, label: '医院'},
|
||||||
|
{value: InfrastructurePointType.DANGEROUS_SOURCE, label: '危险源'},
|
||||||
|
{value: InfrastructurePointType.REFUGEE_SHELTER, label: '避难所'},
|
||||||
|
{value: InfrastructurePointType.FIRE_STATION, label: '消防站'},
|
||||||
|
{value: InfrastructurePointType.STORE_POINTS, label: '储备点'},
|
||||||
|
{value: InfrastructurePointType.SCHOOL, label: '学校'},
|
||||||
|
{value: InfrastructurePointType.BRIDGE, label: '桥梁'},
|
||||||
|
{value: InfrastructurePointType.RESERVOIR, label: '水库'},
|
||||||
|
{value: InfrastructurePointType.SUBWAY, label: '地铁站'},
|
||||||
]);
|
]);
|
||||||
|
|
||||||
// 设置表格列配置(默认显示隐患点的列)
|
// 设置表格列配置(默认显示隐患点的列)
|
||||||
@@ -164,6 +180,70 @@
|
|||||||
{title: '位置', key: 'position'},
|
{title: '位置', key: 'position'},
|
||||||
{title: '医院等级', key: 'level'},
|
{title: '医院等级', key: 'level'},
|
||||||
]);
|
]);
|
||||||
|
} else if (value.hiddenPoint === InfrastructurePointType.DANGEROUS_SOURCE) {
|
||||||
|
// 危险源:显示危险源等级和安全生产标准化等级
|
||||||
|
setTableColumns([
|
||||||
|
{title: '名称', key: 'disasterName'},
|
||||||
|
{title: '位置', key: 'position'},
|
||||||
|
{title: '危险源等级', key: 'level'},
|
||||||
|
{title: '安全生产标准化等级', key: 'safeProductLevel'},
|
||||||
|
]);
|
||||||
|
} else if (value.hiddenPoint === InfrastructurePointType.REFUGEE_SHELTER) {
|
||||||
|
// 避难所:显示避难所类型和避难所性质
|
||||||
|
setTableColumns([
|
||||||
|
{title: '名称', key: 'disasterName'},
|
||||||
|
{title: '位置', key: 'position'},
|
||||||
|
{title: '避难所类型', key: 'type'},
|
||||||
|
{title: '避难所性质', key: 'constructionCategory'},
|
||||||
|
]);
|
||||||
|
} else if (value.hiddenPoint === InfrastructurePointType.FIRE_STATION) {
|
||||||
|
// 消防站:显示队伍类型和消防站类型
|
||||||
|
setTableColumns([
|
||||||
|
{title: '名称', key: 'disasterName'},
|
||||||
|
{title: '位置', key: 'position'},
|
||||||
|
{title: '队伍类型', key: 'teamType'},
|
||||||
|
{title: '消防站类型', key: 'fireType'},
|
||||||
|
]);
|
||||||
|
} else if (value.hiddenPoint === InfrastructurePointType.STORE_POINTS) {
|
||||||
|
// 储备点:显示分级和所属部门
|
||||||
|
setTableColumns([
|
||||||
|
{title: '名称', key: 'disasterName'},
|
||||||
|
{title: '位置', key: 'position'},
|
||||||
|
{title: '分级', key: 'level'},
|
||||||
|
{title: '所属部门', key: 'department'},
|
||||||
|
]);
|
||||||
|
} else if (value.hiddenPoint === InfrastructurePointType.SCHOOL) {
|
||||||
|
// 学校:显示学校类型和所属部门
|
||||||
|
setTableColumns([
|
||||||
|
{title: '名称', key: 'disasterName'},
|
||||||
|
{title: '位置', key: 'position'},
|
||||||
|
{title: '学校类型', key: 'schoolType'},
|
||||||
|
{title: '所属部门', key: 'schoolCreater'},
|
||||||
|
]);
|
||||||
|
} else if (value.hiddenPoint === InfrastructurePointType.BRIDGE) {
|
||||||
|
// 桥梁:显示类型和建成时间
|
||||||
|
setTableColumns([
|
||||||
|
{title: '名称', key: 'disasterName'},
|
||||||
|
{title: '位置', key: 'position'},
|
||||||
|
{title: '类型', key: 'bridgeType'},
|
||||||
|
{title: '建成时间', key: 'buildTime'},
|
||||||
|
]);
|
||||||
|
} else if (value.hiddenPoint === InfrastructurePointType.RESERVOIR) {
|
||||||
|
// 水库:显示安全状态和净防洪库容
|
||||||
|
setTableColumns([
|
||||||
|
{title: '名称', key: 'disasterName'},
|
||||||
|
{title: '位置', key: 'position'},
|
||||||
|
{title: '安全状态', key: 'safetyStatus'},
|
||||||
|
{title: '净防洪库容(万m³)', key: 'netFloodCapacity'},
|
||||||
|
]);
|
||||||
|
} else if (value.hiddenPoint === InfrastructurePointType.SUBWAY) {
|
||||||
|
// 地铁站:显示地铁线路和积水深度
|
||||||
|
setTableColumns([
|
||||||
|
{title: '名称', key: 'disasterName'},
|
||||||
|
{title: '位置', key: 'position'},
|
||||||
|
{title: '地铁线路', key: 'line'},
|
||||||
|
{title: '积水深度', key: 'depthOfAccumulatedWater'},
|
||||||
|
]);
|
||||||
} else {
|
} else {
|
||||||
// 隐患点:显示规模等级和险情等级
|
// 隐患点:显示规模等级和险情等级
|
||||||
setTableColumns([
|
setTableColumns([
|
||||||
@@ -202,11 +282,20 @@
|
|||||||
) {
|
) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
// 医院过滤
|
// 基础设施点过滤
|
||||||
if (
|
const infrastructureMap: Record<string, string> = {
|
||||||
hiddenPointType === InfrastructurePointType.HOSPITAL &&
|
[InfrastructurePointType.HOSPITAL]: 'hospital',
|
||||||
point.category === 'hospital'
|
[InfrastructurePointType.DANGEROUS_SOURCE]: 'danger',
|
||||||
) {
|
[InfrastructurePointType.REFUGEE_SHELTER]: 'shelter',
|
||||||
|
[InfrastructurePointType.FIRE_STATION]: 'fire',
|
||||||
|
[InfrastructurePointType.STORE_POINTS]: 'store',
|
||||||
|
[InfrastructurePointType.SCHOOL]: 'school',
|
||||||
|
[InfrastructurePointType.BRIDGE]: 'bridge',
|
||||||
|
[InfrastructurePointType.RESERVOIR]: 'reservoir',
|
||||||
|
[InfrastructurePointType.SUBWAY]: 'subway',
|
||||||
|
};
|
||||||
|
const infraCategory = infrastructureMap[hiddenPointType as InfrastructurePointType];
|
||||||
|
if (infraCategory && point.category === infraCategory) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
@@ -248,6 +337,150 @@
|
|||||||
lon: point.lon,
|
lon: point.lon,
|
||||||
lat: point.lat,
|
lat: point.lat,
|
||||||
} as XianHospitals;
|
} as XianHospitals;
|
||||||
|
} else if (point.category === 'danger') {
|
||||||
|
// 危险源数据
|
||||||
|
return {
|
||||||
|
id:
|
||||||
|
typeof point.id === 'number'
|
||||||
|
? point.id
|
||||||
|
: parseInt(String(point.id), 10),
|
||||||
|
name: point.value,
|
||||||
|
disasterName: point.value,
|
||||||
|
position:
|
||||||
|
point.lon !== undefined && point.lat !== undefined
|
||||||
|
? `${point.lon.toFixed(4)}, ${point.lat.toFixed(4)}`
|
||||||
|
: '未知位置',
|
||||||
|
level: String(point.level || '未知'),
|
||||||
|
safeProductLevel: String(point.safe_product_level || '未知'),
|
||||||
|
lon: point.lon,
|
||||||
|
lat: point.lat,
|
||||||
|
} as XianDangerousSource;
|
||||||
|
} else if (point.category === 'shelter') {
|
||||||
|
// 避难所数据
|
||||||
|
return {
|
||||||
|
id:
|
||||||
|
typeof point.id === 'number'
|
||||||
|
? point.id
|
||||||
|
: parseInt(String(point.id), 10),
|
||||||
|
name: point.value,
|
||||||
|
disasterName: point.value,
|
||||||
|
position:
|
||||||
|
point.lon !== undefined && point.lat !== undefined
|
||||||
|
? `${point.lon.toFixed(4)}, ${point.lat.toFixed(4)}`
|
||||||
|
: '未知位置',
|
||||||
|
type: String(point.type || '未知'),
|
||||||
|
constructionCategory: String(point.construction_category || '未知'),
|
||||||
|
lon: point.lon,
|
||||||
|
lat: point.lat,
|
||||||
|
} as XianEmergencyShelter;
|
||||||
|
} else if (point.category === 'fire') {
|
||||||
|
// 消防站数据
|
||||||
|
return {
|
||||||
|
id:
|
||||||
|
typeof point.id === 'number'
|
||||||
|
? point.id
|
||||||
|
: parseInt(String(point.id), 10),
|
||||||
|
name: point.value,
|
||||||
|
disasterName: point.value,
|
||||||
|
position:
|
||||||
|
point.lon !== undefined && point.lat !== undefined
|
||||||
|
? `${point.lon.toFixed(4)}, ${point.lat.toFixed(4)}`
|
||||||
|
: '未知位置',
|
||||||
|
teamType: String(point.team_type || '未知'),
|
||||||
|
fireType: String(point.fire_type || '未知'),
|
||||||
|
lon: point.lon,
|
||||||
|
lat: point.lat,
|
||||||
|
} as XianFirefighter;
|
||||||
|
} else if (point.category === 'store') {
|
||||||
|
// 储备点数据
|
||||||
|
return {
|
||||||
|
id:
|
||||||
|
typeof point.id === 'number'
|
||||||
|
? point.id
|
||||||
|
: parseInt(String(point.id), 10),
|
||||||
|
name: point.value,
|
||||||
|
disasterName: point.value,
|
||||||
|
position:
|
||||||
|
point.lon !== undefined && point.lat !== undefined
|
||||||
|
? `${point.lon.toFixed(4)}, ${point.lat.toFixed(4)}`
|
||||||
|
: '未知位置',
|
||||||
|
level: String(point.level || '未知'),
|
||||||
|
department: String(point.department || '未知'),
|
||||||
|
lon: point.lon,
|
||||||
|
lat: point.lat,
|
||||||
|
} as XianStorePoints;
|
||||||
|
} else if (point.category === 'school') {
|
||||||
|
// 学校数据
|
||||||
|
return {
|
||||||
|
id:
|
||||||
|
typeof point.id === 'number'
|
||||||
|
? point.id
|
||||||
|
: parseInt(String(point.id), 10),
|
||||||
|
name: point.value,
|
||||||
|
disasterName: point.value,
|
||||||
|
position:
|
||||||
|
point.lon !== undefined && point.lat !== undefined
|
||||||
|
? `${point.lon.toFixed(4)}, ${point.lat.toFixed(4)}`
|
||||||
|
: '未知位置',
|
||||||
|
schoolType: String(point.school_type || '未知'),
|
||||||
|
schoolCreater: String(point.school_creater || '未知'),
|
||||||
|
lon: point.lon,
|
||||||
|
lat: point.lat,
|
||||||
|
} as XianSchool;
|
||||||
|
} else if (point.category === 'bridge') {
|
||||||
|
// 桥梁数据
|
||||||
|
return {
|
||||||
|
id:
|
||||||
|
typeof point.id === 'number'
|
||||||
|
? point.id
|
||||||
|
: parseInt(String(point.id), 10),
|
||||||
|
name: point.value,
|
||||||
|
disasterName: point.value,
|
||||||
|
position:
|
||||||
|
point.lon !== undefined && point.lat !== undefined
|
||||||
|
? `${point.lon.toFixed(4)}, ${point.lat.toFixed(4)}`
|
||||||
|
: '未知位置',
|
||||||
|
bridgeType: String(point.bridge_type || '未知'),
|
||||||
|
buildTime: String(point.build_time || '未知'),
|
||||||
|
lon: point.lon,
|
||||||
|
lat: point.lat,
|
||||||
|
} as XianBridge;
|
||||||
|
} else if (point.category === 'reservoir') {
|
||||||
|
// 水库数据
|
||||||
|
return {
|
||||||
|
id:
|
||||||
|
typeof point.id === 'number'
|
||||||
|
? point.id
|
||||||
|
: parseInt(String(point.id), 10),
|
||||||
|
name: point.value,
|
||||||
|
disasterName: point.value,
|
||||||
|
position:
|
||||||
|
point.lon !== undefined && point.lat !== undefined
|
||||||
|
? `${point.lon.toFixed(4)}, ${point.lat.toFixed(4)}`
|
||||||
|
: '未知位置',
|
||||||
|
safetyStatus: String(point.safety_status || '未知'),
|
||||||
|
netFloodCapacity: String(point.net_flood_capacity || '未知'),
|
||||||
|
lon: point.lon,
|
||||||
|
lat: point.lat,
|
||||||
|
} as XianReservoirList;
|
||||||
|
} else if (point.category === 'subway') {
|
||||||
|
// 地铁站数据
|
||||||
|
return {
|
||||||
|
id:
|
||||||
|
typeof point.id === 'number'
|
||||||
|
? point.id
|
||||||
|
: parseInt(String(point.id), 10),
|
||||||
|
name: point.value,
|
||||||
|
disasterName: point.value,
|
||||||
|
position:
|
||||||
|
point.lon !== undefined && point.lat !== undefined
|
||||||
|
? `${point.lon.toFixed(4)}, ${point.lat.toFixed(4)}`
|
||||||
|
: '未知位置',
|
||||||
|
line: String(point.line || '未知'),
|
||||||
|
depthOfAccumulatedWater: String(point.depth_of_accumulated_water || '未知'),
|
||||||
|
lon: point.lon,
|
||||||
|
lat: point.lat,
|
||||||
|
} as XianSubwayStations;
|
||||||
} else {
|
} else {
|
||||||
// 隐患点数据
|
// 隐患点数据
|
||||||
return {
|
return {
|
||||||
|
|||||||
Reference in New Issue
Block a user