<template>
|
<basic-container>
|
<avue-crud
|
:option="option"
|
:table-loading="loading"
|
:data="data"
|
:page.sync="page"
|
ref="crud"
|
@row-del="rowDel"
|
v-model="form"
|
:permission="permissionList"
|
@row-update="rowUpdate"
|
@row-save="rowSave"
|
:before-open="beforeOpen"
|
:row-style="rowStyle"
|
:search.sync="search"
|
row-class-name="tabFontSize"
|
@search-change="searchChange"
|
@search-reset="searchReset"
|
@selection-change="selectionChange"
|
@current-change="currentChange"
|
@size-change="sizeChange"
|
@refresh-change="refreshChange"
|
@on-load="onLoad"
|
@row-click="rowClick"
|
>
|
<template slot="menuLeft">
|
<el-button
|
|
v-show="true"
|
size="mini"
|
icon="el-icon-delete"
|
plain
|
v-if="permission.real_delete"
|
@click="handleDelete"
|
>删 除
|
</el-button>
|
</template>
|
|
<template slot="menuLeft">
|
<el-button
|
v-bind:class="activeClass == 0 ? 'btn-color' : ''"
|
size="mini"
|
@click="getBRdata(0)"
|
>本日
|
</el-button>
|
<el-button
|
v-bind:class="activeClass == 1 ? 'btn-color' : ''"
|
size="mini"
|
@click="getBRdata(1)"
|
>本周
|
</el-button>
|
<el-button
|
v-bind:class="activeClass == 2 ? 'btn-color' : ''"
|
size="mini"
|
@click="getBRdata(2)"
|
>本月
|
</el-button>
|
<el-button
|
v-bind:class="activeClass == 3 ? 'btn-color' : ''"
|
size="mini"
|
@click="getQBdata(3)"
|
>全部
|
</el-button>
|
</template>
|
|
<template slot="menuLeft">
|
<el-button
|
type="warning"
|
size="mini"
|
plain
|
icon="el-icon-download"
|
@click="handleExport"
|
>导出
|
</el-button>
|
<el-button
|
type="warning"
|
size="mini"
|
plain
|
icon="el-icon-pie-chart"
|
@click="handleExportStatis"
|
>导出报表
|
</el-button>
|
</template>
|
|
<template slot-scope="{ row }" slot="jtype">
|
<el-tag
|
>{{
|
row.jtype == "0" || row.jtype == ""
|
? "未派发"
|
: row.jtype == "1" &&
|
(row.securityId == null || row.securityId == "")
|
? "未接收"
|
: row.jtype == "1" &&
|
(row.securityId != null || row.securityId != "")
|
? "已接收"
|
: "已处置"
|
}}
|
</el-tag>
|
</template>
|
<template slot-scope="{ row }" slot="cid">
|
<el-tag
|
>{{
|
row.cid == "1" ? "事件发生" : row.cid == "3" ? "是" : "事件恢复"
|
}}
|
</el-tag>
|
</template>
|
|
<template slot-scope="{ type, size, row }" slot="menu">
|
<el-button
|
v-if="row.jtype == 0 || row.jtype == 0 || row.jtype == ''"
|
icon="el-icon-s-order"
|
:size="size"
|
:type="type"
|
@click.stop="PoliceTracking(row)"
|
>派发
|
</el-button>
|
</template>
|
|
<template slot-scope="{type,disabled}" slot="xllxzsForm">
|
<div class="mapClassMain" style="width: 860px;height: 400px">
|
<Map ref="modalForm"/>
|
</div>
|
</template>
|
|
|
</avue-crud>
|
|
|
<real-popup ref="realPopupView"></real-popup>
|
<el-drawer title="电子地图" append-to-body="true" :visible.sync="showMap">
|
<iframe
|
id="mapDiv"
|
ref="mapDiv"
|
src="/map/index.html?openid=ClientManagement&ISinit=1"
|
frameborder="0"
|
width="100%"
|
height="100%"
|
></iframe>
|
</el-drawer>
|
</basic-container>
|
</template>
|
|
<script>
|
import {getList, remove, update, add, getclient} from "@/api/real/real";
|
import {mapGetters} from "vuex";
|
import AvueMap from "avue-plugin-map";
|
|
export default {
|
data() {
|
return {
|
showMap: false,
|
hls: "",
|
videoSource: "",
|
activeClass: 3,
|
form: {},
|
query: {},
|
search: {},
|
dateTime: [],
|
loading: true,
|
page: {
|
pageSize: 10,
|
currentPage: 1,
|
total: 0,
|
},
|
selectionList: [],
|
option: {
|
height: "auto",
|
indexLabel: "序号",
|
calcHeight: 54,
|
labelWidth: "100",
|
size: "mini",
|
border: false,
|
//stripe:true,
|
menuWidth: 260,
|
dialogWidth: 950,
|
tip: false,
|
searchShow: true,
|
searchMenuSpan: 3,
|
align: "center",
|
index: true,
|
viewBtn: true,
|
selection: true,
|
dialogClickModal: false,
|
column: [
|
{
|
label: "任务类型",
|
prop: "alarmType",
|
search: false,
|
searchSpan: 3,
|
width: 85,
|
className: "waringTypeClass",
|
searchPlaceholder: "请选择",
|
type: "select",
|
props: {
|
label: "dictValue",
|
value: "dictValue",
|
},
|
//cascaderItem: ["city", "district"],
|
dicUrl:
|
"/api/blade-system/dict-biz/child-list?parentId=1356523651644043266",
|
control: (val, form) => {
|
// if (val) {
|
// }
|
return {
|
text2: {
|
display: true,
|
},
|
text3: {
|
label: "内容3",
|
},
|
};
|
},
|
},
|
{
|
label: "下发时间",
|
type: "datetime",
|
width: 160,
|
format: "yyyy-MM-dd HH:mm:ss",
|
valueFormat: "yyyy-MM-dd HH:mm:ss",
|
prop: "alarmTime",
|
rules: [
|
{
|
required: true,
|
message: "请选择报警时间",
|
trigger: "blur",
|
},
|
],
|
},
|
{
|
label: "报警时间",
|
prop: "releaseTimeRange",
|
type: "datetime",
|
format: "yyyy-MM-dd",
|
valueFormat: "yyyy-MM-dd",
|
searchValue: [this.getStartTime(), this.getEndTime()],
|
searchRange: true,
|
searchSpan: 5,
|
hide: true,
|
addDisplay: false,
|
editDisplay: false,
|
viewDisplay: false,
|
search: true,
|
rules: [
|
{
|
required: true,
|
message: "请输入时间",
|
trigger: "blur",
|
},
|
],
|
},
|
{
|
label: "备注",
|
prop: "bz",
|
span: 24,
|
},
|
{
|
label: "地址",
|
prop: "place",
|
span: 10,
|
rules: [
|
{
|
required: true,
|
message: "请选择地址",
|
trigger: "blur",
|
},
|
],
|
},
|
{
|
label: null,
|
prop: "map",
|
labelWidth: "0",
|
searchSpan: 0,
|
maxlength: 0,
|
hide: true,
|
span: 2,
|
// display:false,
|
component: "AvueMap",
|
},
|
{
|
label: "经度",
|
hide: true,
|
prop: "jd",
|
searchSpan: 2,
|
width: "100",
|
labelWidth: "120",
|
formatter: (row, value, label, column) => {
|
return (value = value.substring(0, 11));
|
},
|
span: 7,
|
},
|
{
|
label: "纬度",
|
labelWidth: "45",
|
hide: true,
|
prop: "wd",
|
formatter: (row, value, label, column) => {
|
return (value = value.substring(0, 10));
|
},
|
span: 5,
|
},
|
{
|
label: "省份",
|
prop: "province",
|
search: true,
|
width: 100,
|
searchSpan: 2,
|
searchLabelWidth: 45,
|
placeholder: "省份",
|
type: "select",
|
props: {
|
label: "name",
|
value: "code",
|
},
|
cascaderItem: ["city", "district"],
|
dicUrl: "/api/blade-system/region/select",
|
span: 6,
|
className: "cityreal1",
|
addDisplay: true,
|
editDisplay: true,
|
viewDisplay: true,
|
},
|
{
|
label: "地市",
|
prop: "city",
|
type: "select",
|
width: 100,
|
searchPlaceholder: "地市",
|
placeholder: "地市",
|
searchLabelWidth: 1,
|
searchSpan: 2,
|
search: true,
|
props: {
|
label: "name",
|
value: "code",
|
},
|
dicUrl: "/api/blade-system/region/select?code={{key}}",
|
span: 3,
|
labelWidth: "0",
|
className: "cityreal2",
|
addDisplay: true,
|
editDisplay: true,
|
viewDisplay: true,
|
},
|
{
|
label: "区县",
|
searchSpan: 2,
|
searchLabelWidth: 1,
|
width: 100,
|
searchPlaceholder: "区县",
|
placeholder: "区县",
|
search: true,
|
prop: "district",
|
type: "select",
|
props: {
|
label: "name",
|
value: "code",
|
},
|
dicUrl: "/api/blade-system/region/select?code={{key}}",
|
span: 3,
|
labelWidth: "0",
|
className: "cityreal3",
|
addDisplay: true,
|
editDisplay: true,
|
viewDisplay: true,
|
},
|
{
|
label: "状态",
|
searchSpan: 3,
|
width: 96,
|
search: true,
|
slot: true,
|
value: "0",
|
searchPlaceholder: "请选择",
|
prop: "jtype",
|
type: "select",
|
dicData: [
|
{
|
label: "未派发",
|
value: "0",
|
},
|
{
|
label: "处理中",
|
value: "1",
|
},
|
{
|
label: "已处置",
|
value: "2",
|
},
|
],
|
},
|
// {
|
// label: "派发人",
|
// prop: "alarmPeople",
|
// width: 90,
|
// addDisplay: false,
|
// editDisplay: false,
|
// },
|
{
|
label: "接收人",
|
prop: "securityArr",
|
type: "tree",
|
multiple: true,
|
dicUrl: "/api/catalogs/catalogs/getBigTree",
|
props: {
|
label: "title",
|
},
|
width: 72,
|
hide: true,
|
leafOnly: "",
|
addDisplay: true,
|
editDisplay: true,
|
viewDisplay: true,
|
},
|
{
|
label: "巡逻路线",
|
prop: "xllx",
|
hide: true,
|
display: true,
|
type: "tree",
|
dicUrl: "/api/routeIn/routein/tree",
|
props: {
|
label: "title",
|
},
|
},
|
{
|
label: "路线展示",
|
labelWidth: "0",
|
prop: "xllxzs",
|
className: "mapClass",
|
hide: true,
|
display: true,
|
formslot: true,
|
},
|
],
|
},
|
data: [],
|
recorder: null,
|
peopleList: [],
|
};
|
},
|
watch: {
|
"form.map": {
|
// form是表单或者表格绑定的数据集,v-model='form'
|
handler(val) {
|
var that = this;
|
if (val) {
|
//重新加载一次页面详情数据,解决新的省市区无法写入问题
|
//判断是新增还是修改
|
if (that.isEdit) {
|
getclient(this.form.id).then((res) => {
|
// that.province = res.data.data.province;
|
// that.city = res.data.data.city;
|
// that.district = res.data.data.district;
|
});
|
}
|
|
//地址截取,从县/区开始截取,并且取从县区第一个出现的位置开始
|
if (val.formattedAddress == "") {
|
return;
|
}
|
|
//经纬度替换
|
this.form.wd = val.latitude;
|
this.form.jd = val.longitude;
|
|
var address = val.formattedAddress.toString();
|
if (address.search("县") != -1) {
|
this.form.place = address.substring(
|
address.indexOf("县") + 1,
|
address.length
|
);
|
}
|
if (address.search("区") != -1) {
|
this.form.place = address.substring(
|
address.indexOf("区") + 1,
|
address.length
|
);
|
}
|
//写入新的省市区
|
that.form.province = val.addressComponent.province;
|
if (val.addressComponent.city == "") {
|
that.form.city = val.addressComponent.province;
|
} else {
|
that.form.city = val.addressComponent.city;
|
}
|
that.form.district = val.addressComponent.district;
|
} else {
|
that.form.map = {
|
formattedAddress: "",
|
latitude: 28.699957,
|
longitude: 115.862118,
|
};
|
}
|
},
|
immediate: true,
|
},
|
"form.alarmType": {
|
handler(val) {
|
var xllx = this.findObject(this.option.column, "xllx");
|
var xllxzs = this.findObject(this.option.column, "xllxzs");
|
if (val === "巡逻任务") {
|
xllx.display = true;
|
xllxzs.display = true;
|
xllx.rules = [
|
{
|
required: true,
|
message: "请选择巡逻路线",
|
trigger: "blur",
|
},
|
];
|
} else {
|
xllx.display = false;
|
xllxzs.display = false;
|
xllx.rules = [];
|
}
|
},
|
immediate: true,
|
},
|
"form.xllx":{
|
handler(val) {
|
if (val){
|
this.getxllx(val)
|
}
|
|
},
|
immediate: true,
|
}
|
},
|
computed: {
|
...mapGetters(["permission", "flowRoutes"]),
|
permissionList() {
|
return {
|
addBtn: this.vaildData(this.permission.real_add, false),
|
viewBtn: this.vaildData(null, false),
|
delBtn: this.vaildData(this.permission.real_delete, false),
|
editBtn: this.vaildData(this.permission.real_edit, false),
|
};
|
},
|
ids() {
|
let ids = [];
|
this.selectionList.forEach((ele) => {
|
ids.push(ele.id);
|
});
|
return ids.join(",");
|
},
|
},
|
created() {
|
this.dateTime = this.getDate();
|
},
|
mounted() {
|
var xb = JSON.parse(window.sessionStorage.getItem('sjsb'));
|
var data = this.$route.query;
|
if (xb == 1) {
|
this.form = data;
|
this.openAdd();
|
window.sessionStorage.removeItem('sjsb');
|
}
|
},
|
methods: {
|
rowSave(row, done, loading) {
|
if (typeof row.securityArr != "string") {
|
var security = "";
|
row.securityArr.forEach((item) => {
|
security = security + item + ",";
|
});
|
row.securityArr = security.substring(0, security.length - 1);
|
}
|
var userId = JSON.parse(
|
window.localStorage.getItem("洪城义警后台管理系统-userInfo")
|
).content.nick_name;
|
|
if (row.jtype != "2") {
|
if (row.securityArr == "" || row.securityArr == null) {
|
row.jtype = "0";
|
row.alarmPeople = "";
|
} else {
|
row.jtype = "1";
|
//已派发保安
|
}
|
}
|
row.alarmPeople = userId;
|
|
add(row).then(
|
() => {
|
this.onLoad(this.page);
|
this.$message({
|
type: "success",
|
message: "操作成功!",
|
});
|
done();
|
},
|
(error) => {
|
loading();
|
}
|
);
|
},
|
getxllx(val){
|
var that = this;
|
if (this.$refs.modalForm == undefined) {
|
setTimeout(function () {
|
that.$refs.modalForm.addLines(val);
|
}, 1500)
|
} else {
|
that.$refs.modalForm.addLines(val);
|
}
|
},
|
rowUpdate(row, index, done, loading) {
|
var userId = JSON.parse(
|
window.localStorage.getItem("洪城义警后台管理系统-userInfo")
|
).content.nick_name;
|
if (typeof row.securityArr != "string") {
|
var security = "";
|
row.securityArr.forEach((item) => {
|
security = security + item + ",";
|
});
|
row.securityArr = security.substring(0, security.length - 1);
|
}
|
if (row.jtype != "2") {
|
if (row.securityArr == "" || row.securityArr == null) {
|
row.jtype = "0";
|
row.alarmPeople = "";
|
} else {
|
row.jtype = "1";
|
//已派发保安
|
}
|
}
|
row.alarmPeople = userId;
|
row.coordinate = "";
|
update(row).then(
|
() => {
|
this.onLoad(this.page);
|
this.$message({
|
type: "success",
|
message: "操作成功!",
|
});
|
done();
|
},
|
(error) => {
|
loading();
|
}
|
);
|
},
|
rowDel(row) {
|
this.$confirm("确定将选择数据删除?", {
|
confirmButtonText: "确定",
|
cancelButtonText: "取消",
|
type: "warning",
|
})
|
.then(() => {
|
return remove(row.id);
|
})
|
.then(() => {
|
this.onLoad(this.page);
|
this.$message({
|
type: "success",
|
message: "操作成功!",
|
});
|
});
|
},
|
searchReset() {
|
this.activeClass = 3;
|
//清空搜索框中的内容
|
this.query = {};
|
//清空this.$route.query
|
this.$router.push({query: {}});
|
this.onLoad(this.page);
|
},
|
searchChange(params, done) {
|
//清空this.$route.query
|
this.$router.push({query: {}});
|
this.query = params;
|
this.page.currentPage = 1;
|
this.onLoad(this.page, params);
|
done();
|
},
|
selectionChange(list) {
|
this.selectionList = list;
|
},
|
selectionClear() {
|
this.selectionList = [];
|
this.$refs.crud.toggleSelection();
|
},
|
handleDelete() {
|
if (this.selectionList.length === 0) {
|
this.$message.warning("请选择至少一条数据");
|
return;
|
}
|
this.$confirm("确定将选择数据删除?", {
|
confirmButtonText: "确定",
|
cancelButtonText: "取消",
|
type: "warning",
|
})
|
.then(() => {
|
return remove(this.ids);
|
})
|
.then(() => {
|
this.onLoad(this.page);
|
this.$message({
|
type: "success",
|
message: "操作成功!",
|
});
|
this.$refs.crud.toggleSelection();
|
});
|
},
|
beforeOpen(done, type) {
|
if (["edit", "view"].includes(type)) {
|
getclient(this.form.id).then((res) => {
|
this.form = res.data.data;
|
});
|
}
|
done();
|
},
|
currentChange(currentPage) {
|
this.page.currentPage = currentPage;
|
},
|
sizeChange(pageSize) {
|
this.page.pageSize = pageSize;
|
},
|
refreshChange() {
|
this.onLoad(this.page, this.query);
|
},
|
onLoad(page, params = {}) {
|
const {releaseTimeRange} = this.query;
|
let values = {
|
...params,
|
};
|
|
if (
|
this.$route.query.waringType &&
|
this.$route.query != undefined &&
|
this.$route.query != null &&
|
this.$route.query != ""
|
) {
|
if (
|
this.$route.query.status != undefined &&
|
this.$route.query.status != null &&
|
this.$route.query.status == ""
|
) {
|
this.activeClass = this.$route.query.status;
|
this.page.currentPage = 1;
|
if (this.$route.query.status == 0) {
|
params = {
|
waringType: this.$route.query.waringType,
|
beginTime: this.dateTime.day.beginTime,
|
endTime: this.dateTime.day.endTime,
|
};
|
} else if (this.$route.query.status == 1) {
|
params = {
|
waringType: this.$route.query.waringType,
|
beginTime: this.dateTime.week.beginTime,
|
endTime: this.dateTime.week.endTime,
|
};
|
} else if (this.$route.query.status == 2) {
|
params = {
|
waringType: this.$route.query.waringType,
|
beginTime: this.dateTime.month.beginTime,
|
endTime: this.dateTime.month.endTime,
|
};
|
}
|
} else {
|
this.activeClass = 0;
|
this.page.currentPage = 1;
|
params = {
|
waringType: this.$route.query.waringType,
|
beginTime: this.dateTime.day.beginTime,
|
endTime: this.dateTime.day.endTime,
|
};
|
}
|
|
if (
|
this.$route.query.startTime != undefined &&
|
this.$route.query.startTime != null &&
|
this.$route.query.startTime != ""
|
) {
|
params = {
|
waringType: this.$route.query.waringType,
|
beginTime: this.$route.query.startTime,
|
endTime: this.$route.query.endTime,
|
};
|
}
|
}
|
if (releaseTimeRange) {
|
values = {
|
...params,
|
beginTime: releaseTimeRange[0],
|
endTime: releaseTimeRange[1],
|
...this.query,
|
};
|
values.releaseTimeRange = null;
|
} else {
|
values = {
|
...params,
|
...this.query,
|
};
|
}
|
|
if (this.$route.query.timeDesc) {
|
values = {
|
...params,
|
timeDesc: this.$route.query.timeDesc,
|
...this.query,
|
};
|
}
|
|
this.loading = true;
|
getList(page.currentPage, page.pageSize, values).then((res) => {
|
const data = res.data.data;
|
this.page.total = data.total;
|
|
data.records.sort((a, b) => {
|
return a.jtype - b.jtype;
|
});
|
|
this.data = data.records;
|
|
this.loading = false;
|
this.selectionClear();
|
});
|
},
|
getDate() {
|
// 当前时间
|
var timestamp = Date.parse(new Date());
|
var serverDate = new Date(timestamp);
|
|
// 本周周一的时间
|
var mondayTime =
|
timestamp - (serverDate.getDay() - 1) * 24 * 60 * 60 * 1000;
|
var mondayData = new Date(mondayTime);
|
//年
|
var mondayY = mondayData.getFullYear();
|
//月
|
var mondayM =
|
mondayData.getMonth() + 1 < 10
|
? "0" + (mondayData.getMonth() + 1)
|
: mondayData.getMonth() + 1;
|
//日
|
var mondayD =
|
mondayData.getDate() < 10
|
? "0" + mondayData.getDate()
|
: mondayData.getDate();
|
// 当前时间
|
var currentData = new Date(timestamp);
|
//年
|
var currentY = currentData.getFullYear();
|
//月
|
var currentM =
|
currentData.getMonth() + 1 < 10
|
? "0" + (currentData.getMonth() + 1)
|
: currentData.getMonth() + 1;
|
//日
|
var currentD =
|
currentData.getDate() < 10
|
? "0" + currentData.getDate()
|
: currentData.getDate();
|
//时
|
var currenH =
|
currentData.getHours() < 10
|
? "0" + currentData.getHours()
|
: currentData.getHours();
|
//分
|
var currenM =
|
currentData.getMinutes() < 10
|
? "0" + currentData.getMinutes()
|
: currentData.getMinutes();
|
//秒
|
var currenS =
|
currentData.getSeconds() < 10
|
? "0" + currentData.getSeconds()
|
: currentData.getSeconds();
|
|
return {
|
day: {
|
beginTime: currentY + "-" + currentM + "-" + currentD + " 00:00:00",
|
endTime:
|
currentY +
|
"-" +
|
currentM +
|
"-" +
|
currentD +
|
" " +
|
currenH +
|
":" +
|
currenM +
|
":00",
|
},
|
week: {
|
beginTime: mondayY + "-" + mondayM + "-" + mondayD + " 00:00:00",
|
endTime:
|
currentY +
|
"-" +
|
currentM +
|
"-" +
|
currentD +
|
" " +
|
currenH +
|
":" +
|
currenM +
|
":00",
|
},
|
month: {
|
beginTime: mondayY + "-" + mondayM + "-01 00:00:00",
|
endTime:
|
currentY +
|
"-" +
|
currentM +
|
"-" +
|
currentD +
|
" " +
|
currenH +
|
":" +
|
currenM +
|
":00",
|
},
|
current:
|
currentY +
|
"-" +
|
currentM +
|
"-" +
|
currentD +
|
" " +
|
currenH +
|
":" +
|
currenM +
|
":" +
|
currenS,
|
};
|
},
|
getBRdata(e) {
|
this.activeClass = e;
|
this.query = {};
|
this.$router.push({query: {}});
|
var today = new Date();
|
var params = {};
|
|
if (e == 0) {
|
params = {
|
beginTime: this.showToDay(today) + " 00:00:00",
|
endTime: this.showToDay(today) + " 23:59:59",
|
};
|
//修改搜索框中的值
|
this.search.releaseTimeRange = [
|
this.showToDay(today) + " 00:00:00",
|
this.showToDay(today) + " 23:59:59",
|
];
|
}
|
if (e == 1) {
|
params = {
|
beginTime: this.showWeekFirstDay(today) + " 00:00:00",
|
endTime: this.showToDay(today) + " 23:59:59",
|
};
|
//修改搜索框中的值
|
this.search.releaseTimeRange = [
|
this.showWeekFirstDay(today) + " 00:00:00",
|
this.showToDay(today) + " 23:59:59",
|
];
|
}
|
if (e == 2) {
|
params = {
|
beginTime: this.showMonthFirstDay(today) + " 00:00:00",
|
endTime: this.showToDay(today) + " 23:59:59",
|
};
|
//修改搜索框中的值
|
this.search.releaseTimeRange = [
|
this.showMonthFirstDay(today) + " 00:00:00",
|
this.showToDay(today) + " 23:59:59",
|
];
|
}
|
this.query = params;
|
this.page.currentPage = 1;
|
this.onLoad(this.page, params);
|
},
|
//本日
|
showToDay(Nowdate) {
|
var M = Number(Nowdate.getMonth()) + 1;
|
if (M < 10) {
|
M = "0" + M;
|
}
|
var day = Nowdate.getDate();
|
if (day < 10) {
|
day = "0" + day;
|
}
|
return Nowdate.getFullYear() + "-" + M + "-" + day;
|
},
|
|
//本周第一天
|
showWeekFirstDay(Nowdate) {
|
var WeekFirstDay = new Date(Nowdate - (Nowdate.getDay() - 1) * 86400000);
|
var M = Number(WeekFirstDay.getMonth()) + 1;
|
if (M < 10) {
|
M = "0" + M;
|
}
|
var day = WeekFirstDay.getDate();
|
if (day < 10) {
|
day = "0" + day;
|
}
|
return WeekFirstDay.getFullYear() + "-" + M + "-" + day;
|
},
|
|
//本月第一天
|
showMonthFirstDay(Nowdate) {
|
var MonthFirstDay = new Date(
|
Nowdate.getFullYear(),
|
Nowdate.getMonth(),
|
1
|
);
|
var M = Number(MonthFirstDay.getMonth()) + 1;
|
if (M < 10) {
|
M = "0" + M;
|
}
|
return (
|
MonthFirstDay.getFullYear() +
|
"-" +
|
M +
|
"-" +
|
"0" +
|
MonthFirstDay.getDate()
|
);
|
},
|
getBZdata(e) {
|
this.activeClass = e;
|
var params = {
|
beginTime: this.dateTime.week.beginTime,
|
endTime: this.dateTime.week.endTime,
|
};
|
this.query = params;
|
this.page.currentPage = 1;
|
this.onLoad(this.page, params);
|
},
|
getBYdata(e) {
|
this.activeClass = e;
|
var params = {
|
beginTime: this.dateTime.month.beginTime,
|
endTime: this.dateTime.month.endTime,
|
};
|
this.query = params;
|
this.page.currentPage = 1;
|
this.onLoad(this.page, params);
|
},
|
getQBdata(e) {
|
this.search.releaseTimeRange = ["", ""];
|
this.activeClass = e;
|
var params = {};
|
this.query = params;
|
this.page.currentPage = 1;
|
this.onLoad(this.page, params);
|
},
|
rowStyle({row, column, rowIndex}) {
|
if (row.jtype == "0") {
|
return {
|
color: "#ff2727",
|
};
|
} else if (row.jtype == "1") {
|
return {
|
color: "#15a2fe",
|
};
|
} else {
|
return {
|
color: "#000000",
|
};
|
}
|
},
|
handleStart(row) {
|
var arr = [];
|
this.$store.state.tags.tagList.forEach((item) => {
|
if (item.label != "视频") {
|
arr.push(item);
|
}
|
});
|
this.$store.state.tags.tagList = arr;
|
this.$router.push({
|
path: `/real/video/`,
|
query: row,
|
});
|
},
|
handleHistory(row) {
|
var arr = [];
|
this.$store.state.tags.tagList.forEach((item) => {
|
if (item.label != "设备历史") {
|
arr.push(item);
|
}
|
});
|
this.$store.state.tags.tagList = arr;
|
this.$router.push({path: `/real/history/${row.deviceNumber}`});
|
},
|
handleMap(row) {
|
this.showMap = true;
|
this.$nextTick(() => {
|
this.$refs.mapDiv.onload = () => {
|
window.frames[0].init("ClientManagement", {
|
x: row.jd,
|
y: row.wd,
|
clientID: row.deviceNumber,
|
});
|
};
|
});
|
},
|
getStartTime() {
|
if (
|
this.$route.query.startTime != undefined &&
|
this.$route.query.startTime != null &&
|
this.$route.query.startTime != ""
|
) {
|
return this.$route.query.startTime;
|
}
|
return "";
|
},
|
getEndTime() {
|
if (
|
this.$route.query.endTime != undefined &&
|
this.$route.query.endTime != null &&
|
this.$route.query.endTime != ""
|
) {
|
return this.$route.query.endTime;
|
}
|
return "";
|
},
|
handleManage(row) {
|
this.$refs.realPopupView.onItemGetParentData(row);
|
},
|
|
beginTimeOrEndTime(time) {
|
var beginTime = new Date(time);
|
|
var endTime = new Date(new Date(time).valueOf() - 1000 * 60 * 60 * 3);
|
|
var beginY = beginTime.getFullYear();
|
|
var beginM =
|
beginTime.getMonth() + 1 < 10
|
? "0" + (beginTime.getMonth() + 1)
|
: beginTime.getMonth() + 1;
|
|
var beginD =
|
beginTime.getDate() < 10
|
? "0" + beginTime.getDate()
|
: beginTime.getDate();
|
|
var beginH =
|
beginTime.getHours() < 10
|
? "0" + beginTime.getHours()
|
: beginTime.getHours();
|
|
var beginm =
|
beginTime.getMinutes() < 10
|
? "0" + beginTime.getMinutes()
|
: beginTime.getMinutes();
|
|
var begins =
|
beginTime.getSeconds() < 10
|
? "0" + beginTime.getSeconds()
|
: beginTime.getSeconds();
|
|
var endY = endTime.getFullYear();
|
|
var endM =
|
endTime.getMonth() + 1 < 10
|
? "0" + (endTime.getMonth() + 1)
|
: endTime.getMonth() + 1;
|
|
var endD =
|
endTime.getDate() < 10 ? "0" + endTime.getDate() : endTime.getDate();
|
|
var endH =
|
endTime.getHours() < 10 ? "0" + endTime.getHours() : endTime.getHours();
|
|
var endm =
|
endTime.getMinutes() < 10
|
? "0" + endTime.getMinutes()
|
: endTime.getMinutes();
|
|
var ends =
|
endTime.getSeconds() < 10
|
? "0" + endTime.getSeconds()
|
: endTime.getSeconds();
|
return {
|
begin: beginY + beginM + beginD + beginH + beginm + begins,
|
end: endY + endM + endD + endH + endm + ends,
|
};
|
},
|
|
PoliceTracking(row) {
|
var arr = [];
|
this.$store.state.tags.tagList.forEach((item) => {
|
if (item.label != "任务追踪") {
|
arr.push(item);
|
}
|
});
|
this.$store.state.tags.tagList = arr;
|
//警情追踪
|
this.$router.push({path: "/policeTracking/track", query: row});
|
|
},
|
//打开新增窗体
|
openAdd() {
|
this.$refs.crud.rowAdd();
|
},
|
|
//数据导出
|
handleExport() {
|
this.$confirm("是否导出实时警情数据?", "提示", {
|
confirmButtonText: "确定",
|
cancelButtonText: "取消",
|
type: "warning",
|
}).then(() => {
|
window.open(
|
`/api/alarm/alarm/export-alarm?beginTime=${this.$route.query.startTime}&endTime=${this.$route.query.endTime}&waringType=${this.$route.query.waringType}&timeDesc=${this.$route.query.timeDesc}`
|
);
|
});
|
},
|
//数据报表导出
|
handleExportStatis() {
|
let beginTime =
|
this.$route.query.startTime == undefined
|
? ""
|
: this.$route.query.startTime;
|
let endTime =
|
this.$route.query.endTime == undefined ? "" : this.$route.query.endTime;
|
let waringType =
|
this.$route.query.waringType == undefined
|
? ""
|
: this.$route.query.waringType;
|
let timeDesc =
|
this.$route.query.timeDesc == undefined
|
? ""
|
: this.$route.query.timeDesc;
|
window.open(
|
`https://web.byisf.com/api/blade-report/ureport/preview?_u=blade-alarm.statis.ureport.xml&beginTime=${beginTime}&endTime=${endTime}&waringType=${waringType}&timeDesc=${timeDesc}`
|
);
|
//window.open(`http://localhost:8108/ureport/excel?_u=blade-alarm.statis.ureport.xml&beginTime=${beginTime}&endTime=${endTime}&waringType=${waringType}&timeDesc=${timeDesc}`);
|
},
|
rowClick(val) {
|
//行点击事件
|
//警情追踪
|
this.PoliceTracking(val);
|
|
},
|
},
|
};
|
</script>
|
|
<style>
|
.el-card__body .waringTypeClass {
|
width: 12%;
|
}
|
|
.mapClass div label {
|
display: none;
|
}
|
|
.mapClassMain {
|
padding-left: 25px !important;
|
}
|
|
.cityreal2 div label,
|
.cityreal3 div label {
|
display: none;
|
}
|
|
/*页面样式*/
|
.el-card__body .cityreal1 {
|
width: 150px;
|
padding-right: 0px !important;
|
}
|
|
.el-card__body .cityreal2 {
|
width: 100px;
|
padding-left: 10px !important;
|
padding-right: 0px !important;
|
}
|
|
.el-card__body .cityreal3 {
|
width: 100px;
|
padding-left: 10px !important;
|
padding-right: 0px !important;
|
}
|
|
/*新增窗体样式*/
|
.el-dialog .cityreal1 {
|
width: 216px;
|
padding-right: 0px !important;
|
}
|
|
.el-dialog .cityreal2 {
|
width: 130px;
|
padding-left: 10px !important;
|
padding-right: 10px !important;
|
}
|
|
.el-dialog .cityreal3 {
|
width: 105px;
|
padding-left: 0px !important;
|
padding-right: 0px !important;
|
}
|
|
.cityClassParams .avue-form__group.avue-form__group--flex {
|
display: flex;
|
justify-content: space-between;
|
}
|
|
.cityClassParams .cityClassSelect {
|
flex: 1;
|
margin: 0 !important;
|
padding-left: 0px !important;
|
padding-right: 0px !important;
|
}
|
|
.cityClassParams .cityClassSelect:nth-child(2) {
|
margin: 0 10px !important;
|
}
|
|
.cityClassParams .cityClassSelect .el-form-item {
|
margin-bottom: 0px !important;
|
}
|
|
.cityClassParams .cityClassSelect .el-form-item .el-input__inner {
|
height: 28px !important;
|
line-height: 28px !important;
|
}
|
|
.cityClass2 div label {
|
display: none;
|
}
|
|
.cityClass3 div label {
|
display: none;
|
}
|
|
.old-video-dialog {
|
position: absolute !important;
|
top: 0 !important;
|
left: auto !important;
|
right: 0px !important;
|
bottom: 0 !important;
|
margin: auto !important;
|
height: 100% !important;
|
width: 476px !important;
|
}
|
|
.old-video-dialog .el-dialog {
|
position: absolute !important;
|
top: 0 !important;
|
left: 0 !important;
|
right: 0 !important;
|
bottom: 0 !important;
|
margin: auto !important;
|
margin-top: 15vh !important;
|
height: 538px;
|
}
|
|
.old-video-dialog .el-dialog .el-dialog__body {
|
height: calc(100% - 54px);
|
box-sizing: border-box;
|
}
|
|
.el-button.btn-color {
|
color: rgb(255, 255, 255);
|
background-color: rgb(64, 158, 255);
|
border-color: rgb(64, 158, 255);
|
}
|
|
.tabFontSize {
|
font-size: 15px;
|
}
|
</style>
|