| 
					
				 | 
			
			
				@@ -0,0 +1,186 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    <div class="gasReport"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <customHeader>瓦斯日报监测</customHeader> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <div class="report-container"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <div class="search-area"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <a-row> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    <a-col :span="5"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        <div class="area-item"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            <div class="item-text">填报日期:</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            <a-date-picker style="width:220px" v-model="searchData.reportTime" placeholder="请选择填报日期" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                @change="onChange"  /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    </a-col> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    <a-col :span="5"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        <div class="area-item"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            <div class="item-text">区队:</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            <a-select v-model:value="searchData.districtTeam" style="width: 220px" placeholder="请选择区队"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                <a-select-option v-for="item in qdList" :key="item" :value="item.value">{{ item.label 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    }}</a-select-option> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            </a-select> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    </a-col> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    <a-col :span="5"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        <div class="area-item"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            <div class="item-text">上报人:</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            <a-input style="width: 220px" v-model:value="searchData.sbr" placeholder="请输入上报人"  /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    </a-col> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    <a-col :span="5"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        <div class="area-item"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            <div class="item-text">上报地点:</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            <a-select v-model:value="searchData.strInstallPos" style="width: 220px" placeholder="请选择上报地点"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                <a-select-option v-for="item in addressList" :key="item" :value="item.value">{{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    item.label 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    }}</a-select-option> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            </a-select> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    </a-col> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    <a-button type="primary" preIcon="ant-design:search-outlined" style="margin-right: 15px" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        @click="getSearch">查询</a-button> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    <a-button preIcon="ant-design:sync-outlined" @click="onReset">重置</a-button> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                </a-row> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <a-table :columns="columns" :data-source="tableData" :scroll="{ y: 500 }" class="tableW" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                :pagination="pagination" @change="pageChange"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <template #bodyCell="{ column, text }"></template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </a-table> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+</template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<script setup lang="ts"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { ref, onMounted, computed, reactive } from 'vue'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { columns } from './gas-report.data' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { getGasAddressList, getList } from './gas-report.api' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import customHeader from '/@/components/vent/customHeader.vue'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+let searchData = reactive({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    reportTime: '', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    districtTeam: '', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    sbr: '', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    strInstallPos: '', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+let qdList = reactive<any[]>([])//区队下拉列表 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+let addressList = reactive<any[]>([])//上报地点下拉列表 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+let pagination = reactive({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    current: 1, // 当前页码 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    pageSize: 10, // 每页显示条数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    total: 0, // 总条目数,后端返回 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // showTotal: (total, range) => `${range[0]}-${range[1]} 条,总共 ${total} 条`, // 分页右下角显示信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    showSizeChanger: true, // 是否可改变每页显示条数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    pageSizeOptions: ['10', '20', '50'], // 可选的每页显示条数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+let tableData = ref<any[]>([]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+function onChange(val,time) {  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    searchData.reportTime=time 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//获取日报列表数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+async function getTableList() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    let res = await getList({pageNo:pagination.current,pageSize:pagination.pageSize,...searchData}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    console.log(res, '瓦斯日报列表数据-----------') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    tableData.value=res.records 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    pagination.total=res.total 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//查询 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+function getSearch() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    pagination.current=1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    getTableList() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//重置 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+function onReset() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    pagination.current=1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    searchData.districtTeam='' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    searchData.reportTime='' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    searchData.strInstallPos='' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    searchData.sbr='' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    getTableList() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//分页切换 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+function pageChange(val) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    pagination.current = val.current; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    pagination.pageSize = val.pageSize; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    getTableList() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+function uniqueObjectsArray(arr) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  const map = new Map(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  return arr.filter((item) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    const key = JSON.stringify(item); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    const isNew = !map.has(key); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    map.set(key, item); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    return isNew; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//获取安装位置下拉选项 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+async function getSelectList() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    let res = await getGasAddressList({ devicekind: 'gasDayReport' }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    console.log(res, '区队下拉选项--------') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    qdList.length = 0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    addressList.length = 0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if (res.length != 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        res.forEach(el => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            qdList.push({ label: el.devgroup_dictText, value: el.devgroup }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            addressList.push({ label: el.strinstallpos, value: el.strinstallpos }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       qdList= uniqueObjectsArray(qdList) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+onMounted(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    getSelectList() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    getTableList() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+</script> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<style lang="less" scoped> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.gasReport { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    width: 100%; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    height: 100%; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    padding: 80px 10px 15px 10px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    box-sizing: border-box; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    position: relative; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    .search-area { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        margin: 20px 0px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        .area-item { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            display: flex; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            align-items: center; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            .item-text { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                color: #FFF; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    .zxm-picker, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    .zxm-input { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        border: 1px solid #3ad8ff77 !important; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        background-color: #ffffff00 !important; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        color: #fff !important; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+:deep(.zxm-table-thead > tr > th:last-child) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    border-right: 1px solid #91e9fe !important; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+:deep(.zxm-picker-input > input) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    color: #fff; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+:deep(.zxm-select:not(.zxm-select-customize-input) .zxm-select-selector) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    border: 1px solid #3ad8ff77 !important; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    background-color: #ffffff00 !important; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+:deep(.zxm-select-selection-item) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    color: #fff !important; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+</style> 
			 |