<template> <div class="app-container"> <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px"> <el-form-item label="设备名称" prop="deviceName"> <el-input v-model="queryParams.deviceName" placeholder="请输入设备名称" clearable size="small" @keyup.enter.native="handleQuery" /> </el-form-item> <el-form-item label="设备编号" prop="deviceNum"> <el-input v-model="queryParams.deviceNum" placeholder="请输入设备编号" clearable size="small" @keyup.enter.native="handleQuery" /> </el-form-item> <el-form-item label="所属企业" prop="beyondEnterpriseId"> <el-select v-model="queryParams.beyondEnterpriseId" placeholder="请选择所属企业"> <el-option v-for="item in enterprises" :key="item.enterpriseId" :label="item.enterpriseName" :value="item.enterpriseId" ></el-option> </el-select> </el-form-item> <el-form-item> <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button> <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button> </el-form-item> </el-form> <el-tabs v-model="activeName" @tab-click="handleClick"> <el-tab-pane label="压力表" name="first" key="first"> <pressureTab :activeName="activeName" :childrenQueryParams="queryParams" v-if="activeName === 'first'" ref="pressure"></pressureTab> </el-tab-pane> <el-tab-pane label="流量计" name="second" key="second"> <flowmeterTab :activeName="activeName" :childrenQueryParams="queryParams" v-if="activeName === 'second'" ref="flowmeter"></flowmeterTab> </el-tab-pane> <el-tab-pane label="探测器" name="third" key="third"> <detector-tab :activeName="activeName" :childrenQueryParams="queryParams" v-if="activeName === 'third'" ref="detector"> </detector-tab> </el-tab-pane> </el-tabs> </div> </template> <script> import { listData, getData, delData, addData, updateData, exportData } from "@/api/operationMonitor/data"; import { enterpriseLists } from "@/api/regulation/info"; import detectorTab from "./component/detectorTab"; import flowmeterTab from "./component/flowmeterTab"; import pressureTab from "./component/pressureTab" export default { name: "Data", components: { detectorTab, flowmeterTab, pressureTab }, data() { return { // 遮罩层 loading: true, // 导出遮罩层 exportLoading: false, // 选中数组 ids: [], // 非单个禁用 single: true, // 非多个禁用 multiple: true, // 显示搜索条件 showSearch: true, // 总条数 total: 0, // 设备监控表格数据 dataList: [], // 弹出层标题 title: "", // 是否显示弹出层 open: false, // 查询参数 queryParams: { pageNum: 1, pageSize: 10, deviceNum: null, standardConditionAccumulation: null, workingConditionAccumulation: null, backingStandardConditionAccumulation: null, residualQuantity: null, standardConditionFlow: null, workingConditionFlow: null, temperature: null, pressure: null, reportTime: null, communicationStatus: null, deviceStatus: null, isDel: null, remarks: null, deviceType: "1" }, // 表单参数 form: {}, // 表单校验 rules: { deviceNum: [ { required: true, message: "设备id不能为空", trigger: "blur" } ], }, enterprises:[], activeName: "first" }; }, created() { //this.getList(); this.getEnterpriseLists(); }, methods: { // 取消按钮 cancel() { this.open = false; this.reset(); }, // 表单重置 reset() { this.form = { deviceReportDataId: null, deviceNum: null, standardConditionAccumulation: null, workingConditionAccumulation: null, backingStandardConditionAccumulation: null, residualQuantity: null, standardConditionFlow: null, workingConditionFlow: null, temperature: null, pressure: null, reportTime: null, communicationStatus: "0", deviceStatus: "0", createBy: null, createTime: null, updateBy: null, updateTime: null, isDel: null, remarks: null }; this.resetForm("form"); }, /** 搜索按钮操作 */ handleQuery() { if("first" == this.activeName){ this.$refs.pressure.pressureHandleQuery(); }else if("second" == this.activeName){ this.$refs.flowmeter.flowmeterHandleQuery(); }else{ this.$refs.detector.detectorHandleQuery(); } }, /** 重置按钮操作 */ resetQuery() { this.resetForm("queryForm"); this.handleQuery(); }, //所属单位 getEnterpriseLists(){ enterpriseLists().then(response => { this.enterprises = response.rows; }); }, //切换tag handleClick(tab, event){ if("0" == tab.index){ this.activeName = "first" }else if("1" == tab.index){ this.activeName = "second" }else{ this.activeName = "third" } } } }; </script> <style> .el-tag { margin-left: 10px; text-align: center; width: 200px; } </style>