import { reactive, ref } from 'vue'; import { BasicColumn } from '/@/components/Table'; import echarts from '/@/utils/lib/echarts'; import * as THREE from 'three'; export const monitorNav = [ { title: '一通三防综合管控', isShow: true, }, { title: '通风监测与管控', isShow: false, }, { title: '防灭火监测与管控', isShow: false, }, { title: '防尘监测与管控', isShow: false, }, { title: '瓦斯防治监测与管控', isShow: false, }, ]; export const echartsOption = reactive({ tooltip: { trigger: 'axis', axisPointer: { lineStyle: { color: '#fff' } } }, legend: { top: '-5', icon: 'rect', data: ['进风', '回风'], right: '10px', textStyle: { fontSize: 12, color: '#fff' }, }, grid: { x: 50, y: 50, x2: 12, y2: 40, bottom: '25', top: '10' }, xAxis: { type: 'category', boundaryGap: false, axisLine: { lineStyle: { color: '#8EAFB9' } }, axisLabel: { color: '#ffffffcc' }, splitLine: { show: true, lineStyle: { color: '#57617B22', type: 'dashed' } }, data: [], }, yAxis: [ { type: 'value', name: 'm³/min', axisTick: { show: false, }, axisLine: { lineStyle: { show: true, color: '#8EAFB9' } }, axisLabel: { margin: 10, fontSize: 12, color: '#ffffffcc' }, splitLine: { show: true, lineStyle: { color: '#57617B22', type: 'dashed' } }, }, ], series: [ { name: '进风', type: 'line', smooth: true, lineStyle: { width: 2 }, yAxisIndex: 0, // markLine: { // data: [{ yAxis: 0, name: '需风量' }], // }, areaStyle: { color: new echarts.graphic.LinearGradient( 0, 0, 0, 1, [ { offset: 0, color: 'rgba(185,150,248,0.3)', }, { offset: 0.8, color: 'rgba(185,150,248,0)', }, ], false ), shadowColor: 'rgba(0, 0, 0, 0.1)', shadowBlur: 10, }, itemStyle: { color: '#B996F8' }, data: [], }, { name: '回风', type: 'line', smooth: true, lineStyle: { width: 2 }, yAxisIndex: 0, // markLine: { // data: [{ yAxis: 0, name: '需风量' }], // }, areaStyle: { color: new echarts.graphic.LinearGradient( 0, 0, 0, 1, [ { offset: 0, color: 'rgba(3, 194, 236, 0.3)', }, { offset: 0.8, color: 'rgba(3, 194, 236, 0)', }, ], false ), shadowColor: 'rgba(0, 0, 0, 0.1)', shadowBlur: 10, }, itemStyle: { color: '#03C2EC' }, data: [], }, ], }); export const ventParam = [ { title: '允许超出风量(m³/min)', value: '', type: 'input', }, { title: '瓦斯浓度限值(%)', value: '', type: 'input', }, { title: '瓦斯持续超限时间(s)', value: '', type: 'input', }, { title: '风量调控策略', value: '1', type: 'radio', }, ]; export const warningConfig = reactive({ header: ['设备名称', '预警信息', '时间'], data: [ ['火焰6', '严重报警', '03-05'], ['测点43', '一般预警', '03-05'], ['CO23', '一般预警', '03-05'], ['测点6', '超高预警', '03-05'], ['测点65', '超高预警', '03-05'], ['温度4', '一般预警', '03-05'], ['测点61', '一般预警', '03-05'], ['测点87', '一般信息', '03-05'], ], index: false, headerBGC: '#3d9dd45d', oddRowBGC: '#009acd10', evenRowBGC: '#009acd05', align: ['center', 'center', 'center'], }); export const locationConfig = reactive({ header: ['人名', '所在位置', '距离'], data: [], index: false, columnWidth: [100, 200, 80], headerBGC: '#3d9dd45d', oddRowBGC: '#009acd10', evenRowBGC: '#009acd05', align: ['center', 'center', 'center'], }); export const sensorColumns: BasicColumn[] = [ { title: '名称', dataIndex: 'strname', width: 100, align: 'center', }, { title: '实时值', dataIndex: 'smokeval', width: 80, align: 'center', }, { title: '报警', dataIndex: 'warnFlag', width: 100, align: 'center', }, ]; export const gateColumns: BasicColumn[] = [ { title: '名称', dataIndex: 'strname', width: 100, align: 'center', }, { title: '前门状态', dataIndex: 'frontGateOpen', width: 80, align: 'center', }, { title: '后门状态', dataIndex: 'rearGateOpen', width: 80, align: 'center', }, { title: '操作', dataIndex: 'action', width: 80, align: 'center', }, ]; export const windowColumns: BasicColumn[] = [ { title: '名称', dataIndex: 'strname', width: 100, align: 'center', }, { title: '过风量', dataIndex: 'forntm3', width: 80, align: 'center', }, { title: '操作', dataIndex: 'action', width: 80, align: 'center', }, ]; export const windColumns: BasicColumn[] = [ { title: '名称', dataIndex: 'strname', width: 100, align: 'center', }, { title: '风量', dataIndex: 'm3', width: 80, align: 'center', }, { title: '操作', dataIndex: 'action', width: 80, align: 'center', }, ]; export const dustColumns: BasicColumn[] = [ { title: '名称', dataIndex: 'strname', width: 100, align: 'center', }, { title: '链接状态', dataIndex: 'netStatus', width: 80, align: 'center', }, { title: '操作', dataIndex: 'action', width: 100, align: 'center', }, ]; export const beamTubeColumns = [ { gasval: '甲烷(%)', ch2val: '乙烯(ppm)', }, { o2val: '氧气(%)', chval: '乙炔(ppm)', }, { coval: '一氧化碳(ppm)', co2val: '二氧化碳(%)', }, ]; export const groutColumns = [ { flowRate: '流量(m³/min)', pressure: '压力(Pa)', }, ]; export const nitrogenColumns = [ { cumulativeFlow: '流量(m³/min)', nitrogenPressure: '压力(Pa)', }, ]; export const sprayColumns: BasicColumn[] = [ { title: '名称', dataIndex: 'strname', width: 100, align: 'center', }, { title: '连接状态', dataIndex: 'netStatus', width: 80, align: 'center', }, { title: '启停', dataIndex: 'action', width: 80, align: 'center', }, ]; export const disasterParam = ref([ { title: '触发灾变传感器', value: '1', type: 'select', options: [ { label: 'CO与烟雾', value: '1', }, { label: 'CO', value: '2', }, { label: '烟雾', value: '3', }, ], }, { title: 'CO浓度限值(ppm)', value: '', type: 'input', }, { title: 'CO报警持续时间(s)', value: '', type: 'input', }, { title: '烟雾报警持续时间(s)', value: '', type: 'input', }, ]); export const compressorMonitor = [ { title: '总吸风量', code: 'windQuantity2', unit: 'm³/min', }, { title: '总供风量', code: 'windQuantity1', unit: 'm³/min', }, { title: '局扇频率', code: 'fHz', unit: 'Hz', }, { title: '进风风窗当前面积', code: 'jinArea', unit: '㎡', }, { title: '回风风窗当前面积', code: 'huiArea', unit: '㎡', }, ]; export const compressorParam = [ { title: 'O2浓度限值', value: '', type: 'input', }, { title: 'CO浓度限值', value: '', type: 'input', }, ]; export const compressorDeviceParam = [ { title: '局扇频率调节(Hz)', value: '', type: 'input', }, { title: '进风风窗当前面积(㎡)', value: '', type: 'input', }, { title: '回风风窗当前面积(㎡)', value: '', type: 'input', }, ]; export const coalMachineDustParam = [ { title: '内喷雾压力', value: '', unit: 'Pa', }, { title: '内喷雾流量', value: '', unit: 'm³/min', }, { title: '外喷雾压力', value: '', unit: 'Pa', }, { title: '外喷雾流量', value: '', unit: 'm³/min', }, ]; export const beltMachineDustParam = [ { title: '全尘', value: '', unit: 'mg/m³', }, { title: '呼尘', value: '', unit: 'mg/m³', }, { title: '内喷雾压力', value: '', unit: 'Pa', }, { title: '内喷雾流量', value: '', unit: 'm³/min', }, { title: '外喷雾压力', value: '', unit: 'Pa', }, { title: '外喷雾流量', value: '', type: 'input', unit: 'm³/min', }, ]; export const dustConfig = reactive({ header: ['编号', '位置', '触发', '故障诊断'], data: [ ['001', '0m', '是', '正常'], ['002', '2m', '是', '正常'], ['003', '4m', '是', '正常'], ['004', '6m', '是', '正常'], ['005', '8m', '是', '正常'], ['006', '10m', '是', '正常'], ['007', '12m', '是', '正常'], ], index: false, headerBGC: '#3d9dd45d', oddRowBGC: '#009acd10', evenRowBGC: '#009acd05', align: ['center', 'center', 'center', 'center'], }); export const gasMonitor = [ { title: '甲烷浓度T0 (%)', code: 'T0', }, { title: '甲烷浓度T1 (%)', code: 'T1', }, { title: '甲烷浓度T2 (%)', code: 'T2', }, { title: '二氧化碳浓度 (%)', code: 'CO2', }, { title: '瓦斯抽采浓度 (%)', code: 'gasC', }, { title: '瓦斯抽采混量 (m³/min)', code: 'gasMixMass', }, { title: '瓦斯抽采纯量 (m³/min)', code: 'gasMass', }, { title: '残余瓦斯含量 (m³/t)', code: 'gasMass', }, { title: '累计抽采量 (m³)', code: 'gasTotalMass', }, { title: '风压 (kPa)', code: 'windPressure', }, ]; export const gasParamData = [ { title: '走向长度 (m)', code: 'lenH', }, { title: '倾向长度 (m)', code: 'lenDip', }, { title: '煤层厚度 (m)', code: 'thickness', }, { title: '煤层倾角 (°)', code: 'angleDip', }, { title: '吸附常数a (cm³/gdaf)', code: 'adsorbA', }, { title: '吸附常数b (MPa-l)', code: 'adsorbB', }, { title: '水分Mad (%)', code: 'waterMad', }, { title: '灰分Ad (%)', code: 'dustAd', }, { title: '挥发分Vdaf (%)', code: 'volatilizeAd', }, { title: '孔隙率 (m³)', code: 'poreRate', }, { title: '真相对密度', code: 'trueDensity', }, { title: '视相对密度', code: 'apparentDensity', }, ]; export const currentGasMonitor = [ { title: '原始瓦斯含量 (m³/t)', code: 'gasOriginalMass', }, { title: '残余瓦斯含量 (m³/t)', code: 'gasRemnantMass', }, { title: '残存瓦斯含量 (m³/t)', code: 'gasSurviveMass', }, { title: '瓦斯压力 (MPa)', code: 'gasTotalMass', }, { title: '煤层厚度 (m)', code: 'currentThickness', }, { title: '煤层倾角 (°)', code: 'currentAngleDip', }, { title: '地质构造', code: 'geologicStructure', }, ]; export const gasPumpValve = [ { title: '1#智能阀门', code: 'valve1Val', inputNum: 0, }, { title: '2#智能阀门', code: 'valve2Val', inputNum: 0, }, { title: '3#智能阀门', code: 'valve3Val', inputNum: 0, }, { title: '4#智能阀门', code: 'valve4Val', inputNum: 0, }, { title: '5#智能阀门', code: 'valve5Val', inputNum: 0, }, ]; export const highTensionNum = 3; export const lowTensionNum = 1; export const gasExtractionUnit = [ { title: '负压 (kPa)', code: 'nPressure', }, { title: 'CH4 (%)', code: 'CH4 ', }, { title: '流量 (m³/min)', code: 'flowRate', }, { title: '纯量 (m³/min)', code: 'scalarRate', }, // { // title: '累计抽采量 (m³)', // code: 'unitTotalMass', // }, ]; export const gasPump = [ { title: '1#抽采泵', code: 'extractionPump1', value: '0', ctrCode: 'gasPump1Open', }, { title: '1#抽采泵', code: 'extractionPump1', value: '0', ctrCode: 'gasPump2Open', }, ]; export const gasPumpCtr = reactive({ gasPump1Open: '0', gasPump2Open: '0', }); export const gasUnitDetail = [ { title: '抽采负压(kPa)', code: 'nPressure', // unit: 'kPa', }, { title: '甲烷浓度(%)', code: 'CH4 ', // unit: '%', }, { title: '气体温度(℃)', code: 'temperature', // unit: '℃', }, { title: '瞬时流量(万m³)', code: 'flowRate', // unit: '万m³', }, { title: '实时累计纯量(万m³)', code: 'scalarRate', // unit: '万m³', }, // { // title: '累计抽采量 (m³)', // code: 'unitTotalMass', // }, ]; export function getBezierControlPoint(A = { x: 1, y: 1 }, alpha_degrees = 45, d = 10) { // 转换角度为弧度 const alpha_radians = (alpha_degrees * Math.PI) / 180; // 计算 C 点的坐标 const C = { x: A.x + d * Math.cos(alpha_radians), y: A.y + d * Math.sin(alpha_radians), }; return C; } function getBezierLine() { const curve = new THREE.CubicBezierCurve(new THREE.Vector2(-10, 0), new THREE.Vector2(-5, 15), new THREE.Vector2(20, 15), new THREE.Vector2(10, 0)); const points = curve.getPoints(50); const geometry = new THREE.BufferGeometry().setFromPoints(points); const material = new THREE.LineBasicMaterial({ color: 0xff0000 }); // Create the final object to add to the scene const curveObject = new THREE.Line(geometry, material); return curveObject; } function getShape() {}