| | |
| | | <template> |
| | | <a-card :bordered="false" style="display: flex;flex-direction: column"> |
| | | |
| | | <!-- 查询区域 --> |
| | | <!--<div class="table-page-search-wrapper">--> |
| | | <!--<a-form layout="inline" @keyup.enter.native="searchQuery">--> |
| | | <!--<a-row :gutter="24">--> |
| | | <!--<a-col :md="7" :sm="7">--> |
| | | <!--<a-form-item label="设备名称">--> |
| | | <!--<a-input placeholder="输入设备名称查询" v-model="queryParam.equipmentName"></a-input>--> |
| | | <!--</a-form-item>--> |
| | | <!--</a-col>--> |
| | | <!--<a-col :md="7" :sm="7">--> |
| | | <!--<a-form-item label="状态">--> |
| | | <!--<a-select v-model="queryParam.status" placeholder="请选择">--> |
| | | <!--<a-select-option value="">请选择</a-select-option>--> |
| | | <!--<a-select-option value="0">关机</a-select-option>--> |
| | | <!--<a-select-option value="2">待机</a-select-option>--> |
| | | <!--<a-select-option value="3">运行</a-select-option>--> |
| | | <!--<a-select-option value="22">报警</a-select-option>--> |
| | | <!--</a-select>--> |
| | | <!--</a-form-item>--> |
| | | <!--</a-col>--> |
| | | <!--<a-col :md="3" :sm="3">--> |
| | | <!--<span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">--> |
| | | <!--<a @click="handleToggleSearch" style="margin-left: 8px">--> |
| | | <!--{{ toggleSearchStatus ? '收起' : '展开' }}--> |
| | | <!--<a-icon :type="toggleSearchStatus ? 'up' : 'down'"/>--> |
| | | <!--</a>--> |
| | | <!--</span>--> |
| | | <!--</a-col>--> |
| | | <!--</a-row>--> |
| | | <!--<a-row :gutter="24">--> |
| | | <!--<template v-if="toggleSearchStatus">--> |
| | | <!--<a-col :md="12" :sm="12">--> |
| | | <!--<a-form-item label="采集时间">--> |
| | | <!--<a-range-picker @change="dateParamChange" v-model="dates"/>--> |
| | | <!--</a-form-item>--> |
| | | <!--</a-col>--> |
| | | <!--</template>--> |
| | | |
| | | <!--</a-row>--> |
| | | <!--</a-form>--> |
| | | <!--</div>--> |
| | | <!-- 操作按钮区域 --> |
| | | <!--<div class="table-operator" style="border-top: 5px">--> |
| | | <!--<a-button type="primary" @click="searchQuery" icon="search">查询</a-button>--> |
| | | <!--<a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>--> |
| | | <!--</div>--> |
| | | <div class="table-page-search-wrapper"> |
| | | <a-form layout="inline" @keyup.enter.native="searchQuery"> |
| | | <a-row :gutter="12"> |
| | | <a-col :md="7" :sm="8"> |
| | | <a-form-item label="状态" :labelCol="{span: 6}" :wrapperCol="{span: 14, offset: 1}"> |
| | | <a-select v-model='queryParam.status' placeholder="请选择状态"> |
| | | <a-select-option value="1">待机</a-select-option> |
| | | <a-select-option value="2">运行</a-select-option> |
| | | <a-select-option value="3">报警</a-select-option> |
| | | <a-select-option value="4">关机</a-select-option> |
| | | </a-select> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :md="7" :sm="8"> |
| | | <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons"> |
| | | <a-button type="primary" @click="searchQuery" icon="search">查询</a-button> |
| | | <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button> |
| | | </span> |
| | | </a-col> |
| | | </a-row> |
| | | </a-form> |
| | | </div> |
| | | |
| | | <div class="equipmentList" id="DeviceList"> |
| | | <!--<div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">--> |
| | | <!--<i class="anticon anticon-info-circle ant-alert-icon"></i>已选择 <a style="font-weight: 600">{{--> |
| | | <!--selectedRowKeys.length }}</a>项 --> |
| | | <!--<a style="margin-left: 24px" @click="onClearSelected">清空</a>--> |
| | | <!--</div>--> |
| | | |
| | | <a-table ref="table" bordered size="middle" rowKey="equipmentId" :columns="columns" :dataSource="dataSource" |
| | | :pagination="false" :loading="loading" :scroll="{x:'max-content',y:scrollY}"> |
| | | <template slot="equipmentId" slot-scope="text, record"> |
| | | <div :style="{color:record.equipmentStatus!==0?'#f00':null}">{{text}}</div> |
| | | </template> |
| | | <template slot="equipmentName" slot-scope="text, record"> |
| | | <div :style="{color:record.equipmentStatus!==0?'#f00':null}">{{text}}</div> |
| | | </template> |
| | | <template slot="oporationDict" slot-scope="text, record"> |
| | | <div :style="{color:record.equipmentStatus!==0?'#f00':null}">{{text}}</div> |
| | | </template> |
| | | <template slot="equipmentStatus" slot-scope="text"> |
| | | <div :style="{color:text!==0?'#f00':null}">{{text===0?'正常':'异常'}}</div> |
| | | </template> |
| | | <template slot="collecttime" slot-scope="text, record"> |
| | | <div :style="{color:record.equipmentStatus!==0?'#f00':null}">{{text}}</div> |
| | | </template> |
| | | <template slot="action" slot-scope="text, record"> |
| | | <a-popconfirm title="确定反馈吗?" @confirm="$emit('editEquipmentStatus',record)" v-has="'deiveBaseInfo:responseStatus'"> |
| | | <a>状态反馈</a> |
| | | </a-popconfirm> |
| | | </template> |
| | | </a-table> |
| | | |
| | | <a-table |
| | | ref="table" |
| | | bordered |
| | | size="middle" |
| | | rowKey="equipmentId" |
| | | :columns="columns" |
| | | :dataSource="localDataSource" |
| | | :pagination="false" |
| | | :loading="loading" |
| | | :scroll="{x:'max-content',y:scrollY}"/> |
| | | </div> |
| | | </a-card> |
| | | </template> |
| | | |
| | | <script> |
| | | import { postAction } from '@/api/manage' |
| | | import { postAction, getAction } from '@/api/manage' |
| | | import { filterObj } from '@/utils/util' |
| | | |
| | | export default { |
| | | name: 'EquipmentLayout', |
| | | components: { }, |
| | | data() { |
| | | return { |
| | | localDataSource: [...this.dataSource], |
| | | loading:false, |
| | | url: { |
| | | |
| | | }, |
| | | queryParam: {}, |
| | | columns: [ |
| | | { |
| | | title: '设备ID', |
| | | title: '设备编号', |
| | | align: "center", |
| | | dataIndex: 'equipmentId', |
| | | scopedSlots: {customRender: 'equipmentId'}, |
| | | width:210 |
| | | }, |
| | | { |
| | | title: '设备名称', |
| | | title: '安装位置', |
| | | align: "center", |
| | | dataIndex: 'equipmentName', |
| | | scopedSlots: {customRender: 'equipmentName'}, |
| | | width:300 |
| | | }, |
| | | { |
| | | title: '状态', |
| | | align: "center", |
| | | dataIndex: 'oporationDict', |
| | | scopedSlots: {customRender: 'oporationDict'}, |
| | | width:200 |
| | | }, |
| | | { |
| | | title: '设备异常', |
| | | align: "center", |
| | | dataIndex: 'equipmentStatus', |
| | | scopedSlots: {customRender: 'equipmentStatus'}, |
| | | width:200 |
| | | }, |
| | | { |
| | |
| | | dataIndex: 'collecttime', |
| | | defaultSortOrder:'descend', |
| | | sorter: (a, b) => {return a.collecttime>b.collecttime?1:-1}, |
| | | scopedSlots: {customRender: 'collecttime'}, |
| | | width:350 |
| | | }, |
| | | { |
| | | title: '操作', |
| | | dataIndex: 'action', |
| | | scopedSlots: {customRender: 'action'}, |
| | | align: "center", |
| | | width: 150, |
| | | fixed:'right' |
| | | } |
| | | ], |
| | | scrollY:465, |
| | | url: { |
| | | list: '/mdc/mdcEquipment/queryEquipmentMonitorList', |
| | | } |
| | | } |
| | | }, |
| | | props: { dataSource: { |
| | | props: { |
| | | dataSource: { |
| | | type: Array, |
| | | required: true, |
| | | default: [] |
| | | } }, |
| | | }, |
| | | equipmentId: '' |
| | | }, |
| | | watch: { |
| | | dataSource(newVal) { |
| | | this.localDataSource = [...newVal]; // ✅ 监听父组件数据变化 |
| | | } |
| | | }, |
| | | methods: { |
| | | loadData() { |
| | | var params = this.getQueryParams();//查询条件 |
| | | this.loading = true; |
| | | getAction(this.url.list, params).then((res) => { |
| | | if (res.success) { |
| | | this.localDataSource = res.result |
| | | } |
| | | if (res.code === 510) { |
| | | this.$message.warning(res.message) |
| | | } |
| | | this.loading = false; |
| | | }) |
| | | }, |
| | | getQueryParams() { |
| | | let param = Object.assign({}, this.queryParam); |
| | | param.key = this.equipmentId; |
| | | return filterObj(param); |
| | | }, |
| | | handleWindowResize(){ |
| | | const boxHeight = +window.getComputedStyle(document.getElementById('DeviceList')).height.slice(0,-2) |
| | | const tableHeadHeight = +window.getComputedStyle(document.querySelector('.ant-table-thead th')).height.slice(0,-2) |
| | | this.scrollY = boxHeight - tableHeadHeight |
| | | }, |
| | | // 重置字典类型搜索框的内容 |
| | | searchReset() { |
| | | var that = this; |
| | | that.queryParam.status = ""; |
| | | that.queryParam.key = this.equipmentId; |
| | | that.loadData(); |
| | | }, |
| | | searchQuery() { |
| | | this.loadData(); |
| | | } |
| | | }, |
| | | mounted(){ |
| | | window.addEventListener('resize',this.handleWindowResize) |