liuyg
2022-02-16 af0aaf0fe19dc69369ee2f7e5ca001c24353a22e
冲突
41 files modified
1 files renamed
6 files added
5906 ■■■■■ changed files
public/geo.js 153 ●●●●● patch | view | raw | blame | history
public/index.html 3 ●●●● patch | view | raw | blame | history
public/scoket.html 60 ●●●●● patch | view | raw | blame | history
src/api/index/index.js 34 ●●●●● patch | view | raw | blame | history
src/api/loginRecord/loginRecord.js 25 ●●●●● patch | view | raw | blame | history
src/api/map/car.js 4 ●●●● patch | view | raw | blame | history
src/api/map/gun.js 10 ●●●● patch | view | raw | blame | history
src/api/map/people.js 12 ●●●● patch | view | raw | blame | history
src/api/qualificationExamination/signQualificationExamination.js 12 ●●●●● patch | view | raw | blame | history
src/api/securityCompany/companyDetails.js 146 ●●●●● patch | view | raw | blame | history
src/api/securityCompany/security.js 144 ●●●● patch | view | raw | blame | history
src/api/system/user.js 8 ●●●●● patch | view | raw | blame | history
src/components/map/main.vue 2 ●●● patch | view | raw | blame | history
src/page/index/logo.vue 64 ●●●●● patch | view | raw | blame | history
src/page/index/top/index.vue 8 ●●●● patch | view | raw | blame | history
src/styles/map.scss 2 ●●● patch | view | raw | blame | history
src/views/home/index.scss 11 ●●●● patch | view | raw | blame | history
src/views/home/index.vue 373 ●●●●● patch | view | raw | blame | history
src/views/home/indexEchart.js 52 ●●●● patch | view | raw | blame | history
src/views/loginRecord/loginRecord.vue 192 ●●●●● patch | view | raw | blame | history
src/views/map/carGps.vue 234 ●●●● patch | view | raw | blame | history
src/views/map/carGps1.vue 227 ●●●● patch | view | raw | blame | history
src/views/map/gunGps.vue 689 ●●●● patch | view | raw | blame | history
src/views/map/peopleGps.vue 100 ●●●●● patch | view | raw | blame | history
src/views/onSiteInspection/company.vue 27 ●●●● patch | view | raw | blame | history
src/views/onSiteInspection/data.js 45 ●●●●● patch | view | raw | blame | history
src/views/onSiteInspection/securityStaff.vue 26 ●●●● patch | view | raw | blame | history
src/views/qualificationExamination/data.js 45 ●●●●● patch | view | raw | blame | history
src/views/qualificationExamination/registrationTrainingQuery.vue 2 ●●● patch | view | raw | blame | history
src/views/qualificationExamination/scoreInquiry.vue 178 ●●●●● patch | view | raw | blame | history
src/views/regulatoryInformation/data.js 45 ●●●●● patch | view | raw | blame | history
src/views/securityCompany/armed.vue 5 ●●●●● patch | view | raw | blame | history
src/views/securityCompany/companyDetails copy.vue 752 ●●●●● patch | view | raw | blame | history
src/views/securityCompany/companyDetails.vue 1797 ●●●●● patch | view | raw | blame | history
src/views/securityCompany/computents/equipment.vue 4 ●●●● patch | view | raw | blame | history
src/views/securityCompany/computents/service.vue 4 ●●●● patch | view | raw | blame | history
src/views/securityCompany/data.js 45 ●●●●● patch | view | raw | blame | history
src/views/securityCompany/security.vue 5 ●●●●● patch | view | raw | blame | history
src/views/securityCompany/train.vue 5 ●●●●● patch | view | raw | blame | history
src/views/securityGuardManagement/dispatchChildoperable copy.vue 6 ●●●● patch | view | raw | blame | history
src/views/securityGuardManagement/register.vue 43 ●●●●● patch | view | raw | blame | history
src/views/securityGuardManagement/registerOnce.vue 15 ●●●●● patch | view | raw | blame | history
src/views/statisticalQueryManagement/businessStatisticsDetail.vue 10 ●●●● patch | view | raw | blame | history
src/views/statisticalQueryManagement/businessStatisticsFwdq.vue 2 ●●● patch | view | raw | blame | history
src/views/statisticalQueryManagement/companyDetails.vue 2 ●●● patch | view | raw | blame | history
src/views/statisticalQueryManagement/informationLoginStatistics.vue 275 ●●●●● patch | view | raw | blame | history
src/views/statisticalQueryManagement/securityGuardDetail.vue 2 ●●● patch | view | raw | blame | history
src/views/talk/talk.vue 1 ●●●● patch | view | raw | blame | history
public/geo.js
New file
@@ -0,0 +1,153 @@
/**
 * Created by Wandergis on 2015/7/8.
 * 提供了百度坐标(BD-09)、国测局坐标(火星坐标,GCJ-02)、和 WGS-84 坐标系之间的转换
 */
// UMD 魔法代码
// if the module has no dependencies, the above pattern can be simplified to
(function (root, factory) {
  if (typeof define === 'function' && define.amd) {
    // AMD. Register as an anonymous module.
    define([], factory);
  } else if (typeof module === 'object' && module.exports) {
    // Node. Does not work with strict CommonJS, but
    // only CommonJS-like environments that support module.exports,
    // like Node.
    module.exports = factory();
  } else {
    // Browser globals (root is window)
    root.coordtransform = factory();
  }
}(this, function () {
  // 定义一些常量
  var x_PI = 3.14159265358979324 * 3000.0 / 180.0;
  var PI = 3.1415926535897932384626;
  var a = 6378245.0;
  var ee = 0.00669342162296594323;
  /**
   * 百度坐标系 (BD-09) 与 火星坐标系 (GCJ-02) 的转换
   * 即 百度 转 谷歌、高德
   * @param bd_lng
   * @param bd_lat
   * @returns {*[]}
   */
  var bd09togcj02 = function bd09togcj02(bd_lng, bd_lat) {
    var bd_lng = +bd_lng;
    var bd_lat = +bd_lat;
    var x = bd_lng - 0.0065;
    var y = bd_lat - 0.006;
    var z = Math.sqrt(x * x + y * y) - 0.00002 * Math.sin(y * x_PI);
    var theta = Math.atan2(y, x) - 0.000003 * Math.cos(x * x_PI);
    var gg_lng = z * Math.cos(theta);
    var gg_lat = z * Math.sin(theta);
    return [gg_lng, gg_lat]
  };
  /**
   * 火星坐标系 (GCJ-02) 与百度坐标系 (BD-09) 的转换
   * 即 谷歌、高德 转 百度
   * @param lng
   * @param lat
   * @returns {*[]}
   */
  var gcj02tobd09 = function gcj02tobd09(lng, lat) {
    var lat = +lat;
    var lng = +lng;
    var z = Math.sqrt(lng * lng + lat * lat) + 0.00002 * Math.sin(lat * x_PI);
    var theta = Math.atan2(lat, lng) + 0.000003 * Math.cos(lng * x_PI);
    var bd_lng = z * Math.cos(theta) + 0.0065;
    var bd_lat = z * Math.sin(theta) + 0.006;
    return [bd_lng, bd_lat]
  };
  /**
   * WGS-84 转 GCJ-02
   * @param lng
   * @param lat
   * @returns {*[]}
   */
  var wgs84togcj02 = function wgs84togcj02(lng, lat) {
    var lat = +lat;
    var lng = +lng;
    if (out_of_china(lng, lat)) {
      return [lng, lat]
    } else {
      var dlat = transformlat(lng - 105.0, lat - 35.0);
      var dlng = transformlng(lng - 105.0, lat - 35.0);
      var radlat = lat / 180.0 * PI;
      var magic = Math.sin(radlat);
      magic = 1 - ee * magic * magic;
      var sqrtmagic = Math.sqrt(magic);
      dlat = (dlat * 180.0) / ((a * (1 - ee)) / (magic * sqrtmagic) * PI);
      dlng = (dlng * 180.0) / (a / sqrtmagic * Math.cos(radlat) * PI);
      var mglat = lat + dlat;
      var mglng = lng + dlng;
      return [mglng, mglat]
    }
  };
  /**
   * GCJ-02 转换为 WGS-84
   * @param lng
   * @param lat
   * @returns {*[]}
   */
  var gcj02towgs84 = function gcj02towgs84(lng, lat) {
    var lat = +lat;
    var lng = +lng;
    if (out_of_china(lng, lat)) {
      return [lng, lat]
    } else {
      var dlat = transformlat(lng - 105.0, lat - 35.0);
      var dlng = transformlng(lng - 105.0, lat - 35.0);
      var radlat = lat / 180.0 * PI;
      var magic = Math.sin(radlat);
      magic = 1 - ee * magic * magic;
      var sqrtmagic = Math.sqrt(magic);
      dlat = (dlat * 180.0) / ((a * (1 - ee)) / (magic * sqrtmagic) * PI);
      dlng = (dlng * 180.0) / (a / sqrtmagic * Math.cos(radlat) * PI);
      var mglat = lat + dlat;
      var mglng = lng + dlng;
      return [lng * 2 - mglng, lat * 2 - mglat]
    }
  };
  var transformlat = function transformlat(lng, lat) {
    var lat = +lat;
    var lng = +lng;
    var ret = -100.0 + 2.0 * lng + 3.0 * lat + 0.2 * lat * lat + 0.1 * lng * lat + 0.2 * Math.sqrt(Math.abs(lng));
    ret += (20.0 * Math.sin(6.0 * lng * PI) + 20.0 * Math.sin(2.0 * lng * PI)) * 2.0 / 3.0;
    ret += (20.0 * Math.sin(lat * PI) + 40.0 * Math.sin(lat / 3.0 * PI)) * 2.0 / 3.0;
    ret += (160.0 * Math.sin(lat / 12.0 * PI) + 320 * Math.sin(lat * PI / 30.0)) * 2.0 / 3.0;
    return ret
  };
  var transformlng = function transformlng(lng, lat) {
    var lat = +lat;
    var lng = +lng;
    var ret = 300.0 + lng + 2.0 * lat + 0.1 * lng * lng + 0.1 * lng * lat + 0.1 * Math.sqrt(Math.abs(lng));
    ret += (20.0 * Math.sin(6.0 * lng * PI) + 20.0 * Math.sin(2.0 * lng * PI)) * 2.0 / 3.0;
    ret += (20.0 * Math.sin(lng * PI) + 40.0 * Math.sin(lng / 3.0 * PI)) * 2.0 / 3.0;
    ret += (150.0 * Math.sin(lng / 12.0 * PI) + 300.0 * Math.sin(lng / 30.0 * PI)) * 2.0 / 3.0;
    return ret
  };
  /**
   * 判断是否在国内,不在国内则不做偏移
   * @param lng
   * @param lat
   * @returns {boolean}
   */
  var out_of_china = function out_of_china(lng, lat) {
    var lat = +lat;
    var lng = +lng;
    // 纬度 3.86~53.55, 经度 73.66~135.05
    return !(lng > 73.66 && lng < 135.05 && lat > 3.86 && lat < 53.55);
  };
  return {
    bd09togcj02: bd09togcj02,
    gcj02tobd09: gcj02tobd09,
    wgs84togcj02: wgs84togcj02,
    gcj02towgs84: gcj02towgs84
  }
}));
public/index.html
@@ -18,6 +18,7 @@
  <link rel="stylesheet" href="<%= BASE_URL %>cdn/avue/2.8.12/index.css">
  <script src="<%= BASE_URL %>cdn/xlsx/FileSaver.min.js"></script>
  <script src="<%= BASE_URL %>cdn/xlsx/xlsx.full.min.js"></script>
  <script src="./geo.js"></script>
  <link rel="icon" href="<%= BASE_URL %>favicon.png">
  <!-- <title>保安监管系统</title> -->
  <title>智慧保安监管模块</title>
@@ -121,4 +122,4 @@
  <script src="<%= BASE_URL %>cdn/avue/2.8.12/avue.min.js" charset="utf-8"></script>
</body>
</html>
</html>
public/scoket.html
New file
@@ -0,0 +1,60 @@
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset = utf-8" />
    <title>WebSocket客户端</title>
    <script type="text/javascript">
        var socket;
        if (!window.WebSocket) {
            window.WebSocket = window.MozWebSocket;
        }
        if (window.WebSocket) {
            socket = new WebSocket("ws://localhost:9034/websocket");
            socket.onmessage = function(event) {
                var ta = document.getElementById('responseContent');
                ta.value += event.data + "\r\n";
            };
            socket.onopen = function(event) {
                var ta = document.getElementById('responseContent');
                ta.value = "你当前的浏览器支持WebSocket,请进行后续操作\r\n";
            };
            socket.onclose = function(event) {
                var ta = document.getElementById('responseContent');
                ta.value = "";
                ta.value = "WebSocket连接已经关闭\r\n";
            };
        } else {
            alert("您的浏览器不支持WebSocket");
        }
        function send(message) {
            if (!window.WebSocket) {
                return;
            }
            if (socket.readyState == WebSocket.OPEN) {
                socket.send(message);
            } else {
                alert("WebSocket连接没有建立成功!!");
            }
        }
    </script>
</head>
<body>
    <form onSubmit="return false;">
        <input type="text" name="message" value="" />
        <br/><br/>
        <input type="button" value="发送WebSocket请求消息" onClick="send(this.form.message.value)" />
        <hr color="red" />
        <h2>客户端接收到服务端返回的应答消息</h2>
        <textarea id="responseContent" style="width:1024px; height:300px"></textarea>
    </form>
