浏览代码

注气驱替提测bug修改-提交

lxh 1 月之前
父节点
当前提交
29ca129b70

+ 10 - 13
src/views/vent/home/configurable/components/gasInject/DetailInfo.vue

@@ -2,25 +2,22 @@
   <a-modal v-model:visible="visibleDetail" width="1350px" :footer="null" :title="modalTitle" centered destroyOnClose
     @cancel="handleCancel">
     <!-- 注气参数/注气数据监测 -->
-    <template v-if="deviceType == 'cc_gas_nd' || deviceType == 'gas_zq_sj'">
+    <template v-if="deviceType == 'Zq_zqcs' || deviceType == 'gas_zq_sj'">
       <curveEchartDetail :sysType="'Zq'" :isShowExport="false" :tableColumn="tableColumnZqcs" :deviceID="data.deviceId"
         :strtype="data.strtype" :isShowExports="true"></curveEchartDetail>
     </template>
     <!-- 抽采参数 -->
-    <template v-if="deviceType == 'cc_gas_ll'">
-      <curveEchartDetail :sysType="'Cc'" :isShowExport="false" :tableColumn="tableColumnCcs" :strtype="data.pumpStrtype"
+    <template v-if="deviceType == 'Zq_cccs'">
+      <curveEchartDetail :sysType="'Cc'" :isShowExport="false" :tableColumn="tableColumnCcs" :deviceID="data.pumpDeviceId" :strtype="data.pumpStrtype"
         :isShowExports="true"></curveEchartDetail>
     </template>
     <!-- 注气驱替促抽效果评价   -->
     <template v-if="deviceType == 'gas_cc_detail'">
-      <TableAndLine activeFlag="xgpj"></TableAndLine>
+      <TableAndLine :showFormDateTime="false" activeFlag="xgpj" :strtype="data.pumpStrtype" :deviceID="data.pumpDeviceId"></TableAndLine>
     </template>
-    <!-- 抽采数据  -->
+    <!-- 支管抽采数据  -->
     <template v-if="deviceType == 'gas_cc_data'">
-       <TableAndLine activeFlag="ccsj"></TableAndLine>
-    </template>
-    <template v-if="deviceType == 'gas_zq-yl'">
-      <curveEchartDetail :sysType="'Zq'" :isShowExport="false"></curveEchartDetail>
+      <TableAndLine :showFormDateTime="true" activeFlag="ccsj" :strtype="data.pumpStrtype" :deviceID="data.pumpDeviceId"></TableAndLine>
     </template>
     <!-- 注气数据监测 -->
     <!-- <template v-if="deviceType == 'gas_zq_sj'">
@@ -30,7 +27,7 @@
     </template> -->
     <!-- 环境监测 -->
     <template v-if="deviceType == 'gas_zq_hj'">
-      <environmentDetailTable :isShowExport="true" :deviceData="data"></environmentDetailTable>
+      <environmentDetailTable :deviceData="data"></environmentDetailTable>
     </template>
     <!-- 装备运行工况监测 -->
     <template v-if="deviceType == 'gas_zq_paramline'">
