jsy-app/pages/work/operation-log/index.vue

186 lines
5.0 KiB
Vue
Raw Normal View History

2024-12-02 16:49:48 +08:00
<template>
2024-12-20 17:25:13 +08:00
<z-paging ref="paging" @query="queryList" v-model="dataList" :default-page-size="queryParams.pageSize"
:auto-show-system-loading="true" empty-view-text="抱歉,暂时还没有相关数据!">
<template #top>
<custom-nav-bar :left="true" title="操作日志"></custom-nav-bar>
<view style="background: #e7fdeb;padding: 5px;">
<u-search v-model="queryParams.searchValue" @search="queryList" />
</view>
</template>
<view class="index-container">
<view class="item-container" v-for="item in dataList">
<view style="display: flex; align-items: center; justify-content: space-between;">
<view class="flex-text" style="margin: 15px;">
<view class="flex-text-one" style="color: black;">出水口</view>
<view>{{ item.woName}}</view>
</view>
<view style="margin-right: 5px;" v-hasPermi="['system:land:edit']">
2024-12-25 15:52:18 +08:00
<u-button type="primary" plain plainFill>
{{ item.operResult}}
</u-button>
2024-12-20 17:25:13 +08:00
</view>
</view>
<u-gap height="1" bgColor="#D2D2D2"></u-gap>
2024-12-24 11:48:02 +08:00
<view style="display: flex;justify-content: space-between;align-items: center;"
@click="openStepPop(item)">
2024-12-20 17:25:13 +08:00
<view class="data">
<view class="flex-text global-font-size-1">
<view class="flex-text-one">设备名称</view>
<view>{{ item.operSubject}}</view>
</view>
<view class="flex-text global-font-size-1">
<view class="flex-text-one">执行内容</view>
<view>{{ item.operContent}}</view>
</view>
<view class="flex-text global-font-size-1" style="margin-top: 5px;">
<view class="flex-text-one">操作人员</view>
<view>{{ item.operUser}}</view>
</view>
<view class="flex-text global-font-size-1" style="margin-top: 5px;">
<view class="flex-text-one">操作时间</view>
<view>{{ item.occurTime}}</view>
</view>
</view>
<view>
<view v-hasPermi="['land:land:query']" style="margin-right: 10px;">
<u-icon name="arrow-right"></u-icon>
</view>
</view>
</view>
</view>
</view>
</z-paging>
2024-12-02 16:49:48 +08:00
2024-12-20 17:25:13 +08:00
<!-- 图层弹出 -->
2024-12-24 11:48:02 +08:00
<u-popup mode="center" :show="openPop" @close="openPop = false">
2025-01-06 17:44:48 +08:00
<view class="popup-content" style="width: 70vw;" :style="`height:${this.stepList.length * 45}px`">
2024-12-24 11:51:23 +08:00
<u-steps direction="column" :current="stepCurrent">
2024-12-24 11:48:02 +08:00
<u-steps-item v-for="item in this.stepList" :title="item.title" :desc="item.description"></u-steps-item>
2024-12-20 17:25:13 +08:00
</u-steps>
</view>
</u-popup>
</template>
2024-12-02 16:49:48 +08:00
<script>
2024-12-20 19:13:48 +08:00
import * as userlog from "@/api/iotlog/userlog.js"
2024-12-20 17:25:13 +08:00
export default {
data() {
return {
dataList: [],
queryParams: {
pageNum: 1,
pageSize: 20,
logType: 1, //1:设备,2:系统
landId: -1, //地块id
operType: "control", //控制
operSource: 1, //用户
searchValue: "", //出水口设备code
},
2024-12-24 11:48:02 +08:00
openPop: false,
2024-12-24 11:51:23 +08:00
stepCurrent: 0,
2024-12-24 11:48:02 +08:00
stepList: [],
2024-12-20 17:25:13 +08:00
}
},
2024-12-20 18:30:41 +08:00
onLoad(par) {
if (par.queryParams) {
let queryParams = JSON.parse(par.queryParams);
this.queryParams = Object.assign(this.queryParams, queryParams)
} else {
2025-01-06 12:15:57 +08:00
if (getApp().ijs.land) {
this.queryParams.landId = getApp().ijs.land.id;
2024-12-20 18:30:41 +08:00
}
2024-12-20 17:25:13 +08:00
}
},
onShow() {},
mounted() {},
methods: {
queryList(pageNo, pageSize) {
this.queryParams.pageNum = pageNo;
2024-12-20 19:13:48 +08:00
userlog.getlist(this.queryParams).then(res => {
2024-12-20 17:25:13 +08:00
this.$refs.paging.completeByTotal(res.rows, res.total);
});
},
2024-12-24 11:48:02 +08:00
async openStepPop(item) {
let stepList = userlog.getSeqlistTemp();
2024-12-24 11:51:23 +08:00
let stepCurrent = 0;
2024-12-24 11:48:02 +08:00
this.stepList = [];
userlog.getSeqlist({
2024-12-20 19:13:48 +08:00
traceId: item.traceId
2024-12-24 11:48:02 +08:00
}).then(response => {
if (response.rows.length) {
response.rows.forEach(item => {
2025-01-06 17:44:48 +08:00
if (item.eventType == 9) {
stepList.splice(stepCurrent, 0, {
title: '中断',
description: item.occurTime,
status: 'success'
});
} else {
if (item.eventType > stepCurrent) {
stepCurrent = item.eventType;
stepList[stepCurrent - 1].description = item.occurTime;
stepList[stepCurrent - 1].status = 'success';
}
2024-12-24 11:51:23 +08:00
}
2024-12-24 11:48:02 +08:00
});
}
this.stepList = stepList;
2024-12-24 11:51:23 +08:00
this.stepCurrent = stepCurrent;
2024-12-24 11:48:02 +08:00
this.openPop = true;
2024-12-20 19:13:48 +08:00
});
2024-12-20 17:25:13 +08:00
},
// 数据排序
compareDataNew(file1) {
return function(b, a) {
if (b[file1] < a[file1]) {
return -1;
} else if (b[file1] > a[file1]) {
return 1;
}
}
},
}
}
2024-12-02 16:49:48 +08:00
</script>
2024-12-20 17:25:13 +08:00
<style lang="scss">
.index-container {
.list {
margin: 0px 10px;
}
.list-size {
display: flex;
padding: 5px 5px;
background: white;
justify-content: center;
}
.search {
background-color: white;
padding: 10px;
}
.item-container {
margin: 10px 10px;
background-color: white;
padding-bottom: 10px;
border-radius: 10px;
box-shadow: 1px 1px 2px 2px rgba(0, 0, 0, 0.05);
}
.flex-text {
display: flex;
align-items: center;
.flex-text-one {
color: #939393;
font-weight: bold;
}
}
.data {
margin: 10px 20px;
}
}
2024-12-02 16:49:48 +08:00
</style>