From d5e4f6d62943640cdf4b89288546d3f779f43f7f Mon Sep 17 00:00:00 2001
From: zengh <123456>
Date: Thu, 06 Jan 2022 11:44:42 +0800
Subject: [PATCH] 路线导航
---
public/map/widgets/task/template.html | 1
vue.config.js | 6
src/views/activitys/policeTracking.vue | 605 +++++++++++++++++++++++++++++++++++
src/router/views/index.js | 11
public/map/widgets/task/config.js | 13
public/map/widgets/task/task.css | 0
src/views/activitys/real.vue | 5
public/map/widgets/task/task.js | 321 ++++++++++++++++++
public/map/core/manager/widgetsmanager.js | 10
public/map/index.html | 9
src/styles/element-ui.scss | 1
11 files changed, 974 insertions(+), 8 deletions(-)
diff --git a/public/map/core/manager/widgetsmanager.js b/public/map/core/manager/widgetsmanager.js
index 237a8ac..f77dfff 100644
--- a/public/map/core/manager/widgetsmanager.js
+++ b/public/map/core/manager/widgetsmanager.js
@@ -145,6 +145,14 @@
"actived": false
},
{
+ "label": "抢单任务",
+ "id": "task",
+ "widgetClass": "widgets/task/task",
+ "type": "sider",
+ "cssPath": "widgets/task/task.css",
+ "actived": false
+ },
+ {
"label": "地图模式",
"id": "SupervisoryMap",
"widgetClass": "widgets/supervisoryMap/SupervisoryMap",
@@ -552,4 +560,4 @@
}
}
});
- });
\ No newline at end of file
+ });
diff --git a/public/map/index.html b/public/map/index.html
index 8228655..d0f5bcd 100644
--- a/public/map/index.html
+++ b/public/map/index.html
@@ -43,7 +43,13 @@
if(ISinit == null){
init(openId,null);
}
-
+ function locations() {
+ require(["dojo/topic"],
+ function (topic) {
+ topic.publish("location", "2323");
+ }
+ );
+ }
function init(openId,locationObj) {
require(["base/framework", "base/AppEvent"],
function (framework, AppEvent) {
@@ -51,7 +57,6 @@
_framework.onSiderContainerShow();
_framework.resize();
_AppEvent = AppEvent;
-
if (locationObj != null){
//获取设备id
window.clientID = locationObj.clientID;
diff --git a/public/map/widgets/task/config.js b/public/map/widgets/task/config.js
new file mode 100644
index 0000000..2b48f25
--- /dev/null
+++ b/public/map/widgets/task/config.js
@@ -0,0 +1,13 @@
+/*
+ * @Description:
+ * @Version: 1.0
+ * @Author: yangsx
+ * @Date: 2019-12-09 19:01:40
+ * @LastEditors: yangsx
+ * @LastEditTime: 2019-12-14 10:00:41
+ */
+define([], function() {
+ var config = {};
+
+ return config;
+});
diff --git a/public/map/widgets/task/task.css b/public/map/widgets/task/task.css
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/public/map/widgets/task/task.css
diff --git a/public/map/widgets/task/task.js b/public/map/widgets/task/task.js
new file mode 100644
index 0000000..18aec66
--- /dev/null
+++ b/public/map/widgets/task/task.js
@@ -0,0 +1,321 @@
+/*
+ * @Description:
+ * @Version: 1.0
+ * @Author: yangsx
+ * @Date: 2019-12-09 19:01:40
+ * @LastEditors: yangsx
+ * @LastEditTime: 2019-12-14 14:44:57
+ */
+define([
+ "dojo",
+ "dojo/_base/declare",
+ "dojo/_base/lang",
+ "base/BaseWidget",
+ "dojo/text!widgets/task/template.html",
+ "base/AppEvent",
+ "base/ConfigData",
+ "widgets/task/config",
+ "dojo/dom",
+ "dojo/dom-construct",
+ "dojo/dom-attr",
+ "dojo/dom-style",
+ "dojo/on",
+ "esri/layers/ArcGISDynamicMapServiceLayer",
+ "esri/layers/ArcGISTiledMapServiceLayer",
+ "esri/layers/FeatureLayer",
+ "controls/tab/TabControl",
+ "esri/dijit/SymbolStyler",
+ "esri/styles/basic",
+ "dojo/_base/array",
+ "esri/InfoTemplate",
+ "esri/tasks/query",
+ "esri/tasks/QueryTask",
+ "esri/Color",
+ "esri/toolbars/edit",
+ "esri/graphic",
+ "esri/geometry/Point",
+ "esri/geometry/Polyline",
+ "esri/geometry/Polygon",
+ "esri/geometry/Extent",
+ "esri/tasks/FeatureSet",
+ "esri/renderers/HeatmapRenderer",
+ "esri/symbols/SimpleLineSymbol",
+ "esri/symbols/SimpleFillSymbol",
+ "esri/symbols/PictureMarkerSymbol",
+ "esri/symbols/SimpleMarkerSymbol",
+ "esri/SpatialReference",
+ "esri/tasks/GeometryService",
+ "esri/tasks/ProjectParameters",
+ "esri/layers/GraphicsLayer",
+ "esri/layers/LabelLayer",
+ "esri/symbols/TextSymbol",
+ "esri/renderers/SimpleRenderer",
+ "esri/renderers/ClassBreaksRenderer",
+ "esri/tasks/Geoprocessor",
+ "esri/tasks/DataFile",
+ "esri/geometry/webMercatorUtils",
+ "esri/symbols/Font",
+ "esri/geometry/ScreenPoint",
+ "esri/layers/ImageParameters",
+ "esri/geometry/geometryEngine",
+ "esri/dijit/PopupTemplate",
+ "widgets/clientManagement/FlareClusterLayer_v3",
+ 'dojo/topic',
+ "dojo/domReady!"
+], function (
+ dojo,
+ declare,
+ lang,
+ BaseWidget,
+ template,
+ AppEvent,
+ ConfigData,
+ config,
+ dom,
+ domConstruct,
+ domAttr,
+ domStyle,
+ on,
+ ArcGISDynamicMapServiceLayer,
+ ArcGISTiledMapServiceLayer,
+ FeatureLayer,
+ TabControl,
+ SymbolStyler,
+ basic,
+ arrayUtils,
+ InfoTemplate,
+ Query,
+ QueryTask,
+ Color,
+ Edit,
+ Graphic,
+ Point,
+ Polyline,
+ Polygon,
+ Extent,
+ FeatureSet,
+ HeatmapRenderer,
+ SimpleLineSymbol,
+ SimpleFillSymbol,
+ PictureMarkerSymbol,
+ SimpleMarkerSymbol,
+ SpatialReference,
+ GeometryService,
+ ProjectParameters,
+ GraphicsLayer,
+ LabelLayer,
+ TextSymbol,
+ SimpleRenderer,
+ ClassBreaksRenderer,
+ Geoprocessor,
+ DataFile,
+ webMercatorUtils,
+ Font,
+ ScreenPoint,
+ ImageParameters,
+ geometryEngine,
+ PopupTemplate,
+ FlareClusterLayer,
+ topic
+) {
+ var Widget = declare([BaseWidget], {
+ widgetName: "task",
+ label: "分发处置",
+ templateString: template,
+ _map: null,
+ objThis: null,
+ _siteLayer: new GraphicsLayer(),
+ layuiLayer: null,
+ layuiLadate: null,
+ tabIndex: 0,
+
+ // 保留添加实体图层的变量
+ addEntitys: null,
+ entitysData: [],
+
+
+ // 巡逻区域或者巡逻路线的描述
+ routeOrRegionDescribe: null,
+
+ // 用来记录巡逻区域或者巡逻路线的下标的
+ patrolIndex: 0,
+
+ // 拖拽
+ isDown: false,
+ x: 0,
+ y: 0,
+ offset: null,
+ moveThis: null,
+ // 电子围栏需要新增的Id
+ newElectronicFenceId: null,
+
+ // 新增路线时,派发人员,人员名称,以及人员id
+ peopleRealName: null,
+ pepleRealId: null,
+ constructor: function (options, srcRefNode) {
+ this._map = options.map;
+ objThis = this;
+
+ this.addEntitys = new GraphicsLayer({
+ id: 'addEntitys'
+ });
+
+ // 添加点面线的图层
+ this.addPolygonEntitys = new GraphicsLayer({
+ id: 'addPolygonEntitys'
+ });
+ // 添加所有图层的地方
+ this.entityPolygonAll = new GraphicsLayer({
+ id: 'entityPolygonAll'
+ });
+
+
+ this._map.addLayer(this.addEntitys);
+
+
+ this._map.addLayer(this.addPolygonEntitys);
+ this._map.addLayer(this.entityPolygonAll);
+
+ },
+
+ startup: function () {
+
+ objThis._map.addLayer(objThis._siteLayer);
+
+
+ },
+
+ getQueryStringByKey: function (key) {
+ return (document.location.search.match(new RegExp("(?:^\\?|&)" + key + "=(.*?)(?=&|$)")) || ['', null])[1];
+ },
+ location: function (ces) {
+ debugger
+ alert("@3232")
+ },
+ open: function () {
+ var that = this;
+ topic.subscribe("location", lang.hitch(this, this.location));
+ var baid = decodeURI(that.getQueryStringByKey('baid'));
+ var entityData = '';
+ var entityArr = [];
+ entityData = baid.match(/\(([^)]*)\)/);
+
+ // 此时result=["(dsfasjfj3124123)", "dsfasjfj3124123"];
+ if (entityData && entityData != '') {
+ entityData = entityData[1].split(',');
+
+ for (var j = 0; j < entityData.length; j++) {
+ entityArr.push([Number(entityData[j].split(' ')[0]), Number(entityData[j].split(' ')[1])]);
+ // entityArr.push([Number(b[0]), Number(b[1])]);
+ }
+
+ }
+ that.addPolygonAll(that.addEntitys, entityArr);
+ that._map.centerAndZoom(new esri.geometry.Point(entityArr[Math.ceil(entityArr.length / 2)][0], entityArr[Math.ceil(entityArr.length / 2)][1], new esri.SpatialReference({wkid: 4326})), 14);
+
+ },
+ close: function () {
+
+ },
+ addPolygonAll: function (entitys, rings) {
+ // entitys.clear();
+ var graphic = null;
+ var polylineSymbol = new SimpleLineSymbol();
+ polylineSymbol.color = [255, 0, 0, 1];
+ polylineSymbol.width = 4;
+ var polyline = new Polyline({
+ "paths": [rings],
+ "spatialReference": {
+ "wkid": 4326
+ }
+ });
+ graphic = new Graphic(polyline, polylineSymbol)
+ entitys.add(graphic);
+ },
+ addPoint: function (entitys, lgtd, lttd, img) {
+ var symbol = new esri.symbol.PictureMarkerSymbol(img, 22, 32);
+ symbol.xoffset = 0;
+ symbol.yoffset = -2;
+ var pt = new Point(lgtd, lttd, new SpatialReference({
+ wkid: 4326
+ }));
+ var graphic = new esri.Graphic(pt, symbol);
+ entitys.add(graphic);
+ },
+ /**
+ * 添加实体的公共方法
+ * @param {*} entitys 实体类
+ * @param {Array} entityContent 存放每个点详细数据的数组
+ * @param {string} name 实体的名字
+ * @param {*} item 实体数据
+ * @param {*} lgtd 经度
+ * @param {*} lttd 纬度
+ * @param {*} outlineColors 颜色
+ */
+ createEntitys: function (entitys, lgtd, lttd, image) {
+
+ var symbol = new esri.symbol.PictureMarkerSymbol(image, 44, 44);
+
+ var width = 44;
+ var height = 44;
+ var pt = new Point(lgtd, lttd, new SpatialReference({
+ wkid: 4326
+ }));
+
+ var graphic = new esri.Graphic(pt, symbol);
+
+ setInterval(function () {
+ if (width >= 60) {
+ width = 44;
+ height = 44;
+ }
+ width += 1;
+ height += 1;
+ symbol.width = width;
+ symbol.height = height;
+ graphic.setSymbol(symbol)
+ entitys.add(graphic);
+ }, 50)
+
+ },
+ /**
+ * 添加闪烁实体的公共方法
+ * @param {*} entitys 实体类
+ * @param {*} lgtd 经度
+ * @param {*} lttd 纬度
+ * @param {*} color 颜色
+ */
+ createTwinkleEntitys: function (entitys, lgtd, lttd, image, color) {
+ var symbol = new esri.symbol.PictureMarkerSymbol(image, 64, 64);
+ var width = 64;
+ var height = 64;
+ var pt = new Point(lgtd, lttd, new SpatialReference({
+ wkid: 4326
+ }));
+
+ var graphic = new esri.Graphic(pt, symbol);
+
+ setInterval(function () {
+ if (width >= 80) {
+ width = 64;
+ height = 64;
+ }
+ width += 1;
+ height += 1;
+ symbol.width = width;
+ symbol.height = height;
+ graphic.setSymbol(symbol)
+ entitys.add(graphic);
+ }, 50)
+ },
+ addPoints: function (entitys, lgtd, lttd, img) {
+ var symbol = new esri.symbol.PictureMarkerSymbol(img, 20, 20);
+ var pt = new Point(lgtd, lttd, new SpatialReference({
+ wkid: 4326
+ }));
+ var graphic = new esri.Graphic(pt, symbol);
+ entitys.add(graphic);
+ }
+ });
+ return Widget;
+});
diff --git a/public/map/widgets/task/template.html b/public/map/widgets/task/template.html
new file mode 100644
index 0000000..281c686
--- /dev/null
+++ b/public/map/widgets/task/template.html
@@ -0,0 +1 @@
+<div></div>
\ No newline at end of file
diff --git a/src/router/views/index.js b/src/router/views/index.js
index 0c71cf7..fe4d4e9 100644
--- a/src/router/views/index.js
+++ b/src/router/views/index.js
@@ -293,8 +293,17 @@
},
component: () =>
import( /* webpackChunkName: "views" */ '@/views/policeTracking/policeTracking')
+ },{
+ path: 'details',
+ name: '任务详情',
+ meta: {
+ i18n: 'details'
+ },
+ component: () =>
+ import( /* webpackChunkName: "views" */ '@/views/activitys/policeTracking')
}]
-}, {
+}
+, {
path: '/healthcode',
component: Layout,
redirect: '/healthcode/healthcodePage',
diff --git a/src/styles/element-ui.scss b/src/styles/element-ui.scss
index 89c41c1..44a56a5 100644
--- a/src/styles/element-ui.scss
+++ b/src/styles/element-ui.scss
@@ -113,6 +113,7 @@
.el-table__body tr.hover-row > td {
background-color: $mainBhover !important;
}
+
.el-button--text {
color: $fontColor !important;
}
diff --git a/src/views/activitys/policeTracking.vue b/src/views/activitys/policeTracking.vue
new file mode 100644
index 0000000..530f712
--- /dev/null
+++ b/src/views/activitys/policeTracking.vue
@@ -0,0 +1,605 @@
+<template>
+ <el-row>
+ <el-col :span="12">
+ <div style="background: #fff; height: 100%">
+ <el-card class="trackClass" style="overflow-y: auto">
+ <div
+ style="margin-top: 20px"
+ role="tab"
+ aria-expanded="true"
+ aria-controls="el-collapse-content-823"
+ aria-describedby="el-collapse-content-823"
+ >
+ <div
+ role="button"
+ tabindex="0"
+ class="el-collapse-item__header focusing is-active"
+ >
+ <div class="avue-group__header avue-group">
+ <i class="el-icon-message-solid avue-group__icon"></i>
+ <h1 class="avue-group__title">任务信息</h1>
+ </div>
+ </div>
+ </div>
+
+ <el-card>
+ <el-form
+ :model="form"
+ label-position="right"
+ size="mini"
+ class="policeForm"
+ label-width="100px"
+ style="
+ margin-top: 20px;
+ margin-left: 10px;
+ margin-right: 10px;
+ height: calc(100% - 40px);
+ width: calc(100% - 20px);
+ "
+ >
+ <el-row>
+ <el-col span="12">
+ <el-form-item label="任务标题">
+ <el-input
+ disabled="true"
+ v-model="form.rname"
+ autocomplete="off"
+ ></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col span="12">
+ <el-form-item label="下发时间">
+ <el-input
+ disabled="true"
+ v-model="form.time"
+ autocomplete="off"
+ ></el-input>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row>
+ <el-col span="24">
+ <el-form-item label="任务内容">
+ <el-input disabled="true" v-model="form.content" autocomplete="off"></el-input>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row>
+ <el-col span="12">
+ <el-form-item label="省份" class="cityClassParams">
+ <avue-form :option="itemOption" v-model="form"></avue-form>
+ </el-form-item>
+ </el-col>
+ <el-col span="12">
+ <el-form-item label="任务状态">
+ <el-input
+ disabled="true"
+ v-model="form.rtype"
+ 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="form.integral"
+ autocomplete="off"
+ ></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col span="12">
+ <el-form-item label="接收人数">
+ <el-input
+ disabled="true"
+ v-model="form.jnum"
+ autocomplete="off"
+ ></el-input>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ </el-form>
+
+ <!-- <div
+ class="grid-content bg-purple-light"
+ style="text-align: center"
+ >
+ <el-button @click="onSubmit()" type="primary">派发</el-button>
+ </div> -->
+ </el-card>
+
+ <div
+ style="margin-top: 20px"
+ role="tab"
+ aria-expanded="true"
+ aria-controls="el-collapse-content-823"
+ aria-describedby="el-collapse-content-823"
+ >
+ <div
+ role="button"
+ tabindex="0"
+ class="el-collapse-item__header focusing is-active"
+ >
+ <div class="avue-group__header avue-group">
+ <i class="el-icon-s-custom avue-group__icon"></i>
+ <h1 class="avue-group__title">接收人信息</h1>
+ </div>
+ </div>
+ </div>
+
+ <el-card>
+ <el-table
+ ref="multipleTable"
+ :data="tableData"
+ tooltip-effect="dark"
+ style="width: 100%"
+ max-height="240"
+ @row-click="rowclick"
+ >
+ <el-table-column
+ prop="ind"
+ label="序号"
+ width="60"
+ align="center"
+ >
+ </el-table-column>
+ <el-table-column
+ prop="name"
+ label="姓名"
+ width="100"
+ align="center"
+ >
+ </el-table-column>
+ <el-table-column
+ prop="phone"
+ label="联系电话"
+ width="120"
+ align="center"
+ >
+ </el-table-column>
+ <el-table-column
+ prop="online_status"
+ label="在线状态"
+ width="80"
+ align="center"
+ >
+ </el-table-column>
+ <el-table-column
+ prop="tenantName"
+ label="所属部门"
+ align="center"
+ >
+ </el-table-column>
+
+ <el-table-column
+ prop="status"
+ label="人员状态"
+ width="120"
+ align="center"
+ >
+ </el-table-column>
+ </el-table>
+ </el-card>
+
+ <div
+ style="margin-top: 20px"
+ role="tab"
+ aria-expanded="true"
+ aria-controls="el-collapse-content-823"
+ aria-describedby="el-collapse-content-823"
+ >
+ <div
+ role="button"
+ tabindex="0"
+ class="el-collapse-item__header focusing is-active"
+ >
+ <div class="avue-group__header avue-group">
+ <i class="el-icon-s-order avue-group__icon"></i>
+ <h1 class="avue-group__title">任务反馈</h1>
+ </div>
+ </div>
+ </div>
+
+ <el-card>
+ <el-input
+ disabled="true"
+ type="textarea"
+ v-model="security.result"
+ autocomplete="off"
+ ></el-input>
+ </el-card>
+
+ <div
+ style="margin-top: 20px"
+ role="tab"
+ aria-expanded="true"
+ aria-controls="el-collapse-content-823"
+ aria-describedby="el-collapse-content-823"
+ >
+ <div
+ role="button"
+ tabindex="0"
+ class="el-collapse-item__header focusing is-active"
+ >
+ <div class="avue-group__header avue-group">
+ <i class="el-icon-camera-solid avue-group__icon"></i>
+ <h1 class="avue-group__title">现场图片</h1>
+ </div>
+ </div>
+ </div>
+
+ <el-card class="scene-image-box">
+ <el-image
+ v-for="(item, index) in imgSrc"
+ :key="index"
+ :src="item"
+ :preview-src-list="srcList"
+ v-show="imgSrc.length > 0"
+ ></el-image>
+ <span v-show="imgSrc.length == 0">暂无现场图片</span>
+ </el-card>
+
+ <div
+ style="margin-top: 20px"
+ role="tab"
+ aria-expanded="true"
+ aria-controls="el-collapse-content-823"
+ aria-describedby="el-collapse-content-823"
+ >
+ <div
+ role="button"
+ tabindex="0"
+ class="el-collapse-item__header focusing is-active"
+ >
+ <div class="avue-group__header avue-group">
+ <i class="el-icon-video-camera-solid avue-group__icon"></i>
+ <h1 class="avue-group__title">现场视频</h1>
+ </div>
+ </div>
+ </div>
+
+ <el-card>
+ <video
+ :src="feedbackVideo"
+ style="width: 200px; height: 200px; object-fit: fill"
+ controls
+ v-show="feedbackVideo != ''"
+ ></video>
+ <span v-show="feedbackVideo == ''">暂无现场视频</span>
+ </el-card>
+ </el-card>
+ </div>
+ </el-col>
+
+ <el-col :span="12">
+ <iframe
+ id="mapDiv"
+ ref="mapDiv"
+ :src="baseUrl"
+ frameborder="0"
+ width="100%"
+ height="100%"
+ ></iframe>
+ </el-col>
+ </el-row>
+</template>
+
+<script>
+ import axios from "axios";
+ import {getList, getclient} from "@/api/real/real";
+ import {update} from "@/api/real/real";
+
+ export default {
+ inject: ["reload"],
+ data() {
+ return {
+ flag: true,
+ selectOptions: [],
+ receivingList: [],
+ security: {},
+ imgSrc: [],
+ srcList: [],
+ form: {},
+ itemOption: {
+ menuBtn: false,
+ column: [
+ {
+ disabled: true,
+ row: false,
+ prop: "province",
+ type: "select",
+ placeholder: "省份",
+ props: {
+ label: "name",
+ value: "code",
+ },
+ cascaderItem: ["city", "district"],
+ dicUrl: "/api/blade-system/region/select",
+ span: 1,
+ labelWidth: "0",
+ className: "cityClassSelect",
+ },
+ {
+ disabled: true,
+ row: false,
+ prop: "city",
+ type: "select",
+ placeholder: "地市",
+ props: {
+ label: "name",
+ value: "code",
+ },
+ dicUrl: "/api/blade-system/region/select?code={{key}}",
+ span: 1,
+ labelWidth: "0",
+ className: "cityClassSelect",
+ },
+ {
+ disabled: true,
+ row: false,
+ prop: "district",
+ type: "select",
+ placeholder: "区县",
+ props: {
+ label: "name",
+ value: "code",
+ },
+ dicUrl: "/api/blade-system/region/select?code={{key}}",
+ span: 1,
+ labelWidth: "0",
+ className: "cityClassSelect",
+ },
+ ],
+ },
+ tableData: [],
+ multipleSelection: [],
+ ensureNames: "",
+ ensureId: "",
+ baseUrl: "",
+ oldVideoSatart: false,
+ vaddress: null,
+ audios: [],
+ feedbackVideo: "",
+ };
+ },
+ created() {
+
+ this.form = this.$route.query;
+ this.baseUrl = `/map/index.html?openid=task&baid=${this.form.line}`;
+
+ },
+ mounted() {
+ this.getAudios();
+ this.getImgAndVideo();
+ this.getList();
+ // this.$refs.mapDiv.onload = () => {
+ // window.frames[0].init("AlertSecurity", {
+ // x: this.form.jd,
+ // y: this.form.wd,
+ // });
+ // };
+ },
+ updated() {
+ var arr = [];
+ this.tableData.forEach((item) => {
+ if (item.id == this.form.oneId) {
+ arr.push(item);
+ }
+ });
+
+ // if (this.form.jtype != 2) {
+ // this.toggleSelection(arr);
+ // }
+ },
+ methods: {
+ rowclick(row, column, event){
+ var iframe = window.document.getElementById("mapDiv");
+ iframe.contentWindow.locations();
+ },
+ onSubmit() {
+ var that = this;
+
+ var userId = JSON.parse(
+ window.localStorage.getItem("群防群控后台管理系统-userInfo")
+ ).content.nick_name;
+
+ if (that.form.securityArr != null && that.form.securityArr != "") {
+ that.form.jtype = "1";
+ if (typeof that.form.securityArr != "string") {
+ var security = "";
+ that.form.securityArr.forEach((item) => {
+ security = security + item + ",";
+ });
+ that.form.securityArr = security.substring(0, security.length - 1);
+ }
+
+ if (that.form.securityArr == "" || that.form.securityArr == null) {
+ that.form.jtype = "0";
+ that.form.alarmPeople = "";
+ } else {
+ that.form.jtype = "1";
+ //已派发保安
+ that.form.alarmPeople = userId;
+ }
+
+ axios({
+ url: "/api/alarm/alarm/submit",
+ method: "post",
+ data: that.form,
+ }).then((resdata) => {
+ that.$message({
+ message: "派遣完成",
+ type: "success",
+ });
+ });
+ } else {
+ that.$message({
+ message: "未选择保安,请重试",
+ type: "warning",
+ });
+ }
+ },
+
+ getList() {
+ var that = this;
+ this.form
+ axios({
+ method: "get",
+ url: "/api/taskqd/queryReceiver",
+ params: {
+ serid: this.form.serid,
+ },
+ }).then((res) => {
+ var i = 0;
+ res.data.data.forEach((item) => {
+ that.tableData.push({
+ id: item.id,
+ ind: (i += 1),
+ name: item.real_name,
+ phone: item.phone,
+ online_status: item.online_status == 1 ? "在线" : "掉线",
+ status: "已抵达",
+ tenantName: item.tenantName,
+ });
+ });
+ });
+ },
+ toggleSelection(rows) {
+ if (rows) {
+ rows.forEach((row) => {
+ this.$refs.multipleTable.toggleRowSelection(row);
+ });
+ } else {
+ this.$refs.multipleTable.clearSelection();
+ }
+ },
+
+ getAudios() {
+ axios({
+ method: "get",
+ url: "/api/avideo/list",
+ params: {
+ jid: this.form.id,
+ },
+ }).then((resdata) => {
+ if (resdata.data.data.records.length > 0)
+ this.audios = resdata.data.data.records;
+ });
+ },
+ getImgAndVideo() {
+ axios({
+ method: "post",
+ url: "/api/feedback/feedback/selectFeedEdit",
+ params: {
+ jid: this.form.id,
+ },
+ }).then((resdata) => {
+ if (resdata.data.data.length > 0) {
+ if (resdata.data.data[0].List.length > 0)
+ this.security = resdata.data.data[0].List[0];
+ if (resdata.data.data[0].tp.length > 0) {
+ this.imgSrc = resdata.data.data[0].tp;
+ this.srcList = resdata.data.data[0].tp;
+ }
+ if (resdata.data.data[0].sp.length > 0) {
+ 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;
+ }
+ this.oldVideoSatart = true;
+ });
+ },
+
+ updatedPageData() {
+ var that = this;
+ /* axios({
+ method: "get",
+ url: "/api/alarm/alarm/page",
+ params: {
+ id: that.form.id,
+ },
+ }).then(function (res) {
+ that.form = res.data.data.records[0];
+ if (
+ !(
+ that.form.securityArr &&
+ that.form.securityArr != null &&
+ that.form.securityArr != undefined &&
+ that.form.securityArr.length > 0
+ )
+ ) {
+ that.form.securityArr = [];
+ }
+ that.getList(); //报错deptId格式不对liu.2021.5.7
+ });*/
+ },
+ },
+ };
+</script>
+
+<style scoped lang="scss">
+
+ /deep/ .el-table tbody tr:hover > td {
+ background-color: #1d5ce4 !important
+ }
+
+ .el-col {
+ height: calc(100% - 5px);
+ }
+
+ .trackClass {
+ height: 100%;
+ overflow: auto;
+ overflow-x: hidden;
+ }
+
+ .receiving-alarm-box {
+ line-height: 32px !important;
+ height: 200px;
+ overflow-y: auto;
+
+ .el-card__body {
+ 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;
+ }
+ }
+ }
+
+ #old_video::-webkit-media-controls-timeline {
+ display: block;
+ }
+
+</style>
diff --git a/src/views/activitys/real.vue b/src/views/activitys/real.vue
index 023fbcd..51f8a38 100644
--- a/src/views/activitys/real.vue
+++ b/src/views/activitys/real.vue
@@ -20,6 +20,7 @@
@selection-change="selectionChange"
@current-change="currentChange"
@size-change="sizeChange"
+ @row-click="rowClick"
@refresh-change="refreshChange"
@on-load="onLoad"
>
@@ -1181,13 +1182,13 @@
PoliceTracking(row) {
var arr = [];
this.$store.state.tags.tagList.forEach((item) => {
- if (item.label != "任务追踪") {
+ if (item.label != "任务详情") {
arr.push(item);
}
});
this.$store.state.tags.tagList = arr;
//警情追踪
- this.$router.push({ path: "/policeTracking/track", query: row });
+ this.$router.push({ path: "/policeTracking/details", query: row });
},
//打开新增窗体
openAdd() {
diff --git a/vue.config.js b/vue.config.js
index 0dec07f..2c06e61 100644
--- a/vue.config.js
+++ b/vue.config.js
@@ -7,6 +7,7 @@
* @LastEditTime: 2021-01-29 15:58:39
*/
module.exports = {
+
//路径前缀
publicPath: "./",
lintOnSave: true,
@@ -42,12 +43,13 @@
//target: 'http://localhost:82/',
// target: 'http://223.82.109.183:2082/api/',
// target: 'http://192.168.0.107:85/',//唐
- //target: 'http://localhost:83/',
- //target: 'http://223.82.109.183:2082/api/',
target: 'http://localhost:83/',
+ //target: 'http://223.82.109.183:2082/api/',
+ //target: 'http://localhost:83/',
//target: 'https://web.byisf.com/api/',
//远程演示服务地址,可用于直接启动项目
//target: 'https://saber.bladex.vip/api',
+
ws: true,
pathRewrite: {
'^/api': '/'
--
Gitblit v1.9.3