Merge branch 'master' of http://192.168.0.105:10010/r/jfpt-Vue
21 files modified
7 files added
| | |
| | | "vue-style-loader": "^4.1.0" |
| | | } |
| | | }, |
| | | "vue-mobile-audio": { |
| | | "version": "0.1.3", |
| | | "resolved": "https://registry.npm.taobao.org/vue-mobile-audio/download/vue-mobile-audio-0.1.3.tgz", |
| | | "integrity": "sha1-LTrV14UgV5RC/JZzpzD68AoxGJY=", |
| | | "requires": { |
| | | "vue": "^2.5.17", |
| | | "vue-router": "^3.0.1", |
| | | "vuex": "^3.0.1" |
| | | } |
| | | }, |
| | | "vue-router": { |
| | | "version": "3.4.9", |
| | | "resolved": "https://registry.npm.taobao.org/vue-router/download/vue-router-3.4.9.tgz?cache=0&sync_timestamp=1610356181553&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue-router%2Fdownload%2Fvue-router-3.4.9.tgz", |
| | |
| | | "vue": "^2.6.10", |
| | | "vue-axios": "^2.1.2", |
| | | "vue-i18n": "^8.7.0", |
| | | "vue-mobile-audio": "^0.1.3", |
| | | "vue-router": "^3.0.1", |
| | | "vuex": "^3.1.1" |
| | | }, |
| | |
| | | |
| | | this._addLayer(); |
| | | this._eventHandlers.push(this.map.on("extent-change", lang.hitch(this, this._onExtentChange))); |
| | | this._eventHandlers.push(this.map.on("mouse-move", lang.hitch(this, this._onMouseMove))); |
| | | // this._eventHandlers.push(this.map.on("mouse-move", lang.hitch(this, this._onMouseMove))); |
| | | AppEvent.addAppEventListener(AppEvent.SWITCH_BASEMAP, lang.hitch(this, this.onSwitchBaseMap)); |
| | | AppEvent.addAppEventListener(AppEvent.ADD_TOP_MOST_LAYER, lang.hitch(this, this.onAddTopMostLayer)); |
| | | }, |
| | |
| | | .mapBtn { |
| | | background-color: #ffffff; |
| | | width: 14vh; |
| | | height: 4vh; |
| | | position: relative; |
| | | top: 3vh; |
| | | right: -45vh; |
| | | border-radius: 5px; |
| | | } |
| | | |
| | | .insBtn { |
| | | float: left; |
| | | } |
| | | |
| | | .mapBtn a { |
| | | line-height: 4vh; |
| | | font-size: 13px; |
| | | text-align: center; |
| | | color: #757575; |
| | | position: relative; |
| | | left: 1.2vh; |
| | | letter-spacing: 1.5px; |
| | | } |
| | | |
| | | .mapBtn img { |
| | | position: relative; |
| | | left: 1.2vh; |
| | | top: -1px; |
| | | } |
| | | |
| | | a:hover { |
| | | color: #3385FF; |
| | | cursor: pointer; |
| | | } |
| | |
| | | editToolbar: null, |
| | | addPolygonEntitys: null, |
| | | |
| | | // 巡逻区域或者巡逻路线的描述 |
| | | routeOrRegionDescribe: null, |
| | | //是否选中电子围栏区域 |
| | | isChecked: false, |
| | | |
| | | //当前处警员是否已有电子围栏 |
| | | isEngineer: false, |
| | | |
| | | //当前处警员是否有位置信息 |
| | | isPosition: true, |
| | | |
| | | // 用来记录巡逻区域或者巡逻路线的下标的 |
| | | patrolIndex: 0, |
| | |
| | | y: 0, |
| | | offset: null, |
| | | moveThis: null, |
| | | |
| | | //基础路径 |
| | | //pathUrl: "http://localhost:89", |
| | | pathUrl: "https://web.byisf.com/api/blade-jfpts", |
| | | |
| | | // 电子围栏需要新增的Id |
| | | newElectronicFenceId: null, |
| | |
| | | |
| | | startup: function() { |
| | | objThis._map.addLayer(objThis._siteLayer); |
| | | var that = this; |
| | | |
| | | //删除电子围栏点击事件 |
| | | $(".mapBtn .delete").click(function() { |
| | | //需选中电子围栏,然后进行删除 |
| | | if (that.isChecked) { |
| | | that.addPolygonEntitys.clear(); |
| | | //删除数据库数据 |
| | | //更新电子围栏数据 |
| | | $.ajax({ |
| | | url: that.pathUrl + '/enclosure/enclosure/deleteByAnumber', |
| | | type: 'POST', |
| | | dataType: 'JSON', |
| | | data: { |
| | | anumber: anumber |
| | | }, |
| | | success: function(result) { |
| | | if (result.code == 200) {} |
| | | } |
| | | }) |
| | | //修改围栏状态 |
| | | that.isEngineer = false; |
| | | } else { |
| | | layui.use('layer', function() { |
| | | layui.layer.msg('请先选中需要删除的电子围栏'); |
| | | }) |
| | | } |
| | | }) |
| | | |
| | | //新增电子围栏 |
| | | $('.mapBtn .insert').click(function() { |
| | | if (that.isPosition) { |
| | | if (that.isEngineer) { |
| | | layui.use('layer', function() { |
| | | layui.layer.msg('已存在电子围栏'); |
| | | }) |
| | | } else { |
| | | layui.use('layer', function() { |
| | | layui.layer.msg('请开始划分电子围栏'); |
| | | }) |
| | | that.polygonFlag = true; |
| | | } |
| | | } else { |
| | | layui.use('layer', function() { |
| | | layui.layer.msg('当前处警员无位置信息,不能划分电子围栏'); |
| | | }) |
| | | } |
| | | }) |
| | | |
| | | }, |
| | | |
| | | //根据key 取value值 |
| | |
| | | //页面打开后,获取参数数据 |
| | | open: function() { |
| | | var that = this; |
| | | //获取父页面传过来的参数 |
| | | var lgtd = that.getQueryStringByKey('jd'); |
| | | var lttd = that.getQueryStringByKey('wd'); |
| | | if (lgtd == null || lgtd == "") { |
| | | return; |
| | | } |
| | | anumber = that.getQueryStringByKey('code'); |
| | | realname = that.getQueryString('name'); |
| | | //所在位置标记 |
| | | that.addPoint(that.addEntitys, lgtd, lttd, './images/security.png'); |
| | | //获取当前处警员的电子围栏信息 |
| | | $.ajax({ |
| | | //https://web.byisf.com/api/blade-jfpts/enclosure/enclosure/selectEnclosureDetail |
| | | url: 'http://localhost:89/enclosure/enclosure/selectEnclosureDetail', |
| | | type: 'GET', |
| | | dataType: 'JSON', |
| | | data: { |
| | | anumber: anumber |
| | | }, |
| | | success: function(result) { |
| | | //如果已有电子围栏信息,展示出围栏区域,并且可以编辑 |
| | | if (result.code == 200) { |
| | | if (JSON.stringify(result.data) != "{}") { |
| | | var entityArr = []; |
| | | var coordinate = result.data.coordinate.match(/\(([^)]*)\)/).toString(); |
| | | var a = coordinate.indexOf("("); |
| | | var b = coordinate.indexOf(")"); |
| | | coordinate = coordinate.substring(a + 1, b) + ""; |
| | | if (coordinate && coordinate != '') { |
| | | coordinate = coordinate.split(','); |
| | | for (var i = 0; i < coordinate.length; i++) { |
| | | entityArr.push([Number(coordinate[i].split(' ')[0]), Number(coordinate[i].split(' ')[1])]); |
| | | console.log(lgtd, 1111); |
| | | //如果处警员的位置信息存在 |
| | | if (lgtd != null && lgtd != "") { |
| | | //所在位置标记 |
| | | that.addPoint(that.addEntitys, lgtd, lttd, './images/security.png'); |
| | | //获取当前处警员的电子围栏信息 |
| | | $.ajax({ |
| | | url: this.pathUrl + '/enclosure/enclosure/selectEnclosureDetail', |
| | | type: 'GET', |
| | | dataType: 'JSON', |
| | | data: { |
| | | anumber: anumber |
| | | }, |
| | | success: function(result) { |
| | | //如果已有电子围栏信息,展示出围栏区域,并且可以编辑 |
| | | if (result.code == 200) { |
| | | if (JSON.stringify(result.data) != "{}") { |
| | | var entityArr = []; |
| | | var coordinate = result.data.coordinate.match(/\(([^)]*)\)/).toString(); |
| | | var a = coordinate.indexOf("("); |
| | | var b = coordinate.indexOf(")"); |
| | | coordinate = coordinate.substring(a + 1, b) + ""; |
| | | if (coordinate && coordinate != '') { |
| | | coordinate = coordinate.split(','); |
| | | for (var i = 0; i < coordinate.length; i++) { |
| | | entityArr.push([Number(coordinate[i].split(' ')[0]), Number(coordinate[i].split(' ')[1])]); |
| | | } |
| | | } |
| | | that.isEngineer = true; |
| | | that.addPolygon(that.addPolygonEntitys, entityArr); |
| | | } else { |
| | | //如果无电子围栏信息,则提示请编辑电子围栏信息 |
| | | //编辑好电子围栏信息后,将当前处警员的电子围栏信息保存到数据库 |
| | | that.newElectronicFenceId = null; |
| | | //that.polygonFlag = true; |
| | | that.newElectronicFenceId = anumber; |
| | | } |
| | | that.addPolygon(that.addPolygonEntitys, entityArr); |
| | | } else { |
| | | //如果无电子围栏信息,则提示请编辑电子围栏信息 |
| | | //编辑好电子围栏信息后,将当前处警员的电子围栏信息保存到数据库 |
| | | that.newElectronicFenceId = null; |
| | | |
| | | layui.use('layer', function() { |
| | | layui.layer.msg('请开始划分电子围栏'); |
| | | }) |
| | | that.polygonFlag = true; |
| | | that.newElectronicFenceId = anumber; |
| | | } |
| | | |
| | | } |
| | | } |
| | | }) |
| | | }) |
| | | } else { |
| | | //当前处警员没有位置信息,则默认定位到市中心位置 |
| | | that.isPosition = false; |
| | | } |
| | | |
| | | //调用点击事件 |
| | | that.clickHand(); |
| | |
| | | |
| | | //将数据存入数据库 |
| | | $.ajax({ |
| | | //url: 'https://web.byisf.com/api/blade-jfpts/enclosure/enclosure/updatee', |
| | | url: 'http://localhost:89/enclosure/enclosure/insertes', |
| | | url: that |
| | | .pathUrl + '/enclosure/enclosure/insertes', |
| | | type: 'POST', |
| | | dataType: 'JSON', |
| | | data: { |
| | |
| | | } |
| | | }) |
| | | } |
| | | //修改电子围栏数据状态 |
| | | that.isEngineer = true; |
| | | //修改电子围栏选中状态 |
| | | that.isChecked = false; |
| | | //修改电子围栏编辑状态 |
| | | that.polygonFlag = false; |
| | | |
| | | } |
| | | } |
| | | }, |
| | | |
| | | // 鼠标点击事件 |
| | | clickHand: function() { |
| | | var that = this; |
| | | |
| | | var self = this; |
| | | self._map.onClick = mapClick; |
| | | |
| | | //点击事件 |
| | | function mapClick(evt) { |
| | | debugger; |
| | | var normalizedVal = webMercatorUtils.xyToLngLat(evt.mapPoint.x, evt.mapPoint.y); |
| | | var y = self._map.toMap({ |
| | | spatialReference: '4326', |
| | |
| | | // 保存当前点击得图形 |
| | | // self.currentDrawing = evt.graphic; |
| | | |
| | | that.isChecked = true; |
| | | |
| | | self.modifyPolygon(); |
| | | |
| | | self.activateToolbar(evt.graphic); |
| | | } else { // 点击不在图形上 |
| | | |
| | | //修改电子围栏选中状态 |
| | | that.isChecked = false; |
| | | self.modifyPolygon() |
| | | } |
| | | } |
| | |
| | | x = ($(window).width() - 184); |
| | | } |
| | | |
| | | if (self.tabIndex == 1 || self.tabIndex == 2) { |
| | | if (self.polygonFlag == true) { |
| | | $('.securityMapTips').stop().show(); |
| | | |
| | | if (self.polygonFlag == true) { |
| | | $('.police-dispatching .tips').stop().show(); |
| | | |
| | | if (self.polygonData.length == 0) { |
| | | $('.police-dispatching .tips').text('单击左键开始绘制。'); |
| | | } else { |
| | | if (e.clientY > ($(window).height() - 98)) { |
| | | y = ($(window).height() - 88); |
| | | } |
| | | $('.police-dispatching .tips').text('单击左键新增加点。单击右键完成绘制。'); |
| | | } |
| | | |
| | | $('.police-dispatching .tips').css({ |
| | | 'top': y, |
| | | 'left': x, |
| | | }) |
| | | if (self.polygonData.length == 0) { |
| | | $('.securityMapTips').text('单击左键开始绘制。'); |
| | | } else { |
| | | $('.police-dispatching .tips').stop().hide(); |
| | | if (e.clientY > ($(window).height() - 98)) { |
| | | y = ($(window).height() - 88); |
| | | } |
| | | $('.securityMapTips').text('单击左键新增加点。单击右键完成绘制。'); |
| | | } |
| | | |
| | | $('.securityMapTips').css({ |
| | | 'top': y, |
| | | 'left': x, |
| | | }) |
| | | } else { |
| | | $('.police-dispatching .tips').stop().hide(); |
| | | $('.securityMapTips').stop().hide(); |
| | | } |
| | | }) |
| | | }, |
| | |
| | | |
| | | //更新电子围栏数据 |
| | | $.ajax({ |
| | | //url: 'https://web.byisf.com/api/blade-jfpts/enclosure/enclosure/updatee', |
| | | url: 'http://localhost:89/enclosure/enclosure/updatee', |
| | | url: this.pathUrl + '/enclosure/enclosure/updatee', |
| | | type: 'POST', |
| | | dataType: 'JSON', |
| | | data: { |
| | |
| | | |
| | | close: function() {}, |
| | | |
| | | // 获取当前时间,以及昨天现在的时间 |
| | | getTime: function getTime() { |
| | | var timestamp = Date.parse(new Date()); |
| | | |
| | | // 当前时间 |
| | | var currentTime = new Date(timestamp); |
| | | // 年 |
| | | var currentY = currentTime.getFullYear(); |
| | | // 月 |
| | | var currentM = currentTime.getMonth() + 1 < 10 ? '0' + (currentTime.getMonth() + 1) : currentTime.getMonth() + 1; |
| | | // 日 |
| | | var currentD = currentTime.getDate() < 10 ? '0' + currentTime.getDate() : currentTime.getDate(); |
| | | // 时 |
| | | var currentH = currentTime.getHours() < 10 ? '0' + currentTime.getHours() : currentTime.getHours(); |
| | | // 分 |
| | | var currentDd = currentTime.getMinutes() < 10 ? '0' + currentTime.getMinutes() : currentTime.getMinutes(); |
| | | // 明天 |
| | | var tomorrowTime = new Date(timestamp - 60 * 60 * 24 * 1000); |
| | | // 年 |
| | | var tomorrowY = tomorrowTime.getFullYear(); |
| | | // 月 |
| | | var tomorrowM = tomorrowTime.getMonth() + 1 < 10 ? '0' + (tomorrowTime.getMonth() + 1) : tomorrowTime.getMonth() + 1; |
| | | // 日 |
| | | var tomorrowD = tomorrowTime.getDate() < 10 ? '0' + tomorrowTime.getDate() : tomorrowTime.getDate(); |
| | | // 时 |
| | | var tomorrowH = tomorrowTime.getHours() < 10 ? '0' + tomorrowTime.getHours() : tomorrowTime.getHours(); |
| | | // 分 |
| | | var tomorrowDd = tomorrowTime.getMinutes() < 10 ? '0' + tomorrowTime.getMinutes() : tomorrowTime.getMinutes(); |
| | | return { |
| | | current: currentY + '-' + currentM + '-' + currentD + ' ' + currentH + ':' + currentDd, |
| | | tomorrow: tomorrowY + '-' + tomorrowM + '-' + tomorrowD + ' ' + tomorrowH + ':' + tomorrowDd, |
| | | month: currentM + currentD |
| | | }; |
| | | }, |
| | | |
| | | // 创建实体图层 |
| | | createEntitys: function(entitys, entityContent, name, item, lgtd, lttd, outlineColors) { |
| | | |
| | | var symbol = new esri.symbol.PictureMarkerSymbol(outlineColors, 33, 48); |
| | | symbol.name = name; |
| | | var pt = new Point(lgtd, lttd, new esri.SpatialReference({ |
| | |
| | | <div></div> |
| | | <div> |
| | | <div class="mapBtn"> |
| | | <div class="insBtn"> |
| | | <img src="./images/add-0.png" style="width:14px;height:14px;"> |
| | | <a class=" insert " id="insertEngineeringMap ">新增 | </a> |
| | | </div> |
| | | <div class="delBtn"> |
| | | <img src="./images/del.png" style="width:14px;height:14px;"> |
| | | <a class="delete " id="securityMapClearMap ">删除</a> |
| | | </div> |
| | | </div> |
| | | |
| | | <!-- 提示语 --> |
| | | <div class="securityMapTips"> |
| | | </div> |
| | | </div> |
| | |
| | | } |
| | | } |
| | | }, |
| | | _mapClick: function (e) {//地图全局点击事件 标记不能点击 |
| | | _mapClick: function (e) { //地图全局点击事件 标记不能点击 |
| | | // console.log('地图全局点击事件'); |
| | | |
| | | if (!e.target) { |
| | |
| | | // area: 'auto', |
| | | offset: posi, |
| | | skin: 'flare', |
| | | closeBtn: 0,//关闭按钮,可通过配置1和2来展示,0关闭 |
| | | closeBtn: 0, //关闭按钮,可通过配置1和2来展示,0关闭 |
| | | content: [url, 'no'], |
| | | resize: false, |
| | | scrollbar: false, |
| | |
| | | , endy = null; |
| | | layero[0].style.position = 'absolute'; |
| | | |
| | | downs = document.onmousedown = () => {//鼠标按下事件 |
| | | downs = document.onmousedown = () => { //鼠标按下事件 |
| | | // console.log('down');//start |
| | | // downs = document.onmousedown = null; |
| | | var mx = window.event.clientX//鼠标初始位置 |
| | |
| | | } |
| | | |
| | | }, |
| | | end: function () {//关闭事件 |
| | | end: function () { //关闭事件 |
| | | |
| | | } |
| | | }); |
| | | that.layuiLayer.open({//第二个iframe |
| | | that.layuiLayer.open({ //第二个iframe |
| | | title: '', |
| | | type: 2, |
| | | shadeClose: true, |
| | |
| | | offset: 'r', |
| | | skin: 'flare', |
| | | isOutAnim: false, |
| | | closeBtn: 0,//关闭按钮,可通过配置1和2来展示,0关闭 |
| | | closeBtn: 0, //关闭按钮,可通过配置1和2来展示,0关闭 |
| | | content: ['./popup/html/FlareClusterLayer_v3 copy.html'], |
| | | resize: false, |
| | | scrollbar: false, |
| | | // tipsMore: true, //允许多个tipe |
| | | // content: num, |
| | | success: function (layero, index) {//成功后添加全局点击关闭 |
| | | success: function (layero, index) { //成功后添加全局点击关闭 |
| | | // var z = document.onclick = ()=>{ |
| | | // parent[0].layer.close(index); |
| | | // // // parent[0].layer.close(+index + 1); |
| | |
| | | }) |
| | | }) |
| | | } |
| | | if (mySelf.onceTimeMethod == null) {//防抖.限制时间内点击次数,否则会造成不能正确销毁前一个弹窗 |
| | | if (mySelf.onceTimeMethod == null) { //防抖.限制时间内点击次数,否则会造成不能正确销毁前一个弹窗 |
| | | var offsetMy = [+evt.screenY - 300 + 'px', +evt.screenX - 172.5 + 'px']; |
| | | // console.log(evt.screenY); |
| | | fCard(offsetMy, setdata); |
| | | mySelf.onceTimeMethod = setTimeout(() => { |
| | | mySelf.onceTimeMethod = null; |
| | | }, mySelf.onceTime); |
| | | } else { |
| | | }; |
| | | } else {}; |
| | | |
| | | |
| | | |
| | |
| | | this.singles.push(single); |
| | | delete single.graphic; |
| | | var symbol; |
| | | console.log(single.onlineStatus, '移动事件'); |
| | | if (single.onlineStatus == 1) { |
| | | symbol = new esri.symbol.PictureMarkerSymbol("./images/zx-jingbao.png", 40, 40); |
| | | if (single.jtype == 1) { |
| | | symbol = new esri.symbol.PictureMarkerSymbol("./images/yj-jingbao.png", 40, 40); |
| | | } else { |
| | | symbol = new esri.symbol.PictureMarkerSymbol("./images/dx-jingbao.png", 40, 40); |
| | | if (single.onlineStatus == 1) { |
| | | symbol = new esri.symbol.PictureMarkerSymbol("./images/zx-jingbao.png", 40, 40); |
| | | } else { |
| | | symbol = new esri.symbol.PictureMarkerSymbol("./images/dx-jingbao.png", 40, 40); |
| | | } |
| | | } |
| | | |
| | | var point = new Point(single[this.xPropertyName], single[this.yPropertyName], this.spatialRef); |
| | | var attributes = lang.clone(single); |
| | | var graphic = new Graphic(point, symbol, attributes, null); |
| | |
| | | //add a text element for the label to display the count and add to the group |
| | | var shapeCenter = this._getShapeCenter(cluster.graphicShape); |
| | | var textShape = groupShape.createText({ |
| | | x: shapeCenter.x, |
| | | y: shapeCenter.y + (this.textSymbol.font.size / 2 - 2), |
| | | text: cluster.clusterCount, |
| | | align: 'middle' |
| | | }) |
| | | x: shapeCenter.x, |
| | | y: shapeCenter.y + (this.textSymbol.font.size / 2 - 2), |
| | | text: cluster.clusterCount, |
| | | align: 'middle' |
| | | }) |
| | | .setFont({ |
| | | size: this.textSymbol.font.size, |
| | | family: this.textSymbol.font.family, |
| | |
| | | //create a transparent circle that contains the boundary of the flares, this is to make sure the mouse events don't fire moving in between flares |
| | | var conCircleRadius = (center.x - (bbox.x - radius - buffer)) + radius; //get the radius of the circle to contain everything |
| | | var containerCircle = groupShape.createCircle({ |
| | | cx: center.x, |
| | | cy: center.y, |
| | | r: conCircleRadius |
| | | }) |
| | | cx: center.x, |
| | | cy: center.y, |
| | | r: conCircleRadius |
| | | }) |
| | | //.setStroke({ width: 1, color: "000" }) |
| | | .setFill(new Color([0, 0, 0, 0])); |
| | | containerCircle.rawNode.setAttribute("class", "flare-object cluster-object"); |
| | |
| | | var textShapes = []; |
| | | for (var i = 0, len = lines.length; i < len; i++) { |
| | | var textShape = tooltipGroup.createText({ |
| | | x: xPos, |
| | | y: yPos + (i * 10), |
| | | text: lines[i], |
| | | align: 'middle' |
| | | }) |
| | | x: xPos, |
| | | y: yPos + (i * 10), |
| | | text: lines[i], |
| | | align: 'middle' |
| | | }) |
| | | .setFill("#000") |
| | | .setFont({ |
| | | size: 8, |
| | |
| | | var rectPadding = 2; |
| | | var textBox = tooltipGroup.getBoundingBox(); |
| | | var rectShape = tooltipGroup.createRect({ |
| | | x: textBox.x - rectPadding, |
| | | y: textBox.y - rectPadding, |
| | | width: textBox.width + (rectPadding * 2), |
| | | height: textBox.height + (rectPadding * 2), |
| | | r: 0 |
| | | }) |
| | | x: textBox.x - rectPadding, |
| | | y: textBox.y - rectPadding, |
| | | width: textBox.width + (rectPadding * 2), |
| | | height: textBox.height + (rectPadding * 2), |
| | | r: 0 |
| | | }) |
| | | .setFill(new Color([255, 255, 255, 0.9])) |
| | | .setStroke({ |
| | | color: "#000", |
| | |
| | | //Have to add the flare text after the flare group animation otherwise Edge just reloads the page and dies for some reason? |
| | | if (this.shape.flareText) { |
| | | var flareText = this.shape.createText({ |
| | | x: this.shape.flareText.location.x, |
| | | y: this.shape.flareText.location.y, |
| | | text: this.shape.flareText.text, |
| | | align: 'middle' |
| | | }) |
| | | x: this.shape.flareText.location.x, |
| | | y: this.shape.flareText.location.y, |
| | | text: this.shape.flareText.text, |
| | | align: 'middle' |
| | | }) |
| | | .setFill(layer.textSymbol.color) |
| | | .setFont({ |
| | | size: this.shape.flareText.textSize, |
| | |
| | | import website from '@/config/website'; |
| | | import crudCommon from '@/mixins/crud'; |
| | | import * as echarts from 'echarts'; |
| | | import audio from 'vue-mobile-audio'; |
| | | Vue.use(audio); |
| | | Vue.prototype.$echarts = echarts; |
| | | // 注册全局crud驱动 |
| | | window.$crudCommon = crudCommon; |
| | |
| | | if (response.data.data.length > 0) { |
| | | that.deviceId = response.data.data[0].id; |
| | | that.form = response.data.data[0]; |
| | | newAxios |
| | | .post( |
| | | "/api_control", |
| | | {}, |
| | | { |
| | | params: { |
| | | param: JSON.stringify({ PktType: "GetAccessToken" }), |
| | | }, |
| | | } |
| | | ) |
| | | .then((res) => { |
| | | newAxios |
| | | .get( |
| | | `https://web.byisf.com:18000/GetPlayUrl?deviceCode=${that.form.serialNumber}&chl=${that.form.channelNumber}` |
| | | ) |
| | | .then((result) => { |
| | | axios({ |
| | | method: "post", |
| | | url: `/api/blade-jfpts/rvideo/rVoids`, |
| | | params: { |
| | | url: result.data.data.flv, |
| | | }, |
| | | }).then((resdata) => {}); |
| | | }); |
| | | }); |
| | | |
| | | if ( |
| | | response.data.data[0].waringType == "紧急求救" && |
| | | response.data.data[0].alarmId == userId |
| | |
| | | |
| | | aKeyToCall() { |
| | | this.isActive = true; |
| | | |
| | | var that = this; |
| | | if (this.recorder == null) { |
| | | this.recorder = new Recorder({ |
| | |
| | | // 序列号后期待修改 |
| | | aKeyStopCall() { |
| | | this.isActive = false; |
| | | |
| | | var newCallAxios = axios.create({ |
| | | baseURL: "https://web.byisf.com:18000", |
| | | withCredentials: false, |
| | |
| | | "Content-Type": "application/json;", |
| | | }, |
| | | }); |
| | | |
| | | var that = this; |
| | | |
| | | newCallAxios |
| | |
| | | ) |
| | | .then((result) => { |
| | | var formData = new FormData(); |
| | | var blob = that.recorder.getPCMBlob(); //获取pcm格式音频数据 |
| | | // that.recorder.downloadWAV("新文件"); |
| | | |
| | | var blob = that.recorder.getPCMBlob(); //获取pcm格式音频数据 |
| | | //此处获取到blob对象后需要设置fileName满足当前项目上传需求,其它项目可直接传把blob作为file塞入formData |
| | | var newbolb = new Blob([blob], { type: "audio/pcm" }); |
| | | var fileOfBlob = new File([newbolb], new Date().getTime() + ".pcm"); |
| | | formData.append("file", fileOfBlob); |
| | | |
| | | var wavBlob = that.recorder.getWAVBlob(); |
| | | |
| | | var wavformData = new FormData(); |
| | | var wavform = new File([wavBlob], new Date().getTime() + ".wav"); |
| | | wavformData.append("file", wavform); |
| | | |
| | | axios({ |
| | | method: "post", |
| | | url: "/api/blade-jfpts/xlfeedback/xlfeedback/put-objecty", |
| | | data: wavformData, |
| | | params: { |
| | | jid: that.form.id, |
| | | }, |
| | | }).then((resdata) => { |
| | | console.log(resdata); |
| | | }); |
| | | |
| | | newCallAxios |
| | | .post(`/api_control`, blob, { |
| | | params: { |
| | |
| | | }, |
| | | |
| | | onDialogTableVisible() { |
| | | var that = this; |
| | | Recorder.getPermission().then(() => {}); |
| | | this.videoConversationReal = true; |
| | | var userId = JSON.parse( |
| | | window.localStorage.getItem("物联网安保云服务平台-userInfo") |
| | | ).content.user_id; |
| | | newAxios |
| | | .post( |
| | | "/api_control", |
| | | {}, |
| | | { |
| | | params: { |
| | | param: JSON.stringify({ PktType: "GetAccessToken" }), |
| | | }, |
| | | } |
| | | ) |
| | | .then((res) => { |
| | | newAxios |
| | | .get( |
| | | `https://web.byisf.com:18000/GetPlayUrl?deviceCode=${that.form.serialNumber}&chl=${that.form.channelNumber}` |
| | | ) |
| | | .then((result) => { |
| | | axios({ |
| | | method: "post", |
| | | url: `/api/blade-jfpts/rvideo/rVoids`, |
| | | params: { |
| | | url: result.data.data.flv, |
| | | uid: userId, |
| | | }, |
| | | }).then((resdata) => {}); |
| | | }); |
| | | }); |
| | | }, |
| | | }, |
| | | }; |
| | |
| | | left: 240px; |
| | | padding: 0; |
| | | width: calc(100% - 240px); |
| | | height: calc(100% - 104px); |
| | | height: calc(100% - 94px); |
| | | box-sizing: border-box; |
| | | overflow: hidden; |
| | | transition: all 0.5s; |
| | |
| | | methods: { |
| | | beforeOpen(done, type) { |
| | | }, |
| | | //清空按钮 |
| | | searchReset() { |
| | | //清空搜索框中的内容 |
| | | this.query = {}; |
| | | //清空this.$route.query |
| | | this.$router.push({ query: {} }); |
| | | this.onLoad(this.page); |
| | | }, |
| | | //搜索按钮 |
| | | searchChange(params, done) { |
| | | console.log(params,222); |
| | | this.query = params; |
| | | this.page.currentPage = 1; |
| | | this.onLoad(this.page, params); |
| | |
| | | let status = this.$route.query.status==undefined? '':this.$route.query.status; |
| | | let timeDesc = this.$route.query.timeDesc==undefined? '':this.$route.query.timeDesc; |
| | | //window.open(`/api/blade-jfpts/animalHeat/animalHeat/getAnimalHeatStatis?begTime=${begTime}&endTime=${endTime}&status=${status}&timeDesc=${timeDesc}`); |
| | | window.open(`http://localhost:8108/ureport/preview?_u=blade-animalHeat.statis.ureport.xml&begTime=${begTime}&endTime=${endTime}&status=${status}&timeDesc=${timeDesc}`); |
| | | window.open(`https://web.byisf.com/api/blade-report/ureport/preview?_u=blade-animalHeat.statis.ureport.xml&begTime=${begTime}&endTime=${endTime}&status=${status}&timeDesc=${timeDesc}`); |
| | | }); |
| | | }, |
| | | //修改行颜色 |
| | |
| | | beforeOpen(done, type) { |
| | | }, |
| | | searchReset() { |
| | | //清空搜索框中的内容 |
| | | this.query = {}; |
| | | //清空this.$route.query |
| | | this.$router.push({ query: {} }); |
| | | this.onLoad(this.page); |
| | | }, |
| | | searchChange(params, done) { |
| | |
| | | let type = this.$route.query.type==undefined? '':this.$route.query.type; |
| | | let timeDesc = this.$route.query.timeDesc==undefined? '':this.$route.query.timeDesc; |
| | | //window.open(`http://localhost:8108/ureport/excel?_u=blade-healthcode.statis.xml.ureport.xml&begTime=${begTime}&endTime=${endTime}&type=${type}&timeDesc=${timeDesc}`); |
| | | window.open(`http://localhost:8108/ureport/preview?_u=blade-healthcode.statis.xml.ureport.xml&begTime=${begTime}&endTime=${endTime}&type=${type}&timeDesc=${timeDesc}`); |
| | | window.open(`https://web.byisf.com/api/blade-report/ureport/preview?_u=blade-healthcode.statis.xml.ureport.xml&begTime=${begTime}&endTime=${endTime}&type=${type}&timeDesc=${timeDesc}`); |
| | | }); |
| | | }, |
| | | onLoad(page, params = {}) { |
| | |
| | | done(); |
| | | }, |
| | | searchReset() { |
| | | //清空搜索框中的内容 |
| | | this.query = {}; |
| | | //清空this.$route.query |
| | | this.$router.push({ query: {} }); |
| | | this.onLoad(this.page); |
| | | }, |
| | | searchChange(params, done) { |
| | |
| | | let decisioDiagramResult = this.$route.query.decisioDiagramResult==undefined? '':this.$route.query.decisioDiagramResult; |
| | | let timeDesc = this.$route.query.timeDesc==undefined? '':this.$route.query.timeDesc; |
| | | //window.open(`http://localhost:8108/ureport/excel?_u=blade-parcel.statis.ureport.xml&startTime=${startTime}&endTime=${endTime}&decisioDiagramResult=${decisioDiagramResult}&timeDesc=${timeDesc}`); |
| | | window.open(`http://localhost:8108/ureport/preview?_u=blade-parcel.statis.ureport.xml&startTime=${startTime}&endTime=${endTime}&decisioDiagramResult=${decisioDiagramResult}&timeDesc=${timeDesc}`); |
| | | window.open(`https://web.byisf.com/api/blade-report/ureport/preview?_u=blade-parcel.statis.ureport.xml&startTime=${startTime}&endTime=${endTime}&decisioDiagramResult=${decisioDiagramResult}&timeDesc=${timeDesc}`); |
| | | }); |
| | | }, |
| | | onLoad(page, params = {}) { |
| | |
| | | done(); |
| | | }, |
| | | searchReset() { |
| | | //清空搜索框中的内容 |
| | | this.query = {}; |
| | | //清空this.$route.query |
| | | this.$router.push({ query: {} }); |
| | | this.onLoad(this.page); |
| | | }, |
| | | searchChange(params, done) { |
| | |
| | | let decisioDiagramResult = this.$route.query.decisioDiagramResult==undefined? '':this.$route.query.decisioDiagramResult; |
| | | let timeDesc = this.$route.query.timeDesc; |
| | | //window.open(`http://localhost:8108/ureport/excel?_u=blade-parcelKind.statis.ureport.xml&startTime=${startTime}&endTime=${endTime}&decisioDiagramResult=${decisioDiagramResult}&timeDesc=${timeDesc}`); |
| | | window.open(`http://localhost:8108/ureport/preview?_u=blade-parcelKind.statis.ureport.xml&startTime=${startTime}&endTime=${endTime}&decisioDiagramResult=${decisioDiagramResult}&timeDesc=${timeDesc}`); |
| | | //window.open(`http://localhost:8108/ureport/preview?_u=blade-parcelKind.statis.ureport.xml&startTime=${startTime}&endTime=${endTime}&decisioDiagramResult=${decisioDiagramResult}&timeDesc=${timeDesc}`); |
| | | window.open(`https://web.byisf.com/api/blade-report/ureport/preview?_u=blade-parcelKind.statis.ureport.xml&startTime=${startTime}&endTime=${endTime}&decisioDiagramResult=${decisioDiagramResult}&timeDesc=${timeDesc}`); |
| | | }); |
| | | }, |
| | | onLoad(page, params = {}) { |
| | |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <div style="background: #fff; height: 100%"> |
| | | <el-card class="trackClass"> |
| | | <el-card class="trackClass" style="overflow-y: auto"> |
| | | <div |
| | | style="margin-top: 20px" |
| | | role="tab" |
| | |
| | | class="el-collapse-item__header focusing is-active" |
| | | > |
| | | <div class="avue-group__header avue-group"> |
| | | <i class="el-icon-document avue-group__icon"></i> |
| | | <i class="el-icon-phone avue-group__icon"></i> |
| | | <h1 class="avue-group__title">对讲信息</h1> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | <el-card class="receiving-alarm-box"> |
| | | <div v-for="(item, index) in audios" :key="index" style="margin: 10px 0; width: 100%; height: 40px;"> |
| | | <audio :src="item.address" style="width: 40%; height: 100%;" controls></audio> |
| | | </div> |
| | | <el-card class="audios-box"> |
| | | <m-audio |
| | | :block="false" |
| | | v-for="(item, index) in audios" |
| | | :key="index" |
| | | :src="item.address" |
| | | ></m-audio> |
| | | </el-card> |
| | | |
| | | <div |
| | |
| | | </el-row> |
| | | <el-row> |
| | | <el-col span="12"> |
| | | <el-form-item label="性别"> |
| | | <el-input |
| | | disabled="true" |
| | | v-model="security.sex" |
| | | autocomplete="off" |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col span="12"> |
| | | <el-form-item label="年龄"> |
| | | <el-input |
| | | disabled="true" |
| | | v-model="security.age" |
| | | autocomplete="off" |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col span="12"> |
| | | <el-form-item label="联系电话"> |
| | | <el-input |
| | | disabled="true" |
| | | v-model="security.phone" |
| | | autocomplete="off" |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col span="12"> |
| | | <el-form-item label="家庭住址"> |
| | | <el-input |
| | | disabled="true" |
| | | v-model="security.address" |
| | | autocomplete="off" |
| | | ></el-input> |
| | | </el-form-item> |
| | |
| | | <el-input |
| | | disabled="true" |
| | | type="textarea" |
| | | v-model="security.snumber" |
| | | v-model="security.describe" |
| | | autocomplete="off" |
| | | ></el-input> |
| | | |
| | |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div> |
| | | <el-card class="scene-image-box"> |
| | | <el-image |
| | | :src="src" |
| | | v-for="(item, index) in imgSrc" |
| | | :key="index" |
| | | :src="item" |
| | | :preview-src-list="srcList" |
| | | style="width: 150px; margin-left: 5px" |
| | | v-show="imgSrc.length > 0" |
| | | ></el-image> |
| | | <el-image |
| | | :src="src" |
| | | :preview-src-list="srcList" |
| | | style="width: 150px; margin-left: 5px" |
| | | ></el-image> |
| | | <el-image |
| | | :src="src" |
| | | :preview-src-list="srcList" |
| | | style="width: 150px; margin-left: 5px" |
| | | ></el-image> |
| | | </div> |
| | | <span v-show="imgSrc.length == 0">暂无现场图片</span> |
| | | </el-card> |
| | | </div> |
| | | <div class="block"> |
| | | <div |
| | |
| | | </div> |
| | | </div> |
| | | <div> |
| | | <el-image :src="src" style="width: 150px; margin-left: 5px"> |
| | | <div slot="placeholder" class="image-slot"> |
| | | 加载中<span class="dot">...</span> |
| | | </div> |
| | | </el-image> |
| | | <video |
| | | :src="feedbackVideo" |
| | | style="width: 100%; height: 100%; object-fit: fill" |
| | | controls |
| | | v-show="feedbackVideo != ''" |
| | | ></video> |
| | | <span v-show="feedbackVideo == ''">暂无现场视频</span> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | :visible.sync="oldVideoSatart" |
| | | :close-on-press-escape="false" |
| | | :close-on-click-modal="false" |
| | | @opened="oldOpenVideo" |
| | | @close="vaddress = ''" |
| | | append-to-body |
| | | > |
| | |
| | | id="old_video" |
| | | style="width: 100%; height: 100%; object-fit: fill" |
| | | controls |
| | | v-show="vaddress != ''" |
| | | ></video> |
| | | <span v-show="vaddress == ''">暂无历史视频</span> |
| | | </el-dialog> |
| | | </el-col> |
| | | </el-row> |
| | |
| | | |
| | | <script> |
| | | import axios from "axios"; |
| | | |
| | | import { getclient } from "@/api/real/real"; |
| | | export default { |
| | | inject: ["reload"], |
| | | data() { |
| | |
| | | flag: true, |
| | | selectOptions: [], |
| | | receivingList: [], |
| | | security: { |
| | | snumber: 20018, |
| | | sname: "金同涛", |
| | | sex: "男", |
| | | age: 23, |
| | | phone: 1387975426, |
| | | address: "江西省南昌市西湖区", |
| | | }, |
| | | src: |
| | | "https://cube.elemecdn.com/6/94/4d3ea53c084bad6931a56d5158a48jpeg.jpeg", |
| | | srcList: [ |
| | | "https://cube.elemecdn.com/6/94/4d3ea53c084bad6931a56d5158a48jpeg.jpeg", |
| | | "https://cube.elemecdn.com/6/94/4d3ea53c084bad6931a56d5158a48jpeg.jpeg", |
| | | "https://fuss10.elemecdn.com/8/27/f01c15bb73e1ef3793e64e6b7bbccjpeg.jpeg", |
| | | ], |
| | | security: {}, |
| | | imgSrc: [], |
| | | srcList: [], |
| | | form: {}, |
| | | itemOption: { |
| | | menuBtn: false, |
| | |
| | | oldVideoSatart: false, |
| | | vaddress: null, |
| | | audios: [], |
| | | feedbackVideo: "", |
| | | }; |
| | | }, |
| | | created() { |
| | |
| | | mounted() { |
| | | this.getList(); |
| | | this.getAudios(); |
| | | this.getImgAndVideo(); |
| | | this.$refs.mapDiv.onload = () => { |
| | | window.frames[0].init("AlertSecurity", { |
| | | x: this.form.jd, |
| | |
| | | this.audios = resdata.data.data.records; |
| | | }); |
| | | }, |
| | | |
| | | getImgAndVideo() { |
| | | axios({ |
| | | method: "post", |
| | | url: "/api/blade-jfpts/feedback/feedback/selectFeedEdit", |
| | | params: { |
| | | jid: this.form.id, |
| | | }, |
| | | }).then((resdata) => { |
| | | console.log(resdata.data.data[0], 56569); |
| | | this.security = resdata.data.data[0].List[0]; |
| | | this.imgSrc = resdata.data.data[0].tp; |
| | | this.srcList = resdata.data.data[0].tp; |
| | | this.feedbackVideo = resdata.data.data[0].sp[0]; |
| | | }); |
| | | }, |
| | | |
| | | oldOpenVideo() { |
| | | getclient(this.form.id).then((res) => { |
| | | if (res.data.data.vaddress != "") { |
| | | this.vaddress = res.data.data.vaddress; |
| | | } |
| | | }); |
| | | } |
| | | |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style lang="scss"> |
| | | <style scoped lang="scss"> |
| | | .el-col { |
| | | height: 95%; |
| | | height: calc(100% - 5px); |
| | | } |
| | | |
| | | .trackClass { |
| | |
| | | padding: 0 10px !important; |
| | | } |
| | | } |
| | | |
| | | .audios-box, |
| | | .scene-image-box { |
| | | line-height: 32px !important; |
| | | height: auto; |
| | | max-height: 200px; |
| | | overflow-y: auto; |
| | | .el-card__body { |
| | | display: flex; |
| | | padding: 0 10px !important; |
| | | flex-wrap: wrap; |
| | | justify-content: center; |
| | | align-items: center; |
| | | .x-audio-wrap.inline { |
| | | margin: 10px; |
| | | } |
| | | .el-image { |
| | | margin: 10px; |
| | | width: 160px; |
| | | height: 80px; |
| | | } |
| | | } |
| | | } |
| | | </style> |
| | |
| | | }, |
| | | searchReset() { |
| | | this.activeClass = 3; |
| | | //清空搜索框中的内容 |
| | | this.query = {}; |
| | | //清空this.$route.query |
| | | this.$router.push({ query: {} }); |
| | | this.onLoad(this.page); |
| | | }, |
| | | searchChange(params, done) { |
| | |
| | | }, |
| | | }); |
| | | |
| | | var wavAxios = axios.create({ |
| | | baseURL: "https://web.byisf.com", |
| | | withCredentials: false, |
| | | }); |
| | | |
| | | var that = this; |
| | | |
| | | newCallAxios |
| | |
| | | ? "" |
| | | : this.$route.query.timeDesc; |
| | | window.open( |
| | | `http://localhost:8108/ureport/preview?_u=blade-alarm.statis.ureport.xml&beginTime=${beginTime}&endTime=${endTime}&waringType=${waringType}&timeDesc=${timeDesc}` |
| | | `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}`); |
| | | }); |
| | | }, |
| | | 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 ""; |
| | | }, |
| | | } |
| | | }, |
| | | }; |
| | | </script> |
| | |
| | | <template> |
| | | <iframe src="http://localhost:8108/ureport/preview?_u=blade-notice.ureport.xml" style="width: 100%;height: 100%" frameborder="0"></iframe> |
| | | <iframe src="https://web.byisf.com/api/blade-report/ureport/preview?_u=blade-notice.ureport.xml" style="width: 100%;height: 100%" frameborder="0"></iframe> |
| | | </template> |
| | | |
| | | <script> |
| | |
| | | <template> |
| | | <iframe src="http://localhost:8108/ureport/designer" style="width: 100%;height: 100%" frameborder="0"></iframe> |
| | | <iframe src="https://web.byisf.com/api/blade-report/ureport/designer" style="width: 100%;height: 100%" frameborder="0"></iframe> |
| | | </template> |
| | | |
| | | <script> |
| New file |
| | |
| | | <template> |
| | | <basic-container> |
| | | <avue-crud :option="option" |
| | | :table-loading="loading" |
| | | :data="data" |
| | | ref="crud" |
| | | v-model="form" |
| | | :page.sync="page" |
| | | :permission="permissionList" |
| | | @row-del="rowDel" |
| | | @search-change="searchChange" |
| | | @search-reset="searchReset" |
| | | @selection-change="selectionChange" |
| | | @current-change="currentChange" |
| | | @size-change="sizeChange" |
| | | @refresh-change="refreshChange" |
| | | @on-load="onLoad"> |
| | | <template slot="menuLeft"> |
| | | <el-button type="danger" |
| | | size="small" |
| | | icon="el-icon-delete" |
| | | plain |
| | | @click="handleDelete">删 除 |
| | | </el-button> |
| | | </template> |
| | | <template slot-scope="scope" slot="menu"> |
| | | <el-button |
| | | type="text" |
| | | icon="el-icon-edit-outline" |
| | | size="small" |
| | | @click.stop="handleDesign(scope.row.name)" |
| | | v-if="userInfo.role_name.includes('admin')" |
| | | >设计 |
| | | </el-button> |
| | | <el-button |
| | | type="text" |
| | | icon="el-icon-view" |
| | | size="small" |
| | | @click.stop="handlePreview(scope.row.name)" |
| | | v-if="userInfo.role_name.includes('admin')" |
| | | >预览 |
| | | </el-button> |
| | | </template> |
| | | <template slot-scope="{row}" slot="name"> |
| | | <el-tag style="cursor:pointer" @click="handlePreview(row.name)">{{ row.name }}</el-tag> |
| | | </template> |
| | | </avue-crud> |
| | | </basic-container> |
| | | </template> |
| | | |
| | | <script> |
| | | import {getList, remove} from "@/api/report/report"; |
| | | import {mapGetters} from "vuex"; |
| | | |
| | | export default { |
| | | data() { |
| | | return { |
| | | form: {}, |
| | | selectionList: [], |
| | | query: {}, |
| | | loading: true, |
| | | page: { |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0 |
| | | }, |
| | | option: { |
| | | height: 'auto', |
| | | calcHeight: 30, |
| | | tip: false, |
| | | searchShow: true, |
| | | searchMenuSpan: 6, |
| | | border: true, |
| | | index: true, |
| | | selection: true, |
| | | viewBtn: true, |
| | | dialogClickModal: false, |
| | | column: [ |
| | | { |
| | | label: "文件名", |
| | | prop: "name", |
| | | search: true, |
| | | slot: true, |
| | | }, |
| | | { |
| | | label: "创建时间", |
| | | prop: "createTime", |
| | | }, |
| | | { |
| | | label: "更新时间", |
| | | prop: "updateTime", |
| | | } |
| | | ] |
| | | }, |
| | | data: [] |
| | | }; |
| | | }, |
| | | computed: { |
| | | ...mapGetters(["userInfo", "permission"]), |
| | | permissionList() { |
| | | return { |
| | | addBtn: false, |
| | | viewBtn: false, |
| | | delBtn: true, |
| | | editBtn: false |
| | | }; |
| | | }, |
| | | ids() { |
| | | let ids = []; |
| | | this.selectionList.forEach(ele => { |
| | | ids.push(ele.id); |
| | | }); |
| | | return ids.join(","); |
| | | } |
| | | }, |
| | | methods: { |
| | | handlePreview(name) { |
| | | this.$router.push({path: `/myiframe/urlPath?name=preview-${name}&src=${this.website.reportUrl}/preview?_u=blade-${name}`}); |
| | | }, |
| | | handleDesign(name) { |
| | | this.$router.push({path: `/myiframe/urlPath?name=designer-${name}&src=${this.website.reportUrl}/designer?_u=blade-${name}`}); |
| | | }, |
| | | 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.query = {}; |
| | | this.onLoad(this.page); |
| | | }, |
| | | searchChange(params, done) { |
| | | 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(); |
| | | }); |
| | | }, |
| | | currentChange(currentPage) { |
| | | this.page.currentPage = currentPage; |
| | | }, |
| | | sizeChange(pageSize) { |
| | | this.page.pageSize = pageSize; |
| | | }, |
| | | refreshChange() { |
| | | this.onLoad(this.page, this.query); |
| | | }, |
| | | onLoad(page, params = {}) { |
| | | this.loading = true; |
| | | getList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => { |
| | | const data = res.data.data; |
| | | this.page.total = data.total; |
| | | this.data = data.records; |
| | | this.loading = false; |
| | | this.selectionClear(); |
| | | }); |
| | | } |
| | | } |
| | | }; |
| | | </script> |
| | | |
| | | <style> |
| | | </style> |
| | |
| | | }, |
| | | methods: { |
| | | handlePreview(name) { |
| | | this.$router.push({path: `/myiframe/urlPath?name=preview-${name}&src=${this.website.reportUrl}/preview?_u=blade-${name}`}); |
| | | this.$router.push({path: `/myiframe/urlPath?name=preview-${name}&src=${this.website.reportUrl}/blade-report/preview?_u=blade-${name}`}); |
| | | }, |
| | | handleDesign(name) { |
| | | this.$router.push({path: `/myiframe/urlPath?name=designer-${name}&src=${this.website.reportUrl}/designer?_u=blade-${name}`}); |
| | | this.$router.push({path: `/myiframe/urlPath?name=designer-${name}&src=${this.website.reportUrl}/blade-report/designer?_u=blade-${name}`}); |
| | | }, |
| | | rowDel(row) { |
| | | this.$confirm("确定将选择数据删除?", { |
| | |
| | | //打开地图 |
| | | handleMap(row) { |
| | | var that =this; |
| | | |
| | | that.baseUrl = `/map/index.html?ISinit=1&openid=SecurityMap&jd=${row.jd}&wd=${row.wd}&code=${row.code}&name=${row.realName}`; |
| | | this.showMap=true; |
| | | this.$refs.securityMap.onload = () => { |
| | | if (window.frames[0].init) { |
| | | window.frames[0].init("SecurityMap", { |
| | | x: row.jd, |
| | | y: row.wd, |
| | | code:row.code |
| | | }); |
| | | if(row.jd==""){ |
| | | //如果处警员无位置信息,则赋值一个默认数据,否则地图无法加载 |
| | | window.frames[0].init("SecurityMap", { |
| | | x: "115.862321", |
| | | y: "28.591108", |
| | | code:row.code |
| | | }); |
| | | }else{ |
| | | window.frames[0].init("SecurityMap", { |
| | | |
| | | x: row.jd, |
| | | y: row.wd, |
| | | code:row.code |
| | | }); |
| | | } |
| | | |
| | | } else { |
| | | console.log(`没有找到到window.frames[0].init`) |
| | | } |
| | |
| | | style=" |
| | | margin-top: 10px; |
| | | display: flex; |
| | | justify-content: center; |
| | | align-items: center; |
| | | justify-content: left; |
| | | flex-wrap: wrap; |
| | | " |
| | | > |
| | |
| | | " |
| | | > |
| | | <div>{{ item.deviceName }}</div> |
| | | <div>{{ item.street }}</div> |
| | | <div style="width: 80%;">{{ item.street }}</div> |
| | | |
| | | <div class="cet"> |
| | | {{ |
| | |
| | | this.loading = false; |
| | | }, 2000); |
| | | }, |
| | | siteStatus(value, e) { |
| | | console.log(this.radio, value); |
| | | }, |
| | | |
| | | inputSearchBtn() { |
| | | this.getEquipmentLists(); |
| | | }, |
| | |
| | | height: 172px !important; |
| | | box-sizing: border-box; |
| | | margin-bottom: 20px !important; |
| | | min-width: 368px; |
| | | max-width: 370px; |
| | | width: 20% !important; |
| | | a { |
| | | width: 100%; |
| | | height: 100%; |