保安监管系统-验收版本
zhengpz
2021-12-04 2716502f2a9bd81f2e8f2de2165b8d3ad284de24
Merge branch 'master' of http://s16s652780.51mypc.cn:49896/r/zhba_regulatory_ys
35 files modified
3 files added
4884 ■■■■ changed files
src/api/licenseApproval/permit.js 1 ●●●● patch | view | raw | blame | history
src/api/licenseApproval/recordk.js 2 ●●● patch | view | raw | blame | history
src/api/licenseApproval/revoke.js 2 ●●● patch | view | raw | blame | history
src/components/map/main.vue 621 ●●●● patch | view | raw | blame | history
src/views/commandQuery/taskDistribution.vue 44 ●●●● patch | view | raw | blame | history
src/views/desk/notice.vue 4 ●●●● patch | view | raw | blame | history
src/views/licenseApproval/branchOffice.vue 305 ●●●●● patch | view | raw | blame | history
src/views/licenseApproval/cancellationOfFiling.vue 263 ●●●●● patch | view | raw | blame | history
src/views/licenseApproval/column.js 85 ●●●●● patch | view | raw | blame | history
src/views/licenseApproval/crossRegion.vue 257 ●●●●● patch | view | raw | blame | history
src/views/licenseApproval/securityGuard.vue 57 ●●●● patch | view | raw | blame | history
src/views/licenseApproval/securityPermit.vue 55 ●●●● patch | view | raw | blame | history
src/views/licenseApproval/securityTraining.vue 252 ●●●●● patch | view | raw | blame | history
src/views/management/computents/honor.vue 45 ●●●●● patch | view | raw | blame | history
src/views/map/carGps.vue 2 ●●● patch | view | raw | blame | history
src/views/onSiteInspection/company.vue 10 ●●●● patch | view | raw | blame | history
src/views/onSiteInspection/securityStaff.vue 10 ●●●● patch | view | raw | blame | history
src/views/permit/permit.vue 2 ●●● patch | view | raw | blame | history
src/views/qualificationExamination/registrationTrainingQuery.vue 4 ●●●● patch | view | raw | blame | history
src/views/securityCompany/column.js 7 ●●●● patch | view | raw | blame | history
src/views/securityCompany/companyDetails.vue 12 ●●●● patch | view | raw | blame | history
src/views/securityCompany/computents/equipment.vue 4 ●●●● patch | view | raw | blame | history
src/views/securityCompany/computents/punish.vue 82 ●●●● patch | view | raw | blame | history
src/views/securityCompany/computents/service.vue 13 ●●●● patch | view | raw | blame | history
src/views/securityCompany/computents/serviceS.vue 4 ●●●● patch | view | raw | blame | history
src/views/securityCompany/computents/staff.vue 4 ●●●● patch | view | raw | blame | history
src/views/securityCompany/confess.vue 58 ●●●●● patch | view | raw | blame | history
src/views/securityCompany/dispatch.vue 6 ●●●● patch | view | raw | blame | history
src/views/securityCompany/regulatoryInformation.vue 341 ●●●● patch | view | raw | blame | history
src/views/securityCompany/security.vue 73 ●●●● patch | view | raw | blame | history
src/views/securityCompany/securityCrossRegion.vue 58 ●●●●● patch | view | raw | blame | history
src/views/securityCompany/train.vue 62 ●●●●● patch | view | raw | blame | history
src/views/securityGuardManagement/computents/dispatch.vue 267 ●●●●● patch | view | raw | blame | history
src/views/securityGuardManagement/computents/train.vue 175 ●●●●● patch | view | raw | blame | history
src/views/securityGuardManagement/data.js 24 ●●●● patch | view | raw | blame | history
src/views/securityGuardManagement/register copy.vue 1558 ●●●●● patch | view | raw | blame | history
src/views/securityGuardManagement/register.vue 111 ●●●● patch | view | raw | blame | history
src/views/workreport/workreport.vue 4 ●●● patch | view | raw | blame | history
src/api/licenseApproval/permit.js
@@ -2,6 +2,7 @@
export const getList = (current, size, params) => {
  return request({
    // url: 'http://223.82.109.183:2088/api/permit/page',
    url: '/api/permit/page',
    method: 'get',
    params: {
src/api/licenseApproval/recordk.js
@@ -2,7 +2,7 @@
export const getList = (current, size, params) => {
  return request({
    url: '/api/recordk/list',
    url: '/api/recordk/page',
    method: 'get',
    params: {
      ...params,
src/api/licenseApproval/revoke.js
@@ -2,7 +2,7 @@
export const getList = (current, size, params) => {
  return request({
    url: '/api/revoke/list',
    url: '/api/revoke/page',
    method: 'get',
    params: {
      ...params,
src/components/map/main.vue
@@ -7,7 +7,8 @@
 * @LastEditTime: 2021-04-24 11:59:43
-->
<template>
  <div id="track_map" style="height: 100%"></div>
    <div id="track_map"
         style="height: 100%"></div>
</template>
<script>
import "ol/ol.css";
@@ -17,28 +18,28 @@
import OlMap from "ol/Map.js";
import {
  // eslint-disable-next-line no-unused-vars
  defaults as OlControlDefaults,
  defaults,
  // 全屏控件
  FullScreen,
  // 比例尺控件
  ScaleLine,
  // 缩放滚动条控件
  // eslint-disable-next-line no-unused-vars
  ZoomSlider,
  // 鼠标位置控件
  // eslint-disable-next-line no-unused-vars
  MousePosition,
  // -地图属性控件
  Attribution,
  // 鹰眼控件
  // eslint-disable-next-line no-unused-vars
  OverviewMap,
  // 缩放到范围控件
  // eslint-disable-next-line no-unused-vars
  ZoomToExtent,
  Rotate,
    // eslint-disable-next-line no-unused-vars
    defaults as OlControlDefaults,
    defaults,
    // 全屏控件
    FullScreen,
    // 比例尺控件
    ScaleLine,
    // 缩放滚动条控件
    // eslint-disable-next-line no-unused-vars
    ZoomSlider,
    // 鼠标位置控件
    // eslint-disable-next-line no-unused-vars
    MousePosition,
    // -地图属性控件
    Attribution,
    // 鹰眼控件
    // eslint-disable-next-line no-unused-vars
    OverviewMap,
    // 缩放到范围控件
    // eslint-disable-next-line no-unused-vars
    ZoomToExtent,
    Rotate,
} from "ol/control.js";
import VectorLayer from "ol/layer/Vector";
@@ -50,7 +51,7 @@
import Feature from "ol/Feature.js";
import Point from "ol/geom/Point.js";
import LineString from "ol/geom/LineString.js";
import { Icon, Style, Fill, Stroke } from "ol/style.js";
import { Icon, Style, Fill, Stroke, Text } from "ol/style.js";
import { getWidth, getTopLeft } from "ol/extent";
@@ -60,280 +61,332 @@
import start from "@/assets/img/start.png";
export default {
  name: "Map",
  data() {
    return {
      gunAddlayer: new VectorLayer({
        // 图标图层
        zIndex: 22,
        source: new VectorSource(),
      }),
      peopleAddlayer: new VectorLayer({
        // 图标图层
        zIndex: 22,
        source: new VectorSource(),
      }),
      carAddlayer: new VectorLayer({
        // 图标图层
        zIndex: 22,
        source: new VectorSource(),
      }),
      peopleLineAddlayer: new VectorLayer({
        // 图标图层
        zIndex: 22,
        source: new VectorSource(),
      }),
      startPoint: new VectorLayer({
        // 图标图层
        zIndex: 22,
        source: new VectorSource(),
      }),
      ol2d: null,
    };
  },
  mounted() {
    // 本地开发使用;
    this.ol2d = new OlMap({
      layers: [
        new OlLayerTile({
          zIndex: 4,
          title: "影像",
          source: new XYZ({
            url: "https://webmap-tile.sf-express.com/MapTileService/rt?fetchtype=static&x={x}&y={y}&z={z}&project=sfmap&pic_size=256&pic_type=png8&data_name=361100&data_format=merged-dat&data_type=normal", // 行政区划
          }),
        }),
        // ,
        // new OlLayerTile({
        //     zIndex: 5,
        //     title: '道路+中文注记',
        //     source: new XYZ({
        //         url: 'http://t3.tianditu.com/DataServer?T=cta_w&x={x}&y={y}&l={z}&tk=e9533f5acb2ac470b07f406a4d24b4f0' // 注记
    name: "Map",
    data () {
        return {
            gunAddlayer: new VectorLayer({
                // 图标图层
                zIndex: 22,
                source: new VectorSource(),
            }),
            peopleAddlayer: new VectorLayer({
                // 图标图层
                zIndex: 22,
                source: new VectorSource(),
            }),
            carAddlayer: new VectorLayer({
                // 图标图层
                zIndex: 22,
                source: new VectorSource(),
            }),
            peopleLineAddlayer: new VectorLayer({
                // 图标图层
                zIndex: 22,
                source: new VectorSource(),
            }),
            startPoint: new VectorLayer({
                // 图标图层
                zIndex: 22,
                source: new VectorSource(),
            }),
            ol2d: null,
        };
    },
    mounted () {
        // 本地开发使用;
        this.ol2d = new OlMap({
            layers: [
                new OlLayerTile({
                    zIndex: 4,
                    title: "影像",
                    source: new XYZ({
                        url: "https://webmap-tile.sf-express.com/MapTileService/rt?fetchtype=static&x={x}&y={y}&z={z}&project=sfmap&pic_size=256&pic_type=png8&data_name=361100&data_format=merged-dat&data_type=normal", // 行政区划
                    }),
                }),
                // ,
                // new OlLayerTile({
                //     zIndex: 5,
                //     title: '道路+中文注记',
                //     source: new XYZ({
                //         url: 'http://t3.tianditu.com/DataServer?T=cta_w&x={x}&y={y}&l={z}&tk=e9533f5acb2ac470b07f406a4d24b4f0' // 注记
                //     })
                // })
            ],
            // 注意地图控件的写法
            controls: defaults().extend([
                new FullScreen(),
                new ScaleLine(),
                new MousePosition(),
                new Rotate(),
                new Attribution(),
            ]),
            target: "track_map",
            view: new OlView({
                center: [0, 0],
                zoom: 2,
                projection: "EPSG:4326",
            }),
        });
        // var projection = getProjection("EPSG:4326");
        // var projectionExtent = projection.getExtent();
        // var size = getWidth(projectionExtent) / 256;
        // var resolutions = [];
        // for (var z = 2; z < 19; ++z) {//计算比例尺
        //     resolutions[z] = size / Math.pow(2, z);
        // }
        // // 正式服务器上使用
        // this.ol2d = new OlMap({
        //     layers: [
        //         new OlLayerTile({//矢量地图
        //             source: new WMTS({
        //                 url: "http://47.49.21.207:7001/PGIS_S_TileMapServer/Maps/YX",
        //                 layer: "JX14YGJCIMGL7_L14",
        //                 style: "default",
        //                 matrixSet: "JX14YGJCIMGL7_L14",
        //                 format: "image/png",
        //                 wrapX: true,
        //                 tileGrid: new WMTSTileGrid({
        //                     origin: getTopLeft(projectionExtent),
        //                     //resolutions: res.slice(0, 15),
        //                     resolutions: resolutions,
        //                     matrixIds: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
        //                 })
        //             }),
        //         })
        //     ],
        //     // 注意地图控件的写法
        //     controls: defaults().extend([
        //         new FullScreen(),
        //         new ScaleLine(),
        //         // new MousePosition(),
        //         new Rotate(),
        //         new Attribution()
        //     ]),
        //     target: 'track_map',
        //     view: new OlView({
        //         center: [115.85883507433789, 28.708432053474827],
        //         projection: projection,
        //         zoom: 11,
        //         maxZoom: 15,
        //         minZoom: 1
        //     })
        // })
      ],
      // 注意地图控件的写法
      controls: defaults().extend([
        new FullScreen(),
        new ScaleLine(),
        new MousePosition(),
        new Rotate(),
        new Attribution(),
      ]),
      target: "track_map",
      view: new OlView({
        center: [0, 0],
        zoom: 2,
        projection: "EPSG:4326",
      }),
    });
        this.parentParameter();
    // var projection = getProjection("EPSG:4326");
    // var projectionExtent = projection.getExtent();
    // var size = getWidth(projectionExtent) / 256;
    // var resolutions = [];
    // for (var z = 2; z < 19; ++z) {//计算比例尺
    //     resolutions[z] = size / Math.pow(2, z);
    // }
        window.ol2d = this.ol2d;
    // // 正式服务器上使用
    // this.ol2d = new OlMap({
    //     layers: [
    //         new OlLayerTile({//矢量地图
        var view = this.ol2d.getView();
    //             source: new WMTS({
    //                 url: "http://47.49.21.207:7001/PGIS_S_TileMapServer/Maps/YX",
    //                 layer: "JX14YGJCIMGL7_L14",
    //                 style: "default",
    //                 matrixSet: "JX14YGJCIMGL7_L14",
    //                 format: "image/png",
    //                 wrapX: true,
    //                 tileGrid: new WMTSTileGrid({
    //                     origin: getTopLeft(projectionExtent),
    //                     //resolutions: res.slice(0, 15),
    //                     resolutions: resolutions,
    //                     matrixIds: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
    //                 })
    //             }),
        view.setCenter([115.85883507433789, 28.708432053474827]);
    //         })
    //     ],
        view.setZoom(13);
    //     // 注意地图控件的写法
    //     controls: defaults().extend([
    //         new FullScreen(),
    //         new ScaleLine(),
    //         // new MousePosition(),
    //         new Rotate(),
    //         new Attribution()
    //     ]),
    //     target: 'track_map',
    //     view: new OlView({
    //         center: [115.85883507433789, 28.708432053474827],
    //         projection: projection,
    //         zoom: 11,
    //         maxZoom: 15,
    //         minZoom: 1
    //     })
    // })
    this.parentParameter();
    window.ol2d = this.ol2d;
    var view = this.ol2d.getView();
    view.setCenter([115.85883507433789, 28.708432053474827]);
    view.setZoom(13);
    this.ol2d.addLayer(this.gunAddlayer);
    this.ol2d.addLayer(this.peopleAddlayer);
    this.ol2d.addLayer(this.carAddlayer);
    this.ol2d.addLayer(this.peopleLineAddlayer);
    this.ol2d.addLayer(this.startPoint);
  },
  methods: {
    addEntitys(item, icon, scale, name, type) {
      console.log(item, 565)
      this[type].getSource().clear();
      const iconFeature = new Feature({
        geometry: new Point([Number(item.LGTD), Number(item.LTTD)]),
        name: name,
        attributes: item,
      });
      const iconStyle = new Style({
        // text: new Text({ // 字体, 未成功, 浪费许多时间
        //   font: 'Normal ' + 12 + 'px ' + 'iconfont',
        //   text: "\e645",
        //   fill: new Fill({ color: "green" }),
        // }),
        image: new Icon({
          scale: scale,
          opacity: 1,
          src: icon,
          // src: require('../../assets/Mark.png')
        }),
        // new CircleStyle({ // 普通样式
        //   radius: 6,
        //   fill: new Fill({
        //     color: 'rgba(200, 155, 155, 0.8)'
        //   }),
        //   stroke: new Stroke({
        //     color: 'black',
        //     width: 0.3,
        //   })
        // }),
      });
      iconFeature.setStyle(iconStyle);
      this[type].getSource().addFeature(iconFeature);
      this.flyTo(Number(item.LGTD), Number(item.LTTD), 18);
        this.ol2d.addLayer(this.gunAddlayer);
        this.ol2d.addLayer(this.peopleAddlayer);
        this.ol2d.addLayer(this.carAddlayer);
        this.ol2d.addLayer(this.peopleLineAddlayer);
        this.ol2d.addLayer(this.startPoint);
    },
    methods: {
        addEntitys (item, icon, scale, name, type) {
    addLines(arr) {
      this.addEntity(arr[0][0], arr[0][1]);
      this.peopleLineAddlayer.getSource().clear();
      // 点坐标
      var lineCoords = arr; // 线里点的集合
            console.log(item, 565)
            this[type].getSource().clear();
      // 要素
      // var lineCoords = [[featureInfo.lineString[0][0],featureInfo.lineString[0][0]],[featureInfo.lineString(0),featureInfo.lineString(0)]];
      var feature_LineString = new Feature({
        geometry: new LineString(lineCoords),
      });
            const iconFeature = new Feature({
                geometry: new Point([Number(item.LGTD), Number(item.LTTD)]),
                name: name,
                attributes: item,
            });
      feature_LineString.setStyle(
        new Style({
          //填充色
          fill: new Fill({
            color: "rgba(255, 255, 255, 0.2)",
          }),
          //边线颜色
          stroke: new Stroke({
            color: "rgb(252, 94, 32)",
            width: 5,
          }),
        })
      );
            const iconStyle = new Style({
                // text: new Text({ // 字体, 未成功, 浪费许多时间
                //   font: 'Normal ' + 12 + 'px ' + 'iconfont',
                //   text: "\e645",
                //   fill: new Fill({ color: "green" }),
                // }),
      this.peopleLineAddlayer.getSource().addFeature(feature_LineString);
                image: new Icon({
                    scale: scale,
                    opacity: 1,
                    src: icon,
                    // src: require('../../assets/Mark.png')
                }),
      this.flyTo(
        arr[Math.ceil(arr.length / 2)][0],
        arr[Math.ceil(arr.length / 2)][1],
        15
      );
                // new CircleStyle({ // 普通样式
                //   radius: 6,
                //   fill: new Fill({
                //     color: 'rgba(200, 155, 155, 0.8)'
                //   }),
                //   stroke: new Stroke({
                //     color: 'black',
                //     width: 0.3,
                //   })
                // }),
            });
            iconFeature.setStyle(iconStyle);
            this[type].getSource().addFeature(iconFeature);
            this.flyTo(Number(item.LGTD), Number(item.LTTD), 18);
        },
        addTextEntitys (item, icon, scale, name, type) {
            this[type].getSource().clear();
            const iconFeature = new Feature({
                geometry: new Point([Number(item.LGTD), Number(item.LTTD)]),
                name: name,
                attributes: item,
            });
            const iconStyle = new Style({
                // text: new Text({ // 字体, 未成功, 浪费许多时间
                //   font: 'Normal ' + 12 + 'px ' + 'iconfont',
                //   text: "\e645",
                //   fill: new Fill({ color: "green" }),
                // }),
                text: new Text({
                    textAlign: 'top',
                    text: item.phone + '\r\n' + item.rname + '\r\n' + item.deptname,
                    font: 'bold 20px SimHei',
                    fill: new Fill({ color: '#000' }),
                    offsetX: 20,
                    offsetY: -16
                }),
                image: new Icon({
                    scale: scale,
                    opacity: 1,
                    src: icon,
                    // src: require('../../assets/Mark.png')
                }),
                // new CircleStyle({ // 普通样式
                //   radius: 6,
                //   fill: new Fill({
                //     color: 'rgba(200, 155, 155, 0.8)'
                //   }),
                //   stroke: new Stroke({
                //     color: 'black',
                //     width: 0.3,
                //   })
                // }),
            });
            iconFeature.setStyle(iconStyle);
            this[type].getSource().addFeature(iconFeature);
            this.flyTo(Number(item.LGTD), Number(item.LTTD), 18);
        },
        addLines (arr) {
            this.addEntity(arr[0][0], arr[0][1]);
            this.peopleLineAddlayer.getSource().clear();
            // 点坐标
            var lineCoords = arr; // 线里点的集合
            // 要素
            // var lineCoords = [[featureInfo.lineString[0][0],featureInfo.lineString[0][0]],[featureInfo.lineString(0),featureInfo.lineString(0)]];
            var feature_LineString = new Feature({
                geometry: new LineString(lineCoords),
            });
            feature_LineString.setStyle(
                new Style({
                    //填充色
                    fill: new Fill({
                        color: "rgba(255, 255, 255, 0.2)",
                    }),
                    //边线颜色
                    stroke: new Stroke({
                        color: "rgb(252, 94, 32)",
                        width: 5,
                    }),
                })
            );
            this.peopleLineAddlayer.getSource().addFeature(feature_LineString);
            this.flyTo(
                arr[Math.ceil(arr.length / 2)][0],
                arr[Math.ceil(arr.length / 2)][1],
                15
            );
        },
        addEntity (LGTD, LTTD) {
            this.startPoint.getSource().clear();
            const iconFeature = new Feature({
                geometry: new Point([LGTD, LTTD]),
                name: "起始点",
            });
            const iconStyle = new Style({
                // text: new Text({ // 字体, 未成功, 浪费许多时间
                //   font: 'Normal ' + 12 + 'px ' + 'iconfont',
                //   text: "\e645",
                //   fill: new Fill({ color: "green" }),
                // }),
                image: new Icon({
                    anchor: [0.5, 170], //锚点
                    anchorOrigin: "top-left", //锚点源
                    anchorXUnits: "fraction", //锚点X值单位
                    anchorYUnits: "pixels", //锚点Y值单位
                    offsetOrigin: "top-left",
                    scale: 0.2,
                    opacity: 1,
                    src: start,
                    // src: require('../../assets/Mark.png')
                }),
                // new CircleStyle({ // 普通样式
                //   radius: 6,
                //   fill: new Fill({
                //     color: 'rgba(200, 155, 155, 0.8)'
                //   }),
                //   stroke: new Stroke({
                //     color: 'black',
                //     width: 0.3,
                //   })
                // }),
            });
            iconFeature.setStyle(iconStyle);
            this.startPoint.getSource().addFeature(iconFeature);
        },
        clearLine () {
            this.peopleLineAddlayer.getSource().clear();
            this.startPoint.getSource().clear();
        },
        flyTo (lgtd, lttd, size) {
            var view = this.ol2d.getView();
            view.setCenter([lgtd, lttd]);
            view.setZoom(size);
        },
        parentParameter () {
            this.$emit("childParameter", this.ol2d);
        },
    },
    addEntity(LGTD, LTTD) {
      this.startPoint.getSource().clear();
      const iconFeature = new Feature({
        geometry: new Point([LGTD, LTTD]),
        name: "起始点",
      });
      const iconStyle = new Style({
        // text: new Text({ // 字体, 未成功, 浪费许多时间
        //   font: 'Normal ' + 12 + 'px ' + 'iconfont',
        //   text: "\e645",
        //   fill: new Fill({ color: "green" }),
        // }),
        image: new Icon({
          anchor: [0.5, 170], //锚点
          anchorOrigin: "top-left", //锚点源
          anchorXUnits: "fraction", //锚点X值单位
          anchorYUnits: "pixels", //锚点Y值单位
          offsetOrigin: "top-left",
          scale: 0.2,
          opacity: 1,
          src: start,
          // src: require('../../assets/Mark.png')
        }),
        // new CircleStyle({ // 普通样式
        //   radius: 6,
        //   fill: new Fill({
        //     color: 'rgba(200, 155, 155, 0.8)'
        //   }),
        //   stroke: new Stroke({
        //     color: 'black',
        //     width: 0.3,
        //   })
        // }),
      });
      iconFeature.setStyle(iconStyle);
      this.startPoint.getSource().addFeature(iconFeature);
    },
    clearLine() {
      this.peopleLineAddlayer.getSource().clear();
      this.startPoint.getSource().clear();
    },
    flyTo(lgtd, lttd, size) {
      var view = this.ol2d.getView();
      view.setCenter([lgtd, lttd]);
      view.setZoom(size);
    },
    parentParameter() {
      this.$emit("childParameter", this.ol2d);
    },
  },
};
</script>
src/views/commandQuery/taskDistribution.vue
@@ -2,7 +2,7 @@
 * @Author: Morpheus
 * @Date: 2021-07-07 17:30:05
 * @Last Modified by: Morpheus
 * @Last Modified time: 2021-11-25 15:47:19
 * @Last Modified time: 2021-12-04 15:54:03
 * menu-name 监管信息
 */
<template>
@@ -86,7 +86,7 @@
// import { datasing } from "./dataqualificationExamination";
// import { getList } from "@/api/qualificationExamination/qualificationExamination";
import { getLisperetaskDistribution } from "@/api/commandQuery/commandQuery";
import { getDirectiveLiveLocationVoList, getDirectiveLocusInfoList, getNewPeople } from "@/api/map/people";
import { getDirectiveLiveLocationVoList, getDirectiveLocusInfoList } from "@/api/map/people";
import peoplePng from "@/assets/img/people.png";
@@ -407,43 +407,25 @@
            this.seeLocationFlag = true
            getDirectiveLiveLocationVoList({ type: 1, userIds: row.receiveDirectiveIds }).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.locationForm.addEntitys(
                var res = result.data.data;
                if (JSON.stringify(res) != "[]") {
                    res.forEach((data)=>{
                        this.$refs.locationForm.addTextEntitys(
                            {
                                LGTD: arr[0].gis_jd,
                                LTTD: arr[0].gis_wd,
                                LGTD: data.longitude,
                                LTTD: data.latitude,
                                name: "人员位置",
                                deptname: data.deptname,
                                rname: data.rname,
                                phone: data.phone
                            },
                            peoplePng,
                            0.5,
                            "peoplelayer",
                            "peopleAddlayer"
                        );
                    }
                })
                // var res = result.data.data;
                // if (JSON.stringify(res) != "[]") {
                //     res.forEach((data)=>{
                //         this.$refs.locationForm.addEntitys(
                //             {
                //                 LGTD: data.longitude,
                //                 LTTD: data.latitude,
                //                 name: "人员位置",
                //             },
                //             peoplePng,
                //             0.5,
                //             "peoplelayer",
                //             "peopleAddlayer"
                //         );
                //     })
                // }
                    })
                }
            });
        },
src/views/desk/notice.vue
@@ -209,7 +209,7 @@
            ],
          },
          {
            label: "通知日期",
            label: "下发时间",
            prop: "releaseTime",
            type: "date",
            format: "yyyy-MM-dd hh:mm:ss",
@@ -217,7 +217,7 @@
            rules: [
              {
                required: true,
                message: "请输入通知日期",
                message: "请选择下发时间",
                trigger: "click",
              },
            ],
src/views/licenseApproval/branchOffice.vue
@@ -2,7 +2,7 @@
 * @Author: liu
 * @Date: 2021-08-26 17:00:55 
 * @Last Modified by: liu
 * @Last Modified time: 2021-09-22 11:28:49
 * @Last Modified time: 2021-12-04 11:52:58
 */
@@ -67,14 +67,105 @@
            >打印备案证
          </el-button>
        </template>
        <template class="tdtype" slot-scope="{ row }" slot="type">
        <template slot-scope="{ type, size, row }" slot="menu">
          <el-button
            icon="icon-zhengjian"
            :size="size"
            :type="type"
            class="zhengJian-icon"
            @click.stop="handleCredentials(row)"
            >附件</el-button
          >
          <el-button
            icon="el-icon-edit"
            :size="size"
            :type="type"
            v-if="row.stateOur == '0'"
            @click.stop="rowDel(row)"
            >备案审批
          </el-button>
          <el-button
            icon="el-icon-edit"
            :size="size"
            :type="type"
            v-if="
              row.stateOur != '0' &&
              !(
                row.papprove == '1' &&
                row.xapprove == '1' &&
                row.sapprove == '1'
              )
            "
            @click.stop="rowSee(row)"
            >审批查询
          </el-button>
          <el-button
            icon="el-icon-brush"
            :size="size"
            :type="type"
            @click.stop="viewLicense(row)"
            v-if="
              row.papprove == '1' && row.xapprove == '1' && row.sapprove == '1'
            "
            >打印备案证
          </el-button>
          <el-button
            icon="el-icon-brush"
            :size="size"
            :type="type"
            v-if="
              row.papprove == '1' && row.xapprove == '1' && row.sapprove == '1'
            "
            @click.stop="viewLicensehuizhi(row)"
            >回执打印
          </el-button>
        </template>
        <template class="tdtype" slot-scope="{ row }" slot="papprove">
          <el-tag class="dtype">
            {{
              row.type == "0" ? "通过" : row.type == "1" ? "不通过" : "待审批"
              row.papprove == "1"
                ? "通过"
                : row.papprove == "0" || row.papprove == ""
                ? "待审核"
                : "不通过"
            }}
            <i class="gz" v-if="row.type == '2'"></i>
            <i class="yj" v-if="row.type == '1'"></i>
            <i class="zc" v-if="row.type == '0'"></i>
            <i class="gz" v-if="row.papprove == '0' || row.papprove == ''"></i>
            <i class="yj" v-if="row.papprove == '2'"></i>
            <i class="zc" v-if="row.papprove == '1'"></i>
          </el-tag>
        </template>
        <template class="tdtype" slot-scope="{ row }" slot="xapprove">
          <el-tag class="dtype">
            {{
              row.papprove == "2"
                ? "派出所未通过"
                : row.xapprove == "1"
                ? "通过"
                : row.xapprove == "0" || row.xapprove == ""
                ? "待审核"
                : "不通过"
            }}
            <i class="gz" v-if="row.xapprove == '0' || row.xapprove == ''"></i>
            <i class="yj" v-if="row.xapprove == '2'"></i>
            <i class="zc" v-if="row.xapprove == '1'"></i>
          </el-tag>
        </template>
        <template class="tdtype" slot-scope="{ row }" slot="sapprove">
          <el-tag class="dtype">
            {{
              row.papprove == "2"
                ? "派出所未通过"
                : row.xapprove == "2"
                ? "分局未通过"
                : row.sapprove == "1"
                ? "通过"
                : row.sapprove == "0" || row.sapprove == ""
                ? "待审核"
                : "不通过"
            }}
            <i class="gz" v-if="row.sapprove == '0' || row.sapprove == ''"></i>
            <i class="yj" v-if="row.sapprove == '2'"></i>
            <i class="zc" v-if="row.sapprove == '1'"></i>
          </el-tag>
        </template>
      </avue-crud>
@@ -155,6 +246,19 @@
        </div>
      </div>
    </el-dialog>
    <el-dialog
      title=""
      :visible.sync="dialogVisibleccsee"
      width="30%"
      :modal-append-to-body="false"
    >
      <div class="flots">
        <div class="f_title">
          审批 {{ stateOur == "1" ? "通过" : stateOur == "2" ? "不通过" : "" }}
        </div>
        <div><span>审批意见:</span> {{ stateText }}</div>
      </div>
    </el-dialog>
  </div>
</template>
@@ -171,11 +275,12 @@
export default {
  data() {
    return {
      dialogVisibleccsee: false,
      classStyle: "print", //打印样式
      dialogVisiblecc: false, //许可证审核抽屉
      xukezData: {},
      stateText: "",
      dialogVisible: false, //许可证抽屉
      licenceData: {
        row: {},
@@ -288,30 +393,72 @@
      this.dialogVisiblecc = true;
      this.xukezData = row;
    },
    closecc() {
      this.xukezData.type = "0";
      this.dialogVisiblecc = false;
      this.xukezData["approve"] = this.textareaShenpi;
      console.log(this.xukezData);
      update(this.xukezData);
      this.textareaShenpi = "";
      this.$message({
        type: "success",
        message: "审核通过!",
      });
    },
    subcc() {
      this.xukezData.type = "1";
      this.dialogVisiblecc = false;
      this.xukezData["approve"] = this.textareaShenpi;
      update(this.xukezData);
      this.textareaShenpi = "";
      this.$message({
        type: "success",
        message: "审核不通过!",
      });
    rowSee(row) {
      this.dialogVisibleccsee = true;
      this.stateOur = row.stateOur;
      // if (this.user_name == "派") {
      //   // 派出所审批
      //   this.stateText = row.popinion;
      // } else if (this.user_name == "县") {
      //   // 分局审批
      //   this.stateText = row.xopinion;
      // } else if (this.user_name == "市") {
      //   // 市局审批
      //   this.stateText = row.sopinion;
      // }
      this.stateText = row.opinionOur;
      console.log(this.dialogVisibleccsee);
    },
    closecc() {
      this.upsData("1", "0"); //通过
    },
    subcc() {
      this.upsData("2", "1"); //不通过
    },
    upsData(state, type) {
      let date = new Date(+new Date() + 8 * 3600 * 1000)
        .toJSON()
        .substr(0, 19)
        .replace("T", " ");
      // console.log(date);
      // return;
      this.dialogVisiblecc = false;
      if (this.user_name == "派") {
        // 派出所审批
        this.xukezData.ptime = date;
        this.xukezData.papprove = state;
        this.xukezData.popinion = this.textareaShenpi;
        this.xukezData.type = type == "0" ? "2" : "1"; // 为了保持审核系统识别
      } else if (this.user_name == "县") {
        // 分局审批
        this.xukezData.xtime = date;
        this.xukezData.xapprove = state;
        this.xukezData.xopinion = this.textareaShenpi;
        this.xukezData.type = type == "0" ? "2" : "1"; // 为了保持审核系统识别
      } else if (this.user_name == "市") {
        // 市局审批
        this.xukezData.stime = date;
        this.xukezData.sapprove = state;
        this.xukezData.sopinion = this.textareaShenpi;
        this.xukezData.permitime = new Date(+new Date() + 8 * 3600 * 1000)
          .toJSON()
          .substr(0, 19)
          .replace("T", " ");
        this.xukezData.type = type == "0" ? "0" : "1"; // 为了保持审核系统识别
      }
      // console.log(this.xukezData);
      // return;
      update(this.xukezData).then((res) => {
        console.log(res);
        this.$message({
          type: "success",
          message: "操作成功!",
        });
        this.refreshChange();
        this.textareaShenpi = "";
      });
    },
    viewLicense(row) {
      //查看许可证
      console.log(row, 34);
@@ -388,9 +535,93 @@
    refreshChange() {
      this.onLoad(this.page, this.query);
    },
    getFenji(name) {
      var d = {};
      if (name == "派出所管理员") {
        d = {
          // papprove: 1,
        };
        this.user_name = "派";
      } else if (name == "县局管理员") {
        d = {
          papprove: "1",
        };
        this.user_name = "县";
      } else if (name == "市局管理员") {
        d = {
          xapprove: "1",
        };
        this.user_name = "市";
      }
      return d;
    },
    changeState(data) {
      var b = data;
      if (this.user_name == "派") {
        // 派出所审批
        b["stateOur"] =
          b.papprove == "0" || b.papprove == ""
            ? "0"
            : b.papprove == "1"
            ? "1"
            : "2";
      } else if (this.user_name == "县") {
        // 分局审批
        b["stateOur"] =
          b.xapprove == "0" || b.xapprove == ""
            ? "0"
            : b.xapprove == "1"
            ? "1"
            : "2";
      } else if (this.user_name == "市") {
        // 市局审批
        b["stateOur"] =
          b.sapprove == "0" || b.sapprove == ""
            ? "0"
            : b.sapprove == "1"
            ? "1"
            : "2";
      }
      console.log(
        b.papprove == "0" || b.papprove == ""
          ? "0"
          : b.papprove == "1"
          ? "1"
          : "2"
      );
      return b;
    },
    onLoad(page, params = {}) {
      this.loading = true;
      params["ptype"] = 2;
      var gonganj = "";
      console.log(this.userInfo);
      if (this.userInfo.role_name == "公安管理员") {
        let test = /派出所$/g;
        if (test.test(this.userInfo.list.name)) {
          gonganj = "派出所管理员";
        }
        test = /分局|公安局$/g;
        if (test.test(this.userInfo.list.name)) {
          gonganj = "县局管理员";
        }
        test = /市公安局$/g;
        if (test.test(this.userInfo.list.name)) {
          gonganj = "市局管理员";
        }
      }
      // console.log(gonganj);
      this.userData =
        gonganj == "派出所管理员" ? "2" : gonganj == "县局管理员" ? "1" : "0";
      params = {
        ...params,
        ...this.getFenji(gonganj),
      };
      console.log(params, "params");
      params["jurisdiction"] = this.userInfo.jurisdiction;
      // params["usetype"] = this.userData;
      // this.option.column[this.option.column.length - 2].prop = "opinionOur";
      // return;
      getList(
        page.currentPage,
        page.pageSize,
@@ -399,6 +630,22 @@
        const data = res.data.data;
        this.page.total = data.total;
        this.data = data.records;
        for (var k in this.data) {
          // console.log(this.changeState(this.data[k]));
          this.data[k] = this.changeState(this.data[k]);
          let paichusuoyijian = this.data[k].popinion
            ? "派出所意见:" + this.data[k].popinion + ";"
            : "";
          let fenjuijian = this.data[k].xopinion
            ? "分局意见:" + this.data[k].xopinion + ";"
            : "";
          let shijuyijian = this.data[k].sopinion
            ? "市局意见:" + this.data[k].sopinion + ";"
            : "";
          this.data[k]["opinionOur"] =
            paichusuoyijian + fenjuijian + shijuyijian;
        }
        console.log(this.data);
        this.loading = false;
        this.selectionClear();
      });
src/views/licenseApproval/cancellationOfFiling.vue
@@ -2,7 +2,7 @@
 * @Author: liu
 * @Date: 2021-08-26 17:00:04 
 * @Last Modified by: liu
 * @Last Modified time: 2021-10-12 13:54:42
 * @Last Modified time: 2021-12-04 11:52:57
 */
@@ -55,18 +55,71 @@
            :size="size"
            :type="type"
            @click.stop="rowDel(row)"
            v-if="row.type == '2'"
            v-if="row.stateOur == '0'"
            >撤销备案审批
          </el-button>
          <el-button
            icon="el-icon-edit"
            :size="size"
            :type="type"
            v-if="
              row.stateOur != '0' &&
              !(
                row.papprove == '1' &&
                row.xapprove == '1' &&
                row.sapprove == '1'
              )
            "
            @click.stop="rowSee(row)"
            >审批查询
          </el-button>
        </template>
        <template class="tdtype" slot-scope="{ row }" slot="type">
        <template class="tdtype" slot-scope="{ row }" slot="papprove">
          <el-tag class="dtype">
            {{
              row.type == "0" ? "通过" : row.type == "1" ? "不通过" : "待审核"
              row.papprove == "1"
                ? "通过"
                : row.papprove == "0" || row.papprove == ""
                ? "待审核"
                : "不通过"
            }}
            <i class="gz" v-if="row.type == '2'"></i>
            <i class="yj" v-if="row.type == '1'"></i>
            <i class="zc" v-if="row.type == '0'"></i>
            <i class="gz" v-if="row.papprove == '0' || row.papprove == ''"></i>
            <i class="yj" v-if="row.papprove == '2'"></i>
            <i class="zc" v-if="row.papprove == '1'"></i>
          </el-tag>
        </template>
        <template class="tdtype" slot-scope="{ row }" slot="xapprove">
          <el-tag class="dtype">
            {{
              row.papprove == "2"
                ? "派出所未通过"
                : row.xapprove == "1"
                ? "通过"
                : row.xapprove == "0" || row.xapprove == ""
                ? "待审核"
                : "不通过"
            }}
            <i class="gz" v-if="row.xapprove == '0' || row.xapprove == ''"></i>
            <i class="yj" v-if="row.xapprove == '2'"></i>
            <i class="zc" v-if="row.xapprove == '1'"></i>
          </el-tag>
        </template>
        <template class="tdtype" slot-scope="{ row }" slot="sapprove">
          <el-tag class="dtype">
            {{
              row.papprove == "2"
                ? "派出所未通过"
                : row.xapprove == "2"
                ? "分局未通过"
                : row.sapprove == "1"
                ? "通过"
                : row.sapprove == "0" || row.sapprove == ""
                ? "待审核"
                : "不通过"
            }}
            <i class="gz" v-if="row.sapprove == '0' || row.sapprove == ''"></i>
            <i class="yj" v-if="row.sapprove == '2'"></i>
            <i class="zc" v-if="row.sapprove == '1'"></i>
          </el-tag>
        </template>
      </avue-crud>
@@ -94,6 +147,20 @@
        </div>
      </div>
    </el-dialog>
    <el-dialog
      title=""
      :visible.sync="dialogVisibleccsee"
      width="30%"
      :modal-append-to-body="false"
    >
      <div class="flots">
        <div class="f_title">
          审批 {{ stateOur == "1" ? "通过" : stateOur == "2" ? "不通过" : "" }}
        </div>
        <div><span>审批意见:</span> {{ stateText }}</div>
      </div>
    </el-dialog>
  </div>
</template>
@@ -111,6 +178,8 @@
export default {
  data() {
    return {
      dialogVisibleccsee: false,
      stateText: "",
      classStyle: "print", //打印样式
      dialogVisiblecc: false, //许可证审核抽屉
@@ -182,11 +251,12 @@
    },
    handleCredentials(row) {
      console.log(row);
      this.$router.push({
        path: "/attachOnce/index",
        // redirect: { name: "foo" },
        // query: { row: row },
        query: { deptid: row.cardid, type: "6" },
        query: { deptid: row.cardid, type: "4" },
        // params: { row: row.identificationnumber },
      });
    },
@@ -227,22 +297,72 @@
      this.dialogVisiblecc = true;
      this.xukezData = row;
    },
    closecc() {
      this.xukezData.type = "0";
      this.dialogVisiblecc = false;
      this.xukezData["approve"] = this.textareaShenpi;
      console.log(this.xukezData);
      update(this.xukezData);
      this.textareaShenpi = "";
    },
    subcc() {
      this.xukezData.type = "1";
      this.dialogVisiblecc = false;
      this.xukezData["approve"] = this.textareaShenpi;
      update(this.xukezData);
      this.textareaShenpi = "";
    rowSee(row) {
      this.dialogVisibleccsee = true;
      this.stateOur = row.stateOur;
      // if (this.user_name == "派") {
      //   // 派出所审批
      //   this.stateText = row.popinion;
      // } else if (this.user_name == "县") {
      //   // 分局审批
      //   this.stateText = row.xopinion;
      // } else if (this.user_name == "市") {
      //   // 市局审批
      //   this.stateText = row.sopinion;
      // }
      this.stateText = row.opinionOur;
      console.log(this.dialogVisibleccsee);
    },
    closecc() {
      this.upsData("1", "0"); //通过
    },
    subcc() {
      this.upsData("2", "1"); //不通过
    },
    upsData(state, type) {
      let date = new Date(+new Date() + 8 * 3600 * 1000)
        .toJSON()
        .substr(0, 19)
        .replace("T", " ");
      // console.log(date);
      // return;
      this.dialogVisiblecc = false;
      if (this.user_name == "派") {
        // 派出所审批
        this.xukezData.ptime = date;
        this.xukezData.papprove = state;
        this.xukezData.popinion = this.textareaShenpi;
        this.xukezData.type = type == "0" ? "2" : "1"; // 为了保持审核系统识别
      } else if (this.user_name == "县") {
        // 分局审批
        this.xukezData.xtime = date;
        this.xukezData.xapprove = state;
        this.xukezData.xopinion = this.textareaShenpi;
        this.xukezData.type = type == "0" ? "2" : "1"; // 为了保持审核系统识别
      } else if (this.user_name == "市") {
        // 市局审批
        this.xukezData.stime = date;
        this.xukezData.sapprove = state;
        this.xukezData.sopinion = this.textareaShenpi;
        this.xukezData.permitime = new Date(+new Date() + 8 * 3600 * 1000)
          .toJSON()
          .substr(0, 19)
          .replace("T", " ");
        this.xukezData.type = type == "0" ? "0" : "1"; // 为了保持审核系统识别
      }
      // console.log(this.xukezData);
      // return;
      update(this.xukezData).then((res) => {
        console.log(res);
        this.$message({
          type: "success",
          message: "操作成功!",
        });
        this.refreshChange();
        this.textareaShenpi = "";
      });
    },
    viewLicense(row) {
      //查看许可证
      this.licenceData.row = row;
@@ -316,9 +436,93 @@
    refreshChange() {
      this.onLoad(this.page, this.query);
    },
    getFenji(name) {
      var d = {};
      if (name == "派出所管理员") {
        d = {
          // papprove: 1,
        };
        this.user_name = "派";
      } else if (name == "县局管理员") {
        d = {
          papprove: "1",
        };
        this.user_name = "县";
      } else if (name == "市局管理员") {
        d = {
          xapprove: "1",
        };
        this.user_name = "市";
      }
      return d;
    },
    changeState(data) {
      var b = data;
      if (this.user_name == "派") {
        // 派出所审批
        b["stateOur"] =
          b.papprove == "0" || b.papprove == ""
            ? "0"
            : b.papprove == "1"
            ? "1"
            : "2";
      } else if (this.user_name == "县") {
        // 分局审批
        b["stateOur"] =
          b.xapprove == "0" || b.xapprove == ""
            ? "0"
            : b.xapprove == "1"
            ? "1"
            : "2";
      } else if (this.user_name == "市") {
        // 市局审批
        b["stateOur"] =
          b.sapprove == "0" || b.sapprove == ""
            ? "0"
            : b.sapprove == "1"
            ? "1"
            : "2";
      }
      console.log(
        b.papprove == "0" || b.papprove == ""
          ? "0"
          : b.papprove == "1"
          ? "1"
          : "2"
      );
      return b;
    },
    onLoad(page, params = {}) {
      this.loading = true;
      params["ptype"] = 4;
      var gonganj = "";
      console.log(this.userInfo);
      if (this.userInfo.role_name == "公安管理员") {
        let test = /派出所$/g;
        if (test.test(this.userInfo.list.name)) {
          gonganj = "派出所管理员";
        }
        test = /分局|公安局$/g;
        if (test.test(this.userInfo.list.name)) {
          gonganj = "县局管理员";
        }
        test = /市公安局$/g;
        if (test.test(this.userInfo.list.name)) {
          gonganj = "市局管理员";
        }
      }
      // console.log(gonganj);
      this.userData =
        gonganj == "派出所管理员" ? "2" : gonganj == "县局管理员" ? "1" : "0";
      params = {
        ...params,
        ...this.getFenji(gonganj),
      };
      console.log(params, "params");
      params["jurisdiction"] = this.userInfo.jurisdiction;
      // params["usetype"] = this.userData;
      // this.option.column[this.option.column.length - 2].prop = "opinionOur";
      // return;
      getList(
        page.currentPage,
        page.pageSize,
@@ -327,6 +531,21 @@
        const data = res.data.data;
        this.page.total = data.total;
        this.data = data.records;
        for (var k in this.data) {
          // console.log(this.changeState(this.data[k]));
          this.data[k] = this.changeState(this.data[k]);
          let paichusuoyijian = this.data[k].popinion
            ? "派出所意见:" + this.data[k].popinion + ";"
            : "";
          let fenjuijian = this.data[k].xopinion
            ? "分局意见:" + this.data[k].xopinion + ";"
            : "";
          let shijuyijian = this.data[k].sopinion
            ? "市局意见:" + this.data[k].sopinion + ";"
            : "";
          this.data[k]["opinionOur"] =
            paichusuoyijian + fenjuijian + shijuyijian;
        }
        this.loading = false;
        this.selectionClear();
      });
src/views/licenseApproval/column.js
@@ -212,18 +212,33 @@
    //     value: "deptid",
    //   },
    // },
    // {
    //     label: "所属辖区",
    //     prop: "jurisdiction",
    //     type: "tree",
    //     dicUrl: "/api/jurisdiction/lazy-trees",
    //     props: {
    //         label: "title",
    //         value: "id",
    //     },
    //     // labelWidth: 160,
    //     // span: 12,
    // },
    {
        label: "所属辖区",
        // prop: "region",
        // labelWidth: 160,
        // width: 110,
        prop: "jurisdiction",
        type: "tree",
        dicUrl: "/api/jurisdiction/lazy-trees",
        dicUrl: "/api/jurisdiction/lazy-tree",
        props: {
            label: "title",
            value: "id",
        },
        // labelWidth: 160,
        // span: 12,
        // search: true,
    },
    {
        label: "许可类型",
        // search: true,
@@ -248,9 +263,69 @@
        format: "yyyy-MM-dd HH:mm:ss",
        valueFormat: "yyyy-MM-dd HH:mm:ss",
    },
    // {
    //     label: "审核状态",
    //     prop: "type",
    //     addDisplay: false,
    //     type: "select",
    //     dicData: [
    //         {
    //             label: "通过",
    //             value: "0",
    //         },
    //         {
    //             label: "不通过",
    //             value: "1",
    //         },
    //         {
    //             label: "待审核",
    //             value: "2",
    //         },
    //     ],
    // },
    {
        label: "审核状态",
        prop: "type",
        label: "派出所审核",
        prop: "papprove",
        addDisplay: false,
        type: "select",
        dicData: [
            {
                label: "通过",
                value: "0",
            },
            {
                label: "不通过",
                value: "1",
            },
            {
                label: "待审核",
                value: "2",
            },
        ],
    },
    {
        label: "分局审核",
        prop: "xapprove",
        addDisplay: false,
        type: "select",
        dicData: [
            {
                label: "通过",
                value: "0",
            },
            {
                label: "不通过",
                value: "1",
            },
            {
                label: "待审核",
                value: "2",
            },
        ],
    },
    {
        label: "市局审核",
        prop: "sapprove",
        addDisplay: false,
        type: "select",
        dicData: [
src/views/licenseApproval/crossRegion.vue
@@ -2,7 +2,7 @@
 * @Author:liu
 * @Date: 2021-08-26 16:59:35 
 * @Last Modified by: liu
 * @Last Modified time: 2021-12-03 09:38:24
 * @Last Modified time: 2021-12-04 11:57:49
 */
@@ -54,9 +54,24 @@
            icon="el-icon-edit"
            :size="size"
            :type="type"
            v-if="row.stateOur == '0'"
            @click.stop="rowDel(row)"
            v-if="row.type == '2'"
            >备案审批
          </el-button>
          <el-button
            icon="el-icon-edit"
            :size="size"
            :type="type"
            v-if="
              row.stateOur != '0' &&
              !(
                row.papprove == '1' &&
                row.xapprove == '1' &&
                row.sapprove == '1'
              )
            "
            @click.stop="rowSee(row)"
            >审批查询
          </el-button>
          <el-button
            icon="el-icon-edit"
@@ -67,14 +82,52 @@
            >打印备案证
          </el-button>
        </template>
        <template class="tdtype" slot-scope="{ row }" slot="type">
        <template class="tdtype" slot-scope="{ row }" slot="papprove">
          <el-tag class="dtype">
            {{
              row.type == "0" ? "通过" : row.type == "1" ? "不通过" : "待审核"
              row.papprove == "1"
                ? "通过"
                : row.papprove == "0" || row.papprove == ""
                ? "待审核"
                : "不通过"
            }}
            <i class="gz" v-if="row.type == '2'"></i>
            <i class="yj" v-if="row.type == '1'"></i>
            <i class="zc" v-if="row.type == '1'"></i>
            <i class="gz" v-if="row.papprove == '0' || row.papprove == ''"></i>
            <i class="yj" v-if="row.papprove == '2'"></i>
            <i class="zc" v-if="row.papprove == '1'"></i>
          </el-tag>
        </template>
        <template class="tdtype" slot-scope="{ row }" slot="xapprove">
          <el-tag class="dtype">
            {{
              row.papprove == "2"
                ? "派出所未通过"
                : row.xapprove == "1"
                ? "通过"
                : row.xapprove == "0" || row.xapprove == ""
                ? "待审核"
                : "不通过"
            }}
            <i class="gz" v-if="row.xapprove == '0' || row.xapprove == ''"></i>
            <i class="yj" v-if="row.xapprove == '2'"></i>
            <i class="zc" v-if="row.xapprove == '1'"></i>
          </el-tag>
        </template>
        <template class="tdtype" slot-scope="{ row }" slot="sapprove">
          <el-tag class="dtype">
            {{
              row.papprove == "2"
                ? "派出所未通过"
                : row.xapprove == "2"
                ? "分局未通过"
                : row.sapprove == "1"
                ? "通过"
                : row.sapprove == "0" || row.sapprove == ""
                ? "待审核"
                : "不通过"
            }}
            <i class="gz" v-if="row.sapprove == '0' || row.sapprove == ''"></i>
            <i class="yj" v-if="row.sapprove == '2'"></i>
            <i class="zc" v-if="row.sapprove == '1'"></i>
          </el-tag>
        </template>
      </avue-crud>
@@ -94,7 +147,7 @@
          <div class="head-tid">
            编号
            <span class="fontStyle">{{
              licenceData.row.organizationcode
              licenceData.row.organizationcode || 557
            }}</span>
            <!-- 号 -->
          </div>
@@ -153,6 +206,20 @@
        </div>
      </div>
    </el-dialog>
    <el-dialog
      title=""
      :visible.sync="dialogVisibleccsee"
      width="30%"
      :modal-append-to-body="false"
    >
      <div class="flots">
        <div class="f_title">
          审批 {{ stateOur == "1" ? "通过" : stateOur == "2" ? "不通过" : "" }}
        </div>
        <div><span>审批意见:</span> {{ stateText }}</div>
      </div>
    </el-dialog>
  </div>
</template>
@@ -170,6 +237,8 @@
export default {
  data() {
    return {
      dialogVisibleccsee: false,
      stateText: "",
      classStyle: "print", //打印样式
      dialogVisiblecc: false, //许可证审核抽屉
@@ -286,22 +355,70 @@
      this.dialogVisiblecc = true;
      this.xukezData = row;
    },
    rowSee(row) {
      this.dialogVisibleccsee = true;
      this.stateOur = row.stateOur;
      if (this.user_name == "派") {
        // 派出所审批
        this.stateText = row.popinion;
      } else if (this.user_name == "县") {
        // 分局审批
        this.stateText = row.xopinion;
      } else if (this.user_name == "市") {
        // 市局审批
        this.stateText = row.sopinion;
      }
      this.stateText = row.opinionOur;
    },
    closecc() {
      this.xukezData.type = "0";
      this.dialogVisiblecc = false;
      this.xukezData["approve"] = this.textareaShenpi;
      console.log(this.xukezData);
      update(this.xukezData);
      this.textareaShenpi = "";
      this.upsData("1", "0"); //通过
    },
    subcc() {
      this.xukezData.type = "1";
      this.dialogVisiblecc = false;
      this.xukezData["approve"] = this.textareaShenpi;
      update(this.xukezData);
      this.textareaShenpi = "";
      this.upsData("2", "1"); //不通过
    },
    upsData(state, type) {
      let date = new Date(+new Date() + 8 * 3600 * 1000)
        .toJSON()
        .substr(0, 19)
        .replace("T", " ");
      // console.log(date);
      // return;
      this.dialogVisiblecc = false;
      if (this.user_name == "派") {
        // 派出所审批
        this.xukezData.ptime = date;
        this.xukezData.papprove = state;
        this.xukezData.popinion = this.textareaShenpi;
        this.xukezData.type = type == "0" ? "2" : "1"; // 为了保持审核系统识别
      } else if (this.user_name == "县") {
        // 分局审批
        this.xukezData.xtime = date;
        this.xukezData.xapprove = state;
        this.xukezData.xopinion = this.textareaShenpi;
        this.xukezData.type = type == "0" ? "2" : "1"; // 为了保持审核系统识别
      } else if (this.user_name == "市") {
        // 市局审批
        this.xukezData.stime = date;
        this.xukezData.sapprove = state;
        this.xukezData.sopinion = this.textareaShenpi;
        this.xukezData.permitime = new Date(+new Date() + 8 * 3600 * 1000)
          .toJSON()
          .substr(0, 19)
          .replace("T", " ");
        this.xukezData.type = type == "0" ? "0" : "1"; // 为了保持审核系统识别
      }
      // console.log(this.xukezData);
      // return;
      update(this.xukezData).then((res) => {
        console.log(res);
        this.$message({
          type: "success",
          message: "操作成功!",
        });
        this.refreshChange();
        this.textareaShenpi = "";
      });
    },
    viewLicense(row) {
      //查看许可证
      console.log(row, 34);
@@ -378,9 +495,93 @@
    refreshChange() {
      this.onLoad(this.page, this.query);
    },
    getFenji(name) {
      var d = {};
      if (name == "派出所管理员") {
        d = {
          // papprove: 1,
        };
        this.user_name = "派";
      } else if (name == "县局管理员") {
        d = {
          papprove: "1",
        };
        this.user_name = "县";
      } else if (name == "市局管理员") {
        d = {
          xapprove: "1",
        };
        this.user_name = "市";
      }
      return d;
    },
    changeState(data) {
      var b = data;
      if (this.user_name == "派") {
        // 派出所审批
        b["stateOur"] =
          b.papprove == "0" || b.papprove == ""
            ? "0"
            : b.papprove == "1"
            ? "1"
            : "2";
      } else if (this.user_name == "县") {
        // 分局审批
        b["stateOur"] =
          b.xapprove == "0" || b.xapprove == ""
            ? "0"
            : b.xapprove == "1"
            ? "1"
            : "2";
      } else if (this.user_name == "市") {
        // 市局审批
        b["stateOur"] =
          b.sapprove == "0" || b.sapprove == ""
            ? "0"
            : b.sapprove == "1"
            ? "1"
            : "2";
      }
      console.log(
        b.papprove == "0" || b.papprove == ""
          ? "0"
          : b.papprove == "1"
          ? "1"
          : "2"
      );
      return b;
    },
    onLoad(page, params = {}) {
      this.loading = true;
      params["ptype"] = 5;
      var gonganj = "";
      console.log(this.userInfo);
      if (this.userInfo.role_name == "公安管理员") {
        let test = /派出所$/g;
        if (test.test(this.userInfo.list.name)) {
          gonganj = "派出所管理员";
        }
        test = /分局|公安局$/g;
        if (test.test(this.userInfo.list.name)) {
          gonganj = "县局管理员";
        }
        test = /市公安局$/g;
        if (test.test(this.userInfo.list.name)) {
          gonganj = "市局管理员";
        }
      }
      // console.log(gonganj);
      this.userData =
        gonganj == "派出所管理员" ? "2" : gonganj == "县局管理员" ? "1" : "0";
      params = {
        ...params,
        ...this.getFenji(gonganj),
      };
      console.log(params, "params");
      params["jurisdiction"] = this.userInfo.jurisdiction;
      // params["usetype"] = this.userData;
      // this.option.column[this.option.column.length - 2].prop = "opinionOur";
      // return;
      getList(
        page.currentPage,
        page.pageSize,
@@ -389,6 +590,22 @@
        const data = res.data.data;
        this.page.total = data.total;
        this.data = data.records;
        for (var k in this.data) {
          // console.log(this.changeState(this.data[k]));
          this.data[k] = this.changeState(this.data[k]);
          let paichusuoyijian = this.data[k].popinion
            ? "派出所意见:" + this.data[k].popinion + ";"
            : "";
          let fenjuijian = this.data[k].xopinion
            ? "分局意见:" + this.data[k].xopinion + ";"
            : "";
          let shijuyijian = this.data[k].sopinion
            ? "市局意见:" + this.data[k].sopinion + ";"
            : "";
          this.data[k]["opinionOur"] =
            paichusuoyijian + fenjuijian + shijuyijian;
        }
        console.log(this.data);
        this.loading = false;
        this.selectionClear();
      });
src/views/licenseApproval/securityGuard.vue
@@ -2,7 +2,7 @@
 * @Author: liu
 * @Date: 2021-08-26 16:57:58 
 * @Last Modified by: liu
 * @Last Modified time: 2021-12-02 17:04:32
 * @Last Modified time: 2021-12-04 10:23:21
 */
@@ -98,18 +98,52 @@
            >回执打印
          </el-button>
        </template>
        <template class="tdtype" slot-scope="{ row }" slot="type">
        <template class="tdtype" slot-scope="{ row }" slot="papprove">
          <el-tag class="dtype">
            {{
              row.stateOur == "1"
              row.papprove == "1"
                ? "通过"
                : row.stateOur == "2"
                ? "不通过"
                : "待审核"
                : row.papprove == "0" || row.papprove == ""
                ? "待审核"
                : "不通过"
            }}
            <i class="gz" v-if="row.stateOur == '0'"></i>
            <i class="yj" v-if="row.stateOur == '2'"></i>
            <i class="zc" v-if="row.stateOur == '1'"></i>
            <i class="gz" v-if="row.papprove == '0' || row.papprove == ''"></i>
            <i class="yj" v-if="row.papprove == '2'"></i>
            <i class="zc" v-if="row.papprove == '1'"></i>
          </el-tag>
        </template>
        <template class="tdtype" slot-scope="{ row }" slot="xapprove">
          <el-tag class="dtype">
            {{
              row.papprove == "2"
                ? "派出所未通过"
                : row.xapprove == "1"
                ? "通过"
                : row.xapprove == "0" || row.xapprove == ""
                ? "待审核"
                : "不通过"
            }}
            <i class="gz" v-if="row.xapprove == '0' || row.xapprove == ''"></i>
            <i class="yj" v-if="row.xapprove == '2'"></i>
            <i class="zc" v-if="row.xapprove == '1'"></i>
          </el-tag>
        </template>
        <template class="tdtype" slot-scope="{ row }" slot="sapprove">
          <el-tag class="dtype">
            {{
              row.papprove == "2"
                ? "派出所未通过"
                : row.xapprove == "2"
                ? "分局未通过"
                : row.sapprove == "1"
                ? "通过"
                : row.sapprove == "0" || row.sapprove == ""
                ? "待审核"
                : "不通过"
            }}
            <i class="gz" v-if="row.sapprove == '0' || row.sapprove == ''"></i>
            <i class="yj" v-if="row.sapprove == '2'"></i>
            <i class="zc" v-if="row.sapprove == '1'"></i>
          </el-tag>
        </template>
      </avue-crud>
@@ -129,7 +163,7 @@
          <div class="head-tid">
            编号
            <span class="fontStyle">{{
              licenceData.row.organizationcode
              licenceData.row.organizationcode || 378
            }}</span>
            <!-- 号 -->
          </div>
@@ -407,6 +441,7 @@
        // 市局审批
        this.stateText = row.sopinion;
      }
      this.stateText = row.opinionOur;
    },
    closecc() {
@@ -479,7 +514,7 @@
      // this.licenceData.chiden["注册资本"] = row.registeredcapital;
      // this.licenceData.chiden["批准文号"] = row.registrationnumber;
      console.log(this.licenceData);
      // console.log(this.licenceData);
      if (val != 1) {
        this.dialogVisible = true;
      }
src/views/licenseApproval/securityPermit.vue
@@ -3,7 +3,7 @@
 * @Author: liu
 * @Date: 2021-08-26 16:22:20 
 * @Last Modified by: liu
 * @Last Modified time: 2021-12-02 17:14:20
 * @Last Modified time: 2021-12-04 10:40:46
 */
<template>
@@ -84,18 +84,52 @@
            >打印许可证
          </el-button>
        </template>
        <template class="tdtype" slot-scope="{ row }" slot="type">
        <template class="tdtype" slot-scope="{ row }" slot="papprove">
          <el-tag class="dtype">
            {{
              row.stateOur == "1"
              row.papprove == "1"
                ? "通过"
                : row.stateOur == "2"
                ? "不通过"
                : "待审核"
                : row.papprove == "0" || row.papprove == ""
                ? "待审核"
                : "不通过"
            }}
            <i class="gz" v-if="row.stateOur == '0'"></i>
            <i class="yj" v-if="row.stateOur == '2'"></i>
            <i class="zc" v-if="row.stateOur == '1'"></i>
            <i class="gz" v-if="row.papprove == '0' || row.papprove == ''"></i>
            <i class="yj" v-if="row.papprove == '2'"></i>
            <i class="zc" v-if="row.papprove == '1'"></i>
          </el-tag>
        </template>
        <template class="tdtype" slot-scope="{ row }" slot="xapprove">
          <el-tag class="dtype">
            {{
              row.papprove == "2"
                ? "派出所未通过"
                : row.xapprove == "1"
                ? "通过"
                : row.xapprove == "0" || row.xapprove == ""
                ? "待审核"
                : "不通过"
            }}
            <i class="gz" v-if="row.xapprove == '0' || row.xapprove == ''"></i>
            <i class="yj" v-if="row.xapprove == '2'"></i>
            <i class="zc" v-if="row.xapprove == '1'"></i>
          </el-tag>
        </template>
        <template class="tdtype" slot-scope="{ row }" slot="sapprove">
          <el-tag class="dtype">
            {{
              row.papprove == "2"
                ? "派出所未通过"
                : row.xapprove == "2"
                ? "分局未通过"
                : row.sapprove == "1"
                ? "通过"
                : row.sapprove == "0" || row.sapprove == ""
                ? "待审核"
                : "不通过"
            }}
            <i class="gz" v-if="row.sapprove == '0' || row.sapprove == ''"></i>
            <i class="yj" v-if="row.sapprove == '2'"></i>
            <i class="zc" v-if="row.sapprove == '1'"></i>
          </el-tag>
        </template>
      </avue-crud>
@@ -167,7 +201,7 @@
          <div class="head-tid">
            洪公保服务
            <span class="fontStyle">{{
              licenceData.row.organizationcode
              licenceData.row.organizationcode || 375
            }}</span>
            号
          </div>
@@ -394,6 +428,7 @@
        // 市局审批
        this.stateText = row.sopinion;
      }
      this.stateText = row.opinionOur;
    },
    closecc() {
      this.upsData("1", "0"); //通过
src/views/licenseApproval/securityTraining.vue
@@ -2,7 +2,7 @@
 * @Author: liu
 * @Date: 2021-08-26 16:55:25 
 * @Last Modified by: liu
 * @Last Modified time: 2021-11-04 19:31:06
 * @Last Modified time: 2021-12-04 11:57:59
 */
@@ -55,8 +55,23 @@
            :size="size"
            :type="type"
            @click.stop="rowDel(row)"
            v-if="row.type == '2'"
            v-if="row.stateOur == '0'"
            >许可审批
          </el-button>
          <el-button
            icon="el-icon-edit"
            :size="size"
            :type="type"
            v-if="
              row.stateOur != '0' &&
              !(
                row.papprove == '1' &&
                row.xapprove == '1' &&
                row.sapprove == '1'
              )
            "
            @click.stop="rowSee(row)"
            >审批查询
          </el-button>
          <el-button
            icon="el-icon-edit"
@@ -67,14 +82,52 @@
            >打印许可证
          </el-button>
        </template>
        <template class="tdtype" slot-scope="{ row }" slot="type">
        <template class="tdtype" slot-scope="{ row }" slot="papprove">
          <el-tag class="dtype">
            {{
              row.type == "0" ? "通过" : row.type == "1" ? "不通过" : "待审核"
              row.papprove == "1"
                ? "通过"
                : row.papprove == "0" || row.papprove == ""
                ? "待审核"
                : "不通过"
            }}
            <i class="gz" v-if="row.type == '2'"></i>
            <i class="yj" v-if="row.type == '1'"></i>
            <i class="zc" v-if="row.type == '0'"></i>
            <i class="gz" v-if="row.papprove == '0' || row.papprove == ''"></i>
            <i class="yj" v-if="row.papprove == '2'"></i>
            <i class="zc" v-if="row.papprove == '1'"></i>
          </el-tag>
        </template>
        <template class="tdtype" slot-scope="{ row }" slot="xapprove">
          <el-tag class="dtype">
            {{
              row.papprove == "2"
                ? "派出所未通过"
                : row.xapprove == "1"
                ? "通过"
                : row.xapprove == "0" || row.xapprove == ""
                ? "待审核"
                : "不通过"
            }}
            <i class="gz" v-if="row.xapprove == '0' || row.xapprove == ''"></i>
            <i class="yj" v-if="row.xapprove == '2'"></i>
            <i class="zc" v-if="row.xapprove == '1'"></i>
          </el-tag>
        </template>
        <template class="tdtype" slot-scope="{ row }" slot="sapprove">
          <el-tag class="dtype">
            {{
              row.papprove == "2"
                ? "派出所未通过"
                : row.xapprove == "2"
                ? "分局未通过"
                : row.sapprove == "1"
                ? "通过"
                : row.sapprove == "0" || row.sapprove == ""
                ? "待审核"
                : "不通过"
            }}
            <i class="gz" v-if="row.sapprove == '0' || row.sapprove == ''"></i>
            <i class="yj" v-if="row.sapprove == '2'"></i>
            <i class="zc" v-if="row.sapprove == '1'"></i>
          </el-tag>
        </template>
      </avue-crud>
@@ -146,7 +199,7 @@
          <div class="head-tid">
            洪公保服务
            <span class="fontStyle">{{
              licenceData.row.organizationcode
              licenceData.row.organizationcode || 998
            }}</span>
            号
          </div>
@@ -206,6 +259,20 @@
        </div>
      </div>
    </el-dialog>
    <el-dialog
      title=""
      :visible.sync="dialogVisibleccsee"
      width="30%"
      :modal-append-to-body="false"
    >
      <div class="flots">
        <div class="f_title">
          审批 {{ stateOur == "1" ? "通过" : stateOur == "2" ? "不通过" : "" }}
        </div>
        <div><span>审批意见:</span> {{ stateText }}</div>
      </div>
    </el-dialog>
  </div>
</template>
@@ -223,6 +290,7 @@
export default {
  data() {
    return {
      user_name: "",
      classStyle: "print", //打印样式
      dialogVisiblecc: false, //许可证审核抽屉
@@ -234,7 +302,7 @@
        chiden: {},
      },
      textareaShenpi: "",
      dialogVisibleccsee: false,
      form: {},
      query: {},
      loading: true,
@@ -339,20 +407,71 @@
      this.dialogVisiblecc = true;
      this.xukezData = row;
    },
    rowSee(row) {
      this.dialogVisibleccsee = true;
      this.stateOur = row.stateOur;
      if (this.user_name == "派") {
        // 派出所审批
        this.stateText = row.popinion;
      } else if (this.user_name == "县") {
        // 分局审批
        this.stateText = row.xopinion;
      } else if (this.user_name == "市") {
        // 市局审批
        this.stateText = row.sopinion;
      }
      this.stateText = row.opinionOur;
    },
    closecc() {
      this.xukezData.type = "0";
      this.dialogVisiblecc = false;
      this.xukezData["approve"] = this.textareaShenpi;
      console.log(this.xukezData);
      update(this.xukezData);
      this.textareaShenpi = "";
      this.upsData("1", "0"); //通过
    },
    subcc() {
      this.xukezData.type = "1";
      this.upsData("2", "1"); //不通过
    },
    upsData(state, type) {
      let date = new Date(+new Date() + 8 * 3600 * 1000)
        .toJSON()
        .substr(0, 19)
        .replace("T", " ");
      console.log(this.user_name);
      // return;
      this.dialogVisiblecc = false;
      this.xukezData["approve"] = this.textareaShenpi;
      update(this.xukezData);
      this.textareaShenpi = "";
      console.log(this.xukezData);
      if (this.user_name == "派") {
        // 派出所审批
        this.xukezData.ptime = date;
        this.xukezData.papprove = state;
        this.xukezData.popinion = this.textareaShenpi;
        this.xukezData.type = type == "0" ? "2" : "1"; // 为了保持审核系统识别
      } else if (this.user_name == "县") {
        // 分局审批
        this.xukezData.xtime = date;
        this.xukezData.xapprove = state;
        this.xukezData.xopinion = this.textareaShenpi;
        this.xukezData.type = type == "0" ? "2" : "1"; // 为了保持审核系统识别
      } else if (this.user_name == "市") {
        // 市局审批
        this.xukezData.stime = date;
        this.xukezData.sapprove = state;
        this.xukezData.sopinion = this.textareaShenpi;
        this.xukezData.permitime = new Date(+new Date() + 8 * 3600 * 1000)
          .toJSON()
          .substr(0, 19)
          .replace("T", " ");
        this.xukezData.type = type == "0" ? "0" : "1"; // 为了保持审核系统识别
      }
      console.log(this.xukezData);
      // return;
      console.log(this.xukezData);
      update(this.xukezData).then((res) => {
        console.log(res);
        this.$message({
          type: "success",
          message: "操作成功!",
        });
        this.refreshChange();
        this.textareaShenpi = "";
      });
    },
    viewLicense(row) {
@@ -428,9 +547,89 @@
    refreshChange() {
      this.onLoad(this.page, this.query);
    },
    getFenji(name) {
      var d = {};
      if (name == "派出所管理员") {
        d = {
          // papprove: 1,
        };
        this.user_name = "派";
      } else if (name == "县局管理员") {
        d = {
          papprove: "1",
        };
        this.user_name = "县";
      } else if (name == "市局管理员") {
        d = {
          xapprove: "1",
        };
        this.user_name = "市";
      }
      return d;
    },
    changeState(data) {
      var b = {
        ...data,
        stateOur: "",
      };
      if (this.user_name == "派") {
        // 派出所审批
        b["stateOur"] =
          b.papprove == "0" || b.papprove == ""
            ? "0"
            : b.papprove == "1"
            ? "1"
            : "2";
      } else if (this.user_name == "县") {
        // 分局审批
        b["stateOur"] =
          b.xapprove == "0" || b.xapprove == ""
            ? "0"
            : b.xapprove == "1"
            ? "1"
            : "2";
      } else if (this.user_name == "市") {
        // 市局审批
        b["stateOur"] =
          b.sapprove == "0" || b.sapprove == ""
            ? "0"
            : b.sapprove == "1"
            ? "1"
            : "2";
      }
      return b;
    },
    onLoad(page, params = {}) {
      this.loading = true;
      params["ptype"] = 1;
      var gonganj = "";
      console.log(this.userInfo);
      if (this.userInfo.role_name == "公安管理员") {
        let test = /派出所$/g;
        if (test.test(this.userInfo.list.name)) {
          gonganj = "派出所管理员";
        }
        test = /分局|公安局$/g;
        if (test.test(this.userInfo.list.name)) {
          gonganj = "县局管理员";
        }
        test = /市公安局$/g;
        if (test.test(this.userInfo.list.name)) {
          gonganj = "市局管理员";
        }
      }
      // console.log(gonganj, 23);
      this.userData =
        gonganj == "派出所管理员" ? "2" : gonganj == "县局管理员" ? "1" : "0";
      params = {
        ...params,
        ...this.getFenji(gonganj),
      };
      console.log(params, "params");
      params["jurisdiction"] = this.userInfo.jurisdiction;
      // params["usetype"] = this.userData;
      // this.option.column[this.option.column.length - 2].prop = "opinionOur";
      // return;
      getList(
        page.currentPage,
        page.pageSize,
@@ -439,6 +638,21 @@
        const data = res.data.data;
        this.page.total = data.total;
        this.data = data.records;
        for (var k in this.data) {
          // console.log(this.changeState(this.data[k]));
          this.data[k] = this.changeState(this.data[k]);
          let paichusuoyijian = this.data[k].popinion
            ? "派出所意见:" + this.data[k].popinion + ";"
            : "";
          let fenjuijian = this.data[k].xopinion
            ? "分局意见:" + this.data[k].xopinion + ";"
            : "";
          let shijuyijian = this.data[k].sopinion
            ? "市局意见:" + this.data[k].sopinion + ";"
            : "";
          this.data[k]["opinionOur"] =
            paichusuoyijian + fenjuijian + shijuyijian;
        }
        this.loading = false;
        this.selectionClear();
      });
src/views/management/computents/honor.vue
@@ -20,7 +20,7 @@
<script>
import { getListhonor } from "@/api/register/honor";
export default {
  props: ["form"],
  props: ["form", "see"],
  data() {
    return {
      punishOption: {
@@ -28,7 +28,7 @@
        delBtn: false,
        editBtn: false,
        addBtn: false,
        searchShowBtn: false,
        // searchShowBtn: false,
        selection: true,
        menu: false,
@@ -36,7 +36,7 @@
        height: "auto",
        calcHeight: 270,
        tip: false,
        searchShow: false,
        // searchShow: false,
        searchMenuSpan: 4,
        // index: false,
        viewBtn: true,
@@ -50,6 +50,9 @@
            label: "保安员名称",
            prop: "name",
            span: 24,
            search: false,
            searchLabelWidth: 100,
            searchSpan: 4,
            labelWidth: 110,
            disabled: true,
            rules: [
@@ -64,7 +67,10 @@
            label: "身份证号码",
            prop: "cardid",
            span: 24,
            search: false,
            searchSpan: 5,
            labelWidth: 110,
            searchLabelWidth: 100,
            width: 190,
            disabled: true,
            rules: [
@@ -84,6 +90,9 @@
          {
            label: "荣誉情况",
            prop: "honor",
            search: false,
            searchSpan: 5,
            searchLabelWidth: 90,
            span: 24,
            labelWidth: 110,
          },
@@ -111,10 +120,38 @@
      i: 1,
    };
  },
  mounted() {},
  mounted() {
    if (this.see) {
      this.punishOption.height = "615";
      this.punishOption.column[0].search = true;
      this.punishOption.column[1].search = true;
      this.punishOption.column[3].search = true;
    }
  },
  methods: {
    punishOnLoad(page, params = {}) {
      this.punishLoading = true;
      if (this.see) {
        getListhonor(
          page.currentPage,
          page.pageSize,
          Object.assign(params, this.punishQuery)
        ).then((res) => {
          this.i++;
          const data = res.data.data;
          this.punishPage.total = data.total;
          this.punishData = data.records;
          console.log(this.punishData);
          this.punishLoading = false;
          this.$refs.punishCrud.refreshTable();
          this.$refs.punishCrud.doLayout();
          if (this.i % 2 != 0) {
            this.punishAngin();
          }
        });
        return;
      }
      getListhonor(
        page.currentPage,
        page.pageSize,
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-12-02 18:37:19
 * @Last Modified time: 2021-12-04 15:28:17
 * menu-name 押运人员定位
 */
<template>
src/views/onSiteInspection/company.vue
@@ -1,8 +1,8 @@
/*
 * @Author: Morpheus
 * @Date: 2021-07-07 17:30:05
 * @Last Modified by: Morpheus
 * @Last Modified time: 2021-07-10 16:06:14
 * @Last Modified by: liu
 * @Last Modified time: 2021-12-04 15:23:00
 * menu-name 单位检查
 */
<template>
@@ -42,6 +42,12 @@
import { datasing } from "./company";
export default {
  props: ["see"],
  mounted() {
    if (this.see) {
      this.option.height = "620";
    }
  },
  data() {
    return {
      form: {},
src/views/onSiteInspection/securityStaff.vue
@@ -1,8 +1,8 @@
/*
 * @Author: Morpheus
 * @Date: 2021-07-07 17:30:05
 * @Last Modified by: Morpheus
 * @Last Modified time: 2021-07-10 16:06:14
 * @Last Modified by: liu
 * @Last Modified time: 2021-12-04 15:24:57
 * menu-name 保安员检查
 */
<template>
@@ -41,6 +41,12 @@
import { datasing } from "./securityStaffdata";
export default {
  props: ["see"],
  mounted() {
    if (this.see) {
      this.option.height = "620";
    }
  },
  data() {
    return {
      form: {},
src/views/permit/permit.vue
@@ -56,7 +56,7 @@
            :type="type"
            @click.stop="viewLicense(row)"
            v-if="row.type == '0'"
            >打印许可证
            >生成许可证
          </el-button>
        </template>
        <template class="tdtype" slot-scope="{ row }" slot="type">
src/views/qualificationExamination/registrationTrainingQuery.vue
@@ -2,7 +2,7 @@
 * @Author: Morpheus
 * @Date: 2021-07-07 17:30:05
 * @Last Modified by: liu
 * @Last Modified time: 2021-09-14 17:22:35
 * @Last Modified time: 2021-12-03 13:25:53
 * menu-name 报名培训查询
 */
<template>
@@ -395,7 +395,7 @@
            // }],
          },
          {
            label: "培训时间",
            label: "报名时间",
            prop: "trainingTime",
            type: "date",
            format: "yyyy-MM-dd",
src/views/securityCompany/column.js
@@ -14,7 +14,7 @@
    },
    {
        label: "企业名称",
        label: "单位名称",
        prop: "enterprisename",
        search: true,
        width: 260,
@@ -45,7 +45,7 @@
        ],
    },
    {
        label: "法定代表人",
        label: "法人姓名",
        labelWidth: 160,
        prop: "representative",
        width: 110,
@@ -192,6 +192,7 @@
        label: "处罚情况",
        prop: "punishreason",
        span: 24,
        search: false,
        labelWidth: 110,
        rules: [
            {
@@ -205,6 +206,7 @@
        label: "处罚结果",
        prop: "punishresult",
        span: 24,
        search: false,
        // type: "textarea",
        labelWidth: 110,
    },
@@ -212,6 +214,7 @@
        label: "处罚日期",
        prop: "punishtime",
        span: 24,
        search: false,
        type: "date",
        format: "yyyy-MM-dd",
        valueFormat: "yyyy-MM-dd",
src/views/securityCompany/companyDetails.vue
@@ -2,7 +2,7 @@
 * @Author: Morpheus
 * @Date: 2021-07-05 16:31:54
 * @Last Modified by: liu
 * @Last Modified time: 2021-11-25 10:09:07
 * @Last Modified time: 2021-12-03 13:49:36
 * menu-name 保安公司详细资料
 */
<template>
@@ -262,6 +262,7 @@
                @search-reset="investorSearchReset"
                @current-change="investorCurrentChange"
                @size-change="investorSizeChange"
                @refresh-change="refreshChange2"
              >
              </avue-crud>
            </el-tab-pane>
@@ -280,6 +281,7 @@
                @search-reset="manageSearchReset"
                @current-change="manageCurrentChange"
                @size-change="manageSizeChange"
                @refresh-change="refreshChange1"
              >
              </avue-crud>
            </el-tab-pane>
@@ -643,7 +645,9 @@
        });
      });
    },
    refreshChange2() {
      this.investorOnLoad(this.investorPage, this.investorQuery);
    },
    investorOnLoad(page, params = {}) {
      this.investorLoading = true;
      getInvestorList(
@@ -685,7 +689,9 @@
    investorSizeChange(pageSize) {
      this.investorPage.pageSize = pageSize;
    },
    refreshChange1() {
      this.manageOnLoad(this.managePage, this.manageQuery);
    },
    manageOnLoad(page, params = {}) {
      this.manageLoading = true;
      getManageList(
src/views/securityCompany/computents/equipment.vue
@@ -13,6 +13,7 @@
    @current-change="equipmentCurrentChange"
    @size-change="equipmentSizeChange"
    @on-load="equipmentOnLoad"
    @refresh-change="refreshChange"
  >
  </avue-crud>
  <!-- @on-load="equipmentOnLoad" -->
@@ -238,6 +239,9 @@
    // this.equipmentOnLoad(this.equipmentPage);
  },
  methods: {
    refreshChange() {
      this.equipmentOnLoad(this.equipmentPage, this.equipmentQuery);
    },
    equipmentOnLoad(page, params = {}) {
      this.equipmentLoading = true;
      getListequipment(
src/views/securityCompany/computents/punish.vue
@@ -1,21 +1,35 @@
<template>
  <avue-crud
    class="company-box"
    :option="punishOption"
    :search.sync="punishSearch"
    :table-loading="punishLoading"
    :data="punishData"
    ref="punishCrud"
    :page.sync="punishPage"
    @selection-change="punishSelectionChange"
    @search-change="punishSearchChange"
    @search-reset="punishSearchReset"
    @current-change="punishCurrentChange"
    @size-change="punishSizeChange"
    @refresh-change="punishRefreshcCange"
    @on-load="punishOnLoad"
  >
  </avue-crud>
  <div>
    <avue-crud
      class="company-box"
      :option="punishOption"
      :search.sync="punishSearch"
      :table-loading="punishLoading"
      :data="punishData"
      ref="punishCrud"
      :page.sync="punishPage"
      @selection-change="punishSelectionChange"
      @search-change="punishSearchChange"
      @search-reset="punishSearchReset"
      @current-change="punishCurrentChange"
      @size-change="punishSizeChange"
      @refresh-change="punishRefreshcCange"
      @on-load="punishOnLoad"
    >
      <template slot="menuLeft">
        <el-button
          icon="el-icon-warning"
          @click.stop="punishOpen(row)"
          type="danger"
          size="small"
          plain
          v-if="form.see"
          >处罚</el-button
        >
      </template>
    </avue-crud>
  </div>
  <!-- @on-load="punishOnLoad" -->
</template>
@@ -25,13 +39,20 @@
export default {
  props: ["form"],
  watch: {
    "form.news"() {
      if (this.form.see) {
        this.refreshChange();
      }
    },
  },
  data() {
    return {
      punishOption: {
        // 操作栏多余按钮去除
        delBtn: false,
        editBtn: false,
        searchShowBtn: false,
        // searchShowBtn: false,
        addBtn: false,
        selection: true,
        border: true,
@@ -41,7 +62,7 @@
        height: "auto",
        calcHeight: 270,
        tip: false,
        searchShow: false,
        searchShow: true,
        searchMenuSpan: 4,
        index: false,
        viewBtn: true,
@@ -65,10 +86,31 @@
    };
  },
  mounted() {
    // console.log(this.form, "pu");
    console.log(this.form, "pu");
    console.log(this.punishOption.column, "pu");
    // this.punishOnLoad(this.punishPage);
    // setTimeout(() => {
    var searchs = () => {
      if (this.form.see) {
        this.punishOption.column[1].search = true;
        this.punishOption.column[2].search = true;
        this.punishOption.column[3].search = true;
      }
    };
    if (this.form.see) {
      searchs();
    }
    // }, 500);
    this.$refs.punishCrud.refreshTable();
    this.$refs.punishCrud.doLayout();
  },
  methods: {
    punishOpen() {
      this.form.that.punish();
    },
    refreshChange() {
      this.punishOnLoad(this.punishPage, this.punishQuery);
    },
    punishOnLoad(page, params = {}) {
      this.punishLoading = true;
      // console.log(this.form.departmentid);
src/views/securityCompany/computents/service.vue
@@ -13,7 +13,13 @@
    @current-change="serviceCurrentChange"
    @size-change="serviceSizeChange"
    @on-load="serviceOnLoad"
    @refresh-change="refreshChange"
  >
    <!--
       refreshChange() {
      this.serviceOnLoad(this.servicePage, this.serviceQuery);
    },
    -->
  </avue-crud>
  <!-- @on-load="serviceOnLoad" -->
</template>
@@ -163,8 +169,8 @@
    };
  },
  mounted() {
    console.log(this.form, "serviceData");
    this.serviceOnLoad(this.servicePage);
    // console.log(this.form, "serviceData");
    // this.serviceOnLoad(this.servicePage);
  },
  methods: {
    serviceOnLoad(page, params = {}) {
@@ -186,6 +192,9 @@
        this.serviceSelectionClear();
      });
    },
    refreshChange() {
      this.serviceOnLoad(this.servicePage, this.serviceQuery);
    },
    serviceSelectionClear() {
      this.serviceSelectionList = [];
      this.$refs.serviceCrud.toggleSelection();
src/views/securityCompany/computents/serviceS.vue
@@ -13,6 +13,7 @@
    @current-change="serviceCurrentChange"
    @size-change="serviceSizeChange"
    @on-load="serviceOnLoad"
    @refresh-change="refreshChange"
  >
  </avue-crud>
  <!-- @on-load="serviceOnLoad" -->
@@ -107,6 +108,9 @@
    // this.serviceOnLoad(this.servicePage);
  },
  methods: {
    refreshChange() {
      this.serviceOnLoad(this.servicePage, this.serviceQuery);
    },
    serviceOnLoad(page, params = {}) {
      this.serviceLoading = true;
      getListedispatcherUnit(
src/views/securityCompany/computents/staff.vue
@@ -13,6 +13,7 @@
    @current-change="staffCurrentChange"
    @size-change="staffSizeChange"
    @on-load="staffOnLoad"
    @refresh-change="refreshChange"
  >
    <!-- @on-load="staffOnLoad" -->
  </avue-crud>
@@ -259,6 +260,9 @@
    // this.staffOnLoad(this.staffPage);
  },
  methods: {
    refreshChange() {
      this.staffOnLoad(this.staffPage, this.staffQuery);
    },
    staffOnLoad(page, params = {}) {
      this.staffLoading = true;
      getListestaff(
src/views/securityCompany/confess.vue
@@ -2,7 +2,7 @@
 * @Author: Morpheus
 * @Date: 2021-07-07 17:30:05
 * @Last Modified by: liu
 * @Last Modified time: 2021-09-15 11:32:53
 * @Last Modified time: 2021-12-04 18:16:37
 * menu-name 保安服务公司查询
 */
<template>
@@ -45,11 +45,18 @@
          >台账查询
        </el-button>
        <el-button
          icon="el-icon-s-custom"
          :size="size"
          :type="type"
          @click.stop="handleRowlood(row)"
          >附件预览
        </el-button>
        <el-button
          :size="size"
          :type="type"
          icon="el-icon-warning"
          class="zhengJian-icon"
          @click.stop="punish(row)"
          @click.stop="punishtable(row)"
          >处罚</el-button
        >
      </template>
@@ -86,6 +93,18 @@
        >
      </span> -->
    </el-dialog>
    <el-dialog
      title="处罚详情"
      :visible.sync="dialogVisiblepunishtable"
      width="85%"
      height="80vh"
      :before-close="handleClose"
      :modal-append-to-body="false"
      center
    >
      <punish :form="dialogVisiblepunishData" v-if="dialogVisiblepunishtable">
      </punish>
    </el-dialog>
  </basic-container>
</template>
@@ -100,10 +119,16 @@
} from "@/api/securityCompany/security";
import { mapGetters } from "vuex";
import { companyColimn, punishColimn } from "./column";
import punish from "./computents/punish.vue"; //处罚信息
export default {
  components: {
    punish,
  },
  data() {
    return {
      dialogVisiblepunishData: {},
      dialogVisiblepunishtable: false,
      objf: {},
      optionf: {
        column: punishColimn,
@@ -214,6 +239,7 @@
          type: "success",
          message: "操作成功!",
        });
        this.dialogVisiblepunishData.news = !this.dialogVisiblepunishData.news;
        that.objf = {
          enterprisename: "",
          punishreason: "",
@@ -241,15 +267,37 @@
      };
      done();
    },
    punish(row) {
    punishtable(row) {
      this.dialogVisiblepunishData = {
        ...row,
        see: true,
        that: this,
        news: false,
      };
      this.dialogVisiblepunishtable = true;
    },
    punish() {
      //打开处罚
      // console.log(row);
      this.objf = {
        deptid: row.departmentid,
        enterprisename: row.enterprisename,
        deptid: this.dialogVisiblepunishData.departmentid,
        enterprisename: this.dialogVisiblepunishData.enterprisename,
      };
      this.dialogVisible = true;
    },
    handleRowlood(row) {
      //附件预览1
      // console.log(row);
      this.$router.push({
        // path: "/attach/index",
        path: "/resource/attachCopy",
        // redirect: { name: "foo" },
        // query: { row: row },
        query: { deptid: row.departmentid, type: "4" },
        // query: { deptid: row.departmentid },
        // params: { row: row.identificationnumber },
      });
    },
    rowSave(row, done, loading) {
      add(row).then(
        () => {
src/views/securityCompany/dispatch.vue
@@ -1,8 +1,8 @@
/*
 * @Author: Morpheus
 * @Date: 2021-07-07 17:30:05
 * @Last Modified by: Morpheus
 * @Last Modified time: 2021-07-10 16:06:03
 * @Last Modified by: liu
 * @Last Modified time: 2021-12-04 18:14:33
 * menu-name 派遣公司查询
 */
<template>
@@ -77,7 +77,7 @@
        column: [
          {
            label: "派遣单位",
            label: "服务单位",
            prop: "name",
            search: true,
            searchSpan: 4,
src/views/securityCompany/regulatoryInformation.vue
@@ -2,32 +2,72 @@
 * @Author: Morpheus
 * @Date: 2021-07-07 17:30:05
 * @Last Modified by: liu
 * @Last Modified time: 2021-09-15 19:56:58
 * @Last Modified time: 2021-12-04 16:45:40
 * menu-name 监管信息
 */
<template>
  <basic-container class="regulatoryInformation">
    <avue-crud
      :option="option"
      :table-loading="loading"
      :data="data"
      :page.sync="page"
      :permission="permissionList"
      v-model="form"
      ref="crud"
      @row-update="rowUpdates"
      @row-save="rowSave"
      @row-del="rowDel"
      @search-change="searchChange"
      @search-reset="searchReset"
      @selection-change="selectionChange"
      @current-change="currentChange"
      @size-change="sizeChange"
      @refresh-change="refreshChange"
      @on-load="onLoad"
    >
    </avue-crud>
  </basic-container>
  <div>
    <el-tabs v-model="activeName" @tab-click="handleClick" type="border-card">
      <el-tab-pane label="保安公司日常检查" name="first">
        <company :see="true"></company>
      </el-tab-pane>
      <el-tab-pane label="保安公司处罚" name="second">
        <basic-container class="regulatoryInformation">
          <avue-crud
            :option="option"
            :table-loading="loading"
            :data="data"
            :page.sync="page"
            :permission="permissionList"
            v-model="form"
            ref="crud"
            @row-update="rowUpdates"
            @row-save="rowSave"
            @row-del="rowDel"
            @search-change="searchChange"
            @search-reset="searchReset"
            @selection-change="selectionChange"
            @current-change="currentChange"
            @size-change="sizeChange"
            @refresh-change="refreshChange"
            @on-load="onLoad"
          >
          </avue-crud>
        </basic-container>
      </el-tab-pane>
      <!-- <el-tab-pane label="保安公司荣誉" name="third">角色管理</el-tab-pane> -->
      <el-tab-pane label="保安员日常检查" name="fourth">
        <securityStaff :see="true"></securityStaff>
      </el-tab-pane>
      <el-tab-pane label="保安员处罚" name="fifth">
        <basic-container class="regulatoryInformation">
          <avue-crud
            :option="option1"
            :table-loading="loading1"
            :data="data1"
            :page.sync="page1"
            :permission="permissionList"
            v-model="form1"
            ref="crud1"
            @row-update="rowUpdates1"
            @row-save="rowSave1"
            @row-del="rowDel1"
            @search-change="searchChange1"
            @search-reset="searchReset1"
            @selection-change="selectionChange1"
            @current-change="currentChange1"
            @size-change="sizeChange1"
            @refresh-change="refreshChange1"
            @on-load="onLoad1"
          >
          </avue-crud>
        </basic-container>
      </el-tab-pane>
      <el-tab-pane label="保安员荣誉" name="sixth">
        <honor :see="true"></honor>
      </el-tab-pane>
    </el-tabs>
  </div>
</template>
<script>
@@ -40,7 +80,16 @@
} from "@/api/regulatoryInformation/regulatoryInformation";
import { mapGetters } from "vuex";
import company from "../onSiteInspection/company.vue";
import securityStaff from "../onSiteInspection/securityStaff.vue";
import honor from "../management/computents/honor.vue";
import { getListSecurity } from "@/api/system/user";
export default {
  components: {
    company,
    securityStaff,
    honor,
  },
  data() {
    var dic = [
      {
@@ -77,6 +126,7 @@
      },
    ];
    return {
      activeName: "first",
      form: {},
      query: {},
      loading: true,
@@ -94,9 +144,8 @@
        // selection: true,
        // menu: false,
        selection: true,
        align: "center",
        height: "auto",
        height: "560",
        calcHeight: 30,
        tip: false,
        searchShow: true,
@@ -184,43 +233,106 @@
            // display: false,
          },
        ],
        // group: [
        //   {
        //     label: "详细信息",
        //     prop: "baseInfo",
        //     icon: "el-icon-user-solid",
        //     column: [
        //       {
        //         label: "公司名称",
        //         prop: "enterprisename",
        //         display: false,
        //       },
        //     ],
        //   },
        //   {
        //     label: "详细信息",
        //     prop: "detailInfo",
        //     icon: "el-icon-s-order",
        //     column: [],
        //   },
        //   {
        //     label: "职责信息",
        //     prop: "dutyInfo",
        //     icon: "el-icon-s-custom",
        //     column: [],
        //   },
        // ],
      },
      data: [
        // {
        //   deptid: "江西众泰保安公司",
        //   punishtype: 2,
        //   punishreason: "非法施工",
        //   punishresult: "没收全部非法所得财产,并罚款3W元",
        //   punishtime: "2021-01-01",
        //   punisnum: 110110110120,
        // },
      ],
      data1: [],
      form1: {},
      query1: {},
      loading1: true,
      page1: {
        pageSize: 10,
        currentPage: 1,
        total: 0,
      },
      selectionList1: [],
      option1: {
        // 操作栏多余按钮去除
        // delBtn: false,
        // editBtn: false,
        addBtn: false,
        // selection: true,
        // menu: false,
        selection: true,
        align: "center",
        height: "580",
        calcHeight: 30,
        tip: false,
        menu: false,
        searchShow: false,
        searchMenuSpan: 6,
        searchShowBtn: false,
        index: true,
        viewBtn: true,
        dialogClickModal: false,
        column: [
          {
            label: "姓名",
            prop: "realName",
            search: true,
            searchSpan: 3,
            width: 60,
            searchLabelWidth: 50,
            display: false,
          },
          {
            label: "性别",
            prop: "sex",
            width: 55,
            slot: true,
            type: "select",
            dicData: [
              {
                label: "男",
                value: 1,
              },
              {
                label: "女",
                value: 2,
              },
              {
                label: "未知",
                value: 3,
              },
            ],
            display: false,
          },
          {
            label: "身份证号码",
            prop: "cardid",
            search: true,
            searchLabelWidth: 90,
            searchSpan: 4,
            minWidth: 140,
            display: false,
          },
          {
            label: "联系电话",
            prop: "phone",
            minWidth: 95,
            display: false,
          },
          {
            label: "处罚详情",
            prop: "holdv",
            minWidth: 95,
            overHidden: true,
          },
          {
            label: "处罚内容",
            prop: "holdvs",
            minWidth: 95,
            overHidden: true,
          },
          {
            label: "处罚时间",
            prop: "holdvtime",
            minWidth: 95,
            overHidden: true,
          },
        ],
      },
      data1: [],
    };
  },
  computed: {
@@ -242,6 +354,9 @@
    },
  },
  methods: {
    handleClick(tab, event) {
      // console.log(tab, event);
    },
    rowSave(row, done, loading) {
      adddata(row).then(
        () => {
@@ -342,6 +457,110 @@
      });
    },
    rowSave1(row, done, loading) {
      adddata(row).then(
        () => {
          this.onLoad1(this.page1);
          this.$message({
            type: "success",
            message: "操作成功!",
          });
          done();
        },
        (error) => {
          window.console.log(error);
          loading();
        }
      );
    },
    rowUpdates1(row, index, done, loading) {
      // console.log(42342);
      update(row).then(
        () => {
          this.onLoad1(this.page1);
          this.$message({
            type: "success",
            message: "操作成功!",
          });
          done();
        },
        (error) => {
          window.console.log(error);
          loading();
        }
      );
    },
    rowDel1(row) {
      this.$confirm("确定将选择数据删除?", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning",
      })
        .then(() => {
          return remove(row.id);
        })
        .then(() => {
          this.onLoad1(this.page1);
          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();
    // },
    searchReset1() {
      this.query1 = {};
      this.onLoad1(this.page1);
    },
    searchChange1(params, done) {
      this.query1 = params;
      this.page1.currentPage = 1;
      this.onLoad1(this.page1, params);
      done();
    },
    selectionChange1(list) {
      this.selectionList1 = list;
    },
    selectionClear1() {
      this.selectionList1 = [];
      this.$refs.crud1.toggleSelection();
    },
    currentChange1(currentPage) {
      this.page1.currentPage = currentPage;
    },
    sizeChange1(pageSize) {
      this.page1.pageSize = pageSize;
    },
    refreshChange1() {
      this.onLoad1(this.page1, this.query1);
    },
    onLoad1(page, params = {}) {
      // this.loading = false;
      this.loading1 = true;
      params["hold"] = "3";
      getListSecurity(
        page.currentPage,
        page.pageSize,
        Object.assign(params, this.query1)
      ).then((res) => {
        const data = res.data.data;
        this.page1.total = data.total;
        this.data1 = data.records;
        for (let k in this.data1) {
          this.data1[k]["holdvs"] = "吊销其保安证";
        }
        this.loading1 = false;
        // this.selectionClear();
      });
    },
    // 行单击
    handleRowClick(row) {
      // delete (row["name"]);
src/views/securityCompany/security.vue
@@ -2,7 +2,7 @@
 * @Author: Morpheus
 * @Date: 2021-07-07 17:30:05
 * @Last Modified by: liu
 * @Last Modified time: 2021-09-15 16:08:12
 * @Last Modified time: 2021-12-04 17:04:35
 * menu-name 保安服务公司查询
 */
<template>
@@ -56,9 +56,17 @@
          :type="type"
          icon="el-icon-warning"
          class="zhengJian-icon"
          @click.stop="punish(row)"
          @click.stop="punishtable(row)"
          >处罚</el-button
        >
        <!-- <el-button
          :size="size"
          :type="type"
          icon="el-icon-warning"
          class="zhengJian-icon"
          @click.stop="punish(row)"
          >处罚</el-button
        > -->
      </template>
    </avue-crud>
    <el-dialog
@@ -93,6 +101,18 @@
        >
      </span> -->
    </el-dialog>
    <el-dialog
      title="处罚详情"
      :visible.sync="dialogVisiblepunishtable"
      width="85%"
      height="80vh"
      :before-close="handleClose"
      :modal-append-to-body="false"
      center
    >
      <punish :form="dialogVisiblepunishData" v-if="dialogVisiblepunishtable">
      </punish>
    </el-dialog>
  </basic-container>
</template>
@@ -107,10 +127,15 @@
} from "@/api/securityCompany/security";
import { mapGetters } from "vuex";
import { companyColimn, punishColimn } from "./column";
import punish from "./computents/punish.vue"; //处罚信息
export default {
  components: {
    punish,
  },
  data() {
    return {
      dialogVisiblepunishData: {},
      dialogVisiblepunishtable: false,
      objf: {},
      optionf: {
        column: punishColimn,
@@ -221,6 +246,7 @@
          type: "success",
          message: "操作成功!",
        });
        this.dialogVisiblepunishData.news = !this.dialogVisiblepunishData.news;
        that.objf = {
          enterprisename: "",
          punishreason: "",
@@ -248,14 +274,36 @@
      };
      done();
    },
    punish(row) {
    punishtable(row) {
      this.dialogVisiblepunishData = {
        ...row,
        see: true,
        that: this,
        news: false,
      };
      this.dialogVisiblepunishtable = true;
    },
    punish() {
      //打开处罚
      // console.log(row);
      this.objf = {
        deptid: row.departmentid,
        enterprisename: row.enterprisename,
        deptid: this.dialogVisiblepunishData.departmentid,
        enterprisename: this.dialogVisiblepunishData.enterprisename,
      };
      this.dialogVisible = true;
    },
    handleRowlood(row) {
      //附件预览1
      // console.log(row);
      this.$router.push({
        // path: "/attach/index",
        path: "/resource/attachCopy",
        // redirect: { name: "foo" },
        // query: { row: row },
        query: { deptid: row.departmentid, type: "4" },
        // query: { deptid: row.departmentid },
        // params: { row: row.identificationnumber },
      });
    },
    rowSave(row, done, loading) {
      add(row).then(
@@ -367,19 +415,6 @@
      this.$router.push({
        path: `/securityCompany/index`,
        query: obj,
      });
    },
    handleRowlood(row) {
      //附件预览1
      // console.log(row);
      this.$router.push({
        // path: "/attach/index",
        path: "/resource/attachCopy",
        // redirect: { name: "foo" },
        // query: { row: row },
        query: { deptid: row.departmentid, type: "4" },
        // query: { deptid: row.departmentid },
        // params: { row: row.identificationnumber },
      });
    },
  },
src/views/securityCompany/securityCrossRegion.vue
@@ -2,7 +2,7 @@
 * @Author: Morpheus
 * @Date: 2021-07-07 17:30:05
 * @Last Modified by: liu
 * @Last Modified time: 2021-09-15 11:31:06
 * @Last Modified time: 2021-12-04 17:02:33
 * menu-name 保安服务公司查询
 */
<template>
@@ -45,11 +45,18 @@
          >台账查询
        </el-button>
        <el-button
          icon="el-icon-s-custom"
          :size="size"
          :type="type"
          @click.stop="handleRowlood(row)"
          >附件预览
        </el-button>
        <el-button
          :size="size"
          :type="type"
          icon="el-icon-warning"
          class="zhengJian-icon"
          @click.stop="punish(row)"
          @click.stop="punishtable(row)"
          >处罚</el-button
        >
      </template>
@@ -86,6 +93,18 @@
        >
      </span> -->
    </el-dialog>
    <el-dialog
      title="处罚详情"
      :visible.sync="dialogVisiblepunishtable"
      width="85%"
      height="80vh"
      :before-close="handleClose"
      :modal-append-to-body="false"
      center
    >
      <punish :form="dialogVisiblepunishData" v-if="dialogVisiblepunishtable">
      </punish>
    </el-dialog>
  </basic-container>
</template>
@@ -100,10 +119,16 @@
} from "@/api/securityCompany/security";
import { mapGetters } from "vuex";
import { companyColimn, punishColimn } from "./column";
import punish from "./computents/punish.vue"; //处罚信息
export default {
  components: {
    punish,
  },
  data() {
    return {
      dialogVisiblepunishData: {},
      dialogVisiblepunishtable: false,
      objf: {},
      optionf: {
        column: punishColimn,
@@ -214,6 +239,7 @@
          type: "success",
          message: "操作成功!",
        });
        this.dialogVisiblepunishData.news = !this.dialogVisiblepunishData.news;
        that.objf = {
          enterprisename: "",
          punishreason: "",
@@ -241,12 +267,21 @@
      };
      done();
    },
    punish(row) {
    punishtable(row) {
      this.dialogVisiblepunishData = {
        ...row,
        see: true,
        that: this,
        news: false,
      };
      this.dialogVisiblepunishtable = true;
    },
    punish() {
      //打开处罚
      // console.log(row);
      this.objf = {
        deptid: row.departmentid,
        enterprisename: row.enterprisename,
        deptid: this.dialogVisiblepunishData.departmentid,
        enterprisename: this.dialogVisiblepunishData.enterprisename,
      };
      this.dialogVisible = true;
    },
@@ -361,6 +396,19 @@
        query: obj,
      });
    },
    handleRowlood(row) {
      //附件预览1
      // console.log(row);
      this.$router.push({
        // path: "/attach/index",
        path: "/resource/attachCopy",
        // redirect: { name: "foo" },
        // query: { row: row },
        query: { deptid: row.departmentid, type: "4" },
        // query: { deptid: row.departmentid },
        // params: { row: row.identificationnumber },
      });
    },
  },
};
</script>
src/views/securityCompany/train.vue
@@ -2,7 +2,7 @@
 * @Author: Morpheus
 * @Date: 2021-07-07 17:30:05
 * @Last Modified by: liu
 * @Last Modified time: 2021-09-15 11:32:51
 * @Last Modified time: 2021-12-04 17:08:36
 * menu-name 保安服务公司查询
 */
<template>
@@ -45,11 +45,18 @@
          >台账查询
        </el-button>
        <el-button
          icon="el-icon-s-custom"
          :size="size"
          :type="type"
          @click.stop="handleRowlood(row)"
          >附件预览
        </el-button>
        <el-button
          :size="size"
          :type="type"
          icon="el-icon-warning"
          class="zhengJian-icon"
          @click.stop="punish(row)"
          @click.stop="punishtable(row)"
          >处罚</el-button
        >
      </template>
@@ -86,6 +93,18 @@
        >
      </span> -->
    </el-dialog>
    <el-dialog
      title="处罚详情"
      :visible.sync="dialogVisiblepunishtable"
      width="85%"
      height="80vh"
      :before-close="handleClose"
      :modal-append-to-body="false"
      center
    >
      <punish :form="dialogVisiblepunishData" v-if="dialogVisiblepunishtable">
      </punish>
    </el-dialog>
  </basic-container>
</template>
@@ -100,10 +119,16 @@
} from "@/api/securityCompany/security";
import { mapGetters } from "vuex";
import { companyColimn, punishColimn } from "./column";
import punish from "./computents/punish.vue"; //处罚信息
export default {
  components: {
    punish,
  },
  data() {
    return {
      dialogVisiblepunishData: {},
      dialogVisiblepunishtable: false,
      objf: {},
      optionf: {
        column: punishColimn,
@@ -214,6 +239,7 @@
          type: "success",
          message: "操作成功!",
        });
        this.dialogVisiblepunishData.news = !this.dialogVisiblepunishData.news;
        that.objf = {
          enterprisename: "",
          punishreason: "",
@@ -349,7 +375,37 @@
        this.selectionClear();
      });
    },
    punishtable(row) {
      this.dialogVisiblepunishData = {
        ...row,
        see: true,
        that: this,
        news: false,
      };
      this.dialogVisiblepunishtable = true;
    },
    punish() {
      //打开处罚
      // console.log(row);
      this.objf = {
        deptid: this.dialogVisiblepunishData.departmentid,
        enterprisename: this.dialogVisiblepunishData.enterprisename,
      };
      this.dialogVisible = true;
    },
    handleRowlood(row) {
      //附件预览1
      // console.log(row);
      this.$router.push({
        // path: "/attach/index",
        path: "/resource/attachCopy",
        // redirect: { name: "foo" },
        // query: { row: row },
        query: { deptid: row.departmentid, type: "4" },
        // query: { deptid: row.departmentid },
        // params: { row: row.identificationnumber },
      });
    },
    // 行单击
    handleRowClick(row) {
      // delete (row["name"]);
src/views/securityGuardManagement/computents/dispatch.vue
New file
@@ -0,0 +1,267 @@
<template>
  <avue-crud
    class="company-box"
    :option="equipmentOption"
    :search.sync="equipmentSearch"
    :table-loading="equipmentLoading"
    :data="equipmentData"
    ref="equipmentCrud"
    :page.sync="equipmentPage"
    @on-load="equipmentOnLoad"
    @selection-change="equipmentSelectionChange"
    @search-change="equipmentSearchChange"
    @search-reset="equipmentSearchReset"
    @current-change="equipmentCurrentChange"
    @size-change="equipmentSizeChange"
  >
  </avue-crud>
</template>
<script>
import { getLisperdispatch } from "@/api/register/honor";
export default {
  props: ["form"],
  data() {
    return {
      equipmentOption: {
        // 操作栏多余按钮去除
        delBtn: false,
        editBtn: false,
        addBtn: false,
        selection: true,
        menu: false,
        align: "center",
        height: "auto",
        calcHeight: 270,
        searchShowBtn: false,
        tip: false,
        // searchShow: false,
        searchMenuSpan: 3,
        index: false,
        viewBtn: true,
        //dialogType: 'drawer',
        dialogClickModal: false,
        // 操作栏宽度
        menuWidth: 156,
        column: [
          // {
          //   label: "id",
          //   prop: "id",
          //   hide: true,
          //   editDisplay: false,
          //   addDisplay: false,
          // },
          {
            label: "姓名",
            prop: "name",
            // search: true,
            searchSpan: 3,
            rules: [
              {
                required: true,
                message: "请输入姓名",
                trigger: "blur",
              },
            ],
          },
          // {
          //   label: "身份证号",
          //   prop: "cardid",
          //   // rules: [
          //   //   {
          //   //     required: true,
          //   //     message: "请输入编号",
          //   //     trigger: "blur",
          //   //   },
          //   // ],
          //   // search: true,
          // }, //上面不显示
          {
            label: "派遣单位",
            prop: "dispatcherCompany",
            search: true,
            // rules: [
            //   {
            //     required: true,
            //     message: "请输入规格",
            //     trigger: "blur",
            //   },
            // ],
            // search: true,
          },
          // {
          //   label: "保安公司",
          //   prop: "deptName",
          //   // rules: [
          //   //   {
          //   //     required: true,
          //   //     message: "请输入规格",
          //   //     trigger: "blur",
          //   //   },
          //   // ],
          //   // search: true,
          // },
          // {
          //   label: "派遣人",
          //   prop: "dispatcher",
          //   // rules: [
          //   //   {
          //   //     required: true,
          //   //     message: "请输入规格",
          //   //     trigger: "blur",
          //   //   },
          //   // ],
          //   // search: true,
          // },
          {
            label: "派遣时间",
            prop: "dispatchertime",
            type: "date",
            format: "yyyy-MM-dd",
            valueFormat: "yyyy-MM-dd",
            labelWidth: 120,
            searchSpan: 4,
            // search: true,
            overHidden: true,
            rules: [
              {
                required: true,
                message: "请输入时间",
                trigger: "click",
              },
            ],
            // width: 70,
            // rules: [
            //   {
            //     required: true,
            //     message: "请输入型号",
            //     trigger: "blur",
            //   },
            // ],
            // search: true,
          },
          {
            label: "结束时间",
            prop: "endTime",
            type: "date",
            format: "yyyy-MM-dd",
            valueFormat: "yyyy-MM-dd",
            labelWidth: 120,
            searchSpan: 4,
            // search: true,
            overHidden: true,
            rules: [
              {
                required: true,
                message: "请输入时间",
                trigger: "click",
              },
            ],
            // width: 70,
            // rules: [
            //   {
            //     required: true,
            //     message: "请输入型号",
            //     trigger: "blur",
            //   },
            // ],
            // search: true,
          },
          {
            label: "派遣地址",
            prop: "dispatcheraddress",
            // rules: [
            //   {
            //     required: true,
            //     message: "请输入组织机构",
            //     trigger: "blur",
            //   },
            // ],
            // overHidden: true,
            // // addDisplay: true,
            // // editDisplay: true,
            // // viewDisplay: true,
            // // searchSpan: 5,
            // dicUrl:
            //   "/api/blade-system/dept/security_lazy-tree?parentId=1413470343230877697",
            // props: {
            //   label: "title",
            //   value: "id",
            // },
            // // search: true,
            // type: "select",
            // // rules: [{
            // //     required: true,
            // //     message: "请选择学历",
            // //     trigger: "blur"
            // // }],
          },
        ],
      },
      equipmentSearch: {},
      equipmentLoading: true,
      equipmentData: [],
      equipmentPage: {
        pageSize: 10,
        currentPage: 1,
        total: 0,
      },
      equipmentQuery: {},
      equipmentSelectionList: [],
    };
  },
  methods: {
    equipmentOnLoad(page, params = {}) {
      this.equipmentLoading = true;
      // console.log(this.form);
      getLisperdispatch(
        page.currentPage,
        page.pageSize,
        Object.assign(params, this.equipmentQuery),
        this.form.id
      ).then((res) => {
        const data = res.data.data;
        this.equipmentPage.total = data.total;
        this.equipmentData = data.records;
        for (var k in this.equipmentData) {
          this.equipmentData[k]["name"] = this.form.realName;
        }
        console.log(this.equipmentData, " this.equipmentData");
        this.equipmentLoading = false;
        this.$refs.equipmentCrud.refreshTable();
        this.$refs.equipmentCrud.doLayout();
        this.equipmentSelectionClear();
      });
    },
    equipmentSelectionClear() {
      this.equipmentSelectionList = [];
      this.$refs.equipmentCrud.toggleSelection();
    },
    equipmentSelectionChange(list) {
      this.equipmentSelectionList = list;
    },
    equipmentSearchChange(params, done) {
      this.equipmentQuery = params;
      this.equipmentPage.currentPage = 1;
      this.equipmentOnLoad(this.equipmentPage, params);
      done();
    },
    equipmentSearchReset() {
      this.equipmentQuery = {};
      this.equipmentOnLoad(this.equipmentPage);
    },
    equipmentCurrentChange(currentPage) {
      this.equipmentPage.currentPage = currentPage;
    },
    equipmentSizeChange(pageSize) {
      this.equipmentPage.pageSize = pageSize;
    },
  },
};
</script>
<style>
</style>
src/views/securityGuardManagement/computents/train.vue
New file
@@ -0,0 +1,175 @@
<template>
  <avue-crud
    class="company-box"
    :option="serviceOption"
    :search.sync="serviceSearch"
    :table-loading="serviceLoading"
    :data="serviceData"
    ref="serviceCrud"
    :page.sync="servicePage"
    @on-load="serviceOnLoad"
    @selection-change="serviceSelectionChange"
    @search-change="serviceSearchChange"
    @search-reset="serviceSearchReset"
    @current-change="serviceCurrentChange"
    @size-change="serviceSizeChange"
  >
  </avue-crud>
</template>
<script>
import { getLispertrain } from "@/api/register/honor";
export default {
  props: ["form"],
  data() {
    return {
      serviceOption: {
        // 操作栏多余按钮去除
        delBtn: false,
        editBtn: false,
        addBtn: false,
        searchShowBtn: false,
        selection: true,
        menu: false,
        align: "center",
        height: "auto",
        calcHeight: 160,
        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: "sex",
          //   // slot: true,
          //   // display: false,
          //   // formatter: function (row, value) {
          //   //   return (value = value + "%");
          //   // },
          // },
          // {
          //   label: "身份证号",
          //   prop: "cardid",
          //   // slot: true,
          //   // display: false,
          //   // formatter: function (row, value) {
          //   //   return (value = value + "万元");
          //   // },
          // },
          {
            label: "学历证书",
            prop: "academicUrl",
            // slot: true,
            // display: false,
          },
          {
            label: "培训单位",
            prop: "trainUnitName",
            // slot: true,
            // display: false,
          },
          {
            label: "培训时间",
            prop: "trainingTime",
            // slot: true,
            type: "date",
            format: "yyyy-MM-dd",
            valueFormat: "yyyy-MM-dd",
            labelWidth: 120,
            searchSpan: 4,
            search: true,
            overHidden: true,
            rules: [
              {
                required: true,
                message: "请输入时间",
                trigger: "click",
              },
            ],
          },
          // {
          //   label: "培训地址",
          //   prop: "trainaddrss",
          //   // slot: true,
          // },
        ],
      },
      serviceSearch: {},
      serviceLoading: true,
      serviceData: [],
      servicePage: {
        pageSize: 10,
        currentPage: 1,
        total: 0,
      },
      serviceQuery: {},
      serviceSelectionList: [],
    };
  },
  methods: {
    serviceOnLoad(page, params = {}) {
      this.serviceLoading = true;
      getLispertrain(
        page.currentPage,
        page.pageSize,
        Object.assign(params, this.serviceQuery),
        this.form.id
      ).then((res) => {
        const data = res.data.data;
        this.servicePage.total = data.total;
        this.serviceData = data.records;
        for (var k in this.serviceData) {
          this.serviceData[k]["name"] = this.form.realName;
        }
        // console.log(this.serviceData, "serviceData");
        this.serviceLoading = false;
        this.$refs.serviceCrud.refreshTable();
        this.$refs.serviceCrud.doLayout();
        this.serviceSelectionClear();
      });
    },
    serviceSelectionClear() {
      this.serviceSelectionList = [];
      this.$refs.serviceCrud.toggleSelection();
    },
    serviceSelectionChange(list) {
      this.serviceSelectionList = list;
    },
    serviceSearchChange(params, done) {
      this.serviceQuery = params;
      this.servicePage.currentPage = 1;
      this.serviceOnLoad(this.servicePage, params);
      done();
    },
    serviceSearchReset() {
      this.serviceQuery = {};
      this.serviceOnLoad(this.servicePage);
    },
    serviceCurrentChange(currentPage) {
      this.servicePage.currentPage = currentPage;
    },
    serviceSizeChange(pageSize) {
      this.servicePage.pageSize = pageSize;
    },
  },
};
</script>
<style>
</style>
src/views/securityGuardManagement/data.js
@@ -536,6 +536,17 @@
    display: false
},
{
    label: "保安证编号",
    prop: "securitynumber",
    search: true,
    searchLabelWidth: 90,
    minWidth: 105,
    searchSpan: 4,
    addDisplay: false,
    editDisplay: false,
    // hide: true,
},
{
    label: "身份证号码",
    prop: "cardid",
    search: true,
@@ -544,6 +555,7 @@
    minWidth: 140,
    display: false
},
{
    label: "籍贯",
@@ -604,17 +616,7 @@
    hide: true,
    display: false
},
{
    label: "保安证编号",
    prop: "securitynumber",
    search: true,
    searchLabelWidth: 90,
    minWidth: 105,
    searchSpan: 4,
    addDisplay: false,
    editDisplay: false,
    // hide: true,
},
{
    label: "入职时间",
    prop: "rtime",
src/views/securityGuardManagement/register copy.vue
New file
@@ -0,0 +1,1558 @@
/*
 * @Author: Morpheus
 * @Date: 2021-07-05 16:31:54
 * @Last Modified by: liu
 * @Last Modified time: 2021-12-04 16:17:51
 * menu-name 保安员注册查询
 */
<template>
  <div>
    <el-row class="registersss">
      <el-col :span="3">
        <div class="box">
          <el-scrollbar>
            <basic-container>
              <avue-tree
                :option="treeOption"
                :data="treeData"
                @node-click="nodeClick"
              />
            </basic-container>
          </el-scrollbar>
        </div>
      </el-col>
      <el-col :span="21">
        <basic-container>
          <avue-crud
            :option="option"
            :search.sync="search"
            :table-loading="loading"
            :data="data"
            ref="crud"
            v-model="form"
            :permission="permissionList"
            @row-save="rowSave"
            :before-open="beforeOpen"
            :page.sync="page"
            @search-change="searchChange"
            @search-reset="searchReset"
            @selection-change="selectionChange"
            @current-change="currentChange"
            @size-change="sizeChange"
            @refresh-change="refreshChange"
            @on-load="onLoad"
          >
            <!-- @row-click="handleRowClick" -->
            <!-- <template slot-scope="{row}"
                              slot="tenantName">
                        <el-tag>{{row.tenantName}}</el-tag>
                    </template>
                    <template slot-scope="{row}"
                              slot="roleName">
                        <el-tag>{{row.roleName}}</el-tag>
                    </template>
                    <template slot-scope="{row}"
                              slot="deptName">
                        <el-tag>{{row.deptName}}</el-tag>
                    </template> -->
            <template slot-scope="{ row }" slot="age">
              {{ row.age == -1 ? "" : row.age }}
            </template>
            <template slot-scope="{ row }" slot="sex">
              {{
                row.sex == -1
                  ? ""
                  : row.sex == 1
                  ? "男"
                  : row.sex == 2
                  ? "女"
                  : ""
              }}
            </template>
            <template slot-scope="{ row }" slot="deptId">
              <el-tag
                class="rowClickSelf"
                title="点击查看所属公司情况"
                @click="rowClickSelf(row.deptId)"
                >{{ row.$deptId }}</el-tag
              >
            </template>
            <template slot-scope="{ type, size, row }" slot="menu">
              <el-button
                :size="size"
                :type="type"
                class="zhengJian-icon"
                @click.stop="handleRowClick(row)"
                >详情</el-button
              >
              <el-button
                icon="el-icon-finished"
                :size="size"
                :type="type"
                @click.stop="trackRecord(row)"
                >保安员现实表现
              </el-button>
              <el-button
                :size="size"
                :type="type"
                class="zhengJian-icon"
                @click.stop="honor(row)"
                >保安员荣誉录入</el-button
              >
              <!-- <el-button
                :size="size"
                :type="type"
                class="zhengJian-icon"
                @click.stop="paiqian(row)"
                >保安员派遣记录</el-button
              > -->
              <!-- <el-button
                :size="size"
                :type="type"
                class="zhengJian-icon"
                @click.stop="bmpxcx(row)"
                >报名培训查询</el-button
              > -->
              <el-button
                :size="size"
                :type="type"
                class="zhengJian-icon"
                v-if="row.hold == 1"
                :disabled="row.hold != 1"
                :title="row.hold != 1 ? '暂无证件或已吊销' : ''"
                @click.stop="handleViewCredentials(row)"
                >保安员证打印</el-button
              >
              <el-button
                icon="icon-zhengjian"
                :size="size"
                :type="type"
                class="zhengJian-icon"
                v-if="row.hold != 3 && row.hold != 2"
                @click.stop="handleCredentials(row)"
                :title="row.hold == 2 ? '暂无证件' : ''"
                :disabled="row.hold == 2"
                >保安员证件吊销</el-button
              >
              <el-button
                icon="icon-zhengjian"
                :size="size"
                :type="type"
                class="zhengJian-icon"
                v-if="row.hold == 3"
                @click.stop="handleCredentialssee(row)"
                >吊销原因</el-button
              >
            </template>
          </avue-crud>
          <el-dialog
            title="用户数据导入"
            append-to-body
            :visible.sync="excelBox"
            width="555px"
          >
            <avue-form
              :option="excelOption"
              v-model="excelForm"
              :upload-after="uploadAfter"
            >
              <template slot="excelTemplate">
                <el-button type="primary" @click="handleTemplate">
                  点击下载<i class="el-icon-download el-icon--right"></i>
                </el-button>
              </template>
            </avue-form>
          </el-dialog>
        </basic-container>
      </el-col>
    </el-row>
    <el-dialog
      title="保安员荣誉录入"
      :visible.sync="dialogVisible"
      width="60%"
      :before-close="handleClose"
      :modal-append-to-body="false"
      center
    >
      <!-- <span>这是一段信息</span> -->
      <avue-form
        :option="optionf"
        v-model="objf"
        @submit="submitf"
        @error="errorf"
      >
        <template slot-scope="{ type, size, row }" slot="menuForm">
          <el-button
            :size="size"
            icon="el-icon-error"
            :type="type"
            @click="close(row)"
            >关闭</el-button
          >
        </template>
      </avue-form>
      <!-- <span slot="footer" class="dialog-footer">
        <el-button @click="dialogVisible = false">取 消</el-button>
        <el-button type="primary" @click="dialogVisible = false"
          >确 定</el-button
        >
      </span> -->
    </el-dialog>
    <div class="baoanzheng" v-if="dialogVisiblecertificates">
      <!-- 保安员证 -->
      <!-- <div class="baoanzheng" id="baoanzheng"> -->
      <div class="baz-main">
        <div class="baz-m-body" ref="baoanzheng">
          <div class="bmb-heard">保安员证</div>
          <div class="img">
            <div v-if="!objVisiblecertificates.myPicture">暂无照片</div>
            <img :src="objVisiblecertificates.myPicture" alt="" v-else />
          </div>
          <div class="imgs">
            <div v-if="erweima == ''">暂无二维码</div>
            <img :src="erweima" alt="" v-else />
            <!-- <img src="/img/register/ewm.png" alt="" /> -->
            <!-- logoSrc="/img/register/ewm.png" -->
            <!-- <vue-qr :text="goToUrl" :size="200"></vue-qr> -->
          </div>
          <!-- <img src="/img/mock/card/card-1.jpg" alt="" /> -->
          <div class="bmb-b">
            姓名:<span class="bmb-b-s">{{
              objVisiblecertificates.realName
            }}</span>
          </div>
          <div class="bmb-b">
            性别:<span class="bmb-b-s">{{ objVisiblecertificates.$sex }}</span>
          </div>
          <div class="bmb-b">
            编号:<span class="bmb-b-s">{{
              objVisiblecertificates.securitynumber
            }}</span>
          </div>
          <div class="bmb-b">
            地址:<span class="bmb-b-s">{{
              objVisiblecertificates.address
            }}</span>
          </div>
          <div class="bmb-b">
            身份证:<span class="bmb-b-s">{{
              objVisiblecertificates.cardid
            }}</span>
          </div>
          <div class="bmb-b">
            发证机关:<span class="bmb-b-s">南昌市公安局</span>
          </div>
          <div class="bmb-b">
            发证日期:<span class="bmb-b-s">{{
              objVisiblecertificates.paperTime.slice(0, 10)
            }}</span>
          </div>
          <!-- <div class="bmb-b">
              发证机关:<span class="bmb-b-s" style="margin-right: 15px"
                >南昌市公安局</span
              >发证日期:<span class="bmb-b-s">{{
                obj0.createTime.slice(0, 10)
              }}</span>
            </div> -->
        </div>
        <span slot="footer" class="dialog-footer no-print PrintBut">
          <el-button type="primary" @click="Print">打 印</el-button>
          <el-button type="primary" @click="closePrint"> 取 消 </el-button>
        </span>
      </div>
      <!-- </div> -->
      <!-- <div class="baz-main">
        <div class="baz-m-body" ref="baoanzheng">
          <div class="bmb-heard">保安员证</div>
          <div class="bmb-b">
            姓名:<span class="bmb-b-s">{{
              objVisiblecertificates.realName
            }}</span>
          </div>
          <div class="bmb-b">
            性别:<span class="bmb-b-s">{{
              objVisiblecertificates.sexName
            }}</span>
          </div>
          <div class="bmb-b">
            编号:<span class="bmb-b-s">{{
              objVisiblecertificates.securitynumber
            }}</span>
          </div>
          <div class="bmb-b">
            发证机关:<span class="bmb-b-s" style="margin-right: 15px"
              >南昌市公安局</span
            >发证日期:<span class="bmb-b-s">{{
              objVisiblecertificates.createTime.slice(0, 10)
            }}</span>
          </div>
        </div>
        <span slot="footer" class="dialog-footer no-print PrintBut">
          <el-button type="primary" @click="Print">打 印</el-button>
          <el-button type="primary" @click="closePrint"> 取 消 </el-button>
        </span>
      </div> -->
    </div>
    <el-dialog
      title="保安员现实表现"
      append-to-body
      :visible.sync="trackRecordVisible"
    >
      <avue-crud
        :option="option2"
        :data="data2"
        :page.sync="page2"
        @row-save="rowSave2"
        @row-update="rowUpdate2"
        @row-del="rowDel2"
        :table-loading="loading2"
      >
      </avue-crud>
    </el-dialog>
    <el-dialog
      title="保安员派遣记录"
      append-to-body
      :visible.sync="paiqianVisible"
    >
      <!-- <avue-crud
        :option="option2"
        :data="data2"
        :page.sync="page2"
        @row-save="rowSave2"
        @row-update="rowUpdate2"
        @row-del="rowDel2"
        :table-loading="loading2"
      >
      </avue-crud> -->
      <dispatch :form="paiqianData" v-if="paiqianVisible"></dispatch>
    </el-dialog>
    <el-dialog
      title="报名培训查询"
      append-to-body
      :visible.sync="bmpxcxVisible"
    >
      <!-- <avue-crud
        :option="option2"
        :data="data2"
        :page.sync="page2"
        @row-save="rowSave2"
        @row-update="rowUpdate2"
        @row-del="rowDel2"
        :table-loading="loading2"
      >
      </avue-crud> -->
      <train :form="bmpxcxData" v-if="bmpxcxVisible"></train>
    </el-dialog>
    <el-dialog title="证件吊销原因" append-to-body :visible.sync="zjdxVisible">
      <el-form :inline="true" :model="formInline" class="demo-form-inline">
        <el-form-item label="审批人">
          <el-input v-model="formInline.user" placeholder="审批人"></el-input>
        </el-form-item>
        <el-form-item label="活动区域">
          <el-select v-model="formInline.region" placeholder="活动区域">
            <el-option label="区域一" value="shanghai"></el-option>
            <el-option label="区域二" value="beijing"></el-option>
          </el-select>
        </el-form-item>
        <el-form-item>
          <el-button type="primary" @click="onSubmit">确认吊销</el-button>
        </el-form-item>
      </el-form>
    </el-dialog>
  </div>
</template>
<script>
import train from "./computents/train.vue"; //服务对象
import dispatch from "./computents/dispatch.vue"; //装备管理
import { getUser, add, updateHold } from "@/api/management/user";
import { getListSecurity } from "@/api/system/user";
import { getDeptLazyTree } from "@/api/Jurs/jurs";
// import { getDeptTree, getDeptLazyTree } from "@/api/system/dept";
import { getDeptTree } from "@/api/system/dept";
import { getRoleTree } from "@/api/system/role";
import { getPostList } from "@/api/system/post";
import { mapGetters } from "vuex";
import website from "@/config/website";
import { getToken } from "@/util/auth";
import { addhonor, getER } from "@/api/register/honor";
import {
  //现实表现
  trackRecordadd,
  trackRecordupdate,
  trackRecordpage,
  trackRecordremove,
} from "@/api/performance/performance";
import { trackRecordColumn } from "./data";
export default {
  components: {
    dispatch,
    train,
  },
  data() {
    const validatePass = (rule, value, callback) => {
      if (value === "") {
        callback(new Error("请输入密码"));
      } else {
        callback();
      }
    };
    const validatePass2 = (rule, value, callback) => {
      if (value === "") {
        callback(new Error("请再次输入密码"));
      } else if (value !== this.form.password) {
        callback(new Error("两次输入密码不一致!"));
      } else {
        callback();
      }
    };
    return {
      //证件吊销
      zjdxVisible: false,
      zjdx: {},
      zjdxData: {},
      // 报名培训查询
      bmpxcxData: {},
      bmpxcxVisible: false,
      // 派遣记录
      paiqianData: {},
      paiqianVisible: false,
      //现实表现
      securityid2: "",
      loading2: true,
      page2: {
        pageSize: 10,
        currentPage: 1,
        total: 0,
      },
      query2: {},
      data2: [],
      option2: {
        menu: false,
        height: 400,
        addBtn: false,
        delBtn: false,
        editBtn: false,
        widtd: "auto",
        calcHeight: 54,
        border: true, //liu
        stripe: true,
        tip: false,
        index: true,
        dialogClickModal: false,
        headerAlign: "center",
        align: "center",
        column: trackRecordColumn,
      },
      trackRecordData: [],
      trackRecordVisible: false,
      dialogVisiblecertificates: false,
      objVisiblecertificates: {},
      erweima: "", //二维码
      objf: {},
      optionf: {
        column: [
          {
            label: "保安员名称",
            prop: "name",
            span: 24,
            labelWidth: 110,
            disabled: true,
            rules: [
              {
                required: true,
                message: "请输入身份证号码",
                trigger: "blur",
              },
            ],
          },
          {
            label: "身份证号码",
            prop: "cardid",
            span: 24,
            labelWidth: 110,
            disabled: true,
            rules: [
              {
                required: true,
                message: "请输入身份证号码",
                trigger: "blur",
              },
            ],
          },
          {
            label: "发证机关",
            prop: "paperUnit",
            span: 24,
            labelWidth: 110,
          },
          {
            label: "荣誉情况",
            prop: "honor",
            span: 24,
            type: "textarea",
            labelWidth: 110,
          },
          {
            label: "获取时间",
            prop: "honortime",
            span: 24,
            labelWidth: 110,
            type: "date",
            format: "yyyy-MM-dd",
            valueFormat: "yyyy-MM-dd",
          },
        ],
      },
      dialogVisible: false,
      form: {},
      search: {},
      excelBox: false,
      initFlag: true,
      selectionList: [],
      query: {},
      loading: true,
      page: {
        pageSize: 10,
        currentPage: 1,
        total: 0,
      },
      init: {
        roleTree: [],
        deptTree: [],
      },
      treeDeptId: "",
      jurisdiction: "",
      treeData: [],
      treeOption: {
        nodeKey: "id",
        defaultExpandAll: true,
        lazy: true,
        treeLoad: function (node, resolve) {
          const parentId = node.level === 0 ? 0 : node.data.id;
          if (parentId == 0) {
            getDeptLazyTree(parentId).then((res) => {
              resolve(
                res.data.data.map((item) => {
                  return {
                    ...item,
                    leaf: !item.hasChildren,
                  };
                })
              );
            });
          } else if (parentId == "1372091709474910209") {
            getDeptLazyTree(parentId).then((res) => {
              resolve(
                res.data.data[0].children.map((item) => {
                  return {
                    ...item,
                    leaf: !item.hasChildren,
                  };
                })
              );
            });
          } else {
            getDeptLazyTree(parentId).then((res) => {
              res.data.data = [];
              resolve(
                res.data.data.map((item) => {
                  return {
                    ...item,
                    leaf: !item.hasChildren,
                  };
                })
              );
            });
          }
        },
        addBtn: false,
        menu: false,
        size: "small",
        props: {
          labelText: "标题",
          label: "title",
          value: "value",
          children: "children",
        },
      },
      option: {
        // 操作栏多余按钮去除
        delBtn: false,
        editBtn: false,
        addBtn: false,
        selection: true,
        align: "center",
        height: "auto",
        calcHeight: 80,
        tip: false,
        // 操作栏宽度
        menuWidth: 398,
        searchShowBtn: false,
        searchShow: true,
        border: true,
        searchMenuSpan: 4,
        index: true,
        viewBtn: false,
        //dialogType: 'drawer',
        dialogClickModal: false,
        column: [
          {
            label: "姓名",
            prop: "realName",
            search: true,
            searchSpan: 3,
            width: 60,
            searchLabelWidth: 50,
            display: false,
          },
          {
            label: "所属保安公司",
            searchLabelWidth: "110",
            // prop: "deptName",
            prop: "deptId",
            type: "tree",
            dicUrl:
              "/api/blade-system/dept/security_lazy-tree?parentId=1413470343230877697",
            props: {
              label: "title",
              value: "id",
            },
            slot: true,
            searchSpan: 5,
            display: false,
            overHidden: true,
            search: true,
            width: 198,
          },
          {
            label: "性别",
            prop: "sex",
            width: 55,
            slot: true,
            type: "select",
            dicData: [
              {
                label: "男",
                value: 1,
              },
              {
                label: "女",
                value: 2,
              },
              {
                label: "未知",
                value: 3,
              },
            ],
            display: false,
          },
          {
            label: "身份证号码",
            prop: "cardid",
            search: true,
            searchLabelWidth: 90,
            searchSpan: 4,
            minWidth: 140,
            display: false,
          },
          {
            label: "照片",
            prop: "avatar",
            dataType: "string",
            type: "img",
          },
          {
            label: "指纹",
            prop: "fingerprint",
            dataType: "string",
            type: "img",
          },
          {
            label: "籍贯",
            prop: "nativeplace",
            hide: true,
            display: false,
          },
          {
            label: "民族",
            prop: "nation",
            hide: true,
            width: 55,
            display: false,
          },
          {
            label: "出生日期",
            prop: "birthday",
            type: "date",
            format: "yyyy-MM-dd",
            valueFormat: "yyyy-MM-dd",
            display: false,
            hide: true,
          },
          {
            label: "年龄",
            prop: "age",
            width: 55,
            slot: true,
            display: false,
          },
          {
            label: "身高",
            prop: "height",
            width: 55,
          },
          {
            label: "学历",
            prop: "education",
            display: false,
            // hide: true,
            search: true,
            width: 90,
            dicUrl: "/api/blade-system/dict-biz/dictionary?code=educationType",
            props: {
              label: "dictValue",
              value: "dictKey",
            },
            type: "select",
            // hide: true,
            rules: [
              {
                required: true,
                message: "请选择学历",
                trigger: "blur",
              },
            ],
          },
          {
            label: "联系电话",
            prop: "phone",
            minWidth: 95,
            display: false,
          },
          {
            label: "地址",
            prop: "nativeplace",
            minWidth: 95,
            overHidden: true,
          },
          {
            label: "健康状态",
            prop: "healstats",
            hide: true,
            display: false,
          },
          {
            label: "保安证编号",
            prop: "securitynumber",
            search: true,
            searchLabelWidth: 90,
            minWidth: 105,
            searchSpan: 4,
            addDisplay: false,
            editDisplay: false,
            // hide: true,
          },
          {
            label: "入职时间",
            prop: "rtime",
            hide: true,
            display: false,
          },
          // {
          //     label: "是否派遣",
          //     prop: "dispatch",
          //     // hide: true,
          //     type: 'select',
          //     // display: false,
          //     dicData: [
          //         {
          //             label: '未派遣',
          //             value: 1
          //         }, {
          //             label: '已派遣',
          //             value: 0
          //         }
          //     ]
          // },
          {
            label: "是否派遣",
            prop: "dispatch",
            type: "select",
            dicData: [
              {
                label: "未派遣",
                value: "1",
              },
              {
                label: "已派遣",
                value: "0",
              },
            ],
          },
          {
            label: "是否持证",
            prop: "hold",
            slot: true,
            search: true,
            searchSpan: 3,
            width: 72,
            display: false,
            dicData: [
              {
                label: "是",
                value: "1",
              },
              {
                label: "否",
                value: "2",
              },
              {
                label: "已吊销",
                value: "3",
              },
            ],
            // dicUrl: "/api/blade-system/dict-biz/dictionary?code=equipage",
            // props: {
            //   label: "dictValue",
            //   value: "dictKey",
            // },
            type: "select",
            rules: [
              {
                required: true,
                message: "请选择",
                trigger: "blur",
              },
            ],
          },
          // {
          //     label: "入职时间",
          //     prop: "rtime",
          //     type: "datetime",
          //     format: "yyyy-MM-dd",
          //     valueFormat: "yyyy-MM-dd",
          //     searchRange: true,
          //     searchSpan: 6,
          //     hide: true,
          //     addDisplay: false,
          //     editDisplay: false,
          //     viewDisplay: false,
          //     search: true,
          //     rules: [{
          //         required: true,
          //         message: "请输入时间",
          //         trigger: "blur"
          //     }]
          // },
          {
            label: "在职状态",
            prop: "status",
            type: "select",
            dicUrl: "/api/blade-system/dict-biz/dictionary?code=workerState",
            props: {
              label: "dictValue",
              value: "dictKey",
            },
            dataType: "number",
            display: false,
            hide: true,
            searchSpan: 3,
            width: 80,
            search: false,
            rules: [
              {
                required: true,
                message: "请选择在职状态",
                trigger: "blur",
              },
            ],
          },
        ],
      },
      data: [],
      platformQuery: {},
      platformSelectionList: [],
      excelForm: {},
      excelOption: {
        submitBtn: false,
        emptyBtn: false,
        column: [
          {
            label: "模板上传",
            prop: "excelFile",
            type: "upload",
            drag: true,
            loadText: "模板上传中,请稍等",
            span: 24,
            propsHttp: {
              res: "data",
            },
            tip: "请上传 .xls,.xlsx 标准格式文件",
            action: "/api/blade-user/import-user",
          },
          {
            label: "数据覆盖",
            prop: "isCovered",
            type: "switch",
            align: "center",
            width: 80,
            dicData: [
              {
                label: "否",
                value: 0,
              },
              {
                label: "是",
                value: 1,
              },
            ],
            value: 0,
            slot: true,
            rules: [
              {
                required: true,
                message: "请选择是否覆盖",
                trigger: "blur",
              },
            ],
          },
          {
            label: "模板下载",
            prop: "excelTemplate",
            formslot: true,
            span: 24,
          },
        ],
      },
    };
  },
  watch: {
    "form.tenantId"() {
      if (this.form.tenantId !== "" && this.initFlag) {
        this.initData(this.form.tenantId);
      }
    },
    "excelForm.isCovered"() {
      if (this.excelForm.isCovered !== "") {
        try {
          const column = this.findObject(this.excelOption.column, "excelFile");
          column.action = `/api/blade-user/import-user?isCovered=${this.excelForm.isCovered}`;
        } catch {}
      }
    },
  },
  computed: {
    ...mapGetters(["permission"]),
    permissionList() {
      return {
        addBtn: this.vaildData(this.permission.user_add, false),
        viewBtn: this.vaildData(this.permission.user_view, false),
        delBtn: this.vaildData(this.permission.user_delete, false),
        editBtn: this.vaildData(this.permission.user_edit, false),
      };
    },
    ids() {
      let ids = [];
      this.selectionList.forEach((ele) => {
        ids.push(ele.id);
      });
      return ids.join(",");
    },
  },
  mounted() {
    // 非租户模式默认加载管理组数据
    if (!website.tenantMode) {
      this.initData(website.tenantId);
    }
  },
  methods: {
    //现实表现↓
    trackRecord(row) {
      // console.log(row);
      this.securityid2 = row.id;
      this.getPerformancePageInfo(this.page2);
    },
    // 派遣
    paiqian(row) {
      // console.log(row);
      this.paiqianVisible = true;
      this.paiqianData = row;
    },
    //报名培训查询
    bmpxcx(row) {
      // console.log(row);
      this.bmpxcxVisible = true;
      this.bmpxcxData = row;
    },
    getPerformancePageInfo(page) {
      var param = {
        securityid: this.securityid2,
      };
      this.trackRecordVisible = true;
      trackRecordpage(page.currentPage, page.pageSize, param).then((res2) => {
        const data = res2.data.data;
        this.page2.total = data.total;
        this.data2 = data.records;
        // console.log(this.data2, 1);
        this.loading2 = false;
      });
    },
    rowSave2(form, done, loading) {
      form.securityid = this.securityid2;
      trackRecordadd(form).then(
        (res) => {
          this.getPerformancePageInfo(this.page2);
          this.$message({
            type: "success",
            message: "操作成功!",
          });
          done();
        },
        (error) => {
          window.console.log(error);
          loading();
        }
      );
      // }
    },
    rowUpdate2(row, index, done, loading) {
      row.securityid = this.securityid2;
      trackRecordupdate(row).then(
        () => {
          this.getPerformancePageInfo(this.page2);
          this.$message({
            type: "success",
            message: "操作成功!",
          });
          done();
        },
        (error) => {
          window.console.log(error);
          loading();
        }
      );
    },
    rowDel2(row) {
      this.$confirm("确定将选择数据删除?", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning",
      })
        .then(() => {
          return trackRecordremove(row.id);
        })
        .then(() => {
          this.getPerformancePageInfo(this.page2);
          this.$message({
            type: "success",
            message: "操作成功!",
          });
        });
    },
    //现实表现↑
    rowClickSelf(row) {
      console.log(row, "baoan");
      this.$router.push({
        path: "/securityCompany/index",
        query: { fromSecunityGuardId: row },
      });
    },
    Print() {
      this.$Print(this.$refs.baoanzheng);
    },
    closePrint() {
      this.dialogVisiblecertificates = false;
    },
    close(row) {
      this.objf = {};
      this.dialogVisible = false;
    },
    submitf(form, done) {
      console.log(form);
      // this.$message.success(JSON.stringify(form));
      addhonor(form).then(
        (res) => {
          // console.log(res);
          this.$message({
            type: "success",
            message: "操作成功!",
          });
        },
        (error) => {
          this.$message({
            type: "info",
            message: "操作失败",
          });
        }
      );
      this.objf = {};
      this.dialogVisible = false;
      done();
    },
    errorf(err) {
      this.$message.success("请查看控制台");
      console.log(err);
    },
    handleClose(done) {
      this.objf = {};
      done();
    },
    honor(row) {
      this.objf = {};
      //打开荣誉录入
      this.objf = {
        cardid: row.cardid,
        name: row.realName,
        honor: "",
        honortime: "",
      };
      console.log(this.objf);
      console.log(row);
      this.dialogVisible = true;
    },
    nodeClick(data) {
      //   this.treeDeptId = data.id;
      // console.log(data, 55555);
      if (data.title != "南昌市公安局") {
        this.jurisdiction = data.id;
      } else {
        this.jurisdiction = "";
      }
      this.page.currentPage = 1;
      this.onLoad(this.page);
    },
    initData(tenantId) {
      getRoleTree(tenantId).then((res) => {
        try {
          try {
            const column = this.findObject(this.option.group, "roleId");
          } catch (error) {}
          column.dicData = res.data.data;
        } catch {}
      });
      getDeptTree(tenantId).then((res) => {
        try {
          try {
            const column = this.findObject(this.option.group, "deptId");
          } catch (error) {}
          column.dicData = res.data.data;
        } catch {}
      });
      getPostList(tenantId).then((res) => {
        try {
          try {
            const column = this.findObject(this.option.group, "postId");
          } catch (error) {}
          column.dicData = res.data.data;
        } catch {}
      });
    },
    rowSave(row, done, loading) {
      row.deptId = row.deptId.join(",");
      row.roleId = row.roleId.join(",");
      row.postId = row.postId.join(",");
      add(row).then(
        () => {
          this.initFlag = false;
          this.onLoad(this.page);
          this.$message({
            type: "success",
            message: "操作成功!",
          });
          done();
        },
        (error) => {
          window.console.log(error);
          loading();
        }
      );
    },
    searchReset() {
      this.query = {};
      this.treeDeptId = "";
      this.onLoad(this.page);
    },
    searchChange(params, done) {
      this.query = params;
      this.page.currentPage = 1;
      // var deptId;
      if (params.deptId) {
        this.query["deptId"] = params.deptId;
      }
      this.onLoad(this.page, params);
      done();
    },
    selectionChange(list) {
      this.selectionList = list;
    },
    selectionClear() {
      this.selectionList = [];
      this.$refs.crud.toggleSelection();
    },
    uploadAfter(res, done, loading, column) {
      window.console.log(column);
      this.excelBox = false;
      this.refreshChange();
      done();
    },
    handleTemplate() {
      window.open(
        `/api/blade-user/export-template?${
          this.website.tokenHeader
        }=${getToken()}`
      );
    },
    beforeOpen(done, type) {
      if (["edit", "view"].includes(type)) {
        getUser(this.form.id).then((res) => {
          this.form = res.data.data;
          if (this.form.hasOwnProperty("deptId")) {
            this.form.deptId = this.form.deptId.split(",");
          }
          if (this.form.hasOwnProperty("roleId")) {
            this.form.roleId = this.form.roleId.split(",");
          }
          if (this.form.hasOwnProperty("postId")) {
            this.form.postId = this.form.postId.split(",");
          }
        });
      }
      this.initFlag = true;
      done();
    },
    currentChange(currentPage) {
      this.page.currentPage = currentPage;
    },
    sizeChange(pageSize) {
      this.page.pageSize = pageSize;
    },
    refreshChange() {
      this.onLoad(this.page, this.query);
    },
    onLoad(page, params = {}) {
      this.loading = true;
      params["jurisdiction"] = this.jurisdiction;
      console.log(params, 1, this.query, 2);
      getListSecurity(
        page.currentPage,
        page.pageSize,
        Object.assign(params, this.query)
      ).then((res) => {
        const data = res.data.data;
        this.page.total = data.total;
        // var d = data.records;
        // var date = new Date();
        // var datayear = date.getFullYear();
        // for (const key in d) {
        //   var year = d[key].cardid.slice(6, 10);
        //   d[key]["age"] = +datayear - +year;
        //   // d[key].securitynumber = "赣洪202100009";
        // }
        this.data = data.records;
        // console.log(this.data);
        this.loading = false;
        this.selectionClear();
      });
    },
    platformSelectionClear() {
      this.platformSelectionList = [];
      this.$refs.platformCrud.toggleSelection();
    },
    // 行单击
    handleRowClick(row) {
      // delete (row["name"]);
      var obj = row;
      obj["name"] = "保安详细信息";
      this.$router.push({
        path: `/management/index`,
        query: obj,
      });
      // var flag = false,
      //   i = 0,
      //   ind = null;
      // this.$store.state.tags.tagList.forEach((item, index) => {
      //   if (item.label == "保安详细信息") {
      //     if (flag == false) {
      //       ind = index;
      //       flag = true;
      //     }
      //     i++;
      //   }
      // });
      // if (i > 1) {
      //   this.$store.state.tags.tagList.splice(ind, 1);
      // }
    },
    //证件查看
    handleViewCredentials(row) {
      var obj = row;
      // obj["name"] = "保安证件信息";
      // this.$router.push({
      //   path: `/management/idinformation`,
      //   query: obj,
      // });
      this.dialogVisiblecertificates = true;
      // // $("#certificatess").jqprint();
      // console.log($);
      // this.$Print("#certificatess");
      this.objVisiblecertificates = obj;
      console.log(this.objVisiblecertificates);
      getER(this.objVisiblecertificates.securitynumber).then((res) => {
        this.erweima = res.data;
        // console.log(res.data);
      });
    },
    // 证件吊销事件
    handleCredentials(row) {
      // console.log(row);
      this.zjdxData = row;
      this.zjdxVisible = true;
      // this.$prompt("证件吊销原因", "提示", {
      //   confirmButtonText: "确定吊销",
      //   cancelButtonText: "取消",
      //   inputErrorMessage: "",
      // })
      //   .then(({ value }) => {
      //     // console.log(value);
      //     updateHold(3, row.cardid, value).then((res) => {
      //       this.$message({
      //         type: "success",
      //         message: "操作成功",
      //       });
      //       this.refreshChange();
      //     });
      //   })
      //   .catch(() => {});
    },
    handleCredentialssee(see) {
      var str = ` <div><span>吊销时间:</span><span>${see.holdvtime}</span></div>
              <div><span>吊销内容:</span><span>${see.holdv}</span></div>`;
      this.$alert(str, "吊销原因", {
        dangerouslyUseHTMLString: true,
      });
    },
  },
};
</script>
<style lang='scss' scoped>
.box {
  height: 800px;
}
.el-scrollbar {
  height: 100%;
}
.box .el-scrollbar__wrap {
  overflow: scroll;
}
#certificatess {
  width: 600px;
  height: 300px;
  background-color: #fff;
  .certificates-main {
    width: 100%;
    height: 100%;
    background-image: url("/img/register/bazbj.png");
    background-size: 100% 100%;
  }
}
.baoanzheng {
  position: fixed;
  top: 0;
  left: -10%;
  height: 0;
  width: 120%;
  height: 100%;
  // background-color: rgba(0, 0, 0, 0.5);
  background-color: #fff;
  z-index: 9000;
  display: flex;
  align-items: center;
  justify-content: center;
}
// .baz-main {
//   position: relative;
//   top: 15px;
//   // width: 441px;
//   // height: 358px;
//   width: 491px;
//   height: 468px;
//   // background-color: #004ca7;
//   background-color: #fff;
//   display: flex;
//   align-items: center;
//   justify-content: center;
//   flex-direction: column;
// }
// .baz-m-body {
//   width: 461px;
//   height: 308px;
//   background-image: url("/img/register/bazbj.png");
//   background-size: 100% 100%;
//   .bmb-heard {
//     font-size: 2rem;
//     width: 100%;
//     text-align: center;
//     letter-spacing: 1rem;
//     margin-bottom: 40px;
//     position: relative;
//     top: 20px;
//   }
//   img {
//     width: 130px;
//     height: 130px;
//     border-radius: 130px;
//     position: absolute;
//     top: 110px;
//     right: 60px;
//   }
//   .bmb-b {
//     padding-left: 20px;
//     box-sizing: border-box;
//     height: 50px;
//     margin-left: 10px;
//     width: 100%;
//     font-size: 1rem;
//     font-weight: 400;
//     .bmb-b-s {
//       display: inline-block;
//       width: 110px;
//       font-size: 1.1rem;
//       font-weight: 600;
//     }
//   }
// }
// .PrintBut {
//   margin-top: 15px;
// }
// .rowClickSelf {
//   &:hover {
//     cursor: pointer;
//   }
// }
// .baoanzheng {
//   // position: fixed;
//   position: relative;
//   // top: 0;
//   top: 0;
//   // left: -10%;
//   left: 0;
//   // height: 0;
//   width: 100%;
//   height: calc(100% - 100px);
//   // background-color: rgba(0, 0, 0, 0.5);
//   background-color: #fff;
//   z-index: 9000;
//   display: flex;
//   align-items: center;
//   justify-content: center;
// }
.baz-main {
  position: relative;
  top: 15px;
  // width: 441px;
  // height: 358px;
  width: 750px;
  height: 550px;
  // background-color: #004ca7;
  background-color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
}
.baz-m-body {
  width: 750px;
  height: 550px;
  background-image: url("/img/register/bazbj.png");
  background-size: 100% 100%;
  .bmb-heard {
    font-size: 4rem;
    width: 100%;
    text-align: center;
    letter-spacing: 1.4rem;
    margin-bottom: 40px;
    padding-left: 10px;
    position: relative;
    top: 20px;
  }
  .img {
    width: 152px;
    height: 205px;
    border-radius: 10px;
    position: absolute;
    // border: 1px solid rgba($color: #888888, $alpha: 0.5);
    top: 110px;
    right: 80px;
    display: flex;
    align-items: center;
    justify-content: center;
    img {
      width: 100%;
      height: 100%;
    }
  }
  .imgs {
    width: 110px;
    height: 110px;
    border-radius: 10px;
    position: absolute;
    // border: 1px solid rgba($color: #888888, $alpha: 0.5);
    top: 330px;
    right: 103px;
    display: flex;
    align-items: center;
    justify-content: center;
    img {
      width: 100%;
      height: 100%;
    }
  }
  .bmb-b {
    padding-left: 20px;
    box-sizing: border-box;
    height: 2.9rem;
    margin-left: 3rem;
    width: 100%;
    font-size: 1.5rem;
    font-weight: 300;
    .bmb-b-s {
      display: inline-block;
      width: 20rem;
      font-size: 1.5rem;
      font-weight: 300;
    }
  }
}
.PrintBut {
  margin-top: 15px;
}
</style>
src/views/securityGuardManagement/register.vue
@@ -2,7 +2,7 @@
 * @Author: Morpheus
 * @Date: 2021-07-05 16:31:54
 * @Last Modified by: liu
 * @Last Modified time: 2021-11-30 15:01:25
 * @Last Modified time: 2021-12-04 16:26:48
 * menu-name 保安员注册查询
 */
<template>
@@ -77,7 +77,7 @@
                >{{ row.$deptId }}</el-tag
              >
            </template>
            <template slot-scope="{ type, size, row }" slot="menu">
            <!-- <template slot-scope="{ type, size, row }" slot="menu">
              <el-button
                :size="size"
                :type="type"
@@ -97,7 +97,7 @@
                :size="size"
                :type="type"
                @click.stop="trackRecord(row)"
                >现实表现
                >保安员现实表现
              </el-button>
              <el-button
                :size="size"
@@ -120,6 +120,75 @@
                :title="row.hold == 2 ? '暂无证件' : ''"
                :disabled="row.hold == 2"
                >证件吊销</el-button
              >
              <el-button
                icon="icon-zhengjian"
                :size="size"
                :type="type"
                class="zhengJian-icon"
                v-if="row.hold == 3"
                @click.stop="handleCredentialssee(row)"
                >吊销原因</el-button
              >
            </template> -->
            <template slot-scope="{ type, size, row }" slot="menu">
              <el-button
                :size="size"
                :type="type"
                class="zhengJian-icon"
                @click.stop="handleRowClick(row)"
                >详情</el-button
              >
              <el-button
                icon="el-icon-finished"
                :size="size"
                :type="type"
                @click.stop="trackRecord(row)"
                >保安员现实表现
              </el-button>
              <el-button
                :size="size"
                :type="type"
                class="zhengJian-icon"
                @click.stop="honor(row)"
                >保安员荣誉录入</el-button
              >
              <!-- <el-button
                :size="size"
                :type="type"
                class="zhengJian-icon"
                @click.stop="paiqian(row)"
                >保安员派遣记录</el-button
              > -->
              <!-- <el-button
                :size="size"
                :type="type"
                class="zhengJian-icon"
                @click.stop="bmpxcx(row)"
                >报名培训查询</el-button
              > -->
              <el-button
                :size="size"
                :type="type"
                class="zhengJian-icon"
                v-if="row.hold == 1"
                :disabled="row.hold != 1"
                :title="row.hold != 1 ? '暂无证件或已吊销' : ''"
                @click.stop="handleViewCredentials(row)"
                >保安员证打印</el-button
              >
              <el-button
                icon="icon-zhengjian"
                :size="size"
                :type="type"
                class="zhengJian-icon"
                v-if="row.hold != 3 && row.hold != 2"
                @click.stop="handleCredentials(row)"
                :title="row.hold == 2 ? '暂无证件' : ''"
                :disabled="row.hold == 2"
                >保安员证件吊销</el-button
              >
              <el-button
@@ -579,6 +648,30 @@
            display: false,
          },
          {
            label: "保安证编号",
            prop: "securitynumber",
            search: true,
            searchLabelWidth: 90,
            minWidth: 105,
            searchSpan: 4,
            addDisplay: false,
            editDisplay: false,
            // hide: true,
          },
          {
            label: "学历",
            prop: "education",
            type: "select",
            dicUrl: "/api/blade-system/dict-biz/dictionary?code=educationType",
            props: {
              label: "dictValue",
              value: "dictKey",
            },
            dataType: "number",
            // slot: true,
            disabled: true,
          },
          {
            label: "身份证号码",
            prop: "cardid",
            search: true,
@@ -674,17 +767,7 @@
            hide: true,
            display: false,
          },
          {
            label: "保安证编号",
            prop: "securitynumber",
            search: true,
            searchLabelWidth: 90,
            minWidth: 105,
            searchSpan: 4,
            addDisplay: false,
            editDisplay: false,
            // hide: true,
          },
          {
            label: "入职时间",
            prop: "rtime",
src/views/workreport/workreport.vue
@@ -99,8 +99,6 @@
                  searchRange: true,
                  searchSpan: 6,
                  hide: false,
                  addDisplay: false,
                  editDisplay: false,
                  // viewDisplay: false,
                  search: false,
                  rules: [{
@@ -130,7 +128,7 @@
              //         message: "请选择汇报类别",
              //         trigger: "blur"
              //     }]
              // },
              // },
              {
                  label: "汇报类型",
                  prop: "type",