南昌市物联网技防平台-前端
jxdnsong
2021-02-03 c1a378042f93f92ed257f1d34650766eb2a11dd6
Merge branch 'master' of http://192.168.0.105:10010/r/jfpt-Vue into master
12 files modified
440 ■■■■■ changed files
public/map/lib/layui/css/modules/layer/myskin/personnel-information-management.css 15 ●●●● patch | view | raw | blame | history
public/map/popup/js/personnel-information-management.js 4 ●●●● patch | view | raw | blame | history
public/map/popup/style/personnel-information-management.css 4 ●●●● patch | view | raw | blame | history
public/map/widgets/aPoliceTeam/APoliceTeam.js 12 ●●●● patch | view | raw | blame | history
public/map/widgets/analysisAndJudgment/AnalysisAndJudgment.js 25 ●●●●● patch | view | raw | blame | history
public/map/widgets/patrolManagement/PatrolManagement.js 12 ●●●● patch | view | raw | blame | history
public/map/widgets/policeDispatching/PoliceDispatching.js 10 ●●●● patch | view | raw | blame | history
src/api/client/client.js 7 ●●●●● patch | view | raw | blame | history
src/page/index/logo.vue 10 ●●●● patch | view | raw | blame | history
src/views/clientManagement/clientManagement.vue 209 ●●●● patch | view | raw | blame | history
src/views/realTimePolice/real.vue 125 ●●●● patch | view | raw | blame | history
vue.config.js 7 ●●●●● patch | view | raw | blame | history
public/map/lib/layui/css/modules/layer/myskin/personnel-information-management.css
@@ -1,20 +1,19 @@
.personnel-information-management {
    background: transparent;
    border-radius: 10px;
}
.personnel-information-management .layui-layer-title {
    padding: 0 80px;
    text-align: center;
    background: rgba(12, 25, 49, 0.8);
    background: #fff;
    border: none;
    color: #fff;
    color: #677788;
    font-size: 20px;
}
.personnel-information-management .layui-layer-setwin .layui-layer-close1 {
    background-position: -80px -40px;
    border-radius: 10px 10px 0 0;
}
.personnel-information-management .layui-layer-content {
    background: rgba(12, 25, 49, 0.8);
    background: #fff;
    border-radius: 0 0 10px 10px;
}
public/map/popup/js/personnel-information-management.js
@@ -5,7 +5,7 @@
    var viewVideoLayer = null;
    // 查看保安人员的详细信息
    $.ajax({
        url: 'https://s16s652780.51mypc.cn/api/blade-jfpts/blade-user/selectInfo?id=' + code,
        url: 'https://s16s652780.51mypc.cn/api/blade-jfpts/security/security/selectInfo?snumber=' + code,
        type: 'POST',
        dataType: 'JSON',
        success: function (data) {
@@ -13,7 +13,7 @@
            var str = '';
            result = data.data[0];
            str += "<tr> <td>人员名称:</td> <td>" + result.realName + "</td>  </tr>";
            str += "<tr> <td>人员名称:</td> <td>" + result.sname + "</td>  </tr>";
            str += "<tr> <td>联系电话:</td> <td>" + result.phone + "</td> </tr>";
            str += "<tr> <td>性别:</td> <td>" + (result.sex == 1 ? '女' : '男') + "</td>  </tr>";
            str += "<tr> <td>是否出警:</td> <td>" + (result.type == 1 ? '是' : '否') + "</td> </tr>";
public/map/popup/style/personnel-information-management.css
@@ -16,7 +16,7 @@
    width: 100%;
    height: 100%;
    box-sizing: border-box;
    color: #fff;
    color:#677788;
}
.personnel-information-management-box table {
@@ -33,7 +33,7 @@
.personnel-information-management-box table td {
    flex: 1;
    padding: 0 10px;
    border: 1px solid rgb(255, 255, 255);
    border: 1px solid rgba(231, 234, 243, 0.7);
    width: 25%;
    height: auto !important;
    line-height: 36px;
public/map/widgets/aPoliceTeam/APoliceTeam.js
@@ -709,7 +709,7 @@
                that._map.centerAndZoom(position, 18);//缩放,10是缩放级别,可以自定义,数值越大缩放越大
                var snumber = $(this).attr('term-id');
                var snumber = $(this).attr('term-snumber');
                var url = './popup/html/personnel-information-management.html?id=' + snumber;
                layui.use('layer', function () {
@@ -1136,7 +1136,7 @@
                });
            });
            that.getPoliceTable($('.police-container-distribute').find('.tbody tbody'), $('#dispatchingStartTime').val(), $('#dispatchingEndTime').val(), '', '', '');
            // that.getPoliceTable($('.police-container-distribute').find('.tbody tbody'), $('#dispatchingStartTime').val(), $('#dispatchingEndTime').val(), '', '', '');
            that.clickHand();
@@ -1610,7 +1610,7 @@
            that.currentDrawing = [];
            that.entityPolygonAll.clear();
            $.ajax({
                url: 'https://s16s652780.51mypc.cn/api/blade-jfpts/blade-user/selectList',
                url: 'https://s16s652780.51mypc.cn/api/blade-jfpts/security/security/selectList',
                type: 'POST',
                dataType: 'JSON',
                success: function (data) {
@@ -1634,10 +1634,10 @@
                        entityData = result[i].coordinate.match(/\(([^)]*)\)/);
                        a = Number(i) + 1;
                        str += "<tr term-id=" + result[i].id + " lgtd=" + result[i].jd + " lttd=" + result[i].wd + ">";
                        str += "<tr term-snumber=" + result[i].snumber + " lgtd=" + result[i].jd + " lttd=" + result[i].wd + ">";
                        str += '<td>' + a + '</td>';
                        str += '<td title=' + result[i].code + '>' + result[i].code + '</td>';
                        str += '<td title=' + result[i].realName + '>' + result[i].realName + '</td>';
                        str += '<td title=' + result[i].snumber + '>' + result[i].snumber + '</td>';
                        str += '<td title=' + result[i].sname + '>' + result[i].sname + '</td>';
                        str += '<td title=' + result[i].phone + '>' + result[i].phone + '</td>';
                        str += "<td> <input type='button' value='编辑' resultid=" + result[i].id + "> </td>";
                        str += '</tr>';
public/map/widgets/analysisAndJudgment/AnalysisAndJudgment.js
@@ -693,12 +693,12 @@
                    beginTime: beginTime,
                    endTime: endTime,
                    waringType: waringType,
                    addvcd: addvcd
                    addvcd: addvcd,
                    type: ''
                },
                success: function (data) {
                    var result = data.data;
                    var str = '';
                    var lgtdOrLttd = null;
                    that.entitysData = [];
                    that.analysisAddEntitys.clear();
                    for (var a, time, t, e, y, h, i = 0; i < result.length; i++) {
@@ -779,17 +779,15 @@
                success: function (data) {
                    var result = data.data;
                    var str = '';
                    var lgtdOrLttd = null;
                    that.entitysData = [];
                    that.analysisAddEntitys.clear();
                    for (var a, i = 0; i < result.length; i++) {
                        lgtdOrLttd = result[i].coordinate.substring(6, result[i].coordinate.length - 1).split(' ');
                        that.createEntitysAnalysis(that.analysisAddEntitys, that.entitysData, '业主信息', {
                            lgtd: lgtdOrLttd[0],
                            lttd: lgtdOrLttd[1],
                            lgtd: result[i].jd,
                            lttd: result[i].wd,
                            id: result[i].id
                        }, lgtdOrLttd[0], lgtdOrLttd[1], './images/owner.png');
                        }, result[i].jd, result[i].wd, './images/owner.png');
                        a = Number(i) + 1;
                        str += "<tr term-list=" + result[i].id + ">";
@@ -797,7 +795,7 @@
                        str += '<td>' + result[i].type + '</td>';
                        str += '<td>' + result[i].dj + '</td>';
                        str += '<td>' + result[i].yname + '</td>';
                        str += "<td class='location'> <input type='button' value='定位'" + ' lgtd=' + lgtdOrLttd[0] + ' lttd=' + lgtdOrLttd[1] + "></td>";
                        str += "<td class='location'> <input type='button' value='定位'" + ' lgtd=' + result[i].jd + ' lttd=' + result[i].wd + "></td>";
                        str += '</tr>';
                        dom.append(str);
                        str = '';
@@ -817,17 +815,16 @@
                success: function (data) {
                    var result = data.data;
                    var str = '';
                    var lgtdOrLttd = null;
                    that.entitysData = [];
                    that.analysisAddEntitys.clear();
                    for (var a, i = 0; i < result.length; i++) {
                        lgtdOrLttd = result[i].coordinate.substring(6, result[i].coordinate.length - 1).split(' ');
                        that.createEntitysAnalysis(that.analysisAddEntitys, that.entitysData, '设备信息', {
                            lgtd: lgtdOrLttd[0],
                            lttd: lgtdOrLttd[1],
                            lgtd: result[i].jd,
                            lttd: result[i].wd,
                            id: result[i].id
                        }, lgtdOrLttd[0], lgtdOrLttd[1], './images/ceshi.png');
                        }, result[i].jd, result[i].wd, './images/ceshi.png');
                        a = Number(i) + 1;
                        str += "<tr term-listid=" + result[i].id + ">";
@@ -835,7 +832,7 @@
                        str += '<td title=' + result[i].deviceName + '>' + result[i].deviceName + '</td>';
                        str += '<td title=' + result[i].deviceType + '>' + result[i].deviceType + '</td>';
                        str += '<td>' + result[i].deviceNumber + '</td>';
                        str += "<td class='location'> <input type='button' value='定位'" + ' lgtd=' + lgtdOrLttd[0] + ' lttd=' + lgtdOrLttd[1] + "></td>";
                        str += "<td class='location'> <input type='button' value='定位'" + ' lgtd=' + result[i].jd + ' lttd=' + result[i].wd + "></td>";
                        str += '</tr>';
                        dom.append(str);
                        str = '';
public/map/widgets/patrolManagement/PatrolManagement.js
@@ -709,7 +709,7 @@
                that._map.centerAndZoom(position, 18);//缩放,10是缩放级别,可以自定义,数值越大缩放越大
                var snumber = $(this).attr('term-id');
                var snumber = $(this).attr('term-snumber');
                var url = './popup/html/personnel-information-management.html?id=' + snumber;
                layui.use('layer', function () {
@@ -1136,7 +1136,7 @@
                });
            });
            that.getPoliceTable($('.police-container-distribute').find('.tbody tbody'), $('#dispatchingStartTime').val(), $('#dispatchingEndTime').val(), '', '', '');
            // that.getPoliceTable($('.police-container-distribute').find('.tbody tbody'), $('#dispatchingStartTime').val(), $('#dispatchingEndTime').val(), '', '', '');
            that.clickHand();
@@ -1614,7 +1614,7 @@
            that.currentDrawing = [];
            that.entityPolygonAll.clear();
            $.ajax({
                url: 'https://s16s652780.51mypc.cn/api/blade-jfpts/blade-user/selectList',
                url: 'https://s16s652780.51mypc.cn/api/blade-jfpts/security/security/selectList',
                type: 'POST',
                dataType: 'JSON',
                success: function (data) {
@@ -1638,10 +1638,10 @@
                        entityData = result[i].coordinate.match(/\(([^)]*)\)/);
                        a = Number(i) + 1;
                        str += "<tr term-id=" + result[i].id + " lgtd=" + result[i].jd + " lttd=" + result[i].wd + ">";
                        str += "<tr term-snumber=" + snumber + " lgtd=" + result[i].jd + " lttd=" + result[i].wd + ">";
                        str += '<td>' + a + '</td>';
                        str += '<td title=' + result[i].code + '>' + result[i].code + '</td>';
                        str += '<td title=' + result[i].realName + '>' + result[i].realName + '</td>';
                        str += '<td title=' + result[i].snumber + '>' + result[i].snumber + '</td>';
                        str += '<td title=' + result[i].sname + '>' + result[i].sname + '</td>';
                        str += '<td title=' + result[i].phone + '>' + result[i].phone + '</td>';
                        str += "<td> <input type='button' value='编辑' resultid=" + result[i].id + "> </td>";
                        str += '</tr>';
public/map/widgets/policeDispatching/PoliceDispatching.js
@@ -709,7 +709,7 @@
                that._map.centerAndZoom(position, 18);//缩放,10是缩放级别,可以自定义,数值越大缩放越大
                var snumber = $(this).attr('term-id');
                var snumber = $(this).attr('term-snumber');
                var url = './popup/html/personnel-information-management.html?id=' + snumber;
                layui.use('layer', function () {
@@ -1607,7 +1607,7 @@
            that.currentDrawing = [];
            that.entityPolygonAll.clear();
            $.ajax({
                url: 'https://s16s652780.51mypc.cn/api/blade-jfpts/blade-user/selectList',
                url: 'https://s16s652780.51mypc.cn/api/blade-jfpts/security/security/selectList',
                type: 'POST',
                dataType: 'JSON',
                success: function (data) {
@@ -1631,10 +1631,10 @@
                        entityData = result[i].coordinate.match(/\(([^)]*)\)/);
                        a = Number(i) + 1;
                        str += "<tr term-id=" + result[i].id + " lgtd=" + result[i].jd + " lttd=" + result[i].wd + ">";
                        str += "<tr term-snumber=" + snumber + " lgtd=" + result[i].jd + " lttd=" + result[i].wd + ">";
                        str += '<td>' + a + '</td>';
                        str += '<td title=' + result[i].code + '>' + result[i].code + '</td>';
                        str += '<td title=' + result[i].realName + '>' + result[i].realName + '</td>';
                        str += '<td title=' + result[i].snumber + '>' + result[i].snumber + '</td>';
                        str += '<td title=' + result[i].sname + '>' + result[i].sname + '</td>';
                        str += '<td title=' + result[i].phone + '>' + result[i].phone + '</td>';
                        str += "<td> <input type='button' value='编辑' resultid=" + result[i].id + "> </td>";
                        str += '</tr>';
src/api/client/client.js
@@ -13,6 +13,13 @@
  })
}
export const getAll = () => {
  return request({
    url: '/api/blade-jfpts/equipment/equipment/listAll',
    method: 'get'
  })
}
export const remove = (ids) => {
  return request({
    url: '/api/blade-jfpts/equipment/equipment/remove',
src/page/index/logo.vue
@@ -138,7 +138,7 @@
        var that = this;
        axios({
          url: 'http://192.168.0.103:1888/api/blade-jfpts/alarm/alarm/page?current=1&size=1',
          url: 'https://s16s652780.51mypc.cn/api/blade-jfpts/alarm/alarm/page?current=1&size=1',
          method: 'get',
        }).then(function (response) {
          that.deviceId = response.data.data.records[0].id;
@@ -152,7 +152,7 @@
        window.clearTimeout(window.realTimeQuery);
        window.realTimeQuery = setInterval(function () {
          axios({
            url: 'http://192.168.0.103:1888/api/blade-jfpts/alarm/alarm/selecttx?id='+that.deviceId,
            url: 'https://s16s652780.51mypc.cn/api/blade-jfpts/alarm/alarm/selecttx?id='+that.deviceId,
            method: 'post',
          }).then(function (response) {
            if (response.data.data.length > 0){
@@ -181,7 +181,7 @@
          });
        }else{
          axios({
            url: 'http://192.168.0.103:1888/api/blade-jfpts/jingdan/jingdan/submit',
            url: 'https://s16s652780.51mypc.cn/api/blade-jfpts/jingdan/jingdan/submit',
            method: 'post',
            data: {
              rName: row.rname,
@@ -224,7 +224,7 @@
      revoke(row){
        var that = this;
        axios({
          url: 'http://192.168.0.103:1888/api/blade-jfpts/alarm/alarm/deletejj?id='+row.id,
          url: 'https://s16s652780.51mypc.cn/api/blade-jfpts/alarm/alarm/deletejj?id='+row.id,
          method: 'post',
        }).then(function () {
          that.dialogTableVisible = false;
@@ -236,7 +236,7 @@
      },updateJtyep(row){
        var that = this;
        axios({
          url: 'http://192.168.0.103:1888/api/blade-jfpts/alarm/alarm/updateJtype?id='+row.id+"&czTime="+row.czTime+"&bz="+row.bz,
          url: 'https://s16s652780.51mypc.cn/api/blade-jfpts/alarm/alarm/updateJtype?id='+row.id+"&czTime="+row.czTime+"&bz="+row.bz,
          method: 'post',
        }).then(function () {
        });
src/views/clientManagement/clientManagement.vue
@@ -44,24 +44,46 @@
            </el-tag>
          </template>
          <template slot-scope="{ row }" slot="dtype">
          <template slot-scope="{ row }" slot="dxzt">
            <el-tag>{{
              row.dtype == "0" ? "掉线" : row.dtype == "1" ? "在线" : "无"
              row.dxzt == "0" ? "掉线" : row.dxzt == "1" ? "在线" : "无"
              }}
            </el-tag>
          </template>
          <template slot-scope="{ row }" slot="expireTime">
            <span>
              {{
                row.expireTime == "" ? row.expireTime : row.expireTime == null ? row.expireTime : row.expireTime.split(" ")[0]
              }}
            </span>
            <i class="el-icon-warning" v-if="row.type == 1"></i>
          </template>
        </avue-crud>
      </basic-container>
    </el-col>
    <el-dialog title="缴费提醒" :visible.sync="dialogTableVisible" custom-class="payWin" append-to-body="true">
      <el-table :data="gridData">
        <el-table-column property="xb" label="序号" width="50"></el-table-column>
        <el-table-column property="deviceName" label="设备名称" width="150"></el-table-column>
        <el-table-column property="deviceNumber" label="设备编号" width="150"></el-table-column>
        <el-table-column property="street" label="所属单位" width="200"></el-table-column>
        <el-table-column property="expireTime" label="到期时间"></el-table-column>
      </el-table>
    </el-dialog>
  </el-row>
</template>
<script>
  import {getList, remove, update, add, getclient, getDeptLazyTree} from "@/api/client/client";
  import {getList, remove, update, add, getclient, getDeptLazyTree, getAll} from "@/api/client/client";
  import {mapGetters} from "vuex";
  export default {
    created() {
      this.payWin();
    },
    data() {
      return {
        form: {},
@@ -72,6 +94,8 @@
          currentPage: 1,
          total: 0
        },
        dialogTableVisible: false,
        gridData: null,
        selectionList: [],
        treeDeptId: '',
        treeData: [],
@@ -105,6 +129,8 @@
          calcHeight: 80,
          labelWidth: '100',
          dialogWidth: 950,
          menuWidth: 160,
          size: "mini",
          tip: false,
          searchShow: true,
          searchMenuSpan: 4,
@@ -112,7 +138,7 @@
          border: true,
          index: true,
          viewBtn: true,
          selection: true,
          selection: false,
          dialogClickModal: false,
          column: [
            {
@@ -123,20 +149,93 @@
              search: true,
            },
            {
              label: "到期时间",
              prop: "releaseTimeRange",
              type: "datetime",
              format: "yyyy-MM-dd hh:mm:ss",
              valueFormat: "yyyy-MM-dd hh:mm:ss",
              searchRange: true,
              searchSpan: 5,
              hide: true,
              addDisplay: false,
              editDisplay: false,
              viewDisplay: false,
              search: true,
              rules: [
                {
                  required: true,
                  message: "请输入时间",
                  trigger: "blur"
                }
              ]
            },
            {
              label: "设备编号",
              prop: "deviceNumber",
              width: 130
            },
            {
              label: "行政区",
              prop: "addvcd",
              label: "省份",
              prop: "province",
              search: true,
              searchSpan: 3,
              searchLabelWidth: 60,
              placeholder: "省份",
              type: "select",
              props: {
                label: "name",
                value: "code"
              },
              cascaderItem: ["city", "district"],
              dicUrl: "/api/blade-system/region/select",
              span: 6,
              className: "cityClass1"
            },
            {
              label: "地市",
              prop: "city",
              type: "select",
              searchPlaceholder: "地市",
              placeholder: "地市",
              searchLabelWidth: 1,
              searchSpan: 2,
              search: true,
              props: {
                label: "name",
                value: "code"
              },
              dicUrl: "/api/blade-system/region/select?code={{key}}",
              span: 3,
              labelWidth: "0",
              className: "cityClass2"
            },
            {
              label: "区县",
              searchSpan: 2,
              searchLabelWidth: 1,
              searchPlaceholder: "区县",
              placeholder: "区县",
              search: true,
              prop: "district",
              type: "select",
              props: {
                label: "name",
                value: "code"
              },
              dicUrl: "/api/blade-system/region/select?code={{key}}",
              span: 3,
              labelWidth: "0",
              className: "cityClass3"
            }, {
              label: "布撤防状态",
              prop: "devicestate",
              type: "select",
              slot: true,
              width: 100,
              rules: [{
                required: true,
                trigger: "blur"
              }],
              dicData: [
                {
                  label: "撤防",
@@ -149,20 +248,13 @@
              ]
            }, {
              label: "设备状态",
              prop: "dtype",
              search: true,
              prop: "dxzt",
              slot: true,
              type: "select",
              dicData: [
                {
                  label: "掉线",
                  value: "0"
                },
                {
                  label: "在线",
                  value: "1"
                }
              ]
              addDisplay: false,
              editDisplay: false,
            }, {
              label: "缴费信息",
              prop: "pay",
            }, {
              label: "设备类型",
              prop: "deviceType",
@@ -176,19 +268,26 @@
              prop: "street",
              width: 150
            }, {
              label: "缴费信息",
              prop: "pay",
            }, {
              label: "安装时间",
              prop: "stime",
              type: "datetime",
              format: "yyyy-MM-dd",
              valueFormat: "yyyy-MM-dd hh:mm:ss",
              width: 130
            }, {
              label: "到期时间",
              prop: "expireTime",
              width: 130
              type: "datetime",
              slot: true,
              format: "yyyy-MM-dd",
              valueFormat: "yyyy-MM-dd hh:mm:ss",
              width: 150
            }, {
              label: "最后上传时间",
              prop: "heartbeat",
              type: "datetime",
              format: "yyyy-MM-dd",
              valueFormat: "yyyy-MM-dd hh:mm:ss",
              width: 130
            },
@@ -328,39 +427,91 @@
        if (releaseTimeRange) {
          values = {
            ...params,
            releaseTime_datege: releaseTimeRange[0],
            releaseTime_datelt: releaseTimeRange[1],
            beginTime: releaseTimeRange[0],
            endTime: releaseTimeRange[1],
            ...this.query
          };
          values.releaseTimeRange = null;
        } else {
          values = {
            ...params,
            ...this.query
          };
        }
        this.loading = true;
        getList(page.currentPage, page.pageSize, values, this.treeDeptId).then(res => {
          const data = res.data.data;
          this.page.total = data.total;
          var Dqdate = new Date().getTime();
          for (var i = 0; i < data.records.length; i++) {
            var date = new Date(data.records[i].heartbeat).getTime();
            if ((Dqdate - date) >= (60 * 60 * 24 * 1000)) {
              data.records[i].dxzt = 0;
            } else if (data.records[i].heartbeat == "") {
              data.records[i].dxzt = 0;
            } else {
              data.records[i].dxzt = 1;
            }
          }
          data.records.sort((a,b)=>{
            return a.dxzt - b.dxzt;
          });
          this.data = data.records;
          this.loading = false;
          this.selectionClear();
        });
      }, rowStyle({row, column, rowIndex}) {
        if (row.heartbeat != null && row.heartbeat != "" ) {
        if (row.heartbeat != null && row.heartbeat != "") {
          var date = new Date(row.heartbeat).getTime();
          var Dqdate = new Date().getTime();
          if ((Dqdate - date) >= (60 * 60 * 24 * 1000)) {
            return {
              color: "#15a2fe"
              color: "#fe1515"
            };
          }
        }else if(row.heartbeat == ""){
        } else if (row.heartbeat == "") {
          return {
            color: "#15a2fe"
            color: "#fe1515"
          };
        }
      },
      payWin() {
        var that = this;
        getAll().then(res => {
          var data = res.data.data;
          var lists = [];
          var xb = 0;
          for (var i = 0; i < data.length; i++) {
            if (data[i].type == "1") {
              xb++;
              data[i].xb = xb;
              lists.push(data[i]);
            }
          }
          if (lists.length > 0) {
            that.gridData = lists;
            that.dialogTableVisible = true;
          }
        });
      }
    }
  };
</script>
<style>
  .payWin {
    overflow-y: auto;
    height: 350px;
  }
  .payWin .el-dialog__body {
    padding-top: 0px !important;
  }
</style>
src/views/realTimePolice/real.vue
@@ -65,28 +65,28 @@
      <template slot-scope="{ type, size, row }" slot="menu">
        <el-button
          icon="el-icon-check"
          icon="el-icon-s-order"
          :size="size"
          :type="type"
          @click.stop="handleHistory(row)"
          >历史</el-button
        >
        <el-button
          icon="el-icon-check"
          icon="el-icon-video-camera-solid"
          :size="size"
          :type="type"
          @click.stop="handleStart(row)"
          >视频</el-button
        >
        <el-button
          icon="el-icon-check"
          icon="el-icon-edit"
          :size="size"
          :type="type"
          @click.stop="handleManage(row)"
          >处置</el-button
        >
        <el-button
          icon="el-icon-check"
          icon="el-icon-location-outline"
          :size="size"
          :type="type"
          @click.stop="handleMap(row)"
@@ -99,6 +99,7 @@
      title="警情处置"
      :visible.sync="dialogTableVisible"
      append-to-body="true"
      @close="innerVisibleVideo = false"
    >
      <el-dialog
        class="old-video-dialog"
@@ -108,7 +109,7 @@
        :visible.sync="innerVisibleVideo"
        :close-on-press-escape="false"
        append-to-body
        @opened="openOldVideoBox()"
        @opened="openOldVideoBox"
        @close="closeOldVideoBox"
      >
        <video
@@ -273,6 +274,7 @@
      </el-form>
    </el-dialog>
<<<<<<< HEAD
    <el-drawer
      title="电子地图"
      append-to-body="true"
@@ -285,6 +287,10 @@
        width="100%"
        height="100%"
      ></iframe>
=======
    <el-drawer title="电子地图" append-to-body="true" :visible.sync="showMap">
      <iframe :src="mapUrl" frameborder="0" width="100%" height="100%"></iframe>
>>>>>>> cb724c3b33fc850771b87c3c6feaa582addac56a
    </el-drawer>
  </basic-container>
</template>
@@ -303,6 +309,10 @@
  data() {
    return {
      showMap: false,
<<<<<<< HEAD
=======
      mapUrl: "https://s16s652780.51mypc.cn/jfpt/map/index.html",
>>>>>>> cb724c3b33fc850771b87c3c6feaa582addac56a
      hls: "",
      videoSource: "",
      dialogTableVisible: false,
@@ -322,7 +332,8 @@
        indexLabel: "序号",
        calcHeight: 30,
        labelWidth: "100",
        menuWidth: 300,
        size:"mini",
        menuWidth: 240,
        dialogWidth: 950,
        tip: false,
        searchShow: true,
@@ -330,7 +341,7 @@
        border: true,
        index: true,
        viewBtn: true,
        selection: true,
        selection: false,
        dialogClickModal: false,
        column: [
          {
@@ -425,12 +436,12 @@
            ]
          },
          {
            label: "行政区",
            label: "省份",
            prop: "province",
            search: true,
            searchSpan: 3,
            searchLabelWidth: 60,
            placeholder: "行政区",
            placeholder: "省份",
            type: "select",
            props: {
              label: "name",
@@ -489,7 +500,7 @@
    permissionList() {
      return {
        addBtn: this.vaildData(this.permission.real_add, false),
        viewBtn: this.vaildData(this.permission.real_view, false),
        viewBtn: this.vaildData(null, false),
        delBtn: this.vaildData(this.permission.real_delete, false),
        editBtn: this.vaildData(this.permission.real_edit, false)
      };
@@ -632,11 +643,21 @@
          ...this.query
        };
        values.releaseTimeRange = null;
      }else{
        values = {
          ...params,
          ...this.query
        };
      }
      this.loading = true;
      getList(page.currentPage, page.pageSize, values).then(res => {
        const data = res.data.data;
        this.page.total = data.total;
        data.records.sort((a,b)=>{
          return a.jtype - b.jtype;
        });
        this.data = data.records;
        this.loading = false;
        this.selectionClear();
@@ -750,7 +771,7 @@
        };
      } else {
        return {
          color: "#ff7627"
          color: "#ff2727"
        };
      }
    },
@@ -782,7 +803,7 @@
      } else {
        axios({
          url:
            "http://192.168.0.102:1888/api/blade-jfpts/jingdan/jingdan/submit",
            "https://s16s652780.51mypc.cn/api/blade-jfpts/jingdan/jingdan/submit",
          method: "post",
          data: {
            rName: row.rname,
@@ -824,7 +845,7 @@
      var that = this;
      axios({
        url:
          "http://192.168.0.102:1888/api/blade-jfpts/alarm/alarm/deletejj?id=" +
          "https://s16s652780.51mypc.cn/api/blade-jfpts/alarm/alarm/deletejj?id=" +
          row.id,
        method: "post"
      }).then(function() {
@@ -836,7 +857,7 @@
      var that = this;
      axios({
        url:
          "http://192.168.0.102:1888/api/blade-jfpts/alarm/alarm/updateJtype?id=" +
          "https://s16s652780.51mypc.cn/api/blade-jfpts/alarm/alarm/updateJtype?id=" +
          row.id +
          "&czTime=" +
          row.czTime +
@@ -908,7 +929,6 @@
      };
    },
    queryOldVideo(data) {
      console.log(data);
      var newAxios = axios.create({
        baseURL: "https://s16s652780.51mypc.cn",
        withCredentials: false,
@@ -930,8 +950,6 @@
          }
        )
        .then(res => {
          console.log(res.data.data.accessToken);
          newAxios
            .get(
              `/GetPlayUrl?deviceCode=${data.channelNumber}&chl=${data.serialNumber}`
@@ -976,11 +994,7 @@
        this.hls = new Hls();
        console.log(this.videoSource, "19028321321r073");
        var m3u8Url = decodeURIComponent(this.videoSource);
        console.log(m3u8Url);
        this.hls.loadSource(m3u8Url);
@@ -997,11 +1011,13 @@
      if (dom.getAttribute("src") != "") {
        dom.pause();
        dom.setAttribute("");
        dom.setAttribute("src", "");
        this.hls.destroy();
      }
    },
    aKeyToCall(e, form) {
      var newAxios = axios.create({
      var newCallAxios = axios.create({
        baseURL: "https://s16s652780.51mypc.cn",
        withCredentials: false,
        headers: {
@@ -1013,7 +1029,7 @@
      if (this.isActive == true) {
        this.isActive = false;
        newAxios
        newCallAxios
          .post(
            `/api_control`,
            {},
@@ -1024,18 +1040,29 @@
            }
          )
          .then(result => {
            console.log(result, 11111111);
            var formData = new FormData();
            var blob = this.recorder.getPCMBlob() //获取wav格式音频数据
            var blob = this.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);
            console.log(blob, newbolb, fileOfBlob, 99999);
            document
              .getElementById("real_audio")
              .setAttribute("src", URL.createObjectURL(blob));
            newAxios
              .post(`/api_control`, formData, {
            console.log(
              blob,
              newbolb,
              fileOfBlob,
              window.URL.createObjectURL(blob),
              99999
            );
            this.recorder.play();
            newCallAxios
              .post(`/api_control`, blob, {
                params: {
                  param: {
                    PktType: "Talk",
@@ -1044,46 +1071,16 @@
                  }
                }
              })
              .then(result => {
                console.log(result);
              });
              .then(result => {});
          });
      } else {
        this.isActive = true;
        Recorder.getPermission().then(
          () => {
            console.log("给权限了");
            this.recorder.start().then(
              () => {
                // 开始录音
                console.log("开始录音了");
              },
              error => {
                // 出错了
                console.log(`${error.name} : ${error.message}`);
              }
            );
          },
          error => {
            console.log(`${error.name} : ${error.message}`);
          }
        );
        var newAxios = axios.create({
          baseURL: "https://s16s652780.51mypc.cn",
          withCredentials: false,
          headers: {
            "Content-Type": "application/json;"
          }
        });
        newAxios
          .post(`/talk?deviceCode=${form.channelNumber}`, "12345")
          .then(result => {
            console.log(result);
        Recorder.getPermission().then(() => {
          this.recorder.start().then(() => {
            // 开始录音
          });
        });
      }
    }
  }
vue.config.js
@@ -1,6 +1,6 @@
/*
 * @Descripttion:
 * @version:
 * @Descripttion:
 * @version:
 * @Author: song
 * @Date: 2021-01-26 08:56:34
 * @LastEditors: song
@@ -34,7 +34,8 @@
    proxy: {
      '/api': {
        //本地服务接口地址
        target: 'http://192.168.0.103:82',
        //target: 'http://192.168.0.102:82/',
        target: 'https://s16s652780.51mypc.cn/api/',
        //远程演示服务地址,可用于直接启动项目
        //target: 'https://saber.bladex.vip/api',
        ws: true,