2026-04-17 18:16:31 +08:00

108 lines
2.7 KiB
JavaScript

import { ref } from 'vue'
import { request } from '@shared/utils/request'
// 通用调用接口方法
const getOptionsByApi = async ({ url, params }) => {
const res = await request({
url,
method: 'get',
params,
timeout: 60000
})
if (res?.code === '00000') return res.data
else {
console.error('接口调用失败', res)
return []
}
}
// 公用下拉选项
export function useOptions() {
const options = ref({})
// 是否 布尔类型
options.value['yesNoBool'] = [
{ label: '是', value: true },
{ label: '否', value: false }
]
// 事件类型
options.value['eventType'] = [
{ label: '水毁事件', value: '水毁事件' },
{ label: '冰雪事件', value: '冰雪事件' }
]
// 抢险进度
options.value['repairProgress'] = [
{ label: '未抢险', value: '未抢险' },
{ label: '抢险中', value: '抢险中' }
]
// 处理措施
options.value['disposalMeasures'] = [
{ label: '全幅封闭', value: '全幅封闭' },
{ label: '半幅封闭', value: '半幅封闭' },
{ label: '正常通行', value: '正常通行' },
{ label: '限制通行', value: '限制通行' }
]
// 冰灾 处理措施
options.value['iceDisposalMeasures'] = [
{ label: '正常通行', value: '正常通行' },
{ label: '封闭交通', value: '封闭交通' },
{ label: '限速通行', value: '限速通行' },
]
// 路线类型
options.value['roadType'] = [
{ label: '国道', value: 'G' },
{ label: '省道', value: 'S' },
{ label: '县道', value: 'X' },
{ label: '乡道', value: 'Y' },
{ label: '村道', value: 'C' }
]
// 路况类型 水灾 冰灾
// 雪灾
options.value['iceRoadConditionType'] = [
{ label: '积雪', value: '积雪' },
{ label: '积冰', value: '积冰' },
]
// 水灾
options.value['waterRoadConditionType'] = [
{ label: '山体滑坡', value: '山体滑坡' },
{ label: '泥石流', value: '泥石流' },
{ label: '边坡坍塌(上、下)', value: '边坡坍塌(上、下)' },
{ label: '路基沉降(垮塌)', value: '路基沉降(垮塌)' },
{ label: '行道树倒塌', value: '行道树倒塌' },
{ label: '积水', value: '积水' },
{ label: '其他', value: '其他' }
]
// 获取区县
const getAreaOptions = async (params) => {
let list = await getOptionsByApi({
url: '/snow-ops-platform/infrastructure-asset/counties',
params: {
xzdm: params?.xzdm // 区县代码 可选
}
})
list = list.filter((item) => {
return !!item.qxmc
})
options.value['area'] = list.map((item) => {
return {
label: item.qxmc,
value: item.xzdm
}
})
}
return {
options,
getAreaOptions,
}
}