Commit c7a64edb authored by zhanglw's avatar zhanglw

边坡数据

parent 1e085c45
......@@ -2824,6 +2824,83 @@ var HttpReq = function(){
data:data,
})
},
slopeGetDeviceList: function(param){
return request({
url: '/api/monitoringEquipment',
method: 'get',
params:param,
})
},
slopeGetDevice: function(param){
return request({
url: '/api/monitoringEquipment/details',
method: 'get',
params:param,
})
},
slopePostDevice: function(data){
return request({
url: '/api/monitoringEquipment',
method: 'POST',
data:data,
})
},
slopePutDevice: function(data){
return request({
url: '/api/monitoringEquipment',
method: 'PUT',
data:data,
})
},
slopeDeleteDevice: function(data){
return request({
url: '/api/monitoringEquipment',
method: 'Delete',
data:data,
})
},
slopeGetMP: function(param){
return request({
url: '/api/mpdata',
method: 'get',
params:param,
})
},
slopeGetMPdevList: function(param){
return request({
url: '/api/mpdata/allMpEquipment',
method: 'get',
params:param,
})
},
slopeGetMPdevData: function(param){
return request({
url: '/api/mpdata/mpChartDataByTime',
method: 'get',
params:param,
})
},
slopeGetRG: function(param){
return request({
url: '/api/rgdata',
method: 'get',
params:param,
})
},
slopeGetRGdevList: function(param){
return request({
url: '/api/rgdata/allRgEquipment',
method: 'get',
params:param,
})
},
slopeGetRGdevData: function(param){
return request({
url: '/api/rgdata/rgChartDataByTime',
method: 'get',
params:param,
})
},
},
......
......@@ -19,7 +19,6 @@
<video id="videoRealtime" class="video-js vjs-default-skin vjs-big-play-centered" controls preload="auto" data-setup="{}" style="width: 100%;height: 100%;">
您的浏览器不支持:HTML5 video.
</video>
noPtzCameraList
<el-select v-model="cameraSrc" class="noPtzCameraList" @change="videoPlay()">
<el-option v-for="item in cameraList" :key="item.id" :label="item.monitorName" :value="item.monitorUrl" style="font-size:16px;font-weight:400"></el-option>
</el-select>
......@@ -182,9 +181,6 @@ export default {
}, function () {
console.log('video ready!')
})
setTimeout(()=>{
},3000);
},
methods: {
filterNode(value, data) {
......
......@@ -130,7 +130,7 @@
}
.mars3d-container {
height: 100%;
width: 100vw;
width: 100%;
overflow: hidden;
}
......
......@@ -32,12 +32,14 @@ import router from './router/routers'
import './assets/icons' // icon
import './router/index' // permission control
import 'echarts-gl'
import print from 'vue-print-nb'
Vue.use(checkPer)
Vue.use(VueHighlightJS)
Vue.use(mavonEditor)
Vue.use(permission)
Vue.use(dict)
Vue.use(print);
Vue.use(Element, {
size: Cookies.get('size') || 'small' // set element-ui default size
})
......
......@@ -466,6 +466,7 @@ export default {
},
selectedCar(item) {
this.selectedCarid = item.id;
this.$parent.locateCarByNumber(item.carNumber);
},
checkedCarByList(item) {
item.flag = !item.flag;
......
......@@ -41,11 +41,15 @@
</div>
<!-- 嵌入三维地图页面 -->
<!-- <iframe :src="url" frameborder="0" class="mapcontainer1"></iframe>-->
<iframe src="http://192.168.3.60:18041//#/Index" frameborder="0" class="mapcontainer1"></iframe>
<!-- <iframe ref="iframe" src="http://192.168.3.60:18041//#/Index" frameborder="0" class="mapcontainer1"></iframe>-->
<!-- <iframe ref="iframe" src="http://192.168.3.38:3002/#/Index" frameborder="0" class="mapcontainer1"></iframe>-->
<!-- 单个车辆视频监控 -->
<div class="monitorCover1" v-if="monitorCover1Show">
<div class="monitorCover1" v-show="monitorCover1Show">
<div class="monitorCover1_closePic" @click="closeMonitorCoverFn"></div>
<iframe :src="iframeSrc" class="monitorCover1_Video"></iframe>
<video id="videoRealtime" class="video-js vjs-default-skin vjs-big-play-centered monitorCover1_Video" controls preload="auto" data-setup="{}">
您的浏览器不支持:HTML5 video.
</video>
</div>
<img src="../../assets/images/cutGraph/maplogo1.jpg" class="maplogo1Img">
</div>
......@@ -83,6 +87,9 @@ import DPcomputer25 from './components/smallComponents/DPcomputer25.vue'
import DPcomputer26 from './components/smallComponents/DPcomputer26.vue'
import DPcomputer27 from './components/smallComponents/DPcomputer27.vue'
import DPcomputer28 from './components/smallComponents/DPcomputer28.vue'
import 'video.js/dist/video-js.css'
import videojs from 'video.js'
import 'videojs-contrib-hls'
export default {
components: {
......@@ -172,8 +179,24 @@ export default {
}, 20000)
//与嵌入的地图页面进行交互
window.addEventListener('message', this.handleMessage);
this.videoPlayer = videojs('videoRealtime', {
bigPlayButton: false,
textTrackDisplay: false,
posterImage: true,
errorDisplay: false,
controlBar: true
}, function () {
console.log('video ready!')
})
},
methods: {
locateCarByNumber(number){
this.iframeWin = this.$refs.iframe.contentWindow;
this.iframeWin.postMessage({
fnName: 'locateCarByNumber',
parameter: number
}, '*')
},
loadData() {
let leftTemporaryData = [];
let rightTemporaryData = [];
......@@ -409,25 +432,45 @@ export default {
this.videoSelectStyle = 2;
},
//获取当前时间
setNowTimes () {
let myDate = new Date();
let wk = myDate.getDay();
let yy = String(myDate.getFullYear());
let mm = String((myDate.getMonth() + 1) < 10 ? '0' + (myDate.getMonth() + 1) : (myDate.getMonth() + 1));
let dd = String(myDate.getDate() < 10 ? '0' + myDate.getDate() : myDate.getDate());
let hou = String(myDate.getHours() < 10 ? '0' + myDate.getHours() : myDate.getHours());
let min = String(myDate.getMinutes() < 10 ? '0' + myDate.getMinutes() : myDate.getMinutes());
let sec = String(myDate.getSeconds() < 10 ? '0' + myDate.getSeconds() : myDate.getSeconds());
let weeks = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'];
let week = weeks[wk];
this.currentTime = yy + '/' + mm + '/' + dd + ' ' + hou + ':' + min;
},
setNowTimes() {
let myDate = new Date();
let wk = myDate.getDay();
let yy = String(myDate.getFullYear());
let mm = String((myDate.getMonth() + 1) < 10 ? '0' + (myDate.getMonth() + 1) : (myDate.getMonth() + 1));
let dd = String(myDate.getDate() < 10 ? '0' + myDate.getDate() : myDate.getDate());
let hou = String(myDate.getHours() < 10 ? '0' + myDate.getHours() : myDate.getHours());
let min = String(myDate.getMinutes() < 10 ? '0' + myDate.getMinutes() : myDate.getMinutes());
let sec = String(myDate.getSeconds() < 10 ? '0' + myDate.getSeconds() : myDate.getSeconds());
let weeks = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'];
let week = weeks[wk];
this.currentTime = yy + '/' + mm + '/' + dd + ' ' + hou + ':' + min;
},
videoPlay() {
this.videoPlayer.src({src: this.cameraSrc, type: 'application/x-mpegURL'});
this.videoPlayer.play();
},
//与iframe的页面进行数据交互
handleMessage(event){//event.data为传递的参数
//这里的判断是因为此方法会多次触发,通过参数是否存在可以判断是否为子页面传递的参数,再做出相应的操作
if(event.data.data.hasOwnProperty("url")){
if(event.data.data.url == '监控'){
this.iframeSrc = this.defaultIframeSrc + event.data.data.data;
let number = event.data.data.data;
HttpReq.truckDispatching.jkcarMonitorFind({carNumber: number}).then((res) => {
if (res.code == 200) {
if(res.data && res.data.length){
this.noPtz = true;
this.cameraList = res.data;
this.cameraSrc = this.cameraList[0].monitorUrl;
this.videoPlay();
}else{
this.$notify({
title: '该车无视频监控!',
type: 'warning',
duration: 2500
});
}
}
})
this.monitorCover1Show = true;
}
}
......@@ -690,6 +733,6 @@ export default {
left: 50vw;
transform: translateX(-50%);
width: 80vw;
height: 90vh;
height: 90vh;
}
</style>
......@@ -6,14 +6,14 @@
<div class="head-container">
<!-- 搜索 -->
<label class="el-form-item-label" style="font-weight: 500;">设备号</label>
<el-input v-model="query.formId" clearable size="small" placeholder="请输入设备号" style="width:180px;"/>
<el-input v-model="query.sensorId" clearable size="small" placeholder="请输入设备号" style="width:180px;"/>
<label class="el-form-item-label" style="font-weight: 500;">报警状态</label>
<el-select v-model="query.stu" placeholder="请选择">
<el-select v-model="query.alarmStatus" placeholder="请选择">
<el-option v-for="item in stuOpts" :key="item.value" :label="item.label" :value="item.value"></el-option>
</el-select>
<label class="el-form-item-label" style="font-weight: 500;">日期范围</label>
<el-date-picker
v-model="query.createTime"
v-model="query.timeList"
type="datetimerange"
value-format="yyyy-MM-dd HH:MM:SS"
range-separator="至"
......@@ -32,11 +32,11 @@
<div class="content-fix">
<div class="toolbar" style="text-align:right">
<el-button size="mini" type="primary" icon="el-icon-refresh" @click="loadData">刷新</el-button>
<el-button size="mini" type="success" icon="el-icon-s-data" @click="toAdd">图表</el-button>
<el-button size="mini" type="warning" icon="el-icon-document" @click="toAdd">导出</el-button>
<el-button size="mini" icon="el-icon-printer" v-print="printObj" @click="printeTable">打印</el-button>
</div>
<div class="content">
<el-table :data="tableData" v-loading="loading" border style="width:auto" :row-class-name="tableRowClassName">
<el-table id="printContainer" :data="tableData" v-loading="loading" border style="width:auto" :row-class-name="tableRowClassName">
<el-table-column prop="formId" label="设备名称" align="center"></el-table-column>
<el-table-column prop="username" label="设备编号" align="center"></el-table-column>
<el-table-column prop="carNo" label="状态" align="center"></el-table-column>
......@@ -46,7 +46,7 @@
<el-table-column prop="createTime" label="报警时间" align="center"></el-table-column>
<el-table-column prop="carNo" label="解除报警原因" align="center"></el-table-column>
<el-table-column prop="createTime" label="解除报警时间" align="center"></el-table-column>
<el-table-column label="操作" align="center" fixed="right">
<el-table-column label="操作" align="center" v-if="!isPrint">
<template slot-scope="scope">
<el-button size="mini" type="primary" icon="el-icon-close-notification" @click="toEdit(scope.row)"></el-button>
</template>
......@@ -62,13 +62,6 @@
</div>
</div>
<!-- 表单渲染 -->
<el-dialog append-to-body :close-on-click-modal="true" :before-close="cancelForm" :visible.sync="visible" :title="title" width="800px">
<div slot="footer" class="dialog-footer">
<el-button type="text" @click="cancelForm">取消</el-button>
<el-button type="primary" @click="submitForm('formViewRef', formData)">确认</el-button>
</div>
</el-dialog>
<!-- 表单渲染 -->
<el-dialog append-to-body :close-on-click-modal="false" :before-close="cancelForm" :visible.sync="editVisible" title="解除报警" width="500px">
<el-form :model="formData" :rules="rules" ref="formViewRef" :inline="true" label-width="180px">
<el-form-item label="解除时长:" class="form-cell" prop="name" style="width:100%">
......@@ -98,16 +91,9 @@
<script>
import {Tools, HttpReq, Dates} from '@/assets/js/common.js';
import mars3dViewerMap from "../../../components/mars3d/Map5.vue";
import * as mars3d from "mars3d";
import * as Cesium from "mars3d-cesium";
import kongzhidiantubiao from "../../../assets/images/cutGraph/kongzhidian1.png";
export default {
name: 'alarmManagement',
components: {
mars3dViewerMap,
},
data() {
const basePathUrl = window.basePathUrl || ''
return {
......@@ -116,13 +102,15 @@ export default {
visible: false,
editVisible: false,
loading: false,
isPrint: false,
page: 1,
size: 10,
total: 0,
query: {},
stuOpts: [
{label: '离线', value: 0},
{label: '在线', value: 1},
{label: '全部', value: undefined},
{label: '报警', value: 1},
{label: '正常', value: 0},
],
tableData: [],
formData: {
......@@ -133,6 +121,13 @@ export default {
rules: {
devNo: {required: true, message: '请填写解除报警原因', trigger: 'blur'},
},
printObj: {
id: "printContainer",
popTitle: '打印',
extraHead: '',
targetStyles: ["*"],
closeCallback:()=>{this.isPrint=false},
}
}
},
mounted() {
......@@ -158,13 +153,12 @@ export default {
})
})
},
toAdd() {
this.title = '新增';
this.visible = true;
},
toEdit() {
this.editVisible = true;
},
printeTable() {
this.isPrint=true;
},
cancelForm() {
this.visible = false;
this.editVisible = false;
......
......@@ -6,14 +6,14 @@
<div class="head-container">
<!-- 搜索 -->
<label class="el-form-item-label" style="font-weight: 500;">设备号</label>
<el-input v-model="query.formId" clearable size="small" placeholder="请输入设备号" style="width:180px;"/>
<el-input v-model="query.sensorId" clearable size="small" placeholder="请输入设备号" style="width:180px;"/>
<label class="el-form-item-label" style="font-weight: 500;">报警状态</label>
<el-select v-model="query.stu" placeholder="请选择">
<el-select v-model="query.alarmStatus" placeholder="请选择">
<el-option v-for="item in stuOpts" :key="item.value" :label="item.label" :value="item.value"></el-option>
</el-select>
<label class="el-form-item-label" style="font-weight: 500;">日期范围</label>
<el-date-picker
v-model="query.createTime"
v-model="query.timeList"
type="datetimerange"
value-format="yyyy-MM-dd HH:MM:SS"
range-separator="至"
......@@ -73,16 +73,8 @@
<script>
import {Tools, HttpReq, Dates} from '@/assets/js/common.js';
import mars3dViewerMap from "../../../components/mars3d/Map5.vue";
import * as mars3d from "mars3d";
import * as Cesium from "mars3d-cesium";
import kongzhidiantubiao from "../../../assets/images/cutGraph/kongzhidian1.png";
export default {
name: 'environmentalMonitoring',
components: {
mars3dViewerMap,
},
data() {
const basePathUrl = window.basePathUrl || ''
return {
......@@ -91,8 +83,9 @@ export default {
visible: false,
loading: false,
stuOpts: [
{label: '离线', value: 0},
{label: '在线', value: 1},
{label: '全部', value: undefined},
{label: '报警', value: 1},
{label: '正常', value: 0},
],
page: 1,
size: 10,
......
......@@ -6,14 +6,14 @@
<div class="head-container">
<!-- 搜索 -->
<label class="el-form-item-label" style="font-weight: 500;">设备号</label>
<el-input v-model="query.formId" clearable size="small" placeholder="请输入设备号" style="width:180px;"/>
<el-input v-model="query.sensorId" clearable size="small" placeholder="请输入设备号" style="width:180px;"/>
<label class="el-form-item-label" style="font-weight: 500;">报警状态</label>
<el-select v-model="query.stu" placeholder="请选择">
<el-select v-model="query.alarmStatus" placeholder="请选择">
<el-option v-for="item in stuOpts" :key="item.value" :label="item.label" :value="item.value"></el-option>
</el-select>
<label class="el-form-item-label" style="font-weight: 500;">日期范围</label>
<el-date-picker
v-model="query.createTime"
v-model="query.timeList"
type="datetimerange"
value-format="yyyy-MM-dd HH:MM:SS"
range-separator="至"
......@@ -32,17 +32,25 @@
<div class="content-fix">
<div class="toolbar" style="text-align:right">
<el-button size="mini" type="primary" icon="el-icon-refresh" @click="loadData">刷新</el-button>
<el-button size="mini" type="success" icon="el-icon-s-data" @click="toAdd">图表</el-button>
<el-button size="mini" type="warning" icon="el-icon-document" @click="toAdd">导出</el-button>
<el-button size="mini" type="success" icon="el-icon-s-data" @click="charstView">图表</el-button>
<el-button size="mini" type="warning" icon="el-icon-document" @click="downloadFile">导出</el-button>
</div>
<div class="content">
<el-table :data="tableData" v-loading="loading" border style="width:auto" :row-class-name="tableRowClassName">
<el-table-column prop="formId" label="设备名称" align="center"></el-table-column>
<el-table-column prop="username" label="设备编号" align="center"></el-table-column>
<el-table-column prop="carNo" label="检测值" align="center"></el-table-column>
<el-table-column prop="carClass" label="单位" align="center"></el-table-column>
<el-table-column prop="createTime" label="是否报警" align="center"></el-table-column>
<el-table-column prop="createTime" label="监测时间" align="center"></el-table-column>
<el-table-column prop="sensorname" label="设备名称" align="center"></el-table-column>
<el-table-column prop="sensorid" label="设备编号" align="center"></el-table-column>
<el-table-column prop="zongliang" label="检测值" align="center"></el-table-column>
<el-table-column label="单位" align="center">
<template slot-scope="scope">
mm
</template>
</el-table-column>
<el-table-column prop="state" label="是否报警" align="center">
<template slot-scope="scope">
<span>{{ scope.row.state?'报警':'正常'}}</span>
</template>
</el-table-column>
<el-table-column prop="time" label="监测时间" align="center"></el-table-column>
</el-table>
<!--分页组件-->
<el-pagination :total="total" :current-page="page" style="margin-top: 8px;"
......@@ -54,11 +62,27 @@
</div>
</div>
<!-- 表单渲染 -->
<el-dialog append-to-body :close-on-click-modal="false" :before-close="cancelForm" :visible.sync="visible" :title="title" width="800px">
<el-dialog append-to-body :close-on-click-modal="false" :before-close="cancelForm" :visible="visible" :title="title" width="1200px">
<div class="head-container">
<!-- 搜索 -->
<label class="el-form-item-label" style="font-weight: 500;">当前设备:</label>
<el-select v-model="search.sensorId" placeholder="请选择">
<el-option v-for="item in devList" :key="item.value" :label="item.label" :value="item.value"></el-option>
</el-select>
<label class="el-form-item-label" style="font-weight: 500;">日期范围</label>
<el-date-picker
v-model="search.timeList"
type="datetimerange"
value-format="yyyy-MM-dd HH:MM:SS"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期">
</el-date-picker>
<el-button size="mini" type="success" icon="el-icon-search" @click="toSearchDev">搜索</el-button>
</div>
<div id="chartPanel" style="width:100%;height: 600px;"></div>
<div slot="footer" class="dialog-footer">
<el-button type="text" @click="cancelForm">取消</el-button>
<el-button type="primary" @click="submitForm('formViewRef', formData)">确认</el-button>
<el-button @click="cancelForm">关闭</el-button>
</div>
</el-dialog>
......@@ -67,16 +91,10 @@
<script>
import {Tools, HttpReq, Dates} from '@/assets/js/common.js';
import mars3dViewerMap from "../../../components/mars3d/Map5.vue";
import * as mars3d from "mars3d";
import * as Cesium from "mars3d-cesium";
import kongzhidiantubiao from "../../../assets/images/cutGraph/kongzhidian1.png";
import * as echarts from 'echarts';
export default {
name: 'precipitationLog',
components: {
mars3dViewerMap,
},
name: 'surfaceDisplacementLog',
data() {
const basePathUrl = window.basePathUrl || ''
return {
......@@ -85,14 +103,21 @@ export default {
visible: false,
loading: false,
stuOpts: [
{label: '离线', value: 0},
{label: '在线', value: 1},
{label: '全部', value: undefined},
{label: '报警', value: 1},
{label: '正常', value: 0},
],
page: 1,
size: 10,
total: 0,
query: {},
tableData: [],
search: {
sensorId: '',
timeList: '',
},
devList: [],
myChart: null,
}
},
mounted() {
......@@ -107,9 +132,12 @@ export default {
param.page = this.page - 1;
param.pageSize = this.size;
param.sort = sort;
if(param.timeList && param.timeList.length){
param.startTime = param.timeList[0];
param.endTime = param.timeList[1];
}
this.$nextTick(() => {
//获取安检信息
HttpReq.truckDispatching.ajReportListFind(param).then((res) => {
HttpReq.truckDispatching.slopeGetRG(param).then((res) => {
if (res.code == 200) {
this.loading = false;
this.tableData = res.data.records;
......@@ -118,24 +146,103 @@ export default {
})
})
},
toAdd() {
this.title = '新增';
charstView() {
this.devList=[];
this.title = '图表';
this.visible = true;
HttpReq.truckDispatching.slopeGetRGdevList().then((res) => {
if (res.code == 200 && res.data) {
res.data.forEach((item)=>{
this.devList.push({
lable: item.equipno,
value: item.equipno,
});
});
this.search.sensorId = this.devList[0].value;
this.toSearchDev();
}
})
},
toEdit() {
toSearchDev(){
var param = this.search;
if(param.timeList && param.timeList.length){
param.startTime = param.timeList[0];
param.endTime = param.timeList[1];
}
this.$nextTick(() => {
HttpReq.truckDispatching.slopeGetRGdevData(param).then((res) => {
if (res.code == 200 && res.data) {
let option = {
color: [
'#ff3c3c',
'#ffd700',
'#00bfff',
],
tooltip: {
trigger: 'axis',
position: function (pt) {
return [pt[0], '10%'];
}
},
toolbox: {
show: true,
feature: {
dataView: { show: false },
magicType: { type: ['line', 'bar'] },
restore: { show: false },
saveAsImage: { show: false },
dataZoom: { show: false },
}
},
legend: {
data: ['X', 'Y', 'Z']
},
xAxis: {
type: 'time',
boundaryGap: false,
splitLine:{
show:false,
}
},
yAxis: {
type: 'value',
boundaryGap: [0, '100%'],
axisLine:{
show:false,
}
},
dataZoom: [
{
show: true,
realtime: true,
start: 0,
end: 100,
moveOnMouseMove: false,
},
{
type: 'inside',
realtime: true,
start: 0,
end: 100,
moveOnMouseMove: false,
}
],
series: [
{
name: '检测值',
type: 'line',
data: res.data.x
}
]
};
let myChart = echarts.init(document.getElementById('chartPanel'));
myChart.setOption(option);
}
})
})
},
downloadFile() {
toDelete(item) {
var id = item.id;
this.$confirm('确认删除该条数据吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then((e) => {
}).catch((e) => {
})
},
cancelForm() {
this.visible = false;
......@@ -161,18 +268,6 @@ export default {
this.size = e
this.loadData()
},
submitForm(validateName, item) {
this.$refs[validateName].validate(valid => {
if (valid) {
// if (this.title === '新增') {
// this.reqAddItem(this.form, item)
// } else {
// this.reqUpdateItem(this.form, item)
// }
alert(9999);
}
});
},
},
}
</script>
......
......@@ -6,20 +6,11 @@
<div class="head-container">
<!-- 搜索 -->
<label class="el-form-item-label" style="font-weight: 500;">设备号</label>
<el-input v-model="query.formId" clearable size="small" placeholder="请输入设备号" style="width:180px;"/>
<el-input v-model="query.equipno" clearable size="small" placeholder="请输入设备号" style="width:180px;"/>
<label class="el-form-item-label" style="font-weight: 500;">在线状态</label>
<el-select v-model="query.stu" placeholder="请选择">
<el-select v-model="query.onlineStatus" placeholder="请选择">
<el-option v-for="item in stuOpts" :key="item.value" :label="item.label" :value="item.value"></el-option>
</el-select>
<label class="el-form-item-label" style="font-weight: 500;">日期范围</label>
<el-date-picker
v-model="query.createTime"
type="datetimerange"
value-format="yyyy-MM-dd HH:MM:SS"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期">
</el-date-picker>
<el-button size="mini" type="success" icon="el-icon-search" @click="toSearch">搜索</el-button>
<el-button size="mini" icon="el-icon-refresh" @click="clearLimit">重置</el-button>
</div>
......@@ -35,14 +26,18 @@
</div>
<div class="content">
<el-table :data="tableData" v-loading="loading" border style="width:auto" :row-class-name="tableRowClassName">
<el-table-column prop="formId" label="设备名称" align="center"></el-table-column>
<el-table-column prop="username" label="设备类型" align="center"></el-table-column>
<el-table-column prop="carNo" label="设备编号" align="center"></el-table-column>
<el-table-column prop="carClass" label="数值单位" align="center"></el-table-column>
<el-table-column prop="createTime" label="安装日期" align="center"></el-table-column>
<el-table-column prop="createTime" label="生产厂家" align="center"></el-table-column>
<el-table-column prop="createTime" label="最后更新时间" align="center"></el-table-column>
<el-table-column prop="carClass" label="状态" align="center"></el-table-column>
<el-table-column prop="equipname" label="设备名称" align="center"></el-table-column>
<el-table-column prop="devicetype" label="设备类型" align="center">
<template slot-scope="scope">
<span>{{formatOpt(devOpts, scope.row.devicetype)}}</span>
</template>
</el-table-column>
<el-table-column prop="equipno" label="设备编号" align="center"></el-table-column>
<el-table-column prop="eqdanwei" label="数值单位" align="center"></el-table-column>
<el-table-column prop="installationdata" label="安装日期" align="center"></el-table-column>
<el-table-column prop="manufacture" label="生产厂家" align="center"></el-table-column>
<el-table-column prop="datarealtime" label="最后更新时间" align="center"></el-table-column>
<el-table-column prop="onlineStatus" label="状态" align="center"></el-table-column>
<el-table-column label="操作" align="center" fixed="right">
<template slot-scope="scope">
<el-button size="mini" type="primary" icon="el-icon-edit" @click="toEdit(scope.row)"></el-button>
......@@ -65,19 +60,19 @@
<el-row>
<el-col :span="12">
<div class="grid-content">
<el-form-item label="设备名称:" prop="name" class="form-cell">
<el-form-item label="设备名称:" prop="equipname" class="form-cell">
<div class="cell-box">
<el-input v-model="formData.name" class="cell-input"></el-input>
<el-input v-model="formData.equipname" class="cell-input"></el-input>
</div>
</el-form-item>
</div>
</el-col>
<el-col :span="12">
<div class="grid-content">
<el-form-item label="设备类型:" class="form-cell" prop="devType">
<el-form-item label="设备类型:" class="form-cell" prop="devicetype">
<div class="cell-box">
<el-select v-model="formData.devType" placeholder="无" class="cell-input">
<el-option v-for="item in sdOptions" :key="item.value" :label="item.label" :value="item.value"></el-option>
<el-select v-model="formData.devicetype" placeholder="无" class="cell-input">
<el-option v-for="item in devOpts" :key="item.value" :label="item.label" :value="item.value"></el-option>
</el-select>
</div>
</el-form-item>
......@@ -87,18 +82,18 @@
<el-row>
<el-col :span="12">
<div class="grid-content">
<el-form-item label="设备编号:" class="form-cell" prop="devNo">
<el-form-item label="设备编号:" class="form-cell" prop="equipno">
<div class="cell-box">
<el-input v-model="formData.devNo" class="cell-input"></el-input>
<el-input v-model="formData.equipno" class="cell-input"></el-input>
</div>
</el-form-item>
</div>
</el-col>
<el-col :span="12">
<div class="grid-content">
<el-form-item label="数值单位:" class="form-cell" prop="devUnit">
<el-form-item label="数值单位:" class="form-cell" prop="eqdanwei">
<div class="cell-box">
<el-input v-model="formData.devUnit" class="cell-input"></el-input>
<el-input v-model="formData.eqdanwei" class="cell-input"></el-input>
</div>
</el-form-item>
</div>
......@@ -107,30 +102,40 @@
<el-row>
<el-col :span="12">
<div class="grid-content">
<el-form-item label="安装日期:" class="form-cell" prop="installDate">
<el-form-item label="安装日期:" class="form-cell" prop="installationdata">
<div class="cell-box">
<el-date-picker v-model="formData.installDate" type="date" placeholder="选择日期"></el-date-picker>
<el-date-picker v-model="formData.installationdata" type="date" placeholder="选择日期"></el-date-picker>
</div>
</el-form-item>
</div>
</el-col>
<el-col :span="12">
<div class="grid-content">
<el-form-item label="生产厂家:" class="form-cell" prop="manufactor">
<el-form-item label="生产厂家:" class="form-cell" prop="manufacture">
<div class="cell-box">
<el-input v-model="formData.manufactor" class="cell-input"></el-input>
<el-input v-model="formData.manufacture" class="cell-input"></el-input>
</div>
</el-form-item>
</div>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-col :span="12">
<div class="grid-content">
<el-form-item label="安装位置:" class="form-cell" prop="longitude" style="height: 36px">
<div class="cell-box">
<div v-show="formData.longitude">{{ formData.longitude }},{{ formData.latitude }}</div>
</div>
</el-form-item>
</div>
</el-col>
<el-col :span="12">
<div class="grid-content">
<el-form-item label="安装位置:" class="form-cell" prop="lng" style="height: 36px">
<div class="cell-box" style="display: flex">
<div style="width: 200px">经度: {{ formData.lng }}</div>
<div style="width: 200px">纬度: {{ formData.lat }}</div>
<el-form-item label="是否是基准点:" class="form-cell" prop="datumpoint">
<div class="cell-box">
<el-select v-model="formData.datumpoint" placeholder="无" class="cell-input">
<el-option v-for="item in datOpts" :key="item.value" :label="item.label" :value="item.value"></el-option>
</el-select>
</div>
</el-form-item>
</div>
......@@ -140,8 +145,7 @@
<el-col :span="24">
<div class="grid-content">
<div id="centerDiv" class="mapcontainer">
<mars3dViewerMap :url="configUrl" @onload="onMapload" ref="mars3dViewerMapMethod"
mapKey="mapPointView"/>
<mars3dViewerMap :url="configUrl" @onload="onMapload" ref="mars3dViewerMapMethod" mapKey="mapPointView"/>
</div>
</div>
</el-col>
......@@ -149,18 +153,18 @@
<el-row>
<el-col :span="12">
<div class="grid-content">
<el-form-item label="安装高度:" class="form-cell">
<el-form-item label="安装高度:" class="form-cell" prop="installheight">
<div class="cell-box">
<el-input v-model="formData.xxxxx" class="cell-input"></el-input>
<el-input v-model="formData.installheight" class="cell-input"></el-input>
</div>
</el-form-item>
</div>
</el-col>
<el-col :span="12">
<div class="grid-content">
<el-form-item label="供电和通信方式:" class="form-cell">
<el-form-item label="供电和通信方式:" class="form-cell" prop="electricitysupply">
<div class="cell-box">
<el-input v-model="formData.xxxxx" class="cell-input"></el-input>
<el-input v-model="formData.electricitysupply" class="cell-input"></el-input>
</div>
</el-form-item>
</div>
......@@ -169,18 +173,18 @@
<el-row>
<el-col :span="12">
<div class="grid-content">
<el-form-item label="设备精度:" class="form-cell">
<el-form-item label="设备精度:" class="form-cell" prop="accuracy">
<div class="cell-box">
<el-input v-model="formData.xxxxx" class="cell-input"></el-input>
<el-input v-model="formData.accuracy" class="cell-input"></el-input>
</div>
</el-form-item>
</div>
</el-col>
<el-col :span="12">
<div class="grid-content">
<el-form-item label="海拔(米):" class="form-cell">
<el-form-item label="海拔(米):" class="form-cell" prop="altitude">
<div class="cell-box">
<el-input v-model="formData.xxxxx" class="cell-input"></el-input>
<el-input v-model="formData.altitude" class="cell-input"></el-input>
</div>
</el-form-item>
</div>
......@@ -189,18 +193,18 @@
<el-row>
<el-col :span="12">
<div class="grid-content">
<el-form-item label="一级预警阈值:" class="form-cell">
<el-form-item label="一级预警阈值:" class="form-cell" prop="onelevelalarm">
<div class="cell-box">
<el-input v-model="formData.xxxxx" class="cell-input"></el-input>
<el-input v-model="formData.onelevelalarm" class="cell-input"></el-input>
</div>
</el-form-item>
</div>
</el-col>
<el-col :span="12">
<div class="grid-content">
<el-form-item label="二级预警阈值:" class="form-cell">
<el-form-item label="二级预警阈值:" class="form-cell" prop="twolevelalarm">
<div class="cell-box">
<el-input v-model="formData.xxxxx" class="cell-input"></el-input>
<el-input v-model="formData.twolevelalarm" class="cell-input"></el-input>
</div>
</el-form-item>
</div>
......@@ -209,18 +213,18 @@
<el-row>
<el-col :span="12">
<div class="grid-content">
<el-form-item label="三级预警阈值:" class="form-cell">
<el-form-item label="三级预警阈值:" class="form-cell" prop="threelevelalarm">
<div class="cell-box">
<el-input v-model="formData.xxxxx" class="cell-input"></el-input>
<el-input v-model="formData.threelevelalarm" class="cell-input"></el-input>
</div>
</el-form-item>
</div>
</el-col>
<el-col :span="12">
<div class="grid-content">
<el-form-item label="四级预警阈值:" class="form-cell">
<el-form-item label="四级预警阈值:" class="form-cell" prop="fourlevelalarm">
<div class="cell-box">
<el-input v-model="formData.xxxxx" class="cell-input"></el-input>
<el-input v-model="formData.fourlevelalarm" class="cell-input"></el-input>
</div>
</el-form-item>
</div>
......@@ -229,10 +233,10 @@
<el-row>
<el-col :span="12">
<div class="grid-content">
<el-form-item label="在用状态:" class="form-cell">
<el-form-item label="在用状态:" class="form-cell" prop="isUsed">
<div class="cell-box">
<el-select v-model="formData.xxxxx" placeholder="无" class="cell-input">
<el-option v-for="item in sdOptions" :key="item.value" :label="item.label" :value="item.value"></el-option>
<el-select v-model="formData.isUsed" placeholder="无" class="cell-input">
<el-option v-for="item in usedOpts" :key="item.value" :label="item.label" :value="item.value"></el-option>
</el-select>
</div>
</el-form-item>
......@@ -242,9 +246,7 @@
<div class="grid-content">
<el-form-item label="同步状态:" class="form-cell">
<div class="cell-box">
<el-select v-model="formData.xxxxx" placeholder="无" class="cell-input">
<el-option v-for="item in sdOptions" :key="item.value" :label="item.label" :value="item.value"></el-option>
</el-select>
</div>
</el-form-item>
</div>
......@@ -253,19 +255,19 @@
<el-row>
<el-col :span="12">
<div class="grid-content">
<el-form-item label="设备ip地址:" class="form-cell">
<el-form-item label="设备ip地址:" class="form-cell" prop="ipaddress">
<div class="cell-box">
<el-input v-model="formData.xxxxx" class="cell-input"></el-input>
<el-input v-model="formData.ipaddress" class="cell-input"></el-input>
</div>
</el-form-item>
</div>
</el-col>
<el-col :span="12">
<div class="grid-content">
<el-form-item label="网络类型:" class="form-cell">
<el-form-item label="网络类型:" class="form-cell" prop="eqtype">
<div class="cell-box">
<el-select v-model="formData.xxxxx" placeholder="无" class="cell-input">
<el-option v-for="item in sdOptions" :key="item.value" :label="item.label" :value="item.value"></el-option>
<el-select v-model="formData.eqtype" placeholder="无" class="cell-input">
<el-option v-for="item in eqtOpts" :key="item.value" :label="item.label" :value="item.value"></el-option>
</el-select>
</div>
</el-form-item>
......@@ -275,18 +277,18 @@
<el-row>
<el-col :span="12">
<div class="grid-content">
<el-form-item label="传感器初始值:" class="form-cell">
<el-form-item label="传感器初始值:" class="form-cell" prop="initial">
<div class="cell-box">
<el-input v-model="formData.xxxxx" class="cell-input"></el-input>
<el-input v-model="formData.initial" class="cell-input"></el-input>
</div>
</el-form-item>
</div>
</el-col>
<el-col :span="12">
<div class="grid-content">
<el-form-item label="初始值x方向:" class="form-cell">
<el-form-item label="初始值x方向:" class="form-cell" prop="initialx">
<div class="cell-box">
<el-input v-model="formData.xxxxx" class="cell-input"></el-input>
<el-input v-model="formData.initialx" class="cell-input"></el-input>
</div>
</el-form-item>
</div>
......@@ -295,18 +297,18 @@
<el-row>
<el-col :span="12">
<div class="grid-content">
<el-form-item label="初始值y方向:" class="form-cell">
<el-form-item label="初始值y方向:" class="form-cell" prop="initialy">
<div class="cell-box">
<el-input v-model="formData.xxxxx" class="cell-input"></el-input>
<el-input v-model="formData.initialy" class="cell-input"></el-input>
</div>
</el-form-item>
</div>
</el-col>
<el-col :span="12">
<div class="grid-content">
<el-form-item label="初始值z方向:" class="form-cell">
<el-form-item label="初始值z方向:" class="form-cell" prop="initialz">
<div class="cell-box">
<el-input v-model="formData.xxxxx" class="cell-input"></el-input>
<el-input v-model="formData.initialz" class="cell-input"></el-input>
</div>
</el-form-item>
</div>
......@@ -315,10 +317,10 @@
<el-row>
<el-col :span="12">
<div class="grid-content">
<el-form-item label="报警状态:" class="form-cell">
<el-form-item label="报警状态:" class="form-cell" prop="state">
<div class="cell-box">
<el-select v-model="formData.xxxxx" placeholder="无" class="cell-input">
<el-option v-for="item in sdOptions" :key="item.value" :label="item.label" :value="item.value"></el-option>
<el-select v-model="formData.state" placeholder="无" class="cell-input">
<el-option v-for="item in bjOpts" :key="item.value" :label="item.label" :value="item.value"></el-option>
</el-select>
</div>
</el-form-item>
......@@ -326,9 +328,9 @@
</el-col>
<el-col :span="12">
<div class="grid-content">
<el-form-item label="浸润线埋深(米):" class="form-cell">
<el-form-item label="浸润线埋深(米):" class="form-cell" prop="burialDepth">
<div class="cell-box">
<el-input v-model="formData.xxxxx" class="cell-input"></el-input>
<el-input v-model="formData.burialDepth" class="cell-input"></el-input>
</div>
</el-form-item>
</div>
......@@ -337,18 +339,20 @@
<el-row>
<el-col :span="12">
<div class="grid-content">
<el-form-item label="检验周期:" class="form-cell">
<el-form-item label="检验周期:" class="form-cell" prop="checkperiod">
<div class="cell-box">
<el-input v-model="formData.xxxxx" class="cell-input"></el-input>
<el-input v-model="formData.checkperiod" class="cell-input"></el-input>
</div>
</el-form-item>
</div>
</el-col>
<el-col :span="12">
<div class="grid-content">
<el-form-item label="库水位设备类型:" class="form-cell">
<el-form-item label="库水位设备类型:" class="form-cell" prop="sensortype">
<div class="cell-box">
<el-input v-model="formData.xxxxx" class="cell-input"></el-input>
<el-select v-model="formData.sensortype" placeholder="无" class="cell-input">
<el-option v-for="item in ssOpts" :key="item.value" :label="item.label" :value="item.value"></el-option>
</el-select>
</div>
</el-form-item>
</div>
......@@ -357,18 +361,18 @@
<el-row>
<el-col :span="12">
<div class="grid-content">
<el-form-item label="X位移:" class="form-cell">
<el-form-item label="X位移:" class="form-cell" prop="bmwyX">
<div class="cell-box">
<el-input v-model="formData.xxxxx" class="cell-input"></el-input>
<el-input v-model="formData.bmwyX" class="cell-input"></el-input>
</div>
</el-form-item>
</div>
</el-col>
<el-col :span="12">
<div class="grid-content">
<el-form-item label="Y位移:" class="form-cell">
<el-form-item label="Y位移:" class="form-cell" prop="bmwyY">
<div class="cell-box">
<el-input v-model="formData.xxxxx" class="cell-input"></el-input>
<el-input v-model="formData.bmwyY" class="cell-input"></el-input>
</div>
</el-form-item>
</div>
......@@ -377,18 +381,18 @@
<el-row>
<el-col :span="12">
<div class="grid-content">
<el-form-item label="Z位移:" class="form-cell">
<el-form-item label="Z位移:" class="form-cell" prop="bmwyZ">
<div class="cell-box">
<el-input v-model="formData.xxxxx" class="cell-input"></el-input>
<el-input v-model="formData.bmwyZ" class="cell-input"></el-input>
</div>
</el-form-item>
</div>
</el-col>
<el-col :span="12">
<div class="grid-content">
<el-form-item label="孔深(浸润线):" class="form-cell">
<el-form-item label="孔深(浸润线):" class="form-cell" prop="jrxTrepanning">
<div class="cell-box">
<el-input v-model="formData.xxxxx" class="cell-input"></el-input>
<el-input v-model="formData.jrxTrepanning" class="cell-input"></el-input>
</div>
</el-form-item>
</div>
......@@ -397,18 +401,18 @@
<el-row>
<el-col :span="12">
<div class="grid-content">
<el-form-item label="设备深度(浸润线):" class="form-cell">
<el-form-item label="设备深度(浸润线):" class="form-cell" prop="jrxBurial">
<div class="cell-box">
<el-input v-model="formData.xxxxx" class="cell-input"></el-input>
<el-input v-model="formData.jrxBurial" class="cell-input"></el-input>
</div>
</el-form-item>
</div>
</el-col>
<el-col :span="12">
<div class="grid-content">
<el-form-item label="距剖面起始点距离:" class="form-cell">
<el-form-item label="距剖面起始点距离:" class="form-cell" prop="jrxCoordX">
<div class="cell-box">
<el-input v-model="formData.xxxxx" class="cell-input"></el-input>
<el-input v-model="formData.jrxCoordX" class="cell-input"></el-input>
</div>
</el-form-item>
</div>
......@@ -417,18 +421,18 @@
<el-row>
<el-col :span="12">
<div class="grid-content">
<el-form-item label="库水位设备编号:" class="form-cell">
<el-form-item label="干滩库水位设备编号:" class="form-cell" prop="kswequipno">
<div class="cell-box">
<el-input v-model="formData.xxxxx" class="cell-input"></el-input>
<el-input v-model="formData.kswequipno" class="cell-input"></el-input>
</div>
</el-form-item>
</div>
</el-col>
<el-col :span="12">
<div class="grid-content">
<el-form-item label="干滩坡度角:" class="form-cell">
<el-form-item label="干滩坡度角:" class="form-cell" prop="gtwangle">
<div class="cell-box">
<el-input v-model="formData.xxxxx" class="cell-input"></el-input>
<el-input v-model="formData.gtwangle" class="cell-input"></el-input>
</div>
</el-form-item>
</div>
......@@ -437,18 +441,18 @@
<el-row>
<el-col :span="12">
<div class="grid-content">
<el-form-item label="干滩安全超高:" class="form-cell">
<el-form-item label="干滩安全超高:" class="form-cell" prop="gtsafeheight">
<div class="cell-box">
<el-input v-model="formData.xxxxx" class="cell-input"></el-input>
<el-input v-model="formData.gtsafeheight" class="cell-input"></el-input>
</div>
</el-form-item>
</div>
</el-col>
<el-col :span="12">
<div class="grid-content">
<el-form-item label="排水量流速:" class="form-cell">
<el-form-item label="排水量流速:" class="form-cell" prop="pslspeed">
<div class="cell-box">
<el-input v-model="formData.xxxxx" class="cell-input"></el-input>
<el-input v-model="formData.pslspeed" class="cell-input"></el-input>
</div>
</el-form-item>
</div>
......@@ -488,33 +492,100 @@ export default {
size: 10,
total: 0,
query: {},
map: null,
graphicLayer: null,
stuOpts: [
{label: '离线', value: 0},
{label: '在线', value: 1},
{label: '全部', value: undefined},
{label: '离线', value: '离线'},
{label: '在线', value: '在线'},
],
devOpts: [
{label: '干滩', value: 1},
{label: '库水位', value: 2},
{label: '表面位移', value: 3},
{label: '内部位移', value: 4},
{label: '浸润线', value: 5},
{label: '降雨量', value: 6},
{label: '排流量', value: 7},
{label: '水质', value: 8},
{label: '渗流量', value: 9},
{label: '外坡比', value: 16},
],
datOpts:[
{label: '', value: 1},
{label: '', value: 0},
],
sdOptions: [
{label: '一类设备', value: 1},
{label: '二类设备', value: 2},
usedOpts:[
{label: '在用', value: 1},
{label: '不在用', value: 0},
],
eqtOpts:[
{label: '4G设备', value: 0},
{label: 'IP设备', value: 1},
{label: 'mqtt设备', value: 2},
],
bjOpts:[
{label: '报警', value: 1},
{label: '不报警', value: 0},
],
ssOpts: [
{label: 'gnss', value: 0},
{label: '超声', value: 1},
{label: '投入式水位计或渗压计', value: 2},
{label: '沉降', value: 3},
{label: '雨量', value: 5},
{label: '测斜', value: 7},
],
tableData: [],
formData: {
lng: '',
lat: '',
name: '',
devType: '',
devNo: '',
devUnit: '',
installDate: '',
manufactor: '',
longitude: '',
latitude: '',
equipname: '',
equipno: '',
devicetype: '',
eqdanwei: '',
installationdata: '',
manufacture: '',
datumpoint: 0,
installheight: '',
electricitysupply: '',
accuracy: '',
altitude: '',
onelevelalarm: '',
twolevelalarm: '',
threelevelalarm: '',
fourlevelalarm: '',
isUsed: '',
ipaddress: '',
eqtype: '',
initial: '',
initialx: '',
initialy: '',
initialz: '',
state: '',
burialDepth: '',
checkperiod: '',
sensortype: '',
bmwyX: '',
bmwyY: '',
bmwyZ: '',
jrxTrepanning: '',
jrxBurial: '',
jrxCoordX: '',
kswequipno: '',
gtwangle: '',
gtsafeheight: '',
pslspeed: '',
},
rules: {
lng: {required: true, message: '请在地图上放置设备', trigger: 'blur'},
name: {required: true, message: ' ', trigger: 'blur'},
devType: {required: true, message: ' ', trigger: 'blur'},
devNo: {required: true, message: ' ', trigger: 'blur'},
devUnit: {required: true, message: ' ', trigger: 'blur'},
installDate: {required: true, message: ' ', trigger: 'blur'},
manufactor: {required: true, message: ' ', trigger: 'blur'},
longitude: {required: true, message: '请在地图上放置设备', trigger: 'blur'},
equipname: {required: true, message: ' ', trigger: 'blur'},
equipno: {required: true, message: ' ', trigger: 'blur'},
devicetype: {required: true, message: ' ', trigger: 'blur'},
eqdanwei: {required: true, message: ' ', trigger: 'blur'},
installationdata: {required: true, message: ' ', trigger: 'blur'},
manufacture: {required: true, message: ' ', trigger: 'blur'},
datumpoint: {required: true, message: ' ', trigger: 'blur'},
},
}
},
......@@ -524,6 +595,15 @@ export default {
})
},
methods: {
formatOpt(arr,val){
let str='';
arr.forEach((item)=>{
if(item.value==val){
str = item.label;
}
});
return str;
},
onMapload(map) {
map.unbindContextMenu();
var graphicLayer = new mars3d.layer.GraphicLayer();
......@@ -551,12 +631,14 @@ export default {
graphicLayer.addGraphic(graphic);
map.on(mars3d.EventType.click, (event) => {
let p = mars3d.LngLatPoint.fromCartesian(event.cartesian);
this.formData.lng = p.lng;
this.formData.lat = p.lat;
this.formData.longitude = p.lng;
this.formData.latitude = p.lat;
graphicLayer.eachGraphic((graphic) => {
graphic.addDynamicPosition(Cesium.Cartesian3.fromDegrees(p.lng, p.lat, 0), 0)
})
});
this.map = map;
this.graphicLayer = graphicLayer;
},
loadData() {
var sort = 'id,desc';
......@@ -566,7 +648,7 @@ export default {
param.sort = sort;
this.$nextTick(() => {
//获取安检信息
HttpReq.truckDispatching.ajReportListFind(param).then((res) => {
HttpReq.truckDispatching.slopeGetDeviceList(param).then((res) => {
if (res.code == 200) {
this.loading = false;
this.tableData = res.data.records;
......@@ -579,10 +661,21 @@ export default {
this.title = '新增';
this.visible = true;
},
toEdit() {
toEdit(item) {
HttpReq.truckDispatching.slopeGetDevice({id:item.id}).then((res) => {
if (res.code == 200) {
this.title = '编辑';
this.visible = true;
this.formData = res.data;
setTimeout(() => {
this.graphicLayer.eachGraphic((graphic) => {
graphic.addDynamicPosition(Cesium.Cartesian3.fromDegrees(this.formData.longitude, this.formData.latitude, 0), 0)
})
this.map.setCameraView({ lat: this.formData.latitude, lng: this.formData.longitude });
},5000)
}
})
},
toDelete(item) {
var id = item.id;
this.$confirm('确认删除该条数据吗?', '提示', {
......@@ -590,8 +683,15 @@ export default {
cancelButtonText: '取消',
type: 'warning'
}).then((e) => {
}).catch((e) => {
HttpReq.truckDispatching.slopeDeleteDevice({id}).then((res) => {
if (res.code == 200) {
this.$message({
message: res.msg,
type: 'success'
});
this.loadData();
}
})
})
},
cancelForm() {
......@@ -622,12 +722,29 @@ export default {
submitForm(validateName, item) {
this.$refs[validateName].validate(valid => {
if (valid) {
// if (this.title === '新增') {
// this.reqAddItem(this.form, item)
// } else {
// this.reqUpdateItem(this.form, item)
// }
alert(9999);
if (this.title === '新增') {
HttpReq.truckDispatching.slopePostDevice(item).then((res) => {
if (res.code == 200) {
this.$message({
message: res.msg,
type: 'success'
});
this.cancelForm();
this.loadData()
}
})
} else {
HttpReq.truckDispatching.slopePutDevice(item).then((res) => {
if (res.code == 200) {
this.$message({
message: res.msg,
type: 'success'
});
this.cancelForm();
this.loadData()
}
})
}
}
});
},
......@@ -657,7 +774,9 @@ export default {
//border: 1px solid rgba(100, 100, 100, 0.1);
padding: 5px 30px;
}
.cell-box {
min-width: 120px;
}
.cell-box .el-input__inner {
border: 1px solid rgba(100, 100, 100, 0.1);
}
......
......@@ -6,14 +6,14 @@
<div class="head-container">
<!-- 搜索 -->
<label class="el-form-item-label" style="font-weight: 500;">设备号</label>
<el-input v-model="query.formId" clearable size="small" placeholder="请输入设备号" style="width:180px;"/>
<el-input v-model="query.sensorId" clearable size="small" placeholder="请输入设备号" style="width:180px;"/>
<label class="el-form-item-label" style="font-weight: 500;">报警状态</label>
<el-select v-model="query.stu" placeholder="请选择">
<el-select v-model="query.alarmStatus" placeholder="请选择">
<el-option v-for="item in stuOpts" :key="item.value" :label="item.label" :value="item.value"></el-option>
</el-select>
<label class="el-form-item-label" style="font-weight: 500;">日期范围</label>
<el-date-picker
v-model="query.createTime"
v-model="query.timeList"
type="datetimerange"
value-format="yyyy-MM-dd HH:MM:SS"
range-separator="至"
......@@ -32,18 +32,22 @@
<div class="content-fix">
<div class="toolbar" style="text-align:right">
<el-button size="mini" type="primary" icon="el-icon-refresh" @click="loadData">刷新</el-button>
<el-button size="mini" type="success" icon="el-icon-s-data" @click="toAdd">图表</el-button>
<el-button size="mini" type="warning" icon="el-icon-document" @click="toAdd">导出</el-button>
<el-button size="mini" type="success" icon="el-icon-s-data" @click="charstView">图表</el-button>
<el-button size="mini" type="warning" icon="el-icon-document" @click="downloadFile">导出</el-button>
</div>
<div class="content">
<el-table :data="tableData" v-loading="loading" border style="width:auto" :row-class-name="tableRowClassName">
<el-table-column prop="formId" label="设备名称" align="center"></el-table-column>
<el-table-column prop="username" label="设备编号" align="center"></el-table-column>
<el-table-column prop="carNo" label="x变化量" align="center"></el-table-column>
<el-table-column prop="carClass" label="y变化量" align="center"></el-table-column>
<el-table-column prop="createTime" label="z变化量" align="center"></el-table-column>
<el-table-column prop="createTime" label="是否报警" align="center"></el-table-column>
<el-table-column prop="createTime" label="监测时间" align="center"></el-table-column>
<el-table-column prop="sensorname" label="设备名称" align="center"></el-table-column>
<el-table-column prop="sensorid" label="设备编号" align="center"></el-table-column>
<el-table-column prop="dispX" label="x变化量" align="center"></el-table-column>
<el-table-column prop="dispY" label="y变化量" align="center"></el-table-column>
<el-table-column prop="dispH" label="z变化量" align="center"></el-table-column>
<el-table-column prop="state" label="是否报警" align="center">
<template slot-scope="scope">
<span>{{ scope.row.state?'报警':'正常'}}</span>
</template>
</el-table-column>
<el-table-column prop="time" label="监测时间" align="center"></el-table-column>
</el-table>
<!--分页组件-->
<el-pagination :total="total" :current-page="page" style="margin-top: 8px;"
......@@ -55,10 +59,27 @@
</div>
</div>
<!-- 表单渲染 -->
<el-dialog append-to-body :close-on-click-modal="false" :before-close="cancelForm" :visible.sync="visible" :title="title" width="800px">
<el-dialog append-to-body :close-on-click-modal="false" :before-close="cancelForm" :visible="visible" :title="title" width="1200px">
<div class="head-container">
<!-- 搜索 -->
<label class="el-form-item-label" style="font-weight: 500;">当前设备:</label>
<el-select v-model="search.sensorId" placeholder="请选择">
<el-option v-for="item in devList" :key="item.value" :label="item.label" :value="item.value"></el-option>
</el-select>
<label class="el-form-item-label" style="font-weight: 500;">日期范围</label>
<el-date-picker
v-model="search.timeList"
type="datetimerange"
value-format="yyyy-MM-dd HH:MM:SS"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期">
</el-date-picker>
<el-button size="mini" type="success" icon="el-icon-search" @click="toSearchDev">搜索</el-button>
</div>
<div id="chartPanel" style="width:100%;height: 600px;"></div>
<div slot="footer" class="dialog-footer">
<el-button type="text" @click="cancelForm">取消</el-button>
<el-button type="primary" @click="submitForm('formViewRef', formData)">确认</el-button>
<el-button @click="cancelForm">关闭</el-button>
</div>
</el-dialog>
......@@ -67,16 +88,10 @@
<script>
import {Tools, HttpReq, Dates} from '@/assets/js/common.js';
import mars3dViewerMap from "../../../components/mars3d/Map5.vue";
import * as mars3d from "mars3d";
import * as Cesium from "mars3d-cesium";
import kongzhidiantubiao from "../../../assets/images/cutGraph/kongzhidian1.png";
import * as echarts from 'echarts';
export default {
name: 'surfaceDisplacementLog',
components: {
mars3dViewerMap,
},
data() {
const basePathUrl = window.basePathUrl || ''
return {
......@@ -85,14 +100,21 @@ export default {
visible: false,
loading: false,
stuOpts: [
{label: '离线', value: 0},
{label: '在线', value: 1},
{label: '全部', value: undefined},
{label: '报警', value: 1},
{label: '正常', value: 0},
],
page: 1,
size: 10,
total: 0,
query: {},
tableData: [],
search: {
sensorId: '',
timeList: '',
},
devList: [],
myChart: null,
}
},
mounted() {
......@@ -107,9 +129,12 @@ export default {
param.page = this.page - 1;
param.pageSize = this.size;
param.sort = sort;
if(param.timeList && param.timeList.length){
param.startTime = param.timeList[0];
param.endTime = param.timeList[1];
}
this.$nextTick(() => {
//获取安检信息
HttpReq.truckDispatching.ajReportListFind(param).then((res) => {
HttpReq.truckDispatching.slopeGetMP(param).then((res) => {
if (res.code == 200) {
this.loading = false;
this.tableData = res.data.records;
......@@ -118,24 +143,116 @@ export default {
})
})
},
toAdd() {
this.title = '新增';
charstView() {
this.devList=[];
this.title = '图表';
this.visible = true;
HttpReq.truckDispatching.slopeGetMPdevList().then((res) => {
if (res.code == 200 && res.data) {
res.data.forEach((item)=>{
this.devList.push({
lable: item.equipno,
value: item.equipno,
});
});
this.search.sensorId = this.devList[0].value;
// let d = new Date();
// d.setDate(new Date().getDate() - 30);
// this.search.timeList = [d,new Date()]
this.toSearchDev();
}
})
},
toEdit() {
toSearchDev(){
var param = this.search;
if(param.timeList && param.timeList.length){
param.startTime = param.timeList[0];
param.endTime = param.timeList[1];
}
this.$nextTick(() => {
HttpReq.truckDispatching.slopeGetMPdevData(param).then((res) => {
if (res.code == 200 && res.data) {
let option = {
color: [
'#ff3c3c',
'#ffd700',
'#00bfff',
],
tooltip: {
trigger: 'axis',
position: function (pt) {
return [pt[0], '10%'];
}
},
toolbox: {
show: true,
feature: {
dataView: { show: false },
magicType: { type: ['line', 'bar'] },
restore: { show: false },
saveAsImage: { show: false },
dataZoom: { show: false },
}
},
legend: {
data: ['X', 'Y', 'Z']
},
xAxis: {
type: 'time',
boundaryGap: false,
splitLine:{
show:false,
}
},
yAxis: {
type: 'value',
boundaryGap: [0, '100%'],
axisLine:{
show:false,
}
},
dataZoom: [
{
show: true,
realtime: true,
start: 0,
end: 100,
moveOnMouseMove: false,
},
{
type: 'inside',
realtime: true,
start: 0,
end: 100,
moveOnMouseMove: false,
}
],
series: [
{
name: 'X',
type: 'line',
data: res.data.x
},
{
name: 'Y',
type: 'line',
data: res.data.y
},
{
name: 'Z',
type: 'line',
data: res.data.z
}
]
};
let myChart = echarts.init(document.getElementById('chartPanel'));
myChart.setOption(option);
}
})
})
},
downloadFile() {
toDelete(item) {
var id = item.id;
this.$confirm('确认删除该条数据吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then((e) => {
}).catch((e) => {
})
},
cancelForm() {
this.visible = false;
......@@ -161,18 +278,6 @@ export default {
this.size = e
this.loadData()
},
submitForm(validateName, item) {
this.$refs[validateName].validate(valid => {
if (valid) {
// if (this.title === '新增') {
// this.reqAddItem(this.form, item)
// } else {
// this.reqUpdateItem(this.form, item)
// }
alert(9999);
}
});
},
},
}
</script>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment