Administrator
2022-04-11 79d9fc857559982b00b68b2d709807bdc4cd286f
src/views/securityGuard/securityGuard.vue
@@ -1,6 +1,6 @@
<template>
  <el-row :class="{ securityGuard: isSecurity }">
    <el-col :span="0" style="display: none">
    <!-- <el-col :span="0" style="display: none">
      <div class="box">
        <el-scrollbar>
          <basic-container>
@@ -12,16 +12,17 @@
          </basic-container>
        </el-scrollbar>
      </div>
    </el-col>
    </el-col> -->
    <el-col :span="24">
      <basic-container
        :class="[
          screenSize == 1366 ? 'smallSize' : 'normalSize',
          $store.state.control.windowWidth >= 1024 ? 'tooRowSearch1' : ''
        ]"
      >
        <!-- :key="option.height" -->
        <avue-crud
          class="tablesss"
          :key="option.height"
          :option="option"
          :search.sync="search"
          :table-loading="loading"
@@ -157,7 +158,92 @@
          </template>
          <template slot-scope="{ type, size, row }" slot="menu">
            <el-button
            <el-tooltip
              placement="bottom"
              effect="light"
              transition="el-collapse-transition"
              popper-class="caozuolanpopper"
            >
              <div slot="content">
                <el-button
                  icon="el-icon-view"
                  :size="size"
                  :type="type"
                  v-if="permission.securityGuard_view"
                  @click.stop="rowClick(row)"
                  >查看
                </el-button>
                <br v-if="permission.securityGuard_view" />
                <el-button
                  icon="el-icon-scissors"
                  :size="size"
                  :type="type"
                  v-if="permission.securityGuard_delete && row.status != 2"
                  @click="$refs.crud.rowEdit(row, index)"
                  >编辑
                </el-button>
                <br v-if="permission.securityGuard_delete && row.status != 2" />
                <el-button
                  icon="el-icon-close"
                  :size="size"
                  :type="type"
                  v-if="permission.securityGuard_delete && row.status != 2"
                  @click="$refs.crud.rowDel(row, index)"
                  >注销
                </el-button>
                <br v-if="permission.securityGuard_delete && row.status != 2" />
                <el-button
                  icon="el-icon-circle-close"
                  :size="size"
                  :type="type"
                  v-if="permission.securityGuard_delete && row.status != 2"
                  @click.stop="rowStatus(row)"
                  >离职
                </el-button>
                <br v-if="permission.securityGuard_delete && row.status != 2" />
                <el-button
                  icon="el-icon-search"
                  :size="size"
                  :type="type"
                  v-if="row.status == 2"
                  @click.stop="rowDellook(row)"
                  >离职查询
                </el-button>
                <br v-if="row.status == 2" />
                <el-button
                  icon="el-icon-user"
                  :size="size"
                  :type="type"
                  v-if="permission.securityGuard_check"
                  @click.stop="rowCheck(row)"
                  >异常
                </el-button>
                <br v-if="permission.securityGuard_check" />
                <el-button
                  icon="el-icon-money"
                  :size="size"
                  :type="type"
                  v-if="permission.securityGuard_check_apply"
                  @click.stop="rowCheckApply(row)"
                  >证件核实申请
                </el-button>
                <!-- <br />
                <el-button
                  icon="el-icon-edit"
                  style="display: none"
                  :size="size"
                  :type="type"
                  v-if="permission.securityGuard_paper"
                  @click.stop="certificateClick(row)"
                  >纸质证书制作
                </el-button> -->
              </div>
              <el-button icon="el-icon-s-operation" :size="size" :type="type"
                >操作
              </el-button>
            </el-tooltip>
            <!-- <el-button
              icon="el-icon-s-custom"
              :size="size"
              :type="type"
@@ -196,7 +282,7 @@
              v-if="permission.securityGuard_paper"
              @click.stop="certificateClick(row)"
              >纸质证书制作
            </el-button>
            </el-button> -->
          </template>
          <template slot-scope="{ row }" slot="sex">
@@ -230,7 +316,7 @@
          </template>
          <!-- 自定义新增和编辑中的指纹信息 -->
          <!-- src="http://223.82.109.183:2081/zhba/upload/picture/85004574ae23472da37350b918960206.png" -->
          <!-- src="http://61.131.136.25:2081/zhba/upload/picture/85004574ae23472da37350b918960206.png" -->
          <template slot-scope="{ type, disabled }" slot="fingerprintForm">
            <div class="zhiwenMain">
              <!-- <img class="zhiwenImgs" :src="zhiwenImg" alt="" />
