import {searchDoorHistoryApi} from "@/views/accessControl/js/api";
|
import {ref} from "vue";
|
import door from "@/assets/js/const/door";
|
import getLabelByKey from "@/assets/js/tools/getLabelByKey";
|
import exportExcelUtil from "@/assets/js/tools/exportExcelUtil";
|
import { ElMessage } from 'element-plus';
|
|
const doorInfoHistoryModule = (id)=>{
|
const doorId = ref(id);
|
const headers = {carcameraName:"门禁名称", recordTime: "开门时间", state: "状态变换"};
|
const lockStatusList = door.lockStatus;
|
const doorHistoryData = ref([]);
|
const page = ref({
|
pageCurr: 1,
|
pageSize: 10,
|
total: 0
|
});
|
|
/**
|
* 查询门禁开门历史记录
|
* @return {Promise<void>}
|
*/
|
const searchDoorHistory = async (isExportFile, isAll)=>{
|
const pageValue = page.value;
|
// 判断是否导出全部 === 不能删除,防止isExPortFile={}
|
isExportFile = isExportFile === true;
|
isAll = isAll === true;
|
try{
|
const curr = isExportFile && isAll?1:pageValue.pageCurr;
|
const size = isExportFile && isAll?pageValue.total:pageValue.pageSize;
|
const res = await searchDoorHistoryApi(doorId.value, curr, size);
|
let list = [];
|
let pageCurr = 1;
|
let total = 0;
|
let rs = res.data;
|
if(rs.code === 1 && rs.data) {
|
let data2 = rs.data2;
|
list = data2.list.map(item=>{
|
let lastState = getLabelByKey(item.lastStatus, lockStatusList, "未知");
|
let state = getLabelByKey(item.status, lockStatusList, "未知");
|
item.carcameraName = item.cameraInf.carcameraName;
|
item.state = "从"+lastState+"变更为"+state;
|
return item;
|
});
|
pageCurr = data2.pageNum;
|
total = data2.total;
|
}else {
|
pageCurr = 0;
|
total = 0;
|
}
|
if(isExportFile) {
|
exportExcelUtil(
|
headers,
|
list,
|
"门禁历史记录-"+new Date().format("yyyy-MM-dd hh:mm:ss")
|
);
|
}else {
|
page.value.pageCurr = pageCurr;
|
page.value.total = total;
|
doorHistoryData.value = list;
|
}
|
}catch (e) {
|
page.value.pageCurr = 0;
|
page.value.total = 0;
|
}
|
}
|
|
const exportFile = (isAll)=>{
|
isAll = isAll === true;
|
if(page.value.total === 0) {
|
ElMessage({
|
message: '暂无数据,无法导出',
|
type: 'warning',
|
})
|
return;
|
}
|
searchDoorHistory(true, isAll);
|
}
|
|
return {
|
doorId,
|
page,
|
doorHistoryData,
|
searchDoorHistory,
|
exportFile
|
}
|
}
|
|
export default doorInfoHistoryModule;
|