|
@@ -94,6 +94,7 @@
|
|
</el-dropdown-item>
|
|
</el-dropdown-item>
|
|
<el-dropdown-item @click.native="showCallLog(scope.row)">调用日志</el-dropdown-item>
|
|
<el-dropdown-item @click.native="showCallLog(scope.row)">调用日志</el-dropdown-item>
|
|
<el-dropdown-item @click.native="showReportLog(scope.row)">设备日志</el-dropdown-item>
|
|
<el-dropdown-item @click.native="showReportLog(scope.row)">设备日志</el-dropdown-item>
|
|
|
|
+ <el-dropdown-item @click.native="showEventLog(scope.row)">事件日志</el-dropdown-item>
|
|
</el-dropdown-menu>
|
|
</el-dropdown-menu>
|
|
</el-dropdown>
|
|
</el-dropdown>
|
|
</template>
|
|
</template>
|
|
@@ -242,6 +243,68 @@
|
|
</div>
|
|
</div>
|
|
</el-dialog>
|
|
</el-dialog>
|
|
|
|
|
|
|
|
+ <!-- 事件日志弹框 -->
|
|
|
|
+ <el-dialog :visible.sync="eventLogDialog" title="事件日志" width="60%">
|
|
|
|
+ <el-form inline>
|
|
|
|
+ <el-form-item label="记录时间">
|
|
|
|
+ <el-date-picker
|
|
|
|
+ v-model="logDaterangeTime"
|
|
|
|
+ style="width: 240px"
|
|
|
|
+ value-format="yyyy-MM-dd HH:mm"
|
|
|
|
+ type="datetimerange"
|
|
|
|
+ range-separator="-"
|
|
|
|
+ start-placeholder="开始日期"
|
|
|
|
+ end-placeholder="结束日期"
|
|
|
|
+ ></el-date-picker>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <!-- 新增事件名称查询条件 -->
|
|
|
|
+ <el-form-item label="事件名称">
|
|
|
|
+ <el-select v-model="eventLogQueryParams.eventName" clearable>
|
|
|
|
+ <el-option
|
|
|
|
+ v-for="item in eventData"
|
|
|
|
+ :key="item.eventKey"
|
|
|
|
+ :label="item.eventName"
|
|
|
|
+ :value="item.eventKey"
|
|
|
|
+ ></el-option>
|
|
|
|
+ </el-select>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item>
|
|
|
|
+ <el-button type="primary" @click="handleEventLogQuery">查询</el-button>
|
|
|
|
+ <el-button @click="resetEventLogQuery">重置</el-button>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-form>
|
|
|
|
+ <el-table :data="eventLogData" style="width: 100%" :show-header="true" :empty-text="'暂无数据'">
|
|
|
|
+ <el-table-column type="index" label="序号" width="50" align="center"></el-table-column>
|
|
|
|
+ <el-table-column label="对象编号" prop="objCode"></el-table-column>
|
|
|
|
+ <el-table-column label="对象名称" prop="objName"></el-table-column>
|
|
|
|
+ <el-table-column label="事件名称" prop="eventName"></el-table-column>
|
|
|
|
+ <el-table-column label="事件时间" prop="eventTime"></el-table-column>
|
|
|
|
+ <el-table-column label="操作" align="center" width="100">
|
|
|
|
+ <template slot-scope="scope">
|
|
|
|
+ <el-button type="text" size="mini" icon="el-icon-info" @click="handleEventLogDetail(scope.row)">详情
|
|
|
|
+ </el-button>
|
|
|
|
+ </template>
|
|
|
|
+ </el-table-column>
|
|
|
|
+ </el-table>
|
|
|
|
+ <pagination
|
|
|
|
+ v-show="eventLogQueryTotal > 0"
|
|
|
|
+ :total="eventLogQueryTotal"
|
|
|
|
+ :page.sync="eventLogQueryParams.pageNum"
|
|
|
|
+ :limit.sync="eventLogQueryParams.pageSize"
|
|
|
|
+ @pagination="handleEventLogQuery"
|
|
|
|
+ />
|
|
|
|
+ </el-dialog>
|
|
|
|
+ <!-- 事件日志详情弹框 -->
|
|
|
|
+ <el-dialog :visible.sync="eventLogDetailDialog" title="事件日志详情" width="50%">
|
|
|
|
+ <div v-if="eventLogDetailData">
|
|
|
|
+ <p><strong>对象编号:</strong>{{ eventLogDetailData.objCode }}</p>
|
|
|
|
+ <p><strong>对象名称:</strong>{{ eventLogDetailData.objName }}</p>
|
|
|
|
+ <p><strong>事件名称:</strong>{{ eventLogDetailData.eventName }}</p>
|
|
|
|
+ <p><strong>事件时间:</strong>{{ eventLogDetailData.eventTime }}</p>
|
|
|
|
+ <p><strong>事件描述:</strong>{{ eventLogDetailData.eventDetail }}</p>
|
|
|
|
+ </div>
|
|
|
|
+ </el-dialog>
|
|
|
|
+ <!--详情 -->
|
|
<el-dialog :visible.sync="open" title="设备状态详情" custom-class="detail-dialog">
|
|
<el-dialog :visible.sync="open" title="设备状态详情" custom-class="detail-dialog">
|
|
<div v-if="curRow">
|
|
<div v-if="curRow">
|
|
<!--分页导航 @tab-click="handleTabClick"-->
|
|
<!--分页导航 @tab-click="handleTabClick"-->
|
|
@@ -252,6 +315,7 @@
|
|
<el-tab-pane label="设备能力" name="ability"></el-tab-pane>
|
|
<el-tab-pane label="设备能力" name="ability"></el-tab-pane>
|
|
</el-tabs>
|
|
</el-tabs>
|
|
|
|
|
|
|
|
+
|
|
<!-- 设备基本信息 -->
|
|
<!-- 设备基本信息 -->
|
|
<div v-if="activeTab === 'basic'">
|
|
<div v-if="activeTab === 'basic'">
|
|
<el-card class="box-card">
|
|
<el-card class="box-card">
|
|
@@ -313,18 +377,6 @@
|
|
</el-table>
|
|
</el-table>
|
|
</el-card>
|
|
</el-card>
|
|
</div>
|
|
</div>
|
|
- <!--设备事件-->
|
|
|
|
- <div v-if="activeTab === 'event'">
|
|
|
|
- <el-card class="box-card">
|
|
|
|
- <el-table :data="eventData" style="width: 100%" :show-header="true" :empty-text="'暂无数据'">
|
|
|
|
- <el-table-column type="index" label="序号" width="50" align="center"></el-table-column>
|
|
|
|
- <el-table-column label="事件名称" prop="eventKey"></el-table-column>
|
|
|
|
- <el-table-column label="事件类型" prop="eventType" :formatter="formatEventType"></el-table-column>
|
|
|
|
- <el-table-column label="事件代码" prop="eventCode"></el-table-column>
|
|
|
|
- <el-table-column label="外部事件代码" prop="extEventCode"></el-table-column>
|
|
|
|
- </el-table>
|
|
|
|
- </el-card>
|
|
|
|
- </div>
|
|
|
|
</div>
|
|
</div>
|
|
</el-dialog>
|
|
</el-dialog>
|
|
</el-col>
|
|
</el-col>
|
|
@@ -342,7 +394,7 @@ import Treeselect from '@riophae/vue-treeselect'
|
|
import '@riophae/vue-treeselect/dist/vue-treeselect.css'
|
|
import '@riophae/vue-treeselect/dist/vue-treeselect.css'
|
|
import { listcallAbility } from '@/api/basecfg/objAbility'
|
|
import { listcallAbility } from '@/api/basecfg/objAbility'
|
|
import { getObjAttr } from '@/api/basecfg/objAttribute'
|
|
import { getObjAttr } from '@/api/basecfg/objAttribute'
|
|
-import { listReportLog, getReportLog, listCallLog, getCallLog } from '@/api/basecfg/objLog'
|
|
|
|
|
|
+import { listReportLog, getReportLog, listCallLog, getCallLog,listEventLog,getEventLog } from '@/api/basecfg/objLog'
|
|
|
|
|
|
export default {
|
|
export default {
|
|
name: 'Device',
|
|
name: 'Device',
|
|
@@ -426,6 +478,19 @@ export default {
|
|
pageSize: 10
|
|
pageSize: 10
|
|
},
|
|
},
|
|
callLogQueryTotal: 0,
|
|
callLogQueryTotal: 0,
|
|
|
|
+ eventLogDialog: false,
|
|
|
|
+ eventLogData: [],
|
|
|
|
+ eventLogQueryParams: {
|
|
|
|
+ eventKey:'',
|
|
|
|
+ eventName:'',
|
|
|
|
+ startTime: '',
|
|
|
|
+ endTime: '',
|
|
|
|
+ pageNum: 1,
|
|
|
|
+ pageSize: 10
|
|
|
|
+ },
|
|
|
|
+ eventLogQueryTotal: 0,
|
|
|
|
+ eventLogDetailDialog: false,
|
|
|
|
+ eventLogDetailData: {},
|
|
callStatusOptions: {
|
|
callStatusOptions: {
|
|
0: '成功',
|
|
0: '成功',
|
|
1: '进行中',
|
|
1: '进行中',
|
|
@@ -497,6 +562,50 @@ export default {
|
|
this.getReportLog(row.deviceCode, this.logQueryParams.startTime, this.logQueryParams.endTime) // 加载设备日志数据
|
|
this.getReportLog(row.deviceCode, this.logQueryParams.startTime, this.logQueryParams.endTime) // 加载设备日志数据
|
|
this.reportLog = true
|
|
this.reportLog = true
|
|
},
|
|
},
|
|
|
|
+ showEventLog(row) {
|
|
|
|
+ this.curRow = row;
|
|
|
|
+ this.getEventLog(row.deviceCode, this.logDaterangeTime[0], this.logDaterangeTime[1]);
|
|
|
|
+ this.eventLogDialog = true;
|
|
|
|
+ },
|
|
|
|
+ /** 查询事件日志*/
|
|
|
|
+ handleEventLogQuery() {
|
|
|
|
+ if (this.curRow) {
|
|
|
|
+ const startTime = this.logDaterangeTime[0];
|
|
|
|
+ const endTime = this.logDaterangeTime[1];
|
|
|
|
+ const eventKey = this.eventLogQueryParams.eventName;
|
|
|
|
+ this.getEventLog(this.curRow.deviceCode, eventKey,startTime, endTime)
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+/** 获取事件日志数据*/
|
|
|
|
+ getEventLog(deviceCode, eventKey,startTime, endTime) {
|
|
|
|
+ const query = {
|
|
|
|
+ objCode: deviceCode,
|
|
|
|
+ startRecTime: startTime,
|
|
|
|
+ endRecTime: endTime,
|
|
|
|
+ eventKey: eventKey,
|
|
|
|
+ pageNum: this.eventLogQueryParams.pageNum,
|
|
|
|
+ pageSize: this.eventLogQueryParams.pageSize
|
|
|
|
+ };
|
|
|
|
+ listEventLog(query).then(response => {
|
|
|
|
+ this.eventLogData = response.rows || [];
|
|
|
|
+ this.eventLogQueryTotal = response.total;
|
|
|
|
+ });
|
|
|
|
+ },
|
|
|
|
+ /** 重置事件日志查询*/
|
|
|
|
+ resetEventLogQuery() {
|
|
|
|
+ this.logDaterangeTime = [];
|
|
|
|
+ this.eventLogQueryParams.eventName=''
|
|
|
|
+ this.eventLogQueryParams.pageNum = 1;
|
|
|
|
+ this.eventLogQueryParams.pageSize = 10;
|
|
|
|
+ this.handleEventLogQuery();
|
|
|
|
+ },
|
|
|
|
+ /** 事件日志详情*/
|
|
|
|
+ handleEventLogDetail(row) {
|
|
|
|
+ getEventLog(row.id).then(response => {
|
|
|
|
+ this.eventLogDetailData = response.data || {};
|
|
|
|
+ this.eventLogDetailDialog = true;
|
|
|
|
+ });
|
|
|
|
+ },
|
|
/**重置调用日志*/
|
|
/**重置调用日志*/
|
|
resetCallLogQuery() {
|
|
resetCallLogQuery() {
|
|
this.callDaterangeTime = []
|
|
this.callDaterangeTime = []
|
|
@@ -519,7 +628,7 @@ export default {
|
|
/**调用日志表格*/
|
|
/**调用日志表格*/
|
|
getCallLog(deviceCode, startTime, endTime, abilityKey, callStatus) {
|
|
getCallLog(deviceCode, startTime, endTime, abilityKey, callStatus) {
|
|
const query = {
|
|
const query = {
|
|
- obj_code: deviceCode,
|
|
|
|
|
|
+ objCode: deviceCode,
|
|
objType: '2',
|
|
objType: '2',
|
|
startRecTime: startTime,
|
|
startRecTime: startTime,
|
|
endRecTime: endTime,
|
|
endRecTime: endTime,
|
|
@@ -587,6 +696,8 @@ export default {
|
|
}
|
|
}
|
|
getModelByCode(row.deviceModel).then(response => {
|
|
getModelByCode(row.deviceModel).then(response => {
|
|
this.abilityDevice = response.data?.abilityList.filter(item => item.hiddenFlag === 1) || []
|
|
this.abilityDevice = response.data?.abilityList.filter(item => item.hiddenFlag === 1) || []
|
|
|
|
+ this.eventData = response.data?.eventList || []
|
|
|
|
+
|
|
})
|
|
})
|
|
},
|
|
},
|
|
/**设备能力-执行按钮*/
|
|
/**设备能力-执行按钮*/
|
|
@@ -665,7 +776,6 @@ export default {
|
|
this.loading = true
|
|
this.loading = true
|
|
listDevRecursionByArea(this.queryParams).then(response => {
|
|
listDevRecursionByArea(this.queryParams).then(response => {
|
|
this.deviceList = response.rows
|
|
this.deviceList = response.rows
|
|
- console.log('this.deviceList', this.deviceList)
|
|
|
|
this.total = response.total
|
|
this.total = response.total
|
|
this.loading = false
|
|
this.loading = false
|
|
|
|
|
|
@@ -713,10 +823,6 @@ export default {
|
|
console.log('设备this.curRow', this.curRow)
|
|
console.log('设备this.curRow', this.curRow)
|
|
getModelByCode(this.curRow.deviceModel).then(response => {
|
|
getModelByCode(this.curRow.deviceModel).then(response => {
|
|
this.open = true
|
|
this.open = true
|
|
- const code = response.data
|
|
|
|
- console.log('code', code)
|
|
|
|
- this.eventData = response.data?.eventList || []
|
|
|
|
- // 过滤
|
|
|
|
this.abilityData = response.data?.abilityList.filter(item => item.hiddenFlag === 1) || []
|
|
this.abilityData = response.data?.abilityList.filter(item => item.hiddenFlag === 1) || []
|
|
this.attrData = response.data?.attrList || []
|
|
this.attrData = response.data?.attrList || []
|
|
})
|
|
})
|