@@ -356,6 +442,28 @@
          >
          </avue-form>
        </el-dialog>
        <el-dialog
          title="证件核实申请"
          :visible.sync="securityCheckApplyvisible"
          width="width"
          :modal="true"
          :modal-append-to-body="true"
          :append-to-body="true"
          :close-on-click-modal="false"
          :close-on-press-escape="false"
          :before-close="dialogBeforeClose"
        >
          <div>
            <avue-form
              ref="formSecurityCheckApply"
              :option="optionSecurityCheckApply"
              v-model="formSecurityCheckApply"
              @reset-change="emptytChange"
              @submit="submitSecurityCheckApply"
            >
            </avue-form>
          </div>
        </el-dialog>
        <div style="position: fixed; top: 9999px; width: 100%; height: 100%">
          <div class="certificate_box" id="certificateDom">
            <div class="security_main" ref="certificateBox">
@@ -417,7 +525,7 @@
      >
      <!-- <div style="font-size: 14px">连接身份证设备失败</div> -->
      <!-- v-show="haveSEL == 'noDrive'" -->
      <!-- href="http://223.82.109.183:2081/zhba/upload/20211201/64d8b76f3aecae93e18d015bbca89aba.rar" -->
      <!-- href="http://61.131.136.25:2081/zhba/upload/20211201/64d8b76f3aecae93e18d015bbca89aba.rar" -->
      <!-- <a href="javascript;">未安装身份证驱动,点击下载</a> -->
    </div>
  </el-row>
