import { ref, reactive, defineAsyncComponent } from 'vue'; import echarts from '/@/utils/lib/echarts'; import { useGlobSetting } from '/@/hooks/setting'; export const navList = ref([ { title: '监控界面', pathName: 'nitrogen_page', isHover: false, }, { title: '历史监测记录', pathName: 'yfj_history', isHover: false, }, { title: '操作历史记录', pathName: 'yfj_handler_history', isHover: false, }, { title: '故障诊断历史记录', pathName: 'yfj_faultRecord', isHover: false, }, ]); export const groupParameterData = [ { FluxTotal1: '累计流量(m³)', InputFlux: '瞬时流量(m³/h)', }, { PreMembraneTemperature: '膜前温度(­°C)', NitrogenPurity: '氮气纯度(%)', }, ]; export const deviceParameterData = [ { AirCompressor_ExhaustPre: '排气压力(kPa)', AirCompressor_ExhaustTemp: '排气温度(­°C)', }, { AirCompressor_RunTime: '运行时间(h)', AirCompressor_LoadTime: '加载时间(h)', }, ]; export const downWindData = [ { title: `下风侧氧气`, code: `o2Val`, unit: '%', child: [], }, { title: `下风侧温度`, code: `temperature`, unit: '℃', child: [], }, { title: `下风侧烟雾`, code: `fumes_str`, unit: '', // 不用转为数字 raw: true, child: [], }, ]; export const zhudanOption = reactive({ tooltip: { trigger: 'axis', axisPointer: { lineStyle: { color: '#fff' } } }, legend: { top: '0', icon: 'rect', data: ['瞬时流量'], right: '10px', textStyle: { fontSize: 12, color: '#fff' }, }, grid: { x: 45, y: 60, x2: 45, y2: 60 }, xAxis: { type: 'category', boundaryGap: false, axisLine: { lineStyle: { color: '#57617B' } }, axisLabel: { color: '#ffffffcc', formatter: function (params) { const newParamsName = ref(''); // 最终拼接成的字符串 const paramsNameNumber = ref(params.length); // 实际标签的个数 const provideNumber = ref(10); // 每行能显示的字的个数 const rowNumber = Math.ceil(paramsNameNumber.value / provideNumber.value); // 换行的话,需要显示几行,向上取整 /** * 判断标签的个数是否大于规定的个数, 如果大于,则进行换行处理 如果不大于,即等于或小于,就返回原标签 */ // 条件等同于rowNumber>1 if (paramsNameNumber.value > provideNumber.value) { /** 循环每一行,p表示行 */ for (let p = 0; p < rowNumber; p++) { let tempStr = ''; // 表示每一次截取的字符串 const start = p * provideNumber.value; // 开始截取的位置 const end = start + provideNumber.value; // 结束截取的位置 // 此处特殊处理最后一行的索引值 if (p == rowNumber - 1) { // 最后一次不换行 tempStr = params.substring(start, paramsNameNumber.value); } else { // 每一次拼接字符串并换行 tempStr = params.substring(start, end) + '\n'; } newParamsName.value += tempStr; // 最终拼成的字符串 } } else { // 将旧标签的值赋给新标签 newParamsName.value = params; } //将最终的字符串返回 return newParamsName.value; }, }, splitLine: { show: true, lineStyle: { color: '#57617B22', type: 'dashed' } }, data: [], }, yAxis: [ // { // type: 'value', // name: 'm³/h', // max: 6000, // axisTick: { // show: false, // }, // position: 'left', // axisLine: { lineStyle: { show: true, color: '#57617B' } }, // axisLabel: { margin: 10, fontSize: 12, color: '#ffffffcc' }, // splitLine: { show: true, lineStyle: { color: '#57617B22', type: 'dashed' } }, // }, { type: 'value', name: 'm³/h', max: 2000, axisTick: { show: false, }, position: 'right', axisLine: { lineStyle: { show: true, color: '#57617B' } }, 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, // 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, 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 function getMonitorComponent() { const { sysOrgCode } = useGlobSetting(); // const sysOrgCode = 'sdmtjtbltmk'; let nitrogenHome; switch (sysOrgCode) { case 'sdmtjtdltmk': //dltj sdmtjtdltmk nitrogenHome = defineAsyncComponent(() => import('./components/nitrogenHome_dltj.vue')); return nitrogenHome; case 'sdmtjtltmk': case 'sdmtjtsgtmk': // 石圪台 case 'sdmtjtbetmk': // bet nitrogenHome = defineAsyncComponent(() => import('./components/nitrogenHome_bet.vue')); return nitrogenHome; case 'sdmtjtbdmk': // bd nitrogenHome = defineAsyncComponent(() => import('./components/nitrogenHome_bd.vue')); return nitrogenHome; case 'sdmtjtjjmk': // 锦界 case 'sdmtjtyjlmk': //yjl case 'sdmtjtbltmk': // 补连塔 // debugger; nitrogenHome = defineAsyncComponent(() => import('./components/nitrogenHome_blt.vue')); return nitrogenHome; case 'sdmtjtcctmk': // 寸草塔 nitrogenHome = defineAsyncComponent(() => import('./components/nitrogenHome_blt.vue')); return nitrogenHome; // case 'sdmtjtjjmk': // 锦界 // nitrogenHome = defineAsyncComponent(() => import('./components/nitrogenHome_lt.vue')); // return nitrogenHome; case 'lahgjtlnmy': // 潞宁 nitrogenHome = defineAsyncComponent(() => import('./components/nitrogenHome_ln.vue')); return nitrogenHome; default: // nitrogenHome = defineAsyncComponent(() => import('./components/nitrogenHome_blt.vue')); // nitrogenHome = defineAsyncComponent(() => import('./components/nitrogenHome_bet.vue')); nitrogenHome = defineAsyncComponent(() => import('./components/nitrogenHome_dltj.vue')); return nitrogenHome; } }