liuyg
2021-09-03 ef32fdb91a9b5f2aa53bd499698aee2cd381616d
营业执照  保安证
7 files modified
2 files added
744 ■■■■■ changed files
src/api/register/honor.js 10 ●●●●● patch | view | raw | blame | history
src/config/website.js 13 ●●●●● patch | view | raw | blame | history
src/lang/zh.js 4 ●●● patch | view | raw | blame | history
src/page/index/tags.vue 328 ●●●● patch | view | raw | blame | history
src/views/home/index.vue 115 ●●●● patch | view | raw | blame | history
src/views/securityCompany/companyDetails.vue 66 ●●●●● patch | view | raw | blame | history
src/views/securityCompany/computents/xkz.png patch | view | raw | blame | history
src/views/securityCompany/computents/yyzz.png patch | view | raw | blame | history
src/views/securityGuardManagement/register.vue 208 ●●●● patch | view | raw | blame | history
src/api/register/honor.js
@@ -70,4 +70,14 @@
            userIds
        }
    })
}
export const getER = (securityNumber) => {
    return request({
        url: '/api//qrCode/getQrCodeBase64',
        method: 'get',
        params: {
            securityNumber
        }
    })
}
src/config/website.js
@@ -30,6 +30,19 @@
    group: [],
    close: false
  },
  //配置权限分别的首页
  jurisdiction: [
    {
      userNames: '管理员',
      label: '本市保安公司',
      value: '/securityCompany/security'
    },
    {
      userNames: '保安',
      label: '保安员查询',
      value: '/securityGuardManagement/register'
    },
  ],
  //配置菜单的属性
  menu: {
    iconDefault: 'iconfont icon-caidan',
src/lang/zh.js
@@ -1,3 +1,5 @@
import website from '@/config/website';
export default {
  tip: '提示',
  title: '保安监管系统',
@@ -52,7 +54,7 @@
    info: '个人信息',
    website: 'bladex官网',
    avuexwebsite: 'avuex官网',
    dashboard: '保安员查询',
    dashboard: website.fistPage.label,
    more: '更多',
    tags: '标签',
    store: '本地存储',
src/page/index/tags.vue
@@ -1,186 +1,202 @@
<template>
  <div class="avue-tags"
       v-if="showTag">
  <div class="avue-tags" v-if="showTag">
    <!-- tag盒子 -->
    <div v-if="contextmenuFlag"
         class="avue-tags__contentmenu"
         :style="{left:contentmenuX+'px',top:contentmenuY+'px'}">
      <div class="item"
           @click="clearCacheTags">{{$t('tagsView.clearCache')}}
    <div
      v-if="contextmenuFlag"
      class="avue-tags__contentmenu"
      :style="{ left: contentmenuX + 'px', top: contentmenuY + 'px' }"
    >
      <div class="item" @click="clearCacheTags">
        {{ $t("tagsView.clearCache") }}
      </div>
      <div class="item"
           @click="closeOthersTags">{{$t('tagsView.closeOthers')}}
      <div class="item" @click="closeOthersTags">
        {{ $t("tagsView.closeOthers") }}
      </div>
      <div class="item"
           @click="closeAllTags">{{$t('tagsView.closeAll')}}
      <div class="item" @click="closeAllTags">
        {{ $t("tagsView.closeAll") }}
      </div>
    </div>
    <div class="avue-tags__box"
         :class="{'avue-tags__box--close':!website.isFirstPage}">
      <el-tabs v-model="active"
               type="card"
               @contextmenu.native="handleContextmenu"
               :closable="tagLen!==1"
               @tab-click="openTag"
               @edit="menuTag">
        <el-tab-pane :key="item.value"
                     v-for="item in tagList"
                     :label="generateTitle(item)"
                     :name="item.value">
    <div
      class="avue-tags__box"
      :class="{ 'avue-tags__box--close': !website.isFirstPage }"
    >
      <el-tabs
        v-model="active"
        type="card"
        @contextmenu.native="handleContextmenu"
        :closable="tagLen !== 1"
        @tab-click="openTag"
        @edit="menuTag"
      >
        <el-tab-pane
          :key="item.value"
          v-for="item in tagList"
          :label="generateTitle(item)"
          :name="item.value"
        >
        </el-tab-pane>
      </el-tabs>
      <el-dropdown class="avue-tags__menu">
        <el-button type="primary"
                   size="mini">
          {{$t('tagsView.menu')}}
        <el-button type="primary" size="mini">
          {{ $t("tagsView.menu") }}
          <i class="el-icon-arrow-down el-icon--right"></i>
        </el-button>
        <el-dropdown-menu slot="dropdown">
          <el-dropdown-item @click.native="$parent.isSearch=true">{{$t('tagsView.search')}}</el-dropdown-item>
          <el-dropdown-item @click.native="closeOthersTags">{{$t('tagsView.closeOthers')}}</el-dropdown-item>
          <el-dropdown-item @click.native="closeAllTags">{{$t('tagsView.closeAll')}}</el-dropdown-item>
          <el-dropdown-item @click.native="clearCacheTags">{{$t('tagsView.clearCache')}}</el-dropdown-item>
          <el-dropdown-item @click.native="$parent.isSearch = true">{{
            $t("tagsView.search")
          }}</el-dropdown-item>
          <el-dropdown-item @click.native="closeOthersTags">{{
            $t("tagsView.closeOthers")
          }}</el-dropdown-item>
          <el-dropdown-item @click.native="closeAllTags">{{
            $t("tagsView.closeAll")
          }}</el-dropdown-item>
          <el-dropdown-item @click.native="clearCacheTags">{{
            $t("tagsView.clearCache")
          }}</el-dropdown-item>
        </el-dropdown-menu>
      </el-dropdown>
    </div>
  </div>
</template>
<script>
  import {mapGetters, mapState} from "vuex";
  import {clearCache} from "@/api/user";
import { mapGetters, mapState } from "vuex";
import { clearCache } from "@/api/user";
  export default {
    name: "tags",
    data() {
      return {
        active: "",
        contentmenuX: "",
        contentmenuY: "",
        contextmenuFlag: false
      };
    },
    created() {
    },
    mounted() {
export default {
  name: "tags",
  data() {
    return {
      active: "",
      contentmenuX: "",
      contentmenuY: "",
      contextmenuFlag: false,
    };
  },
  created() {},
  mounted() {
    this.setActive();
    // if(this.userInfo.role_name == )
    // console.log(this.website, "website");//改变首页
  },
  watch: {
    tag() {
      this.setActive();
    },
    watch: {
      tag() {
        this.setActive();
      },
      contextmenuFlag() {
        window.addEventListener("mousedown", this.watchContextmenu);
    contextmenuFlag() {
      window.addEventListener("mousedown", this.watchContextmenu);
    },
  },
  computed: {
    ...mapGetters(["tagWel", "tagList", "tag", "website", "userInfo"]),
    ...mapState({
      showTag: (state) => state.common.showTag,
    }),
    tagLen() {
      return this.tagList.length || 0;
    },
  },
  methods: {
    generateTitle(item) {
      return this.$router.$avueRouter.generateTitle(
        item.label,
        (item.meta || {}).i18n
      );
    },
    watchContextmenu(event) {
      if (!this.$el.contains(event.target) || event.button !== 0) {
        this.contextmenuFlag = false;
      }
      window.removeEventListener("mousedown", this.watchContextmenu);
    },
    handleContextmenu(event) {
      let target = event.target;
      // 解决 https://github.com/d2-projects/d2-admin/issues/54
      let flag = false;
      if (target.className.indexOf("el-tabs__item") > -1) flag = true;
      else if (target.parentNode.className.indexOf("el-tabs__item") > -1) {
        target = target.parentNode;
        flag = true;
      }
      if (flag) {
        event.preventDefault();
        event.stopPropagation();
        this.contentmenuX = event.clientX;
        this.contentmenuY = event.clientY;
        this.tagName = target.getAttribute("aria-controls").slice(5);
        this.contextmenuFlag = true;
      }
    },
    computed: {
      ...mapGetters(["tagWel", "tagList", "tag", "website"]),
      ...mapState({
        showTag: state => state.common.showTag
      }),
      tagLen() {
        return this.tagList.length || 0;
    //激活当前选项
    setActive() {
      this.active = this.tag.value;
    },
    menuTag(value, action) {
      if (action === "remove") {
        let { tag, key } = this.findTag(value);
        this.$store.commit("DEL_TAG", tag);
        if (tag.value === this.tag.value) {
          tag = this.tagList[key === 0 ? key : key - 1]; //如果关闭本标签让前推一个
          this.openTag(tag);
        }
      }
    },
    methods: {
      generateTitle(item) {
        return this.$router.$avueRouter.generateTitle(
          item.label,
          (item.meta || {}).i18n
        );
      },
      watchContextmenu(event) {
        if (!this.$el.contains(event.target) || event.button !== 0) {
          this.contextmenuFlag = false;
        }
        window.removeEventListener("mousedown", this.watchContextmenu);
      },
      handleContextmenu(event) {
        let target = event.target;
        // 解决 https://github.com/d2-projects/d2-admin/issues/54
        let flag = false;
        if (target.className.indexOf("el-tabs__item") > -1) flag = true;
        else if (target.parentNode.className.indexOf("el-tabs__item") > -1) {
          target = target.parentNode;
          flag = true;
        }
        if (flag) {
          event.preventDefault();
          event.stopPropagation();
          this.contentmenuX = event.clientX;
          this.contentmenuY = event.clientY;
          this.tagName = target.getAttribute("aria-controls").slice(5);
          this.contextmenuFlag = true;
        }
      },
      //激活当前选项
      setActive() {
        this.active = this.tag.value;
      },
      menuTag(value, action) {
        if (action === "remove") {
          let {tag, key} = this.findTag(value);
          this.$store.commit("DEL_TAG", tag);
          if (tag.value === this.tag.value) {
            tag = this.tagList[key === 0 ? key : key - 1]; //如果关闭本标签让前推一个
            this.openTag(tag);
          }
        }
      },
      openTag(item) {
        let tag;
        if (item.name) {
          tag = this.findTag(item.name).tag;
        } else {
          tag = item;
        }
        this.$router.push({
          path: this.$router.$avueRouter.getPath({
    openTag(item) {
      let tag;
      if (item.name) {
        tag = this.findTag(item.name).tag;
      } else {
        tag = item;
      }
      this.$router.push({
        path: this.$router.$avueRouter.getPath(
          {
            name: tag.label,
            src: tag.value
          }, tag.meta),
          query: tag.query
            src: tag.value,
          },
          tag.meta
        ),
        query: tag.query,
      });
    },
    closeOthersTags() {
      this.contextmenuFlag = false;
      this.$store.commit("DEL_TAG_OTHER");
    },
    findTag(value) {
      let tag, key;
      this.tagList.map((item, index) => {
        if (item.value === value) {
          tag = item;
          key = index;
        }
      });
      return { tag: tag, key: key };
    },
    closeAllTags() {
      this.contextmenuFlag = false;
      this.$store.commit("DEL_ALL_TAG");
      this.$router.push({
        path: this.$router.$avueRouter.getPath({
          src: this.tagWel.value,
        }),
        query: this.tagWel.query,
      });
    },
    clearCacheTags() {
      this.$confirm("是否需要清除缓存?", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning",
      }).then(() => {
        clearCache().then(() => {
          this.contextmenuFlag = false;
          this.$message.success("清除完毕");
        });
      },
      closeOthersTags() {
        this.contextmenuFlag = false;
        this.$store.commit("DEL_TAG_OTHER");
      },
      findTag(value) {
        let tag, key;
        this.tagList.map((item, index) => {
          if (item.value === value) {
            tag = item;
            key = index;
          }
        });
        return {tag: tag, key: key};
      },
      closeAllTags() {
        this.contextmenuFlag = false;
        this.$store.commit("DEL_ALL_TAG");
        this.$router.push({
          path: this.$router.$avueRouter.getPath({
            src: this.tagWel.value
          }),
          query: this.tagWel.query
        });
      },
      clearCacheTags() {
        this.$confirm("是否需要清除缓存?", {
          confirmButtonText: "确定",
          cancelButtonText: "取消",
          type: "warning"
        }).then(() => {
          clearCache().then(() => {
            this.contextmenuFlag = false;
            this.$message.success('清除完毕');
          })
        });
      }
    }
  };
      });
    },
  },
};
</script>
src/views/home/index.vue
@@ -666,12 +666,14 @@
  selectYs,
  selectJy,
  selectWg,
  punishList
  punishList,
} from "../../api/index/index";
import car from "@/assets/img/car.png";
import peo from "@/assets/img/people.png";
import gun from "@/assets/img/gun.png";
import website from "@/config/website";
export default {
  data() {
@@ -693,7 +695,7 @@
        materialNum: 0,
        punishNum: 0,
        wgNum: 0,
        ymwsNum: 0
        ymwsNum: 0,
      },
      carNum: 0,
      peoNum: 0,
@@ -703,7 +705,7 @@
        left1Echart: null,
        left2Echart: null,
        mapEchart: null,
        right3Echart: null
        right3Echart: null,
      },
      left1loading: true,
      left2loading: true,
@@ -720,7 +722,7 @@
        wz: 0,
        kqy: 0,
        nan: 0,
        nv: 0
        nv: 0,
      },
      left2EchartType: 0,
      poorPerformanceType: 3,
@@ -730,22 +732,22 @@
        total: 0,
        current: 1,
        type: "zg",
        title: "资格异常人员清单"
        title: "资格异常人员清单",
      },
      dialogTable: {
        wgTable: [],
        jyTable: [],
        ymTable: []
      }
        ymTable: [],
      },
    };
  },
  computed: {
    text() {
      return {
        id: this.number,
        val: this.textArr[this.number]
        val: this.textArr[this.number],
      };
    }
    },
  },
  methods: {
    sexFormatter(row, column) {
@@ -784,7 +786,7 @@
    // 左侧表的接口返回数据
    initEchart() {
      securityTotal().then(res => {
      securityTotal().then((res) => {
        if (res.data.code == 200) {
          let securityData = res.data.data;
          if (!this.echarts.left1Echart) {
@@ -798,10 +800,10 @@
        }
        this.left1loading = false;
      });
      seCountI({ jurisdiction: "", deptid: "" }).then(res => {
      seCountI({ jurisdiction: "", deptid: "" }).then((res) => {
        if (res.data.code == 200) {
          let data = res.data.data;
          data.forEach(item => {
          data.forEach((item) => {
            if (item.stats === "0") {
              this.leftData.zz = item.num;
            }
@@ -822,7 +824,7 @@
          this.$message.error(res.msg);
        }
      });
      selectFj().then(res => {
      selectFj().then((res) => {
        if (res.data.code === 200) {
          if (!this.echarts.right3Echart) {
            this.echarts.right3Echart = echarts.init(
@@ -846,7 +848,7 @@
        this.echarts.left2Echart.clear();
      }
      if (type === 0) {
        holderNum().then(res => {
        holderNum().then((res) => {
          if (res.data.code === 200) {
            let data = res.data.data;
            this.echarts.left2Echart = echarts.init(
@@ -859,7 +861,7 @@
          this.left2loading = false;
        });
      } else {
        seCountUg({ jurisdiction: "", deptid: "" }).then(res => {
        seCountUg({ jurisdiction: "", deptid: "" }).then((res) => {
          if (res.data.code === 200) {
            this.echarts.left2Echart = echarts.init(
              document.getElementById("left2Echart")
@@ -893,7 +895,7 @@
      this.middleloading = false;
      this.textArr = [];
      if (type === 2) {
        this.tableData.forEach(item => {
        this.tableData.forEach((item) => {
          let obj =
            "押运车辆车牌号" +
            item.carNum +
@@ -908,7 +910,7 @@
          this.textArr.push(obj);
        });
      } else if (type === 1) {
        this.tableData.forEach(item => {
        this.tableData.forEach((item) => {
          let obj =
            "押运人员" +
            item.name +
@@ -921,7 +923,7 @@
          this.textArr.push(obj);
        });
      } else if (type === 3) {
        this.tableData.forEach(item => {
        this.tableData.forEach((item) => {
          let obj =
            "枪支编号" +
            item.number +
@@ -942,21 +944,21 @@
      let middleData = {
        1: {
          table: [],
          geoData: []
          geoData: [],
        },
        2: {
          table: [],
          geoData: []
          geoData: [],
        },
        3: {
          table: [],
          geoData: []
        }
          geoData: [],
        },
      };
      getLiveLocationVoList({ type: type }).then(res => {
      getLiveLocationVoList({ type: type }).then((res) => {
        if (res.data.code === 200) {
          let allData = res.data.data;
          allData.forEach(m => {
          allData.forEach((m) => {
            let obj = {
              location: m.location,
              name: m.name,
@@ -964,7 +966,7 @@
              linkman: m.linkman,
              company: m.company,
              tel: m.tel,
              carNum: m.carNum
              carNum: m.carNum,
            };
            // let geoObj = {
@@ -973,7 +975,7 @@
            // };
            middleData[m.type]["geoData"].push([
              Number(m.longitude),
              Number(m.latitude)
              Number(m.latitude),
            ]);
            middleData[m.type]["table"].push(obj);
          });
@@ -999,38 +1001,36 @@
            zIndex: 4,
            title: "影像",
            source: new XYZ({
              url:
                "http://t3.tianditu.com/DataServer?T=img_w&x={x}&y={y}&l={z}&tk=e9533f5acb2ac470b07f406a4d24b4f0" // 行政区划
            })
              url: "http://t3.tianditu.com/DataServer?T=img_w&x={x}&y={y}&l={z}&tk=e9533f5acb2ac470b07f406a4d24b4f0", // 行政区划
            }),
          }),
          new Tile({
            zIndex: 5,
            title: "道路+中文注记",
            source: new XYZ({
              url:
                "http://t3.tianditu.com/DataServer?T=cta_w&x={x}&y={y}&l={z}&tk=e9533f5acb2ac470b07f406a4d24b4f0" // 注记
            })
          })
              url: "http://t3.tianditu.com/DataServer?T=cta_w&x={x}&y={y}&l={z}&tk=e9533f5acb2ac470b07f406a4d24b4f0", // 注记
            }),
          }),
        ],
        view: new View({
          projection: "EPSG:4326",
          center: [115.892151, 28.676493],
          zoom: 10
        })
          zoom: 10,
        }),
      });
      this.carVectorLayer = new VectorLayer({
        zIndex: 99,
        source: new VectorSource()
        source: new VectorSource(),
      });
      this.peoVectorLayer = new VectorLayer({
        zIndex: 99,
        source: new VectorSource()
        source: new VectorSource(),
      });
      this.gunVectorLayer = new VectorLayer({
        zIndex: 99,
        source: new VectorSource()
        source: new VectorSource(),
      });
      this.map.addLayer(this.carVectorLayer);
      this.map.addLayer(this.peoVectorLayer);
@@ -1040,7 +1040,7 @@
    },
    // 获取辖区列表
    getOfficeData() {
      lazyTreeJu().then(res => {
      lazyTreeJu().then((res) => {
        if (res.data.code === 200) {
          this.options1 = res.data.data;
          this.options2 = res.data.data;
@@ -1080,7 +1080,7 @@
      }
    },
    getWgTable() {
      this.dialogTable.wgTable.forEach(item => {
      this.dialogTable.wgTable.forEach((item) => {
        let czl = 0;
        if (Number(item.cznum) !== 0 && Number(item.znum) !== 0) {
          czl =
@@ -1098,7 +1098,7 @@
      this.gridData.total = this.dialogTable.wgTable.length;
    },
    getJyTable() {
      this.dialogTable.jyTable.forEach(item => {
      this.dialogTable.jyTable.forEach((item) => {
        let pql = 0;
        if (Number(item.painum) !== 0 && Number(item.znum) !== 0) {
          pql =
@@ -1126,9 +1126,9 @@
      let params = {
        current: this.gridData.current,
        size: 10,
        jurisdiction: this.value2
        jurisdiction: this.value2,
      };
      punishList(params).then(res => {
      punishList(params).then((res) => {
        if (res.data.code === 200) {
          this.gridData.data = res.data.data.records;
          this.gridData.total = res.data.data.total;
@@ -1166,9 +1166,9 @@
        current: this.gridData.current,
        size: 10,
        examinationType: 1,
        jurisdiction: this.value1
        jurisdiction: this.value1,
      };
      qualificationPages(params).then(res => {
      qualificationPages(params).then((res) => {
        if (res.data.code === 200) {
          this.gridData.data = res.data.data.records;
          this.gridData.total = res.data.data.total;
@@ -1189,9 +1189,9 @@
      let params = {
        current: this.gridData.current,
        size: 10,
        jurisdiction: this.value2
        jurisdiction: this.value2,
      };
      punishList(params).then(res => {
      punishList(params).then((res) => {
        if (res.data.code === 200) {
          this.gridData.data = res.data.data.records;
          this.gridData.total = res.data.data.total;
@@ -1202,7 +1202,7 @@
    },
    // 经营不善
    getMaterial() {
      selectJy({ jurisdiction: this.value2 }).then(res => {
      selectJy({ jurisdiction: this.value2 }).then((res) => {
        if (res.data.code === 200) {
          this.rightData.materialNum = res.data.data.count;
          this.dialogTable.jyTable = res.data.data.List;
@@ -1214,7 +1214,7 @@
    },
    // 有名无实
    getselectYs() {
      selectYs({ jurisdiction: this.value2 }).then(res => {
      selectYs({ jurisdiction: this.value2 }).then((res) => {
        if (res.data.code === 200) {
          this.rightData.ymwsNum = res.data.data.count;
          this.dialogTable.ymTable = res.data.data.List;
@@ -1226,7 +1226,7 @@
    },
    // 违规经营
    getselectWg() {
      selectWg({ jurisdiction: this.value2 }).then(res => {
      selectWg({ jurisdiction: this.value2 }).then((res) => {
        if (res.data.code === 200) {
          this.rightData.wgNum = res.data.data.count;
          this.dialogTable.wgTable = res.data.data.list;
@@ -1256,8 +1256,8 @@
      // this.rightData.qualification = 45;
      selectBx({
        jurisdiction: this.value1,
        type: this.poorPerformanceType
      }).then(res => {
        type: this.poorPerformanceType,
      }).then((res) => {
        if (res.data.code === 200) {
          this.rightData.poorPerformance = res.data.data[0].count;
        } else {
@@ -1267,8 +1267,8 @@
      });
      selectExtype({
        jurisdiction: this.value1,
        type: this.poorPerformanceType
      }).then(res => {
        type: this.poorPerformanceType,
      }).then((res) => {
        if (res.data.code === 200) {
          this.rightData.qualification = res.data.data[0].count;
        } else {
@@ -1305,8 +1305,9 @@
    goSystemHome() {
      // this.$router.push({ path: "/register/index" });
      this.$router.push({ path: "/securityGuardManagement/register" });
    }
      // this.$router.push({ path: "/securityGuardManagement/register" });
      this.$router.push({ path: website.fistPage.value });
    },
  },
  mounted() {
    this.initEchart();
@@ -1317,7 +1318,7 @@
    this.getTableData(0);
    // this.initMapEchart();
    this.getOfficeData();
  }
  },
};
</script>
src/views/securityCompany/companyDetails.vue
@@ -1,8 +1,8 @@
/*
 * @Author: Morpheus
 * @Date: 2021-07-05 16:31:54
 * @Last Modified by: Morpheus
 * @Last Modified time: 2021-07-10 15:33:24
 * @Last Modified by: liu
 * @Last Modified time: 2021-08-31 14:52:13
 * menu-name 保安公司详细资料
 */
<template>
@@ -209,8 +209,37 @@
            <el-tab-pane label="服务对象" name="seventh">
              <service :form="form"></service>
            </el-tab-pane>
            <el-tab-pane label="其他附件" name="eighth">
            <!-- <el-tab-pane label="其他附件" name="eighth">
              <enclosure :form="form"></enclosure>
            </el-tab-pane> -->
            <el-tab-pane label="营业执照" name="eighth">
              <div class="businessLicenses">
                <el-container>
                  <el-main>
                    <div class="title" v-if="businessLicenseUrl == ''">
                      未上传营业执照
                    </div>
                    <img
                      class="businessLicensess"
                      :src="businessLicenseUrl"
                      alt=""
                      v-else
                    />
                  </el-main>
                </el-container>
              </div>
            </el-tab-pane>
            <el-tab-pane label="许可证" name="ninth">
              <div class="businessLicenses">
                <el-container>
                  <el-main>
                    <div class="title" v-if="licenceUrl == ''">
                      未上传许可证
                    </div>
                    <img class="Licenses" :src="licenceUrl" alt="" v-else />
                  </el-main>
                </el-container>
              </div>
            </el-tab-pane>
          </el-tabs>
        </div>
@@ -233,7 +262,7 @@
import staff from "./computents/staff.vue"; //保安员信息
import punish from "./computents/punish.vue"; //处罚信息
import service from "./computents/service.vue"; //服务对象
import enclosure from "./computents/enclosure.vue"; //其他附件
// import enclosure from "./computents/enclosure.vue"; //其他附件
import { getList } from "@/api/securityCompany/security"; //保安公司
@@ -243,10 +272,13 @@
    staff: staff,
    punish: punish,
    service: service,
    enclosure: enclosure,
    // enclosure: enclosure,
  },
  data() {
    return {
      businessLicenseUrl: "",
      licenceUrl: "",
      activeName: "first",
      form: {},
      manifestationData: [],
@@ -424,6 +456,8 @@
      getList(page.currentPage, page.pageSize, params).then((res) => {
        console.log(res.data.data.records[0]);
        that.form = res.data.data.records[0];
        this.businessLicenseUrl = res.data.data.records[0].businessLicense;
        this.licenceUrl = res.data.data.records[0].licence;
      });
      // })
    } else {
@@ -584,4 +618,26 @@
</script>
<style lang="scss" scoped>
.businessLicenses {
  padding-top: 15px;
  background-color: transparent;
}
.el-main {
  background-color: transparent;
  color: #333;
  text-align: center;
  // position: relative;
  // right: 5%;
}
.businessLicensess {
  height: 680px;
  width: 450px;
}
.Licenses {
  height: 680px;
  width: 1048px;
}
.title {
  color: #fff;
}
</style>
src/views/securityCompany/computents/xkz.png
src/views/securityCompany/computents/yyzz.png
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-08-30 11:45:26
 * @Last Modified time: 2021-08-31 11:26:49
 * menu-name 保安员注册查询
 */
<template>
@@ -155,10 +155,62 @@
    </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">南昌市公安局</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
@@ -186,7 +238,7 @@
          <el-button type="primary" @click="Print">打 印</el-button>
          <el-button type="primary" @click="closePrint"> 取 消 </el-button>
        </span>
      </div>
      </div> -->
    </div>
  </div>
</template>
@@ -202,7 +254,7 @@
import { mapGetters } from "vuex";
import website from "@/config/website";
import { getToken } from "@/util/auth";
import { addhonor } from "@/api/register/honor";
import { addhonor, getER } from "@/api/register/honor";
export default {
  data() {
@@ -225,6 +277,7 @@
    return {
      dialogVisiblecertificates: false,
      objVisiblecertificates: {},
      erweima: "", //二维码
      objf: {},
      optionf: {
@@ -438,6 +491,7 @@
            label: "学历",
            prop: "education",
            display: false,
            hide: true,
            width: 90,
            dicUrl: "/api/blade-system/dict-biz/dictionary?code=educationType",
            props: {
@@ -907,6 +961,10 @@
      // this.$Print("#certificatess");
      this.objVisiblecertificates = obj;
      console.log(this.objVisiblecertificates);
      getER(this.obj.securitynumber).then((res) => {
        this.erweima = res.data;
        // console.log(res.data);
      });
    },
    // 证件吊销事件
    handleCredentials(row) {
@@ -985,13 +1043,91 @@
  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: 491px;
  height: 468px;
  width: 750px;
  height: 550px;
  // background-color: #004ca7;
  background-color: #fff;
  display: flex;
@@ -1000,49 +1136,69 @@
  flex-direction: column;
}
.baz-m-body {
  width: 461px;
  height: 308px;
  width: 750px;
  height: 550px;
  background-image: url("/img/register/bazbj.png");
  background-size: 100% 100%;
  .bmb-heard {
    font-size: 2rem;
    font-size: 4rem;
    width: 100%;
    text-align: center;
    letter-spacing: 1rem;
    letter-spacing: 1.4rem;
    margin-bottom: 40px;
    padding-left: 10px;
    position: relative;
    top: 20px;
  }
  img {
    width: 130px;
    height: 130px;
    border-radius: 130px;
  .img {
    width: 152px;
    height: 205px;
    border-radius: 10px;
    position: absolute;
    // border: 1px solid rgba($color: #888888, $alpha: 0.5);
    top: 110px;
    right: 60px;
    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: 50px;
    margin-left: 10px;
    height: 3.9rem;
    margin-left: 3rem;
    width: 100%;
    font-size: 1rem;
    font-weight: 400;
    font-size: 2rem;
    font-weight: 300;
    .bmb-b-s {
      display: inline-block;
      width: 110px;
      font-size: 1.1rem;
      font-weight: 600;
      width: 20rem;
      font-size: 2rem;
      font-weight: 300;
    }
  }
}
.PrintBut {
  margin-top: 15px;
}
.rowClickSelf {
  &:hover {
    cursor: pointer;
  }
}
</style>