2026-04-14 08:08:01 +08:00
|
|
|
import { ref } from 'vue';
|
|
|
|
|
import type { XianHiddenDangerSpots } from '@/types/base/XianHiddenDangerSpots';
|
|
|
|
|
import type { PaginationType } from '@/types/common/PaginationType';
|
|
|
|
|
import { PointType } from '@/types/common/DisasterType';
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 暴雨灾害链影响点列表钩子函数
|
|
|
|
|
* @returns 搜索条件、表格数据、分页配置及相关方法
|
|
|
|
|
*/
|
|
|
|
|
export const useEarthquakeDisasterChain = () => {
|
|
|
|
|
/**
|
|
|
|
|
* 搜索条件
|
|
|
|
|
*/
|
|
|
|
|
const conditions = ref({
|
|
|
|
|
tableData: '',
|
|
|
|
|
hiddenPoint: PointType.LANDSLIDE,
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 下拉选项
|
|
|
|
|
*/
|
|
|
|
|
const selectOptions = [
|
|
|
|
|
{ value: PointType.LANDSLIDE, label: '滑坡' },
|
|
|
|
|
{ value: PointType.DEBRIS_FLOW, label: '泥石流' },
|
|
|
|
|
{ value: PointType.RISK_AREA, label: '风险区' },
|
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 表格数据
|
|
|
|
|
*/
|
|
|
|
|
const tableDatas = ref<XianHiddenDangerSpots[]>([]);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 表头配置
|
|
|
|
|
*/
|
|
|
|
|
const tableColumns = [
|
|
|
|
|
{ title: '名称', key: 'disasterName' },
|
|
|
|
|
{ title: '位置', key: 'position' },
|
|
|
|
|
{ title: '规模等级', key: 'scaleGrade' },
|
|
|
|
|
{ title: '险情等级', key: 'riskGrade' },
|
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 分页配置
|
|
|
|
|
*/
|
|
|
|
|
const paginationConfig = ref<PaginationType>({
|
|
|
|
|
currentPage: 1,
|
|
|
|
|
pageSize: 10,
|
|
|
|
|
total: 10,
|
|
|
|
|
totalPage: 1,
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 修改搜索条件
|
|
|
|
|
* @param value - 新的搜索条件
|
|
|
|
|
*/
|
2026-04-14 16:00:39 +08:00
|
|
|
const changeConditions = (value: {
|
2026-04-14 08:08:01 +08:00
|
|
|
tableData: string;
|
|
|
|
|
hiddenPoint: PointType;
|
2026-04-14 16:00:39 +08:00
|
|
|
}): void => {
|
2026-04-14 08:08:01 +08:00
|
|
|
conditions.value = value;
|
2026-04-14 16:00:39 +08:00
|
|
|
};
|
2026-04-14 08:08:01 +08:00
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 修改页码
|
|
|
|
|
* @param value - 新的页码
|
|
|
|
|
*/
|
2026-04-14 16:00:39 +08:00
|
|
|
const changeCurrentPage = (value: number) => {
|
2026-04-14 08:08:01 +08:00
|
|
|
paginationConfig.value.currentPage = value;
|
2026-04-14 16:00:39 +08:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 左侧按钮信息
|
|
|
|
|
*/
|
|
|
|
|
const leftButtonInfo = [
|
|
|
|
|
{
|
|
|
|
|
name: '周边分析',
|
|
|
|
|
callback: () => {
|
|
|
|
|
console.log('周边分析');
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
name: '关联分析',
|
|
|
|
|
callback: () => {
|
|
|
|
|
console.log('关联分析');
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
name: '次生衍生灾害链分析',
|
|
|
|
|
callback: () => {
|
|
|
|
|
console.log('次生衍生灾害链分析');
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
name: '历史相似性分析',
|
|
|
|
|
callback: () => {
|
|
|
|
|
console.log('历史相似性分析');
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
name: '灾害链模型库测试',
|
|
|
|
|
callback: () => {
|
|
|
|
|
console.log('灾害链模型库测试');
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
name: '承灾体信息提取',
|
|
|
|
|
callback: () => {
|
|
|
|
|
console.log('承灾体信息提取');
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
name: '地震滑坡堰塞湖泥石流(7级)',
|
|
|
|
|
callback: () => {
|
|
|
|
|
console.log('地震滑坡堰塞湖泥石流(7级)');
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
name: '地震滑坡堰塞湖泥石流(8级)',
|
|
|
|
|
callback: () => {
|
|
|
|
|
console.log('地震滑坡堰塞湖泥石流(8级)');
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
];
|
2026-04-14 08:08:01 +08:00
|
|
|
|
|
|
|
|
// 把所有需要用到的数据/方法 return 出去
|
|
|
|
|
return {
|
|
|
|
|
conditions,
|
|
|
|
|
selectOptions,
|
|
|
|
|
tableDatas,
|
|
|
|
|
tableColumns,
|
|
|
|
|
paginationConfig,
|
2026-04-14 16:00:39 +08:00
|
|
|
leftButtonInfo,
|
2026-04-14 08:08:01 +08:00
|
|
|
changeConditions,
|
|
|
|
|
changeCurrentPage,
|
|
|
|
|
};
|
|
|
|
|
};
|