@@ -441,6 +549,7 @@
  checkAccountByUser
} from "@/api/system/user";
import { securityApply } from "@/api/accreditationRecords/accreditationRecords";
import { add } from "@/api/securityapplyRecord/securityapplyRecord";
import { getList } from "@/api/securityGuard/securityGuard";
import { getDeptLazyTree } from "@/api/system/dept";
import { getInformationDetails } from "@/api/securityUnit/securityUnit";
@@ -649,6 +758,7 @@
    // // that.option.height = +h - (+heard[0].clientHeight + 332);
    // let optionHeight = +this.windowHeight - (+heard[0].clientHeight + +usNum);
    return {
      startTimecc: null,
      sort: "",
      type: 2,
      sortName: "",
@@ -687,6 +797,7 @@
      excelBox1: false,
      excelBox2: false,
      isSecurity: true,
      securityCheckApplyvisible: false,
      excelForm1: {},
      excelOption1: {
        submitBtn: false,
@@ -798,6 +909,85 @@
      },
      choiceList: [],
      deptIdss: "",
      optionSecurityCheckApply: {
        height: "auto",
        calcHeight: 30,
        dialogWidth: 1000,
        tip: false,
        searchShow: true,
        searchMenuSpan: 6,
        border: true,
        index: true,
        stripe: true,
        viewBtn: false,
        addBtn: false,
        editBtn: false,
        selection: true,
        excelBtn: false,
        menuWidth: 230,
        dialogClickModal: false,
        column: [
          {
            label: "姓名",
            prop: "realName",
            labelWidth: 110,
            disabled: true,
            rules: [
              {
                required: true,
                message: "请输入姓名",
                trigger: "blur"
              }
            ]
          },
          {
            label: "保安证编号",
            prop: "number",
            labelWidth: 110,
            disabled: false,
            rules: [
              {
                required: true,
                message: "请输入保安证编号",
                trigger: "blur"
              }
            ]
          },
          {
            label: "保安员证图片",
            prop: "url",
            labelWidth: 110,
            type: "upload",
            span: 24,
            listType: "picture-img",
            tip: "上传jpg/png文件,图片不超过1M",
            propsHttp: {
              res: "data",
              url: "url"
            },
            canvasOption: {
              text: " ",
              ratio: 1.0
            },
            action: "/api/blade-resource/oss/endpoint/put-files",
            rules: [
              {
                required: true,
                message: "请上传保安员证图片",
                trigger: "blur"
              }
            ]
          },
          {
            label: "申请理由",
            labelWidth: 110,
            span: 24,
            type: "textarea",
            prop: "applyReason"
          }
        ]
      },
      formSecurityCheckApply: {},
      option: {
        searchIndex: 6, //收缩展示数量
        searchIcon: true, //搜索是否收缩
@@ -821,11 +1011,11 @@
        searchMenuSpan: 6,
        stripe: true,
        border: true,
        delBtn: true,
        // delBtn: true,
        align: "center",
        index: true,
        delBtnText: "注销",
        menuWidth: 280,
        // delBtnText: "注销",
        menuWidth: 90,
        selection: true,
        viewBtn: true,
        defaultExpandAll: true,
@@ -833,6 +1023,8 @@
        dialogClickModal: false,
        column: securityFormPageColumn,
        ...this.$store.state.control.clearOtherBut,
        // addBtn: false,
        editBtn: false,
        group: [
          {
            label: "基础信息",
@@ -1017,11 +1209,6 @@
              {
                label: "是否持证",
                prop: "hold",
                // dicUrl: "/api/blade-system/dict-biz/dictionary?code=equipage",
                // props: {
                //   label: "dictValue",
                //   value: "dictKey",
                // },
                type: "select",
                dicData: [
                  {
@@ -1058,24 +1245,24 @@
                  }
                ]
              },
              {
                label: "保安证书照片",
                prop: "email",
                type: "upload",
                listType: "picture-img",
                display: true,
                propsHttp: {
                  res: "data",
                  url: "url"
                },
                canvasOption: {
                  text: " ",
                  ratio: 1.0
                },
                action: "/api/blade-resource/oss/endpoint/put-files",
                tip: "上传jpg,png格式图片,大小不超过2M",
                span: 12
              },
              // {
              //   label: "保安证书照片",
              //   prop: "email",
              //   type: "upload",
              //   listType: "picture-img",
              //   display: true,
              //   propsHttp: {
              //     res: "data",
              //     url: "url"
              //   },
              //   canvasOption: {
              //     text: " ",
              //     ratio: 1.0
              //   },
              //   action: "/api/blade-resource/oss/endpoint/put-files",
              //   tip: "上传jpg,png格式图片,大小不超过2M",
              //   span: 12
              // },
              {
                label: "民族",
                prop: "nation"
@@ -1319,58 +1506,10 @@
        ]
      },
      tablevisible: true,
      isNotChangeSize: true //取消表格loging
      onceTableChange: 1
    };
  },
  watch: {
    windowHeight() {
      let that = this;
      that.isNotChangeSize = false; //取消表格loging
      let d = {
        fn: function(h) {
          let table = document.getElementsByClassName("tablesss");
          let heard = table[0].getElementsByClassName("avue-crud__search");
          let usNum =
            that.windowWidth <= 1376 || that.windowHeight <= 778 ? 170 : 302;
          // // that.option.height = +h - (+heard[0].clientHeight + 332);
          // alert(h);
          let doit = height => {
            let hs = height || h;
            // alert(hs);
            // alert(heard[0].clientHeight);
            // alert(usNum);
            that.option.height = +hs - (+heard[0].clientHeight + +usNum);
            that.$nextTick(() => {
              that.refreshChange();
              setTimeout(() => {
                let d = {
                  that: this,
                  otherclass: ["downSFZ"],
                  haveOpen: true
                };
                //刷新表格后再次调整按钮
                that.$store.dispatch("TABLE_CHANGEBUTPOSITION", d);
                that.isNotChangeSize = true; //恢复表格loging
              }, 10);
            });
          };
          if (that.option.height == "auto") {
            //解决第一次未渲染成功会报错的问题
            setTimeout(() => {
              // console.log(
              //   document
              //     .getElementsByClassName("tablesss")[0]
              //     .getElementsByClassName("avue-crud__search")
              // );
              doit(window.innerHeight);
            }, 150);
          } else {
            doit();
          }
        }
      };
      this.$store.dispatch("WHchangeHight", d);
    },
    radio() {
      if (this.radio) {
        this.SFZloding = true;
@@ -1403,8 +1542,8 @@
          this.option.group,
          "securitynumber"
        );
        var emailcolumn = this.findObject(this.option.group, "email");
        // console.log(val,1234);
        // var emailcolumn = this.findObject(this.option.group, "email");
        console.log(val, 1234);
        if (val == 1) {
          securitynumbercolumn.display = true;
          securitynumbercolumn.rules = [
@@ -1414,7 +1553,7 @@
              trigger: "blur"
            }
          ];
          emailcolumn.display = true;
          // emailcolumn.display = true;
        } else {
          securitynumbercolumn.display = false;
          securitynumbercolumn.rules = [
@@ -1424,7 +1563,7 @@
              trigger: "blur"
            }
          ];
          emailcolumn.display = false;
          // emailcolumn.display = false;
        }
      },
      immediate: true
