Files
dyf-vue-ui/src/views/equipmentManagement/devices/Charge.vue
2025-09-09 16:34:54 +08:00

161 lines
3.9 KiB
Vue

<template>
<div class="content">
<div class="topFilter">
<el-form :inline="true" :model="filter" class="demo-form-inline">
<el-form-item label="操作时间">
<el-date-picker
v-model="filter.Date"
type="daterange"
range-separator="-"
start-placeholder="开始日期"
end-placeholder="结束日期"
value-format="YYYY-MM-DD"
:size="'default'"
/>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="getRecordList">查询</el-button>
<el-button link type="primary" @click="filter.Date = []">重置</el-button>
</el-form-item>
</el-form>
</div>
<div class="grid" v-loading="Status.loading">
<el-table ref="grid" v-loading="Status.loading" border :data="List" height="calc(100vh - 320px)">
<el-table-column label="创建时间" align="center" prop="createTime" />
<el-table-column label="设备名称" align="center" prop="deviceName" />
<el-table-column label="数据来源" align="center" prop="dataSource" />
<el-table-column label="内容" align="center" prop="content" />
</el-table>
<pagination
v-show="pagin.total > 0"
v-model:page="pagin.pageIndex"
v-model:limit="pagin.pageSize"
:total="pagin.total"
@pagination="getRecordList"
/>
</div>
</div>
</template>
<script setup lang="ts">
import request from '@/utils/request';
const props = defineProps({
data: {
type: Object,
required: true
},
acIndex: {
type: Number,
required: true
}
});
var filter = ref({
Date: []
});
var Status = ref({
loading: false
});
var data = ref({});
var grid = ref(null);
var List = ref([]);
var pagin = ref({
total: 0,
pageIndex: 1,
pageSize: 10
});
function getRecordList() {
Status.value.loading = true;
setTimeout(() => {
initData(props.data,true);
}, 0);
}
var deviceid = null;
function initData(item,Refresh) {
if (deviceid == item.data.deviceId && !Refresh) {
Status.value.loading = false;
return;
}
List.value = [];
deviceid = item.data.deviceId;
let params = {
startTime: '',
endTime: '',
deviceId:deviceid,
pageNum:pagin.value.pageIndex,
pageSize:pagin.value.pageSize,
orderByColumn:"updatedAt",
isAsc:"descending"
};
if (filter.value.Date && filter.value.Date.length) {
params.startTime = filter.value.Date[0];
params.endTime = filter.value.Date.length > 1 ? filter.value.Date[1] : '';
}
request({
url: '/equipment/chargeDischarge/list' ,
method: 'get',
params: params
})
.then((res) => {
if (res.code == 200) {
if (res.rows) {
if (res.rows.length) {
List.value = res.rows;
}
}
pagin.value.total= res.total;
}
})
.finally(() => {
data.value = item.data;
Status.value.loading = false;
});
}
watch(
() => props.acIndex, // 监听的属性
(newVal) => {
if (newVal === 3) {
// 确保参数有效
debugger;
console.log('newVal=', newVal);
getRecordList(); // 调用回调
}
},
{ immediate: true } // 关键:组件初始化时立即执行一次
);
</script>
<style lang="scss" scoped>
.content {
width: 100%;
height: 100%;
box-sizing: border-box;
padding: 30px 12px 12px 12px;
}
.pickerContent {
box-sizing: border-box;
border: 1px solid rgba(189, 198, 215, 0.8);
border-radius: 2px;
}
.topFilter {
display: flex;
flex-direction: row;
flex-wrap: nowrap;
align-content: center;
justify-content: flex-end;
align-items: center;
}
:deep .pickerContent .el-date-editor {
border: none !important;
}
</style>