</body>
</html>
src/api/index/index.js
@@ -158,3 +158,37 @@
    params: params
  });
};
// 获取押运人员列表
export const getSelectPeo = params => {
  return request({
    url: "/api/blade-user/selectPeo",
    method: "get",
    params: params
  });
};
// 获取车辆列表
export const getSelectCar = (param) => {
  return request({
    url: '/api/car/selectCar',
    method: 'get',
    params: param
  })
}
// 获取枪支列表
export const getSelectGun = (param) => {
  return request({
    url: '/api/equipage/selectGun',
    method: 'get',
    params: param
  })
}
// 现实表现弹窗接口
export const xsbxPages = params => {
  return request({
    url: "/api/information/selectBxc",
    method: "post",
    params: params
  });
};
src/api/loginRecord/loginRecord.js
New file
@@ -0,0 +1,25 @@
import request from '@/router/axios';
export const getList = (current, size, params) => {
    return request({
        url: '/api/loginRecord/page',
        method: 'get',
        params: {
            current,
            size,
            ...params
        }
    })
}
export const getInformationLoginPage = (current, size, params) => {
    return request({
        url: '/api/loginRecord/getInformationLoginPage',
        method: 'get',
        params: {
            current,
            size,
            ...params
        }
    })
}
src/api/map/car.js
@@ -18,7 +18,7 @@
export const getTrack = (param) => {
  return request({
    url: '/api/liveLocation/getLocusInfoList',
    url: '/api/locus/pages',
    method: 'get',
    params: param
  })
@@ -26,7 +26,7 @@
export const getNewPosition = (param) => {
  return request({
    url: '/api/car/locationcar',
    url: '/api/liveLocation/detail',
    method: 'get',
    params: param
  })
src/api/map/gun.js
@@ -8,17 +8,9 @@
  })
}
export const getPosition = (param) => {
  return request({
    url: '/api/liveLocation/detail',
    method: 'get',
    params: param
  })
}
export const getTrack = (param) => {
  return request({
    url: '/api/liveLocation/getLocusInfoList',
    url: '/api/investigate/gun',
    method: 'get',
    params: param
  })
src/api/map/people.js
@@ -27,7 +27,7 @@
export const getTrack = (param) => {
    return request({
        url: '/api/liveLocation/getLocusInfoList',
        url: '/api/locus/pages',
        method: 'get',
        params: param
    })
@@ -42,15 +42,7 @@
export const getNewPeople = (param) => {
  return request({
    url: '/api/car/Peo',
    method: 'get',
    params: param
  })
}
export const getNewTark = (param) => {
  return request({
    url: '/api/car/Peog',
    url: '/api/liveLocation/detail',
    method: 'get',
    params: param
  })
src/api/qualificationExamination/signQualificationExamination.js
@@ -23,6 +23,18 @@
    })
}
export const getTrainList = (current, size, params) => {
    return request({
        url: '/api/trainingRegistration/page',
        method: 'get',
        params: {
            ...params,
            current,
            size,
        }
    })
}
export const adddata = (row) => {
    return request({
        // return newAxios({
src/api/securityCompany/companyDetails.js
@@ -1,90 +1,110 @@
import request from '@/router/axios';
export const manifestationList = (securityid) => {
  return request({
    url: '/api/performance/list',
    method: 'get',
    params: {
      securityid
    }
  })
    return request({
        url: '/api/performance/list',
        method: 'get',
        params: {
            securityid
        }
    })
}
export const dispatchList = (cardid) => {
  return request({
    url: '/api/dispatcher/page',
    method: 'get',
    params: {
      cardid
    }
  })
    return request({
        url: '/api/dispatcher/page',
        method: 'get',
        params: {
            cardid
        }
    })
}
export const honorchList = (cardid) => {
  return request({
    url: '/api/honor/list',
    method: 'get',
    params: {
      cardid
    }
  })
    return request({
        url: '/api/honor/list',
        method: 'get',
        params: {
            cardid
        }
    })
}
export const trainList = (cardid) => {
  return request({
    url: '/api/train/selectTrainInfo',
    method: 'post',
    params: {
      cardid
    }
  })
    return request({
        url: '/api/train/selectTrainInfo',
        method: 'post',
        params: {
            cardid
        }
    })
}
export const examinationList = (cardid) => {
  return request({
    url: '/api/examination/selectExaminationInfo',
    method: 'post',
    params: {
      cardid
    }
  })
    return request({
        url: '/api/examination/selectExaminationInfo',
        method: 'post',
        params: {
            cardid
        }
    })
}
export const getInvestorList = (current, size, params) => {
  return request({
    url: '/api/shareholder/selectShareholderInfo',
    method: 'post',
    params: {
      ...params,
      current,
      size,
    }
  })
    return request({
        url: '/api/shareholder/selectShareholderInfo',
        method: 'post',
        params: {
            ...params,
            current,
            size,
        }
    })
}
export const getManageList = (current, size, params) => {
  return request({
    url: '/api/member/selectMemberInfo',
    method: 'post',
    params: {
      ...params,
      current,
      size
    }
  })
    return request({
        url: '/api/member/selectMemberInfo',
        method: 'post',
        params: {
            ...params,
            current,
            size
        }
    })
}
export const usejurisdiction = () => {
  return request({
    url: '/api/jurisdiction/lazy-tree',
    method: 'get',
    // params: {
    //   ...params,
    //   current,
    //   size,
    //   creditcode,
    // }
  })
    return request({
        url: '/api/jurisdiction/lazy-tree',
        method: 'get',
        // params: {
        //   ...params,
        //   current,
        //   size,
        //   creditcode,
        // }
    })
}
export const getBusinessInfo = (deptId) => {
    return request({
        url: '/api/business/getBusinessInfo',
        method: 'get',
        params: {
            deptId,
        }
    })
}
export const getLicenceDetail = (deptId) => {
    return request({
        url: '/api/licencePaper/detail',
        method: 'get',
        params: {
            deptId,
        }
    })
}
src/api/securityCompany/security.js
@@ -1,96 +1,104 @@
import request from '@/router/axios';
export const getList = (current, size, params, stats) => {
  return request({
    url: '/api/information/page',
    method: 'get',
    params: {
      ...params,
      current,
      size,
      stats
    }
  })
    return request({
        url: '/api/information/page',
        method: 'get',
        params: {
            ...params,
            current,
            size,
            stats
        }
    })
}
export const getListold = (current, size, params, stats) => {//2021.8.25因内网公司接口需要同步成外网公司接口 舍弃
  return request({
    url: '/api/information/list',
    method: 'get',
    params: {
      ...params,
      current,
      size,
      stats
    }
  })
export const getListold = (current, size, params, stats) => { //2021.8.25因内网公司接口需要同步成外网公司接口 舍弃
    return request({
        url: '/api/information/list',
        method: 'get',
        params: {
            ...params,
            current,
            size,
            stats
        }
    })
}
export const getPostList = (tenantId) => {
  return request({
    url: '/api/blade-system/post/select',
    method: 'get',
    params: {
      tenantId
    }
  })
    return request({
        url: '/api/blade-system/post/select',
        method: 'get',
        params: {
            tenantId
        }
    })
}
export const getDetail = (id) => {
  return request({
    url: '/api/blade-system/post/detail',
    method: 'get',
    params: {
      id
    }
  })
    return request({
        url: '/api/blade-system/post/detail',
        method: 'get',
        params: {
            id
        }
    })
}
export const remove = (ids) => {
  return request({
    url: '/api/blade-system/post/remove',
    method: 'post',
    params: {
      ids,
    }
  })
    return request({
        url: '/api/blade-system/post/remove',
        method: 'post',
        params: {
            ids,
        }
    })
}
export const getInformationDetails = (data) => {
    return request({
        url: '/api/information/getInformationDetails',
        method: 'get',
        params: data
    })
}
export const add = (row) => {
  return request({
    url: '/api/blade-system/post/submit',
    method: 'post',
    data: row
  })
    return request({
        url: '/api/blade-system/post/submit',
        method: 'post',
        data: row
    })
}
export const update = (row) => {
  return request({
    url: '/api/blade-system/post/submit',
    method: 'post',
    data: row
  })
    return request({
        url: '/api/blade-system/post/submit',
        method: 'post',
        data: row
    })
}
export const getListPunish = (current, size, params, deptid) => {
  return request({
    url: '/api/punish/list',
    method: 'get',
    params: {
      ...params,
      current,
      size,
      deptid
    }
  })
    return request({
        url: '/api/punish/list',
        method: 'get',
        params: {
            ...params,
            current,
            size,
            deptid
        }
    })
}
export const savePunish = (row) => {
  return request({
    url: '/api/punish/save',
    method: 'post',
    data: row
  })
}
    return request({
        url: '/api/punish/save',
        method: 'post',
        data: row
    })
}
src/api/system/user.js
@@ -51,6 +51,14 @@
    })
}
export const updateUser = (row) => {
    return request({
        url: '/api/blade-user/updateUser',
        method: 'post',
        data: row
    })
}
export const updatePlatform = (userId, userType, userExt) => {
    return request({
        url: '/api/blade-user/update-platform',
src/components/map/main.vue
@@ -94,7 +94,7 @@
    },
    mounted () {
        //建立地图
        this.createmap(1); //1为本地
        this.createmap(2); //1为本地
        this.parentParameter();
src/page/index/logo.vue
@@ -23,11 +23,71 @@
  data() {
    return {};
  },
  created() {},
  created() {
    // this.websocketStart();
  },
  computed: {
    ...mapGetters(["website", "keyCollapse"])
  },
  methods: {}
  methods: {
    //启动websocket
    websocketStart() {
      var that = this;
      if (!window.WebSocket) {
        window.WebSocket = window.MozWebSocket;
      }
      if (window.WebSocket) {
        // https
        // window.socket = new WebSocket("wss://web.byisf.com/wss/websocket/");
        //http
        window.socket = new WebSocket("ws://localhost:9034/websocket");
        window.socket.onopen = function (event) {};
        window.socket.onclose = function (event) {};
        window.socket.error = function (event) {
          //执行重连
          that.websocketStart();
        };
      } else {
        console.log("WebSocket连接没有建立成功!!");
      }
      setTimeout(function () {
        window.clearTimeout(window.websockPing);
        if (!window.WebSocket) {
          return;
        }
        if (window.socket.readyState == WebSocket.OPEN) {
          var userId = JSON.parse(
            window.localStorage.getItem("-userInfo")
          ).content.user_id;
          window.socket.send(userId);
          //开启心跳传送
          window.websockPing = setInterval(function () {
            if (window.socket.readyState == WebSocket.OPEN) {
              window.socket.send("ping");
            } else {
              console.log("心跳停止,断开重连");
              //断开连接,重连
              window.clearTimeout(window.websockPing);
              //执行重连
              that.websocketStart();
            }
          }, 4000);
        } else {
          console.log("WebSocket连接没有建立成功!!");
          //执行重连
          that.websocketStart();
        }
      }, 1000);
    },
  }
};
</script>
src/page/index/top/index.vue
@@ -19,7 +19,7 @@
      </span>
    </div>
    <div class="top-bar__right">
      <el-tooltip v-if="showColor"
      <!-- <el-tooltip v-if="showColor"
                  effect="dark"
                  :content="$t('navbar.color')"
                  placement="bottom">
@@ -50,7 +50,7 @@
        <div class="top-bar__item top-bar__item--show">
          <top-theme></top-theme>
        </div>
      </el-tooltip>
      </el-tooltip> -->
      <!-- <el-tooltip effect="dark"
                  :content="$t('navbar.notice')"
                  placement="bottom">
@@ -58,13 +58,13 @@
          <top-notice></top-notice>
        </div>
      </el-tooltip> -->
      <el-tooltip effect="dark"
      <!-- <el-tooltip effect="dark"
                  :content="$t('navbar.language')"
                  placement="bottom">
        <div class="top-bar__item top-bar__item--show">
          <top-lang></top-lang>
        </div>
      </el-tooltip>
      </el-tooltip> -->
      <el-tooltip v-if="showFullScren"
                  effect="dark"
                  :content="isFullScren?$t('navbar.screenfullF'):$t('navbar.screenfull')"
src/styles/map.scss
@@ -2,7 +2,7 @@
#avue-view {
  &>.morpheus-map-box {
    position: absolute;
    top: 40px;
    top: 0px;
    left: 0px;
    right: 0px;
    bottom: 0px;
src/views/home/index.scss
@@ -259,6 +259,7 @@
    /deep/ .el-table td,
    .el-table th.is-leaf {
      border-bottom-color: transparent;
      background: rgb(3, 34, 91) !important;
    }
    /deep/ .el-table__header th {
      border-bottom: 1px solid #031a38 !important;
@@ -694,28 +695,28 @@
    height: 77%;
  }
}
.bottom-table{
.bottom-table {
  width: calc(100% - 40px);
  height: 100%;
  margin: 0px 20px 15px;
  top: 50px;
  .el-table{
  .el-table {
    width: 100%;
    height: calc(100% - 65px);
    top: 50px;
    overflow-y: auto;
  }
}
::-webkit-scrollbar{
::-webkit-scrollbar {
  display: none;
}
.dialog-table{
.dialog-table {
  top: 0px !important;
  margin: 0px !important;
  width: 100% !important;
  height: calc(100% - 50px) !important;
  overflow: auto;
  .el-table{
  .el-table {
    width: 100%;
    height: 100%;
    overflow: auto;
src/views/home/index.vue
@@ -126,33 +126,27 @@
                ></el-table-column>
                <el-table-column
                  :key="curTableType"
                  prop="carNum"
                  label="押运车辆车牌号"
                  prop="mode"
                  label="车辆型号"
                  width="180"
                ></el-table-column>
                <el-table-column
                  :key="curTableType"
                  show-overflow-tooltip
                  prop="location"
                  label="实时位置"
                  prop="personInCharge"
                  label="责任人"
                ></el-table-column>
                <el-table-column
                  :key="curTableType"
                  show-overflow-tooltip
                  prop="company"
                  label="所属公司"
                  prop="dateForProduction"
                  label="出厂日期"
                ></el-table-column>
                <el-table-column
                  :key="curTableType"
                  show-overflow-tooltip
                  prop="linkman"
                  label="联系人"
                ></el-table-column>
                <el-table-column
                  :key="curTableType"
                  show-overflow-tooltip
                  prop="tel"
                  label="联系电话"
                  prop="detailObj"
                  label="厂商"
                ></el-table-column>
              </template>
              <template v-if="curTableType === 1">
@@ -165,26 +159,26 @@
                <el-table-column
                  :key="curTableType"
                  show-overflow-tooltip
                  prop="name"
                  prop="realName"
                  label="押运人员名称"
                  width="180"
                ></el-table-column>
                <el-table-column
                  :key="curTableType"
                  show-overflow-tooltip
                  prop="location"
                  label="实时位置"
                  prop="address"
                  label="联系地址"
                ></el-table-column>
                <el-table-column
                  :key="curTableType"
                  show-overflow-tooltip
                  prop="company"
                  prop="deptName"
                  label="所属公司"
                ></el-table-column>
                <el-table-column
                  :key="curTableType"
                  show-overflow-tooltip
                  prop="tel"
                  prop="phone"
                  label="联系电话"
                ></el-table-column>
                <!-- <el-table-column :key="curTableType" prop="bz" label="备注">
@@ -200,32 +194,37 @@
                <el-table-column
                  :key="curTableType"
                  show-overflow-tooltip
                  prop="number"
                  label="枪支编号"
                  prop="gunMode"
                  label="枪支类型"
                  width="180"
                ></el-table-column>
                <el-table-column
                  :key="curTableType"
                  show-overflow-tooltip
                  prop="location"
                  label="实时位置"
                  prop="personInCharge"
                  label="责任人"
                ></el-table-column>
                <el-table-column
                  :key="curTableType"
                  show-overflow-tooltip
                  prop="company"
                  label="所属公司"
                  prop="issueTime"
                  label="发证日期"
                ></el-table-column>
                <el-table-column
                  :key="curTableType"
                  show-overflow-tooltip
                  prop="linkman"
                  label="负责人"
                  prop="validTime"
                  label="有效日期"
                ></el-table-column>
                <el-table-column
                  :key="curTableType"
                  prop="tel"
                  label="联系电话"
                  prop="issueUnit"
                  label="发证单位"
                ></el-table-column>
                <el-table-column
                  :key="curTableType"
                  prop="cardNumber"
                  label="用枪编号"
                ></el-table-column>
              </template>
            </el-table>
@@ -473,6 +472,14 @@
              :key="gridData.type"
              prop="examinationMx"
              label="审查明细"
              :show-overflow-tooltip="true"
              width="150"
            ></el-table-column>
            <el-table-column
              v-if="gridData.type === 'zg'"
              :key="gridData.type"
              prop="emails"
              label="审查异常备注"
              :show-overflow-tooltip="true"
              width="150"
            ></el-table-column>
@@ -756,6 +763,7 @@
  seCountI,
  selectExtypeUser,
  qualificationPages,
  xsbxPages,
  selectCf,
  selectCl,
  selectYs,
@@ -763,10 +771,14 @@
  selectWg,
  punishList,
  lazyTrees,
  getSecurityUnitInfoPage
  getSecurityUnitInfoPage,
  getSelectPeo,
  getSelectCar,
  getSelectGun
} from "../../api/index/index";
import { getPosition, getNewPeople } from "@/api/map/people";
import { getNewPosition } from "@/api/map/car";
import { getPeopleList, getPosition, getNewPeople } from "@/api/map/people";
import { getCarList, getNewPosition } from "@/api/map/car";
import { getGunList } from "@/api/map/gun";
import car from "@/assets/img/car.png";
import peo from "@/assets/img/people.png";
@@ -865,31 +877,36 @@
  },
  methods: {
    getPeoplePosition() {
      getPosition({ type: 1, workerId: "1432897970143014913" }).then(result => {
        getNewPeople().then(res => {
          if (JSON.stringify(res.data) != "{}") {
            var arr = res.data.sort(function(a, b) {
              return a["date"] < b["date"] ? 1 : -1;
            });
      getNewPeople({ type: 1, workerId: "1457916357495537665" }).then(
        result => {
          var res = result.data.data;
          if (JSON.stringify(res) != "{}") {
            var csGps = window.coordtransform.bd09togcj02(
              Number(res.longitude),
              Number(res.latitude)
            );
            // var arr = res.data.sort(function(a, b) {
            //   return a["date"] < b["date"] ? 1 : -1;
            // });
            this.peopleGps = {
              LGTD: arr[0].gis_jd,
              LTTD: arr[0].gis_wd
              LGTD: csGps[0],
              LTTD: csGps[1]
            };
          }
          this.getTableData(0);
        });
      });
          this.getCarPosition();
        }
      );
    },
    getCarPosition() {
      getNewPosition({ imei: "861636056082414" }).then(result => {
      getNewPosition({ type: 2, workerId: "赣AD77669" }).then(result => {
        var res = result.data.data;
        if (JSON.stringify(res) != "{}") {
          this.carGps = {
            LGTD: res.x,
            LTTD: res.y
            LGTD: Number(res.longitude),
            LTTD: Number(res.latitude)
          };
        }
        this.getTableData(0);
        this.getTableData();
      });
    },
    //点击节点
@@ -1092,51 +1109,51 @@
      if (type === 2) {
        this.tableData.forEach(item => {
          let obj =
            "押运车辆车牌号" +
            item.carNum +
            ",当前位置" +
            item.location +
            ",所属公司" +
            item.company +
            ",联系人" +
            item.linkman +
            ",联系电话" +
            item.tel;
            "押运车辆型号" +
            item.mode +
            ",责任人" +
            item.personInCharge +
            ",出厂日期" +
            item.dateForProduction +
            ",厂商" +
            item.detailObj;
          this.textArr.push(obj);
        });
      } else if (type === 1) {
        this.tableData.forEach(item => {
          let obj =
            "押运人员" +
            item.name +
            ",当前位置" +
            item.location +
            item.realName +
            ",联系地址" +
            item.address +
            ",所属公司" +
            item.linkman +
            item.deptName +
            ",联系电话" +
            item.tel;
            item.phone;
          this.textArr.push(obj);
        });
      } else if (type === 3) {
        this.tableData.forEach(item => {
          let obj =
            "枪支编号" +
            item.number +
            ",当前位置" +
            item.location +
            ",所属公司" +
            item.company +
            ",负责人" +
            item.linkman +
            ",联系电话" +
            item.tel;
            "枪支类型" +
            item.gunMode +
            ",责任人" +
            item.personInCharge +
            ",发证日期" +
            item.issueTime +
            ",有效日期" +
            item.validTime +
            ",发证单位" +
            item.issueUnit +
            ",用枪编号" +
            item.cardNumber;
          this.textArr.push(obj);
        });
      }
    },
    // 获取表格及地图上的数据
    getTableData(type) {
      let middleData = {
    getTableData() {
      this.mapData = {
        1: {
          table: [],
          geoData: []
@@ -1150,58 +1167,132 @@
          geoData: []
        }
      };
      getLiveLocationVoList({ type: type }).then(res => {
        if (res.data.code === 200) {
          let allData = res.data.data;
          allData.forEach(m => {
            let obj = {
              location: m.location,
              name: m.name,
              number: m.number,
              linkman: m.linkman,
              company: m.company,
              tel: m.tel,
              carNum: m.carNum
            };
      // 获取人员列表
      getSelectPeo({ type: 1, deptId: "1460129345988239362" }).then(res => {
        var records = res.data.data;
        records.forEach(m => {
          let obj = {
            address: m.address,
            realName: m.real_name,
            deptName: m.deptName,
            phone: m.phone,
            id: m.id
          };
          this.mapData[1]["geoData"].push([
            Number(this.peopleGps.LGTD),
            Number(this.peopleGps.LTTD)
          ]);
          this.mapData[1]["table"].push(obj);
        });
        this.peoNum = this.mapData[1]["table"].length;
      });
            // let geoObj = {
            //   name: type,
            //   value: [Number(m.longitude), Number(m.latitude)],
            // };
            if (m.type === 1) {
              middleData[m.type]["geoData"].push([
                Number(this.peopleGps.LGTD),
                Number(this.peopleGps.LTTD)
              ]);
              middleData[m.type]["table"].push(obj);
            } else if (m.type === 2) {
              middleData[m.type]["geoData"].push([
                Number(this.carGps.LGTD),
                Number(this.carGps.LTTD)
              ]);
              middleData[m.type]["table"].push(obj);
            } else {
              middleData[m.type]["geoData"].push([
                Number(m.longitude),
                Number(m.latitude)
              ]);
              middleData[m.type]["table"].push(obj);
            }
            // middleData[m.type]["geoData"].push([
            //   Number(m.longitude),
            //   Number(m.latitude)
            // ]);
            // middleData[m.type]["table"].push(obj);
      //获取车辆列表
      getSelectCar({
        type: 1,
        deptId: "1460129345988239362"
      }).then(res => {
        var records = res.data.data;
        records.forEach(m => {
          let obj = {
            mode: m.mode,
            personInCharge: m.person_in_charge,
            dateForProduction: m.date_for_production,
            detailObj: m.brand,
            // location: m.address,
            // name: m.name,
            // company: m.deptName,
            // tel: m.phone,
            id: m.id
          };
          this.mapData[2]["geoData"].push([
            Number(this.carGps.LGTD),
            Number(this.carGps.LTTD)
          ]);
          this.mapData[2]["table"].push(obj);
        });
        this.carNum = this.mapData[2]["table"].length;
        this.setMapData(2);
      });
      // 获取枪支列表
      getLiveLocationVoList({
        type: 3
      }).then(res => {
        if (res.data.code === 200) {
          let records = res.data.data;
          records.forEach(m => {
            let obj = {
              gunMode: m.number,
              personInCharge: m.linkman,
              issueTime: m.issueTime,
              validTime: m.validTime,
              issueUnit: m.issueUnit,
              cardNumber: m.gunNum,
              id: m.id
            };
            debugger
            this.mapData[3]["geoData"].push([
              Number(m.longitude),
              Number(m.latitude)
            ]);
            this.mapData[3]["table"].push(obj);
          });
          this.carNum = middleData[2]["table"].length;
          this.peoNum = middleData[1]["table"].length;
          this.gunNum = middleData[3]["table"].length;
          this.mapData = middleData;
          this.setMapData(2);
        } else {
          this.$message.error(res.msg);
          this.gunNum = this.mapData[3]["table"].length;
        }
      });
      // getLiveLocationVoList({ type: type }).then(res => {
      //   if (res.data.code === 200) {
      //     let allData = res.data.data;
      //     allData.forEach(m => {
      //       let obj = {
      //         location: m.location,
      //         name: m.name,
      //         number: m.number,
      //         linkman: m.linkman,
      //         company: m.company,
      //         tel: m.tel,
      //         carNum: m.carNum
      //       };
      //       // let geoObj = {
      //       //   name: type,
      //       //   value: [Number(m.longitude), Number(m.latitude)],
      //       // };
      //       // if (m.type === 1) {
      //       //   middleData[m.type]["geoData"].push([
      //       //     Number(this.peopleGps.LGTD),
      //       //     Number(this.peopleGps.LTTD)
      //       //   ]);
      //       //   middleData[m.type]["table"].push(obj);
      //       // } else if (m.type === 2) {
      //       //   middleData[m.type]["geoData"].push([
      //       //     Number(this.carGps.LGTD),
      //       //     Number(this.carGps.LTTD)
      //       //   ]);
      //       //   middleData[m.type]["table"].push(obj);
      //       // } else {
      //       //   middleData[m.type]["geoData"].push([
      //       //     Number(m.longitude),
      //       //     Number(m.latitude)
      //       //   ]);
      //       //   middleData[m.type]["table"].push(obj);
      //       // }
      //       middleData[m.type]["geoData"].push([
      //         Number(m.longitude),
      //         Number(m.latitude)
      //       ]);
      //       middleData[m.type]["table"].push(obj);
      //     });
      //     this.carNum = middleData[2]["table"].length;
      //     this.peoNum = middleData[1]["table"].length;
      //     this.gunNum = middleData[3]["table"].length;
      //     this.mapData = middleData;
      //     this.setMapData(2);
      //   } else {
      //     this.$message.error(res.msg);
      //   }
      // });
    },
    // 获取辖区列表
@@ -1248,7 +1339,7 @@
        this.getPunishList(1);
      } else if (type === "xs") {
        this.gridData.title = "现实表现差人员清单";
        this.getQualificationPages(1);
        this.getXsbxPages(1);
      }
    },
    getWgTable() {
@@ -1309,7 +1400,7 @@
      });
    },
    changePage(page) {
      if (this.gridData.type === "zg" || this.gridData.type === "xs") {
      if (this.gridData.type === "zg") {
        this.getQualificationPages(page);
      } else if (this.gridData.type === "wg") {
        this.gridData.data = this.dialogTable.wgTable.slice(
@@ -1330,22 +1421,42 @@
        this.getPunishList(page);
      } else if (this.gridData.type === "ywdx_gs") {
        this.showDialogTable(this.gridData.type);
      } else if (this.gridData.type === "xs") {
        this.getXsbxPages(page);
      }
    },
  // 现实表现差弹框
    getXsbxPages(page) {
      this.gridData.current = page;
      this.dialogloading = true;
      this.gridData.data = [];
      let types = this.poorPerformanceType.toString()
      let params = {
        current: this.gridData.current,
        size: 10,
        jurisdiction: this.value1,
        type:types
      };
      xsbxPages(params).then(res => {
        if (res.data.code === 200) {
          this.gridData.data = res.data.data.records;
          this.gridData.total = res.data.data.total;
        }
        this.dialogloading = false;
      });
    },
    getQualificationPages(page) {
      this.gridData.current = page;
      this.dialogloading = true;
      this.gridData.data = [];
      let types = this.poorPerformanceType.toString();
      let params = {
        current: this.gridData.current,
        size: 10,
        jurisdiction: this.value1
        jurisdiction: this.value1,
        examinationType: 1,
        types: types
      };
      if (this.gridData.type === "zg") {
        Object.assign(params, { examinationType: 1 });
      } else if (this.gridData.type === "xs") {
        Object.assign(params, { score: 3 });
      }
      qualificationPages(params).then(res => {
        if (res.data.code === 200) {
          this.gridData.data = res.data.data.records;
@@ -1489,7 +1600,7 @@
  },
  mounted() {
    this.getPeoplePosition();
    this.getCarPosition();
    // this.getCarPosition();
    this.initEchart();
    this.getHolderNum(0);
    // this.getPoorPerformance(3);
src/views/home/indexEchart.js
@@ -199,7 +199,7 @@
      type: "category",
      axisLabel: {
        color: "#fff",
        rotate: 40,
        rotate: 40
      },
      data: nameArr
    },
@@ -579,13 +579,13 @@
      name = "保安员名称";
      label =
        "押运人员:" +
        item.name +
        "<br />当前位置:" +
        item.location +
        item.realName +
        "<br />联系地址:" +
        item.address +
        "<br />所属公司:" +
        item.linkman +
        item.deptName +
        "<br />联系电话:" +
        item.tel;
        item.phone;
      symbolUrl = require("@/assets/img/people.png");
      obj = {
        name: label,
@@ -594,16 +594,14 @@
    } else if (type === 2) {
      name = "押运车辆";
      label =
        "押运车辆车牌号:" +
        item.carNum +
        "<br />当前位置:" +
        item.location +
        "<br />所属公司:" +
        item.company +
        "<br />联系人:" +
        item.linkman +
        "<br />联系电话:" +
        item.tel;
        "押运车辆型号:" +
        item.mode +
        "<br />责任人:" +
        item.personInCharge +
        "<br />出厂日期:" +
        item.dateForProduction +
        "<br />厂商:" +
        item.detailObj;
      symbolUrl = require("@/assets/img/car.png");
      obj = {
        name: label,
@@ -612,16 +610,18 @@
    } else if (type === 3) {
      name = "枪支";
      label =
        "枪支编号:" +
        item.number +
        "<br />当前位置:" +
        item.location +
        "<br />所属公司:" +
        item.company +
        "<br />负责人:" +
        item.linkman +
        "<br />联系电话:" +
        item.tel;
        "枪支类型:" +
        item.gunMode +
        "<br />责任人:" +
        item.personInCharge +
        "<br />发证日期:" +
        item.issueTime +
        "<br />有效日期:" +
        item.validTime +
        "<br />发证单位:" +
        item.issueUnit +
        "<br />用枪编号:" +
        item.cardNumber;
      symbolUrl = require("@/assets/img/gun.png");
      obj = {
        name: label,
src/views/loginRecord/loginRecord.vue
New file
@@ -0,0 +1,192 @@
<template>
    <div>
    <avue-crud
      :option="option"
      :data="data"
      :page.sync="page"
      :table-loading="loading"
      @on-load="onLoad(page)"
      @search-change="searchChange"
      @search-reset="searchReset"
      @refresh-change="refreshChange"
    >
    </avue-crud>
  </div>
</template>
<script>
import { getInformationLoginPage } from "@/api/loginRecord/loginRecord";
export default {
  data() {
    return {
      securityid: "",
      ExperienceVisible: false,
      loading: true,
      page: {
        pageSize: 10,
        currentPage: 1,
        total: 0,
      },
      query: {},
      data: [],
      option: {
        addBtn: false,
        searchShowBtn: false,
        columnBtn: false,
        menu: false,
        height: "auto",
        widtd: "auto",
        border: true,
        stripe: true,
        index: true,
        align: "center",
        column: [
          {
            label: "登录时间",
            prop: "releaseTimeRange",
            type: "datetime",
            format: "yyyy-MM-dd",
            valueFormat: "yyyy-MM-dd",
            searchRange: true,
            hide: true,
            search: true,
            searchSpan: 7,
            rules: [
              {
                required: true,
                message: "请输入登录时间",
                trigger: "blur",
              },
            ],
          },
          {
            label: "企业名称",
            prop: "deptName",
            disabled: true,
            overHidden: true,
            searchSpan: 5,
            search: true,
          },
          {
            label: "所属辖区",
            prop: "jurisdictionName",
            type: "select",
            dicData: [
              {
                label: "男",
                value: 1,
              },
              {
                label: "女",
                value: 2,
              },
              {
                label: "未知",
                value: 3,
              },
            ],
            display: false,
          },
          {
            label: "企业属性",
            prop: "stats",
            display: false,
            minWidth: 90,
            dicUrl: "/api/blade-system/dict-biz/dictionary?code=stats",
            props: {
              label: "dictValue",
              value: "dictKey",
            },
            type: "select",
            rules: [
              {
                required: true,
                message: "请选择企业属性",
                trigger: "blur",
              },
            ],
          },
          {
            label: "最近一次登录时间",
            prop: "createTime",
            minWidth: 100,
            display: false,
          },
          {
            label: "登录次数",
            prop: "num",
            disabled: false,
          },
          {
            label: "是否有登录",
            prop: "types",
            search: true,
            disabled: false,
            searchLabelWidth:110,
            type: "select",
            searchSpan: 5,
            hide:true,
            dicData: [
              {
                label: "全部",
                value: 3,
              },
              {
                label: "是",
                value: 2,
              },
              {
                label: "否",
                value: 1,
              },
            ],
          },
        ],
      },
    };
  },
  methods: {
    onLoad(page, params = {}) {
      const { releaseTimeRange } = this.query;
      let values = {
        ...params,
      };
      if (releaseTimeRange) {
        values = {
          ...params,
          startTime: releaseTimeRange[0],
          endTime: releaseTimeRange[1],
          ...this.query,
        };
        values.releaseTimeRange = null;
      }
      getInformationLoginPage(page.currentPage, page.pageSize, values).then((res) => {
        const data = res.data.data;
        this.data = data.records;
        this.page.total = data.total;
        this.loading = false;
      });
    },
    refreshChange() {
      this.onLoad(this.page, this.query);
    },
    searchChange(params, done) {
      this.query = params;
      this.page.currentPage = 1;
      this.refreshChange();
      done();
    },
    searchReset() {
      this.query = {};
      this.page.currentPage = 1;
      this.refreshChange();
    },
  },
};
</script>
<style scoped>
</style>
src/views/map/carGps.vue
@@ -2,7 +2,7 @@
 * @Author: Morpheus
 * @Date: 2021-07-05 16:31:54
 * @Last Modified by: Morpheus
 * @Last Modified time: 2021-11-25 15:24:53
 * @Last Modified time: 2021-11-30 17:32:40
 * menu-name 押运人员定位
 */
<template>
@@ -122,38 +122,24 @@
                </div>
            </el-card>
            <el-dialog title="视频监控"
            <el-dialog title=""
                       :modal='false'
                       :visible.sync="dialogVisible"
                       :before-close="dialogBeforeClose"
                       :close-on-click-modal='false'
                       @closed="videoClose"
                       class="car-video-box">
                <div class="container"
                     v-loading="videoLoading">
                    <video id="videoElementOne"
                           controls="controls"></video>
                    <video id="videoElementTwo"
                           controls="controls"></video>
                    <video id="videoElementThree"
                           controls="controls"></video>
                    <video id="videoElementFour"
                           controls="controls"></video>
                </div>
                <iframe src="/carVideo/parent.html"
                        ref="videoIframe"
                        frameborder="0"></iframe>
            </el-dialog>
        </el-col>
    </el-row>
</template>
<script>
import { getCarList, getPosition, getNewPosition, getTrack, getVideoSrc, getNewCarTark } from "@/api/map/car";
import axios from 'axios';
import { getCarList, getTrack, getNewPosition } from "@/api/map/car";
import carPng from "@/assets/img/car.png";
import flvjs from 'flv.js/dist/flv.min.js';
const d3 = require('d3-dsv');
export default {
    data () {
@@ -170,7 +156,6 @@
            detailObj: {},
            dialogVisible: false,
            map: null,
            videoLoading: true
        };
    },
    created () {
@@ -178,12 +163,17 @@
    },
    mounted () {
    },
    methods: {
        getList () {
            getCarList({
                current: this.page.currentPage,
                size: this.page.pageSize,
                type: 1
            }).then((res) => {
                var data = res.data.data;
                this.tableData = data.records;
@@ -203,17 +193,15 @@
        },
        positionClick (val) {
            // console.log(val)
            getNewPosition({ imei: "861636056082414" }).then((result) => {
            getNewPosition({ type: 2, workerId: val.carNumber }).then((result) => {
                var res = result.data.data;
                console.log(res, 123)
                if (JSON.stringify(res) != "{}") {
                    this.$refs.modalForm.addEntitys(
                        {
                            LGTD: res.x,
                            LTTD: res.y,
                            name: "车辆位置",
                            LGTD: Number(res.longitude),
                            LTTD: Number(res.latitude),
                            name: "枪支位置",
                        },
                        carPng,
                        0.8,
@@ -253,12 +241,6 @@
                this.disposeTime(startTime.getMinutes()) +
                ":" +
                this.disposeTime(startTime.getSeconds());
            const startTWO =
                startTime.getFullYear() + '' +
                this.disposeTime(startTime.getMonth() + 1) + '' +
                this.disposeTime(startTime.getDate());
            if (this.trackTime.length == 1) {
                this.$message({ message: "请选择结束时间", duration: 2000 });
                return;
@@ -277,48 +259,27 @@
                ":" +
                this.disposeTime(endTime.getSeconds());
            const endTWO =
                endTime.getFullYear() + '' +
                this.disposeTime(endTime.getMonth() + 1) + '' +
                this.disposeTime(endTime.getDate());
            getTrack({
                workerId: this.detailObj.id,
                workerId: this.detailObj.carNumber,
                type: 2,
                startTime: start,
                beginTime: start,
                endTime: end,
            }).then((res) => {
                var result = res.data.data;
                getNewCarTark({
                    beginTime: startTWO,
                    endTime: endTWO,
                    rectify: 0,
                    callbackId: 123
                }).then(res => {
                    axios.get('http://s16s652780.51mypc.cn/car/' + res.data.data).then(result => {
                        var ret = d3.csvParse(result.data)
                        let arr = [];
                        ret.forEach((item, index) => {
                            if (index < ret.length - 1) {
                                arr.push([Number(item.x), Number(item.y)]);
                            }
                        })
                        this.$refs.modalForm.addLines(arr);
                    })
                var array = result.sort(function (a, b) {
                    return a['record_time'] > b['record_time'] ? 1 : -1
                })
                // var result = res.data.data;
                // if (result.length > 1) {
                //     let arr = [];
                //     result.forEach((item) => {
                //         arr.push([Number(item.longitude), Number(item.latitude)]);
                //     });
                if (array.length > 1) {
                    let arr = [];
                //     this.$refs.modalForm.addLines(arr);
                // }
                    array.forEach((item) => {
                        arr.push([Number(item.longitude), Number(item.latitude)]);
                    });
                    this.$refs.modalForm.addLines(arr);
                }
            });
        },
        // 处理时间补零操作
@@ -351,101 +312,20 @@
                if (cont != undefined) {
                    that.dialogVisible = true
                    var oneflag = false, twoflag = false, threefalse = false, fourfalse = false;
                    getVideoSrc({ camera: 0, action: 'start' }).then(res => {
                        oneflag = true;
                        if (twoflag == true && threefalse == true && fourfalse == true) {
                            that.videoLoading = false;
                        }
                        if (flvjs.isSupported()) {
                            var videoElement = document.getElementById('videoElementOne')
                            var flvPlayer = flvjs.createPlayer({
                                // isLive: true,
                                // hasAudio: false,
                                type: 'flv',
                                url: res.data.data.live_url
                            })
                            flvPlayer.attachMediaElement(videoElement)
                            flvPlayer.load()
                            flvPlayer.play()
                        }
                    })
                    getVideoSrc({ camera: 1, action: 'start' }).then(res => {
                        twoflag = true;
                        if (oneflag == true && threefalse == true && fourfalse == true) {
                            that.videoLoading = false;
                        }
                        if (flvjs.isSupported()) {
                            var videoElement = document.getElementById('videoElementTwo')
                            var flvPlayer = flvjs.createPlayer({
                                // isLive: true,
                                // hasAudio: false,
                                type: 'flv',
                                url: res.data.data.live_url
                            })
                            flvPlayer.attachMediaElement(videoElement)
                            flvPlayer.load()
                            flvPlayer.play()
                        }
                    })
                    getVideoSrc({ camera: 2, action: 'start' }).then(res => {
                        threefalse = true;
                        if (oneflag == true && twoflag == true && fourfalse == true) {
                            that.videoLoading = false;
                        }
                        if (flvjs.isSupported()) {
                            var videoElement = document.getElementById('videoElementThree')
                            var flvPlayer = flvjs.createPlayer({
                                // isLive: true,
                                // hasAudio: false,
                                type: 'flv',
                                url: res.data.data.live_url
                            })
                            flvPlayer.attachMediaElement(videoElement)
                            flvPlayer.load()
                            flvPlayer.play()
                        }
                    })
                    getVideoSrc({ camera: 4, action: 'start' }).then(res => {
                        fourfalse = true;
                        if (oneflag == true && twoflag == true && threefalse == true) {
                            that.videoLoading = false;
                        }
                        if (flvjs.isSupported()) {
                            var videoElement = document.getElementById('videoElementFour')
                            var flvPlayer = flvjs.createPlayer({
                                // isLive: true,
                                // hasAudio: false,
                                type: 'flv',
                                url: res.data.data.live_url
                            })
                            flvPlayer.attachMediaElement(videoElement)
                            flvPlayer.load()
                            flvPlayer.play()
                        }
                    })
                    setTimeout(() => {
                        that.$refs.videoIframe.contentWindow.startVideo()
                    }, 3000);
                }
            })
        },
        videoClose () {
            this.dialogVisible = false;
            getVideoSrc({ camera: 0, action: 'stop' })
            getVideoSrc({ camera: 1, action: 'stop' })
            getVideoSrc({ camera: 2, action: 'stop' })
            getVideoSrc({ camera: 4, action: 'stop' })
        },
        dialogBeforeClose () {
            this.dialogVisible = false
            this.$refs.videoIframe.contentWindow.closeVideo()
        }
    },
@@ -544,50 +424,6 @@
                }
            }
        }
    }
}
.car-video-box {
    .container {
        position: relative;
        width: 100%;
        height: 100%;
        display: flex;
        flex-wrap: wrap;
        video {
            flex: 1;
            width: 50%;
            height: 50%;
            object-fit: fill;
        }
        // #videoElementOne {
        //     position: absolute;
        //     top: 0;
        //     left: 0;
        //     width: 50%;
        //     height: 50%;
        // }
        // #videoElementTwo {
        //     position: absolute;
        //     top: 0;
        //     right: 0;
        //     width: 50%;
        //     height: 50%;
        // }
        // #videoElementThree {
        //     position: absolute;
        //     bottom: 0;
        //     left: 0;
        //     width: 50%;
        //     height: 50%;
        // }
        // #videoElementFour {
        //     position: absolute;
        //     bottom: 0;
        //     right: 0;
        //     width: 50%;
        //     height: 50%;
        // }
    }
}
</style>
src/views/map/carGps1.vue
File was renamed from src/views/map/carGps copy.vue
@@ -2,7 +2,7 @@
 * @Author: Morpheus
 * @Date: 2021-07-05 16:31:54
 * @Last Modified by: Morpheus
 * @Last Modified time: 2021-11-17 09:20:19
 * @Last Modified time: 2021-11-26 17:27:56
 * menu-name 押运人员定位
 */
<template>
@@ -122,24 +122,38 @@
                </div>
            </el-card>
            <el-dialog title=""
            <el-dialog title="视频监控"
                       :modal='false'
                       :visible.sync="dialogVisible"
                       :before-close="dialogBeforeClose"
                       :close-on-click-modal='false'
                       @closed="videoClose"
                       class="car-video-box">
                <iframe src="/carVideo/parent.html"
                        ref="videoIframe"
                        frameborder="0"></iframe>
                <div class="container"
                     v-loading="videoLoading">
                    <video id="videoElementOne"
                           controls="controls"></video>
                    <video id="videoElementTwo"
                           controls="controls"></video>
                    <video id="videoElementThree"
                           controls="controls"></video>
                    <video id="videoElementFour"
                           controls="controls"></video>
                </div>
            </el-dialog>
        </el-col>
    </el-row>
</template>
<script>
import { getCarList, getPosition, getTrack } from "@/api/map/car";
import { getCarList, getPosition, getNewPosition, getTrack, getVideoSrc, getNewCarTark } from "@/api/map/car";
import axios from 'axios';
import carPng from "@/assets/img/car.png";
import flvjs from 'flv.js/dist/flv.min.js';
const d3 = require('d3-dsv');
export default {
    data () {
@@ -156,16 +170,13 @@
            detailObj: {},
            dialogVisible: false,
            map: null,
            videoLoading: true
        };
    },
    created () {
        this.getList();
    },
    mounted () {
    },
    methods: {
@@ -192,14 +203,17 @@
        },
        positionClick (val) {
            getPosition({ type: 2, workerId: val.id }).then((result) => {
            // console.log(val)
            getNewPosition({ imei: "861636056082414" }).then((result) => {
                var res = result.data.data;
                if (JSON.stringify(res) != "{}") {
                    this.$refs.modalForm.addEntitys(
                        {
                            LGTD: 115.86,
                            LTTD: 28.71,
                            name: "枪支位置",
                            LGTD: res.x,
                            LTTD: res.y,
                            name: "车辆位置",
                        },
                        carPng,
                        0.8,
@@ -239,6 +253,12 @@
                this.disposeTime(startTime.getMinutes()) +
                ":" +
                this.disposeTime(startTime.getSeconds());
            const startTWO =
                startTime.getFullYear() + '' +
                this.disposeTime(startTime.getMonth() + 1) + '' +
                this.disposeTime(startTime.getDate());
            if (this.trackTime.length == 1) {
                this.$message({ message: "请选择结束时间", duration: 2000 });
                return;
@@ -257,22 +277,48 @@
                ":" +
                this.disposeTime(endTime.getSeconds());
            const endTWO =
                endTime.getFullYear() + '' +
                this.disposeTime(endTime.getMonth() + 1) + '' +
                this.disposeTime(endTime.getDate());
            getTrack({
                workerId: this.detailObj.id,
                type: 2,
                startTime: start,
                endTime: end,
            }).then((res) => {
                var result = res.data.data;
                if (result.length > 1) {
                    let arr = [];
                    result.forEach((item) => {
                        arr.push([Number(item.longitude), Number(item.latitude)]);
                    });
                getNewCarTark({
                    beginTime: startTWO,
                    endTime: endTWO,
                    rectify: 0,
                    callbackId: 123
                }).then(res => {
                    axios.get('http://s16s652780.51mypc.cn/car/' + res.data.data).then(result => {
                        var ret = d3.csvParse(result.data)
                    this.$refs.modalForm.addLines(arr);
                }
                        let arr = [];
                        ret.forEach((item, index) => {
                            if (index < ret.length - 1) {
                                arr.push([Number(item.x), Number(item.y)]);
                            }
                        })
                        this.$refs.modalForm.addLines(arr);
                    })
                })
                // var result = res.data.data;
                // if (result.length > 1) {
                //     let arr = [];
                //     result.forEach((item) => {
                //         arr.push([Number(item.longitude), Number(item.latitude)]);
                //     });
                //     this.$refs.modalForm.addLines(arr);
                // }
            });
        },
        // 处理时间补零操作
@@ -305,20 +351,101 @@
                if (cont != undefined) {
                    that.dialogVisible = true
                    var oneflag = false, twoflag = false, threefalse = false, fourfalse = false;
                    getVideoSrc({ camera: 0, action: 'start' }).then(res => {
                        oneflag = true;
                        if (twoflag == true && threefalse == true && fourfalse == true) {
                            that.videoLoading = false;
                        }
                        if (flvjs.isSupported()) {
                            var videoElement = document.getElementById('videoElementOne')
                            var flvPlayer = flvjs.createPlayer({
                                // isLive: true,
                                // hasAudio: false,
                                type: 'flv',
                                url: res.data.data.live_url
                            })
                            flvPlayer.attachMediaElement(videoElement)
                            flvPlayer.load()
                            flvPlayer.play()
                        }
                    })
                  setTimeout(() =>{
                    that.$refs.videoIframe.contentWindow.startVideo()
                  },3000);
                    getVideoSrc({ camera: 1, action: 'start' }).then(res => {
                        twoflag = true;
                        if (oneflag == true && threefalse == true && fourfalse == true) {
                            that.videoLoading = false;
                        }
                        if (flvjs.isSupported()) {
                            var videoElement = document.getElementById('videoElementTwo')
                            var flvPlayer = flvjs.createPlayer({
                                // isLive: true,
                                // hasAudio: false,
                                type: 'flv',
                                url: res.data.data.live_url
                            })
                            flvPlayer.attachMediaElement(videoElement)
                            flvPlayer.load()
                            flvPlayer.play()
                        }
                    })
                    getVideoSrc({ camera: 2, action: 'start' }).then(res => {
                        threefalse = true;
                        if (oneflag == true && twoflag == true && fourfalse == true) {
                            that.videoLoading = false;
                        }
                        if (flvjs.isSupported()) {
                            var videoElement = document.getElementById('videoElementThree')
                            var flvPlayer = flvjs.createPlayer({
                                // isLive: true,
                                // hasAudio: false,
                                type: 'flv',
                                url: res.data.data.live_url
                            })
                            flvPlayer.attachMediaElement(videoElement)
                            flvPlayer.load()
                            flvPlayer.play()
                        }
                    })
                    getVideoSrc({ camera: 4, action: 'start' }).then(res => {
                        fourfalse = true;
                        if (oneflag == true && twoflag == true && threefalse == true) {
                            that.videoLoading = false;
                        }
                        if (flvjs.isSupported()) {
                            var videoElement = document.getElementById('videoElementFour')
                            var flvPlayer = flvjs.createPlayer({
                                // isLive: true,
                                // hasAudio: false,
                                type: 'flv',
                                url: res.data.data.live_url
                            })
                            flvPlayer.attachMediaElement(videoElement)
                            flvPlayer.load()
                            flvPlayer.play()
                        }
                    })
                }
            })
        },
        dialogBeforeClose() {
          this.dialogVisible = false
        videoClose () {
            this.dialogVisible = false;
            getVideoSrc({ camera: 0, action: 'stop' })
          this.$refs.videoIframe.contentWindow.closeVideo()
            getVideoSrc({ camera: 1, action: 'stop' })
            getVideoSrc({ camera: 2, action: 'stop' })
            getVideoSrc({ camera: 4, action: 'stop' })
        },
        dialogBeforeClose () {
            this.dialogVisible = false
        }
    },
@@ -419,4 +546,48 @@
        }
    }
}
.car-video-box {
    .container {
        position: relative;
        width: 100%;
        height: 100%;
        display: flex;
        flex-wrap: wrap;
        video {
            flex: 1;
            width: 50%;
            height: 50%;
            object-fit: fill;
        }
        // #videoElementOne {
        //     position: absolute;
        //     top: 0;
        //     left: 0;
        //     width: 50%;
        //     height: 50%;
        // }
        // #videoElementTwo {
        //     position: absolute;
        //     top: 0;
        //     right: 0;
        //     width: 50%;
        //     height: 50%;
        // }
        // #videoElementThree {
        //     position: absolute;
        //     bottom: 0;
        //     left: 0;
        //     width: 50%;
        //     height: 50%;
        // }
        // #videoElementFour {
        //     position: absolute;
        //     bottom: 0;
        //     right: 0;
        //     width: 50%;
        //     height: 50%;
        // }
    }
}
</style>
src/views/map/gunGps.vue
@@ -2,383 +2,396 @@
 * @Author: Morpheus
 * @Date: 2021-07-05 16:31:54
 * @Last Modified by: Morpheus
 * @Last Modified time: 2021-11-17 09:21:20
 * @Last Modified time: 2021-12-02 17:48:21
 * menu-name 押运人员定位
 */
<template>
  <el-row class="morpheus-map-box">
    <el-col :span="24">
      <el-card>
        <div class="card-body">
          <div>
            <Map ref="modalForm" />
          </div>
          <div>
            <div class="data-table map-people-table" v-show="!detailFlag">
              <el-table
                :data="tableData"
                style="width: 100%"
                v-loading="loading"
              >
                <el-table-column
                  align="center"
                  prop="gunMode"
                  label="枪支类型"
                  width="136"
                >
                </el-table-column>
    <el-row class="morpheus-map-box">
        <el-col :span="24">
            <el-card>
                <div class="card-body">
                    <div>
                        <Map ref="modalForm" />
                    </div>
                    <div>
                        <div class="data-table map-people-table"
                             v-show="!detailFlag">
                            <el-table :data="tableData"
                                      style="width: 100%"
                                      v-loading="loading">
                                <el-table-column align="center"
                                                 prop="gunMode"
                                                 label="枪支型号"
                                                 width="136">
                                </el-table-column>
                <el-table-column
                  align="center"
                  prop="personInCharge"
                  label="责任人"
                >
                </el-table-column>
                                <el-table-column align="center"
                                                 prop="gunCardNumber"
                                                 label="枪号">
                                </el-table-column>
                <el-table-column label="操作" width="136" align="center">
                  <template slot-scope="scope">
                    <el-button
                      @click="positionClick(scope.row)"
                      type="text"
                      size="small"
                      title="定位"
                    >
                      <i class="el-icon-location"></i>
                    </el-button>
                    <el-button
                      @click="detailsClick(scope.row)"
                      type="text"
                      size="small"
                      title="轨迹"
                    >
                      <i class="el-icon-position"></i>
                    </el-button>
                  </template>
                </el-table-column>
              </el-table>
              <div ref="tablePagination">
                <el-pagination
                  @size-change="handleSizeChange"
                  @current-change="handleCurrentChange"
                  background
                  :page-sizes="[10, 30, 50, 100]"
                  layout="sizes, prev, pager, next"
                  :current-page="page.currentPage"
                  :page-size="page.pageSize"
                  :pager-count="3"
                  :total="page.total"
                >
                </el-pagination>
              </div>
            </div>
            <div class="track-box" v-show="detailFlag">
              <div>
                <el-button @click="goOut" type="text" size="small" title="轨迹">
                  <i class="el-icon-back"></i>
                </el-button>
                                <el-table-column label="操作"
                                                 width="136"
                                                 align="center">
                                    <template slot-scope="scope">
                                        <el-button @click="positionClick(scope.row)"
                                                   type="text"
                                                   size="small"
                                                   title="定位">
                                            <i class="el-icon-location"></i>
                                        </el-button>
                                        <el-button @click="detailsClick(scope.row)"
                                                   type="text"
                                                   size="small"
                                                   title="轨迹">
                                            <i class="el-icon-position"></i>
                                        </el-button>
                                    </template>
                                </el-table-column>
                            </el-table>
                            <div ref="tablePagination">
                                <el-pagination @size-change="handleSizeChange"
                                               @current-change="handleCurrentChange"
                                               background
                                               :page-sizes="[10, 30, 50, 100]"
                                               layout="sizes, prev, pager, next"
                                               :current-page="page.currentPage"
                                               :page-size="page.pageSize"
                                               :pager-count="3"
                                               :total="page.total">
                                </el-pagination>
                            </div>
                        </div>
                        <div class="track-box"
                             v-show="detailFlag">
                            <div>
                                <el-button @click="goOut"
                                           type="text"
                                           size="small"
                                           title="轨迹">
                                    <i class="el-icon-back"></i>
                                </el-button>
                详细资料及轨迹查询
              </div>
              <ul>
                <li>
                  <div>枪支类型:</div>
                  <div>{{ detailObj.gunMode }}</div>
                </li>
                                详细资料及轨迹查询
                            </div>
                            <ul>
                                <li>
                                    <div>枪支类型:</div>
                                    <div>{{ detailObj.gunMode }}</div>
                                </li>
                <li>
                  <div>责任人:</div>
                  <div>{{ detailObj.personInCharge }}</div>
                </li>
                                <li>
                                    <div>枪号:</div>
                                    <div>{{ detailObj.gunCardNumber }}</div>
                                </li>
                <li>
                  <div>发证日期:</div>
                  <div>{{ detailObj.issueTime }}</div>
                </li>
                                <li>
                                    <div>护卫员:</div>
                                    <div>{{ detailObj.personInCharge }}</div>
                                </li>
                <li>
                  <div>有效日期:</div>
                  <div>{{ detailObj.validTime }}</div>
                </li>
                                <li>
                                    <div>选择时间:</div>
                                    <div class="datetime">
                                        <el-date-picker v-model="trackTime"
                                                        type="datetimerange"
                                                        range-separator="至"
                                                        start-placeholder="开始日期"
                                                        size="mini"
                                                        :editable="false"
                                                        end-placeholder="结束日期">
                                        </el-date-picker>
                                    </div>
                                </li>
                <li>
                  <div>发证单位:</div>
                  <div>{{ detailObj.issueUnit }}</div>
                </li>
                <li>
                  <div>用枪编号:</div>
                  <div>{{ detailObj.cardNumber }}</div>
                </li>
                <li>
                  <div>选择时间:</div>
                  <div class="datetime">
                    <el-date-picker
                      v-model="trackTime"
                      type="datetimerange"
                      range-separator="至"
                      start-placeholder="开始日期"
                      size="mini"
                      :editable="false"
                      end-placeholder="结束日期"
                    >
                    </el-date-picker>
                  </div>
                </li>
                <li>
                  <el-button type="text" @click="lookTrack">
                    查看轨迹
                  </el-button>
                </li>
              </ul>
            </div>
          </div>
        </div>
      </el-card>
    </el-col>
  </el-row>
                                <li>
                                    <el-button type="text"
                                               @click="lookTrack">
                                        查看轨迹
                                    </el-button>
                                </li>
                            </ul>
                        </div>
                    </div>
                </div>
            </el-card>
        </el-col>
    </el-row>
</template>
<script>
import { getGunList, getPosition, getTrack } from "@/api/map/gun";
import { getGunList, getTrack } from "@/api/map/gun";
import gunPng from "@/assets/img/gun.png";
export default {
  data() {
    return {
      tableData: [],
      page: {
        pageSize: 10,
        currentPage: 1,
        total: 0,
      },
      detailFlag: false,
      loading: true,
      trackTime: [],
      detailObj: {},
    };
  },
  created() {
    this.getList();
  },
  mounted() {},
  methods: {
    getList() {
      getGunList({
        current: this.page.currentPage,
        size: this.page.pageSize,
      }).then((res) => {
        var data = res.data.data;
        this.tableData = data.records;
        this.page.total = data.total;
        this.loading = false;
      });
    },
    handleSizeChange(val) {
      this.page.pageSize = val;
      this.loading = true;
      this.getList();
    },
    handleCurrentChange(val) {
      this.page.currentPage = val;
      this.loading = true;
      this.getList();
    },
    positionClick(val) {
      getPosition({ type: 3, workerId: val.id }).then((result) => {
        var res = result.data.data;
        if (JSON.stringify(res) != "{}") {
          this.$refs.modalForm.addEntitys(
            {
              LGTD: 115.86,
              LTTD: 28.71,
              name: "枪支位置",
    data () {
        return {
            tableData: [],
            page: {
                pageSize: 10,
                currentPage: 1,
                total: 0,
            },
            gunPng,
            0.8,
            "gunlayer",
            "gunAddlayer"
          );
        }
      });
            detailFlag: false,
            loading: true,
            trackTime: [],
            detailObj: {},
        };
    },
    detailsClick(row) {
      this.detailFlag = true;
      this.detailObj = {
        gunMode: row.gunMode,
        personInCharge: row.personInCharge,
        issueTime: row.issueTime,
        validTime: row.validTime,
        issueUnit: row.issueUnit,
        cardNumber: row.cardNumber,
        id: row.id,
      };
    created () {
        this.getList();
    },
    mounted () { },
    methods: {
        getList () {
            getGunList({
                current: this.page.currentPage,
                size: this.page.pageSize,
            }).then((res) => {
                var data = res.data.data;
                this.tableData = data.records;
                this.page.total = data.total;
                this.loading = false;
            });
        },
        handleSizeChange (val) {
            this.page.pageSize = val;
            this.loading = true;
            this.getList();
        },
        handleCurrentChange (val) {
            this.page.currentPage = val;
            this.loading = true;
            this.getList();
        },
    lookTrack() {
      if (this.trackTime.length == 0) {
        this.$message({ message: "请选择开始时间", duration: 2000 });
        return;
      }
      const startTime = new Date(this.trackTime[0]);
      const start =
        startTime.getFullYear() +
        "-" +
        this.disposeTime(startTime.getMonth() + 1) +
        "-" +
        this.disposeTime(startTime.getDate()) +
        " " +
        this.disposeTime(startTime.getHours()) +
        ":" +
        this.disposeTime(startTime.getMinutes()) +
        ":" +
        this.disposeTime(startTime.getSeconds());
      if (this.trackTime.length == 1) {
        this.$message({ message: "请选择结束时间", duration: 2000 });
        return;
      }
      const endTime = new Date(this.trackTime[1]);
      const end =
        endTime.getFullYear() +
        "-" +
        this.disposeTime(endTime.getMonth() + 1) +
        "-" +
        this.disposeTime(endTime.getDate()) +
        " " +
        this.disposeTime(endTime.getHours()) +
        ":" +
        this.disposeTime(endTime.getMinutes()) +
        ":" +
        this.disposeTime(endTime.getSeconds());
        positionClick (val) {
            var timestamp = Date.parse(new Date());
      getTrack({
        workerId: this.detailObj.id,
        type: 3,
        startTime: start,
        endTime: end,
      }).then((res) => {
        var result = res.data.data;
        if (result.length > 1) {
          let arr = [];
            var serverDate = new Date(timestamp);
          result.forEach((item) => {
            arr.push([Number(item.longitude), Number(item.latitude)]);
          });
            const start =
                (serverDate.getFullYear() - 5) +
                "-" +
                this.disposeTime(serverDate.getMonth() + 1) +
                "-" +
                this.disposeTime(serverDate.getDate()) +
                " " +
                this.disposeTime(serverDate.getHours()) +
                ":" +
                this.disposeTime(serverDate.getMinutes()) +
                ":" +
                this.disposeTime(serverDate.getSeconds());
          this.$refs.modalForm.addLines(arr);
        }
      });
            const end =
                serverDate.getFullYear() +
                "-" +
                this.disposeTime(serverDate.getMonth() + 1) +
                "-" +
                this.disposeTime(serverDate.getDate()) +
                " " +
                this.disposeTime(serverDate.getHours()) +
                ":" +
                this.disposeTime(serverDate.getMinutes()) +
                ":" +
                this.disposeTime(serverDate.getSeconds());
            getTrack({
                idCardNo: val.cardNo,
                startTime: "2020-05-02",
                endTime: "2020-05-03",
            }).then((res) => {
                var result = res.data.data.res;
                if (JSON.stringify(result) != "{}") {
                    var array = result.sort(function (a, b) {
                        return a['dwsj'] < b['dwsj'] ? 1 : -1
                    })
                    this.$refs.modalForm.addEntitys(
                        {
                            LGTD: Number(array[0].dwjd),
                            LTTD: Number(array[0].dwwd),
                            name: "枪支位置",
                        },
                        gunPng,
                        0.8,
                        "gunlayer",
                        "gunAddlayer"
                    );
                }
            });
        },
        detailsClick (row) {
            this.detailFlag = true;
            this.detailObj = {
                gunMode: row.gunMode,
                personInCharge: row.personInCharge,
                issueTime: row.issueTime,
                validTime: row.validTime,
                issueUnit: row.issueUnit,
                cardNumber: row.cardNumber,
                id: row.id,
            };
        },
        lookTrack () {
            if (this.trackTime.length == 0) {
                this.$message({ message: "请选择开始时间", duration: 2000 });
                return;
            }
            const startTime = new Date(this.trackTime[0]);
            const start =
                startTime.getFullYear() +
                "-" +
                this.disposeTime(startTime.getMonth() + 1) +
                "-" +
                this.disposeTime(startTime.getDate());
            if (this.trackTime.length == 1) {
                this.$message({ message: "请选择结束时间", duration: 2000 });
                return;
            }
            const endTime = new Date(this.trackTime[1]);
            const end =
                endTime.getFullYear() +
                "-" +
                this.disposeTime(endTime.getMonth() + 1) +
                "-" +
                this.disposeTime(endTime.getDate());
            getTrack({
                idCardNo: this.detailObj.cardNo,
                startTime: start,
                endTime: end,
            }).then((res) => {
                var result = res.data.data.res;
                if (result.length > 1) {
                    let arr = [];
                    var array = result.sort(function (a, b) {
                        return a['dwsj'] > b['dwsj'] ? 1 : -1
                    })
                    array.forEach((item) => {
                        arr.push([Number(item.dwjd), Number(item.dwwd)]);
                    });
                    this.$refs.modalForm.addLines(arr);
                }
            });
        },
        // 处理时间补零操作
        disposeTime (s) {
            return s < 10 ? "0" + s : s;
        },
        goOut () {
            this.detailFlag = !this.detailFlag;
            this.$refs.modalForm.clearLine();
            this.trackTime = [];
        },
    },
    // 处理时间补零操作
    disposeTime(s) {
      return s < 10 ? "0" + s : s;
    destroyed () {
        window.ol2d.removeLayer(this.peopleAddlayer);
    },
    goOut() {
      this.detailFlag = !this.detailFlag;
      this.$refs.modalForm.clearLine();
      this.trackTime = [];
    },
  },
  destroyed() {
    window.ol2d.removeLayer(this.peopleAddlayer);
  },
};
</script>
<style lang="scss" scoped>
.data-table {
  border: 1px solid transparent !important;
  box-shadow: 3px 3px 15px -2px rgb(0, 0, 0) !important;
    border: 1px solid transparent !important;
    box-shadow: 3px 3px 15px -2px rgb(0, 0, 0) !important;
}
.card-body {
  display: flex;
  & > div:first-child {
    flex: 8;
  }
  & > div:last-child {
    position: relative;
    flex: 3;
    & > div {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      & > .el-table {
        height: calc(100% - 34px);
      }
    display: flex;
    & > div:first-child {
        flex: 8;
    }
    .track-box {
      & > div {
    & > div:last-child {
        position: relative;
        height: 42px;
        line-height: 42px;
        text-align: center;
        color: #fff;
        border-bottom: 1px solid #fff;
        .el-button {
          padding: 0 !important;
          position: absolute;
          top: 4px;
          left: 4px;
          width: 42px;
          height: 28px;
          line-height: 28px;
        }
      }
      ul {
        margin: 0;
        padding: 0px;
      }
      li {
        margin: 0;
        padding: 0 4px;
        list-style: none;
        height: 42px;
        line-height: 42px;
        display: flex;
        color: #fff;
        border-bottom: 1px solid #fff;
        flex: 3;
        & > div {
          text-align: center;
        }
        & > div:first-child {
          flex: 2;
        }
        & > div:last-child {
          flex: 6;
          & > div {
            width: 100% !important;
          }
        }
      }
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
      li:last-child {
        text-align: center;
        position: relative;
        .el-button {
          position: absolute;
          top: 0;
          left: 0;
          right: 0;
          bottom: 0;
          margin: auto;
          padding: 0 !important;
          width: 68px;
          height: 32px;
          line-height: 32px;
            & > .el-table {
                height: calc(100% - 34px);
            }
        }
      }
        .track-box {
            & > div {
                position: relative;
                height: 42px;
                line-height: 42px;
                text-align: center;
                color: #fff;
                border-bottom: 1px solid #fff;
                .el-button {
                    padding: 0 !important;
                    position: absolute;
                    top: 4px;
                    left: 4px;
                    width: 42px;
                    height: 28px;
                    line-height: 28px;
                }
            }
            ul {
                margin: 0;
                padding: 0px;
            }
            li {
                margin: 0;
                padding: 0 4px;
                list-style: none;
                height: 42px;
                line-height: 42px;
                display: flex;
                color: #fff;
                border-bottom: 1px solid #fff;
                & > div {
                    text-align: center;
                }
                & > div:first-child {
                    flex: 2;
                }
                & > div:last-child {
                    flex: 6;
                    & > div {
                        width: 100% !important;
                    }
                }
            }
            li:last-child {
                text-align: center;
                position: relative;
                .el-button {
                    position: absolute;
                    top: 0;
                    left: 0;
                    right: 0;
                    bottom: 0;
                    margin: auto;
                    padding: 0 !important;
                    width: 68px;
                    height: 32px;
                    line-height: 32px;
                }
            }
        }
    }
  }
}
</style>
src/views/map/peopleGps.vue
@@ -2,7 +2,7 @@
 * @Author: Morpheus
 * @Date: 2021-07-05 16:31:54
 * @Last Modified by: Morpheus
 * @Last Modified time: 2021-11-25 13:48:23
 * @Last Modified time: 2021-11-30 17:12:19
 * menu-name 押运人员定位
 */
<template>
@@ -131,7 +131,7 @@
</template>
<script>
import { getPeopleList, getPosition, getTrack, getNewPeople, getNewTark } from "@/api/map/people";
import { getPeopleList, getTrack, getNewPeople } from "@/api/map/people";
import peoplePng from "@/assets/img/people.png";
export default {
@@ -161,6 +161,8 @@
            getPeopleList({
                current: this.page.currentPage,
                size: this.page.pageSize,
                deptId: '1460129345988239362',
                type: 1
            }).then((res) => {
                var data = res.data.data;
@@ -188,46 +190,25 @@
        },
        positionClick (val) {
            getPosition({ type: 1, workerId: val.id }).then((result) => {
                getNewPeople().then(res => {
                    if (JSON.stringify(res.data) != "{}") {
                        var arr = res.data.sort(function (a, b) {
                            return a['date'] < b['date'] ? 1 : -1
                        })
                        this.$refs.modalForm.addEntitys(
                            {
                                LGTD: arr[0].gis_jd,
                                LTTD: arr[0].gis_wd,
                                name: "人员位置",
                            },
                            peoplePng,
                            0.5,
                            "peoplelayer",
                            "peopleAddlayer"
                        );
                    }
                })
                // var res = result.data.data;
                // if (JSON.stringify(res) != "{}") {
                //     this.$refs.modalForm.addEntitys(
                //         {
                //             LGTD: res.longitude,
                //             LTTD: res.latitude,
                //             name: "人员位置",
                //         },
                //         peoplePng,
                //         0.5,
                //         "peoplelayer",
                //         "peopleAddlayer"
                //     );
                // }
            getNewPeople({ type: 1, workerId: val.id }).then((result) => {
                var res = result.data.data;
                if (JSON.stringify(res) != "{}") {
                    var csGps = window.coordtransform.bd09togcj02(Number(res.longitude), Number(res.latitude));
                    this.$refs.modalForm.addEntitys(
                        {
                            LGTD: csGps[0],
                            LTTD: csGps[1],
                            name: "人员位置",
                        },
                        peoplePng,
                        0.5,
                        "peoplelayer",
                        "peopleAddlayer"
                    );
                }
            });
        },
        detailsClick (row) {
@@ -280,38 +261,25 @@
            getTrack({
                workerId: this.detailObj.id,
                type: 1,
                startTime: start,
                beginTime: start,
                endTime: end,
            }).then((result) => {
            }).then((res) => {
                var result = res.data.data;
                getNewTark().then(res => {
                    if (JSON.stringify(res.data.track) != "{}") {
                        if (res.data.track.length > 1) {
                            let arr = [];
                            res.data.track.forEach((item) => {
                                arr.push([Number(item.gis_jd), Number(item.gis_wd)]);
                            });
                            this.$refs.modalForm.addLines(arr);
                        }
                    }
                var array = result.sort(function (a, b) {
                    return a['record_time'] > b['record_time'] ? 1 : -1
                })
                // var result = res.data.data;
                // if (result.length > 1) {
                //     let arr = [];
                if (array.length > 1) {
                    let arr = [];
                //     result.forEach((item) => {
                //         arr.push([Number(item.longitude), Number(item.latitude)]);
                //     });
                    array.forEach((item) => {
                        var csGps = window.coordtransform.bd09togcj02(Number(item.longitude), Number(item.latitude));
                        arr.push([csGps[0], csGps[1]]);
                    });
                //     this.$refs.modalForm.addLines(arr);
                // }
                    this.$refs.modalForm.addLines(arr);
                }
            });
        },
        // 处理时间补零操作
src/views/onSiteInspection/company.vue
@@ -52,8 +52,7 @@
  remove,
} from "@/api/onSiteInspection/company";
import { mapGetters } from "vuex";
// import { datasing } from "@api/qualificationExamination/datasignQualificationExamination";
import { datasing } from "./company";
import { getToken } from "@/util/auth";
import Qs from "qs";
export default {
@@ -234,29 +233,11 @@
            jurisdiction: this.userInfo.jurisdiction,
          };
          //导出
          // if (
          //   this.userInfo.role_name == "保安公司管理员" ||
          //   this.userInfo.role_name == "保安"
          // ) {
          //   //如果是保安公司管理员
          //   data["deptId"] = this.userInfo.dept_id;
          // }
          // if (this.userInfo.role_name == "培训公司管理员") {
          //   //如果是培训公司管理员
          //   data["trainUnitId"] = this.userInfo.dept_id;
          // }
          // data["examType"] = 2;
          //序列号url形式,用&拼接
          data = Qs.stringify(data);
          window.open(`/api/coinspect/export-coinspect?` + data);
        })
        .catch((action) => {
          // this.$message({
          //   type: 'info',
          //   message: action === 'cancel'
          //     ? '放弃保存并离开页面'
          //     : '停留在当前页面'
          // })
          window.open(`/api/coinspect/export-coinspect?${
              this.website.tokenHeader
            }=${getToken()}&` + data);
        });
    },
    getStartTime() {
src/views/onSiteInspection/data.js
@@ -1,26 +1,21 @@
var DIC = [
    {
        label: '招聘中',
        value: 1,
    }, {
        label: '停止招聘',
        value: 2,
    }
]
var DIC1 = [
    {
        label: '拥有',
        value: 1,
    }, {
        label: '未拥有',
        value: 2,
    }
]
var DIC = [{
    label: '招聘中',
    value: 1,
}, {
    label: '停止招聘',
    value: 2,
}]
var DIC1 = [{
    label: '拥有',
    value: 1,
}, {
    label: '未拥有',
    value: 2,
}]
var w = 160
    , s = 12;
export var column = [
    {
var w = 160,
    s = 12;
export var column = [{
        label: "id",
        prop: "id",
        hide: true,
@@ -51,11 +46,11 @@
        //     addDisplay: false
    },
    {
        label: "保安公司",
        label: "企业名称",
        prop: "deptId",
        rules: [{
            required: true,
            message: "请输入保安公司",
            message: "请输入企业名称",
            trigger: "blur"
        }],
        // addDisplay: true,
@@ -275,4 +270,4 @@
        //     trigger: "blur"
        // }],
    },
]
]
src/views/onSiteInspection/securityStaff.vue
@@ -52,7 +52,7 @@
  remove,
} from "@/api/onSiteInspection/securityStaff";
import { mapGetters } from "vuex";
import { datasing } from "./securityStaffdata";
import { getToken } from "@/util/auth";
import Qs from "qs";
export default {
@@ -343,30 +343,12 @@
            jurisdiction: this.userInfo.jurisdiction,
          };
          //导出
          // if (
          //   this.userInfo.role_name == "保安公司管理员" ||
          //   this.userInfo.role_name == "保安"
          // ) {
          //   //如果是保安公司管理员
          //   data["deptId"] = this.userInfo.dept_id;
          // }
          // if (this.userInfo.role_name == "培训公司管理员") {
          //   //如果是培训公司管理员
          //   data["trainUnitId"] = this.userInfo.dept_id;
          // }
          // data["examType"] = 2;
          //序列号url形式,用&拼接
          data = Qs.stringify(data);
          window.open(`/api/seinspect/export-seinspect?` + data);
          window.open(`/api/seinspect/export-seinspect?${
              this.website.tokenHeader
            }=${getToken()}&` + data);
        })
        .catch((action) => {
          // this.$message({
          //   type: 'info',
          //   message: action === 'cancel'
          //     ? '放弃保存并离开页面'
          //     : '停留在当前页面'
          // })
        });
    },
    getStartTime() {
      if (
src/views/qualificationExamination/data.js
@@ -1,26 +1,21 @@
var DIC = [
    {
        label: '招聘中',
        value: 1,
    }, {
        label: '停止招聘',
        value: 2,
    }
]
var DIC1 = [
    {
        label: '拥有',
        value: 1,
    }, {
        label: '未拥有',
        value: 2,
    }
]
var DIC = [{
    label: '招聘中',
    value: 1,
}, {
    label: '停止招聘',
    value: 2,
}]
var DIC1 = [{
    label: '拥有',
    value: 1,
}, {
    label: '未拥有',
    value: 2,
}]
var w = 160
    , s = 12;
export var column = [
    {
var w = 160,
    s = 12;
export var column = [{
        label: "id",
        prop: "id",
        hide: true,
@@ -51,11 +46,11 @@
        //     addDisplay: false
    },
    {
        label: "保安公司",
        label: "企业名称",
        prop: "deptId",
        rules: [{
            required: true,
            message: "请输入保安公司",
            message: "请输入企业名称",
            trigger: "blur"
        }],
        // addDisplay: true,
@@ -275,4 +270,4 @@
        //     trigger: "blur"
        // }],
    },
]
]
src/views/qualificationExamination/registrationTrainingQuery.vue
@@ -313,7 +313,7 @@
          //   overHidden: true,
          // },
          {
            label: "保安公司",
            label: "企业名称",
            prop: "deptName",
            // width: 70,
            // search: true,
src/views/qualificationExamination/scoreInquiry.vue
@@ -53,10 +53,9 @@
//   remove,
// } from "@/api/regulatoryInformation/regulatoryInformation";
import { mapGetters } from "vuex";
import { datasing } from "./dataqualificationExamination";
// import { getList } from "@/api/qualificationExamination/qualificationExamination";
import { getLisperexamScore } from "@/api/qualificationExamination/scoreInquiry";
import Qs from "qs";
import { getToken } from "@/util/auth";
import { getLisperexamScore } from "@/api/qualificationExamination/scoreInquiry";
export default {
  data() {
    return {
@@ -102,8 +101,7 @@
            prop: "examName",
            search: true,
            searchSpan: 5,
            // slot: true,
            // display: false,
            minWidth: 150,
          },
          {
            // label: "考试开始时间",
@@ -123,11 +121,6 @@
                trigger: "click",
              },
            ],
            // slot: true,
            // display: false,
            // formatter: function (row, value) {
            //   return (value = value + "%");
            // },
          },
          // {
          //   label: "考试结束时间",
@@ -151,12 +144,6 @@
          //   // formatter: function (row, value) {
          //   //   return (value = value + "万元");
          //   // },
          // },
          // {
          //   label: "考试类型",
          //   prop: "examinationaddress",
          //   // slot: true,
          //   // display: false,
          // },
          {
            label: "理论成绩",
@@ -226,8 +213,6 @@
                value: 3,
              },
            ],
            // slot: true,
            // display: false,
          },
          {
            label: "是否发证",
@@ -236,16 +221,7 @@
          },
        ],
      },
      data: [
        // {
        //   deptid: "江西众泰保安公司",
        //   punishtype: 2,
        //   punishreason: "非法施工",
        //   punishresult: "没收全部非法所得财产,并罚款3W元",
        //   punishtime: "2021-01-01",
        //   punisnum: 110110110120,
        // },
      ],
      data: [],
    };
  },
  computed: {
@@ -279,9 +255,6 @@
      })
        .then(() => {
          //获取查询条件
          // console.log(this.userInfo, 456);
          // console.log(this.query, 456);
          // return;
          var data = {
            startTime: this.query.startTime,
            endTime: this.query.endTime,
@@ -291,30 +264,14 @@
            jurisdiction: this.userInfo.jurisdiction,
          };
          //导出
          // if (
          //   this.userInfo.role_name == "保安公司管理员" ||
          //   this.userInfo.role_name == "保安"
          // ) {
          //   //如果是保安公司管理员
          //   data["deptId"] = this.userInfo.dept_id;
          // }
          // if (this.userInfo.role_name == "培训公司管理员") {
          //   //如果是培训公司管理员
          //   data["trainUnitId"] = this.userInfo.dept_id;
          // }
          // data["examType"] = 2;
          //序列号url形式,用&拼接
          data = Qs.stringify(data);
          window.open(`/api/examScore/export-examScore?` + data);
          window.open(
            `/api/examScore/export-examScore?${
              this.website.tokenHeader
            }=${getToken()}&` + data
          );
        })
        .catch((action) => {
          // this.$message({
          //   type: 'info',
          //   message: action === 'cancel'
          //     ? '放弃保存并离开页面'
          //     : '停留在当前页面'
          // })
        });
    },
    getStartTime() {
      if (
@@ -336,65 +293,6 @@
      }
      return "";
    },
    rowSave(row, done, loading) {
      adddata(row).then(
        () => {
          this.onLoad(this.page);
          this.$message({
            type: "success",
            message: "操作成功!",
          });
          done();
        },
        (error) => {
          window.console.log(error);
          loading();
        }
      );
    },
    rowUpdates(row, index, done, loading) {
      // console.log(42342);
      update(row).then(
        () => {
          this.onLoad(this.page);
          this.$message({
            type: "success",
            message: "操作成功!",
          });
          done();
        },
        (error) => {
          window.console.log(error);
          loading();
        }
      );
    },
    rowDel(row) {
      this.$confirm("确定将选择数据删除?", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning",
      })
        .then(() => {
          return remove(row.id);
        })
        .then(() => {
          this.onLoad(this.page);
          this.$message({
            type: "success",
            message: "操作成功!",
          });
        });
    },
    // beforeOpen(done, type) {
    //   if (["edit", "view"].includes(type)) {
    //     getDetail(this.form.id).then((res) => {
    //       this.form = res.data.data;
    //     });
    //   }
    //   done();
    // },
    searchReset() {
      this.query = {};
      this.onLoad(this.page);
@@ -424,7 +322,6 @@
      this.onLoad(this.page, this.query);
    },
    onLoad(page, params = {}) {
      // this.loading = false;
      this.loading = true;
      getLisperexamScore(
        page.currentPage,
@@ -448,65 +345,8 @@
        }
        this.$store.commit("setWindowSizeHeightAdd");
        this.loading = false;
        // for (var k in d) {
        //   if (d[k].qualified == 0) {
        //     d[k].qualified = "通过";
        //   } else if (d[k].qualified == 1) {
        //     d[k].qualified = "不通过";
        //   } else if (d[k].qualified == 2) {
        //     d[k].qualified = "暂未录入实操成绩";
        //   }
        // }
        // this.data = d;
        // console.log(this.data);
        // this.selectionClear();
      });
    },
    // onLoad(page, params = {}) {
    //   // this.loading = false;
    //   this.loading = true;
    //   //   getListJSON().then((res) => {
    //   //   axios
    //   //     .get(
    //   //       "../../api/qualificationExamination/signQualificationExamination.json"
    //   //     )
    //   //     .then((res) => {
    //   // page.currentPage,
    //   // page.pageSize,
    //   // Object.assign(params, this.query)
    //   if (datasing) {
    //     var res = datasing;
    //     console.log(res, "signQualificationExamination");
    //     const data = res.data;
    //     // this.page.total = data.total;
    //     var d = data.records;
    //     for (var k in d) {
    //       d[k].examination_mx = "正常";
    //       d[k].examination_type = "正常";
    //       d[k]["carid"] = "370111198807051124";
    //       d[k]["certificate"] = "拥有";
    //       d[k]["reviewTime"] = "2021-02-21";
    //       d[k]["results"] = "通过";
    //       d[k]["onjob"] = "是";
    //     }
    //     this.data = d;
    //     this.loading = false;
    //   }
    //   // this.selectionClear();
    //   // });
    // },
    // 行单击
    // handleRowClick(row) {
    //   // delete (row["name"]);
    //   var obj = row;
    //   obj["name"] = "保安公司详细资料";
    //   this.$router.push({
    //     path: `/securityCompany/index`,
    //     query: obj,
    //   });
    // },
  },
};
</script>
src/views/regulatoryInformation/data.js
@@ -1,26 +1,21 @@
var DIC = [
    {
        label: '招聘中',
        value: 1,
    }, {
        label: '停止招聘',
        value: 2,
    }
]
var DIC1 = [
    {
        label: '拥有',
        value: 1,
    }, {
        label: '未拥有',
        value: 2,
    }
]
var DIC = [{
    label: '招聘中',
    value: 1,
}, {
    label: '停止招聘',
    value: 2,
}]
var DIC1 = [{
    label: '拥有',
    value: 1,
}, {
    label: '未拥有',
    value: 2,
}]
var w = 160
    , s = 12;
export var column = [
    {
var w = 160,
    s = 12;
export var column = [{
        label: "id",
        prop: "id",
        hide: true,
@@ -44,11 +39,11 @@
    //     value: JSON.parse(window.localStorage.getItem("saber-userInfo")).content.dept_id
    // },//上面不显示
    {
        label: "保安公司",
        label: "企业名称",
        prop: "deptId",
        rules: [{
            required: true,
            message: "请输入保安公司",
            message: "请输入企业名称",
            trigger: "blur"
        }],
        // addDisplay: true,
@@ -268,4 +263,4 @@
        //     trigger: "blur"
        // }],
    },
]
]
src/views/securityCompany/armed.vue
@@ -409,13 +409,12 @@
    // 行单击
    handleRowClick(row) {
      // delete (row["name"]);
      var obj = row;
      obj["name"] = "保安公司详细信息";
      // console.log(obj, "obj");
      var data = JSON.stringify(obj);
      this.$router.push({
        path: `/securityCompany/index`,
        query: obj,
        query: {data:data},
      });
    },
  },
src/views/securityCompany/companyDetails copy.vue
New file
@@ -0,0 +1,752 @@
/*
 * @Author: Morpheus
 * @Date: 2021-07-05 16:31:54
 * @Last Modified by: Morpheus
 * @Last Modified time: 2021-11-09 19:38:27
 * menu-name 保安公司详细资料
 */
<template>
    <el-row class="morpheus-box">
        <el-col :span="24">
            <el-card>
                <div class="card-body">
                    <el-tabs v-model="activeName"
                             @tab-click="handleClick">
                        <el-tab-pane label="基本信息"
                                     name="first">
                            <el-form :model="form"
                                     label-position="right"
                                     size="mini"
                                     label-width="100px">
                                <el-row>
                                    <el-col span="12">
                                        <el-form-item label="公司名称">
                                            <el-input disabled="true"
                                                      v-model="form.enterprisename"
                                                      autocomplete="off"></el-input>
                                        </el-form-item>
                                    </el-col>
                                    <el-col span="12">
                                        <el-form-item label="法定代表人">
                                            <el-input disabled="true"
                                                      v-model="form.representative"
                                                      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.address"
                                                      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="jurisdictionSee"
                                                      autocomplete="off"></el-input>
                                        </el-form-item>
                                    </el-col>
                                    <el-col span="12">
                                        <el-form-item label="所属行业">
                                            <el-input disabled="true"
                                                      v-model="form.industry"
                                                      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.registration"
                                                      autocomplete="off"></el-input>
                                        </el-form-item>
                                    </el-col>
                                    <el-col span="12">
                                        <el-form-item label="公司类型">
                                            <el-input disabled="true"
                                                      v-model="form.enterprises"
                                                      autocomplete="off"></el-input>
                                        </el-form-item>
                                    </el-col>
                                </el-row>
                                <el-row>
                                    <el-col span="24">
                                        <el-form-item label="经营范围">
                                            <el-input type="textarea"
                                                      disabled="true"
                                                      v-model="form.business"
                                                      resize="none"
                                                      autocomplete="off"></el-input>
                                        </el-form-item>
                                    </el-col>
                                </el-row>
                            </el-form>
                        </el-tab-pane>
                        <el-tab-pane label="工商信息"
                                     name="second">
                            <el-form :model="form"
                                     label-position="right"
                                     size="mini"
                                     label-width="100px">
                                <!-- <el-row>
                  <el-col span="12">
                    <el-form-item label="公司名称">
                      <el-input
                        disabled="true"
                        v-model="form.enterprisename"
                        autocomplete="off"
                      ></el-input>
                    </el-form-item>
                  </el-col>
                  <el-col span="12">
                    <el-form-item label="法定代表人">
                      <el-input
                        disabled="true"
                        v-model="form.representative"
                        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.organizationcode"
                                                      autocomplete="off"></el-input>
                                        </el-form-item>
                                    </el-col>
                                    <el-col span="12">
                                        <el-form-item label="注册资金">
                                            <el-input disabled="true"
                                                      v-model="form.registeredcapital"
                                                      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.capital"
                        autocomplete="off"
                      ></el-input>
                    </el-form-item>
                  </el-col> -->
                                    <el-col span="12">
                                        <el-form-item label="注册时间">
                                            <el-input disabled="true"
                                                      v-model="form.establishtime"
                                                      autocomplete="off"></el-input>
                                        </el-form-item>
                                    </el-col>
                                    <el-col span="12">
                                        <el-form-item label="工商注册号">
                                            <el-input disabled="true"
                                                      v-model="form.registrationnumber"
                                                      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.registrationnumber"
                        autocomplete="off"
                      ></el-input>
                    </el-form-item>
                  </el-col>
                </el-row> -->
                            </el-form>
                        </el-tab-pane>
                        <el-tab-pane label="投资人信息"
                                     name="third">
                            <avue-crud class="company-box"
                                       :option="investorOption"
                                       :search.sync="investorSearch"
                                       :table-loading="investorLoading"
                                       :data="investorData"
                                       ref="investorCrud"
                                       :page.sync="investorPage"
                                       @selection-change="investorSelectionChange"
                                       @search-change="investorSearchChange"
                                       @search-reset="investorSearchReset"
                                       @current-change="investorCurrentChange"
                                       @size-change="investorSizeChange"
                                       @refresh-change="investorSizerefresh"
                                       @on-load="investorOnLoad">
                            </avue-crud>
                        </el-tab-pane>
                        <el-tab-pane label="管理人信息"
                                     name="fourth">
                            <avue-crud class="company-box"
                                       :option="manageOption"
                                       :search.sync="manageSearch"
                                       :table-loading="manageLoading"
                                       :data="manageData"
                                       ref="manageCrud"
                                       :page.sync="managePage"
                                       @selection-change="manageSelectionChange"
                                       @search-change="manageSearchChange"
                                       @search-reset="manageSearchReset"
                                       @current-change="manageCurrentChange"
                                       @size-change="manageSizeChange"
                                       @refresh-change="manageSizerefresh"
                                       @on-load="manageOnLoad">
                            </avue-crud>
                        </el-tab-pane>
                        <el-tab-pane label="装备信息"
                                     name="fifth">
                            <equipment :forms="forms"
                                       v-if="seestaff"></equipment>
                        </el-tab-pane>
                        <el-tab-pane label="保安员信息"
                                     name="sixth">
                            <staff :forms="forms"
                                   v-if="seestaff"
                                   :doit="seestaff2"></staff>
                        </el-tab-pane>
                        <el-tab-pane label="处罚信息"
                                     name="seventh">
                            <punish :forms="forms"
                                    v-if="seestaff"></punish>
                        </el-tab-pane>
                        <el-tab-pane label="服务对象"
                                     name="eighth">
                            <service :form="forms"
                                     v-if="seestaff"
                                     :refresh="seestaff3"></service>
                        </el-tab-pane>
                        <!-- <el-tab-pane label="其他附件" name="eighth">
              <enclosure :form="form"></enclosure>
            </el-tab-pane> -->
                        <el-tab-pane label="营业执照"
                                     name="ninth">
                            <div class="businessLicenses">
                                <el-container>
                                    <el-main>
                                        <div class="title"
                                             v-if="businessLicenseUrl == ''">
                                            未上传营业执照
                                        </div>
                                        <img class="businessLicensess"
                                             :src="businessLicenseUrl"
                                             alt=""
                                             v-else />
                                    </el-main>
                                </el-container>
                            </div>
                        </el-tab-pane>
                        <el-tab-pane label="许可证"
                                     name="tenth">
                            <div class="businessLicenses">
                                <el-container>
                                    <el-main>
                                        <div class="title"
                                             v-if="licenceUrl == ''">
                                            未上传许可证
                                        </div>
                                        <img class="Licenses"
                                             :src="licenceUrl"
                                             alt=""
                                             v-else />
                                    </el-main>
                                </el-container>
                            </div>
                        </el-tab-pane>
                    </el-tabs>
                </div>
            </el-card>
        </el-col>
    </el-row>
</template>
<script>
import {
    manifestationList,
    dispatchList,
    honorchList,
    trainList,
    examinationList,
    getInvestorList,
    getManageList,
} from "@/api/securityCompany/companyDetails";
import equipment from "./computents/equipment.vue"; //装备管理
import staff from "./computents/staff.vue"; //保安员信息
import punish from "./computents/punish.vue"; //处罚信息
import service from "./computents/service.vue"; //服务对象
// import enclosure from "./computents/enclosure.vue"; //其他附件
import { getList } from "@/api/securityCompany/security"; //保安公司
export default {
    components: {
        equipment: equipment,
        staff: staff,
        punish: punish,
        service: service,
        // enclosure: enclosure,
    },
    data () {
        var w = 160,
            s = 12;
        return {
            businessLicenseUrl: "",
            licenceUrl: "",
            activeName: "first",
            form: {},
            manifestationData: [],
            dispatchData: [],
            honorchData: [],
            trainData: [],
            examinationData: [],
            investorOption: {
                // 操作栏多余按钮去除
                delBtn: false,
                editBtn: false,
                addBtn: false,
                menu: false,
                selection: true,
                align: "center",
                height: "auto",
                calcHeight: 270,
                tip: false,
                searchShow: false,
                searchShowBtn: false,
                searchMenuSpan: 4,
                index: false,
                viewBtn: true,
                //dialogType: 'drawer',
                dialogClickModal: false,
                // 操作栏宽度
                menuWidth: 156,
                column: [
                    {
                        label: "id",
                        prop: "id",
                        hide: true,
                        addDisplay: false,
                        editDisplay: false,
                    },
                    {
                        label: "股东",
                        prop: "shareholder",
                        searchLabelWidth: 55,
                        search: true,
                        labelWidth: w,
                        span: s,
                    },
                    {
                        label: "持股比例(%)",
                        prop: "shareholdingratio",
                        labelWidth: w,
                        span: s,
                    },
                    //  {
                    //     label: "最终受益股份",
                    //     prop: "beneficial",
                    // },
                    {
                        label: "出资金额(万元)",
                        prop: "capital",
                        labelWidth: w,
                        span: s,
                    },
                    {
                        label: "出资时间",
                        prop: "capitaltime",
                        type: "date",
                        format: "yyyy-MM-dd hh:mm:ss",
                        valueFormat: "timestamp",
                        labelWidth: w,
                        span: s,
                    },
                    {
                        label: "身份证",
                        prop: "cardid",
                        labelWidth: w,
                        // span: s,
                        search: true,
                    },
                    {
                        label: "联系电话",
                        prop: "cell",
                        labelWidth: w,
                        span: s,
                    },
                    {
                        label: "统一社会信用代码",
                        prop: "creditcode",
                        hide: true,
                        addDisplay: false,
                        editDisplay: false,
                        labelWidth: w,
                        span: s,
                    },
                ],
            },
            investorSearch: {},
            investorLoading: true,
            investorData: [],
            investorPage: {
                pageSize: 10,
                currentPage: 1,
                total: 0,
            },
            investorQuery: {},
            investorSelectionList: [],
            manageOption: {
                // 操作栏多余按钮去除
                delBtn: false,
                editBtn: false,
                addBtn: false,
                selection: true,
                searchShowBtn: false,
                menu: false,
                align: "center",
                height: "auto",
                calcHeight: 270,
                tip: false,
                searchShow: false,
                searchMenuSpan: 4,
                index: false,
                viewBtn: true,
                //dialogType: 'drawer',
                dialogClickModal: false,
                // 操作栏宽度
                menuWidth: 156,
                height: 600,
                column: [
                    {
                        label: "管理人姓名",
                        prop: "name",
                        slot: true,
                        display: false,
                    },
                    {
                        label: "职务",
                        prop: "post",
                        slot: true,
                        display: false,
                    },
                    {
                        label: "身份证号",
                        prop: "cardid",
                        slot: true,
                        display: false,
                    },
                    {
                        label: "联系电话",
                        prop: "cell",
                        slot: true,
                        display: false,
                    },
                ],
            },
            manageSearch: {},
            manageLoading: true,
            manageData: [],
            managePage: {
                pageSize: 10,
                currentPage: 1,
                total: 0,
            },
            manageQuery: {},
            manageSelectionList: [],
            forms: {}, //防串数据
            jurisdictionSee: "", //中文辖区
            seestaff: false,
            seestaff2: false,
            seestaff3: true,
        };
    },
    created () {
        var flag = false,
            i = 0,
            ind = null,
            that = this;
        this.$store.state.tags.tagList.forEach((item, index) => {
            if (
                item.label == "保安公司详细资料" ||
                item.label == "保安公司详细信息"
            ) {
                if (flag == false) {
                    ind = index;
                    flag = true;
                }
                i++;
            }
        });
        if (i > 1) {
            this.$store.state.tags.tagList.splice(ind, 1);
        }
        if (this.$route.query.fromSecunityGuardId) {
            var page = {
                currentPage: 1,
                pageSize: 10,
            },
                params = { departmentid: this.$route.query.fromSecunityGuardId };
            getList(page.currentPage, page.pageSize, params).then((res) => {
                that.form = res.data.data.records[0];
                this.jurisdictionSee = this.form.jurisdictionName;
                that.forms = res.data.data.records[0];
                that.seestaff = true;
                that.businessLicenseUrl = res.data.data.records[0].businessLicense;
                that.licenceUrl = res.data.data.records[0].licence;
            });
            // })
        } else {
            this.form = this.$route.query;
            this.jurisdictionSee = this.form.$jurisdiction;
            this.forms = this.$route.query;
            this.seestaff = true;
            this.getFromData({
                currentPage: 1,
                pageSize: 10,
            });
        }
    },
    methods: {
        getFromData (page, params = {}) {
            var that = this;
            params["departmentid"] = this.forms.departmentid;
            getList(page.currentPage, page.pageSize, params).then((res) => {
                that.form = res.data.data.records[0];
                this.businessLicenseUrl = res.data.data.records[0].businessLicense;
                this.licenceUrl = res.data.data.records[0].licence;
            });
        },
        // inspects(d, val) {
        //   var a = "";
        //   var doit = (d, val) => {
        //     for (let k in d) {
        //       if (d[k].key == val) {
        //         a = d[k].title;
        //         break;
        //       } else {
        //         if (d[k].hasChildren) {
        //           doit(d[k].children, val);
        //         } else {
        //         }
        //       }
        //     }
        //   };
        //   doit(d, val);
        //   // if (a == "") {
        //   //   a = val;
        //   // }
        //   return a;
        // },
        handleClick (tab) {
            if (tab.index == 2) {
                this.investorSearchReset();
            } else if (tab.index == 3) {
                this.manageSearchReset();
            } else if (tab.index == 5) {
                this.seestaff2 = !this.seestaff2;
            } else if (tab.index == 7) {
                this.seestaff3 = !this.seestaff3;
            } else {
                this.getFromData({
                    currentPage: 1,
                    pageSize: 10,
                });
            }
            //  else if (tab.index == 3) {
            //   this.getHonorchData();
            // } else if (tab.index == 4) {
            //   this.getTrainData();
            // } else if (tab.index == 5) {
            //   this.getExaminationData();
            // }
            //
        },
        getManifestationData () {
            manifestationList(this.forms.cardid).then((res) => {
                this.manifestationData = res.data.data.records;
                this.manifestationData.forEach((item) => {
                    item.name = this.forms.realName;
                    item.time = item.time.substring(0, 10);
                });
            });
        },
        getDispatchData () {
            dispatchList(this.forms.cardid).then((res) => {
                this.dispatchData = res.data.data.records;
            });
        },
        getHonorchData () {
            honorchList(this.forms.cardid).then((res) => {
                this.honorchData = res.data.data.records;
            });
        },
        getTrainData () {
            trainList(this.forms.cardid).then((res) => {
                this.trainData = res.data.data;
                this.trainData.forEach((item) => {
                    if (item.sex == 1) {
                        item.sex = "男";
                    } else {
                        item.sex = "女";
                    }
                });
            });
        },
        getExaminationData () {
            examinationList(this.forms.cardid).then((res) => {
                this.examinationData = res.data.data;
                this.examinationData.forEach((item) => {
                    if (item.stat == 1) {
                        item.stat = "不通过";
                    } else {
                        item.stat = "通过";
                    }
                });
            });
        },
        investorSizerefresh () {
            this.investorOnLoad(this.investorPage, this.investorQuery);
        },
        investorOnLoad (page, params = {}) {
            this.investorLoading = true;
            params["deptId"] = this.form.departmentid;
            getInvestorList(
                page.currentPage,
                page.pageSize,
                Object.assign(params, this.investorQuery)
            ).then((res) => {
                const data = res.data.data;
                this.investorPage.total = data.total;
                this.investorData = data.records;
                this.investorLoading = false;
                this.$refs.investorCrud.refreshTable();
                this.$refs.investorCrud.doLayout();
                this.investorSelectionClear();
            });
        },
        investorSelectionClear () {
            this.investorSelectionList = [];
            this.$refs.investorCrud.toggleSelection();
        },
        investorSelectionChange (list) {
            this.investorSelectionList = list;
        },
        investorSearchChange (params, done) {
            this.investorQuery = params;
            this.investorPage.currentPage = 1;
            this.investorOnLoad(this.investorPage, params);
            done();
        },
        investorSearchReset () {
            this.investorQuery = {};
            this.investorOnLoad(this.investorPage);
        },
        investorCurrentChange (currentPage) {
            this.investorPage.currentPage = currentPage;
        },
        investorSizeChange (pageSize) {
            this.investorPage.pageSize = pageSize;
        },
        manageSizerefresh () {
            this.manageOnLoad(this.managePage, this.manageQuery);
        },
        manageOnLoad (page, params = {}) {
            this.manageLoading = true;
            params["deptId"] = this.form.departmentid;
            getManageList(
                page.currentPage,
                page.pageSize,
                Object.assign(params, this.manageQuery)
            ).then((res) => {
                const data = res.data.data;
                this.managePage.total = data.total;
                this.manageData = data.records;
                this.manageLoading = false;
                this.$refs.manageCrud.refreshTable();
                this.$refs.manageCrud.doLayout();
                this.manageSelectionClear();
            });
        },
        manageSelectionClear () {
            this.manageSelectionList = [];
            this.$refs.manageCrud.toggleSelection();
        },
        manageSelectionChange (list) {
            this.manageSelectionList = list;
        },
        manageSearchChange (params, done) {
            this.manageQuery = params;
            this.managePage.currentPage = 1;
            this.manageOnLoad(this.managePage, params);
            done();
        },
        manageSearchReset () {
            this.manageQuery = {};
            this.manageOnLoad(this.managePage);
        },
        manageCurrentChange (currentPage) {
            this.managePage.currentPage = currentPage;
        },
        manageSizeChange (pageSize) {
            this.managePage.pageSize = pageSize;
        },
    },
};
</script>
<style lang="scss" scoped>
.businessLicenses {
    padding-top: 15px;
    background-color: transparent;
}
.el-main {
    background-color: transparent;
    color: #333;
    text-align: center;
    // position: relative;
    // right: 5%;
}
.businessLicensess {
    height: 680px;
    width: 450px;
}
.Licenses {
    height: 680px;
    width: 1048px;
}
.title {
    color: #fff;
}
</style>
src/views/securityCompany/companyDetails.vue
@@ -6,100 +6,22 @@
 * menu-name 保安公司详细资料
 */
<template>
    <el-row class="morpheus-box">
        <el-col :span="24">
            <el-card>
                <div class="card-body">
                    <el-tabs v-model="activeName"
                             @tab-click="handleClick">
                        <el-tab-pane label="基本信息"
                                     name="first">
                            <el-form :model="form"
                                     label-position="right"
                                     size="mini"
                                     label-width="100px">
                                <el-row>
                                    <el-col span="12">
                                        <el-form-item label="公司名称">
                                            <el-input disabled="true"
                                                      v-model="form.enterprisename"
                                                      autocomplete="off"></el-input>
                                        </el-form-item>
                                    </el-col>
                                    <el-col span="12">
                                        <el-form-item label="法定代表人">
                                            <el-input disabled="true"
                                                      v-model="form.representative"
                                                      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.address"
                                                      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="jurisdictionSee"
                                                      autocomplete="off"></el-input>
                                        </el-form-item>
                                    </el-col>
                                    <el-col span="12">
                                        <el-form-item label="所属行业">
                                            <el-input disabled="true"
                                                      v-model="form.industry"
                                                      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.registration"
                                                      autocomplete="off"></el-input>
                                        </el-form-item>
                                    </el-col>
                                    <el-col span="12">
                                        <el-form-item label="公司类型">
                                            <el-input disabled="true"
                                                      v-model="form.enterprises"
                                                      autocomplete="off"></el-input>
                                        </el-form-item>
                                    </el-col>
                                </el-row>
                                <el-row>
                                    <el-col span="24">
                                        <el-form-item label="经营范围">
                                            <el-input type="textarea"
                                                      disabled="true"
                                                      v-model="form.business"
                                                      resize="none"
                                                      autocomplete="off"></el-input>
                                        </el-form-item>
                                    </el-col>
                                </el-row>
                            </el-form>
                        </el-tab-pane>
                        <el-tab-pane label="工商信息"
                                     name="second">
                            <el-form :model="form"
                                     label-position="right"
                                     size="mini"
                                     label-width="100px">
                                <!-- <el-row>
  <el-row class="morpheus-box">
    <el-col :span="24">
      <el-card>
        <div class="card-body">
          <el-tabs v-model="activeName" @tab-click="handleClick">
            <!-- 基本信息 -->
            <el-tab-pane :label="baseTitle" name="first">
              <el-form
                :model="form"
                label-position="right"
                size="mini"
                label-width="100px"
              >
                <el-row>
                  <el-col span="12">
                    <el-form-item label="公司名称">
                    <el-form-item label="企业名称" label-width="100px">
                      <el-input
                        disabled="true"
                        v-model="form.enterprisename"
@@ -108,7 +30,21 @@
                    </el-form-item>
                  </el-col>
                  <el-col span="12">
                    <el-form-item label="法定代表人">
                    <el-form-item label="所属辖区" label-width="160px">
                      <el-input
                        disabled="true"
                        v-model="form.jurisdictionName"
                        autocomplete="off"
                      ></el-input>
                    </el-form-item>
                  </el-col>
                </el-row>
                <el-row v-if="representativeVisiable">
                  <el-col span="12">
                    <el-form-item
                      :label="representativeLabel"
                      label-width="100px"
                    >
                      <el-input
                        disabled="true"
                        v-model="form.representative"
@@ -116,176 +52,491 @@
                      ></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.organizationcode"
                                                      autocomplete="off"></el-input>
                                        </el-form-item>
                                    </el-col>
                                    <el-col span="12">
                                        <el-form-item label="注册资金">
                                            <el-input disabled="true"
                                                      v-model="form.registeredcapital"
                                                      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.capital"
                        autocomplete="off"
                      ></el-input>
                    </el-form-item>
                  </el-col> -->
                                    <el-col span="12">
                                        <el-form-item label="注册时间">
                                            <el-input disabled="true"
                                                      v-model="form.establishtime"
                                                      autocomplete="off"></el-input>
                                        </el-form-item>
                                    </el-col>
                                    <el-col span="12">
                                        <el-form-item label="工商注册号">
                                            <el-input disabled="true"
                                                      v-model="form.registrationnumber"
                                                      autocomplete="off"></el-input>
                                        </el-form-item>
                                    </el-col>
                                </el-row>
                                <!-- <el-row>
                  <el-col span="12">
                    <el-form-item label="工商注册号">
                    <el-form-item
                      :label="representativecellLabel"
                      label-width="160px"
                    >
                      <el-input
                        disabled="true"
                        v-model="form.registrationnumber"
                        v-model="form.representativecell"
                        autocomplete="off"
                      ></el-input>
                    </el-form-item>
                  </el-col>
                </el-row> -->
                            </el-form>
                        </el-tab-pane>
                        <el-tab-pane label="投资人信息"
                                     name="third">
                            <avue-crud class="company-box"
                                       :option="investorOption"
                                       :search.sync="investorSearch"
                                       :table-loading="investorLoading"
                                       :data="investorData"
                                       ref="investorCrud"
                                       :page.sync="investorPage"
                                       @selection-change="investorSelectionChange"
                                       @search-change="investorSearchChange"
                                       @search-reset="investorSearchReset"
                                       @current-change="investorCurrentChange"
                                       @size-change="investorSizeChange"
                                       @refresh-change="investorSizerefresh"
                                       @on-load="investorOnLoad">
                            </avue-crud>
                        </el-tab-pane>
                        <el-tab-pane label="管理人信息"
                                     name="fourth">
                            <avue-crud class="company-box"
                                       :option="manageOption"
                                       :search.sync="manageSearch"
                                       :table-loading="manageLoading"
                                       :data="manageData"
                                       ref="manageCrud"
                                       :page.sync="managePage"
                                       @selection-change="manageSelectionChange"
                                       @search-change="manageSearchChange"
                                       @search-reset="manageSearchReset"
                                       @current-change="manageCurrentChange"
                                       @size-change="manageSizeChange"
                                       @refresh-change="manageSizerefresh"
                                       @on-load="manageOnLoad">
                            </avue-crud>
                        </el-tab-pane>
                        <el-tab-pane label="装备信息"
                                     name="fifth">
                            <equipment :forms="forms"
                                       v-if="seestaff"></equipment>
                        </el-tab-pane>
                        <el-tab-pane label="保安员信息"
                                     name="sixth">
                            <staff :forms="forms"
                                   v-if="seestaff"
                                   :doit="seestaff2"></staff>
                        </el-tab-pane>
                        <el-tab-pane label="处罚信息"
                                     name="seventh">
                            <punish :forms="forms"
                                    v-if="seestaff"></punish>
                        </el-tab-pane>
                        <el-tab-pane label="服务对象"
                                     name="eighth">
                            <service :form="forms"
                                     v-if="seestaff"
                                     :refresh="seestaff3"></service>
                        </el-tab-pane>
                        <!-- <el-tab-pane label="其他附件" name="eighth">
                </el-row>
                <el-row>
                  <el-col span="12">
                    <el-form-item label="联系人" label-width="100px">
                      <el-input
                        disabled="true"
                        v-model="form.contacts"
                        autocomplete="off"
                      ></el-input>
                    </el-form-item>
                  </el-col>
                  <el-col span="12">
                    <el-form-item label="联系电话" label-width="160px">
                      <el-input
                        disabled="true"
                        v-model="form.contactscell"
                        autocomplete="off"
                      ></el-input>
                    </el-form-item>
                  </el-col>
                </el-row>
                <el-row>
                  <el-col span="12">
                    <el-form-item label="企业属性" label-width="100px">
                      <el-input
                        disabled="true"
                        v-model="form.stats"
                        autocomplete="off"
                      ></el-input>
                    </el-form-item>
                  </el-col>
                  <el-col span="12">
                    <el-form-item label="注册地址" label-width="160px">
                      <el-input
                        disabled="true"
                        v-model="form.address"
                        autocomplete="off"
                      ></el-input>
                    </el-form-item>
                  </el-col>
                </el-row>
                <el-row v-if="fregionVisiable">
                  <el-col span="12">
                    <el-form-item label="服务区域" label-width="100px">
                      <el-input
                        disabled="true"
                        v-model="form.fregion"
                        autocomplete="off"
                      ></el-input>
                    </el-form-item>
                  </el-col>
                  <el-col span="12">
                    <el-form-item label="服务时间" label-width="160px">
                      <el-input
                        disabled="true"
                        v-model="form.ftime"
                        autocomplete="off"
                      ></el-input>
                    </el-form-item>
                  </el-col>
                </el-row>
                <el-row>
                  <el-col span="12">
                    <el-form-item label="登记机关" label-width="100px">
                      <el-input
                        disabled="true"
                        v-model="form.registration"
                        autocomplete="off"
                      ></el-input>
                    </el-form-item>
                  </el-col>
                  <el-col span="12">
                    <el-form-item
                      label="办公地址"
                      label-width="160px"
                      v-if="industryVisiable"
                    >
                      <el-input
                        disabled="true"
                        v-model="form.industry"
                        autocomplete="off"
                      ></el-input>
                    </el-form-item>
                  </el-col>
                </el-row>
              </el-form>
            </el-tab-pane>
            <!-- 工商信息 -->
            <el-tab-pane label="工商信息" name="second">
              <div v-if="secondVisiable">
                <a style="color:#fff">总公司工商信息</a>
                <el-divider></el-divider>
              </div>
              <el-form
                :model="form"
                v-if="secondVisiable"
                label-position="right"
                size="mini"
                label-width="100px"
              >
                <el-row>
                  <el-col span="12">
                    <el-form-item label="统一社会信用代码" label-width="130px">
                      <el-input
                        disabled="true"
                        v-model="businessObj.socialCreditCode"
                        autocomplete="off"
                      ></el-input>
                    </el-form-item>
                  </el-col>
                  <el-col span="12">
                    <el-form-item label="注册时间">
                      <el-input
                        disabled="true"
                        v-model="businessObj.registerTime"
                        autocomplete="off"
                      ></el-input>
                    </el-form-item>
                  </el-col>
                </el-row>
                <el-row>
                  <el-col span="12">
                    <el-form-item label="注册资本" label-width="130px">
                      <el-input
                        disabled="true"
                        v-model="businessObj.capital"
                        autocomplete="off"
                      ></el-input>
                    </el-form-item>
                  </el-col>
                  <el-col span="12">
                    <el-form-item label="经营范围">
                      <el-input
                        disabled="true"
                        v-model="businessObj.businessScope"
                        autocomplete="off"
                      ></el-input>
                    </el-form-item>
                  </el-col>
                  <el-col span="12">
                    <el-form-item label="营业执照" label-width="130px">
                      <el-upload
                        disabled="true"
                        class="avatar-uploader"
                        :show-file-list="false"
                      >
                        <el-image
                          style="width: 150px; height: 150px"
                          :src="businessObj.trading"
                          :preview-src-list="tradingUrlList">
                        </el-image>
                      </el-upload>
                    </el-form-item>
                  </el-col>
                </el-row>
              </el-form>
              <div v-if="secondVisiable">
                <a style="color:#fff">分公司工商信息</a>
                <el-divider></el-divider>
              </div>
              <el-form
                :model="form"
                label-position="right"
                size="mini"
                label-width="100px"
              >
                <el-row>
                  <el-col span="12">
                    <el-form-item label="统一社会信用代码" label-width="130px">
                      <el-input
                        disabled="true"
                        v-model="form.creditcode"
                        autocomplete="off"
                      ></el-input>
                    </el-form-item>
                  </el-col>
                  <el-col span="12">
                    <el-form-item label="注册时间">
                      <el-input
                        disabled="true"
                        v-model="form.establishtime"
                        autocomplete="off"
                      ></el-input>
                    </el-form-item>
                  </el-col>
                </el-row>
                <el-row>
                  <el-col span="12">
                    <el-form-item label="注册资本" label-width="130px">
                      <el-input
                        disabled="true"
                        v-model="form.registeredcapital"
                        autocomplete="off"
                      ></el-input>
                    </el-form-item>
                  </el-col>
                  <el-col span="12">
                    <el-form-item label="经营范围">
                      <el-input
                        disabled="true"
                        v-model="form.business"
                        autocomplete="off"
                      ></el-input>
                    </el-form-item>
                  </el-col>
                  <el-col span="12">
                    <el-form-item label="营业执照" label-width="130px">
                      <el-upload
                        disabled="true"
                        class="avatar-uploader"
                        :show-file-list="false"
                      >
                        <el-image
                          style="width: 150px; height: 150px"
                          :src="form.businessLicense"
                          :preview-src-list="businessLicenseUrlList">
                        </el-image>
                      </el-upload>
                    </el-form-item>
                  </el-col>
                </el-row>
              </el-form>
            </el-tab-pane>
            <!-- 出资人信息 -->
            <el-tab-pane
              label="出资人信息"
              name="third"
              v-if="shareholderVisiable"
            >
              <avue-crud
                class="company-box"
                :option="investorOption"
                :search.sync="investorSearch"
                :table-loading="investorLoading"
                :data="investorData"
                ref="investorCrud"
                :page.sync="investorPage"
                @selection-change="investorSelectionChange"
                @search-change="investorSearchChange"
                @search-reset="investorSearchReset"
                @current-change="investorCurrentChange"
                @size-change="investorSizeChange"
                @refresh-change="investorSizerefresh"
                @on-load="investorOnLoad"
              >
              </avue-crud>
            </el-tab-pane>
            <!-- 主要管理人员信息 -->
            <el-tab-pane :label="managerLabel" name="fourth">
              <avue-crud
                class="company-box"
                :option="manageOption"
                :search.sync="manageSearch"
                :table-loading="manageLoading"
                :data="manageData"
                ref="manageCrud"
                :page.sync="managePage"
                @selection-change="manageSelectionChange"
                @search-change="manageSearchChange"
                @search-reset="manageSearchReset"
                @current-change="manageCurrentChange"
                @size-change="manageSizeChange"
                @refresh-change="manageSizerefresh"
                @on-load="manageOnLoad"
              >
              </avue-crud>
            </el-tab-pane>
            <!-- 装备信息 -->
            <el-tab-pane label="装备信息" name="fifth" v-if="equipmentVisiable">
              <equipment :forms="forms" v-if="seestaff"></equipment>
            </el-tab-pane>
            <!-- 保安员信息 -->
            <el-tab-pane
              label="保安员信息"
              name="sixth"
              v-if="securityVisiable"
            >
              <staff :forms="forms" v-if="seestaff" :doit="seestaff2"></staff>
            </el-tab-pane>
            <!-- 处罚信息 -->
            <el-tab-pane label="处罚信息" name="seventh">
              <punish :forms="forms" v-if="seestaff"></punish>
            </el-tab-pane>
            <!-- 服务对象信息 -->
            <el-tab-pane
              label="服务对象信息"
              name="eighth"
              v-if="dispatcherUnitVisiable"
            >
              <service
                :form="forms"
                v-if="seestaff"
                :refresh="seestaff3"
              ></service>
            </el-tab-pane>
            <!-- <el-tab-pane label="其他附件" name="eighth">
              <enclosure :form="form"></enclosure>
            </el-tab-pane> -->
                        <el-tab-pane label="营业执照"
                                     name="ninth">
                            <div class="businessLicenses">
                                <el-container>
                                    <el-main>
                                        <div class="title"
                                             v-if="businessLicenseUrl == ''">
                                            未上传营业执照
                                        </div>
                                        <img class="businessLicensess"
                                             :src="businessLicenseUrl"
                                             alt=""
                                             v-else />
                                    </el-main>
                                </el-container>
                            </div>
                        </el-tab-pane>
                        <el-tab-pane label="许可证"
                                     name="tenth">
                            <div class="businessLicenses">
                                <el-container>
                                    <el-main>
                                        <div class="title"
                                             v-if="licenceUrl == ''">
                                            未上传许可证
                                        </div>
                                        <img class="Licenses"
                                             :src="licenceUrl"
                                             alt=""
                                             v-else />
                                    </el-main>
                                </el-container>
                            </div>
                        </el-tab-pane>
                    </el-tabs>
                </div>
            </el-card>
        </el-col>
    </el-row>
            <!-- 营业执照 -->
            <!-- <el-tab-pane label="营业执照" name="ninth">
              <div class="businessLicenses">
                <el-container>
                  <el-main>
                    <div class="title" v-if="businessLicenseUrl == ''">
                      未上传营业执照
                    </div>
                    <img
                      class="businessLicensess"
                      :src="businessLicenseUrl"
                      alt=""
                      v-else
                    />
                  </el-main>
                </el-container>
              </div>
            </el-tab-pane> -->
            <!-- 许可证信息 -->
            <el-tab-pane
              :label="licenceLabel"
              name="tenth"
              v-if="licenceVisiable"
            >
              <el-form
                :model="licenceForm"
                label-position="right"
                size="mini"
                label-width="100px"
              >
                <el-row>
                  <el-col span="12">
                    <el-form-item label="名称">
                      <el-input
                        disabled="true"
                        v-model="licenceForm.unitName"
                        autocomplete="off"
                      ></el-input>
                    </el-form-item>
                  </el-col>
                  <el-col span="12">
                    <el-form-item label="住所">
                      <el-input
                        disabled="true"
                        v-model="licenceForm.address"
                        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="licenceForm.legalPeople"
                        autocomplete="off"
                      ></el-input>
                    </el-form-item>
                  </el-col>
                  <el-col span="12">
                    <el-form-item label="批准文号">
                      <el-input
                        disabled="true"
                        v-model="licenceForm.approvalNumber"
                        autocomplete="off"
                      ></el-input>
                    </el-form-item>
                  </el-col>
                  <el-col span="12">
                    <el-form-item label="发证机关">
                      <el-input
                        disabled="true"
                        v-model="licenceForm.licenceIssuingUnit"
                        autocomplete="off"
                      ></el-input>
                    </el-form-item>
                  </el-col>
                  <el-col span="12">
                    <el-form-item label="发证时间">
                      <el-input
                        disabled="true"
                        v-model="licenceForm.licenceIssuingTime"
                        autocomplete="off"
                      ></el-input>
                    </el-form-item>
                  </el-col>
                  <el-col span="12">
                    <el-form-item label="许可证编号">
                      <el-input
                        disabled="true"
                        v-model="licenceForm.code"
                        autocomplete="off"
                      ></el-input>
                    </el-form-item>
                  </el-col>
                  <el-col span="12" v-if="registerCapitalVisiable">
                    <el-form-item label="注册资本">
                      <el-input
                        disabled="true"
                        v-model="licenceForm.registerCapital"
                        autocomplete="off"
                      ></el-input>
                    </el-form-item>
                  </el-col>
                </el-row>
                <el-row>
                  <el-col span="24">
                    <el-form-item :label="contentLabel">
                      <el-input
                        type="textarea"
                        disabled="true"
                        v-model="licenceForm.content"
                        autocomplete="off"
                      ></el-input>
                    </el-form-item>
                  </el-col>
                </el-row>
                <el-row>
                  <el-col span="12">
                    <el-form-item label="许可证图片">
                      <el-upload
                        disabled="true"
                        class="avatar-uploader"
                        :show-file-list="false"
                      >
                        <el-image
                          style="width: 150px; height: 150px"
                          :src="licenceForm.url"
                          :preview-src-list="licenceUrlList">
                        </el-image>
                      </el-upload>
                    </el-form-item>
                  </el-col>
                </el-row>
              </el-form>
            </el-tab-pane>
            <!-- 备案证  -->
            <el-tab-pane
              label="备案证"
              name="tab12"
              v-if="certificdinedVisiable"
            >
              <div class="businessLicenses">
                <el-container>
                  <el-main>
                    <div class="title" v-if="licenceUrl == ''">
                      未上传备案证
                    </div>
                    <img class="Licenses" :src="licenceUrl" alt="" v-else />
                  </el-main>
                </el-container>
              </div>
            </el-tab-pane>
          </el-tabs>
        </div>
      </el-card>
    </el-col>
  </el-row>
</template>
<script>
import {
    manifestationList,
    dispatchList,
    honorchList,
    trainList,
    examinationList,
    getInvestorList,
    getManageList,
  manifestationList,
  dispatchList,
  honorchList,
  trainList,
  examinationList,
  getInvestorList,
  getManageList,
  getBusinessInfo,
  getLicenceDetail,
} from "@/api/securityCompany/companyDetails";
import equipment from "./computents/equipment.vue"; //装备管理
import staff from "./computents/staff.vue"; //保安员信息
@@ -296,458 +547,632 @@
import { getList } from "@/api/securityCompany/security"; //保安公司
export default {
    components: {
        equipment: equipment,
        staff: staff,
        punish: punish,
        service: service,
        // enclosure: enclosure,
  components: {
    equipment: equipment,
    staff: staff,
    punish: punish,
    service: service,
    // enclosure: enclosure,
  },
  data() {
    var w = 160,
      s = 12;
    return {
      dialogImageUrl: '',
      dialogVisible: false,
      businessObj:{},
      licenceForm:{},
      licenceUrlList:[],
      tradingUrlList:[],
      businessLicenseUrlList:[],
      representativeVisiable: true,
      registerCapitalVisiable: true,
      fregionVisiable: false,
      secondVisiable: false,
      industryVisiable: true,
      representativecellLabel: "法定代表人联系电话",
      representativeLabel: "法定代表人",
      contentLabel: "服务范围",
      businessLicenseUrl: "",
      licenceUrl: "",
      deptId: "",
      managerLabel: "主要管理人信息",
      licenceLabel: "许可证信息",
      baseTitle: "基本信息",
      certificdinedVisiable: false,
      dispatcherUnitVisiable: true,
      securityVisiable: true,
      businessVisiable: true,
      licenceVisiable: true,
      shareholderVisiable: true,
      equipmentVisiable: true,
      activeName: "first",
      form: {},
      manifestationData: [],
      dispatchData: [],
      honorchData: [],
      trainData: [],
      examinationData: [],
      investorOption: {
        // 操作栏多余按钮去除
        delBtn: false,
        editBtn: false,
        addBtn: false,
        menu: false,
        selection: true,
        align: "center",
        height: "auto",
        calcHeight: 270,
        tip: false,
        searchShow: false,
        searchShowBtn: false,
        searchMenuSpan: 4,
        index: false,
        viewBtn: true,
        //dialogType: 'drawer',
        dialogClickModal: false,
        // 操作栏宽度
        menuWidth: 156,
        column: [
          {
            label: "id",
            prop: "id",
            hide: true,
            addDisplay: false,
            editDisplay: false,
          },
          {
            label: "股东",
            prop: "shareholder",
            searchLabelWidth: 55,
            search: true,
            labelWidth: w,
            span: s,
          },
          {
            label: "持股比例(%)",
            prop: "shareholdingratio",
            labelWidth: w,
            span: s,
          },
          {
            label: "出资金额(万元)",
            prop: "capital",
            labelWidth: w,
            span: s,
          },
          {
            label: "出资时间",
            prop: "capitaltime",
            type: "date",
            format: "yyyy-MM-dd hh:mm:ss",
            valueFormat: "timestamp",
            labelWidth: w,
            span: s,
          },
          {
            label: "身份证",
            prop: "cardid",
            labelWidth: w,
            // span: s,
            search: true,
          },
          {
            label: "联系电话",
            prop: "cell",
            labelWidth: w,
            span: s,
          },
          {
            label: "统一社会信用代码",
            prop: "creditcode",
            hide: true,
            addDisplay: false,
            editDisplay: false,
            labelWidth: w,
            span: s,
          },
        ],
      },
      investorSearch: {},
      investorLoading: true,
      investorData: [],
      investorPage: {
        pageSize: 10,
        currentPage: 1,
        total: 0,
      },
      investorQuery: {},
      investorSelectionList: [],
      manageOption: {
        // 操作栏多余按钮去除
        delBtn: false,
        editBtn: false,
        addBtn: false,
        selection: true,
        searchShowBtn: false,
        menu: false,
        align: "center",
        height: "auto",
        calcHeight: 270,
        tip: false,
        searchShow: false,
        searchMenuSpan: 4,
        index: false,
        viewBtn: true,
        //dialogType: 'drawer',
        dialogClickModal: false,
        // 操作栏宽度
        menuWidth: 156,
        column: [
          {
            label: "姓名",
            prop: "name",
            slot: true,
            display: false,
          },
          {
            label: "职务",
            prop: "post",
            slot: true,
            display: false,
          },
          {
            label: "身份证号",
            prop: "cardid",
            slot: true,
            display: false,
          },
          {
            label: "联系电话",
            prop: "cell",
            slot: true,
            display: false,
          },
          {
            label: "学历",
            prop: "education",
            display:false,
            row:true,
            hide:true,
            rules: [{
                required: true,
                message: "请选择学历",
                trigger: "blur"
            }],
            dicUrl: "/api/blade-system/dict-biz/dictionary?code=educationTypes",
            search: false,
            searchSpan: 4,
            type: "select",
            props: {
                label: "dictValue",
                value: "dictKey"
            },
            dataType: "number",
          },
          {
            label: "证书",
            prop: "paper",
            type: "upload",
            dataType:"string",
            listType: "picture-card",
            span: 24,
            propsHttp: {
              res: "data",
            },
            tip: "只能上传jpg/png格式图片,且不超过2Mb",
            action: "/api/blade-resource/oss/endpoint/put-files",
            display:false,
            hide:true,
          },
        ],
      },
      manageSearch: {},
      manageLoading: true,
      manageData: [],
      managePage: {
        pageSize: 10,
        currentPage: 1,
        total: 0,
      },
      manageQuery: {},
      manageSelectionList: [],
      forms: {}, //防串数据
      jurisdictionSee: "", //中文辖区
      seestaff: false,
      seestaff2: false,
      seestaff3: true,
    };
  },
  created() {
    //防tab  重复
    this.tabClear();
    //数据初始化
    this.initData();
  },
  methods: {
    //数据初始化
    initData() {
      var data = JSON.parse(this.$route.query.data);
      this.form = data;
      this.businessLicenseUrlList.push(data.businessLicense);
      //单位列表进入
      var stats = data.stats;
      var deptId = data.departmentid;
      //初始tab控制
      this.initController(stats, deptId);
      //初始数据获取
      this.getdatas(data);
    },
    data () {
        var w = 160,
            s = 12;
        return {
            businessLicenseUrl: "",
            licenceUrl: "",
            activeName: "first",
            form: {},
            manifestationData: [],
            dispatchData: [],
            honorchData: [],
            trainData: [],
            examinationData: [],
            investorOption: {
                // 操作栏多余按钮去除
                delBtn: false,
                editBtn: false,
                addBtn: false,
                menu: false,
                selection: true,
                align: "center",
                height: "auto",
                calcHeight: 270,
                tip: false,
                searchShow: false,
                searchShowBtn: false,
                searchMenuSpan: 4,
                index: false,
                viewBtn: true,
                //dialogType: 'drawer',
                dialogClickModal: false,
                // 操作栏宽度
                menuWidth: 156,
                height: 600,
                column: [
                    {
                        label: "id",
                        prop: "id",
                        hide: true,
                        addDisplay: false,
                        editDisplay: false,
                    },
                    {
                        label: "股东",
                        prop: "shareholder",
                        searchLabelWidth: 55,
                        search: true,
                        labelWidth: w,
                        span: s,
                    },
                    {
                        label: "持股比例(%)",
                        prop: "shareholdingratio",
                        labelWidth: w,
                        span: s,
                    },
                    //  {
                    //     label: "最终受益股份",
                    //     prop: "beneficial",
                    // },
                    {
                        label: "出资金额(万元)",
                        prop: "capital",
                        labelWidth: w,
                        span: s,
                    },
                    {
                        label: "出资时间",
                        prop: "capitaltime",
                        type: "date",
                        format: "yyyy-MM-dd hh:mm:ss",
                        valueFormat: "timestamp",
                        labelWidth: w,
                        span: s,
                    },
                    {
                        label: "身份证",
                        prop: "cardid",
                        labelWidth: w,
                        // span: s,
                        search: true,
                    },
                    {
                        label: "联系电话",
                        prop: "cell",
                        labelWidth: w,
                        span: s,
                    },
                    {
                        label: "统一社会信用代码",
                        prop: "creditcode",
                        hide: true,
                        addDisplay: false,
                        editDisplay: false,
                        labelWidth: w,
                        span: s,
                    },
                ],
            },
            investorSearch: {},
            investorLoading: true,
            investorData: [],
            investorPage: {
                pageSize: 10,
                currentPage: 1,
                total: 0,
            },
            investorQuery: {},
            investorSelectionList: [],
            manageOption: {
                // 操作栏多余按钮去除
                delBtn: false,
                editBtn: false,
                addBtn: false,
                selection: true,
                searchShowBtn: false,
                menu: false,
                align: "center",
                height: "auto",
                calcHeight: 270,
                tip: false,
                searchShow: false,
                searchMenuSpan: 4,
                index: false,
                viewBtn: true,
                //dialogType: 'drawer',
                dialogClickModal: false,
                // 操作栏宽度
                menuWidth: 156,
                height: 600,
                column: [
                    {
                        label: "管理人姓名",
                        prop: "name",
                        slot: true,
                        display: false,
                    },
                    {
                        label: "职务",
                        prop: "post",
                        slot: true,
                        display: false,
                    },
                    {
                        label: "身份证号",
                        prop: "cardid",
                        slot: true,
                        display: false,
                    },
                    {
                        label: "联系电话",
                        prop: "cell",
                        slot: true,
                        display: false,
                    },
                ],
            },
            manageSearch: {},
            manageLoading: true,
            manageData: [],
            managePage: {
                pageSize: 10,
                currentPage: 1,
                total: 0,
            },
            manageQuery: {},
            manageSelectionList: [],
            forms: {}, //防串数据
            jurisdictionSee: "", //中文辖区
            seestaff: false,
            seestaff2: false,
            seestaff3: true,
        };
    },
    created () {
        var flag = false,
            i = 0,
            ind = null,
            that = this;
        this.$store.state.tags.tagList.forEach((item, index) => {
            if (
                item.label == "保安公司详细资料" ||
                item.label == "保安公司详细信息"
            ) {
                if (flag == false) {
                    ind = index;
                    flag = true;
                }
                i++;
            }
    //tab 初始设置
    initController(stats, deptId) {
      this.stats = stats;
      this.deptId = deptId;
      var that = this;
      // 判断按进入的公司类型
      if (stats == "2") {
        //本市保安公司
        that.baseTitle = "保安单位基本信息";
      }
      if (stats == "0") {
        //自招保安单位
        that.baseTitle = "单位基本信息";
        that.equipmentVisiable = false;
        that.shareholderVisiable = false;
        that.certificdinedVisiable = true;
        that.licenceVisiable = false;
      }
      if (stats == "4") {
        //分公司
        that.baseTitle = "保安单位基本信息";
        that.certificdinedVisiable = true;
        that.secondVisiable = true;
        that.businessVisiable = false;
        that.licenceLabel = "总公司许可证信息";
        //查询分公司(及总公司)工商信息
        getBusinessInfo(deptId).then((res) => {
          that.businessObj = res.data.data;
          that.tradingUrlList.push(res.data.data.trading);
          if (that.businessObj.id == -1) {
            that.businessObj.id = null;
          }
        });
        if (i > 1) {
            this.$store.state.tags.tagList.splice(ind, 1);
        }
        if (this.$route.query.fromSecunityGuardId) {
            var page = {
                currentPage: 1,
                pageSize: 10,
            },
                params = { departmentid: this.$route.query.fromSecunityGuardId };
            getList(page.currentPage, page.pageSize, params).then((res) => {
                that.form = res.data.data.records[0];
                this.jurisdictionSee = this.form.jurisdictionName;
                that.forms = res.data.data.records[0];
                that.seestaff = true;
                that.businessLicenseUrl = res.data.data.records[0].businessLicense;
                that.licenceUrl = res.data.data.records[0].licence;
            });
            // })
        } else {
            this.form = this.$route.query;
            this.jurisdictionSee = this.form.$jurisdiction;
            this.forms = this.$route.query;
            this.seestaff = true;
            this.getFromData({
                currentPage: 1,
                pageSize: 10,
            });
        }
      }
      if (stats == "1") {
        //培训学校
        that.baseTitle = "学校基本信息";
        that.managerLabel = "师资力量";
        that.licenceLabel = "培训许可证信息";
        that.shareholderVisiable = false;
        that.dispatcherUnitVisiable = false;
        that.securityVisiable = false;
      }
    },
    methods: {
        getFromData (page, params = {}) {
            var that = this;
            params["departmentid"] = this.forms.departmentid;
            getList(page.currentPage, page.pageSize, params).then((res) => {
                that.form = res.data.data.records[0];
                this.businessLicenseUrl = res.data.data.records[0].businessLicense;
                this.licenceUrl = res.data.data.records[0].licence;
            });
        },
        // inspects(d, val) {
        //   var a = "";
        //   var doit = (d, val) => {
        //     for (let k in d) {
        //       if (d[k].key == val) {
        //         a = d[k].title;
        //         break;
        //       } else {
        //         if (d[k].hasChildren) {
        //           doit(d[k].children, val);
        //         } else {
        //         }
        //       }
        //     }
        //   };
        //   doit(d, val);
        //   // if (a == "") {
        //   //   a = val;
        //   // }
        //   return a;
        // },
        handleClick (tab) {
            if (tab.index == 2) {
                this.investorSearchReset();
            } else if (tab.index == 3) {
                this.manageSearchReset();
            } else if (tab.index == 5) {
                this.seestaff2 = !this.seestaff2;
            } else if (tab.index == 7) {
                this.seestaff3 = !this.seestaff3;
            } else {
                this.getFromData({
                    currentPage: 1,
                    pageSize: 10,
                });
            }
            //  else if (tab.index == 3) {
            //   this.getHonorchData();
            // } else if (tab.index == 4) {
            //   this.getTrainData();
            // } else if (tab.index == 5) {
            //   this.getExaminationData();
            // }
            //
        },
        getManifestationData () {
            manifestationList(this.forms.cardid).then((res) => {
                this.manifestationData = res.data.data.records;
                this.manifestationData.forEach((item) => {
                    item.name = this.forms.realName;
                    item.time = item.time.substring(0, 10);
                });
            });
        },
        getDispatchData () {
            dispatchList(this.forms.cardid).then((res) => {
                this.dispatchData = res.data.data.records;
            });
        },
        getHonorchData () {
            honorchList(this.forms.cardid).then((res) => {
                this.honorchData = res.data.data.records;
            });
        },
        getTrainData () {
            trainList(this.forms.cardid).then((res) => {
                this.trainData = res.data.data;
    //初始数据获取
    getdatas(data) {
      console.log(data, 123456);
      var that = this;
      if (data.departmentid) {
        if (data.stats == "2") {
          data.stats = "本市保安公司";
        }
        if (data.stats == "0") {
          data.stats = "自招保安单位";
          that.representativeVisiable = false;
          that.industryVisiable = false;
          that.fregionVisiable = true;
        }
        if (data.stats == "1") {
          data.stats = "保安培训学校";
          const educationcolumn = this.findObject(
            this.manageOption.column,
            "education"
          );
          const papercolumn = this.findObject(
            this.manageOption.column,
            "paper"
          );
          //学历证书
          educationcolumn.display = true;
          educationcolumn.hide = false;
          educationcolumn.search = true;
          papercolumn.display = true;
          papercolumn.hide = false;
                this.trainData.forEach((item) => {
                    if (item.sex == 1) {
                        item.sex = "男";
                    } else {
                        item.sex = "女";
                    }
                });
            });
        },
        getExaminationData () {
            examinationList(this.forms.cardid).then((res) => {
                this.examinationData = res.data.data;
                this.examinationData.forEach((item) => {
                    if (item.stat == 1) {
                        item.stat = "不通过";
                    } else {
                        item.stat = "通过";
                    }
                });
            });
        },
        investorSizerefresh () {
            this.investorOnLoad(this.investorPage, this.investorQuery);
        },
        investorOnLoad (page, params = {}) {
            this.investorLoading = true;
            params["deptId"] = this.form.departmentid;
            getInvestorList(
                page.currentPage,
                page.pageSize,
                Object.assign(params, this.investorQuery)
            ).then((res) => {
                const data = res.data.data;
                this.investorPage.total = data.total;
                this.investorData = data.records;
                this.investorLoading = false;
                this.$refs.investorCrud.refreshTable();
                this.$refs.investorCrud.doLayout();
                this.investorSelectionClear();
            });
        },
        investorSelectionClear () {
            this.investorSelectionList = [];
            this.$refs.investorCrud.toggleSelection();
        },
        investorSelectionChange (list) {
            this.investorSelectionList = list;
        },
        investorSearchChange (params, done) {
            this.investorQuery = params;
            this.investorPage.currentPage = 1;
            this.investorOnLoad(this.investorPage, params);
            done();
        },
        investorSearchReset () {
            this.investorQuery = {};
            this.investorOnLoad(this.investorPage);
        },
        investorCurrentChange (currentPage) {
            this.investorPage.currentPage = currentPage;
        },
        investorSizeChange (pageSize) {
            this.investorPage.pageSize = pageSize;
        },
        manageSizerefresh () {
            this.manageOnLoad(this.managePage, this.manageQuery);
        },
        manageOnLoad (page, params = {}) {
            this.manageLoading = true;
            params["deptId"] = this.form.departmentid;
            getManageList(
                page.currentPage,
                page.pageSize,
                Object.assign(params, this.manageQuery)
            ).then((res) => {
                const data = res.data.data;
                this.managePage.total = data.total;
                this.manageData = data.records;
                this.manageLoading = false;
                this.$refs.manageCrud.refreshTable();
                this.$refs.manageCrud.doLayout();
                this.manageSelectionClear();
            });
        },
        manageSelectionClear () {
            this.manageSelectionList = [];
            this.$refs.manageCrud.toggleSelection();
        },
        manageSelectionChange (list) {
            this.manageSelectionList = list;
        },
        manageSearchChange (params, done) {
            this.manageQuery = params;
            this.managePage.currentPage = 1;
            this.manageOnLoad(this.managePage, params);
            done();
        },
        manageSearchReset () {
            this.manageQuery = {};
            this.manageOnLoad(this.managePage);
        },
        manageCurrentChange (currentPage) {
            this.managePage.currentPage = currentPage;
        },
        manageSizeChange (pageSize) {
            this.managePage.pageSize = pageSize;
        },
          //许可证字段修改
          this.contentLabel = "培训内容";
          this.registerCapitalVisiable = false;
        }
        if (data.stats == "4") {
          data.stats = "分公司";
          that.representativecellLabel = "分公司负责人电话";
          that.representativeLabel = "分公司负责人";
        }
        that.form = data;
        that.forms = data;
        that.seestaff = true;
        that.businessLicenseUrl = data.businessLicense;
        that.licenceUrl = data.licence;
      } else {
        this.form = this.$route.query;
        this.jurisdictionSee = this.form.$jurisdiction;
        this.forms = this.$route.query;
        this.seestaff = true;
        this.getFromData({
          currentPage: 1,
          pageSize: 10,
        });
      }
    },
    //防 tab 重复
    tabClear() {
      var flag = false,
        i = 0,
        ind = null;
      this.$store.state.tags.tagList.forEach((item, index) => {
        if (
          item.label == "保安公司详细资料" ||
          item.label == "保安公司详细信息"
        ) {
          if (flag == false) {
            ind = index;
            flag = true;
          }
          i++;
        }
      });
      if (i > 1) {
        this.$store.state.tags.tagList.splice(ind, 1);
      }
    },
    getFromData(page, params = {}) {
      var that = this;
      params["departmentid"] = this.forms.departmentid;
      getList(page.currentPage, page.pageSize, params).then((res) => {
        that.form = res.data.data.records[0];
        var data = res.data.data.records[0];
        if (data.stats == "2") {
          data.stats = "本市保安公司";
        }
        if (data.stats == "0") {
          data.stats = "自招保安单位";
          that.representativeVisiable = false;
          that.industryVisiable = false;
          that.fregionVisiable = true;
        }
        if (data.stats == "1") {
          data.stats = "保安培训学校";
        }
        if (data.stats == "4") {
          data.stats = "分公司";
          that.representativecellLabel = "分公司负责人电话";
          that.representativeLabel = "分公司负责人";
        }
        that.form = data;
        that.forms = data;
        this.businessLicenseUrl = res.data.data.records[0].businessLicense;
        this.licenceUrl = res.data.data.records[0].licence;
      });
    },
    handleClick(tab) {
      if (tab.index == 2) {
        this.investorSearchReset();
      } else if (tab.index == 3) {
        this.manageSearchReset();
      } else if (tab.index == 5) {
        this.seestaff2 = !this.seestaff2;
      } else if (tab.index == 7) {
        this.seestaff3 = !this.seestaff3;
      } else {
        this.getFromData({
          currentPage: 1,
          pageSize: 10,
        });
      }
      if(tab.name =="tenth"){
        //获取许可证信息
        this.getLicenceInfo();
      }
    },
    //获取许可证信息
    getLicenceInfo() {
      var that = this;
      getLicenceDetail(this.deptId).then((res) => {
        that.licenceForm = res.data.data;
        that.licenceUrlList.push(res.data.data.url);
      });
    },
    getManifestationData() {
      manifestationList(this.forms.cardid).then((res) => {
        this.manifestationData = res.data.data.records;
        this.manifestationData.forEach((item) => {
          item.name = this.forms.realName;
          item.time = item.time.substring(0, 10);
        });
      });
    },
    getDispatchData() {
      dispatchList(this.forms.cardid).then((res) => {
        this.dispatchData = res.data.data.records;
      });
    },
    getHonorchData() {
      honorchList(this.forms.cardid).then((res) => {
        this.honorchData = res.data.data.records;
      });
    },
    getTrainData() {
      trainList(this.forms.cardid).then((res) => {
        this.trainData = res.data.data;
        this.trainData.forEach((item) => {
          if (item.sex == 1) {
            item.sex = "男";
          } else {
            item.sex = "女";
          }
        });
      });
    },
    getExaminationData() {
      examinationList(this.forms.cardid).then((res) => {
        this.examinationData = res.data.data;
        this.examinationData.forEach((item) => {
          if (item.stat == 1) {
            item.stat = "不通过";
          } else {
            item.stat = "通过";
          }
        });
      });
    },
    investorSizerefresh() {
      this.investorOnLoad(this.investorPage, this.investorQuery);
    },
    investorOnLoad(page, params = {}) {
      this.investorLoading = true;
      params["deptId"] = this.form.departmentid;
      getInvestorList(
        page.currentPage,
        page.pageSize,
        Object.assign(params, this.investorQuery)
      ).then((res) => {
        const data = res.data.data;
        this.investorPage.total = data.total;
        this.investorData = data.records;
        this.investorLoading = false;
        this.$refs.investorCrud.refreshTable();
        this.$refs.investorCrud.doLayout();
        this.investorSelectionClear();
      });
    },
    investorSelectionClear() {
      this.investorSelectionList = [];
      this.$refs.investorCrud.toggleSelection();
    },
    investorSelectionChange(list) {
      this.investorSelectionList = list;
    },
    investorSearchChange(params, done) {
      this.investorQuery = params;
      this.investorPage.currentPage = 1;
      this.investorOnLoad(this.investorPage, params);
      done();
    },
    investorSearchReset() {
      this.investorQuery = {};
      this.investorOnLoad(this.investorPage);
    },
    investorCurrentChange(currentPage) {
      this.investorPage.currentPage = currentPage;
    },
    investorSizeChange(pageSize) {
      this.investorPage.pageSize = pageSize;
    },
    manageSizerefresh() {
      this.manageOnLoad(this.managePage, this.manageQuery);
    },
    manageOnLoad(page, params = {}) {
      this.manageLoading = true;
      params["deptId"] = this.form.departmentid;
      getManageList(
        page.currentPage,
        page.pageSize,
        Object.assign(params, this.manageQuery)
      ).then((res) => {
        const data = res.data.data;
        this.managePage.total = data.total;
        this.manageData = data.records;
        this.manageLoading = false;
        this.$refs.manageCrud.refreshTable();
        this.$refs.manageCrud.doLayout();
        this.manageSelectionClear();
      });
    },
    manageSelectionClear() {
      this.manageSelectionList = [];
      this.$refs.manageCrud.toggleSelection();
    },
    manageSelectionChange(list) {
      this.manageSelectionList = list;
    },
    manageSearchChange(params, done) {
      this.manageQuery = params;
      this.managePage.currentPage = 1;
      this.manageOnLoad(this.managePage, params);
      done();
    },
    manageSearchReset() {
      this.manageQuery = {};
      this.manageOnLoad(this.managePage);
    },
    manageCurrentChange(currentPage) {
      this.managePage.currentPage = currentPage;
    },
    manageSizeChange(pageSize) {
      this.managePage.pageSize = pageSize;
    },
  },
};
</script>
<style lang="scss" scoped>
.businessLicenses {
    padding-top: 15px;
    background-color: transparent;
  padding-top: 15px;
  background-color: transparent;
}
.el-main {
    background-color: transparent;
    color: #333;
    text-align: center;
    // position: relative;
    // right: 5%;
  background-color: transparent;
  color: #333;
  text-align: center;
  // position: relative;
  // right: 5%;
}
.businessLicensess {
    height: 680px;
    width: 450px;
  height: 680px;
  width: 450px;
}
.Licenses {
    height: 680px;
    width: 1048px;
  height: 680px;
  width: 1048px;
}
.title {
    color: #fff;
  color: #fff;
}
  .avatar-uploader .el-upload {
    border: 1px dashed #d9d9d9;
    border-radius: 6px;
    cursor: pointer;
    position: relative;
    overflow: hidden;
  }
  .avatar-uploader .el-upload:hover {
    border-color: #409EFF;
  }
  .avatar-uploader-icon {
    font-size: 28px;
    color: #8c939d;
    width: 178px;
    height: 178px;
    line-height: 178px;
    text-align: center;
  }
  .avatar {
    width: 178px;
    height: 178px;
    display: block;
  }
</style>
src/views/securityCompany/computents/equipment.vue
@@ -96,14 +96,14 @@
            width: 70,
          },
          {
            label: "所属保安公司",
            label: "企业名称",
            prop: "deptId",
            searchSpan: 6,
            searchLabelWidth: 110,
            rules: [
              {
                required: true,
                message: "请输入所属保安公司",
                message: "请输入企业名称",
                trigger: "blur",
              },
            ],
src/views/securityCompany/computents/service.vue
@@ -69,7 +69,7 @@
            ],
          },
          {
            label: "保安公司",
            label: "企业名称",
            prop: "deptId",
            type: "tree",
            overHidden: true,
@@ -86,7 +86,7 @@
            rules: [
              {
                required: true,
                message: "请选择保安公司",
                message: "请选择企业名称",
                trigger: "click",
              },
            ],
src/views/securityCompany/data.js
@@ -1,26 +1,21 @@
var DIC = [
    {
        label: '招聘中',
        value: 1,
    }, {
        label: '停止招聘',
        value: 2,
    }
]
var DIC1 = [
    {
        label: '拥有',
        value: 1,
    }, {
        label: '未拥有',
        value: 2,
    }
]
var DIC = [{
    label: '招聘中',
    value: 1,
}, {
    label: '停止招聘',
    value: 2,
}]
var DIC1 = [{
    label: '拥有',
    value: 1,
}, {
    label: '未拥有',
    value: 2,
}]
var w = 160
    , s = 12;
export var column = [
    {
var w = 160,
    s = 12;
export var column = [{
        label: "id",
        prop: "id",
        hide: true,
@@ -44,11 +39,11 @@
    //     value: JSON.parse(window.localStorage.getItem("saber-userInfo")).content.dept_id
    // },//上面不显示
    {
        label: "保安公司",
        label: "企业名称",
        prop: "deptId",
        rules: [{
            required: true,
            message: "请输入保安公司",
            message: "请输入企业名称",
            trigger: "blur"
        }],
        // addDisplay: true,
@@ -268,4 +263,4 @@
        //     trigger: "blur"
        // }],
    },
]
]
src/views/securityCompany/security.vue
@@ -423,13 +423,12 @@
    // 行单击
    handleRowClick(row) {
      // delete (row["name"]);
      var obj = row;
      obj["name"] = "保安公司详细信息";
      // console.log(obj, "obj");
      var data = JSON.stringify(obj);
      this.$router.push({
        path: `/securityCompany/index`,
        query: obj,
        query: {data:data},
      });
    },
  },
src/views/securityCompany/train.vue
@@ -416,13 +416,12 @@
    // 行单击
    handleRowClick(row) {
      // delete (row["name"]);
      var obj = row;
      obj["name"] = "保安公司详细信息";
      // console.log(obj, "obj");
      var data = JSON.stringify(obj);
      this.$router.push({
        path: `/securityCompany/index`,
        query: obj,
        query: {data:data},
      });
    },
  },
src/views/securityGuardManagement/dispatchChildoperable copy.vue
@@ -130,7 +130,7 @@
          //     // addDisplay: false
          // },
          {
            label: "保安公司",
            label: "企业名称",
            prop: "deptId",
            labelWidth: 120,
            searchLabelWidth: 75,
@@ -147,7 +147,7 @@
            rules: [
              {
                required: true,
                message: "请输入保安公司",
                message: "请输入企业名称",
                trigger: "blur",
              },
            ],
@@ -176,7 +176,7 @@
            rules: [
              {
                required: true,
                message: "请输入保安公司",
                message: "请输入企业名称",
                trigger: "blur",
              },
            ],
src/views/securityGuardManagement/register.vue
@@ -72,12 +72,12 @@
                  : ""
              }}
            </template>
            <template slot-scope="{ row }" slot="deptId">
            <template slot-scope="{ row }" slot="deptName">
              <el-tag
                class="rowClickSelf"
                title="点击查看所属公司情况"
                @click="rowClickSelf(row.deptId)"
                >{{ row.$deptId }}</el-tag
                >{{ row.deptName }}</el-tag
              >
            </template>
            <template slot-scope="{ type, size, row }" slot="menu">
@@ -288,6 +288,7 @@
import { getToken } from "@/util/auth";
import { addhonor, getER } from "@/api/register/honor";
import baoanz from "./baoanz.vue";
import { getInformationDetails } from "@/api/securityCompany/security";
export default {
  components: {
    baoanz,
@@ -473,7 +474,7 @@
            display: false,
          },
          {
            label: "所属保安公司",
            label: "企业名称",
            searchLabelWidth: "110",
            // prop: "deptName",
            prop: "deptId",
@@ -485,10 +486,18 @@
              value: "id",
            },
            slot: true,
            hide:true,
            searchSpan: 5,
            display: false,
            overHidden: true,
            search: true,
          },
          {
            label: "企业名称",
            prop: "deptName",
            slot: true,
            display: false,
            overHidden: true,
            width: 198,
          },
          {
@@ -816,12 +825,20 @@
    this.$store.commit("setWindowSizeHeightAdd");
  },
  methods: {
    rowClickSelf(row) {
      // console.log(row, "baoan");
      this.$router.push({
        path: "/securityCompany/index",
        query: { fromSecunityGuardId: row },
      });
    rowClickSelf(deptId) {
      var data = {
        departmentid:deptId
      }
      getInformationDetails(data).then((res) => {
        var obj = res.data.data;
        obj["name"] = "保安公司详细信息";
        var data = JSON.stringify(obj);
        this.$router.push({
          path: "/securityCompany/index",
          query: { data: data },
        });
      })
    },
    Print() {
      this.$Print(this.$refs.baoanzheng);
@@ -857,7 +874,7 @@
    },
    errorf(err) {
      this.$message.success("请查看控制台");
      console.log(err);
      // console.log(err);
    },
    handleClose(done) {
      this.objf = {};
@@ -877,8 +894,6 @@
      this.dialogVisible = true;
    },
    nodeClick(data) {
      //   this.treeDeptId = data.id;
      // console.log(data, 55555);
      if (data.title != "南昌市公安局") {
        this.jurisdiction = data.id;
      } else {
@@ -993,8 +1008,8 @@
    },
    onLoad(page, params = {}) {
      this.loading = true;
      // console.log(this.jurisdiction,33333);
      params["jurisdiction"] = this.jurisdiction;
      // console.log(params, 1, this.query, 2);
      getListSecurity(
        page.currentPage,
        page.pageSize,
@@ -1091,7 +1106,7 @@
        })
          .then(() => {
            updateHold(3, row.cardid).then((res) => {
              console.log(res);
              // console.log(res);
              this.$message({
                type: "success",
                message: "吊销成功!",
src/views/securityGuardManagement/registerOnce.vue
@@ -28,14 +28,14 @@
            @refresh-change="refreshChange"
            @on-load="onLoad"
          >
            <template slot-scope="{ row }" slot="deptId">
            <!-- <template slot-scope="{ row }" slot="deptId">
              <el-tag
                class="rowClickSelf"
                title="点击查看所属公司情况"
                @click="rowClickSelf(row.deptId)"
                >{{ row.$deptId }}</el-tag
              >
            </template>
            </template> -->
            <template slot-scope="{ type, size, row }" slot="menu">
              <el-button
                :size="size"
@@ -300,7 +300,7 @@
            display: false,
          },
          {
            label: "所属保安公司",
            label: "企业名称",
            searchLabelWidth: "110",
            // prop: "deptName",
            prop: "deptId",
@@ -616,6 +616,9 @@
      return ids.join(",");
    },
  },
  created(){
    this.departmentid = this.$route.query.departmentid;
  },
  mounted() {
    //重复菜单
@@ -643,7 +646,7 @@
    // 判断是否从保安公司人数点击跳转
    if (this.$route.query.departmentid) {
      this.departmentid = this.$route.query.departmentid;
      // console.log(this.departmentid, "ddddddddddddd");
      console.log(this.departmentid, "ddddddddddddd");
      this.spanRight = 24;
      this.spanLeft = 0;
      var d = this.option.column;
@@ -809,12 +812,14 @@
    refreshChange() {
      this.onLoad(this.page, this.query);
    },
    onLoad(page, params = {}, deptId) {
    onLoad(page, params = {}) {
      this.loading = true;
      params["jurisdiction"] = this.jurisdiction;
      if (this.departmentid) {
        params["deptId"] = this.departmentid;
      }
      console.log(params,123456)
      console.log(this.query,123456)
      getListSecurity(
        page.currentPage,
        page.pageSize,
src/views/statisticalQueryManagement/businessStatisticsDetail.vue
@@ -1,5 +1,5 @@
<template>
  <basic-container>
  <basic-container class="businessDetail">
    <avue-crud
      :option="tableOption"
      :table-loading="loading"
@@ -149,7 +149,7 @@
            // display: false
          },
          {
            label: "保安公司名称",
            label: "企业名称",
            width: 300,
            prop: "deptName",
            display: false
@@ -342,4 +342,8 @@
  }
};
</script>
<style lang="scss" scoped></style>
<style lang="scss" scoped>
  .businessDetail{
    height: 50%;
  }
</style>
src/views/statisticalQueryManagement/businessStatisticsFwdq.vue
@@ -91,7 +91,7 @@
            // display: false
          },
          {
            label: "所属保安公司",
            label: "企业名称",
            prop: "deptName",
            width: 300,
            display: false
src/views/statisticalQueryManagement/companyDetails.vue
@@ -102,7 +102,7 @@
            display: false
          },
          {
            label: "所属保安公司",
            label: "企业名称",
            prop: "enterpriseName",
            width: 300,
            display: false
src/views/statisticalQueryManagement/informationLoginStatistics.vue
New file
@@ -0,0 +1,275 @@
<template>
  <div>
    <basic-container class="witerFontColorInput">
      <avue-crud
        :option="option"
        :data="data"
        :page.sync="page"
        :search.sync="search"
        :table-loading="loading"
        @on-load="onLoad(page)"
        @search-change="searchChange"
        @search-reset="searchReset"
        @refresh-change="refreshChange"
      >
      <template slot="menuLeft">
      <el-button
              type="warning"
              size="small"
              plain
              icon="el-icon-download"
              @click="handleExportLoginRecord"
              >导出
            </el-button>
      </template>
      </avue-crud>
    </basic-container>
  </div>
</template>
<script>
import { getInformationLoginPage } from "@/api/loginRecord/loginRecord";
import {  lazyTrees } from "@/api/index/index";
import {dictionaryList} from "@/api/statisticalQueryManagement/statisticalQueryManagement";
import Qs from "qs";
import { getToken } from "@/util/auth";
import { mapGetters } from "vuex";
export default {
  data() {
    return {
      loading: true,
      page: {
        pageSize: 10,
        currentPage: 1,
        total: 0,
      },
      query: {},
      search: {},
      data: [],
      option: {
        delBtn: false,
        editBtn: false,
        addBtn: false,
        selection: false,
        menu: false,
        align: "center",
        height: "auto",
        calcHeight: 30,
        tip: false,
        searchShowBtn: false,
        searchShow: true,
        searchMenuSpan: 6,
        index: true,
        column: [
          {
            label: "登录时间",
            prop: "releaseTimeRange",
            type: "datetime",
            format: "yyyy-MM-dd",
            valueFormat: "yyyy-MM-dd",
            searchRange: true,
            hide: true,
            search: true,
            searchSpan: 6,
            rules: [
              {
                required: true,
                message: "请输入登录时间",
                trigger: "blur",
              },
            ],
          },
          {
            label: "企业名称",
            prop: "deptName",
            disabled: true,
            overHidden: true,
            searchSpan: 5,
            search: true,
          },
          {
            label: "所属辖区",
            prop: "jurisdictionName",
            searchSpan: 4,
            type: "tree",
            props: {
              label: "title",
              value: "id",
            },
            dicData: [],
            search: true,
            rules: [
              {
                required: true,
                message: "请选择所属辖区",
                trigger: "blur",
              },
            ],
          },
          {
            label: "企业属性",
            prop: "stats",
            search: true,
            searchSpan: 4,
            display: false,
            type: "select",
            props: {
              label: "dictValue",
              value: "dictKey",
            },
            dicData: [],
          },
          {
            label: "最近一次登录时间",
            prop: "createTime",
            minWidth: 100,
            display: false,
          },
          {
            label: "登录次数",
            prop: "num",
            disabled: false,
          },
          {
            label: "是否有登录",
            prop: "types",
            search: true,
            disabled: false,
            searchLabelWidth: 100,
            type: "select",
            searchSpan: 4,
            hide: true,
            dicData: [
              {
                label: "全部",
                value: 3,
              },
              {
                label: "是",
                value: 2,
              },
              {
                label: "否",
                value: 1,
              },
            ],
          },
        ],
      },
    };
  },
  computed: {
    ...mapGetters(["permission"]),
  },
  created(){
    //分别查询辖区和字典数据
    this.getSubOfficeData();
    this.getDictionaryList();
  },
  methods: {
    //登录数据导出
    handleExportLoginRecord() {
      this.$confirm("是否导出企业登录记录数据?", "提示", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning",
      }).then(() => {
        //获取查询条件
        const { releaseTimeRange } = this.search;
        if (releaseTimeRange) {
          this.search["startTime"] = releaseTimeRange[0];
          this.search["endTime"] = releaseTimeRange[1];
        }
        var data = {
          jurisdiction: this.search.jurisdictionName,
          stats: this.search.stats,
          deptName: this.search.deptName,
          types: this.search.types,
          startTime: this.search.startTime,
          endTime: this.search.endTime,
        };
        // console.log(data,123);
        //序列号url形式,用&拼接
        data = Qs.stringify(data);
        window.open(
          `/api/loginRecord/export-login-record?${
            this.website.tokenHeader
          }=${getToken()}&` + data
        );
      });
    },
    //获取辖区数据
    getSubOfficeData() {
      lazyTrees().then((res) => {
        if (res.data.code === 200) {
          this.option.column.forEach((item) => {
            if (item.label == "所属辖区") {
              item.dicData = res.data.data;
            }
          });
        } else {
          this.$message.error(res.msg);
        }
      });
    },
    //获取字典表数
    getDictionaryList() {
      dictionaryList().then((res) => {
        if (res.data.code === 200) {
          this.option.column.forEach((item) => {
            if (item.label == "企业属性") {
              item.dicData = res.data.data;
            }
          });
        }
      });
    },
    onLoad(page, params = {}) {
      //属性值转换
      params["jurisdiction"] = params["jurisdictionName"] || "";
      const { releaseTimeRange } = this.search;
      let values = {
        ...params,
      };
      if (releaseTimeRange) {
        values = {
          ...params,
          startTime: releaseTimeRange[0],
          endTime: releaseTimeRange[1],
          ...this.query,
        };
        values.releaseTimeRange = null;
      }
      getInformationLoginPage(page.currentPage, page.pageSize, values).then(
        (res) => {
          const data = res.data.data;
          this.data = data.records;
          this.page.total = data.total;
          this.loading = false;
        }
      );
    },
    refreshChange() {
      this.onLoad(this.page, this.query);
    },
    searchChange(params, done) {
      this.query = params;
      this.page.currentPage = 1;
      this.refreshChange();
      done();
    },
    searchReset() {
      this.query = {};
      this.page.currentPage = 1;
      this.refreshChange();
    },
  },
};
</script>
<style scoped>
</style>
src/views/statisticalQueryManagement/securityGuardDetail.vue
@@ -121,7 +121,7 @@
            display: false
          },
          {
            label: "保安公司",
            label: "企业名称",
            prop: "deptName",
            width: 300,
            // search: true,
src/views/talk/talk.vue
@@ -87,6 +87,7 @@
        index: true,
        viewBtn: true,
        selection: true,
        menu:false,
        dialogClickModal: false,
        ...this.$store.state.control.clearOtherBut,
        menu: false,