@@ -1500,12 +1639,20 @@
    }
  },
  computed: {
    ...mapGetters(["userInfo", "permission", "windowHeight", "windowWidth"]),
    ...mapGetters([
      "userInfo",
      "permission",
      "windowHeight",
      "windowWidth",
      "screenSize",
      "screenHeight"
    ]),
    permissionList() {
      console.log(this.permission, 789787);
      return {
        addBtn: this.vaildData(this.permission.securityGuard_add, false),
        viewBtn: this.vaildData(null, false),
        delBtn: this.vaildData(this.permission.securityGuard_delete, false),
        delBtn: this.vaildData(null, false),
        editBtn: this.vaildData(this.permission.securityGuard_edit, false)
      };
    },
@@ -1531,7 +1678,6 @@
  beforeCreate() {},
  created() {
    var that = this;
    // console.log(this.userInfo, 9999);
    if (this.userInfo.role_name == "办证管理员") {
      this.search["userType"] = 7;
      this.search["hold"] = "1";
@@ -1552,7 +1698,11 @@
      column.dicUrl =
        "/api/blade-system/dept/security_lazy-tree?deptId=" +
        this.userInfo.dept_id;
    } else if (roleName == "公安管理员" || roleName == "administrator") {
    } else if (
      roleName == "公安管理员" ||
      roleName == "administrator" ||
      this.userInfo.role_name == "民警"
    ) {
      var columnDept = that.findObject(that.option.column, "deptId");
      columnDept.dicUrl =
        "/api/blade-system/dept/security_lazy-tree?jurisdiction=" +
@@ -1588,15 +1738,11 @@
    }
  },
  mounted() {
    // let d = {
    //   that: this,
    //   otherclass: ["downSFZ"],
    //   haveOpen: true,
    //   flowHeight: 332,
    // };
    // this.$store.dispatch("TABLE_CHANGEBUTPOSITION", d);
    // console.log((this.$refs.crud._props.option.height = 200));
    this.changeButsPosition("TABLE_CHANGEBUTPOSITION");
    // console.log(this.screenSize, "screenSize");
    this.option.height = this.screenHeight;
    this.$store.commit("setWindowSizeHeightAdd");
    // this.$store.dispatch("MOUNTED_TABLE_SIZE");
    // this.option.column[0].hide = true
    // 非保安单位模式默认加载管理组数据
    if (!website.tenantMode) {
@@ -1639,17 +1785,6 @@
      }
      //  首次执行
      checkDom();
    },
    changeButsPosition(val) {
      let d = {
        that: this,
        otherclass: ["downSFZ"],
        haveOpen: true,
        from: "mounted"
      };
      // 开始就适应高度
      this.$store.commit("setWindowSizeHeightAdd");
      this.$store.dispatch("TABLE_CHANGEBUTPOSITION", d);
    },
    openccc() {
      console.log(this.zhiwenImg);
@@ -1840,10 +1975,18 @@
        this.userInfo.account == "南昌市保安服务总公司" ||
        this.userInfo.account == "押运分公司"
      ) {
        window.open(`/api/blade-user/export-template-securityYy?${this.website.tokenHeader}=${getToken()}`);
        window.open(
          `/api/blade-user/export-template-securityYy?${
            this.website.tokenHeader
          }=${getToken()}`
        );
        return;
      }
      window.open(`/api/blade-user/export-template-security?${this.website.tokenHeader}=${getToken()}`);
      window.open(
        `/api/blade-user/export-template-security?${
          this.website.tokenHeader
        }=${getToken()}`
      );
    },
    handleImport2() {
      this.excelBox2 = true;
@@ -2058,6 +2201,33 @@
          });
        });
    },
    // 证件核实申请
    rowCheckApply(row) {
      this.formSecurityCheckApply = {
        id: null,
        realName: row.realName,
        userId: row.id
      };
      this.securityCheckApplyvisible = true;
    },
    //证件核实申请提交
    submitSecurityCheckApply(row, done, loading) {
      var that = this;
      row["createUser"] = this.userInfo.Id;
      add(row).then(() => {
        that.$refs.formSecurityCheckApply.resetFields();
        this.$message({
          type: "success",
          message: `操作成功`
        });
        this.securityCheckApplyvisible = false;
        this.onLoad(this.page);
        done();
      });
      error => {
        window.console.log(error);
      };
    },
    //保安员信息导出
    handleExportSecurityInfo() {
      this.$confirm("是否导出保安员信息数据?", "提示", {
@@ -2065,12 +2235,6 @@
        cancelButtonText: "取消",
        type: "warning"
      }).then(() => {
        //获取查询条件
        // const { releaseTimeRange } = this.search;
        // if (releaseTimeRange) {
        //   this.search["startTime"] = releaseTimeRange[0];
        //   this.search["endTime"] = releaseTimeRange[1];
        // }
        var data = {
          cardid: this.search.cardid,
          deptId: this.search.deptId,
@@ -2099,7 +2263,10 @@
          //如果是培训公司管理员
          data["trainingUnitId"] = this.userInfo.Id;
        }
        if (this.userInfo.role_name == "公安管理员") {
        if (
          this.userInfo.role_name == "公安管理员" ||
          this.userInfo.role_name == "民警"
        ) {
          //如果是公安管理员
          data["jurisdiction"] = this.userInfo.jurisdiction;
        }
@@ -2171,19 +2338,40 @@
      };
      securitySave(userMap).then(
        () => {
        res => {
          // console.log(res.data,111111111111111111);
          this.initFlag = false;
          this.$alert("账号为身份证号码,密码为身份证后六位", "温馨提示", {
            confirmButtonText: "确定",
            callback: action => {
              this.$message({
                type: "success",
                message: `操作成功`
              });
              this.onLoad(this.page);
              done();
            }
          });
          if (res.data.code == 200) {
            this.$alert("账号为身份证号码,密码为身份证后六位", "温馨提示", {
              confirmButtonText: "确定",
              callback: action => {
                this.$message({
                  type: "success",
                  message: `操作成功`
                });
                this.onLoad(this.page);
                done();
              }
            });
          }
          //保安员证编号不匹配的情况
          if (res.data.code == 201) {
            this.$alert(
              "用户新增成功!账号为身份证号码,密码为身份证后六位!注:当前保安证编号不匹配,请核实!也可通过提供保安证件信息提交核实申请!",
              "温馨提示",
              {
                confirmButtonText: "确定",
                callback: action => {
                  this.$message({
                    type: "success",
                    message: `操作成功`
                  });
                  this.onLoad(this.page);
                  done();
                }
              }
            );
          }
        },
        error => {
          window.console.log(error);
@@ -2211,13 +2399,32 @@
        row["cell"] = this.nowCell;
      }
      update(row).then(
        () => {
        res => {
          this.initFlag = false;
          this.onLoad(this.page);
          this.$message({
            type: "success",
            message: "操作成功!"
          });
          if (res.data.code == 200) {
            this.$message({
              type: "success",
              message: "操作成功!"
            });
          }
          if (res.data.code == 201) {
            this.$alert(
              "修改成功!注:当前保安证编号不匹配,请核实!也可通过提供保安证件信息提交核实申请!",
              "温馨提示",
              {
                confirmButtonText: "确定",
                callback: action => {
                  this.$message({
                    type: "success",
                    message: `操作成功`
                  });
                  this.onLoad(this.page);
                  done();
                }
              }
            );
          }
          done();
        },
        error => {
@@ -2422,7 +2629,7 @@
    SFZopens() {
      if (this.haveSEL == "noDrive") {
        let url =
          "http://223.82.109.183:2081/zhba/upload/20211201/64d8b76f3aecae93e18d015bbca89aba.rar";
          "http://61.131.136.25:2081/zhba/upload/20211201/64d8b76f3aecae93e18d015bbca89aba.rar";
        window.open(url, "_self");
      } else if (this.haveSEL == "noEquipment") {
        this.radio = true;
@@ -2698,7 +2905,8 @@
              "/api/blade-user/import-security?deptId=" + this.deptIds;
          } else if (
            roleAlias == "公安管理员" ||
            roleAlias == "administrator"
            roleAlias == "administrator" ||
            this.userInfo.role_name == "民警"
          ) {
            params["jurisdiction"] = that.userInfo.jurisdiction;
            var ColumnDeptUpdate = that.findObject(that.option.group, "deptId");
@@ -2752,6 +2960,7 @@
            that.data = data.records;
            that.loading = false;
            that.selectionClear();
            that.$store.commit("setWindowSizeHeightAdd");
          });
        });
      });
@@ -3099,7 +3308,7 @@
.downSFZqudong {
  position: absolute;
  right: 239px;
  top: 153px;
  top: 93px;
  font-size: 14px;
  a {
    text-decoration: underline;