416 lines
13 KiB
Vue
Raw Normal View History

2022-06-08 14:51:11 +08:00
<template>
<div class="fullHeight">
<div class="fullHeight">
<div class="searchBox whiteBlock">
2023-08-14 09:19:39 +08:00
<el-form
:inline="true"
size="medium"
:model="formInline"
class="demo-form-inline"
>
<el-form-item :label="$t('message.sixComplete.fence.warnType')">
<el-select v-model="formInline.alarmType">
<el-option
:label="$t('message.sixComplete.fence.all')"
value=""
></el-option>
<el-option
:label="item.name"
:value="item.data"
v-for="(item, index) in alarmTypeArrList"
:key="item.data"
2023-08-14 09:19:39 +08:00
></el-option>
</el-select>
</el-form-item>
<el-form-item :label="$t('message.sixComplete.happenTime')">
<el-date-picker
@change="changeTime"
v-model="dateRangeArr"
type="datetimerange"
value-format="yyyy-MM-dd HH:mm:ss"
:range-separator="$t('message.sixComplete.to')"
:start-placeholder="$t('message.sixComplete.start')"
:end-placeholder="$t('message.sixComplete.end')"
2022-06-08 14:51:11 +08:00
>
2023-08-14 09:19:39 +08:00
</el-date-picker>
</el-form-item>
<el-form-item :label="$t('message.sixComplete.fence.devNo')">
<el-input
v-model="formInline.hardwareId"
:placeholder="$t('message.sixComplete.fence.placeholder')"
></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="getList(1)" plain>{{
$t('message.sixComplete.query')
}}</el-button>
<el-button type="warning" @click="refresh" plain>{{
$t('message.sixComplete.fresh')
}}</el-button>
</el-form-item>
</el-form>
2022-06-08 14:51:11 +08:00
<!-- <el-button type="primary" size="medium" @click="addFn"
>新增课程</el-button
>
<el-button type="warning" plain size="medium" @click="refresh">{{
$t("message.alarmValueSet.refresh")
}}</el-button> -->
</div>
<div class="table_wrap">
<div class="listContent">
<vue-scroll>
<div
class="listBox"
v-for="(item, index) in workerList"
:key="index"
>
<div class="inner whiteBlock">
<div class="videoBox">
<!-- <video
class=""
:src="$store.state.FILEURL + item.eduVideo"
controls
></video> -->
2023-08-14 09:19:39 +08:00
<img
:src="$store.state.FILEURL + item.imageUrl"
:alt="$t('message.sixComplete.carDense.takePhoto')"
:preview="$store.state.FILEURL + item.imageUrl"
/>
2022-06-08 14:51:11 +08:00
<div class="desc">
2023-08-14 09:19:39 +08:00
<span class="time">{{ getTypeName(item.alarmType) }}</span>
2022-06-08 14:51:11 +08:00
<span>{{ item.createTime }}</span>
</div>
</div>
2023-08-14 09:19:39 +08:00
<div class="title">
{{ $t('message.sixComplete.carDense.from') + ':'
}}{{ item.location }}
</div>
2022-06-08 14:51:11 +08:00
<!-- <div @click.stop="deleteBefore(item)" class="deleteBtn">
<img src="@/assets/images/icon-delete.png" width="15px" height="15px"/>
</div> -->
</div>
</div>
</vue-scroll>
</div>
<div class="placeholderBox" v-if="workerList.length == 0">
<img src="@/assets/images/noData.png" alt="" />
2023-08-14 09:19:39 +08:00
<p>{{ $t('message.sixComplete.carDense.noWarn') }}</p>
2022-06-08 14:51:11 +08:00
</div>
<!-- <el-table class="tables" :data="workerList">
<el-table-column
type="index"
width="50"
align="center"
:label="$t('message.personnelPosition.beaconManage.table.index')"
></el-table-column>
<el-table-column prop="eduCourseName" :label="'课程名称'"></el-table-column>
<el-table-column prop="passScore" :label="'及格分数'"></el-table-column>
<el-table-column prop="eduWorkerNum" :label="'考试人数'"></el-table-column>
<el-table-column prop="passWorkerNum" :label="'及格人数'"></el-table-column>
<el-table-column prop="addTime" :label="'创建时间'"></el-table-column>
<el-table-column width="200">
<template slot-scope="scope">
<div class="tableBtns">
<div @click="editBefore(scope.row)" class="operationText">
<span>详细</span>
</div>
<div @click="deleteBefore(scope.row)" class="operationText">
<img src="@/assets/images/icon-delete.png" width="15px" height="15px"/>
<span>{{$t('message.workType.delete')}}</span>
</div>
</div>
</template>
</el-table-column>
</el-table> -->
<el-pagination
class="pagerBox"
@size-change="SizeChange"
@current-change="CurrentChange"
:current-page="pageInfo.pageNo"
:page-sizes="$store.state.PAGESIZRS"
:page-size="pageInfo.pageSize"
layout="total, sizes, prev, pager, next"
2022-12-14 18:31:34 +08:00
:total="Number(pageInfo.total)"
2022-06-08 14:51:11 +08:00
background
></el-pagination>
</div>
</div>
</div>
</template>
<script>
import {
aiAnalyseHardWareAlarmRecordApi
} from '@/assets/js/api/equipmentCenter/electricBox';
import {
getDictionaryItemApi
} from '@/assets/js/api/companyDiagram.js'
2022-06-08 14:51:11 +08:00
export default {
data() {
return {
pageType: "list",
workerList: [],
pageInfo: {
pageNo: 1, //页数
pageSize: 10, //条数
total: 0, //总条数
},
itemId: "",
2023-08-14 09:19:39 +08:00
formInline: {
alarmType: '',
endTime: '',
startTime: '',
hardwareId: ''
2022-06-08 14:51:11 +08:00
},
2023-08-14 09:19:39 +08:00
dateRangeArr: [],
2022-06-08 14:51:11 +08:00
// alarmTypeArr:['安全帽报警','明火报警','聚众报警','倒地报警','越界报警','闯入报警','反光衣报警','吸烟报警']
2023-08-14 09:19:39 +08:00
// alarmTypeArr:[{
// label: this.$t('message.sixComplete.carWash.alarmTypeArr')[0],/* '烟感报警', */
// value: 1,
// },{
// label: this.$t('message.sixComplete.carWash.alarmTypeArr')[1],/* '明火报警', */
// value: 2,
// },{
// label: this.$t('message.sixComplete.carWash.alarmTypeArr')[2],/* '人员倒地报警', */
// value: 3,
// },{
// label: this.$t('message.sixComplete.carWash.alarmTypeArr')[3],/* '未戴安全帽报警', */
// value: 4,
// },{
// label: this.$t('message.sixComplete.carWash.alarmTypeArr')[4],/* '区域入侵报警', */
// value: 5,
// },{
// label: this.$t('message.sixComplete.carWash.alarmTypeArr')[5],/* '越界入侵报警', */
// value: 6,
// },{
// label: this.$t('message.sixComplete.carWash.alarmTypeArr')[6],/* '人员聚集报警', */
// value: 7,
// },{
// label: this.$t('message.sixComplete.carWash.alarmTypeArr')[7],/* '反光衣报警', */
// value: 8,
// },{
// label: this.$t('message.sixComplete.carWash.alarmTypeArr')[8],/* '裸土覆盖报警', */
// value: 9,
// },{
// label:this.$t('message.sixComplete.carWash.alarmTypeArr')[9], /* '口罩识别报警', */
// value: 13,
// },{
// label:this.$t('message.sixComplete.carWash.alarmTypeArr')[10], /* '徘徊预警', */
// value: 14,
// },{
// label:this.$t('message.sixComplete.carWash.alarmTypeArr')[11], /* '物体滞留监测', */
// value: 15,
// },{
// label: this.$t('message.sixComplete.carWash.alarmTypeArr')[12],/* '绊线监测', */
// value: 16
// },{
// label: '陌生人闯入',/* '陌生人闯入', */
// value: 17
// }]
alarmTypeArrList:[],
2022-06-08 14:51:11 +08:00
};
},
mounted() {
this.selectNowDate()
this.getList();
this.getDictionaryList()
2022-06-08 14:51:11 +08:00
},
methods: {
//获取字典施工阶段
getDictionaryList() {
getDictionaryItemApi({
dictionaryEncoding: 'ai_analyse_hard_ware_alarm_record_type'
}).then(res => {
if (res.result.length > 0) {
console.log('获取字典施工阶段', res.result);
this.alarmTypeArrList = res.result
}
})
},
2022-06-08 14:51:11 +08:00
// 获取当前时间 返回YYYY-MM-DD HH:mm:ss
2023-08-14 09:19:39 +08:00
selectNowDate() {
var date = new Date(),
year = date.getFullYear(),
month = date.getMonth() + 1,
day = date.getDate(),
hours = date.getHours(), //获取当前小时数(0-23)
minutes = date.getMinutes(),//获取当前分钟数(0-59)
seconds = date.getSeconds()
month >= 1 && month <= 9 ? (month = "0" + month) : "";
day >= 0 && day <= 9 ? (day = "0" + day) : "";
hours >= 0 && hours <= 9 ? (hours = "0" + hours) : "";
minutes >= 0 && minutes <= 9 ? (minutes = "0" + minutes) : "";
seconds >= 0 && seconds <= 9 ? (seconds = "0" + seconds) : "";
var timer = year + '-' + month + '-' + day + ' ' + hours + ':' + minutes + ':' + seconds;
var timer2 = year + '-' + month + '-' + day + ' ' + '00:00:00'
this.dateRangeArr = [timer2, timer]
this.formInline.startTime = this.dateRangeArr[0]
this.formInline.endTime = this.dateRangeArr[1]
console.log(timer)
// return timer;
},
getTypeName(val) {
2022-06-08 14:51:11 +08:00
let text = ""
this.alarmTypeArrList.forEach(item => {
if (item.data == val) {
text = item.name
2022-06-08 14:51:11 +08:00
}
})
return text
},
2023-08-14 09:19:39 +08:00
changeTime() {
if (this.dateRangeArr) {
this.formInline.startTime = this.dateRangeArr[0]
this.formInline.endTime = this.dateRangeArr[1]
} else {
this.formInline.startTime = ''
this.formInline.endTime = ''
}
},
2022-06-08 14:51:11 +08:00
refresh() {
2023-08-14 09:19:39 +08:00
this.pageInfo.pageNo = 1
this.formInline.hardwareId = ''
this.formInline.startTime = ''
this.formInline.endTime = ''
this.formInline.alarmType = ''
this.dateRangeArr = []
this.getList();
2022-06-08 14:51:11 +08:00
},
getList(val) {
2023-08-14 09:19:39 +08:00
if (val == 1) {
2022-06-08 14:51:11 +08:00
this.pageInfo.pageNo = 1
}
2023-08-14 09:19:39 +08:00
let json = Object.assign(this.pageInfo, this.formInline)
json.projectSn = this.$store.state.projectSn
aiAnalyseHardWareAlarmRecordApi(json).then((res) => {
this.workerList = res.result.records;
this.pageInfo.total = res.result.total;
setTimeout(() => {
this.$previewRefresh();
}, 100);
});
2022-06-08 14:51:11 +08:00
},
goBack() {
this.pageType = "list";
this.getList();
},
// addFn() {
// this.itemId = "";
// this.pageType = "add";
// },
editBefore(item) {
this.itemId = item.id;
this.pageType = "detail";
},
deleteBefore(item) {
2023-08-14 09:19:39 +08:00
this.$confirm(this.$t('message.sixComplete.carWash.tipText') + '?', this.$t('message.sixComplete.carWash.tip'), {
2022-06-08 14:51:11 +08:00
confirmButtonText: this.$t('message.sixComplete.carWash.confirm'),
cancelButtonText: this.$t('message.sixComplete.carWash.cancel'),
type: "warning",
})
.then(() => {
workerSafeEducationDeleteApi({ id: item.id }).then((res) => {
this.$message({
type: "success",
2023-08-14 09:19:39 +08:00
message: this.$t('message.sixComplete.carWash.deleteSuccess') + '!',
2022-06-08 14:51:11 +08:00
});
this.getList();
});
})
.catch(() => {
this.$message({
type: "info",
message: this.$t('message.sixComplete.carWash.cancelDelete'),
});
});
},
SizeChange(val) {
console.log(val)
this.pageInfo.pageSize = val;
this.getList();
},
CurrentChange(val) {
console.log(val)
this.pageInfo.pageNo = val;
this.getList();
},
},
};
</script>
<style lang="less" scoped>
.backText {
margin: -10px 0 0 0;
}
2023-08-14 09:19:39 +08:00
.jyjzPage .backText {
2022-06-08 14:51:11 +08:00
margin: 15px 15px 0;
2023-08-14 09:19:39 +08:00
/deep/.el-page-header__content {
2022-06-08 14:51:11 +08:00
color: white;
}
}
.listContent {
overflow: hidden;
height: calc(100% - 70px);
}
.listBox {
float: left;
width: 20%;
margin-bottom: 20px;
.inner {
margin: 0 10px;
box-shadow: 0px 2px 16px 0px rgba(131, 183, 255, 0.2);
border-radius: 6px;
overflow: hidden;
position: relative;
}
.videoBox {
position: relative;
height: 200px;
img {
width: 100%;
height: 100%;
}
.desc {
background-color: rgba(0, 0, 0, 0.5);
padding: 5px 10px;
position: absolute;
bottom: 0;
left: 0;
width: calc(100% - 20px);
color: white;
font-size: 14px;
display: flex;
justify-content: space-between;
}
}
.title {
padding: 10px 10px 20px;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
cursor: pointer;
2023-08-14 09:19:39 +08:00
&:hover {
color: @--color-primary;
2022-06-08 14:51:11 +08:00
}
}
2023-08-14 09:19:39 +08:00
&:hover {
.deleteBtn {
display: block;
2022-06-08 14:51:11 +08:00
}
}
2023-08-14 09:19:39 +08:00
.deleteBtn {
display: none;
position: absolute;
right: 10px;
bottom: 10px;
cursor: pointer;
2022-06-08 14:51:11 +08:00
}
}
.pagerBox {
margin: 20px;
}
2023-08-14 09:19:39 +08:00
.table_wrap {
2022-06-08 14:51:11 +08:00
position: relative;
}
</style>