@@ -91,10 +88,10 @@ let $emit = defineEmits(['closeModal'])
 
 //弹窗标题
 let modalTitle = computed(() => {
-  if (props.deviceType == 'cc_gas_nd' || props.deviceType == 'cc_gas_ll') {
-    return '抽采参数时程曲线'
-  } else if (props.deviceType == 'gas_zq-yl') {
+  if (props.deviceType == 'Zq_zqcs') {
     return '注气参数时程曲线'
+  } else if (props.deviceType == 'Zq_cccs') {
+    return '抽采参数时程曲线'
   } else if (props.deviceType == 'gas_zq_sj') {
     return '注气数据监测'
   } else if (props.deviceType == 'gas_zq_hj') {

+ 3 - 7
src/views/vent/home/configurable/components/gasInject/LineAndBarDetail.vue

@@ -5,9 +5,8 @@
         <div class="nav-search">
           <!-- 时间查询选项 -->
           <a-radio-group v-model:value="timerTabs" name="radioGroup" @change="changeRadio">
-            <a-radio value="9">按天</a-radio>
             <a-radio value="8">按小时</a-radio>
-            <a-radio value="6">按分钟</a-radio>
+            <a-radio value="5">按分钟</a-radio>
           </a-radio-group>
           <!-- 时间查询条件 -->
            <a-range-picker style="width:340px" :value="[searchData.startTime, searchData.endTime]"
@@ -107,13 +106,10 @@ function handleBack() {
 //查询
 function getSearch() {
   switch (timerTabs.value) {
-    case 'day':
+    case '8':
       getHistoryData(timerTabs.value)
       break;
-    case 'hours':
-      getHistoryData(timerTabs.value)
-      break;
-    case 'minutes':
+    case '6':
       getHistoryData(timerTabs.value)
       break;
   }

+ 88 - 28
src/views/vent/home/configurable/components/gasInject/TableAndLine.vue

@@ -4,22 +4,28 @@
       <div class="curve-nav">
         <div class="nav-search">
           <!-- 时间查询选项 -->
-          <a-radio-group v-model:value="timerTabs" name="radioGroup" @change="changeRadio">
-            <a-radio value="9">按天</a-radio>
+          <a-radio-group v-if="showFormDateTime" v-model:value="timerTabs" name="radioGroup" @change="changeRadio">
             <a-radio value="8">按小时</a-radio>
-            <a-radio value="6">按分钟</a-radio>
+            <a-radio value="5">按分钟</a-radio>
           </a-radio-group>
           <!-- 时间查询条件 -->
+          <span>时间:</span>
           <a-range-picker style="width:340px" :value="[searchData.startTime, searchData.endTime]"
             :show-time="{ format: 'HH:mm:ss' }" valueFormat="YYYY-MM-DD HH:mm:ss" :placeholder="['开始时间', '结束时间']"
             @change="onRangeChange" />
           <a-button type="primary" preIcon="ant-design:search-outlined" @click="getSearch"
             style="margin-left: 10px;">查询</a-button>
         </div>
+        <div class="nav-btn" @click="handleHisExport">
+          <div class="nav-text">
+            <SvgIcon class="icon-style" size="18" name="gas-export" />
+            <span>数据导出</span>
+          </div>
+        </div>
       </div>
 
       <a-tabs v-model:activeKey="activeKey" @change="tabChange">
-        <a-tab-pane v-if="activeFlag == 'ccsj'" key="1" tab="瞬时混量">
+        <a-tab-pane v-if="activeFlag == 'ccsj'" key="1" tab="瞬时抽采数据">
           <a-table size="small" :dataSource="dataSource" :columns="tableColumn" :scroll="{ y: 200 }"
             :pagination="false">
             <template #action="{ record }">
@@ -27,7 +33,7 @@
             </template>
           </a-table>
         </a-tab-pane>
-        <a-tab-pane v-if="activeFlag == 'ccsj'" key="2" tab="累计混量">
+        <a-tab-pane v-if="activeFlag == 'ccsj'" key="2" tab="累计抽采数据">
           <a-table size="small" :dataSource="dataSource" :columns="tableColumn" :scroll="{ y: 200 }"
             :pagination="false">
             <template #action="{ record }">
@@ -77,17 +83,27 @@
 import { computed, onMounted, reactive, ref } from 'vue'
 import echartLineDate from './echartLineDate.vue'
 import { tableColumnSshl, tableColumnLjhl, tableColumnCcl, tableColumnWshl, tableColumnJdsl } from './gasInject.data'
-import { ccHlEchartOption,ccLEchartOption,wshLEchartOption,jdsLEchartOption } from './gasInject.data'
-import { listdays } from './gasInject.api'
+import { ccHlEchartOption, ccLEchartOption, wshLEchartOption, jdsLEchartOption } from './gasInject.data'
+import { historydata, listdays } from './gasInject.api'
 import dayjs from 'dayjs'
+import { message } from 'ant-design-vue'
 
 let props = defineProps({
   activeFlag: {
     type: String
+  },
+  strtype: {
+    type: String
+  },
+  deviceID: {
+    type: String
+  },
+  showFormDateTime: {
+    type: Boolean
   }
 })
 
-let timerTabs = ref('9')
+let timerTabs = props.showFormDateTime ? ref('8') : ref('9')
 let activeKey = props.activeFlag == 'ccsj' ? ref('1') : ref('3')
 let searchData = reactive({
   startTime: dayjs().subtract(1, 'day').format('YYYY-MM-DD HH:mm:ss'),
@@ -97,14 +113,14 @@ let dataSource = ref<any[]>([])
 let tableColumn = props.activeFlag == 'ccsj' ? ref(tableColumnSshl) : ref(tableColumnCcl)
 let listData = ref<any[]>([])
 
-let EchartOption=computed(()=>{
-  if(props.activeFlag=='ccsj'){
+let EchartOption = computed(() => {
+  if (props.activeFlag == 'ccsj') {
     return ccHlEchartOption
-  }else if(props.activeFlag!='ccsj' && activeKey.value=='3'){
+  } else if (props.activeFlag != 'ccsj' && activeKey.value == '3') {
     return ccLEchartOption
-  }else if(props.activeFlag!='ccsj' && activeKey.value=='4'){
+  } else if (props.activeFlag != 'ccsj' && activeKey.value == '4') {
     return wshLEchartOption
-  }else if(props.activeFlag!='ccsj' && activeKey.value=='5'){
+  } else if (props.activeFlag != 'ccsj' && activeKey.value == '5') {
     return jdsLEchartOption
   }
 })
@@ -164,41 +180,33 @@ async function getHistoryData(skip) {
     if (activeKey.value == '1') {
       listData.value = count.map((el, index) => {
         return {
-          label: `汇流${index + 1}`,
+          label: `汇流单元${index + 1}`,
           xData: res.xlist,
           yData: res.datalist.records.filter(fl => fl.gdevicetype == el).map(dl => dl.readData['mixStdInstant']),
           yData1: res.datalist.records.filter(fl => fl.gdevicetype == el).map(dl => dl.readData['gasConcentration']),
-        }
-      })
-    } else if (activeKey.value == '2') {
-      listData.value = count.map((el, index) => {
-        return {
-          label: `汇流管${index + 1}`,
-          xData: res.xlist,
-          yData: res.datalist.records.filter(fl => fl.gdevicetype == el).map(dl => dl.readData['mixStdTotal']),
-          yData1: res.datalist.records.filter(fl => fl.gdevicetype == el).map(dl => dl.readData['gasConcentration']),
+          yData2: res.datalist.records.filter(fl => fl.gdevicetype == el).map(dl => dl.readData['methaneStdInstant']),
         }
       })
     } else if (activeKey.value == '3') {
       listData.value = count.map((el, index) => {
         return {
-          label: `汇流${index + 1}`,
+          label: `汇流单元${index + 1}`,
           xData: res.xlist,
           yData: res.datalist.records.filter(fl => fl.gdevicetype == el).map(dl => dl.readData['ext_rate_percent']),
         }
       })
-    }else if (activeKey.value == '4') {
+    } else if (activeKey.value == '4') {
       listData.value = count.map((el, index) => {
         return {
-          label: `汇流${index + 1}`,
+          label: `汇流单元${index + 1}`,
           xData: res.xlist,
           yData: res.datalist.records.filter(fl => fl.gdevicetype == el).map(dl => dl.readData['residual_gas_content_m3_t']),
         }
       })
-    }else if (activeKey.value == '5') {
+    } else if (activeKey.value == '5') {
       listData.value = count.map((el, index) => {
         return {
-          label: `汇流管${index + 1}`,
+          label: `单元${index + 1}`,
           xData: res.xlist,
           yData: res.datalist.records.filter(fl => fl.gdevicetype == el).map(dl => dl.readData['gas_drop_rate_m3_t_mon']),
         }
@@ -208,6 +216,36 @@ async function getHistoryData(skip) {
   }
 }
 
+//导出历史数据
+async function handleHisExport() {
+  let res = await historydata({ ttime_begin: searchData.startTime, ttime_end: searchData.endTime, skip: '8', gdeviceids: props.deviceID, pageNo: 1, pageSize: 1000, strtype: props.strtype })
+  console.log(res, '导出---')
+  let fileName = props.activeFlag == 'ccsj' ? '支管抽采数据' : props.activeFlag == 'xgpj' ? '促抽效果评价' : ''
+  let filename = `${fileName}-${new Date().getFullYear()}.${new Date().getMonth() + 1}.${new Date().getDate()}.xlsx`;
+  downFilePublic(res, filename);
+  message.success('导出成功')
+}
+// 下载公用方法
+function downFilePublic(content, fileName) {
+  const blob = new Blob([content], { type: 'application/xlsx;charset=UTF-8' }); // 构造一个blob对象来处理数据
+  // 对于<a>标签,只有 Firefox 和 Chrome(内核) 支持 download 属性
+  // IE10以上支持blob但是依然不支持download
+  if ('download' in document.createElement('a')) {
+    // 支持a标签download的浏览器
+    const link = document.createElement('a'); // 创建a标签
+    link.download = fileName; // a标签添加属性
+    link.style.display = 'none';
+    link.href = URL.createObjectURL(blob);
+    document.body.appendChild(link);
+    link.click(); // 执行下载
+    URL.revokeObjectURL(link.href); // 释放url
+    document.body.removeChild(link); // 释放标签
+  } else {
+    // 其他浏览器
+    navigator.msSaveBlob(blob, fileName);
+  }
+}
+
 onMounted(() => {
   getHistoryData(timerTabs.value)
 })
@@ -237,6 +275,28 @@ onMounted(() => {
   margin-bottom: 10px;
 }
 
+.nav-btn {
+  width: 100px;
+  height: 78%;
+  padding: 2px;
+  border: 1px solid #1081d7;
+  cursor: pointer;
+  color: #fff;
+}
+
+.nav-text {
+  width: 100%;
+  height: 100%;
+  display: flex;
+  justify-content: center;
+  align-items: center;
+  background-color: #1081d7;
+}
+
+.icon-style {
+  margin-right: 5px;
+}
+
 .curve-nav {
   display: flex;
   justify-content: space-between;

+ 6 - 9
src/views/vent/home/configurable/components/gasInject/curveEchartDetail.vue

@@ -5,9 +5,8 @@
         <div class="nav-search">
           <!-- 时间查询选项 -->
           <a-radio-group v-model:value="timerTabs" name="radioGroup" @change="changeRadio">
-            <a-radio value="9">按天</a-radio>
             <a-radio value="8">按小时</a-radio>
-            <a-radio value="6">按分钟</a-radio>
+            <a-radio value="5">按分钟</a-radio>
           </a-radio-group>
           <!-- 时间查询条件 -->
           <a-range-picker style="width:340px" :value="[searchData.startTime, searchData.endTime]"
@@ -130,10 +129,11 @@ async function getHistoryData(skip) {
       console.log(count, 'count')
       listData.value = count.map((el, index) => {
         return {
-          label: `汇流${index + 1}`,
+          label: `汇流单元${index + 1}`,
           xData: res.xlist,
           yData: res.datalist.records.filter(fl => fl.gdevicetype == el).map(dl => dl.readData['mixStdInstant']),
-          yData1: res.datalist.records.filter(fl => fl.gdevicetype == el).map(dl => dl.readData['negativePressure']),
+          yData1: res.datalist.records.filter(fl => fl.gdevicetype == el).map(dl => dl.readData['gasConcentration']),
+           yData2: res.datalist.records.filter(fl => fl.gdevicetype == el).map(dl => dl.readData['methaneStdInstant']),
           ext_rate_percent: res.datalist.records.filter(fl => fl.gdevicetype == el).map(dl => dl.readData['ext_rate_percent']),
           residual_gas_content_m3_t: res.datalist.records.filter(fl => fl.gdevicetype == el).map(dl => dl.readData['residual_gas_content_m3_t']),
           gas_drop_rate_m3_t_mon: res.datalist.records.filter(fl => fl.gdevicetype == el).map(dl => dl.readData['gas_drop_rate_m3_t_mon']),
@@ -148,13 +148,10 @@ async function getHistoryData(skip) {
 //查询
 function getSearch() {
   switch (timerTabs.value) {
-    case 'day':
+    case '8':
       getHistoryData(timerTabs.value)
       break;
-    case 'hours':
-      getHistoryData(timerTabs.value)
-      break;
-    case 'minutes':
+    case '6':
       getHistoryData(timerTabs.value)
       break;
   }

+ 15 - 1
src/views/vent/home/configurable/components/gasInject/echartLineDate.vue

@@ -73,6 +73,19 @@ function getOption() {
       tooltip: props.echartOption.tooltip,
       grid: props.echartOption.grid,
       legend: props.echartOption.legend,
+      dataZoom: [
+        {
+          // 这部分是关键
+          show: true,
+          type: 'inside', // 这里可以选择你需要的类型,例如 'inside'
+          height: 10, // 设置缩放条高度
+          left: 'center',
+          bottom: 25,
+          labelPrecision: 0, // 标签精度,默认为auto
+          showDetail: false, // 是否显示详情
+          showDataShadow: false, // 是否显示数据阴影
+        },
+      ],
       xAxis: [{
         type: 'category',
         boundaryGap: false,
@@ -127,7 +140,8 @@ async function getInitData(skip) {
   ecahrtDatas.injectionPressure = res.datalist.records.map(el => el.readData.injectionPressure) || []
   ecahrtDatas.flowStdInstant = res.datalist.records.map(el => el.readData.flowStdInstant) || []
   ecahrtDatas.mixStdInstant = res.datalist.records.map(el => el.readData.mixStdInstant) || []
-  ecahrtDatas.negativePressure = res.datalist.records.map(el => el.readData.negativePressure) || []
+  ecahrtDatas.gasConcentration = res.datalist.records.map(el => el.readData.gasConcentration) || []
+  ecahrtDatas.methaneStdInstant = res.datalist.records.map(el => el.readData.methaneStdInstant) || []
   getOption()
 }
 

+ 46 - 13
src/views/vent/home/configurable/components/gasInject/echartLineDateGk.vue

@@ -4,9 +4,8 @@
       <div class="nav-search">
         <!-- 时间查询选项 -->
         <a-radio-group v-model:value="timerTabs" name="radioGroup" @change="changeRadio">
-          <a-radio value="9">按天</a-radio>
           <a-radio value="8">按小时</a-radio>
-          <a-radio value="6">按分钟</a-radio>
+          <a-radio value="5">按分钟</a-radio>
         </a-radio-group>
         <!-- 时间查询条件 -->
         <a-range-picker style="width:340px" :value="[searchData.startTime, searchData.endTime]"
@@ -30,8 +29,9 @@
 <script setup lang="ts">
 import { computed, nextTick, ref, watch, onMounted, reactive } from 'vue'
 import * as echarts from 'echarts';
-import { listdays } from './gasInject.api'
+import { listdays,historydata } from './gasInject.api'
 import dayjs from 'dayjs';
+import { message } from 'ant-design-vue';
 
 let props = defineProps({
   //图表配置项
@@ -87,19 +87,15 @@ async function getInit(skip) {
 }
 //查询
 function getSearch() {
-  console.log(timerTabs.value, 'timerTabs.value')
   switch (timerTabs.value) {
-    case 'day':
+    case '8':
       getInit(timerTabs.value)
       break;
-    case 'hours':
-      getInit(timerTabs.value)
-      break;
-    case 'minutes':
+    case '6':
       getInit(timerTabs.value)
       break;
   }
- 
+
 }
 
 function getOption() {
@@ -109,6 +105,19 @@ function getOption() {
       tooltip: props.echartOption.tooltip,
       grid: props.echartOption.grid,
       legend: props.echartOption.legend,
+      dataZoom: [
+        {
+          // 这部分是关键
+          show: true,
+          type: 'inside', // 这里可以选择你需要的类型,例如 'inside'
+          height: 10, // 设置缩放条高度
+          left: 'center',
+          bottom: 25,
+          labelPrecision: 0, // 标签精度,默认为auto
+          showDetail: false, // 是否显示详情
+          showDataShadow: false, // 是否显示数据阴影
+        },
+      ],
       xAxis: [{
         type: 'category',
         boundaryGap: false,
@@ -151,11 +160,35 @@ function getOption() {
   });
 }
 //导出
-function handleHistory() {
-
+async function handleHistory() {
+ let res = await historydata({ ttime_begin: searchData.startTime, ttime_end: searchData.endTime, skip: timerTabs.value, gdeviceids:props.deviceID, pageNo: 1, pageSize: 1000, strtype:props.strtype })
+  console.log(res, '导出---')
+  let filename = `装备运行工况-${new Date().getFullYear()}.${new Date().getMonth() +1}.${new Date().getDate()}.xlsx`;
+  downFilePublic(res, filename);
+  message.success('导出成功')
+}
+// 下载公用方法
+function downFilePublic(content, fileName) {
+  const blob = new Blob([content], { type: 'application/xlsx;charset=UTF-8' }); // 构造一个blob对象来处理数据
+  // 对于<a>标签,只有 Firefox 和 Chrome(内核) 支持 download 属性
+  // IE10以上支持blob但是依然不支持download
+  if ('download' in document.createElement('a')) {
+    // 支持a标签download的浏览器
+    const link = document.createElement('a'); // 创建a标签
+    link.download = fileName; // a标签添加属性
+    link.style.display = 'none';
+    link.href = URL.createObjectURL(blob);
+    document.body.appendChild(link);
+    link.click(); // 执行下载
+    URL.revokeObjectURL(link.href); // 释放url
+    document.body.removeChild(link); // 释放标签
+  } else {
+    // 其他浏览器
+    navigator.msSaveBlob(blob, fileName);
+  }
 }
 
-onMounted( () => {
+onMounted(() => {
   getInit(timerTabs.value)
 })
 

+ 39 - 12
src/views/vent/home/configurable/components/gasInject/environHistoryExport.vue

@@ -13,7 +13,7 @@
           <span> 间隔时间:</span>
           <a-select ref="select" v-model:value="skip" style="width: 240px">
             <a-select-option v-for="(item, index) in timeOption" :key="item.label" :value="item.value">{{ item.label
-            }}</a-select-option>
+              }}</a-select-option>
           </a-select>
         </div>
         <div class="search-item">
@@ -41,9 +41,10 @@
 <script setup lang="ts">
 import { onMounted, reactive, ref } from 'vue'
 import { SvgIcon } from '/@/components/Icon';
-import { listdays } from './gasInject.api'
-import {timeOption} from './gasInject.data'
+import { listdays, historydata } from './gasInject.api'
+import { timeOption } from './gasInject.data'
 import dayjs from 'dayjs';
+import { message } from 'ant-design-vue';
 
 let props = defineProps({
   //是否显示返回按钮
@@ -57,8 +58,8 @@ let props = defineProps({
     type: String
   },
   //设备类型
-  strtype:{
-    type:String
+  strtype: {
+    type: String
   }
 })
 
@@ -84,6 +85,11 @@ let $emit = defineEmits(['handleBack'])
 function handleBack() {
   $emit('handleBack')
 }
+//日期切换
+function onRangeChange(__, time) {
+  searchData.startTime = time[0];
+  searchData.endTime = time[1];
+}
 //查询
 function getSearch() {
   pagination.current = 1
@@ -93,20 +99,41 @@ function getSearch() {
 async function getTbleData() {
   let res = await listdays({ ttime_begin: searchData.startTime, ttime_end: searchData.endTime, skip: skip.value, gdeviceids: props.deviceId, pageNo: pagination.current, pageSize: pagination.pageSize, strtype: props.strtype })
   console.log(res, '环境监测')
-  dataSource.value=res.datalist.records.map(el=>{
+  dataSource.value = res.datalist.records.map(el => {
     return {
       ...el,
       ...el.readData
     }
   }) || []
-  pagination.total=res.datalist.total
+  pagination.total = res.datalist.total
 }
 //导出历史数据
-function handleHisExport() { }
-//日期切换
-function onRangeChange(__, time) {
-  searchData.startTime = time[0];
-  searchData.endTime = time[1];
+async function handleHisExport() {
+  let res = await historydata({ ttime_begin: searchData.startTime, ttime_end: searchData.endTime, skip: skip.value, gdeviceids: props.deviceId, pageNo: pagination.current, pageSize: pagination.pageSize, strtype: props.strtype })
+  let fileName = props.strtype == 'modelsensor_o2' ? '氧气传感器' : props.strtype == 'modelsensor_ch4' ? '甲烷传感器' : props.strtype == 'modelsensor_temperature' ? '温度传感器' : props.strtype == 'modelsensor_co' ? 'CO传感器' : ''
+  let filename = `${fileName}-${new Date().getFullYear()}.${new Date().getMonth() + 1}.${new Date().getDate()}.xlsx`;
+  downFilePublic(res, filename);
+  message.success('导出成功')
+}
+// 下载公用方法
+function downFilePublic(content, fileName) {
+  const blob = new Blob([content], { type: 'application/xlsx;charset=UTF-8' }); // 构造一个blob对象来处理数据
+  // 对于<a>标签,只有 Firefox 和 Chrome(内核) 支持 download 属性
+  // IE10以上支持blob但是依然不支持download
+  if ('download' in document.createElement('a')) {
+    // 支持a标签download的浏览器
+    const link = document.createElement('a'); // 创建a标签
+    link.download = fileName; // a标签添加属性
+    link.style.display = 'none';
+    link.href = URL.createObjectURL(blob);
+    document.body.appendChild(link);
+    link.click(); // 执行下载
+    URL.revokeObjectURL(link.href); // 释放url
+    document.body.removeChild(link); // 释放标签
+  } else {
+    // 其他浏览器
+    navigator.msSaveBlob(blob, fileName);
+  }
 }
 
 onMounted(() => {

+ 18 - 11
src/views/vent/home/configurable/components/gasInject/environmentDetailTable.vue

@@ -2,38 +2,40 @@
   <div class="environment-detail-table">
     <a-tabs v-model:activeKey="activeKey" @change="changeTab">
       <a-tab-pane key="1" tab="氧气传感器">
-        <environHistoryExport :isShowIcon="true" :tableColumn="columnO2" :deviceId="deviceId" :strtype="'modelsensor_o2'"></environHistoryExport>
+        <environHistoryExport :isShowIcon="true" :tableColumn="columnO2" :deviceId="deviceId" :strtype="strtype">
+        </environHistoryExport>
       </a-tab-pane>
       <a-tab-pane key="2" tab="甲烷传感器">
-        <environHistoryExport :isShowIcon="true" :tableColumn="columnCh4" :deviceId="deviceId" :strtype="'modelsensor_ch4'"></environHistoryExport>
+        <environHistoryExport :isShowIcon="true" :tableColumn="columnCh4" :deviceId="deviceId" :strtype="strtype">
+        </environHistoryExport>
       </a-tab-pane>
       <a-tab-pane key="3" tab="温度传感器">
-        <environHistoryExport :isShowIcon="true" :tableColumn="columnTemp" :deviceId="deviceId" :strtype="'modelsensor_temperature'"></environHistoryExport>
+        <environHistoryExport :isShowIcon="true" :tableColumn="columnTemp" :deviceId="deviceId" :strtype="strtype">
+        </environHistoryExport>
       </a-tab-pane>
       <a-tab-pane key="4" tab="CO传感器">
-        <environHistoryExport :isShowIcon="true" :tableColumn="columnCO" :deviceId="deviceId" :strtype="'modelsensor_co'"></environHistoryExport>
+        <environHistoryExport :isShowIcon="true" :tableColumn="columnCO" :deviceId="deviceId" :strtype="strtype">
+        </environHistoryExport>
       </a-tab-pane>
     </a-tabs>
   </div>
 </template>
 
 <script setup lang='ts'>
-import { ref, onMounted,  onBeforeMount } from 'vue'
+import { ref, onMounted, onBeforeMount } from 'vue'
 import environHistoryExport from './environHistoryExport.vue'
-import { columnO2,columnCh4,columnTemp,columnCO } from './gasInject.data'
+import { columnO2, columnCh4, columnTemp, columnCO } from './gasInject.data'
 
 
 let props = defineProps({
   deviceData: {
     type: Object as any
   },
-  //设备类型
-  strtype:{
-    type:String
-  }
 })
+
 let activeKey = ref('1')
 let deviceId = ref('')
+let strtype = ref('')
 
 //tab切换
 function changeTab(val) {
@@ -41,15 +43,19 @@ function changeTab(val) {
   switch (val) {
     case '1':
       deviceId.value = props.deviceData.o2.deviceID
+      strtype.value = props.deviceData.o2.deviceType
       break;
     case '2':
       deviceId.value = props.deviceData.ch4.deviceID
+      strtype.value = props.deviceData.ch4.deviceType
       break;
     case '3':
       deviceId.value = props.deviceData.temp.deviceID
+      strtype.value = props.deviceData.temp.deviceType
       break;
     case '4':
       deviceId.value = props.deviceData.co.deviceID
+      strtype.value = props.deviceData.co.deviceType
       break;
   }
 }
@@ -58,6 +64,7 @@ function changeTab(val) {
 onBeforeMount(() => {
   if (props.deviceData.o2) {
     deviceId.value = props.deviceData.o2.deviceID
+     strtype.value = props.deviceData.o2.deviceType
   }
 })
 </script>
@@ -65,7 +72,7 @@ onBeforeMount(() => {
 <style lang="less" scoped>
 .environment-detail-table {
   width: 100%;
- min-height: 550px;
+  min-height: 550px;
   padding: 15px 20px;
   box-sizing: border-box;
 }

+ 11 - 3
src/views/vent/home/configurable/components/gasInject/gasInject.api.ts

@@ -10,8 +10,8 @@ enum Api {
   devicecontrol = '/safety/ventanalyMonitorData/devicecontrol',
   listdays = '/safety/ventanalyMonitorData/listdays',
   historydata = '/safety/ventanalyMonitorData/export/historydata',
-  getAlarmLogList='/monitor/groupCompany/getAlarmLogList'
-   
+  getAlarmLogList = '/monitor/groupCompany/getAlarmLogList',
+  exportXls = '/safety/ventanalyAlarmLog/exportXls'
 }
 
 
@@ -33,19 +33,27 @@ export const devicecontrol = (params) => {
   params.password = encryption.encryptByAES(params.password);
   return defHttp.put({ url: Api.devicecontrol, params });
 };
+
 /**
 * 详情历史曲线
 * @param params
 */
 export const listdays = (params) => defHttp.get({ url: Api.listdays, params }, { joinParamsToUrl: true });
+
 /**
  * 导出详情历史
  * @param params
  */
-
 export const historydata = (params) => defHttp.get({ url: Api.historydata, params, responseType: 'blob' });
+
 /**
 * 设备预警历史
 * @param params
 */
 export const getAlarmLogList = (params) => defHttp.post({ url: Api.getAlarmLogList, params },);
+
+/**
+ * 异常详情-导出
+ * @param params
+ */
+export const exportXls = (params) => defHttp.get({ url: Api.exportXls, params, responseType: 'blob' });

文件差异内容过多而无法显示
+ 508 - 179
src/views/vent/home/configurable/components/gasInject/gasInject.data.ts


+ 133 - 4
src/views/vent/home/configurable/components/gasInject/warnDetailTable.vue

@@ -1,5 +1,26 @@
 <template>
   <div class="warn-detail-table">
+    <div class="nav-box">
+      <div class="nav-search">
+        <div class="search-item">
+          <span>是否解决:</span>
+          <a-select ref="select" v-model:value="isOk" style="width: 240px">
+            <a-select-option v-for="(item, index) in isOkList" :key="item.label" :value="item.value">{{ item.label
+            }}</a-select-option>
+          </a-select>
+        </div>
+        <div class="search-item">
+          <a-button type="primary" preIcon="ant-design:search-outlined" @click="getSearch">查询</a-button>
+        </div>
+      </div>
+      <div class="nav-btn" @click="handleHisExport">
+        <div class="nav-text">
+          <SvgIcon class="icon-style" size="18" name="gas-export"></SvgIcon>
+          <span>数据导出</span>
+        </div>
+      </div>
+    </div>
+
     <a-tabs v-model:activeKey="activeKey" @change="tabChange">
       <a-tab-pane key="1" tab="设备预警历史">
         <commonTable :tableColumn="columnDeviceWarn" :tableD="tableData"></commonTable>
@@ -15,10 +36,12 @@
 </template>
 
 <script setup lang='ts'>
-import { onMounted, ref } from 'vue'
+import { onMounted, reactive, ref } from 'vue'
 import commonTable from './commonTable.vue'
 import { columnDeviceWarn } from './gasInject.data'
-import { getAlarmLogList } from './gasInject.api'
+import { getAlarmLogList, exportXls } from './gasInject.api'
+import { SvgIcon } from '/@/components/Icon';
+import { message } from 'ant-design-vue';
 
 let props = defineProps({
 
@@ -26,6 +49,12 @@ let props = defineProps({
 
 let activeKey = ref('1')
 let tableData = ref<any[]>([])
+let isOk = ref(false)
+let isOkList = ref([
+  { label: '已解决', value: true },
+  { label: '未解决', value: false },
+])
+
 
 //tab选项切换
 function tabChange(val) {
@@ -40,9 +69,45 @@ function tabChange(val) {
 
 //获取列表数据
 async function getData() {
-  let res = await getAlarmLogList({ deviceKind: null, isOk: false, pageNo: 1, pageSize: 15 })
+  let res = await getAlarmLogList({ deviceKind: null, isOk: isOk.value, pageNo: 1, pageSize: 1000 })
   console.log(res, '预警历史')
-  tableData.value = res.records || []
+  tableData.value = res.records.map(el=>{
+    return {
+      ...el,
+      isokC:el.isok ? '是' : '否' 
+    }
+  }) || []
+}
+//查询
+function getSearch() {
+  getData()
+}
+//导出
+async function handleHisExport() {
+  let res = await exportXls({ isOk: isOk.value, order: 'desc' })
+  let filename = `预警历史-${new Date().getFullYear()}.${new Date().getMonth() +1}.${new Date().getDate()}.xlsx`;
+  downFilePublic(res, filename);
+  message.success('导出成功')
+}
+// 下载公用方法
+function downFilePublic(content, fileName) {
+  const blob = new Blob([content], { type: 'application/xlsx;charset=UTF-8' }); // 构造一个blob对象来处理数据
+  // 对于<a>标签,只有 Firefox 和 Chrome(内核) 支持 download 属性
+  // IE10以上支持blob但是依然不支持download
+  if ('download' in document.createElement('a')) {
+    // 支持a标签download的浏览器
+    const link = document.createElement('a'); // 创建a标签
+    link.download = fileName; // a标签添加属性
+    link.style.display = 'none';
+    link.href = URL.createObjectURL(blob);
+    document.body.appendChild(link);
+    link.click(); // 执行下载
+    URL.revokeObjectURL(link.href); // 释放url
+    document.body.removeChild(link); // 释放标签
+  } else {
+    // 其他浏览器
+    navigator.msSaveBlob(blob, fileName);
+  }
 }
 
 onMounted(() => {
@@ -51,10 +116,74 @@ onMounted(() => {
 </script>
 
 <style lang="less" scoped>
+@import '/@/design/theme.less';
+
+@{theme-deepblue} {
+  .warn-detail-table {
+    --image-inject_zq_monitor: url('@/assets/images/themify/deepblue/home-container/configurable/gasInjection/9-3.png');
+  }
+}
+
 .warn-detail-table {
+  --image-inject_zq_monitor: url('@/assets/images/gasInjection/9-3.png');
+  position: relative;
   width: 100%;
   height: 100%;
   padding: 20px;
   box-sizing: border-box;
+
+  .nav-box {
+    display: flex;
+    justify-content: space-between;
+    align-items: center;
+    width: 100%;
+    height: 39px;
+    padding: 0px 20px;
+    background: var(--image-inject_zq_monitor) no-repeat;
+    background-size: 100% 100%;
+  }
+
+  .nav-search {
+    display: flex;
+    align-items: center;
+    height: 100%;
+    color: #fff;
+  }
+
+  .search-item {
+    margin-right: 40px;
+  }
+
+  .nav-btn {
+    width: 100px;
+    height: 78%;
+    padding: 2px;
+    border: 1px solid #1081d7;
+    cursor: pointer;
+    color: #fff;
+  }
+
+  .nav-text {
+    width: 100%;
+    height: 100%;
+    display: flex;
+    justify-content: center;
+    align-items: center;
+    background-color: #1081d7;
+  }
+
+  .icon-style {
+    margin-right: 5px;
+  }
+}
+:deep(.zxm-select) {
+  color: #fff !important;
+}
+
+:deep(.zxm-select-selector) {
+  background: #0b223f !important;
+  border: 1px solid #1081d7 !important;
+  border-radius: 4px;
+  margin-left: 10px;
 }
 </style>

+ 23 - 21
src/views/vent/home/configurable/components/gasInject/zqHistoryExport.vue

@@ -4,12 +4,12 @@
     <div class="nav-box">
       <div class="nav-search">
         <!-- 时间查询选项 -->
-        <a-radio-group v-model:value="timerTabs" name="radioGroup" @change="changeRadio">
-          <a-radio value="9">按天</a-radio>
+        <!-- <a-radio-group v-model:value="timerTabs" name="radioGroup" @change="changeRadio">
           <a-radio value="8">按小时</a-radio>
           <a-radio value="6">按分钟</a-radio>
-        </a-radio-group>
+        </a-radio-group> -->
         <div class="search-item">
+          <span>时间:</span>
           <a-range-picker style="width:340px" :value="[searchData.startTime, searchData.endTime]"
             :show-time="{ format: 'HH:mm:ss' }" valueFormat="YYYY-MM-DD HH:mm:ss" :placeholder="['开始时间', '结束时间']"
             @change="onRangeChange" />
@@ -25,7 +25,7 @@
       </div>
     </div>
     <div class="main-content">
-      <a-table size="small" :dataSource="dataSource" :columns="tableColumn" :scroll="{ y: 465 }"
+      <a-table size="small" :dataSource="dataSource" :columns="tableColumn"  maxWidth="1310" :scroll="{ x: 'max-content', y: 465 }"
         :pagination="pagination" @change="changePage">
         <template #action="{ record }">
           <!-- <a class="table-action-link" @click="handleSpDetail(record)">审批详情</a> -->
@@ -69,7 +69,7 @@ let props = defineProps({
   }
 })
 
-let timerTabs = ref('9')
+let timerTabs = ref('4')
 let searchData = reactive({
   startTime: dayjs().subtract(1, 'day').format('YYYY-MM-DD HH:mm:ss'),
   endTime: dayjs().format('YYYY-MM-DD HH:mm:ss'),
@@ -90,10 +90,10 @@ let $emit = defineEmits(['handleBack'])
 function handleBack() {
   $emit('handleBack')
 }
-//时间间隔切换
-function changeRadio(val) {
-  timerTabs.value = val.target.value
-}
+// //时间间隔切换
+// function changeRadio(val) {
+//   timerTabs.value = val.target.value
+// }
 //日期切换
 function onRangeChange(__, time) {
   searchData.startTime = time[0];
@@ -123,17 +123,18 @@ async function getHistoryTableData(skip) {
 //查询
 function getSearch() {
   pagination.current = 1
-  switch (timerTabs.value) {
-    case 'day':
-      getHistoryTableData(timerTabs.value)
-      break;
-    case 'hours':
-      getHistoryTableData(timerTabs.value)
-      break;
-    case 'minutes':
-      getHistoryTableData(timerTabs.value)
-      break;
-  }
+  getHistoryTableData(timerTabs.value)
+  // switch (timerTabs.value) {
+  //   case 'day':
+  //     getHistoryTableData(timerTabs.value)
+  //     break;
+  //   case 'hours':
+  //     getHistoryTableData(timerTabs.value)
+  //     break;
+  //   case 'minutes':
+  //     getHistoryTableData(timerTabs.value)
+  //     break;
+  // }
 }
 //切换分页
 function changePage(val) {
@@ -145,7 +146,8 @@ function changePage(val) {
 async function handleHisExport() {
   let res = await historydata({ ttime_begin: searchData.startTime, ttime_end: searchData.endTime, skip: '8', gdeviceids: props.deviceId, pageNo: pagination.current, pageSize: pagination.pageSize, strtype: props.strtype })
   console.log(res, '导出---')
-  let filename = `${new Date().getTime()}.xlsx`;
+  let fileName=props.strtype=='injection_standard' ? '注气数据' : props.strtype=='pump' ? '抽采数据' : ''
+  let filename = `${fileName}-${new Date().getFullYear()}.${new Date().getMonth() +1}.${new Date().getDate()}.xlsx`;
   downFilePublic(res, filename);
   message.success('导出成功')
 }

+ 14 - 1
src/views/vent/home/configurable/components/preset/echartLine.vue

@@ -36,6 +36,19 @@ function getOption() {
       tooltip: props.echartOption.tooltip,
       grid: props.echartOption.grid,
       legend: props.echartOption.legend,
+      dataZoom: [
+        {
+          // 这部分是关键
+          show: true,
+          type: 'inside', // 这里可以选择你需要的类型,例如 'inside'
+          height: 10, // 设置缩放条高度
+          left: 'center',
+          bottom: 25,
+          labelPrecision: 0, // 标签精度,默认为auto
+          showDetail: false, // 是否显示详情
+          showDataShadow: false, // 是否显示数据阴影
+        },
+      ],
       xAxis: [{
         type: 'category',
         boundaryGap: false,
@@ -108,7 +121,7 @@ watch(() => props.echartOption, (newV, oldV) => {
 }, { immediate: true, deep: true })
 
 watch(() => props.ecahrtData, (newV, oldV) => {
-  console.log(newV,'234234===')
+  console.log(newV, '234234===')
   if (newV) {
     ecahrtDatas = Object.assign({}, newV)
     getFormat()

+ 54 - 51
src/views/vent/home/configurable/components/preset/gasZyChart.vue

@@ -22,7 +22,7 @@ let startTimeAll = ref(0);
 //x轴结束时间
 let endTimeAll = ref(0);
 //1为运行状态,0为停止状态
-let categories = ref<any[]>(['注气开', '抽采开', '注气关', '抽采关']);
+let categories = ref<any[]>(['注气开', '抽采开', '', '注气关', '抽采关']);
 let seriesValue = ref<any[]>([]);
 let jsonData = ref<any[]>([])
 
@@ -91,7 +91,7 @@ function getOption() {
           fontSize: 12,
         },
         formatter: function (params) {
-          return params.marker + params.name + ': ' +( params.value[3] / 1000 / 60 / 60).toFixed(2) + ' h' ;
+          return params.marker + params.name + ': ' + (params.value[3] / 1000 / 60 / 60).toFixed(2) + ' h';
         },
       },
       grid: {
@@ -205,59 +205,62 @@ watch(() => props.data, (newV, oldV) => {
     })
     jsonData.value = [...yData, ...yData1]
     echarts.util.each(categories.value, function (category, index: number) {
-      let cgory = categories.value[index];
-      series.value.forEach((itemS, indexS) => {
-        jsonData.value.forEach((itemj, indexj) => {
-          if (itemj.category == cgory) {
-            let data: any[] = [];
-            let startTime = new Date(itemj.startTime).getTime();
-            let endTime = new Date(itemj.endTime).getTime();
-            let duration = endTime - startTime;
-            if (itemj.series == itemS) {
-              data.push({
-                name: itemj.series,
-                value: [index, startTime, endTime, duration],
-                itemStyle: {
-                  normal: {
-                    //color: '#7b9ce1',
+      if (category) {
+        let cgory = categories.value[index];
+        series.value.forEach((itemS, indexS) => {
+          jsonData.value.forEach((itemj, indexj) => {
+            if (itemj.category == cgory) {
+              let data: any[] = [];
+              let startTime = new Date(itemj.startTime).getTime();
+              let endTime = new Date(itemj.endTime).getTime();
+              let duration = endTime - startTime;
+              if (itemj.series == itemS) {
+                data.push({
+                  name: itemj.series,
+                  value: [index, startTime, endTime, duration],
+                  itemStyle: {
+                    normal: {
+                      //color: '#7b9ce1',
+                    },
                   },
-                },
-              });
-              seriesValue.value.push({
-                name: itemS,
-                type: 'custom',
-                renderItem: renderItem,
-                itemStyle: {
-                  normal: {
-                    color: new echarts.graphic.LinearGradient(
-                      0,
-                      0,
-                      1,
-                      0,
-                      [
-                        {
-                          offset: 0,
-                          color: colorList[indexS].color,
-                        },
-                        {
-                          offset: 1,
-                          color: colorList[indexS].color1,
-                        },
-                      ],
-                      false
-                    ),
+                });
+                seriesValue.value.push({
+                  name: itemS,
+                  type: 'custom',
+                  renderItem: renderItem,
+                  itemStyle: {
+                    normal: {
+                      color: new echarts.graphic.LinearGradient(
+                        0,
+                        0,
+                        1,
+                        0,
+                        [
+                          {
+                            offset: 0,
+                            color: colorList[indexS].color,
+                          },
+                          {
+                            offset: 1,
+                            color: colorList[indexS].color1,
+                          },
+                        ],
+                        false
+                      ),
+                    },
                   },
-                },
-                encode: {
-                  x: [1, 2],
-                  y: 0,
-                },
-                data: data,
-              });
+                  encode: {
+                    x: [1, 2],
+                    y: 0,
+                  },
+                  data: data,
+                });
+              }
             }
-          }
+          });
         });
-      });
+      }
+
     });
     getOption()
   }

+ 1 - 0
src/views/vent/home/configurable/configurable.api.ts

@@ -772,6 +772,7 @@ export const getSystemApi = (params) => {
       mixStdInstant: res.pumpData.readData.mixStdInstant || '-',
       gasConcentration: res.pumpData.readData.gasConcentration || '-',
       negativePressure: res.pumpData.readData.negativePressure || '-',
+      methaneStdInstant: res.pumpData.readData.methaneStdInstant || '-',
     }
 
     count.value += 1

+ 156 - 82
src/views/vent/home/configurable/configurable.data.ts

@@ -63,7 +63,7 @@ export const testConfigGasInject: Config[] = [
     },
   },
   {
-    deviceType: 'cc_gas_nd',
+    deviceType: 'Zq_zqcs',
     moduleName: '注气参数',
     pageType: 'gas_injection',
     showDetail: true,
@@ -105,7 +105,7 @@ export const testConfigGasInject: Config[] = [
         {
           readFrom: '',
           echartOption: {
-            types:'zq',
+            types: 'zq',
             showTime: true,
             tooltip: {
               trigger: 'axis',
@@ -135,7 +135,7 @@ export const testConfigGasInject: Config[] = [
                 fontSize: 12,
               },
               data: [
-                { name: '瞬时流量' },
+                { name: '瞬时标况流量' },
                 { name: '注气压力' },
               ]
             },
@@ -205,7 +205,7 @@ export const testConfigGasInject: Config[] = [
             ],
             series: [
               {
-                name: '瞬时流量',
+                name: '瞬时标况流量',
                 type: 'line',
                 symbol: 'circle', // 默认是空心圆(中间是白色的),改成实心圆
                 showAllSymbol: true,
@@ -294,7 +294,7 @@ export const testConfigGasInject: Config[] = [
     },
   },
   {
-    deviceType: 'cc_gas_ll',
+    deviceType: 'Zq_cccs',
     moduleName: '抽采参数',
     pageType: 'gas_injection',
     showDetail: true,
@@ -337,7 +337,7 @@ export const testConfigGasInject: Config[] = [
         {
           readFrom: '',
           echartOption: {
-            types:'cc',
+            types: 'cc',
             showTime: true,
             tooltip: {
               trigger: 'axis',
@@ -367,8 +367,9 @@ export const testConfigGasInject: Config[] = [
                 fontSize: 12,
               },
               data: [
-                { name: '瞬时混量' },
-                { name: '抽采负压' },
+                { name: '抽采混量' },
+                { name: '抽采纯量' },
+                { name: '抽采浓度' },
               ]
             },
             yAxis: [
@@ -383,7 +384,7 @@ export const testConfigGasInject: Config[] = [
                 },
                 min: 0,
                 splitLine: {
-                  show: false ,
+                  show: false,
                   lineStyle: {
                     color: 'rgba(4, 49, 79)',
                   },
@@ -406,7 +407,7 @@ export const testConfigGasInject: Config[] = [
               {
                 type: 'value',
                 position: 'right', // Y轴2在右边
-                name: '(kPa)',
+                name: '(%)',
                 nameTextStyle: {
                   color: "#a3a7ae",
                   fontSize: 12,
@@ -437,7 +438,7 @@ export const testConfigGasInject: Config[] = [
             ],
             series: [
               {
-                name: '瞬时混量',
+                name: '抽采混量',
                 type: 'line',
                 symbol: 'circle', // 默认是空心圆(中间是白色的),改成实心圆
                 showAllSymbol: true,
@@ -475,7 +476,7 @@ export const testConfigGasInject: Config[] = [
                 data: 'mixStdInstant'
               },
               {
-                name: '抽采负压',
+                name: '抽采浓度',
                 type: 'line',
                 symbol: 'circle', // 默认是空心圆(中间是白色的),改成实心圆
                 showAllSymbol: true,
@@ -511,7 +512,45 @@ export const testConfigGasInject: Config[] = [
                     shadowBlur: 20 //shadowBlur设图形阴影的模糊大小。配合shadowColor,shadowOffsetX/Y, 设置图形的阴影效果。
                   }
                 },
-                data: 'negativePressure'
+                data: 'gasConcentration'
+              },
+              {
+                name: '抽采纯量',
+                type: 'line',
+                symbol: 'circle', // 默认是空心圆(中间是白色的),改成实心圆
+                showAllSymbol: true,
+                symbolSize: 0,
+                smooth: true,
+                yAxisIndex: 0,
+                lineStyle: {
+                  normal: {
+                    width: 2,
+                    color: 'rgba(252, 197, 36,1)', // 线条颜色
+                  },
+                  borderColor: 'rgba(0,0,0,.4)',
+                },
+                itemStyle: {
+                  color: 'rgba(252, 197, 36,1)',
+                  borderColor: "#646ace",
+                  borderWidth: 2
+                },
+                areaStyle: { //区域填充样式
+                  normal: {
+                    //线性渐变,前4个参数分别是x0,y0,x2,y2(范围0~1);相当于图形包围盒中的百分比。如果最后一个参数是‘true’,则该四个值是绝对像素位置。
+                    color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
+                      offset: 0,
+                      color: "rgba(252, 197, 36,.4)"
+                    },
+                    {
+                      offset: 1,
+                      color: "rgba(252, 197, 36, .1)"
+                    }
+                    ], false),
+                    shadowColor: 'rgba(252, 197, 36, 0.5)', //阴影颜色
+                    shadowBlur: 20 //shadowBlur设图形阴影的模糊大小。配合shadowColor,shadowOffsetX/Y, 设置图形的阴影效果。
+                  }
+                },
+                data: 'methaneStdInstant'
               },
             ]
           },
@@ -1102,12 +1141,12 @@ export const testConfigGasInjectZq: Config[] = [
             {
               label: '瞬时标况流量',
               value: '${flowStdInstant}',
-              unit: 'Nm³/min',
+              unit: 'Nm³/h',
             },
             {
               label: '累计标况流量',
               value: '${flowStdAccum}',
-              unit: 'Nm³/min',
+              unit: 'Nm³',
             },
             {
               label: '注气温度',
@@ -1117,7 +1156,7 @@ export const testConfigGasInjectZq: Config[] = [
             {
               label: '注气压力',
               value: '${injectionPressure}',
-              unit: 'MPa',
+              unit: 'MP',
             },
           ],
         },
@@ -1365,7 +1404,7 @@ export const testConfigGasInjectZq: Config[] = [
 export const testConfigGasInjectCc: Config[] = [
   {
     deviceType: 'gas_cc_data',
-    moduleName: '抽采数据',
+    moduleName: '支管抽采数据',
     pageType: 'gas_injection',
     showDetail: true,
     moduleData: {
@@ -1394,7 +1433,8 @@ export const testConfigGasInjectCc: Config[] = [
             basis: '50%',
           },
           {
-            name: 'gas_cc_chart',
+            // name: 'gas_cc_chart',
+            name: 'gas_line_chart',
             basis: '50%',
           },
         ],
@@ -1411,19 +1451,19 @@ export const testConfigGasInjectCc: Config[] = [
               unit: 'm³/min',
             },
             {
-              label: '浓度',
+              label: '抽采浓度',
               value: '${gasConcentration}',
               unit: '%',
             },
             {
-              label: '负压',
+              label: '抽采负压',
               value: '${negativePressure}',
-              unit: 'Pa',
+              unit: 'kPa',
             },
             {
-              label: '温度',
-              value: '',
-              unit: '',
+              label: '瞬时抽采纯量',
+              value: '${methaneStdInstant}',
+              unit: 'm³/min',
             },
           ],
         },
@@ -1436,9 +1476,10 @@ export const testConfigGasInjectCc: Config[] = [
       complex_list: [],
       preset: [
         {
-          readFrom: 'ccEchart',
+          readFrom: '',
           echartOption: {
-            showTime: false,
+            types: 'cc',
+            showTime: true,
             tooltip: {
               trigger: 'axis',
               padding: 8,
@@ -1467,8 +1508,9 @@ export const testConfigGasInjectCc: Config[] = [
                 fontSize: 12,
               },
               data: [
-                { name: '瞬时混量' },
-                { name: '浓度' },
+                { name: '抽采混量' },
+                { name: '抽采纯量' },
+                { name: '抽采浓度' },
               ]
             },
             yAxis: [
@@ -1483,16 +1525,13 @@ export const testConfigGasInjectCc: Config[] = [
                 },
                 min: 0,
                 splitLine: {
-                  show: true,
+                  show: false,
                   lineStyle: {
                     color: 'rgba(4, 49, 79)',
                   },
                 },
                 axisLine: {
-                  show: true,
-                  lineStyle: {
-                    color: 'rgba(4, 49, 79)',
-                  },
+                  show: false,
                 },
                 axisLabel: {
                   show: true,
@@ -1509,7 +1548,7 @@ export const testConfigGasInjectCc: Config[] = [
               {
                 type: 'value',
                 position: 'right', // Y轴2在右边
-                name: '(Pa)',
+                name: '(%)',
                 nameTextStyle: {
                   color: "#a3a7ae",
                   fontSize: 12,
@@ -1523,10 +1562,7 @@ export const testConfigGasInjectCc: Config[] = [
                   },
                 },
                 axisLine: {
-                  show: true,
-                  lineStyle: {
-                    color: 'rgba(4, 49, 79)',
-                  },
+                  show: false,
                 },
                 axisLabel: {
                   show: true,
@@ -1543,7 +1579,7 @@ export const testConfigGasInjectCc: Config[] = [
             ],
             series: [
               {
-                name: '瞬时混量',
+                name: '抽采混量',
                 type: 'line',
                 symbol: 'circle', // 默认是空心圆(中间是白色的),改成实心圆
                 showAllSymbol: true,
@@ -1553,12 +1589,12 @@ export const testConfigGasInjectCc: Config[] = [
                 lineStyle: {
                   normal: {
                     width: 2,
-                    color: 'rgba(131, 97, 251,1)', // 线条颜色
+                    color: 'rgba(86, 243, 134,1)', // 线条颜色
                   },
                   borderColor: 'rgba(0,0,0,.4)',
                 },
                 itemStyle: {
-                  color: 'rgba(131, 97, 251,1)',
+                  color: 'rgba(86, 243, 134,1)',
                   borderColor: "#646ace",
                   borderWidth: 2
                 },
@@ -1567,21 +1603,21 @@ export const testConfigGasInjectCc: Config[] = [
                     //线性渐变,前4个参数分别是x0,y0,x2,y2(范围0~1);相当于图形包围盒中的百分比。如果最后一个参数是‘true’,则该四个值是绝对像素位置。
                     color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
                       offset: 0,
-                      color: "rgba(131, 97, 251,.4)"
+                      color: "rgba(86, 243, 134,.4)"
                     },
                     {
                       offset: 1,
-                      color: "rgba(131, 97, 251, .1)"
+                      color: "rgba(86, 243, 134, .1)"
                     }
                     ], false),
-                    shadowColor: 'rgba(131, 97, 251, 0.5)', //阴影颜色
+                    shadowColor: 'rgba(86, 243, 134, 0.5)', //阴影颜色
                     shadowBlur: 20 //shadowBlur设图形阴影的模糊大小。配合shadowColor,shadowOffsetX/Y, 设置图形的阴影效果。
                   }
                 },
-                data: 'yData'
+                data: 'mixStdInstant'
               },
               {
-                name: '浓度',
+                name: '抽采浓度',
                 type: 'line',
                 symbol: 'circle', // 默认是空心圆(中间是白色的),改成实心圆
                 showAllSymbol: true,
@@ -1591,12 +1627,12 @@ export const testConfigGasInjectCc: Config[] = [
                 lineStyle: {
                   normal: {
                     width: 2,
-                    color: 'rgba(138, 241, 166,1)', // 线条颜色
+                    color: 'rgba(111, 76, 247,1)', // 线条颜色
                   },
                   borderColor: 'rgba(0,0,0,.4)',
                 },
                 itemStyle: {
-                  color: 'rgba(138, 241, 166,1)',
+                  color: 'rgba(111, 76, 247,1)',
                   borderColor: "#646ace",
                   borderWidth: 2
 
@@ -1606,18 +1642,56 @@ export const testConfigGasInjectCc: Config[] = [
                     //线性渐变,前4个参数分别是x0,y0,x2,y2(范围0~1);相当于图形包围盒中的百分比。如果最后一个参数是‘true’,则该四个值是绝对像素位置。
                     color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
                       offset: 0,
-                      color: "rgba(138, 241, 166,.4)"
+                      color: "rgba(111, 76, 247,.4)"
                     },
                     {
                       offset: 1,
-                      color: "rgba(138, 241, 166, .1)"
+                      color: "rgba(111, 76, 247, .1)"
                     }
                     ], false),
-                    shadowColor: 'rgba(138, 241, 166, 0.5)', //阴影颜色
+                    shadowColor: 'rgba(111, 76, 247, 0.5)', //阴影颜色
                     shadowBlur: 20 //shadowBlur设图形阴影的模糊大小。配合shadowColor,shadowOffsetX/Y, 设置图形的阴影效果。
                   }
                 },
-                data: 'yData1'
+                data: 'gasConcentration'
+              },
+              {
+                name: '抽采纯量',
+                type: 'line',
+                symbol: 'circle', // 默认是空心圆(中间是白色的),改成实心圆
+                showAllSymbol: true,
+                symbolSize: 0,
+                smooth: true,
+                yAxisIndex: 0,
+                lineStyle: {
+                  normal: {
+                    width: 2,
+                    color: 'rgba(252, 197, 36,1)', // 线条颜色
+                  },
+                  borderColor: 'rgba(0,0,0,.4)',
+                },
+                itemStyle: {
+                  color: 'rgba(252, 197, 36,1)',
+                  borderColor: "#646ace",
+                  borderWidth: 2
+                },
+                areaStyle: { //区域填充样式
+                  normal: {
+                    //线性渐变,前4个参数分别是x0,y0,x2,y2(范围0~1);相当于图形包围盒中的百分比。如果最后一个参数是‘true’,则该四个值是绝对像素位置。
+                    color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
+                      offset: 0,
+                      color: "rgba(252, 197, 36,.4)"
+                    },
+                    {
+                      offset: 1,
+                      color: "rgba(252, 197, 36, .1)"
+                    }
+                    ], false),
+                    shadowColor: 'rgba(252, 197, 36, 0.5)', //阴影颜色
+                    shadowBlur: 20 //shadowBlur设图形阴影的模糊大小。配合shadowColor,shadowOffsetX/Y, 设置图形的阴影效果。
+                  }
+                },
+                data: 'methaneStdInstant'
               },
             ]
           },
@@ -1765,11 +1839,11 @@ export const testConfigGasInjectCc: Config[] = [
                     fontSize: 12,
                   },
                   data: [
-                    { name: '汇流1' },
-                    { name: '汇流2' },
-                    { name: '汇流3' },
-                    { name: '汇流4' },
-                    { name: '汇流5' },
+                    { name: '汇流单元1' },
+                    { name: '汇流单元2' },
+                    { name: '汇流单元3' },
+                    { name: '汇流单元4' },
+                    { name: '汇流单元5' },
                   ]
                 },
                 yAxis: [
@@ -1809,7 +1883,7 @@ export const testConfigGasInjectCc: Config[] = [
                 ],
                 series: [
                   {
-                    name: '汇流1',
+                    name: '汇流单元1',
                     type: 'line',
                     symbol: 'circle', // 默认是空心圆(中间是白色的),改成实心圆
                     showAllSymbol: true,
@@ -1832,7 +1906,7 @@ export const testConfigGasInjectCc: Config[] = [
                     data: 'yDataHl'
                   },
                   {
-                    name: '汇流2',
+                    name: '汇流单元2',
                     type: 'line',
                     symbol: 'circle', // 默认是空心圆(中间是白色的),改成实心圆
                     showAllSymbol: true,
@@ -1855,7 +1929,7 @@ export const testConfigGasInjectCc: Config[] = [
                     data: 'yDataHl1'
                   },
                   {
-                    name: '汇流3',
+                    name: '汇流单元3',
                     type: 'line',
                     symbol: 'circle', // 默认是空心圆(中间是白色的),改成实心圆
                     showAllSymbol: true,
@@ -1878,7 +1952,7 @@ export const testConfigGasInjectCc: Config[] = [
                     data: 'yDataHl2'
                   },
                   {
-                    name: '汇流4',
+                    name: '汇流单元4',
                     type: 'line',
                     symbol: 'circle', // 默认是空心圆(中间是白色的),改成实心圆
                     showAllSymbol: true,
@@ -1901,7 +1975,7 @@ export const testConfigGasInjectCc: Config[] = [
                     data: 'yDataHl3'
                   },
                   {
-                    name: '汇流5',
+                    name: '汇流单元5',
                     type: 'line',
                     symbol: 'circle', // 默认是空心圆(中间是白色的),改成实心圆
                     showAllSymbol: true,
@@ -1959,11 +2033,11 @@ export const testConfigGasInjectCc: Config[] = [
                     fontSize: 12,
                   },
                   data: [
-                    { name: '汇流1' },
-                    { name: '汇流2' },
-                    { name: '汇流3' },
-                    { name: '汇流4' },
-                    { name: '汇流5' },
+                    { name: '汇流单元1' },
+                    { name: '汇流单元2' },
+                    { name: '汇流单元3' },
+                    { name: '汇流单元4' },
+                    { name: '汇流单元5' },
                   ]
                 },
                 yAxis: [
@@ -2003,7 +2077,7 @@ export const testConfigGasInjectCc: Config[] = [
                 ],
                 series: [
                   {
-                    name: '汇流1',
+                    name: '汇流单元1',
                     type: 'line',
                     symbol: 'circle', // 默认是空心圆(中间是白色的),改成实心圆
                     showAllSymbol: true,
@@ -2026,7 +2100,7 @@ export const testConfigGasInjectCc: Config[] = [
                     data: 'yDataNd'
                   },
                   {
-                    name: '汇流2',
+                    name: '汇流单元2',
                     type: 'line',
                     symbol: 'circle', // 默认是空心圆(中间是白色的),改成实心圆
                     showAllSymbol: true,
@@ -2049,7 +2123,7 @@ export const testConfigGasInjectCc: Config[] = [
                     data: 'yDataNd1'
                   },
                   {
-                    name: '汇流3',
+                    name: '汇流单元3',
                     type: 'line',
                     symbol: 'circle', // 默认是空心圆(中间是白色的),改成实心圆
                     showAllSymbol: true,
@@ -2072,7 +2146,7 @@ export const testConfigGasInjectCc: Config[] = [
                     data: 'yDataNd2'
                   },
                   {
-                    name: '汇流4',
+                    name: '汇流单元4',
                     type: 'line',
                     symbol: 'circle', // 默认是空心圆(中间是白色的),改成实心圆
                     showAllSymbol: true,
@@ -2095,7 +2169,7 @@ export const testConfigGasInjectCc: Config[] = [
                     data: 'yDataNd3'
                   },
                   {
-                    name: '汇流5',
+                    name: '汇流单元5',
                     type: 'line',
                     symbol: 'circle', // 默认是空心圆(中间是白色的),改成实心圆
                     showAllSymbol: true,
@@ -2153,11 +2227,11 @@ export const testConfigGasInjectCc: Config[] = [
                     fontSize: 12,
                   },
                   data: [
-                    { name: '汇流1' },
-                    { name: '汇流2' },
-                    { name: '汇流3' },
-                    { name: '汇流4' },
-                    { name: '汇流5' },
+                    { name: '汇流单元1' },
+                    { name: '汇流单元2' },
+                    { name: '汇流单元3' },
+                    { name: '汇流单元4' },
+                    { name: '汇流单元5' },
                   ]
                 },
                 yAxis: [
@@ -2197,7 +2271,7 @@ export const testConfigGasInjectCc: Config[] = [
                 ],
                 series: [
                   {
-                    name: '汇流1',
+                    name: '汇流单元1',
                     type: 'line',
                     symbol: 'circle', // 默认是空心圆(中间是白色的),改成实心圆
                     showAllSymbol: true,
@@ -2219,7 +2293,7 @@ export const testConfigGasInjectCc: Config[] = [
                     data: 'yDataFy'
                   },
                   {
-                    name: '汇流2',
+                    name: '汇流单元2',
                     type: 'line',
                     symbol: 'circle', // 默认是空心圆(中间是白色的),改成实心圆
                     showAllSymbol: true,
@@ -2241,7 +2315,7 @@ export const testConfigGasInjectCc: Config[] = [
                     data: 'yDataFy1'
                   },
                   {
-                    name: '汇流3',
+                    name: '汇流单元3',
                     type: 'line',
                     symbol: 'circle', // 默认是空心圆(中间是白色的),改成实心圆
                     showAllSymbol: true,
@@ -2263,7 +2337,7 @@ export const testConfigGasInjectCc: Config[] = [
                     data: 'yDataFy2'
                   },
                   {
-                    name: '汇流4',
+                    name: '汇流单元4',
                     type: 'line',
                     symbol: 'circle', // 默认是空心圆(中间是白色的),改成实心圆
                     showAllSymbol: true,
@@ -2285,7 +2359,7 @@ export const testConfigGasInjectCc: Config[] = [
                     data: 'yDataFy3'
                   },
                   {
-                    name: '汇流5',
+                    name: '汇流单元5',
                     type: 'line',
                     symbol: 'circle', // 默认是空心圆(中间是白色的),改成实心圆
                     showAllSymbol: true,

部分文件因为文件数量过多而无法显示