监控管理修改

product
chuang 2 years ago
parent 17a49f2b53
commit 76e3cc230a

@ -6,6 +6,8 @@ import cn.afterturn.easypoi.excel.ExcelExportUtil;
import cn.afterturn.easypoi.excel.entity.ExportParams; import cn.afterturn.easypoi.excel.entity.ExportParams;
import cn.afterturn.easypoi.excel.entity.enmus.ExcelType; import cn.afterturn.easypoi.excel.entity.enmus.ExcelType;
import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity; import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity;
import cn.hutool.json.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import jnpf.base.ActionResult; import jnpf.base.ActionResult;
@ -18,6 +20,7 @@ import jnpf.exception.DataException;
import jnpf.monitorItem.entity.Monitoring_itemEntity; import jnpf.monitorItem.entity.Monitoring_itemEntity;
import jnpf.monitorItem.model.monitoring_item.*; import jnpf.monitorItem.model.monitoring_item.*;
import jnpf.monitorItem.service.Monitoring_itemService; import jnpf.monitorItem.service.Monitoring_itemService;
import jnpf.monitorItem.utils.ImouConfig;
import jnpf.util.*; import jnpf.util.*;
import jnpf.util.enums.FileTypeEnum; import jnpf.util.enums.FileTypeEnum;
import jnpf.util.file.UploadUtil; import jnpf.util.file.UploadUtil;
@ -33,6 +36,7 @@ import javax.validation.Valid;
import java.io.FileOutputStream; import java.io.FileOutputStream;
import java.io.IOException; import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -47,7 +51,7 @@ import java.util.Map;
@Slf4j @Slf4j
@RestController @RestController
@Api(tags = "监控管理" , value = "example") @Api(tags = "监控管理" , value = "example")
@RequestMapping("/api/example/monitoringItem") @RequestMapping("/api/example/Jg_monitoring_item0")
public class Monitoring_itemController { public class Monitoring_itemController {
@Autowired @Autowired
@ -61,8 +65,70 @@ public class Monitoring_itemController {
@Autowired @Autowired
private Monitoring_itemService monitoring_itemService; private Monitoring_itemService monitoring_itemService;
@ApiOperation("更新摄像头视频流地址")
@GetMapping("/updateMonitoring")
public ActionResult updateMonitoring() throws Exception {
// 查询rtmp协议直播地址
// String URL="https://openapi.lechange.cn/openapi/queryDeviceRtmpLive";
// 获取管理员token
ImouConfig config = new ImouConfig();
String accessToken = config.getAccessToken();
// 获取设备的列表信息
// config.getList(accessToken);
// 批量创建设备flv直播支持录像直播和实时直播
// for (int i = 0; i < 32; i++) {
// config.createFlvLive(accessToken,i+"");
// }
////获取开发者当前账号下创建的直播详情列表,包含直播地址、直播状态、直播计划等详细信息。
// config.getLiveList(accessToken);
for (int i = 0; i < 32; i++) {
// 1 根据通道号获取地址
JSONObject flvLive = config.getFlvLive(accessToken, i+"");
// flv标清直播
String flv = String.valueOf(flvLive.get("flv"));
// flv高清直播
String flvHD = String.valueOf(flvLive.get("flvHD"));
// 设备序列号
String deviceId = String.valueOf(flvLive.get("deviceId"));
// 设备通道号
String channelId = String.valueOf(flvLive.get("channelId"));
Monitoring_itemEntity monitor = new Monitoring_itemEntity();
// 设置区域为日照金属
monitor.setMonitoringId("1");
monitor.setMName("NVR-3FA0-"+i);
monitor.setSerialnumber(deviceId);
monitor.setMStatus("1");
monitor.setFlvAddress(flv);
monitor.setFlvHdAddress(flvHD);
monitor.setChannelNumber(channelId);
// boolean save = monitoring_itemService.save(monitor);
// 2 查询本地表中此通道是否存在
LambdaQueryWrapper<Monitoring_itemEntity> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(Monitoring_itemEntity::getChannelNumber,channelId);
Monitoring_itemEntity one = monitoring_itemService.getOne(wrapper);
if (one!=null){
// 3 存在根据返回的id进行更新
monitor.setMName(null);
monitor.setLastModifyUserId("1");
monitor.setLastModifyUserName("admin");
monitor.setLastModifyTime(new Date());
monitoring_itemService.update(monitor,wrapper);
}else{
// 4 不存在进行保存
monitor.setCreatorTime(new Date());
monitor.setCreatorUserId("1");
monitor.setCreatorUserName("admin");
monitoring_itemService.save(monitor);
}
}
return ActionResult.success("成功");
}
/** /**
@ -71,6 +137,7 @@ public class Monitoring_itemController {
* @param monitoring_itemPagination * @param monitoring_itemPagination
* @return * @return
*/ */
@ApiOperation("列表")
@PostMapping("/getList") @PostMapping("/getList")
public ActionResult list(@RequestBody Monitoring_itemPagination monitoring_itemPagination)throws IOException{ public ActionResult list(@RequestBody Monitoring_itemPagination monitoring_itemPagination)throws IOException{
List<Monitoring_itemEntity> list= monitoring_itemService.getList(monitoring_itemPagination); List<Monitoring_itemEntity> list= monitoring_itemService.getList(monitoring_itemPagination);

@ -2,6 +2,7 @@ package jnpf.monitorItem.entity;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data; import lombok.Data;
@ -51,6 +52,7 @@ public class Monitoring_itemEntity {
private Date deleteTime; private Date deleteTime;
@TableField("DELETE_MARK") @TableField("DELETE_MARK")
@TableLogic
private String deleteMark; private String deleteMark;
@TableField("ORGNIZE_ID") @TableField("ORGNIZE_ID")
@ -71,16 +73,16 @@ public class Monitoring_itemEntity {
@TableField("M_STATUS") @TableField("M_STATUS")
private String mStatus; private String mStatus;
@TableField("FLV_ADDRESS") @TableField("flvAddress")
private String flvAddress; private String flvAddress;
@TableField("FLV_HD_ADDRESS") @TableField("flvHdAddress")
private String flvHdAddress; private String flvHdAddress;
@TableField("CHANNEL_NUMBER") @TableField("channelNumber")
private String channelNumber; private String channelNumber;
@TableField("IS_ENABLE") @TableField("isEnable")
private String isEnable; private String isEnable;
} }

@ -9,6 +9,8 @@ import jnpf.util.Md5Util;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import okhttp3.*; import okhttp3.*;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.io.IOException; import java.io.IOException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
@ -17,7 +19,7 @@ import java.util.Calendar;
import java.util.Date; import java.util.Date;
@Slf4j @Slf4j
//@Component @Component
public class ImouConfig { public class ImouConfig {
private String appSecret="189fec75174e487684a16c49dd1789"; private String appSecret="189fec75174e487684a16c49dd1789";
@ -34,10 +36,9 @@ public class ImouConfig {
// id请求唯一标示ID每次请求调用时传入唯一非空字符串 // id请求唯一标示ID每次请求调用时传入唯一非空字符串
private String id="98a7a257-c4e4-4db3-a2d3-d97a3836b87c"; private String id="98a7a257-c4e4-4db3-a2d3-d97a3836b87c";
// @Resource @Autowired
private Monitoring_itemService monitoring_itemService; private Monitoring_itemService monitoring_itemService;
// 设备序列号 // 设备序列号
private String deviceId="5K0A36BPAZ73FA0"; private String deviceId="5K0A36BPAZ73FA0";
@Test @Test

@ -13,57 +13,63 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24" > <el-col :span="24" >
<el-form-item label="设备序列号" <el-form-item label="区域"
prop="serialnumber" > prop="monitoringId" >
<p>{{dataForm.serialnumber}}</p> <p>{{dataForm.monitoringId}}</p>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24" > <el-col :span="24" >
<el-form-item label="ip地址" <el-form-item label="设备状态:"
prop="ip" > prop="mStatus" >
<p>{{dataForm.ip}}</p> <p>{{ dataForm.mStatus | dynamicText(mStatusOptions) }} </p>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24" > <el-col :span="24" >
<el-form-item label="端口号" <el-form-item label="标清flv直播地址"
prop="port" > prop="flvAddress" >
<p>{{dataForm.port}}</p> <p>{{dataForm.flvAddress}}</p>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24" > <el-col :span="24" >
<el-form-item label="账号" <el-form-item label="高清flv直播地址"
prop="account" > prop="flvHdAddress" >
<p>{{dataForm.account}}</p> <p>{{dataForm.flvHdAddress}}</p>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24" > <el-col :span="24" >
<el-form-item label="密码" <el-form-item label="设备通道号"
prop="password" > prop="channelNumber" >
<p>{{dataForm.password}}</p> <p>{{dataForm.channelNumber}}</p>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24" > <el-col :span="24" >
<el-form-item label="创建人名称" <el-form-item label="是否显示"
prop="creatorusername" > prop="isEnable" >
<p>{{dataForm.creatorusername}}</p> <p>{{ dataForm.isEnable | dynamicText(isEnableOptions) }} </p>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24" > <el-col :span="24" >
<el-form-item label="创建时间" <el-form-item label="修改时间"
prop="creatortime" > prop="lastmodifytime" >
<p>{{jnpf.dateFormat(dataForm.creatortime)}}</p> <p>{{jnpf.dateFormat(dataForm.lastmodifytime)}}</p>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24" > <el-col :span="24" >
<el-form-item label="修改人名称" <el-form-item label="修改人id"
prop="lastmodifyusername" > prop="deleteUserId" >
<p>{{dataForm.lastmodifyusername}}</p> <p>{{dataForm.deleteUserId}}</p>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24" > <el-col :span="24" >
<el-form-item label="修改时间" <el-form-item label="创建人名称"
prop="lastmodifytime" > prop="creatorUserName" >
<p>{{jnpf.dateFormat(dataForm.lastmodifytime)}}</p> <p>{{dataForm.creatorUserName}}</p>
</el-form-item>
</el-col>
<el-col :span="24" >
<el-form-item label="创建时间"
prop="creatorTime" >
<p>{{jnpf.dateFormat(dataForm.creatorTime)}}</p>
</el-form-item> </el-form-item>
</el-col> </el-col>
</template> </template>
@ -90,16 +96,20 @@
dataForm: { dataForm: {
id :'', id :'',
mName : '', mName : '',
monitoringId : "",
serialnumber : '', serialnumber : '',
ip : '', mStatus : "0",
port : '', flvAddress : '',
account : '', flvHdAddress : '',
password : '', channelNumber : '',
creatorusername : '', isEnable : "0",
creatortime : '',
lastmodifyusername : '',
lastmodifytime : '', lastmodifytime : '',
deleteUserId : '',
creatorUserName : '',
creatorTime : '',
}, },
mStatusOptions:[{"fullName":"在线","id":"1"},{"fullName":"不在线","id":"0"}],
isEnableOptions:[{"fullName":"显示","id":"1"},{"fullName":"不显示","id":"0"}],
} }
}, },
@ -122,7 +132,7 @@
if(this.dataForm.id){ if(this.dataForm.id){
this.loading = true this.loading = true
request({ request({
url: '/api/monitormanage/Monitormanage/detail/'+this.dataForm.id, url: '/api/example/Jg_monitoring_item0/detail/'+this.dataForm.id,
method: 'get' method: 'get'
}).then(res => { }).then(res => {
this.dataInfo(res.data) this.dataInfo(res.data)

@ -1,228 +1,262 @@
<template> <template>
<el-dialog :title="!dataForm.id ? '新建' : isDetail ? '详情':'编辑'" :close-on-click-modal="false" append-to-body <el-dialog :title="!dataForm.id ? '新建' : isDetail ? '详情':'编辑'"
:visible.sync="visible" class="JNPF-dialog JNPF-dialog_center" lock-scroll width="1000px"> :close-on-click-modal="false" append-to-body
<el-row :gutter="15" class=""> :visible.sync="visible" class="JNPF-dialog JNPF-dialog_center" lock-scroll
<el-form ref="elForm" :model="dataForm" :rules="rules" size="small" label-width="100px" width="800px">
label-position="right"> <el-row :gutter="15" class="">
<template v-if="!loading"> <el-form ref="elForm" :model="dataForm" :rules="rules" size="small" label-width="100px" label-position="right" >
<el-col :span="24"> <template v-if="!loading">
<el-form-item label="设备名称" prop="mName"> <el-col :span="24" >
<el-input v-model="dataForm.mName" placeholder="请输入" clearable :style='{"width":"100%"}'> <el-form-item label="设备名称"
prop="mName" >
<el-input v-model="dataForm.mName"
placeholder="请输入设备名称" clearable :style='{"width":"100%"}'>
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24" >
<el-form-item label="设备序列号" prop="serialnumber"> <el-form-item label="区域"
<el-input v-model="dataForm.serialnumber" placeholder="请输入" clearable prop="monitoringId" >
:style='{"width":"100%"}'> <el-select v-model="dataForm.monitoringId"
placeholder="请选择区域" clearable :style='{"width":"100%"}' filterable >
<el-option v-for="(item, index) in monitoringIdOptions" :key="index" :label="item.m_name" :value="item.id" :disabled="item.disabled" ></el-option>
</el-input> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24" >
<el-form-item label="ip地址" prop="ip"> <el-form-item label="设备状态:"
<el-input v-model="dataForm.ip" placeholder="请输入" clearable :style='{"width":"100%"}'> prop="mStatus" >
<el-select v-model="dataForm.mStatus"
placeholder="请选择设备状态" clearable :style='{"width":"100%"}'>
<el-option v-for="(item, index) in mStatusOptions" :key="index" :label="item.fullName" :value="item.id" :disabled="item.disabled" ></el-option>
</el-input> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24" >
<el-form-item label="端口号" prop="port"> <el-form-item label="标清flv直播地址"
<el-input v-model="dataForm.port" placeholder="请输入" clearable :style='{"width":"100%"}'> prop="flvAddress" >
<el-input v-model="dataForm.flvAddress"
placeholder="请输入" readonly clearable :style='{"width":"100%"}'>
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24" >
<el-form-item label="账号" prop="account"> <el-form-item label="高清flv直播地址"
<el-input v-model="dataForm.account" placeholder="请输入" clearable :style='{"width":"100%"}'> prop="flvHdAddress" >
<el-input v-model="dataForm.flvHdAddress"
placeholder="请输入" readonly clearable :style='{"width":"100%"}'>
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24" >
<el-form-item label="密码" prop="password"> <el-form-item label="设备通道号"
<el-input v-model="dataForm.password" placeholder="请输入" clearable :style='{"width":"100%"}'> prop="channelNumber" >
<el-input v-model="dataForm.channelNumber"
placeholder="请输入" readonly clearable :style='{"width":"100%"}'>
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24" >
<el-form-item label="创建人名称" prop="creatorusername"> <el-form-item label="是否显示"
<el-input v-model="dataForm.creatorusername" placeholder="请输入" clearable prop="isEnable" >
:style='{"width":"100%"}'> <el-select v-model="dataForm.isEnable"
placeholder="请选择是否显示" clearable :style='{"width":"100%"}'>
<el-option v-for="(item, index) in isEnableOptions" :key="index" :label="item.fullName" :value="item.id" :disabled="item.disabled" ></el-option>
</el-input> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24" >
<el-form-item label="创建时间" prop="creatortime"> <el-form-item label="修改时间"
<el-date-picker v-model="dataForm.creatortime" placeholder="请选择" clearable prop="lastmodifytime" >
:style='{"width":"100%"}' type="datetime" format="yyyy-MM-dd HH:mm:ss" <el-date-picker v-model="dataForm.lastmodifytime"
value-format="timestamp"> placeholder="请选择" readonly clearable :style='{"width":"100%"}' type="datetime" format="yyyy-MM-dd HH:mm:ss" value-format="timestamp" >
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24" >
<el-form-item label="修改人名称" prop="lastmodifyusername"> <el-form-item label="修改人id"
<el-input v-model="dataForm.lastmodifyusername" placeholder="请输入" clearable prop="deleteUserId" >
:style='{"width":"100%"}'> <el-input v-model="dataForm.deleteUserId"
placeholder="请输入" readonly clearable :style='{"width":"100%"}'>
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24" >
<el-form-item label="修改时间" prop="lastmodifytime"> <el-form-item label="创建人名称"
<el-date-picker v-model="dataForm.lastmodifytime" placeholder="请选择" clearable prop="creatorUserName" >
:style='{"width":"100%"}' type="datetime" format="yyyy-MM-dd HH:mm:ss" <el-input v-model="dataForm.creatorUserName"
value-format="timestamp"> placeholder="请输入" readonly clearable :style='{"width":"100%"}'>
</el-date-picker> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</template> <el-col :span="24" >
</el-form> <el-form-item label="创建时间"
</el-row> prop="creatorTime" >
<span slot="footer" class="dialog-footer"> <el-date-picker v-model="dataForm.creatorTime"
<el-button @click="visible = false"> </el-button> placeholder="请选择" readonly clearable :style='{"width":"100%"}' type="datetime" format="yyyy-MM-dd HH:mm:ss" value-format="timestamp" >
<el-button type="primary" @click="dataFormSubmit()" v-if="!isDetail"> </el-button>
</span> </el-date-picker>
</el-dialog> </el-form-item>
</el-col>
</template>
</el-form>
</el-row>
<span slot="footer" class="dialog-footer">
<el-button @click="visible = false"> </el-button>
<el-button type="primary" @click="dataFormSubmit()" v-if="!isDetail"> </el-button>
</span>
</el-dialog>
</template> </template>
<script> <script>
import request from '@/utils/request' import request from '@/utils/request'
import { import { getDataInterfaceRes } from '@/api/systemData/dataInterface'
getDataInterfaceRes import { getDictionaryDataSelector } from '@/api/systemData/dictionary'
} from '@/api/systemData/dataInterface' export default {
import { components: {},
getDictionaryDataSelector props: [],
} from '@/api/systemData/dictionary' data() {
export default { return {
components: {}, visible: false,
props: [], loading: false,
data() { isDetail: false,
return { dataForm: {
visible: false, mName : '',
loading: false, monitoringId : "",
isDetail: false, serialnumber : '',
dataForm: { mStatus : "0",
mName: '', flvAddress : '',
serialnumber: '', flvHdAddress : '',
ip: '', channelNumber : '',
port: '', isEnable : "0",
account: '', lastmodifytime : '',
password: '', deleteUserId : '',
creatorusername: '', creatorUserName : '',
creatortime: '', creatorTime : '',
lastmodifyusername: '', },
lastmodifytime: '', rules:
}, {
rules: { mName: [
mName: [{ {
required: true, required: true,
message: '请输入', message: '请输入设备名称',
trigger: 'blur' trigger: 'blur'
}, ], },
serialnumber: [{ ],
required: true, },
message: '请输入', monitoringIdOptions:[],
trigger: 'blur' mStatusOptions:[{"fullName":"在线","id":"1"},{"fullName":"不在线","id":"0"}],
}, ], isEnableOptions:[{"fullName":"显示","id":"1"},{"fullName":"不显示","id":"0"}],
},
}
},
computed: {},
watch: {},
created() {
this.getmonitoringIdOptions();
},
mounted() {},
methods: {
getmonitoringIdOptions() {
getDataInterfaceRes('370933183241262469').then(res => {
let data = res.data.data
this.monitoringIdOptions = data
})
},
clearData(data){
for (let key in data) {
if (data[key] instanceof Array) {
data[key] = [];
} else if (data[key] instanceof Object) {
this.clearData(data[key]);
} else {
data[key] = "";
}
}
},
init(id, isDetail) {
this.dataForm.id = id || 0;
this.visible = true;
this.isDetail = isDetail || false;
this.$nextTick(() => {
this.$refs['elForm'].resetFields();
if(this.dataForm.id){
this.loading = true
request({
url: '/api/example/Jg_monitoring_item0/'+this.dataForm.id,
method: 'get'
}).then(res => {
this.dataInfo(res.data)
this.loading = false
});
}else{
this.clearData(this.dataForm)
}
});
this.$store.commit('generator/UPDATE_RELATION_DATA', {})
},
//
dataFormSubmit() {
this.$refs['elForm'].validate((valid) => {
if (valid) {
this.request()
}
})
},
request() {
var _data =this.dataList()
if (!this.dataForm.id) {
request({
url: '/api/example/Jg_monitoring_item0',
method: 'post',
data: _data
}).then((res) => {
this.$message({
message: res.msg,
type: 'success',
duration: 1000,
onClose: () => {
this.visible = false
this.$emit('refresh', true)
}
})
})
}else{
request({
url: '/api/example/Jg_monitoring_item0/'+this.dataForm.id,
method: 'PUT',
data: _data
}).then((res) => {
this.$message({
message: res.msg,
type: 'success',
duration: 1000,
onClose: () => {
this.visible = false
this.$emit('refresh', true)
}
})
})
}
},
dataList(){
var _data = JSON.parse(JSON.stringify(this.dataForm));
return _data;
},
dataInfo(dataAll){
let _dataAll =dataAll
this.dataForm = _dataAll
},
},
}
}
},
computed: {},
watch: {},
created() {},
mounted() {},
methods: {
clearData(data) {
for (let key in data) {
if (data[key] instanceof Array) {
data[key] = [];
} else if (data[key] instanceof Object) {
this.clearData(data[key]);
} else {
data[key] = "";
}
}
},
init(id, isDetail) {
this.dataForm.id = id || 0;
this.visible = true;
this.isDetail = isDetail || false;
this.$nextTick(() => {
this.$refs['elForm'].resetFields();
if (this.dataForm.id) {
this.loading = true
request({
url: '/api/monitormanage/Monitormanage/' + this.dataForm.id,
method: 'get'
}).then(res => {
this.dataInfo(res.data)
this.loading = false
});
} else {
this.clearData(this.dataForm)
}
});
this.$store.commit('generator/UPDATE_RELATION_DATA', {})
},
//
dataFormSubmit() {
this.$refs['elForm'].validate((valid) => {
if (valid) {
this.request()
}
})
},
request() {
var _data = this.dataList()
if (!this.dataForm.id) {
request({
url: '/api/monitormanage/Monitormanage',
method: 'post',
data: _data
}).then((res) => {
this.$message({
message: res.msg,
type: 'success',
duration: 1000,
onClose: () => {
this.visible = false
this.$emit('refresh', true)
}
})
})
} else {
request({
url: '/api/monitormanage/Monitormanage/' + this.dataForm.id,
method: 'PUT',
data: _data
}).then((res) => {
this.$message({
message: res.msg,
type: 'success',
duration: 1000,
onClose: () => {
this.visible = false
this.$emit('refresh', true)
}
})
})
}
},
dataList() {
var _data = JSON.parse(JSON.stringify(this.dataForm));
return _data;
},
dataInfo(dataAll) {
let _dataAll = dataAll
this.dataForm = _dataAll
},
},
}
</script> </script>

@ -1,300 +1,285 @@
<template> <template>
<div class="JNPF-common-layout"> <div class="JNPF-common-layout">
<div class="JNPF-common-layout-center"> <div class="JNPF-common-layout-center">
<el-row class="JNPF-common-search-box" :gutter="16"> <el-row class="JNPF-common-search-box" :gutter="16">
<el-form @submit.native.prevent> <el-form @submit.native.prevent>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="设备名称"> <el-form-item label="设备名称">
<el-input v-model="query.mName" placeholder="请输入" clearable> </el-input> <el-input v-model="query.mName" placeholder="请输入" clearable> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item> <el-form-item label="区域">
<el-button type="primary" icon="el-icon-search" @click="search()"></el-button> <el-select v-model="query.monitoringId" placeholder="请选择区域"
<el-button icon="el-icon-refresh-right" @click="reset()"></el-button> clearable>
</el-form-item> <el-option v-for="(item, index) in monitoringIdOptions" :key="index"
</el-col> :label="item.m_name" :value="item.id"
</el-form> :disabled="item.disabled"></el-option>
</el-row> </el-select>
<div class="JNPF-common-layout-main JNPF-flex-main"> </el-form-item>
<div class="JNPF-common-head"> </el-col>
<div> <el-col :span="6">
<el-button type="primary" icon="el-icon-plus" @click="addOrUpdateHandle()"> <el-form-item>
</el-button> <el-button type="primary" icon="el-icon-search" @click="search()"></el-button>
<el-button type="text" icon="el-icon-download" @click="exportData()"> <el-button icon="el-icon-refresh-right" @click="reset()"></el-button>
</el-button> </el-form-item>
<el-button type="text" icon="el-icon-delete" @click="handleBatchRemoveDel()"> </el-col>
</el-button> </el-form>
</div> </el-row>
<div class="JNPF-common-head-right"> <div class="JNPF-common-layout-main JNPF-flex-main">
<el-tooltip effect="dark" content="刷新" placement="top"> <div class="JNPF-common-head">
<el-link icon="icon-ym icon-ym-Refresh JNPF-common-head-icon" :underline="false" <div>
@click="reset()" /> <el-button type="primary" icon="el-icon-plus" @click="addOrUpdateHandle()">
</el-tooltip> </el-button>
<screenfull isContainer /> <el-button type="text" icon="el-icon-download" @click="exportData()" >导出
</div> </el-button>
</div> <el-button type="text" icon="el-icon-delete" @click="handleBatchRemoveDel()" >批量删除
<JNPF-table v-loading="listLoading" :data="list" @sort-change='sortChange' has-c </el-button>
@selection-change="handleSelectionChange"> </div>
<el-table-column prop="mName" label="设备名称" width="0" align="left" /> <div class="JNPF-common-head-right">
<el-table-column prop="serialnumber" label="设备序列号" width="0" align="left" /> <el-tooltip effect="dark" content="刷新" placement="top">
<el-table-column prop="ip" label="ip地址" width="0" align="left" /> <el-link icon="icon-ym icon-ym-Refresh JNPF-common-head-icon" :underline="false"
<el-table-column prop="port" label="端口号" width="0" align="left" /> @click="reset()"/>
<el-table-column prop="account" label="账号" width="0" align="left" /> </el-tooltip>
<el-table-column prop="password" label="密码" width="0" align="left" /> <screenfull isContainer/>
<el-table-column prop="creatorusername" label="创建人名称" width="0" align="left" /> </div>
<el-table-column prop="creatortime" label="创建时间" width="0" align="left" /> </div>
<el-table-column prop="lastmodifyusername" label="修改人名称" width="0" align="left" /> <JNPF-table v-loading="listLoading" :data="list" @sort-change='sortChange' has-c @selection-change="handleSelectionChange">
<el-table-column prop="lastmodifytime" label="修改时间" width="0" align="left" /> <el-table-column prop="mName" label="设备名称" width="0" align="left"
<el-table-column label="操作" fixed="right" width="100"> />
<template slot-scope="scope"> <el-table-column prop="serialnumber" label="设备序列号" width="0" align="left"
<el-button type="text" @click="addOrUpdateHandle(scope.row.id)"> />
</el-button> <el-table-column prop="monitoringId" label="区域" width="0" align="left"
<el-button type="text" class="JNPF-table-delBtn" @click="handleDel(scope.row.id)"> />
</el-button> <el-table-column label="设备状态:" width="0" prop="mStatus" algin="left"
</template> >
</el-table-column> <template slot-scope="scope">
</JNPF-table> {{ scope.row.mStatus | dynamicText(mStatusOptions) }}
<pagination :total="total" :page.sync="listQuery.currentPage" :limit.sync="listQuery.pageSize" </template>
@pagination="initData" /> </el-table-column>
</div> <el-table-column prop="channelNumber" label="设备通道号" width="0" align="left"
</div> />
<JNPF-Form v-if="formVisible" ref="JNPFForm" @refresh="refresh" /> <el-table-column label="是否显示" width="0" prop="isEnable" algin="left"
<ExportBox v-if="exportBoxVisible" ref="ExportBox" @download="download" /> >
<Detail v-if="detailVisible" ref="Detail" @refresh="detailVisible=false" /> <template slot-scope="scope">
</div> {{ scope.row.isEnable | dynamicText(isEnableOptions) }}
</template>
</el-table-column>
<el-table-column label="操作" fixed="right"
width="100" >
<template slot-scope="scope">
<el-button type="text"
@click="addOrUpdateHandle(scope.row.id)" >编辑
</el-button>
<el-button type="text" class="JNPF-table-delBtn" @click="handleDel(scope.row.id)">
</el-button>
</template>
</el-table-column>
</JNPF-table>
<pagination :total="total" :page.sync="listQuery.currentPage" :limit.sync="listQuery.pageSize" @pagination="initData"/>
</div>
</div>
<JNPF-Form v-if="formVisible" ref="JNPFForm" @refresh="refresh"/>
<ExportBox v-if="exportBoxVisible" ref="ExportBox" @download="download"/>
<Detail v-if="detailVisible" ref="Detail" @refresh="detailVisible=false"/>
</div>
</template> </template>
<script> <script>
import request from '@/utils/request' import request from '@/utils/request'
import { import {getDictionaryDataSelector} from '@/api/systemData/dictionary'
getDictionaryDataSelector import JNPFForm from './Form'
} from '@/api/systemData/dictionary' import ExportBox from './ExportBox'
import JNPFForm from './Form' import {getDataInterfaceRes} from '@/api/systemData/dataInterface'
import ExportBox from './ExportBox' import Detail from './Detail'
import {
getDataInterfaceRes
} from '@/api/systemData/dataInterface'
import Detail from './Detail'
export default { export default {
components: { components: {JNPFForm, ExportBox,Detail},
JNPFForm, data() {
ExportBox, return {
Detail detailVisible: false,
}, query: {
data() { mName:undefined,
return { monitoringId:undefined,
detailVisible: false, },
query: { treeProps: {
mName: undefined, children: 'children',
}, label: 'fullName',
treeProps: { value: 'id'
children: 'children', },
label: 'fullName', list: [],
value: 'id' listLoading: true,
}, multipleSelection: [], total: 0,
list: [], listQuery: {
listLoading: true, currentPage: 1,
multipleSelection: [], pageSize: 20,
total: 0, sort: "desc",
listQuery: { sidx: "lastmodifytime",
currentPage: 1, },
pageSize: 20, formVisible: false,
sort: "desc", exportBoxVisible: false,
sidx: "", columnList: [
}, {prop: 'mName', label: '设备名称'},
formVisible: false, {prop: 'serialnumber', label: '设备序列号'},
exportBoxVisible: false, {prop: 'monitoringId', label: '区域'},
columnList: [{ {prop: 'mStatus', label: '设备状态:'},
prop: 'mName', {prop: 'channelNumber', label: '设备通道号'},
label: '设备名称' {prop: 'isEnable', label: '是否显示'},
}, ],
{ monitoringIdOptions:[],
prop: 'serialnumber', monitoringIdProps:{"label":"m_name","value":"id"},
label: '设备序列号' mStatusOptions:[{"fullName":"在线","id":"1"},{"fullName":"不在线","id":"0"}],
}, mStatusProps:{"label":"fullName","value":"id"},
{ isEnableOptions:[{"fullName":"显示","id":"1"},{"fullName":"不显示","id":"0"}],
prop: 'ip', isEnableProps:{"label":"fullName","value":"id"},
label: 'ip地址' }
}, },
{ computed: {
prop: 'port', menuId() {
label: '端口号' return this.$route.meta.modelId || ''
}, }
{ },
prop: 'account', created() {
label: '账号' this.initData()
}, this.getmonitoringIdOptions();
{ },
prop: 'password', methods: {
label: '密码' getmonitoringIdOptions() {
}, getDataInterfaceRes('370933183241262469').then(res => {
{ let data = res.data.data
prop: 'creatorusername', this.monitoringIdOptions = data
label: '创建人名称' })
}, },
{ goDetail(id){
prop: 'creatortime', this.detailVisible = true
label: '创建时间' this.$nextTick(() => {
}, this.$refs.Detail.init(id)
{ })
prop: 'lastmodifyusername', },
label: '修改人名称' sortChange({column, prop, order}) {
}, this.listQuery.sort = order == 'ascending' ? 'asc' : 'desc'
{ this.listQuery.sidx = !order ? '' : prop
prop: 'lastmodifytime', this.initData()
label: '修改时间' },
}, initData() {
], this.listLoading = true;
} let _query = {
}, ...this.listQuery,
computed: { ...this.query,
menuId() { menuId:this.menuId
return this.$route.meta.modelId || '' };
} request({
}, url: `/api/example/Jg_monitoring_item0/getList`,
created() { method: 'post',
this.initData() data: _query
}, }).then(res => {
methods: { var _list =[];
goDetail(id) { for(let i=0;i<res.data.list.length;i++){
this.detailVisible = true let _data = res.data.list[i];
this.$nextTick(() => { _list.push(_data)
this.$refs.Detail.init(id) }
}) this.list = _list
}, this.total = res.data.pagination.total
sortChange({
column,
prop,
order
}) {
this.listQuery.sort = order == 'ascending' ? 'asc' : 'desc'
this.listQuery.sidx = !order ? '' : prop
this.initData()
},
initData() {
this.listLoading = true;
let _query = {
...this.listQuery,
...this.query,
menuId: this.menuId
};
request({
url: `/api/monitormanage/Monitormanage/getList`,
method: 'post',
data: _query
}).then(res => {
var _list = [];
for (let i = 0; i < res.data.list.length; i++) {
let _data = res.data.list[i];
_list.push(_data)
}
this.list = _list
this.total = res.data.pagination.total
this.listLoading = false this.listLoading = false
}) })
}, },
handleDel(id) { handleDel(id) {
this.$confirm('此操作将永久删除该数据, 是否继续?', '提示', { this.$confirm('此操作将永久删除该数据, 是否继续?', '提示', {
type: 'warning' type: 'warning'
}).then(() => { }).then(() => {
request({ request({
url: `/api/monitormanage/Monitormanage/${id}`, url: `/api/example/Jg_monitoring_item0/${id}`,
method: 'DELETE' method: 'DELETE'
}).then(res => { }).then(res => {
this.$message({ this.$message({
type: 'success', type: 'success',
message: res.msg, message: res.msg,
onClose: () => { onClose: () => {
this.initData() this.initData()
} }
}); });
}) })
}).catch(() => {}); }).catch(() => {
}, });
handleSelectionChange(val) { },
const res = val.map(item => item.id) handleSelectionChange(val) {
this.multipleSelection = res const res = val.map(item => item.id)
}, this.multipleSelection = res
handleBatchRemoveDel() { },
if (!this.multipleSelection.length) { handleBatchRemoveDel() {
this.$message({ if (!this.multipleSelection.length) {
type: 'error', this.$message({
message: '请选择一条数据', type: 'error',
duration: 1500, message: '请选择一条数据',
}) duration: 1500,
return })
} return
const ids = this.multipleSelection.join() }
this.$confirm('您确定要删除这些数据吗, 是否继续?', '提示', { const ids = this.multipleSelection.join()
type: 'warning' this.$confirm('您确定要删除这些数据吗, 是否继续?', '提示', {
}).then(() => { type: 'warning'
request({ }).then(() => {
url: `/api/monitormanage/Monitormanage/batchRemove/${ids}`, request({
method: 'DELETE' url: `/api/example/Jg_monitoring_item0/batchRemove/${ids}`,
}).then(res => { method: 'DELETE'
this.$message({ }).then(res => {
type: 'success', this.$message({
message: res.msg, type: 'success',
onClose: () => { message: res.msg,
this.initData() onClose: () => {
} this.initData()
}); }
}) });
}).catch(() => {}) })
}, }).catch(() => {
addOrUpdateHandle(id, isDetail) { })
this.formVisible = true },
this.$nextTick(() => { addOrUpdateHandle(id, isDetail) {
this.$refs.JNPFForm.init(id, isDetail) this.formVisible = true
}) this.$nextTick(() => {
}, this.$refs.JNPFForm.init(id, isDetail)
exportData() { })
this.exportBoxVisible = true },
this.$nextTick(() => { exportData() {
this.$refs.ExportBox.init(this.columnList) this.exportBoxVisible = true
}) this.$nextTick(() => {
}, this.$refs.ExportBox.init(this.columnList)
download(data) { })
let query = { },
...data, download(data) {
...this.listQuery, let query = {...data, ...this.listQuery, ...this.query,menuId:this.menuId}
...this.query, request({
menuId: this.menuId url: `/api/example/Jg_monitoring_item0/Actions/Export`,
} method: 'GET',
request({ data: query
url: `/api/monitormanage/Monitormanage/Actions/Export`, }).then(res => {
method: 'GET', if (!res.data.url) return
data: query this.jnpf.downloadFile(res.data.url)
}).then(res => { this.$refs.ExportBox.visible = false
if (!res.data.url) return this.exportBoxVisible = false
this.jnpf.downloadFile(res.data.url) })
this.$refs.ExportBox.visible = false },
this.exportBoxVisible = false search() {
}) this.listQuery = {
}, currentPage: 1,
search() { pageSize: 20,
this.listQuery = { sort: "desc",
currentPage: 1, sidx: "lastmodifytime",
pageSize: 20, }
sort: "desc", this.initData()
sidx: "", },
} refresh(isrRefresh) {
this.initData() this.formVisible = false
}, if (isrRefresh) this.reset()
refresh(isrRefresh) { },
this.formVisible = false reset() {
if (isrRefresh) this.reset() for (let key in this.query) {
}, this.query[key] = undefined
reset() { }
for (let key in this.query) { this.search()
this.query[key] = undefined }
} }
this.search() }
}
}
}
</script> </script>

Loading…
Cancel
Save