瀏覽代碼

注气驱替-接口对接

lxh 2 月之前
父節點
當前提交
7db27d6a38

+ 1 - 1
src/utils/http/axios/index.ts

@@ -310,7 +310,7 @@ function createAxios(opt?: Partial<CreateAxiosOptions>) {
         // authentication schemes,e.g: Bearer
         // authentication schemes,e.g: Bearer
         // authenticationScheme: 'Bearer',
         // authenticationScheme: 'Bearer',
         authenticationScheme: '',
         authenticationScheme: '',
-        timeout: 10 * 1000,
+        timeout: 60 * 1000,
         // 基础接口地址
         // 基础接口地址
         // baseURL: globSetting.apiUrl,
         // baseURL: globSetting.apiUrl,
         headers: { 'Content-Type': ContentTypeEnum.JSON },
         headers: { 'Content-Type': ContentTypeEnum.JSON },

+ 1 - 1
src/views/vent/home/configurable/components/content.vue

@@ -128,7 +128,7 @@
           <gasInjectChart class="content__module" :option="config.config.option" :echartData="config.data"/>
           <gasInjectChart class="content__module" :option="config.config.option" :echartData="config.data"/>
         </template>
         </template>
         <template v-else-if="config.name === 'gas_inject_list'">
         <template v-else-if="config.name === 'gas_inject_list'">
-          <gasInjectList class="content__module" :option="config.config.option" :upDownData="config.data" />
+          <gasInjectList class="content__module" :option="config.config.option" :listData="config.data" />
         </template>
         </template>
         <template v-else-if="config.name === 'gas_zy_chart'">
         <template v-else-if="config.name === 'gas_zy_chart'">
           <gasZyChart class="content__module" />
           <gasZyChart class="content__module" />

+ 18 - 22
src/views/vent/home/configurable/components/gasInject/DetailInfo.vue

@@ -1,11 +1,15 @@
 <template>
 <template>
   <a-modal v-model:visible="visibleDetail" width="1350px" :footer="null" :title="modalTitle" centered destroyOnClose
   <a-modal v-model:visible="visibleDetail" width="1350px" :footer="null" :title="modalTitle" centered destroyOnClose
     @cancel="handleCancel">
     @cancel="handleCancel">
+    <!-- 注气参数 -->
     <template v-if="deviceType == 'cc_gas_nd'">
     <template v-if="deviceType == 'cc_gas_nd'">
-      <curveEchartDetail :sysType="'Zq'" :isShowExport="false" :tableColumn="tableColumnCc"></curveEchartDetail>
+      <curveEchartDetail :sysType="'Zq'" :isShowExport="false" :tableColumn="tableColumnZqcs" :deviceID="data.deviceId"
+        :strtype="data.strtype"></curveEchartDetail>
     </template>
     </template>
+    <!-- 抽采参数 -->
     <template v-if="deviceType == 'cc_gas_ll'">
     <template v-if="deviceType == 'cc_gas_ll'">
-      <curveEchartDetail :sysType="'Cc'" :isShowExport="false" :tableColumn="tableColumnCc"></curveEchartDetail>
+      <curveEchartDetail :sysType="'Cc'" :isShowExport="false" :tableColumn="tableColumnCcs"
+        :strtype="data.pumpStrtype"></curveEchartDetail>
     </template>
     </template>
     <template v-if="deviceType == 'gas_zq-yl'">
     <template v-if="deviceType == 'gas_zq-yl'">
       <curveEchartDetail :sysType="'Zq'" :isShowExport="false" :tableColumn="tableColumnSj"></curveEchartDetail>
       <curveEchartDetail :sysType="'Zq'" :isShowExport="false" :tableColumn="tableColumnSj"></curveEchartDetail>
@@ -13,21 +17,20 @@
     <template v-if="deviceType == 'gas_zq_sj'">
     <template v-if="deviceType == 'gas_zq_sj'">
       <!-- <zqMonitorDetail :isShowExport="false" :tableColumn="tableColumnSj" :data="data" :optionDetail="optionDetailZq">
       <!-- <zqMonitorDetail :isShowExport="false" :tableColumn="tableColumnSj" :data="data" :optionDetail="optionDetailZq">
       </zqMonitorDetail> -->
       </zqMonitorDetail> -->
-      <LineAndBarDetail :sysType="'Zq'" :isShowExport="false" :tableColumn="tableColumnSj" :deviceID="data.deviceId"></LineAndBarDetail>
+      <LineAndBarDetail :sysType="'Zq'" :isShowExport="false" :tableColumn="tableColumnSj" :deviceID="data.deviceId">
+      </LineAndBarDetail>
     </template>
     </template>
-    <!-- <template v-if="deviceType == 'gas_zq_hj'">
-      <zqMonitorDetail :isShowExport="true" :tableColumn="tableColumnHj"></zqMonitorDetail>
-    </template> -->
+    <!-- 环境监测 -->
     <template v-if="deviceType == 'gas_zq_hj'">
     <template v-if="deviceType == 'gas_zq_hj'">
-      <environmentDetailTable :isShowExport="true"></environmentDetailTable>
+      <environmentDetailTable :isShowExport="true" :deviceData="data" :strtype="data.strtype"></environmentDetailTable>
     </template>
     </template>
+    <!-- 装备运行工况监测 -->
     <template v-if="deviceType == 'gas_zq_paramline'">
     <template v-if="deviceType == 'gas_zq_paramline'">
-      <!-- <curveEchartDetail :sysType="'Gk'" :isShowExport="false" :tableColumn="tableColumnSj"></curveEchartDetail> -->
-      <echartLineDateGk :echartOption="echartOptionGk" :ecahrtData="echartDataGk" />
+      <echartLineDateGk :echartOption="echartOptionGk" :deviceID="data.deviceId" :strtype="data.strtype" />
     </template>
     </template>
     <template v-if="deviceType == 'gas_zq_video'">
     <template v-if="deviceType == 'gas_zq_video'">
       <!-- <zqMonitorDetail :isShowExport="true" :tableColumn="tableColumnSj"></zqMonitorDetail> -->
       <!-- <zqMonitorDetail :isShowExport="true" :tableColumn="tableColumnSj"></zqMonitorDetail> -->
-       <cameraDetailModal></cameraDetailModal>
+      <cameraDetailModal></cameraDetailModal>
     </template>
     </template>
     <template v-if="deviceType == 'gas_cc_detail'">
     <template v-if="deviceType == 'gas_cc_detail'">
       <zqMonitorDetail :isShowExport="false" :tableColumn="tableColumnCc" :optionDetail="optionDetailCc">
       <zqMonitorDetail :isShowExport="false" :tableColumn="tableColumnCc" :optionDetail="optionDetailCc">
@@ -46,10 +49,12 @@
     <template v-if="deviceType == 'warn-info'">
     <template v-if="deviceType == 'warn-info'">
       <warnDetailTable :isShowExport="true"></warnDetailTable>
       <warnDetailTable :isShowExport="true"></warnDetailTable>
     </template>
     </template>
+    <!-- 装备运行状态与控制 -->
     <template v-if="deviceType == 'device_status_control'">
     <template v-if="deviceType == 'device_status_control'">
-      <zqMonitorDetail :isShowExport="true" :tableColumn="columnCc"></zqMonitorDetail>
+      <zqMonitorDetail :isShowExport="true" :tableColumn="columnControl" :deviceID="data.deviceId"
+        :strtype="data.strtype"></zqMonitorDetail>
     </template>
     </template>
-   
+
   </a-modal>
   </a-modal>
 </template>
 </template>
 
 
@@ -57,7 +62,7 @@
 import { computed, reactive, ref, watch } from 'vue'
 import { computed, reactive, ref, watch } from 'vue'
 import curveEchartDetail from './curveEchartDetail.vue'
 import curveEchartDetail from './curveEchartDetail.vue'
 import zqMonitorDetail from './zqMonitorDetail.vue'
 import zqMonitorDetail from './zqMonitorDetail.vue'
-import { tableColumnSj, tableColumnHj, tableColumnCc, optionDetailZq, optionDetailCc, columnCc, echartOptionGk } from './gasInject.data'
+import { columnControl, tableColumnZqcs, tableColumnCcs, tableColumnSj, tableColumnHj, tableColumnCc, optionDetailZq, optionDetailCc, columnCc, echartOptionGk } from './gasInject.data'
 import SyqDetails from './SyqDetails.vue';
 import SyqDetails from './SyqDetails.vue';
 import systemDetailTable from './systemDetailTable.vue'
 import systemDetailTable from './systemDetailTable.vue'
 import warnDetailTable from './warnDetailTable.vue'
 import warnDetailTable from './warnDetailTable.vue'
@@ -83,15 +88,6 @@ let props = defineProps({
 let visibleDetail = ref(false)
 let visibleDetail = ref(false)
 let $emit = defineEmits(['closeModal'])
 let $emit = defineEmits(['closeModal'])
 
 
-let echartDataGk = reactive({
-  xData: ['3.26', '3.27', '3.28', '3.29', '3.30', '3.31'],
-  yData: ["20", "50", "12", "65", "30", "60"],
-  yData1: ["40", "60", "22", "85", "50", "40"],
-  yData2: ["70", "30", "42", "65", "80", "60"],
-  yData3: ['50','30','68','42','58','37'],
-  yData4: []
-})
-
 //弹窗标题
 //弹窗标题
 let modalTitle = computed(() => {
 let modalTitle = computed(() => {
   if (props.deviceType == 'cc_gas_nd' || props.deviceType == 'cc_gas_ll' || props.deviceType == 'gas_cc_line') {
   if (props.deviceType == 'cc_gas_nd' || props.deviceType == 'cc_gas_ll' || props.deviceType == 'gas_cc_line') {

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

@@ -11,7 +11,7 @@
           </a-radio-group>
           </a-radio-group>
           <!-- 时间查询条件 -->
           <!-- 时间查询条件 -->
           <a-range-picker style="width:280px" v-model:value="timerSearch" :show-time="formatDate"
           <a-range-picker style="width:280px" v-model:value="timerSearch" :show-time="formatDate"
-            format="YYYY-MM-DD HH:mm" :placeholder="['开始时间', '结束时间']" />
+            format="YYYY-MM-DD HH:mm:ss" :placeholder="['开始时间', '结束时间']" />
         </div>
         </div>
         <div class="nav-btn" @click="handleHistory">
         <div class="nav-btn" @click="handleHistory">
           <div class="nav-text">
           <div class="nav-text">

+ 90 - 30
src/views/vent/home/configurable/components/gasInject/curveEchartDetail.vue

@@ -4,14 +4,17 @@
       <div class="curve-nav">
       <div class="curve-nav">
         <div class="nav-search">
         <div class="nav-search">
           <!-- 时间查询选项 -->
           <!-- 时间查询选项 -->
-          <a-radio-group v-model:value="timerTabs" name="radioGroup">
+          <a-radio-group v-model:value="timerTabs" name="radioGroup" @change="changeRadio">
             <a-radio value="day">按天</a-radio>
             <a-radio value="day">按天</a-radio>
             <a-radio value="hours">按小时</a-radio>
             <a-radio value="hours">按小时</a-radio>
             <a-radio value="minutes">按分钟</a-radio>
             <a-radio value="minutes">按分钟</a-radio>
           </a-radio-group>
           </a-radio-group>
           <!-- 时间查询条件 -->
           <!-- 时间查询条件 -->
-          <a-range-picker style="width:280px" v-model:value="timerSearch" :show-time="formatDate"
-            format="YYYY-MM-DD HH:mm" :placeholder="['开始时间', '结束时间']" />
+          <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>
         <div class="nav-btn" @click="handleHistory">
         <div class="nav-btn" @click="handleHistory">
           <div class="nav-text">
           <div class="nav-text">
@@ -31,7 +34,8 @@
       </div>
       </div>
     </template>
     </template>
     <template v-else>
     <template v-else>
-      <zqHistoryExport :tableColumn="tableColumn" @handleBack="handleBack"></zqHistoryExport>
+      <zqHistoryExport :tableColumn="tableColumn" :detailType="'history'" :deviceId="deviceID" :strtype="strtype"  @handleBack="handleBack">
+      </zqHistoryExport>
     </template>
     </template>
   </div>
   </div>
 </template>
 </template>
@@ -42,6 +46,8 @@ import echartLineDate from './echartLineDate.vue'
 import { SvgIcon } from '/@/components/Icon';
 import { SvgIcon } from '/@/components/Icon';
 import zqHistoryExport from './zqHistoryExport.vue'
 import zqHistoryExport from './zqHistoryExport.vue'
 import { zqEchartOption, ccEchartOption, gkEchartOption } from './gasInject.data'
 import { zqEchartOption, ccEchartOption, gkEchartOption } from './gasInject.data'
+import { listdays } from './gasInject.api'
+import dayjs from 'dayjs';
 
 
 let props = defineProps({
 let props = defineProps({
 
 
@@ -56,42 +62,95 @@ let props = defineProps({
   //详情图表系统类型
   //详情图表系统类型
   sysType: {
   sysType: {
     type: String
     type: String
+  },
+  //设备ID
+  deviceID: {
+    type: String
+  },
+  //设备类型
+  strtype:{
+    type:String
   }
   }
 })
 })
 //注气参数详情数据
 //注气参数详情数据
-let listData = ref<any[]>([
-  { label: '绘流管1', xData: ['3.26', '3.27', '3.28', '3.29', '3.30', '3.31'], yData: ["20", "50", "12", "65", "30", "60"], yData1: ["40", "60", "22", "85", "50", "40"], yData2: ["70", "30", "42", "65", "80", "60"], },
-  { label: '绘流管2', xData: ['3.26', '3.27', '3.28', '3.29', '3.30', '3.31'], yData: ["20", "50", "12", "65", "30", "60"], yData1: ["40", "60", "22", "85", "50", "40"], yData2: ["70", "30", "42", "65", "80", "60"], },
-  { label: '绘流管3', xData: ['3.26', '3.27', '3.28', '3.29', '3.30', '3.31'], yData: ["20", "50", "12", "65", "30", "60"], yData1: ["40", "60", "22", "85", "50", "40"], yData2: ["70", "30", "42", "65", "80", "60"], },
-  { label: '绘流管4', xData: ['3.26', '3.27', '3.28', '3.29', '3.30', '3.31'], yData: ["20", "50", "12", "65", "30", "60"], yData1: ["40", "60", "22", "85", "50", "40"], yData2: ["70", "30", "42", "65", "80", "60"], },
-  { label: '绘流管5', xData: ['3.26', '3.27', '3.28', '3.29', '3.30', '3.31'], yData: ["20", "50", "12", "65", "30", "60"], yData1: ["40", "60", "22", "85", "50", "40"], yData2: ["70", "30", "42", "65", "80", "60"], },
-  { label: '绘流管6', xData: ['3.26', '3.27', '3.28', '3.29', '3.30', '3.31'], yData: ["20", "50", "12", "65", "30", "60"], yData1: ["40", "60", "22", "85", "50", "40"], yData2: ["70", "30", "42", "65", "80", "60"], },
-  { label: '绘流管7', xData: ['3.26', '3.27', '3.28', '3.29', '3.30', '3.31'], yData: ["20", "50", "12", "65", "30", "60"], yData1: ["40", "60", "22", "85", "50", "40"], yData2: ["70", "30", "42", "65", "80", "60"], },
-  { label: '绘流管8', xData: ['3.26', '3.27', '3.28', '3.29', '3.30', '3.31'], yData: ["20", "50", "12", "65", "30", "60"], yData1: ["40", "60", "22", "85", "50", "40"], yData2: ["70", "30", "42", "65", "80", "60"], },
-  { label: '绘流管9', xData: ['3.26', '3.27', '3.28', '3.29', '3.30', '3.31'], yData: ["20", "50", "12", "65", "30", "60"], yData1: ["40", "60", "22", "85", "50", "40"], yData2: ["70", "30", "42", "65", "80", "60"], },
-])
+let listData = ref<any[]>([])
 
 
+let searchData = reactive({
+  startTime: dayjs().subtract(1, 'day').format('YYYY-MM-DD HH:mm:ss'),
+  endTime: dayjs().format('YYYY-MM-DD HH:mm:ss'),
+})
 let timerTabs = ref('day')
 let timerTabs = ref('day')
 let showExport = ref(false)
 let showExport = ref(false)
-//查询时间段-天
-let timerSearch = ref('')
-//时间显示格式
-let formatDate = computed(() => {
-  let showTime = {}
-  if (timerTabs.value == 'day') {
-    showTime = {}
-  } else if (timerTabs.value == 'hours') {
-    showTime = Object.assign({}, { format: 'HH' })
-  } else if (timerTabs.value == 'minutes') {
-    showTime = Object.assign({}, { format: 'HH:mm' })
-  }
-  return showTime
-})
+
 //图表配置项
 //图表配置项
 let echartOption = computed(() => {
 let echartOption = computed(() => {
   return props.sysType == 'Cc' ? ccEchartOption : props.sysType == 'Zq' ? zqEchartOption : gkEchartOption
   return props.sysType == 'Cc' ? ccEchartOption : props.sysType == 'Zq' ? zqEchartOption : gkEchartOption
 })
 })
 
 
+//时间间隔切换
+function changeRadio(val) {
+  timerTabs.value = val.target.value
+}
+//日期切换
+function onRangeChange(__, time) {
+  searchData.startTime = time[0];
+  searchData.endTime = time[1];
+}
+async function getHistoryData(skip) {
+  if (props.sysType == 'Zq') {
+    let res = await listdays({ pageNo: 1, pageSize: 1000, gdeviceids: props.deviceID, strtype: props.strtype, ttime_begin: searchData.startTime, ttime_end: searchData.endTime, skip: skip })
+    if (res.datalist.records.length) {
+      let count = 0
+      let data = res.datalist.records.find(el => el.readData.flowStdInstant_1)
+      Object.keys(data.readData).forEach(el => {
+        if (el.indexOf('flowStdAccum_') != -1) {
+          count += 1
+        }
+      })
+      listData.value = Array.from({ length: count }).map((el, index) => {
+        return {
+          label: `钻孔${index + 1}`,
+          xData: res.xlist,
+          yData: res.datalist.records.map(dl => dl.readData[`flowStdInstant_${index + 1}`]),
+          yData1: res.datalist.records.map(dl => dl.readData[`injectionPressure_${index + 1}`]),
+        }
+      })
+    }
+  } else if (props.sysType == 'Cc') {
+    let res = await listdays({ pageNo: 1, pageSize: 1000, strtype: 'pump', ttime_begin: searchData.startTime, ttime_end: searchData.endTime, skip: skip })
+    console.log(res, '抽采数据')
+    if (res.datalist.records.length) {
+      let gdevicetype = res.datalist.records.map(v => v.gdevicetype)
+      let count = [...new Set(gdevicetype)].filter(el => el != 'pump_under_1');
+      console.log(count, 'count')
+      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['mixStdInstant']),
+          yData1: res.datalist.records.filter(fl => fl.gdevicetype == el).map(dl => dl.readData['negativePressure']),
+        }
+      })
+      console.log(listData.value, 'listData.value')
+    }
+  }
+
+
+}
+//查询
+function getSearch() {
+  switch (timerTabs.value) {
+    case 'day':
+      getHistoryData('9')
+      break;
+    case 'hours':
+      getHistoryData('8')
+      break;
+    case 'minutes':
+      getHistoryData('6')
+      break;
+  }
+}
 //打开历史数据详情及导出
 //打开历史数据详情及导出
 function handleHistory() {
 function handleHistory() {
   showExport.value = true
   showExport.value = true
@@ -103,6 +162,7 @@ function handleBack() {
 
 
 watch(() => props.isShowExport, (newV, oldV) => {
 watch(() => props.isShowExport, (newV, oldV) => {
   showExport.value = newV
   showExport.value = newV
+  getHistoryData('9')
 }, { immediate: true })
 }, { immediate: true })
 </script>
 </script>
 
 
@@ -120,7 +180,7 @@ watch(() => props.isShowExport, (newV, oldV) => {
   --image-inject_curve_bg: url('@/assets/images/gasInjection/9-3.png');
   --image-inject_curve_bg: url('@/assets/images/gasInjection/9-3.png');
   --image-inject_curve_bg1: url('@/assets/images/gasInjection/9-4.png');
   --image-inject_curve_bg1: url('@/assets/images/gasInjection/9-4.png');
   width: 100%;
   width: 100%;
-  height: 100%;
+  height: 700px;
   padding: 15px 20px;
   padding: 15px 20px;
   box-sizing: border-box;
   box-sizing: border-box;
 
 

+ 26 - 10
src/views/vent/home/configurable/components/gasInject/echartLineDate.vue

@@ -3,8 +3,8 @@
     <!-- 年月日切换 -->
     <!-- 年月日切换 -->
     <div v-if="echartOption.showTime" class="radio-box">
     <div v-if="echartOption.showTime" class="radio-box">
       <a-radio-group v-model:value="nowData" name="radioGroup" @change="changeRadio">
       <a-radio-group v-model:value="nowData" name="radioGroup" @change="changeRadio">
-        <a-radio value="minutes">按分钟</a-radio>
         <a-radio value="hours">按小时</a-radio>
         <a-radio value="hours">按小时</a-radio>
+        <a-radio value="minutes">按分钟</a-radio>
       </a-radio-group>
       </a-radio-group>
     </div>
     </div>
     <div class="echart-line" ref="echartLines"></div>
     <div class="echart-line" ref="echartLines"></div>
@@ -86,25 +86,41 @@ function changeRadio(val) {
 //数据格式化
 //数据格式化
 function getFormat() {
 function getFormat() {
   if (nowData.value == 'hours') {
   if (nowData.value == 'hours') {
-   ecahrtDatas.xData = ['3.26', '3.27', '3.28', '3.29', '3.30', '3.31']
-    // ecahrtDatas.xData = ecahrtDatas.hourData.xlist
-    // ecahrtDatas.injectionPressure = ecahrtDatas.hourData.datalist.records.map(el => el.readData.injectionPressure) || []
-    // ecahrtDatas.flowStdInstant = ecahrtDatas.hourData.datalist.records.map(el => el.readData.flowStdInstant) || []
+    //  ecahrtDatas.xData = ['3.26', '3.27', '3.28', '3.29', '3.30', '3.31']
+    ecahrtDatas.xData = ecahrtDatas.hourData.xlist
+    ecahrtDatas.injectionPressure = ecahrtDatas.hourData.datalist.records.map(el => el.readData.injectionPressure) || []
+    ecahrtDatas.flowStdInstant = ecahrtDatas.hourData.datalist.records.map(el => el.readData.flowStdInstant) || []
+    ecahrtDatas.mixStdInstant = ecahrtDatas.hourData.datalist.records.map(el => el.readData.mixStdInstant) || []
+    ecahrtDatas.negativePressure = ecahrtDatas.hourData.datalist.records.map(el => el.readData.negativePressure) || []
     ecahrtDatas.yData = ["20", "50", "12", "65", "30", "60", "50", "12", "65",]
     ecahrtDatas.yData = ["20", "50", "12", "65", "30", "60", "50", "12", "65",]
     ecahrtDatas.yData1 = ["40", "60", "22", "85", "50", "40", "60", "22", "85",]
     ecahrtDatas.yData1 = ["40", "60", "22", "85", "50", "40", "60", "22", "85",]
     ecahrtDatas.yData2 = ["70", "30", "42", "65", "80", "60", "30", "42", "65",]
     ecahrtDatas.yData2 = ["70", "30", "42", "65", "80", "60", "30", "42", "65",]
-  } else {
-      ecahrtDatas.xData = ['3.26', '3.27', '3.28', '3.29', '3.30', '3.31']
-    // ecahrtDatas.xData = ecahrtDatas.minitesData.xlist || []
-    // ecahrtDatas.injectionPressure = ecahrtDatas.minitesData.datalist.records.map(el => el.readData.injectionPressure) || []
-    // ecahrtDatas.flowStdInstant = ecahrtDatas.minitesData.datalist.records.map(el => el.readData.flowStdInstant) || []
+  } else if (nowData.value == 'minutes') {
+    // ecahrtDatas.xData = ['3.26', '3.27', '3.28', '3.29', '3.30', '3.31']
+    ecahrtDatas.xData = ecahrtDatas.minitesData.xlist || []
+    ecahrtDatas.injectionPressure = ecahrtDatas.minitesData.datalist.records.map(el => el.readData.injectionPressure) || []
+    ecahrtDatas.flowStdInstant = ecahrtDatas.minitesData.datalist.records.map(el => el.readData.flowStdInstant) || []
+    ecahrtDatas.mixStdInstant = ecahrtDatas.minitesData.datalist.records.map(el => el.readData.mixStdInstant) || []
+    ecahrtDatas.negativePressure = ecahrtDatas.minitesData.datalist.records.map(el => el.readData.negativePressure) || []
     ecahrtDatas.yData = ["200", "500", "120", "650", "300", "600", "500", "120", "650",]
     ecahrtDatas.yData = ["200", "500", "120", "650", "300", "600", "500", "120", "650",]
     ecahrtDatas.yData1 = ["400", "600", "220", "850", "500", "400", "600", "220", "850",]
     ecahrtDatas.yData1 = ["400", "600", "220", "850", "500", "400", "600", "220", "850",]
     ecahrtDatas.yData2 = ["700", "300", "420", "650", "800", "600", "300", "420", "650",]
     ecahrtDatas.yData2 = ["700", "300", "420", "650", "800", "600", "300", "420", "650",]
+  } else {
+    //  ecahrtDatas.xData = ['3.26', '3.27', '3.28', '3.29', '3.30', '3.31']
+    //  ecahrtDatas.yData = ["200", "500", "120", "650", "300", "600", "500", "120", "650",]
+    // ecahrtDatas.yData1 = ["400", "600", "220", "850", "500", "400", "600", "220", "850",]
+    // ecahrtDatas.yData2 = ["700", "300", "420", "650", "800", "600", "300", "420", "650",]
+
   }
   }
   getOption()
   getOption()
 }
 }
 
 
+watch(() => props.echartOption, (newV, oldV) => {
+  if (!newV.showTime) {
+    nowData.value = ''
+  }
+}, { immediate: true, deep: true })
+
 watch(() => props.ecahrtData, (newV, oldV) => {
 watch(() => props.ecahrtData, (newV, oldV) => {
   if (newV) {
   if (newV) {
     ecahrtDatas = Object.assign({}, newV)
     ecahrtDatas = Object.assign({}, newV)

+ 58 - 20
src/views/vent/home/configurable/components/gasInject/echartLineDateGk.vue

@@ -3,15 +3,17 @@
     <div class="curve-nav">
     <div class="curve-nav">
       <div class="nav-search">
       <div class="nav-search">
         <!-- 时间查询选项 -->
         <!-- 时间查询选项 -->
-        <a-radio-group v-model:value="timerTabs" name="radioGroup">
+        <a-radio-group v-model:value="timerTabs" name="radioGroup" @change="changeRadio">
           <a-radio value="day">按天</a-radio>
           <a-radio value="day">按天</a-radio>
           <a-radio value="hours">按小时</a-radio>
           <a-radio value="hours">按小时</a-radio>
           <a-radio value="minutes">按分钟</a-radio>
           <a-radio value="minutes">按分钟</a-radio>
         </a-radio-group>
         </a-radio-group>
         <!-- 时间查询条件 -->
         <!-- 时间查询条件 -->
         <a-range-picker style="width:340px" :value="[searchData.startTime, searchData.endTime]"
         <a-range-picker style="width:340px" :value="[searchData.startTime, searchData.endTime]"
-            :show-time="{ format: 'HH:mm' }" valueFormat="YYYY-MM-DD HH:mm" :placeholder="['开始时间', '结束时间']"
-            @change="onRangeChange" />
+          :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>
       <div class="nav-btn" @click="handleHistory">
       <div class="nav-btn" @click="handleHistory">
         <div class="nav-text">
         <div class="nav-text">
@@ -26,7 +28,7 @@
 </template>
 </template>
 
 
 <script setup lang="ts">
 <script setup lang="ts">
-import { computed, nextTick, ref, watch,onMounted, reactive } from 'vue'
+import { computed, nextTick, ref, watch, onMounted, reactive } from 'vue'
 import * as echarts from 'echarts';
 import * as echarts from 'echarts';
 import { listdays } from './gasInject.api'
 import { listdays } from './gasInject.api'
 import dayjs from 'dayjs';
 import dayjs from 'dayjs';
@@ -36,33 +38,69 @@ let props = defineProps({
   echartOption: {
   echartOption: {
     type: Object as any
     type: Object as any
   },
   },
-  //图表数据
-  ecahrtData: {
-    type: Object as any
+  //设备ID
+  deviceID: {
+    type: String
+  },
+  //设备类型
+  strtype: {
+    type: String
   }
   }
 })
 })
 
 
 let timerTabs = ref('day')
 let timerTabs = ref('day')
 //查询时间段-天
 //查询时间段-天
 let searchData = reactive({
 let searchData = reactive({
-  startTime: dayjs().subtract(1, 'day').format('YYYY-MM-DD HH:mm'),
-  endTime: dayjs().format('YYYY-MM-DD HH:mm'),
-
+  startTime: dayjs().subtract(1, 'day').format('YYYY-MM-DD HH:mm:ss'),
+  endTime: dayjs().format('YYYY-MM-DD HH:mm:ss'),
 })
 })
 let echartLines = ref(null)
 let echartLines = ref(null)
+let echartData = reactive({}) as any
 
 
 
 
-
-//获取图表数据
-async function getInit(){
-  // let res=await listdays({ttime_begin})
-  // console.log(res,'图表曲线')
+//时间间隔切换
+function changeRadio(val) {
+  timerTabs.value = val.target.value
 }
 }
 //日期切换
 //日期切换
 function onRangeChange(__, time) {
 function onRangeChange(__, time) {
   searchData.startTime = time[0];
   searchData.startTime = time[0];
   searchData.endTime = time[1];
   searchData.endTime = time[1];
 }
 }
+//获取图表数据
+async function getInit(skip) {
+  let res = await listdays({ pageNo: 1, pageSize: 1000, gdeviceids: props.deviceID, strtype: props.strtype, ttime_begin: searchData.startTime, ttime_end: searchData.endTime, skip: skip })
+  console.log(res, '图表曲线')
+  if (res) {
+    echartData.xData = res.xlist || []
+    echartData.xitongVoltage = res.datalist.records.map(el => el.readData.xitongVoltage) || []
+    echartData.zhujiCurrent = res.datalist.records.map(el => el.readData.zhujiCurrent) || []
+    echartData.fenglengCurrent = res.datalist.records.map(el => el.readData.fenglengCurrent) || []
+    echartData.qianzhouTemp = res.datalist.records.map(el => el.readData.qianzhouTemp) || []
+    echartData.houzhouTemp = res.datalist.records.map(el => el.readData.houzhouTemp) || []
+    echartData.raozuTemp = res.datalist.records.map(el => el.readData.raozuTemp) || []
+    echartData.paiqiTemp = res.datalist.records.map(el => el.readData.paiqiTemp) || []
+    echartData.penyouTemp = res.datalist.records.map(el => el.readData.penyouTemp) || []
+    echartData.youqitongTemp = res.datalist.records.map(el => el.readData.youqitongTemp) || []
+    getOption()
+  }
+}
+//查询
+function getSearch() {
+  console.log(timerTabs.value, 'timerTabs.value')
+  switch (timerTabs.value) {
+    case 'day':
+      getInit('9')
+      break;
+    case 'hours':
+      getInit('8')
+      break;
+    case 'minutes':
+      getInit('6')
+      break;
+  }
+ 
+}
 
 
 function getOption() {
 function getOption() {
   nextTick(() => {
   nextTick(() => {
@@ -96,13 +134,13 @@ function getOption() {
         axisTick: {
         axisTick: {
           show: false,
           show: false,
         },
         },
-        data: props.ecahrtData.xData
+        data: echartData.xData
       }],
       }],
       yAxis: props.echartOption.yAxis,
       yAxis: props.echartOption.yAxis,
       series: props.echartOption.series.map((el, index) => {
       series: props.echartOption.series.map((el, index) => {
         return {
         return {
           ...el,
           ...el,
-          data: props.ecahrtData[el.data]
+          data: echartData[el.data]
         }
         }
       })
       })
     };
     };
@@ -117,9 +155,8 @@ function handleHistory() {
 
 
 }
 }
 
 
-onMounted(()=>{
-  getInit()
-   getOption()
+onMounted( () => {
+  getInit('9')
 })
 })
 
 
 </script>
 </script>
@@ -182,6 +219,7 @@ onMounted(()=>{
     height: 420px;
     height: 420px;
   }
   }
 }
 }
+
 :deep(.zxm-picker) {
 :deep(.zxm-picker) {
   background: #0b223f !important;
   background: #0b223f !important;
   border: 1px solid #1081d7 !important;
   border: 1px solid #1081d7 !important;

+ 75 - 27
src/views/vent/home/configurable/components/gasInject/environHistoryExport.vue

@@ -5,18 +5,19 @@
       <div class="nav-search">
       <div class="nav-search">
         <div class="search-item">
         <div class="search-item">
           <span>时间:</span>
           <span>时间:</span>
-          <a-range-picker style="width:300px" v-model:value="searchData.timer" :show-time="{ format: 'HH:mm' }"
-            format="YYYY-MM-DD HH:mm" :placeholder="['开始时间', '结束时间']" @change="onRangeChange" />
+          <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" />
         </div>
         </div>
         <div class="search-item">
         <div class="search-item">
-          <span>分站:</span>
-          <a-select ref="select" v-model:value="searchData.station" style="width: 240px">
+          <span> 间隔时间:</span>
+          <a-select ref="select" v-model:value="skip" style="width: 240px">
             <a-select-option v-for="(item, index) in optionList" :key="item.label" :value="item.value">{{ item.label
             <a-select-option v-for="(item, index) in optionList" :key="item.label" :value="item.value">{{ item.label
             }}</a-select-option>
             }}</a-select-option>
           </a-select>
           </a-select>
         </div>
         </div>
         <div class="search-item">
         <div class="search-item">
-          <a-button type="primary" preIcon="ant-design:search-outlined">查询</a-button>
+          <a-button type="primary" preIcon="ant-design:search-outlined" @click="getSearch">查询</a-button>
         </div>
         </div>
       </div>
       </div>
       <div class="nav-btn" @click="handleHisExport">
       <div class="nav-btn" @click="handleHisExport">
@@ -38,8 +39,10 @@
 </template>
 </template>
 
 
 <script setup lang="ts">
 <script setup lang="ts">
-import { reactive, ref } from 'vue'
+import { onMounted, reactive, ref } from 'vue'
 import { SvgIcon } from '/@/components/Icon';
 import { SvgIcon } from '/@/components/Icon';
+import { listdays } from './gasInject.api'
+import dayjs from 'dayjs';
 
 
 let props = defineProps({
 let props = defineProps({
   //是否显示返回按钮
   //是否显示返回按钮
@@ -48,33 +51,61 @@ let props = defineProps({
   },
   },
   tableColumn: {
   tableColumn: {
     type: Array
     type: Array
+  },
+  deviceId: {
+    type: String
+  },
+  //设备类型
+  strtype:{
+    type:String
   }
   }
 })
 })
 
 
 let searchData = reactive({
 let searchData = reactive({
-  timer: '',
-  station: '',
+  startTime: dayjs().subtract(1, 'day').format('YYYY-MM-DD HH:mm:ss'),
+  endTime: dayjs().format('YYYY-MM-DD HH:mm:ss'),
 })
 })
+let skip = ref('9')
 let optionList = ref<any[]>([
 let optionList = ref<any[]>([
-  { label: '分站', value: '1' },
-  { label: '分站1', value: '2' },
-  { label: '分站2', value: '3' },
-])
-let dataSource = ref<any[]>([
-  { fileName: '测试' },
-  { fileName: '测试' },
-  { fileName: '测试' },
-  { fileName: '测试' },
-  { fileName: '测试' },
-  { fileName: '测试' },
-  { fileName: '测试' },
-  { fileName: '测试' },
-  { fileName: '测试' },
-  { fileName: '测试' },
-  { fileName: '测试' },
-  { fileName: '测试' },
-  { fileName: '测试' },
+  {
+    label: '1秒',
+    value: '1',
+  },
+  {
+    label: '5秒',
+    value: '2',
+  },
+  {
+    label: '10秒',
+    value: '3',
+  },
+  {
+    label: '30秒',
+    value: '4',
+  },
+  {
+    label: '1分钟',
+    value: '5',
+  },
+  {
+    label: '10分钟',
+    value: '6',
+  },
+  {
+    label: '30分钟',
+    value: '7',
+  },
+  {
+    label: '1小时',
+    value: '8',
+  },
+  {
+    label: '1天',
+    value: '9',
+  },
+
 ])
 ])
+let dataSource = ref<any[]>([])
 //分页参数配置
 //分页参数配置
 let pagination = reactive({
 let pagination = reactive({
   current: 1, // 当前页码
   current: 1, // 当前页码
@@ -90,10 +121,27 @@ let $emit = defineEmits(['handleBack'])
 function handleBack() {
 function handleBack() {
   $emit('handleBack')
   $emit('handleBack')
 }
 }
+//查询
+function getSearch() {
+  pagination.current = 1
+  getTbleData()
+}
+//获取table数据
+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, '环境监测')
+}
 //导出历史数据
 //导出历史数据
 function handleHisExport() { }
 function handleHisExport() { }
 //日期切换
 //日期切换
-function onRangeChange() { }
+function onRangeChange(__, time) {
+  searchData.startTime = time[0];
+  searchData.endTime = time[1];
+}
+
+onMounted(() => {
+  getTbleData()
+})
 </script>
 </script>
 
 
 <style lang="less" scoped>
 <style lang="less" scoped>

+ 44 - 7
src/views/vent/home/configurable/components/gasInject/environmentDetailTable.vue

@@ -1,28 +1,65 @@
 <template>
 <template>
   <div class="environment-detail-table">
   <div class="environment-detail-table">
-    <a-tabs v-model:activeKey="activeKey">
+    <a-tabs v-model:activeKey="activeKey" @change="changeTab">
       <a-tab-pane key="1" tab="氧气传感器">
       <a-tab-pane key="1" tab="氧气传感器">
-        <environHistoryExport :isShowIcon="true" :tableColumn="columnZy"></environHistoryExport>
+        <environHistoryExport :isShowIcon="true" :tableColumn="columnZy" :deviceId="deviceId" :strtype="strtype"></environHistoryExport>
       </a-tab-pane>
       </a-tab-pane>
       <a-tab-pane key="2" tab="甲烷传感器">
       <a-tab-pane key="2" tab="甲烷传感器">
-        <environHistoryExport :isShowIcon="true" :tableColumn="columnCc"></environHistoryExport>
+        <environHistoryExport :isShowIcon="true" :tableColumn="columnCc" :deviceId="deviceId" :strtype="strtype"></environHistoryExport>
       </a-tab-pane>
       </a-tab-pane>
       <a-tab-pane key="3" tab="温度传感器">
       <a-tab-pane key="3" tab="温度传感器">
-        <environHistoryExport :isShowIcon="true" :tableColumn="columnCc"></environHistoryExport>
+        <environHistoryExport :isShowIcon="true" :tableColumn="columnCc" :deviceId="deviceId" :strtype="strtype"></environHistoryExport>
       </a-tab-pane>
       </a-tab-pane>
-       <a-tab-pane key="4" tab="CO传感器">
-        <environHistoryExport :isShowIcon="true" :tableColumn="columnCc"></environHistoryExport>
+      <a-tab-pane key="4" tab="CO传感器">
+        <environHistoryExport :isShowIcon="true" :tableColumn="columnCc" :deviceId="deviceId" :strtype="strtype"></environHistoryExport>
       </a-tab-pane>
       </a-tab-pane>
     </a-tabs>
     </a-tabs>
   </div>
   </div>
 </template>
 </template>
 
 
 <script setup lang='ts'>
 <script setup lang='ts'>
-import { ref } from 'vue'
+import { ref, onMounted, watchEffect, watch, onBeforeMount } from 'vue'
 import environHistoryExport from './environHistoryExport.vue'
 import environHistoryExport from './environHistoryExport.vue'
 import { columnZy, columnCc } from './gasInject.data'
 import { columnZy, columnCc } from './gasInject.data'
 
 
+
+let props = defineProps({
+  deviceData: {
+    type: Object as any
+  },
+  //设备类型
+  strtype:{
+    type:String
+  }
+})
 let activeKey = ref('1')
 let activeKey = ref('1')
+let deviceId = ref('')
+
+//tab切换
+function changeTab(val) {
+  activeKey.value = val
+  switch (val) {
+    case '1':
+      deviceId.value = props.deviceData.o2.deviceID
+      break;
+    case '2':
+      deviceId.value = props.deviceData.ch4.deviceID
+      break;
+    case '3':
+      deviceId.value = props.deviceData.temp.deviceID
+      break;
+    case '4':
+      deviceId.value = props.deviceData.co.deviceID
+      break;
+  }
+}
+
+
+onBeforeMount(() => {
+  if (props.deviceData.o2) {
+    deviceId.value = props.deviceData.o2.deviceID
+  }
+})
 </script>
 </script>
 
 
 <style lang="less" scoped>
 <style lang="less" scoped>

+ 7 - 0
src/views/vent/home/configurable/components/gasInject/gasInject.api.ts

@@ -9,6 +9,7 @@ enum Api {
 getlist = '/safety/ventanalyDevicesetLog/list',
 getlist = '/safety/ventanalyDevicesetLog/list',
 devicecontrol='/safety/ventanalyMonitorData/devicecontrol',
 devicecontrol='/safety/ventanalyMonitorData/devicecontrol',
 listdays = '/safety/ventanalyMonitorData/listdays',
 listdays = '/safety/ventanalyMonitorData/listdays',
+historydata='/safety/ventanalyMonitorData/export/historydata',
 
 
 getCameraUrl = '/monitor/camera/queryByCameraCode',
 getCameraUrl = '/monitor/camera/queryByCameraCode',
 //insertSyncRule = '/ventanaly-device/synccontrol/upcoming/saveOrUpdateRule',
 //insertSyncRule = '/ventanaly-device/synccontrol/upcoming/saveOrUpdateRule',
@@ -52,6 +53,12 @@ export const listdays = (params) => defHttp.get({ url: Api.listdays, params },{
 
 
 export const cameraAddr = (params) => defHttp.get({ url: Api.getCameraUrl, params });
 export const cameraAddr = (params) => defHttp.get({ url: Api.getCameraUrl, params });
 
 
+/**
+* 详情历史-导出
+* @param params
+*/
+export const historydataExport = (params) => defHttp.get({ url: Api.historydata, params, responseType: 'blob' });
+
 /**
 /**
 * 定时设置-读取规则
 * 定时设置-读取规则
 * @param params
 * @param params

+ 495 - 10
src/views/vent/home/configurable/components/gasInject/gasInject.data.ts

@@ -1,6 +1,293 @@
 import * as echarts from 'echarts';
 import * as echarts from 'echarts';
 import { BasicColumn } from '/@/components/Table';
 import { BasicColumn } from '/@/components/Table';
 
 
+//装备控制
+export let columnControl: BasicColumn[] = [
+  {
+    title: '序号',
+    width: 60,
+    align: 'center',
+    customRender: ({ index }: { index: number }) => `${index + 1}`
+  },
+  {
+    title: '设备名称',
+    dataIndex: 'devicename',
+    key: 'devicename',
+    align: 'center',
+    ellipsis: true,
+  },
+  {
+    title: '状态',
+    dataIndex: 'strremark',
+    key: 'strremark',
+    align: 'center',
+    ellipsis: true,
+  },
+  {
+    title: '操作人',
+    dataIndex: 'username',
+    key: 'username',
+    align: 'center',
+    ellipsis: true,
+  },
+  {
+    title: '操作时间',
+    dataIndex: 'createTime',
+    key: 'createTime',
+    align: 'center',
+    ellipsis: true,
+  },
+]
+//注气参数
+export let tableColumnZqcs: BasicColumn[] = [
+  {
+    title: '序号',
+    width: 60,
+    align: 'center',
+    customRender: ({ index }: { index: number }) => `${index + 1}`
+  },
+  {
+    title: '时间',
+    dataIndex: 'gcreatetime',
+    key: 'gcreatetime',
+    align: 'center',
+    ellipsis: true,
+  },
+  {
+    title: '1#钻孔',
+    children: [
+      {
+        title: '注气压力',
+        dataIndex: 'injectionPressure_1',
+        key: 'injectionPressure_1',
+        align: 'center',
+        ellipsis: true,
+      },
+      {
+        title: '标况瞬时流量',
+        dataIndex: 'flowStdInstant_1',
+        key: 'flowStdInstant_1',
+        align: 'center',
+        ellipsis: true,
+      },
+      {
+        title: '标况累计流量',
+        dataIndex: 'flowStdAccum_1',
+        key: 'flowStdAccum_1',
+        align: 'center',
+        ellipsis: true,
+      },
+      {
+        title: '工况瞬时流量',
+        dataIndex: 'flowWorkInstant_1',
+        key: 'flowWorkInstant_1',
+        align: 'center',
+        ellipsis: true,
+      },
+      {
+        title: '工况累计流量',
+        dataIndex: 'flowWorkAccum_1',
+        key: 'flowWorkAccum_1',
+        align: 'center',
+        ellipsis: true,
+      },
+    ]
+  },
+
+  {
+    title: '2#钻孔',
+    children: [
+      {
+        title: '注气压力',
+        dataIndex: 'injectionPressure_2',
+        key: 'injectionPressure_2',
+        align: 'center',
+        ellipsis: true,
+      },
+      {
+        title: '标况瞬时流量',
+        dataIndex: 'flowStdInstant_2',
+        key: 'flowStdInstant_2',
+        align: 'center',
+        ellipsis: true,
+      },
+      {
+        title: '标况累计流量',
+        dataIndex: 'flowStdAccum_2',
+        key: 'flowStdAccum_2',
+        align: 'center',
+        ellipsis: true,
+      },
+      {
+        title: '工况瞬时流量',
+        dataIndex: 'flowWorkInstant_2',
+        key: 'flowWorkInstant_2',
+        align: 'center',
+        ellipsis: true,
+      },
+      {
+        title: '工况累计流量',
+        dataIndex: 'flowWorkAccum_2',
+        key: 'flowWorkAccum_2',
+        align: 'center',
+        ellipsis: true,
+      },
+    ]
+  },
+ 
+ {
+    title: '3#钻孔',
+    children: [
+      {
+        title: '注气压力',
+        dataIndex: 'injectionPressure_3',
+        key: 'injectionPressure_3',
+        align: 'center',
+        ellipsis: true,
+      },
+      {
+        title: '标况瞬时流量',
+        dataIndex: 'flowStdInstant_3',
+        key: 'flowStdInstant_3',
+        align: 'center',
+        ellipsis: true,
+      },
+      {
+        title: '标况累计流量',
+        dataIndex: 'flowStdAccum_3',
+        key: 'flowStdAccum_3',
+        align: 'center',
+        ellipsis: true,
+      },
+      {
+        title: '工况瞬时流量',
+        dataIndex: 'flowWorkInstant_3',
+        key: 'flowWorkInstant_3',
+        align: 'center',
+        ellipsis: true,
+      },
+      {
+        title: '工况累计流量',
+        dataIndex: 'flowWorkAccum_3',
+        key: 'flowWorkAccum_3',
+        align: 'center',
+        ellipsis: true,
+      },
+    ]
+  },
+  {
+    title: '4#钻孔',
+    children: [
+      {
+        title: '注气压力',
+        dataIndex: 'injectionPressure_4',
+        key: 'injectionPressure_4',
+        align: 'center',
+        ellipsis: true,
+      },
+      {
+        title: '标况瞬时流量',
+        dataIndex: 'flowStdInstant_4',
+        key: 'flowStdInstant_4',
+        align: 'center',
+        ellipsis: true,
+      },
+      {
+        title: '标况累计流量',
+        dataIndex: 'flowStdAccum_4',
+        key: 'flowStdAccum_4',
+        align: 'center',
+        ellipsis: true,
+      },
+      {
+        title: '工况瞬时流量',
+        dataIndex: 'flowWorkInstant_4',
+        key: 'flowWorkInstant_4',
+        align: 'center',
+        ellipsis: true,
+      },
+      {
+        title: '工况累计流量',
+        dataIndex: 'flowWorkAccum_4',
+        key: 'flowWorkAccum_4',
+        align: 'center',
+        ellipsis: true,
+      },
+    ]
+  },
+]
+//抽采参数
+export let tableColumnCcs: BasicColumn[] = [
+  {
+    title: '序号',
+    width: 60,
+    align: 'center',
+    customRender: ({ index }: { index: number }) => `${index + 1}`
+  },
+  {
+    title: '设备名称',
+    dataIndex: 'gdevicename',
+    key: 'gdevicename',
+    align: 'center',
+    ellipsis: true,
+  },
+  {
+    title: '瓦斯浓度',
+    dataIndex: 'gasConcentration',
+    key: 'gasConcentration',
+    align: 'center',
+    ellipsis: true,
+  },
+  {
+    title: '抽采负压',
+    dataIndex: 'negativePressure',
+    key: 'negativePressure',
+    align: 'center',
+    ellipsis: true,
+  },
+  {
+    title: '混合气体标况总量',
+    dataIndex: 'mixStdTotal',
+    key: 'mixStdTotal',
+    align: 'center',
+    ellipsis: true,
+  },
+   {
+    title: '混合气体标况瞬量',
+    dataIndex: 'mixStdInstant',
+    key: 'mixStdInstant',
+    align: 'center',
+    ellipsis: true,
+  },
+   {
+    title: '甲烷气体标况总量',
+    dataIndex: 'methaneStdTotal',
+    key: 'methaneStdTotal',
+    align: 'center',
+    ellipsis: true,
+  },
+   {
+    title: '甲烷气体标况瞬量',
+    dataIndex: 'methaneStdInstant',
+    key: 'methaneStdInstant',
+    align: 'center',
+    ellipsis: true,
+  },
+   {
+    title: '累计流量',
+    dataIndex: 'qn',
+    key: 'qn',
+    align: 'center',
+    ellipsis: true,
+  },
+   {
+    title: '时间',
+    dataIndex: 'gcreatetime',
+    key: 'gcreatetime',
+    align: 'center',
+    ellipsis: true,
+  },
+]
 export let columnZy: BasicColumn[] = [
 export let columnZy: BasicColumn[] = [
   {
   {
     title: '序号',
     title: '序号',
@@ -1232,7 +1519,7 @@ export let echartOptionGk = {
   },
   },
   legend: {
   legend: {
     top: '2%',
     top: '2%',
-    right: 'center',
+    left:'center',
     icon: 'circle',
     icon: 'circle',
     itemWidth: 8,
     itemWidth: 8,
     itemHeight: 8,
     itemHeight: 8,
@@ -1244,10 +1531,13 @@ export let echartOptionGk = {
     data: [
     data: [
       { name: '系统电压' },
       { name: '系统电压' },
       { name: '主机电流' },
       { name: '主机电流' },
-      { name: '风电流' },
+      { name: '风电流' },
       { name: '前轴温度' },
       { name: '前轴温度' },
       { name: '后轴温度' },
       { name: '后轴温度' },
       { name: '绕组温度' },
       { name: '绕组温度' },
+      { name: '排气温度' },
+      { name: '喷油温度' },
+      { name: '油气桶温度' },
     ]
     ]
   },
   },
   yAxis: [
   yAxis: [
@@ -1322,7 +1612,7 @@ export let echartOptionGk = {
     {
     {
       type: 'value',
       type: 'value',
       position: 'right', // Y轴2在右边
       position: 'right', // Y轴2在右边
-      offset:80,
+      offset: 80,
       name: '( ℃)',
       name: '( ℃)',
       nameTextStyle: {
       nameTextStyle: {
         color: "#a3a7ae",
         color: "#a3a7ae",
@@ -1392,7 +1682,7 @@ export let echartOptionGk = {
           shadowBlur: 20 //shadowBlur设图形阴影的模糊大小。配合shadowColor,shadowOffsetX/Y, 设置图形的阴影效果。
           shadowBlur: 20 //shadowBlur设图形阴影的模糊大小。配合shadowColor,shadowOffsetX/Y, 设置图形的阴影效果。
         }
         }
       },
       },
-      data: 'yData'
+      data: 'xitongVoltage'
     },
     },
     {
     {
       name: '主机电流',
       name: '主机电流',
@@ -1431,10 +1721,10 @@ export let echartOptionGk = {
           shadowBlur: 20 //shadowBlur设图形阴影的模糊大小。配合shadowColor,shadowOffsetX/Y, 设置图形的阴影效果。
           shadowBlur: 20 //shadowBlur设图形阴影的模糊大小。配合shadowColor,shadowOffsetX/Y, 设置图形的阴影效果。
         }
         }
       },
       },
-      data: 'yData1'
+      data: 'zhujiCurrent'
     },
     },
-     {
-      name: '风电流',
+    {
+      name: '风电流',
       type: 'line',
       type: 'line',
       symbol: 'circle', // 默认是空心圆(中间是白色的),改成实心圆
       symbol: 'circle', // 默认是空心圆(中间是白色的),改成实心圆
       showAllSymbol: true,
       showAllSymbol: true,
@@ -1470,9 +1760,9 @@ export let echartOptionGk = {
           shadowBlur: 20 //shadowBlur设图形阴影的模糊大小。配合shadowColor,shadowOffsetX/Y, 设置图形的阴影效果。
           shadowBlur: 20 //shadowBlur设图形阴影的模糊大小。配合shadowColor,shadowOffsetX/Y, 设置图形的阴影效果。
         }
         }
       },
       },
-      data: 'yData2'
+      data: 'fenglengCurrent'
     },
     },
-     {
+    {
       name: '前轴温度',
       name: '前轴温度',
       type: 'line',
       type: 'line',
       symbol: 'circle', // 默认是空心圆(中间是白色的),改成实心圆
       symbol: 'circle', // 默认是空心圆(中间是白色的),改成实心圆
@@ -1509,7 +1799,202 @@ export let echartOptionGk = {
           shadowBlur: 20 //shadowBlur设图形阴影的模糊大小。配合shadowColor,shadowOffsetX/Y, 设置图形的阴影效果。
           shadowBlur: 20 //shadowBlur设图形阴影的模糊大小。配合shadowColor,shadowOffsetX/Y, 设置图形的阴影效果。
         }
         }
       },
       },
-      data: 'yData3'
+      data: 'qianzhouTemp'
+    },
+    {
+      name: '后轴温度',
+      type: 'line',
+      symbol: 'circle', // 默认是空心圆(中间是白色的),改成实心圆
+      showAllSymbol: true,
+      symbolSize: 0,
+      smooth: true,
+      yAxisIndex: 2,
+      lineStyle: {
+        normal: {
+          width: 2,
+          color: 'rgba(228, 90, 186,1)', // 线条颜色
+        },
+        borderColor: 'rgba(0,0,0,.4)',
+      },
+      itemStyle: {
+        color: 'rgba(228, 90, 186,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(228, 90, 186,.4)"
+          },
+          {
+            offset: 1,
+            color: "rgba(228, 90, 186, .1)"
+          }
+          ], false),
+          shadowColor: 'rgba(228, 90, 186, 0.5)', //阴影颜色
+          shadowBlur: 20 //shadowBlur设图形阴影的模糊大小。配合shadowColor,shadowOffsetX/Y, 设置图形的阴影效果。
+        }
+      },
+      data: 'houzhouTemp'
+    },
+    {
+      name: '绕组温度',
+      type: 'line',
+      symbol: 'circle', // 默认是空心圆(中间是白色的),改成实心圆
+      showAllSymbol: true,
+      symbolSize: 0,
+      smooth: true,
+      yAxisIndex: 2,
+      lineStyle: {
+        normal: {
+          width: 2,
+          color: 'rgba(6, 199, 99,1)', // 线条颜色
+        },
+        borderColor: 'rgba(0,0,0,.4)',
+      },
+      itemStyle: {
+        color: 'rgba(6, 199, 99,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(6, 199, 99,.4)"
+          },
+          {
+            offset: 1,
+            color: "rgba(6, 199, 99, .1)"
+          }
+          ], false),
+          shadowColor: 'rgba(6, 199, 99, 0.5)', //阴影颜色
+          shadowBlur: 20 //shadowBlur设图形阴影的模糊大小。配合shadowColor,shadowOffsetX/Y, 设置图形的阴影效果。
+        }
+      },
+      data: 'raozuTemp'
+    },
+    {
+      name: '排气温度',
+      type: 'line',
+      symbol: 'circle', // 默认是空心圆(中间是白色的),改成实心圆
+      showAllSymbol: true,
+      symbolSize: 0,
+      smooth: true,
+      yAxisIndex: 2,
+      lineStyle: {
+        normal: {
+          width: 2,
+          color: 'rgba(252, 195, 31,1)', // 线条颜色
+        },
+        borderColor: 'rgba(0,0,0,.4)',
+      },
+      itemStyle: {
+        color: 'rgba(252, 195, 31,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, 195, 31,.4)"
+          },
+          {
+            offset: 1,
+            color: "rgba(252, 195, 31, .1)"
+          }
+          ], false),
+          shadowColor: 'rgba(252, 195, 31, 0.5)', //阴影颜色
+          shadowBlur: 20 //shadowBlur设图形阴影的模糊大小。配合shadowColor,shadowOffsetX/Y, 设置图形的阴影效果。
+        }
+      },
+      data: 'paiqiTemp'
+    },
+    {
+      name: '喷油温度',
+      type: 'line',
+      symbol: 'circle', // 默认是空心圆(中间是白色的),改成实心圆
+      showAllSymbol: true,
+      symbolSize: 0,
+      smooth: true,
+      yAxisIndex: 2,
+      lineStyle: {
+        normal: {
+          width: 2,
+          color: 'rgba(218, 170, 183,1)', // 线条颜色
+        },
+        borderColor: 'rgba(0,0,0,.4)',
+      },
+      itemStyle: {
+        color: 'rgba(218, 170, 183,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(218, 170, 183,.4)"
+          },
+          {
+            offset: 1,
+            color: "rgba(218, 170, 183, .1)"
+          }
+          ], false),
+          shadowColor: 'rgba(218, 170, 183, 0.5)', //阴影颜色
+          shadowBlur: 20 //shadowBlur设图形阴影的模糊大小。配合shadowColor,shadowOffsetX/Y, 设置图形的阴影效果。
+        }
+      },
+      data: 'penyouTemp'
+    },
+    {
+      name: '油气桶温度',
+      type: 'line',
+      symbol: 'circle', // 默认是空心圆(中间是白色的),改成实心圆
+      showAllSymbol: true,
+      symbolSize: 0,
+      smooth: true,
+      yAxisIndex: 2,
+      lineStyle: {
+        normal: {
+          width: 2,
+          color: 'rgba(242, 117, 148,1)', // 线条颜色
+        },
+        borderColor: 'rgba(0,0,0,.4)',
+      },
+      itemStyle: {
+        color: 'rgba(242, 117, 148,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(242, 117, 148,.4)"
+          },
+          {
+            offset: 1,
+            color: "rgba(242, 117, 148, .1)"
+          }
+          ], false),
+          shadowColor: 'rgba(242, 117, 148, 0.5)', //阴影颜色
+          shadowBlur: 20 //shadowBlur设图形阴影的模糊大小。配合shadowColor,shadowOffsetX/Y, 设置图形的阴影效果。
+        }
+      },
+      data: 'youqitongTemp'
     },
     },
   ]
   ]
 }
 }

+ 56 - 14
src/views/vent/home/configurable/components/gasInject/zqHistoryExport.vue

@@ -6,8 +6,10 @@
         <div class="search-item">
         <div class="search-item">
           <span>时间:</span>
           <span>时间:</span>
           <a-range-picker style="width:340px" :value="[searchData.startTime, searchData.endTime]"
           <a-range-picker style="width:340px" :value="[searchData.startTime, searchData.endTime]"
-            :show-time="{ format: 'HH:mm' }" valueFormat="YYYY-MM-DD HH:mm" :placeholder="['开始时间', '结束时间']"
+            :show-time="{ format: 'HH:mm:ss' }" valueFormat="YYYY-MM-DD HH:mm:ss" :placeholder="['开始时间', '结束时间']"
             @change="onRangeChange" />
             @change="onRangeChange" />
+          <a-button type="primary" preIcon="ant-design:search-outlined" @click="getSearch"
+            style="margin-left: 10px;">查询</a-button>
         </div>
         </div>
       </div>
       </div>
       <div class="nav-btn" @click="handleHisExport">
       <div class="nav-btn" @click="handleHisExport">
@@ -19,7 +21,7 @@
     </div>
     </div>
     <div class="main-content">
     <div class="main-content">
       <a-table size="small" :dataSource="dataSource" :columns="tableColumn" :scroll="{ y: 455 }"
       <a-table size="small" :dataSource="dataSource" :columns="tableColumn" :scroll="{ y: 455 }"
-        :pagination="pagination">
+        :pagination="pagination" @change="changePage">
         <template #action="{ record }">
         <template #action="{ record }">
           <!-- <a class="table-action-link" @click="handleSpDetail(record)">审批详情</a> -->
           <!-- <a class="table-action-link" @click="handleSpDetail(record)">审批详情</a> -->
         </template>
         </template>
@@ -31,7 +33,7 @@
 <script setup lang="ts">
 <script setup lang="ts">
 import { reactive, ref, onMounted } from 'vue'
 import { reactive, ref, onMounted } from 'vue'
 import { SvgIcon } from '/@/components/Icon';
 import { SvgIcon } from '/@/components/Icon';
-import { getList } from './gasInject.api'
+import { listdays, getList, historydataExport } from './gasInject.api'
 import dayjs from 'dayjs';
 import dayjs from 'dayjs';
 
 
 let props = defineProps({
 let props = defineProps({
@@ -41,12 +43,24 @@ let props = defineProps({
   },
   },
   tableColumn: {
   tableColumn: {
     type: Array
     type: Array
+  },
+  //设备ID
+  deviceId: {
+    type: String
+  },
+  //详情页数据类型
+  detailType: {
+    type: String
+  },
+  //设备类型
+  strtype:{
+    type:String
   }
   }
 })
 })
 
 
 let searchData = reactive({
 let searchData = reactive({
-  startTime: dayjs().subtract(1, 'day').format('YYYY-MM-DD HH:mm'),
-  endTime: dayjs().format('YYYY-MM-DD HH:mm'),
+  startTime: dayjs().subtract(1, 'day').format('YYYY-MM-DD HH:mm:ss'),
+  endTime: dayjs().format('YYYY-MM-DD HH:mm:ss'),
 
 
 })
 })
 let dataSource = ref<any[]>([
 let dataSource = ref<any[]>([
@@ -67,22 +81,50 @@ let $emit = defineEmits(['handleBack'])
 function handleBack() {
 function handleBack() {
   $emit('handleBack')
   $emit('handleBack')
 }
 }
+//日期切换
+function onRangeChange(__, time) {
+  searchData.startTime = time[0];
+  searchData.endTime = time[1];
+}
 
 
 //注气详情table数据
 //注气详情table数据
 async function getHistoryTableData() {
 async function getHistoryTableData() {
-  let res = await getList({ pageNo: pagination.current, pageSize: pagination.pageSize, createTime_begin: searchData.startTime, createTime_end: searchData.endTime, devicetype: 'injection_standard' })
-  console.log(res, '装备运行状态与控制')
-  dataSource.value = res.records || []
-  pagination.total = res.total
+  if (props.detailType == 'history') {
+    let res = await listdays({ pageNo: pagination.current, pageSize: pagination.pageSize, gdeviceids: props.deviceId, strtype: props.strtype, ttime_begin: searchData.startTime, ttime_end: searchData.endTime, skip: '8' })
+    console.log(res, 'tableData---')
+    let data = res.datalist.records.map(el => {
+      return {
+        ...el,
+        ...el.readData
+      }
+    })
+    dataSource.value = data
+    pagination.total = res.datalist.total
+  } else {
+    let res = await getList({ pageNo: pagination.current, pageSize: pagination.pageSize, createTime_begin: searchData.startTime, createTime_end: searchData.endTime, devicetype: props.strtype })
+    console.log(res, '装备运行状态与控制')
+    dataSource.value = res.records || []
+    pagination.total = res.total
+  }
+}
+//查询
+function getSearch() {
+  pagination.current = 1
+  getHistoryTableData()
+}
+//切换分页
+function changePage(val) {
+  pagination.current = val.current;
+  pagination.pageSize = val.pageSize;
+  getHistoryTableData()
 }
 }
 //导出历史数据
 //导出历史数据
-function handleHisExport() { }
-//日期切换
-function onRangeChange(__, time) {
-  searchData.startTime = time[0];
-  searchData.endTime = time[1];
+async function handleHisExport() {
+  let res = await historydataExport({ 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, '导出')
 }
 }
 
 
+
 onMounted(() => {
 onMounted(() => {
   getHistoryTableData()
   getHistoryTableData()
 })
 })

+ 26 - 21
src/views/vent/home/configurable/components/gasInject/zqMonitorDetail.vue

@@ -1,6 +1,6 @@
 <template>
 <template>
   <div class="zq-monitor">
   <div class="zq-monitor">
-    <template v-if="!showExport">
+    <!-- <template v-if="!showExport">
       <div class="nav-box">
       <div class="nav-box">
         <div class="nav-btn" @click="handleExport">
         <div class="nav-btn" @click="handleExport">
           <div class="nav-text">
           <div class="nav-text">
@@ -46,10 +46,10 @@
           </div>
           </div>
         </div>
         </div>
       </div>
       </div>
-    </template>
-    <template v-else>
-      <zqHistoryExport :tableColumn="tableColumn" :isShowIcon="isShowExport" @handleBack="handleBack"></zqHistoryExport>
-    </template>
+    </template> -->
+    <zqHistoryExport :tableColumn="tableColumn" :detailType="'operation'" :isShowIcon="isShowExport" :deviceId="deviceID"  :strtype="strtype"
+      @handleBack="handleBack">
+    </zqHistoryExport>
   </div>
   </div>
 </template>
 </template>
 
 
@@ -65,15 +65,20 @@ let props = defineProps({
     type: Boolean
     type: Boolean
   },
   },
   //table列
   //table列
-  tableColumn:{
-    type:Array
+  tableColumn: {
+    type: Array
   },
   },
   //详情界面配置项
   //详情界面配置项
-  optionDetail:{
-    type:Array
+  optionDetail: {
+    type: Array
   },
   },
-  data:{
-    type:Object as any
+  //设备ID
+  deviceID: {
+    type: String
+  },
+  //设备类型
+  strtype:{
+    type:String
   }
   }
 })
 })
 
 
@@ -84,32 +89,32 @@ let zqDetailData1 = reactive({
   value2: '10',
   value2: '10',
   value3: '10',
   value3: '10',
   value4: '10',
   value4: '10',
-  value5:'10',
-   value6:'10',
+  value5: '10',
+  value6: '10',
 })
 })
 let zqDetailData2 = reactive({
 let zqDetailData2 = reactive({
   value1: '20',
   value1: '20',
   value2: '20',
   value2: '20',
   value3: '20',
   value3: '20',
   value4: '20',
   value4: '20',
-   value5:'20',
-   value6:'20',
+  value5: '20',
+  value6: '20',
 })
 })
 let zqDetailData3 = reactive({
 let zqDetailData3 = reactive({
   value1: '30',
   value1: '30',
   value2: '30',
   value2: '30',
   value3: '30',
   value3: '30',
   value4: '30',
   value4: '30',
-   value5:'30',
-   value6:'30',
+  value5: '30',
+  value6: '30',
 })
 })
 let zqDetailData4 = reactive({
 let zqDetailData4 = reactive({
   value1: '40',
   value1: '40',
   value2: '40',
   value2: '40',
   value3: '40',
   value3: '40',
   value4: '40',
   value4: '40',
-   value5:'40',
-   value6:'40',
+  value5: '40',
+  value6: '40',
 })
 })
 
 
 
 
@@ -118,8 +123,8 @@ function handleExport() {
   showExport.value = true
   showExport.value = true
 }
 }
 //历史数据返回至详情
 //历史数据返回至详情
-function handleBack(){
-  showExport.value=false
+function handleBack() {
+  showExport.value = false
 }
 }
 
 
 watch(() => props.isShowExport, (newV, oldV) => {
 watch(() => props.isShowExport, (newV, oldV) => {

+ 44 - 7
src/views/vent/home/configurable/components/preset/gasDeviceStatusControl.vue

@@ -38,11 +38,11 @@
       <div class="pass-box" style="margin:25px 15px;">
       <div class="pass-box" style="margin:25px 15px;">
         <p style="display: flex;align-items: center;justify-content: center;">
         <p style="display: flex;align-items: center;justify-content: center;">
           <ExclamationCircleFilled style="color: #ffb700; font-size: 20px;margin-right: 10px;" />
           <ExclamationCircleFilled style="color: #ffb700; font-size: 20px;margin-right: 10px;" />
-          您是否要进行{{modalOpration }} ?
+          您是否要进行{{ modalLabel }} ?
         </p>
         </p>
         <div style="display: flex;align-items: center;">
         <div style="display: flex;align-items: center;">
           <span style="width:100px">操作密码:</span>
           <span style="width:100px">操作密码:</span>
-          <a-input-password  v-model:value="passWords" :disabled="false" />
+          <a-input-password v-model:value="passWords" :disabled="false" />
         </div>
         </div>
       </div>
       </div>
     </a-modal>
     </a-modal>
@@ -54,6 +54,7 @@ import { reactive, ref, watch } from 'vue'
 import { SvgIcon } from '/@/components/Icon';
 import { SvgIcon } from '/@/components/Icon';
 import { ExclamationCircleFilled } from '@ant-design/icons-vue';
 import { ExclamationCircleFilled } from '@ant-design/icons-vue';
 import { devicecontrol } from '../gasInject/gasInject.api'
 import { devicecontrol } from '../gasInject/gasInject.api'
+import { useMessage } from '/@/hooks/web/useMessage';
 
 
 let props = defineProps({
 let props = defineProps({
   option: {
   option: {
@@ -64,10 +65,13 @@ let props = defineProps({
   }
   }
 })
 })
 
 
+const { createMessage } = useMessage();
 let statusDatas = reactive({}) as any
 let statusDatas = reactive({}) as any
 let presure = ref('')
 let presure = ref('')
 let visibleTip = ref(false)//密码提示弹窗是否开启
 let visibleTip = ref(false)//密码提示弹窗是否开启
-let modalOpration = ref('')
+let modalLabel = ref('')
+let modalCode = ref('')
+let modalStatusVal = ref('')
 let passWords = ref('')//操作密码
 let passWords = ref('')//操作密码
 
 
 //设置
 //设置
@@ -78,25 +82,58 @@ function handleSetting() {
 function handlerClick(param, item) {
 function handlerClick(param, item) {
   passWords.value = ''
   passWords.value = ''
   visibleTip.value = true
   visibleTip.value = true
-  modalOpration.value=item.label
+  modalLabel.value = item.label
   switch (param) {
   switch (param) {
     case 'open':
     case 'open':
       statusDatas[item.value] = '1'
       statusDatas[item.value] = '1'
+      if (item.isPqfm) {
+        //排气端阀门
+        modalCode.value = 'runStatus'
+      } else {
+        //装备启停
+        modalCode.value = 'runStatus'
+      }
+      modalStatusVal.value = '1'
       break;
       break;
     case 'close':
     case 'close':
       statusDatas[item.value] = '0'
       statusDatas[item.value] = '0'
+      if (item.isPqfm) {
+        //排气端阀门
+        modalCode.value = 'runStatus'
+      } else {
+        //装备启停
+        modalCode.value = 'runStatus'
+      }
+      modalStatusVal.value = '0'
       break;
       break;
     case 'jd':
     case 'jd':
+      modalCode.value = 'remoteStatus'
+      modalStatusVal.value = '1'
       break;
       break;
     case 'yc':
     case 'yc':
+      modalCode.value = 'remoteStatus'
+      modalStatusVal.value = '0'
+      break;
+    case 'set':
+      modalCode.value = 'remoteStatus'
+      modalStatusVal.value = '1'
       break;
       break;
   }
   }
 }
 }
 //密码提示弹窗-确定
 //密码提示弹窗-确定
 async function handleOk() {
 async function handleOk() {
-  let res= await devicecontrol({deviceid:statusDatas.deviceId,devicetype:statusDatas.devicetype,masterComputer: 0,paramcode:'',password:passWords.value})
-  console.log(res,'控制---')
-  visibleTip.value = false
+  if (!passWords.value) {
+    createMessage.warning('请输入密码!');
+  } else {
+    let res = await devicecontrol({ deviceid: statusDatas.deviceId, devicetype: statusDatas.devicetype, masterComputer: 0, paramcode: modalCode.value, password: passWords.value, value:modalStatusVal.value })
+    console.log(res, '控制---')
+    if(res.success){
+       createMessage.success(res.message);
+       visibleTip.value = false
+    }
+    
+  }
+
 }
 }
 //密码提示弹窗-关闭
 //密码提示弹窗-关闭
 function handleCancel() {
 function handleCancel() {

+ 16 - 14
src/views/vent/home/configurable/components/preset/gasInjectChart.vue

@@ -3,25 +3,21 @@
 </template>
 </template>
 
 
 <script setup lang="ts">
 <script setup lang="ts">
-import { nextTick, ref, onMounted, reactive } from 'vue'
+import { nextTick, ref, onMounted, reactive, watch } from 'vue'
 import * as echarts from 'echarts';
 import * as echarts from 'echarts';
 
 
 let props = defineProps({
 let props = defineProps({
   option: {
   option: {
     type: Object as any
     type: Object as any
   },
   },
-  echartData:{
-    type:Object as any
+  echartData: {
+    type: Object as any
   }
   }
 })
 })
 
 
 let gasInjectChart = ref(null)
 let gasInjectChart = ref(null)
-
-var xData = ["01:00", "02:00", "03:00", "04:00", "05:00", "06:00"]
-let echartData = reactive({
-  line: ["1030", "205", "84", "568", "689", "4587"],
-  line1: ["103", "20", "8", "56", "68", "458"]
-})
+//图表数据
+let echartDatas = reactive({}) as any
 
 
 let xLabel = ['3.26', '3.27', '3.28', '3.29', '3.30', '3.31']
 let xLabel = ['3.26', '3.27', '3.28', '3.29', '3.30', '3.31']
 let goToSchool = ["40", "60", "22", "85", "50", "40"]
 let goToSchool = ["40", "60", "22", "85", "50", "40"]
@@ -37,7 +33,7 @@ function getOption() {
         grid: props.option.grid,
         grid: props.option.grid,
         legend: props.option.legend,
         legend: props.option.legend,
         xAxis: [{
         xAxis: [{
-          data: xData,
+          data: echartDatas.xData,
           axisLabel: {
           axisLabel: {
             textStyle: {
             textStyle: {
               color: 'rgba(181, 185, 191)',
               color: 'rgba(181, 185, 191)',
@@ -63,7 +59,7 @@ function getOption() {
         series: props.option.series.map(el => {
         series: props.option.series.map(el => {
           return {
           return {
             ...el,
             ...el,
-            data:echartData[el.data]
+            data: echartDatas[el.data]
           }
           }
         })
         })
       };
       };
@@ -176,9 +172,15 @@ function getOption() {
   });
   });
 }
 }
 
 
-onMounted(() => {
-  getOption()
-})
+watch(() => props.echartData, (newV, oldV) => {
+  console.log(newV, '单元抽采数据')
+  if (newV) {
+    echartDatas.xData = newV.map(el => el.typeName)
+    echartDatas.yData = newV.map(el => el.datalist[0].readData.mixStdInstant)
+    echartDatas.yData1 = newV.map(el => el.datalist[0].readData.gasConcentration)
+    getOption()
+  }
+}, { immediate: true })
 
 
 </script>
 </script>
 
 

+ 12 - 2
src/views/vent/home/configurable/components/preset/gasInjectList.vue

@@ -3,7 +3,7 @@
     <div class="list-box-item" v-for="(item, index) in option" :key="index">
     <div class="list-box-item" v-for="(item, index) in option" :key="index">
       <div class="box-item-label">{{ item.label }}</div>
       <div class="box-item-label">{{ item.label }}</div>
       <div class="box-item-value">
       <div class="box-item-value">
-        <span> {{ item.value }}</span>
+        <span> {{ listDatas[item.value] }}</span>
         <span style="margin-left: 5px; color: aliceblue">{{ item.unit }}</span>
         <span style="margin-left: 5px; color: aliceblue">{{ item.unit }}</span>
       </div>
       </div>
     </div>
     </div>
@@ -11,14 +11,24 @@
 </template>
 </template>
 
 
 <script setup lang="ts">
 <script setup lang="ts">
-import { ref } from 'vue';
+import { reactive, ref, watch } from 'vue';
 
 
 let props = defineProps({
 let props = defineProps({
   option: {
   option: {
     type: Array as any,
     type: Array as any,
   },
   },
+  listData: {
+    type: Object as any
+  }
 });
 });
 
 
+let listDatas = reactive({})
+
+watch(() => props.listData, (newV, oldV) => {
+  if (newV) {
+    listDatas = Object.assign({}, newV)
+  }
+}, { immediate: true })
 </script>
 </script>
 
 
 <style lang="less" scoped>
 <style lang="less" scoped>

+ 131 - 23
src/views/vent/home/configurable/configurable.api.ts

@@ -2,7 +2,7 @@ import { floor, isArray, random, slice } from 'lodash-es';
 import { defHttp } from '/@/utils/http/axios';
 import { defHttp } from '/@/utils/http/axios';
 import { get } from '../billboard/utils';
 import { get } from '../billboard/utils';
 import { useGlobSetting } from '/@/hooks/setting';
 import { useGlobSetting } from '/@/hooks/setting';
-import { reactive } from 'vue';
+import { ref, reactive } from 'vue';
 import _ from 'lodash';
 import _ from 'lodash';
 
 
 
 
@@ -22,10 +22,11 @@ enum Api {
   listdays = '/safety/ventanalyMonitorData/listdays'
   listdays = '/safety/ventanalyMonitorData/listdays'
 }
 }
 
 
+
 // 搞这个缓存是由于:目前代码上的设计是多个模块发出多次请求,每个模块自己负责消费前者的响应。
 // 搞这个缓存是由于:目前代码上的设计是多个模块发出多次请求,每个模块自己负责消费前者的响应。
 // 这会导致相同的请求被同时发送多次。
 // 这会导致相同的请求被同时发送多次。
 const cache = new Map<string, Promise<any>>();
 const cache = new Map<string, Promise<any>>();
-
+let count = ref(0)
 /**
 /**
  * 列表接口,5.5专用,和6.0的getHomeData基本一致
  * 列表接口,5.5专用,和6.0的getHomeData基本一致
  * @param params
  * @param params
@@ -680,19 +681,16 @@ export const getSystemApi = (params) => {
     );
     );
   }
   }
   return (cache.get(key) as Promise<any>).then(async (res) => {
   return (cache.get(key) as Promise<any>).then(async (res) => {
-    //抽采数据
-    let pumpData = await getCcSystem();
-    res.pumpData = pumpData.msgTxt[0].datalist[0]
-    let historyDataCc = reactive<any>({})
-    historyDataCc.hourData = await getZqSystem({ gdeviceids: res.pumpData.deviceID, strtype: 'pump_standard', skip: '8' })
-    historyDataCc.minitesData = await getZqSystem({ gdeviceids: res.pumpData.deviceID, strtype: 'pump_standard', skip: '6' })
-    res.historyDataCc = historyDataCc
+
     //注气数据
     //注气数据
     let zqData = res.msgTxt.find(v => v.type == 'injection_standard').datalist[0]
     let zqData = res.msgTxt.find(v => v.type == 'injection_standard').datalist[0]
-    let co = res.msgTxt.find(v => v.type == 'modelsensor_co').datalist[0]
-    let ch4 = res.msgTxt.find(v => v.type == 'modelsensor_ch4').datalist[0]
-    let o2 = res.msgTxt.find(v => v.type == 'modelsensor_o2').datalist[0]
-    let temp = res.msgTxt.find(v => v.type == 'modelsensor_temperature').datalist[0]
+    res.co = res.msgTxt.find(v => v.type == 'modelsensor_co').datalist[0]
+    res.ch4 = res.msgTxt.find(v => v.type == 'modelsensor_ch4').datalist[0]
+    res.o2 = res.msgTxt.find(v => v.type == 'modelsensor_o2').datalist[0]
+    res.temp = res.msgTxt.find(v => v.type == 'modelsensor_temperature').datalist[0]
+    //视频监控
+    res.deviceId = zqData.deviceID
+    res.strtype = zqData.deviceType
     //注气驱替促抽系统状态
     //注气驱替促抽系统状态
     res.zyStatusData = {
     res.zyStatusData = {
       Pressure: zqData.readData.Pressure,
       Pressure: zqData.readData.Pressure,
@@ -700,13 +698,13 @@ export const getSystemApi = (params) => {
     }
     }
     //注气/抽采历史图表数据
     //注气/抽采历史图表数据
     let historyDataZq = reactive<any>({})
     let historyDataZq = reactive<any>({})
-    historyDataZq.hourData = await getZqSystem({ gdeviceids: zqData.deviceID, strtype: 'injection_standard', skip: '8' })
-    historyDataZq.minitesData = await getZqSystem({ gdeviceids: zqData.deviceID, strtype: 'injection_standard', skip: '6' })
+    historyDataZq.hourData = await getZqSystem({ pageNo: 1, pageSize: 100, gdeviceids: zqData.deviceID, strtype: zqData.deviceType, skip: '8' })
+    historyDataZq.minitesData = await getZqSystem({ pageNo: 1, pageSize: 100, gdeviceids: zqData.deviceID, strtype: zqData.deviceType, skip: '6' })
     res.historyDataZq = historyDataZq
     res.historyDataZq = historyDataZq
     //装备运行状态与控制
     //装备运行状态与控制
     res.deviceStatusControl = {
     res.deviceStatusControl = {
-      deviceId:zqData.deviceID,
-      devicetype:zqData.deviceType,
+      deviceId: zqData.deviceID,
+      devicetype: zqData.deviceType,
       remoteStatus: zqData.readData.remoteStatus,
       remoteStatus: zqData.readData.remoteStatus,
       runStatus: zqData.readData.runStatus,
       runStatus: zqData.readData.runStatus,
       paramSetting: zqData.readData.paramSetting,
       paramSetting: zqData.readData.paramSetting,
@@ -721,10 +719,10 @@ export const getSystemApi = (params) => {
     }
     }
     //环境监测
     //环境监测
     res.environmentData = {
     res.environmentData = {
-      coVal: co.readData.coval || '-',
-      ch4Val: ch4.readData.ch4val || '-',
-      o2Val: o2.readData.o2val || '-',
-      temperature: temp.readData.temperature || '-',
+      coVal: res.co.readData.coval || '-',
+      ch4Val: res.ch4.readData.ch4val || '-',
+      o2Val: res.o2.readData.o2val || '-',
+      temperature: res.temp.readData.temperature || '-',
     }
     }
     //装备运行工况监测
     //装备运行工况监测
     res.deviceGkData = {
     res.deviceGkData = {
@@ -738,10 +736,120 @@ export const getSystemApi = (params) => {
       penyouTemp: zqData.readData.penyouTemp || '-',
       penyouTemp: zqData.readData.penyouTemp || '-',
       youqitongTemp: zqData.readData.youqitongTemp || '-',
       youqitongTemp: zqData.readData.youqitongTemp || '-',
     }
     }
-    //视频监控
-    res.deviceId=zqData.deviceID
 
 
 
 
+
+    //抽采数据
+    //let pumpData = await getCcSystem();
+    res.pumpData = res.msgTxt[res.msgTxt.length - 1].empty_device[0].datalist[0]
+    res.pumpDeviceId = res.pumpData.deviceID
+    res.pumpStrtype = 'pump'
+    let historyDataCc = reactive<any>({})
+    historyDataCc.hourData = await getZqSystem({ pageNo: 1, pageSize: 100, gdeviceids: res.pumpData.deviceID, strtype: res.pumpData.deviceType, skip: '8' })
+    historyDataCc.minitesData = await getZqSystem({ pageNo: 1, pageSize: 100, gdeviceids: res.pumpData.deviceID, strtype: res.pumpData.deviceType, skip: '6' })
+    res.historyDataCc = historyDataCc
+    //应用场景信息
+    res.workInfo = {
+      strinstallpos: res.pumpData.strinstallpos || '-',
+      quduanLength: res.pumpData.quduanLength || '-',
+      quduanWidth: res.pumpData.quduanWidth || '-',
+      avgMeihou: res.pumpData.avgMeihou || '-',
+      wasiHanliang: res.pumpData.wasiHanliang || '-',
+    }
+    //单元抽采数据
+    res.dyCcData = res.msgTxt[res.msgTxt.length - 1].empty_device.filter(v => v.type != 'pump_under_1' && v.type != 'sys')
+
+    //抽采数据
+    res.ccBoard = {
+      mixStdInstant: res.pumpData.readData.mixStdInstant || '-',
+      gasConcentration: res.pumpData.readData.gasConcentration || '-',
+      negativePressure: res.pumpData.readData.negativePressure || '-',
+    }
+
+    count.value += 1
+    res.ccEchart = {
+      xData: [],
+      yData: [],
+      yData1: []
+    }
+    //绘流管抽采数据
+    res.hlgEchart = {
+      xData: [],
+      yDataHl: [],
+      yDataHl1: [],
+      yDataHl2: [],
+      yDataHl3: [],
+      yDataHl4: [],
+      yDataNd: [],
+      yDataNd1: [],
+      yDataNd2: [],
+      yDataNd3: [],
+      yDataNd4: [],
+      yDataFy: [],
+      yDataFy1: [],
+      yDataFy2: [],
+      yDataFy3: [],
+      yDataFy4: [],
+    }
+    let hlg1 = res.dyCcData[0].datalist[0].readData
+    let hlg2 = res.dyCcData[1].datalist[0].readData
+    let hlg3 = res.dyCcData[2].datalist[0].readData
+    let hlg4 = res.dyCcData[3].datalist[0].readData
+    let hlg5 = res.dyCcData[4].datalist[0].readData
+    if (count.value <= 10) {
+      Array.from({ length: count.value }).forEach(el => {
+        res.ccEchart.xData.push(res.pumpData.readTime)
+        res.ccEchart.yData.push(res.pumpData.readData.mixStdInstant)
+        res.ccEchart.yData1.push(res.pumpData.readData.gasConcentration)
+
+        res.hlgEchart.xData.push(res.pumpData.readTime)
+        res.hlgEchart.yDataHl.push(hlg1.mixStdInstant)
+        res.hlgEchart.yDataHl1.push(hlg2.mixStdInstant)
+        res.hlgEchart.yDataHl2.push(hlg3.mixStdInstant)
+        res.hlgEchart.yDataHl3.push(hlg4.mixStdInstant)
+        res.hlgEchart.yDataHl4.push(hlg5.mixStdInstant)
+        res.hlgEchart.yDataNd.push(hlg1.gasConcentration)
+        res.hlgEchart.yDataNd1.push(hlg2.gasConcentration)
+        res.hlgEchart.yDataNd2.push(hlg3.gasConcentration)
+        res.hlgEchart.yDataNd3.push(hlg4.gasConcentration)
+        res.hlgEchart.yDataNd4.push(hlg5.gasConcentration)
+        res.hlgEchart.yDataFy.push(hlg1.negativePressure)
+        res.hlgEchart.yDataFy1.push(hlg2.negativePressure)
+        res.hlgEchart.yDataFy2.push(hlg3.negativePressure)
+        res.hlgEchart.yDataFy3.push(hlg4.negativePressure)
+        res.hlgEchart.yDataFy4.push(hlg5.negativePressure)
+      })
+    } else {
+      res.ccEchart.xData.unshift()
+      res.ccEchart.yData.unshift()
+      res.ccEchart.yData1.unshift()
+
+      res.hlgEchart.xData.unshift()
+      res.hlgEchart.yDataHl.unshift()
+      res.hlgEchart.yDataHl1.unshift()
+      res.hlgEchart.yDataHl2.unshift()
+      res.hlgEchart.yDataHl3.unshift()
+      res.hlgEchart.yDataHl4.unshift()
+      res.hlgEchart.yDataNd.unshift()
+      res.hlgEchart.yDataNd1.unshift()
+      res.hlgEchart.yDataNd2.unshift()
+      res.hlgEchart.yDataNd3.unshift()
+      res.hlgEchart.yDataNd4.unshift()
+      res.hlgEchart.yDataFy.unshift()
+      res.hlgEchart.yDataFy1.unshift()
+      res.hlgEchart.yDataFy2.unshift()
+      res.hlgEchart.yDataFy3.unshift()
+      res.hlgEchart.yDataFy4.unshift()
+      count.value--
+    }
+
+    //注气驱替促抽效果评价
+    res.ccPjData = {
+      ext_rate_percent: res.pumpData.readData.ext_rate_percent || '-',
+      residual_gas_content_m3_t: res.pumpData.readData.residual_gas_content_m3_t || '-',
+      gas_drop_rate_m3_t_mon: res.pumpData.readData.gas_drop_rate_m3_t_mon || '-',
+      inject_extract_ratio: res.pumpData.readData.inject_extract_ratio || '-',
+    }
     return res;
     return res;
   });
   });
 };
 };

+ 336 - 95
src/views/vent/home/configurable/configurable.data.ts

@@ -482,7 +482,7 @@ export const testConfigGasInject: Config[] = [
                     shadowBlur: 20 //shadowBlur设图形阴影的模糊大小。配合shadowColor,shadowOffsetX/Y, 设置图形的阴影效果。
                     shadowBlur: 20 //shadowBlur设图形阴影的模糊大小。配合shadowColor,shadowOffsetX/Y, 设置图形的阴影效果。
                   }
                   }
                 },
                 },
-                data: 'yData'
+                data: 'mixStdInstant'
               },
               },
               {
               {
                 name: '实时压力',
                 name: '实时压力',
@@ -521,7 +521,7 @@ export const testConfigGasInject: Config[] = [
                     shadowBlur: 20 //shadowBlur设图形阴影的模糊大小。配合shadowColor,shadowOffsetX/Y, 设置图形的阴影效果。
                     shadowBlur: 20 //shadowBlur设图形阴影的模糊大小。配合shadowColor,shadowOffsetX/Y, 设置图形的阴影效果。
                   }
                   }
                 },
                 },
-                data: 'yData1'
+                data: 'negativePressure'
               },
               },
             ]
             ]
           },
           },
@@ -575,14 +575,14 @@ export const testConfigGasInject: Config[] = [
       complex_list: [],
       complex_list: [],
       preset: [
       preset: [
         {
         {
-          readFrom: '',
+          readFrom: 'workInfo',
           option: [
           option: [
-            { label: '工作面名称', value: '12304工作面', unit: '' },
-            { label: '区段长度', value: 100, unit: 'm' },
-            { label: '区段宽度', value: '2924.6', unit: 'm' },
-            { label: '平均煤厚', value: '300.4', unit: 'm' },
-            { label: '煤层瓦斯含量', value: '900', unit: 'm³/t' },
-            { label: '区段瓦斯储量', value: '3.40', unit: 'm³' },
+            { label: '工作面名称', value: 'strinstallpos', unit: '' },
+            { label: '区段长度', value: 'quduanLength', unit: 'm' },
+            { label: '区段宽度', value: 'quduanWidth', unit: 'm' },
+            { label: '平均煤厚', value: 'avgMeihou', unit: 'm' },
+            { label: '煤层瓦斯含量', value: 'wasiHanliang', unit: 'm³/t' },
+            { label: '区段瓦斯储量', value: 'wasiHanliang', unit: 'm³' },
           ],
           ],
         },
         },
       ],
       ],
@@ -757,7 +757,7 @@ export const testConfigGasInject: Config[] = [
       complex_list: [],
       complex_list: [],
       preset: [
       preset: [
         {
         {
-          readFrom: '',
+          readFrom: 'dyCcData',
           option: {
           option: {
             type: 'bar_lt',
             type: 'bar_lt',
             tooltip: {
             tooltip: {
@@ -871,7 +871,7 @@ export const testConfigGasInject: Config[] = [
                     ])
                     ])
                   }
                   }
                 },
                 },
-                data: 'line'
+                data: 'yData'
               },
               },
               //柱体
               //柱体
               {
               {
@@ -899,7 +899,7 @@ export const testConfigGasInject: Config[] = [
                     }
                     }
                   }
                   }
                 },
                 },
-                data: 'line'
+                data: 'yData'
               },
               },
               //柱顶圆片
               //柱顶圆片
               {
               {
@@ -926,7 +926,7 @@ export const testConfigGasInject: Config[] = [
                     ),
                     ),
                   }
                   }
                 },
                 },
-                data: 'line'
+                data: 'yData'
               },
               },
 
 
               {//柱底圆片
               {//柱底圆片
@@ -949,7 +949,7 @@ export const testConfigGasInject: Config[] = [
                     ])
                     ])
                   }
                   }
                 },
                 },
-                data: 'line1'
+                data: 'yData1'
               },
               },
               //柱体
               //柱体
               {
               {
@@ -978,7 +978,7 @@ export const testConfigGasInject: Config[] = [
                   }
                   }
                 },
                 },
 
 
-                data: 'line1'
+                data: 'yData1'
               },
               },
               //柱顶圆片
               //柱顶圆片
               {
               {
@@ -1005,7 +1005,7 @@ export const testConfigGasInject: Config[] = [
                     ),
                     ),
                   }
                   }
                 },
                 },
-                data: 'line1'
+                data: 'yData1'
               },
               },
             ],
             ],
 
 
@@ -1070,7 +1070,7 @@ export const testConfigGasInjectZq: Config[] = [
             { label: '就地/远程模式切换', toggleModel: true, value: 'runStatus', iconName: 'kaiguan' },
             { label: '就地/远程模式切换', toggleModel: true, value: 'runStatus', iconName: 'kaiguan' },
             { label: '装备启停控制', isShowSwitch: true, value: '1', iconName: 'fameng' },
             { label: '装备启停控制', isShowSwitch: true, value: '1', iconName: 'fameng' },
             { label: '排气压力设置', isShowSwitch: false, value: 'paramSetting', iconName: 'yalishezhi' },
             { label: '排气压力设置', isShowSwitch: false, value: 'paramSetting', iconName: 'yalishezhi' },
-            { label: '排气端阀门', isShowSwitch: true, value: '1', iconName: 'fameng' },
+            { label: '排气端阀门', isPqfm: true, isShowSwitch: true, value: '1', iconName: 'fameng' },
           ],
           ],
         },
         },
       ],
       ],
@@ -1423,27 +1423,27 @@ export const testConfigGasInjectCc: Config[] = [
       board: [
       board: [
         {
         {
           type: 'gas-cc',
           type: 'gas-cc',
-          readFrom: '',
+          readFrom: 'ccBoard',
           layout: 'val-top',
           layout: 'val-top',
           items: [
           items: [
             {
             {
               label: '瞬时抽采混量',
               label: '瞬时抽采混量',
-              value: '100',
+              value: '${mixStdInstant}',
               unit: 'm³/min',
               unit: 'm³/min',
             },
             },
             {
             {
               label: '浓度',
               label: '浓度',
-              value: '100',
+              value: '${gasConcentration}',
               unit: '%',
               unit: '%',
             },
             },
             {
             {
               label: '负压',
               label: '负压',
-              value: '100',
+              value: '${negativePressure}',
               unit: 'Pa',
               unit: 'Pa',
             },
             },
             {
             {
               label: '温度',
               label: '温度',
-              value: '100',
+              value: '',
               unit: '℃',
               unit: '℃',
             },
             },
           ],
           ],
@@ -1457,7 +1457,7 @@ export const testConfigGasInjectCc: Config[] = [
       complex_list: [],
       complex_list: [],
       preset: [
       preset: [
         {
         {
-          readFrom: 'HistoryDataZq',
+          readFrom: 'ccEchart',
           echartOption: {
           echartOption: {
             showTime: false,
             showTime: false,
             tooltip: {
             tooltip: {
@@ -1692,13 +1692,13 @@ export const testConfigGasInjectCc: Config[] = [
       complex_list: [],
       complex_list: [],
       preset: [
       preset: [
         {
         {
-          readFrom: '',
+          readFrom: 'ccPjData',
           type: 'C',
           type: 'C',
           option: [
           option: [
-            { label: '抽采率', value: 'xitongVoltage', iconName: 'ccl', unit: '%' },
-            { label: '残余瓦斯含量', value: 'xitongVoltage', iconName: 'wshl', unit: 'm³/t' },
-            { label: '瓦斯含量降低速率', value: 'xitongVoltage', iconName: 'jdsl', unit: 'm³/t/mon' },
-            { label: '注抽比', value: 'xitongVoltage', iconName: 'czb', unit: '%' },
+            { label: '抽采率', value: 'ext_rate_percent', iconName: 'ccl', unit: '%' },
+            { label: '残余瓦斯含量', value: 'residual_gas_content_m3_t', iconName: 'wshl', unit: 'm³/t' },
+            { label: '瓦斯含量降低速率', value: 'gas_drop_rate_m3_t_mon', iconName: 'jdsl', unit: 'm³/t/mon' },
+            { label: '注抽比', value: 'inject_extract_ratio', iconName: 'czb', unit: '%' },
           ],
           ],
         },
         },
       ],
       ],
@@ -1751,7 +1751,7 @@ export const testConfigGasInjectCc: Config[] = [
       gallery_list: [],
       gallery_list: [],
       preset: [
       preset: [
         {
         {
-          readFrom: 'HistoryDataZq',
+          readFrom: 'hlgEchart',
           echartOption: [
           echartOption: [
             {
             {
               title: '抽采混量',
               title: '抽采混量',
@@ -1767,15 +1767,16 @@ export const testConfigGasInjectCc: Config[] = [
                   },
                   },
                 },
                 },
                 grid: {
                 grid: {
-                  top: '26%',
+                  top: '30%',
                   left: '8%',
                   left: '8%',
                   right: '8%',
                   right: '8%',
-                  bottom: '8%',
+                  bottom: '1%',
                   containLabel: true
                   containLabel: true
                 },
                 },
                 legend: {
                 legend: {
                   top: '1%',
                   top: '1%',
-                  right: '34%',
+                  right: 'center',
+                  left: 'center',
                   icon: 'circle',
                   icon: 'circle',
                   itemWidth: 8,
                   itemWidth: 8,
                   itemHeight: 8,
                   itemHeight: 8,
@@ -1785,7 +1786,11 @@ export const testConfigGasInjectCc: Config[] = [
                     fontSize: 12,
                     fontSize: 12,
                   },
                   },
                   data: [
                   data: [
-                    { name: '抽采混量' },
+                    { name: '汇流管1' },
+                    { name: '汇流管2' },
+                    { name: '汇流管3' },
+                    { name: '汇流管4' },
+                    { name: '汇流管5' },
                   ]
                   ]
                 },
                 },
                 yAxis: [
                 yAxis: [
@@ -1825,7 +1830,7 @@ export const testConfigGasInjectCc: Config[] = [
                 ],
                 ],
                 series: [
                 series: [
                   {
                   {
-                    name: '抽采混量',
+                    name: '汇流管1',
                     type: 'line',
                     type: 'line',
                     symbol: 'circle', // 默认是空心圆(中间是白色的),改成实心圆
                     symbol: 'circle', // 默认是空心圆(中间是白色的),改成实心圆
                     showAllSymbol: true,
                     showAllSymbol: true,
@@ -1835,32 +1840,109 @@ export const testConfigGasInjectCc: Config[] = [
                     lineStyle: {
                     lineStyle: {
                       normal: {
                       normal: {
                         width: 2,
                         width: 2,
-                        color: 'rgba(254, 157, 29,1)', // 线条颜色
+                        color: '#e74032', // 线条颜色
                       },
                       },
                       borderColor: 'rgba(0,0,0,.4)',
                       borderColor: 'rgba(0,0,0,.4)',
                     },
                     },
                     itemStyle: {
                     itemStyle: {
-                      color: 'rgba(254, 157, 29,1)',
+                      color: '#e74032',
                       borderColor: "#646ace",
                       borderColor: "#646ace",
                       borderWidth: 2
                       borderWidth: 2
                     },
                     },
-                    areaStyle: { //区域填充样式
+
+                    data: 'yDataHl'
+                  },
+                  {
+                    name: '汇流管2',
+                    type: 'line',
+                    symbol: 'circle', // 默认是空心圆(中间是白色的),改成实心圆
+                    showAllSymbol: true,
+                    symbolSize: 0,
+                    smooth: true,
+                    yAxisIndex: 0,
+                    lineStyle: {
                       normal: {
                       normal: {
-                        //线性渐变,前4个参数分别是x0,y0,x2,y2(范围0~1);相当于图形包围盒中的百分比。如果最后一个参数是‘true’,则该四个值是绝对像素位置。
-                        color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
-                          offset: 0,
-                          color: "rgba(254, 157, 29,.4)"
-                        },
-                        {
-                          offset: 1,
-                          color: "rgba(254, 157, 29, .1)"
-                        }
-                        ], false),
-                        shadowColor: 'rgba(254, 157, 29, 0.5)', //阴影颜色
-                        shadowBlur: 20 //shadowBlur设图形阴影的模糊大小。配合shadowColor,shadowOffsetX/Y, 设置图形的阴影效果。
-                      }
+                        width: 2,
+                        color: '#2f7cee', // 线条颜色
+                      },
+                      borderColor: 'rgba(0,0,0,.4)',
+                    },
+                    itemStyle: {
+                      color: '#2f7cee',
+                      borderColor: "#646ace",
+                      borderWidth: 2
+                    },
+
+                    data: 'yDataHl1'
+                  },
+                  {
+                    name: '汇流管3',
+                    type: 'line',
+                    symbol: 'circle', // 默认是空心圆(中间是白色的),改成实心圆
+                    showAllSymbol: true,
+                    symbolSize: 0,
+                    smooth: true,
+                    yAxisIndex: 0,
+                    lineStyle: {
+                      normal: {
+                        width: 2,
+                        color: '#289a48', // 线条颜色
+                      },
+                      borderColor: 'rgba(0,0,0,.4)',
+                    },
+                    itemStyle: {
+                      color: '#289a48',
+                      borderColor: "#646ace",
+                      borderWidth: 2
+                    },
+
+                    data: 'yDataHl2'
+                  },
+                  {
+                    name: '汇流管4',
+                    type: 'line',
+                    symbol: 'circle', // 默认是空心圆(中间是白色的),改成实心圆
+                    showAllSymbol: true,
+                    symbolSize: 0,
+                    smooth: true,
+                    yAxisIndex: 0,
+                    lineStyle: {
+                      normal: {
+                        width: 2,
+                        color: '#fcc31f', // 线条颜色
+                      },
+                      borderColor: 'rgba(0,0,0,.4)',
+                    },
+                    itemStyle: {
+                      color: '#fcc31f',
+                      borderColor: "#646ace",
+                      borderWidth: 2
+                    },
+
+                    data: 'yDataHl3'
+                  },
+                  {
+                    name: '汇流管5',
+                    type: 'line',
+                    symbol: 'circle', // 默认是空心圆(中间是白色的),改成实心圆
+                    showAllSymbol: true,
+                    symbolSize: 0,
+                    smooth: true,
+                    yAxisIndex: 0,
+                    lineStyle: {
+                      normal: {
+                        width: 2,
+                        color: '#b241ff', // 线条颜色
+                      },
+                      borderColor: 'rgba(0,0,0,.4)',
                     },
                     },
-                    data: 'yData'
+                    itemStyle: {
+                      color: '#b241ff',
+                      borderColor: "#646ace",
+                      borderWidth: 2
+                    },
+
+                    data: 'yDataHl4'
                   },
                   },
                 ]
                 ]
               },
               },
@@ -1879,15 +1961,16 @@ export const testConfigGasInjectCc: Config[] = [
                   },
                   },
                 },
                 },
                 grid: {
                 grid: {
-                  top: '26%',
+                  top: '30%',
                   left: '8%',
                   left: '8%',
                   right: '8%',
                   right: '8%',
-                  bottom: '8%',
+                  bottom: '1%',
                   containLabel: true
                   containLabel: true
                 },
                 },
                 legend: {
                 legend: {
                   top: '1%',
                   top: '1%',
-                  right: '34%',
+                  right: 'center',
+                  left: 'center',
                   icon: 'circle',
                   icon: 'circle',
                   itemWidth: 8,
                   itemWidth: 8,
                   itemHeight: 8,
                   itemHeight: 8,
@@ -1897,7 +1980,11 @@ export const testConfigGasInjectCc: Config[] = [
                     fontSize: 12,
                     fontSize: 12,
                   },
                   },
                   data: [
                   data: [
-                    { name: '抽采浓度' },
+                    { name: '汇流管1' },
+                    { name: '汇流管2' },
+                    { name: '汇流管3' },
+                    { name: '汇流管4' },
+                    { name: '汇流管5' },
                   ]
                   ]
                 },
                 },
                 yAxis: [
                 yAxis: [
@@ -1937,7 +2024,7 @@ export const testConfigGasInjectCc: Config[] = [
                 ],
                 ],
                 series: [
                 series: [
                   {
                   {
-                    name: '抽采浓度',
+                    name: '汇流管1',
                     type: 'line',
                     type: 'line',
                     symbol: 'circle', // 默认是空心圆(中间是白色的),改成实心圆
                     symbol: 'circle', // 默认是空心圆(中间是白色的),改成实心圆
                     showAllSymbol: true,
                     showAllSymbol: true,
@@ -1947,32 +2034,109 @@ export const testConfigGasInjectCc: Config[] = [
                     lineStyle: {
                     lineStyle: {
                       normal: {
                       normal: {
                         width: 2,
                         width: 2,
-                        color: 'rgba(254, 157, 29,1)', // 线条颜色
+                        color: '#e74032', // 线条颜色
                       },
                       },
                       borderColor: 'rgba(0,0,0,.4)',
                       borderColor: 'rgba(0,0,0,.4)',
                     },
                     },
                     itemStyle: {
                     itemStyle: {
-                      color: 'rgba(254, 157, 29,1)',
+                      color: '#e74032', // 线条颜色
                       borderColor: "#646ace",
                       borderColor: "#646ace",
                       borderWidth: 2
                       borderWidth: 2
                     },
                     },
-                    areaStyle: { //区域填充样式
+
+                    data: 'yDataNd'
+                  },
+                  {
+                    name: '汇流管2',
+                    type: 'line',
+                    symbol: 'circle', // 默认是空心圆(中间是白色的),改成实心圆
+                    showAllSymbol: true,
+                    symbolSize: 0,
+                    smooth: true,
+                    yAxisIndex: 0,
+                    lineStyle: {
                       normal: {
                       normal: {
-                        //线性渐变,前4个参数分别是x0,y0,x2,y2(范围0~1);相当于图形包围盒中的百分比。如果最后一个参数是‘true’,则该四个值是绝对像素位置。
-                        color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
-                          offset: 0,
-                          color: "rgba(254, 157, 29,.4)"
-                        },
-                        {
-                          offset: 1,
-                          color: "rgba(254, 157, 29, .1)"
-                        }
-                        ], false),
-                        shadowColor: 'rgba(254, 157, 29, 0.5)', //阴影颜色
-                        shadowBlur: 20 //shadowBlur设图形阴影的模糊大小。配合shadowColor,shadowOffsetX/Y, 设置图形的阴影效果。
-                      }
+                        width: 2,
+                        color: '#2f7cee', // 线条颜色
+                      },
+                      borderColor: 'rgba(0,0,0,.4)',
+                    },
+                    itemStyle: {
+                      color: '#2f7cee', // 线条颜色
+                      borderColor: "#646ace",
+                      borderWidth: 2
+                    },
+
+                    data: 'yDataNd1'
+                  },
+                  {
+                    name: '汇流管3',
+                    type: 'line',
+                    symbol: 'circle', // 默认是空心圆(中间是白色的),改成实心圆
+                    showAllSymbol: true,
+                    symbolSize: 0,
+                    smooth: true,
+                    yAxisIndex: 0,
+                    lineStyle: {
+                      normal: {
+                        width: 2,
+                        color: '#289a48', // 线条颜色
+                      },
+                      borderColor: 'rgba(0,0,0,.4)',
+                    },
+                    itemStyle: {
+                      color: '#289a48', // 线条颜色
+                      borderColor: "#646ace",
+                      borderWidth: 2
+                    },
+
+                    data: 'yDataNd2'
+                  },
+                  {
+                    name: '汇流管4',
+                    type: 'line',
+                    symbol: 'circle', // 默认是空心圆(中间是白色的),改成实心圆
+                    showAllSymbol: true,
+                    symbolSize: 0,
+                    smooth: true,
+                    yAxisIndex: 0,
+                    lineStyle: {
+                      normal: {
+                        width: 2,
+                        color: '#fcc31f', // 线条颜色
+                      },
+                      borderColor: 'rgba(0,0,0,.4)',
                     },
                     },
-                    data: 'yData1'
+                    itemStyle: {
+                      color: '#fcc31f', // 线条颜色
+                      borderColor: "#646ace",
+                      borderWidth: 2
+                    },
+
+                    data: 'yDataNd3'
+                  },
+                  {
+                    name: '汇流管5',
+                    type: 'line',
+                    symbol: 'circle', // 默认是空心圆(中间是白色的),改成实心圆
+                    showAllSymbol: true,
+                    symbolSize: 0,
+                    smooth: true,
+                    yAxisIndex: 0,
+                    lineStyle: {
+                      normal: {
+                        width: 2,
+                        color: '#b241ff', // 线条颜色
+                      },
+                      borderColor: 'rgba(0,0,0,.4)',
+                    },
+                    itemStyle: {
+                      color: '#b241ff', // 线条颜色
+                      borderColor: "#646ace",
+                      borderWidth: 2
+                    },
+
+                    data: 'yDataNd4'
                   },
                   },
                 ]
                 ]
               },
               },
@@ -1991,15 +2155,16 @@ export const testConfigGasInjectCc: Config[] = [
                   },
                   },
                 },
                 },
                 grid: {
                 grid: {
-                  top: '26%',
+                  top: '30%',
                   left: '8%',
                   left: '8%',
                   right: '8%',
                   right: '8%',
-                  bottom: '8%',
+                  bottom: '1%',
                   containLabel: true
                   containLabel: true
                 },
                 },
                 legend: {
                 legend: {
                   top: '1%',
                   top: '1%',
-                  right: '34%',
+                  right: 'center',
+                  left: 'center',
                   icon: 'circle',
                   icon: 'circle',
                   itemWidth: 8,
                   itemWidth: 8,
                   itemHeight: 8,
                   itemHeight: 8,
@@ -2009,7 +2174,11 @@ export const testConfigGasInjectCc: Config[] = [
                     fontSize: 12,
                     fontSize: 12,
                   },
                   },
                   data: [
                   data: [
-                    { name: '抽采负压' },
+                    { name: '汇流管1' },
+                    { name: '汇流管2' },
+                    { name: '汇流管3' },
+                    { name: '汇流管4' },
+                    { name: '汇流管5' },
                   ]
                   ]
                 },
                 },
                 yAxis: [
                 yAxis: [
@@ -2049,7 +2218,7 @@ export const testConfigGasInjectCc: Config[] = [
                 ],
                 ],
                 series: [
                 series: [
                   {
                   {
-                    name: '抽采负压',
+                    name: '汇流管1',
                     type: 'line',
                     type: 'line',
                     symbol: 'circle', // 默认是空心圆(中间是白色的),改成实心圆
                     symbol: 'circle', // 默认是空心圆(中间是白色的),改成实心圆
                     showAllSymbol: true,
                     showAllSymbol: true,
@@ -2059,32 +2228,104 @@ export const testConfigGasInjectCc: Config[] = [
                     lineStyle: {
                     lineStyle: {
                       normal: {
                       normal: {
                         width: 2,
                         width: 2,
-                        color: 'rgba(254, 157, 29,1)', // 线条颜色
+                        color: '#e74032', // 线条颜色
                       },
                       },
                       borderColor: 'rgba(0,0,0,.4)',
                       borderColor: 'rgba(0,0,0,.4)',
                     },
                     },
                     itemStyle: {
                     itemStyle: {
-                      color: 'rgba(254, 157, 29,1)',
+                      color: '#e74032', // 线条颜色
                       borderColor: "#646ace",
                       borderColor: "#646ace",
                       borderWidth: 2
                       borderWidth: 2
                     },
                     },
-                    areaStyle: { //区域填充样式
+                    data: 'yDataFy'
+                  },
+                  {
+                    name: '汇流管2',
+                    type: 'line',
+                    symbol: 'circle', // 默认是空心圆(中间是白色的),改成实心圆
+                    showAllSymbol: true,
+                    symbolSize: 0,
+                    smooth: true,
+                    yAxisIndex: 0,
+                    lineStyle: {
                       normal: {
                       normal: {
-                        //线性渐变,前4个参数分别是x0,y0,x2,y2(范围0~1);相当于图形包围盒中的百分比。如果最后一个参数是‘true’,则该四个值是绝对像素位置。
-                        color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
-                          offset: 0,
-                          color: "rgba(254, 157, 29,.4)"
-                        },
-                        {
-                          offset: 1,
-                          color: "rgba(254, 157, 29, .1)"
-                        }
-                        ], false),
-                        shadowColor: 'rgba(254, 157, 29, 0.5)', //阴影颜色
-                        shadowBlur: 20 //shadowBlur设图形阴影的模糊大小。配合shadowColor,shadowOffsetX/Y, 设置图形的阴影效果。
-                      }
+                        width: 2,
+                        color: '#2f7cee', // 线条颜色
+                      },
+                      borderColor: 'rgba(0,0,0,.4)',
+                    },
+                    itemStyle: {
+                      color: '#2f7cee', // 线条颜色
+                      borderColor: "#646ace",
+                      borderWidth: 2
+                    },
+                    data: 'yDataFy1'
+                  },
+                  {
+                    name: '汇流管3',
+                    type: 'line',
+                    symbol: 'circle', // 默认是空心圆(中间是白色的),改成实心圆
+                    showAllSymbol: true,
+                    symbolSize: 0,
+                    smooth: true,
+                    yAxisIndex: 0,
+                    lineStyle: {
+                      normal: {
+                        width: 2,
+                        color: '#289a48', // 线条颜色
+                      },
+                      borderColor: 'rgba(0,0,0,.4)',
+                    },
+                    itemStyle: {
+                      color: '#289a48', // 线条颜色
+                      borderColor: "#646ace",
+                      borderWidth: 2
+                    },
+                    data: 'yDataFy2'
+                  },
+                  {
+                    name: '汇流管4',
+                    type: 'line',
+                    symbol: 'circle', // 默认是空心圆(中间是白色的),改成实心圆
+                    showAllSymbol: true,
+                    symbolSize: 0,
+                    smooth: true,
+                    yAxisIndex: 0,
+                    lineStyle: {
+                      normal: {
+                        width: 2,
+                        color: '#fcc31f', // 线条颜色
+                      },
+                      borderColor: 'rgba(0,0,0,.4)',
+                    },
+                    itemStyle: {
+                      color: '#fcc31f', // 线条颜色
+                      borderColor: "#646ace",
+                      borderWidth: 2
+                    },
+                    data: 'yDataFy3'
+                  },
+                  {
+                    name: '汇流管5',
+                    type: 'line',
+                    symbol: 'circle', // 默认是空心圆(中间是白色的),改成实心圆
+                    showAllSymbol: true,
+                    symbolSize: 0,
+                    smooth: true,
+                    yAxisIndex: 0,
+                    lineStyle: {
+                      normal: {
+                        width: 2,
+                        color: '#b241ff', // 线条颜色
+                      },
+                      borderColor: 'rgba(0,0,0,.4)',
+                    },
+                    itemStyle: {
+                      color: '#b241ff', // 线条颜色
+                      borderColor: "#646ace",
+                      borderWidth: 2
                     },
                     },
-                    data: 'yData2'
+                    data: 'yDataFy4'
                   },
                   },
                 ]
                 ]
               },
               },