保安服务企业管理项目备份
zhongrj
2023-12-07 d26ceee3b71318604409dcb2825ebebb657eea82
保安员信息新增,修改查看修改
1 files modified
702 ■■■■■ changed files
src/views/securityGuard/securityGuard.vue 702 ●●●●● patch | view | raw | blame | history
src/views/securityGuard/securityGuard.vue
@@ -14,238 +14,94 @@
      </div>
    </el-col> -->
    <el-col :span="24">
      <basic-container
        :class="[
          screenSize == 1366 ? 'smallSize' : 'normalSize',
          $store.state.control.windowWidth >= 1024 ? 'tooRowSearch1' : ''
        ]"
      >
      <basic-container :class="[
        screenSize == 1366 ? 'smallSize' : 'normalSize',
        $store.state.control.windowWidth >= 1024 ? 'tooRowSearch1' : ''
      ]">
        <!-- :key="option.height" -->
        <avue-crud
          class="tablesss"
          :option="option"
          :search.sync="search"
          :table-loading="loading"
          :data="data"
          ref="crud"
          v-model="form"
          :permission="permissionList"
          @row-del="rowDel"
          :row-style="rowStyle"
          @row-save="rowSave"
          @row-update="rowUpdate"
          :before-open="beforeOpen"
          :page.sync="page"
          @sort-change="sortChange"
          @search-change="searchChange"
          @search-reset="searchReset"
          @selection-change="selectionChange"
          @current-change="currentChange"
          @size-change="sizeChange"
          @refresh-change="refreshChange"
          @on-load="onLoad"
          :upload-before="uploadBefore"
          :defaults.sync="defaults"
          :before-close="beforeClose"
        >
        <avue-crud class="tablesss" :option="option" :search.sync="search" :table-loading="loading" :data="data"
          ref="crud" v-model="form" :permission="permissionList" @row-del="rowDel" :row-style="rowStyle"
          @row-save="rowSave" @row-update="rowUpdate" :before-open="beforeOpen" :page.sync="page"
          @sort-change="sortChange" @search-change="searchChange" @search-reset="searchReset"
          @selection-change="selectionChange" @current-change="currentChange" @size-change="sizeChange"
          @refresh-change="refreshChange" @on-load="onLoad" :upload-before="uploadBefore" :defaults.sync="defaults"
          :before-close="beforeClose">
          <!-- @row-update="rowUpdate" -->
          <template slot="menuLeft">
            <el-button
              type="success"
              size="small"
              plain
              icon="el-icon-upload2"
              v-if="permission.securityGuard_import"
              @click="handleImport1"
              >保安员批量导入
            <el-button type="success" size="small" plain icon="el-icon-upload2" v-if="permission.securityGuard_import"
              @click="handleImport1">保安员批量导入
            </el-button>
            <el-button
              type="success"
              size="small"
              plain
              icon="el-icon-upload2"
              v-if="permission.securityGuard_import"
              @click="handleImport2"
              >个人照片批量上传
            <el-button type="success" size="small" plain icon="el-icon-upload2" v-if="permission.securityGuard_import"
              @click="handleImport2">个人照片批量上传
            </el-button>
            <el-button
              type="success"
              size="small"
              plain
              icon="el-icon-upload2"
              v-if="permission.securityGuard_import"
              @click="handleImportHealth"
              >健康状况图片(健康证)批量上传
            <el-button type="success" size="small" plain icon="el-icon-upload2" v-if="permission.securityGuard_import"
              @click="handleImportHealth">健康状况图片(健康证)批量上传
            </el-button>
            <el-button
              type="success"
              size="small"
              plain
              icon="el-icon-upload2"
              v-if="permission.securityGuard_import"
              @click="handleImportNoCriminal"
              >无犯罪记录图片批量上传
            <el-button type="success" size="small" plain icon="el-icon-upload2" v-if="permission.securityGuard_import"
              @click="handleImportNoCriminal">无犯罪记录图片批量上传
            </el-button>
            <el-button
              type="primary"
              style="display: none;"
              size="small"
              plain
              v-if="permission.securityGuard_security_apply"
              icon="el-icon-s-promotion"
              @click="handleSecurityApply"
              >上岗证制证申请
            <el-button type="primary" style="display: none;" size="small" plain
              v-if="permission.securityGuard_security_apply" icon="el-icon-s-promotion"
              @click="handleSecurityApply">上岗证制证申请
            </el-button>
            <el-button
              type="primary"
              style="display: none;"
              size="small"
              plain
              v-if="permission.securityGuard_security_paper_apply"
              icon="el-icon-collection-tag"
              @click="handleSecurityPaperApply"
              >证书制证申请
            <el-button type="primary" style="display: none;" size="small" plain
              v-if="permission.securityGuard_security_paper_apply" icon="el-icon-collection-tag"
              @click="handleSecurityPaperApply">证书制证申请
            </el-button>
            <el-button
              type="warning"
              size="small"
              plain
              icon="el-icon-download"
              v-if="permission.export_security_info"
              @click="handleExportSecurityInfo"
              >保安信息导出
            <el-button type="warning" size="small" plain icon="el-icon-download" v-if="permission.export_security_info"
              @click="handleExportSecurityInfo">保安信息导出
            </el-button>
            <el-button
              type="danger"
              size="small"
              plain
              icon="el-icon-delete"
              v-if="permission.securityGuard_delete"
              @click="handleDelete"
              >注 销
            <el-button type="danger" size="small" plain icon="el-icon-delete" v-if="permission.securityGuard_delete"
              @click="handleDelete">注 销
            </el-button>
            <el-button
              type="info"
              style="display: none"
              size="small"
              plain
              v-if="permission.user_role"
              icon="el-icon-user"
              @click="handleGrant"
              >角色配置
            <el-button type="info" style="display: none" size="small" plain v-if="permission.user_role"
              icon="el-icon-user" @click="handleGrant">角色配置
            </el-button>
            <el-button
              type="info"
              style="display: none"
              size="small"
              plain
              v-if="permission.user_reset"
              icon="el-icon-refresh"
              @click="handleReset"
              >密码重置
            <el-button type="info" style="display: none" size="small" plain v-if="permission.user_reset"
              icon="el-icon-refresh" @click="handleReset">密码重置
            </el-button>
            <el-button
              type="info"
              style="display: none"
              size="small"
              plain
              v-if="userInfo.role_name.includes('admin')"
              icon="el-icon-setting"
              @click="handlePlatform"
              >平台配置
            <el-button type="info" style="display: none" size="small" plain v-if="userInfo.role_name.includes('admin')"
              icon="el-icon-setting" @click="handlePlatform">平台配置
            </el-button>
            <el-button
              type="success"
              style="display: none"
              size="small"
              plain
              v-if="userInfo.role_name.includes('admin')"
              icon="el-icon-upload2"
              @click="handleImport"
              >导入
            <el-button type="success" style="display: none" size="small" plain v-if="userInfo.role_name.includes('admin')"
              icon="el-icon-upload2" @click="handleImport">导入
            </el-button>
            <el-button
              type="warning"
              style="display: none"
              size="small"
              plain
              v-if="userInfo.role_name.includes('admin')"
              icon="el-icon-download"
              @click="handleExport"
              >导出
            <el-button type="warning" style="display: none" size="small" plain v-if="userInfo.role_name.includes('admin')"
              icon="el-icon-download" @click="handleExport">导出
            </el-button>
          </template>
          <template slot-scope="{ type, size, row }" slot="menu">
            <el-tooltip
              placement="bottom"
              effect="light"
              transition="el-collapse-transition"
              popper-class="caozuolanpopper"
            >
            <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 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 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 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 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 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 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 icon="el-icon-money" :size="size" :type="type" v-if="permission.securityGuard_check_apply"
                  @click.stop="rowCheckApply(row)">证件核实申请
                </el-button>
                <!-- <br />
                <el-button
@@ -258,8 +114,7 @@
                  >纸质证书制作
                </el-button> -->
              </div>
              <el-button icon="el-icon-s-operation" :size="size" :type="type"
                >操作
              <el-button icon="el-icon-s-operation" :size="size" :type="type">操作
              </el-button>
            </el-tooltip>
@@ -310,11 +165,7 @@
            <el-tag v-if="row.sex == 2">女</el-tag>
          </template>
          <template slot-scope="{ row }" slot="deptId">
            <el-tag
              class="rowClickSelf"
              title="点击查看所属公司情况"
              @click="rowClickSelf(row.deptId)"
              >{{ row.deptName }}
            <el-tag class="rowClickSelf" title="点击查看所属公司情况" @click="rowClickSelf(row.deptId)">{{ row.deptName }}
            </el-tag>
          </template>
          <template slot-scope="{ row }" slot="unitName">
@@ -351,34 +202,14 @@
                zhiwenTitle
              }}</el-button>
              <el-button type="primary" @click="openccc">openccc</el-button>-->
              <iframe
                id="zhiwen"
                ref="zhiwen"
                src="/zhiwenDemo/CID.html"
                frameborder="0"
                width="100%"
                height="100%"
                name="zhiwen"
              ></iframe>
              <iframe id="zhiwen" ref="zhiwen" src="/zhiwenDemo/CID.html" frameborder="0" width="100%" height="100%"
                name="zhiwen"></iframe>
            </div>
          </template>
        </avue-crud>
        <el-dialog
          title="用户角色配置"
          append-to-body
          :visible.sync="roleBox"
          width="345px"
        >
          <el-tree
            :data="roleGrantList"
            show-checkbox
            check-strictly
            default-expand-all
            node-key="id"
            ref="treeRole"
            :default-checked-keys="roleTreeObj"
            :props="props"
          >
        <el-dialog title="用户角色配置" append-to-body :visible.sync="roleBox" width="345px">
          <el-tree :data="roleGrantList" show-checkbox check-strictly default-expand-all node-key="id" ref="treeRole"
            :default-checked-keys="roleTreeObj" :props="props">
          </el-tree>
          <span slot="footer" class="dialog-footer">
@@ -386,17 +217,8 @@
            <el-button type="primary" @click="submitRole">确 定</el-button>
          </span>
        </el-dialog>
        <el-dialog
          title="用户数据导入"
          append-to-body
          :visible.sync="excelBox"
          width="555px"
        >
          <avue-form
            :option="excelOption"
            v-model="excelForm"
            :upload-after="uploadAfter"
          >
        <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>
@@ -404,29 +226,13 @@
            </template>
          </avue-form>
        </el-dialog>
        <el-dialog
          title="用户平台配置"
          append-to-body
          :visible.sync="platformBox"
        >
          <avue-crud
            :option="platformOption"
            :table-loading="platformLoading"
            :data="platformData"
            ref="platformCrud"
            v-model="platformForm"
            :before-open="platformBeforeOpen"
            :page.sync="platformPage"
            :permission="platformPermissionList"
            @row-update="platformRowUpdate"
            @search-change="platformSearchChange"
            @search-reset="platformSearchReset"
            @selection-change="platformSelectionChange"
            @current-change="platformCurrentChange"
            @size-change="platformSizeChange"
            @refresh-change="platformRefreshChange"
            @on-load="platformOnLoad"
          >
        <el-dialog title="用户平台配置" append-to-body :visible.sync="platformBox">
          <avue-crud :option="platformOption" :table-loading="platformLoading" :data="platformData" ref="platformCrud"
            v-model="platformForm" :before-open="platformBeforeOpen" :page.sync="platformPage"
            :permission="platformPermissionList" @row-update="platformRowUpdate" @search-change="platformSearchChange"
            @search-reset="platformSearchReset" @selection-change="platformSelectionChange"
            @current-change="platformCurrentChange" @size-change="platformSizeChange"
            @refresh-change="platformRefreshChange" @on-load="platformOnLoad">
            <template slot-scope="{ row }" slot="tenantName">
              <el-tag>{{ row.tenantName }}</el-tag>
            </template>
@@ -435,17 +241,8 @@
            </template>
          </avue-crud>
        </el-dialog>
        <el-dialog
          title="保安员导入"
          append-to-body
          :visible.sync="excelBox1"
          width="555px"
        >
          <avue-form
            :option="excelOption1"
            v-model="excelForm1"
            :upload-after="uploadAfter1"
          >
        <el-dialog title="保安员导入" append-to-body :visible.sync="excelBox1" width="555px">
          <avue-form :option="excelOption1" v-model="excelForm1" :upload-after="uploadAfter1">
            <template slot="excelTemplate">
              <el-button type="primary" @click="handleTemplate1">
                点击下载<i class="el-icon-download el-icon--right"></i>
@@ -453,64 +250,24 @@
            </template>
          </avue-form>
        </el-dialog>
        <el-dialog
          title="个人照片批量上传"
          append-to-body
          :visible.sync="excelBox2"
          width="555px"
        >
          <avue-form
            :option="excelOption2"
            v-model="excelForm2"
            :upload-after="uploadAfter2"
          >
        <el-dialog title="个人照片批量上传" append-to-body :visible.sync="excelBox2" width="555px">
          <avue-form :option="excelOption2" v-model="excelForm2" :upload-after="uploadAfter2">
          </avue-form>
        </el-dialog>
        <el-dialog
          title="健康状况图片(健康证)批量上传"
          append-to-body
          :visible.sync="excelBoxHealth"
          width="555px"
        >
          <avue-form
            :option="excelOptionHealth"
            v-model="excelFormHealth"
            :upload-after="uploadAfterHealth"
          >
        <el-dialog title="健康状况图片(健康证)批量上传" append-to-body :visible.sync="excelBoxHealth" width="555px">
          <avue-form :option="excelOptionHealth" v-model="excelFormHealth" :upload-after="uploadAfterHealth">
          </avue-form>
        </el-dialog>
        <el-dialog
          title="无犯罪记录图片批量上传"
          append-to-body
          :visible.sync="excelBoxNoCriminal"
          width="555px"
        >
          <avue-form
            :option="excelOptionNoCriminal"
            v-model="excelFormNoCriminal"
            :upload-after="uploadAfterNoCriminal"
          >
        <el-dialog title="无犯罪记录图片批量上传" append-to-body :visible.sync="excelBoxNoCriminal" width="555px">
          <avue-form :option="excelOptionNoCriminal" v-model="excelFormNoCriminal" :upload-after="uploadAfterNoCriminal">
          </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"
        >
        <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 ref="formSecurityCheckApply" :option="optionSecurityCheckApply" v-model="formSecurityCheckApply"
              @reset-change="emptytChange" @submit="submitSecurityCheckApply">
            </avue-form>
          </div>
        </el-dialog>
@@ -536,12 +293,12 @@
              <div class="security_m_r_o_rightbirthday widt">
                {{
                  certificateObj.cardid
                    ? certificateObj.cardid.slice(6, 10) +
                      "." +
                      certificateObj.cardid.slice(10, 12) +
                      "." +
                      certificateObj.cardid.slice(12, 14)
                    : ""
                  ? certificateObj.cardid.slice(6, 10) +
                  "." +
                  certificateObj.cardid.slice(10, 12) +
                  "." +
                  certificateObj.cardid.slice(12, 14)
                  : ""
                }}
              </div>
              <div class="security_m_r_o_rightaddress security_m_r_o_l_r widt">
@@ -555,24 +312,15 @@
        </div>
      </basic-container>
    </el-col>
    <div
      :class="[
        'downSFZ',
        $store.state.control.windowWidth >= 1024
          ? 'downSFZqudong'
          : 'downSFZqudongS'
      ]"
    >
      <el-checkbox v-model="radio" :disabled="SFZloding"
        >使用身份证设备</el-checkbox
      >
      <el-button
        type="text"
        v-show="haveSEL == 'noDrive' || haveSEL == 'noEquipment'"
        @click="SFZopens"
        :loading="SFZloding"
        >{{ sfzButTitle }}</el-button
      >
    <div :class="[
      'downSFZ',
      $store.state.control.windowWidth >= 1024
        ? 'downSFZqudong'
        : 'downSFZqudongS'
    ]">
      <el-checkbox v-model="radio" :disabled="SFZloding">使用身份证设备</el-checkbox>
      <el-button type="text" v-show="haveSEL == 'noDrive' || haveSEL == 'noEquipment'" @click="SFZopens"
        :loading="SFZloding">{{ sfzButTitle }}</el-button>
      <!-- <div style="font-size: 14px">连接身份证设备失败</div> -->
      <!-- v-show="haveSEL == 'noDrive'" -->
      <!-- href="http://61.131.136.25:2081/zhba/upload/20211201/64d8b76f3aecae93e18d015bbca89aba.rar" -->
@@ -764,8 +512,8 @@
      }
    };
    return {
      excelBoxHealth:false,
      excelBoxNoCriminal:false,
      excelBoxHealth: false,
      excelBoxNoCriminal: false,
      startTimecc: null,
      sort: "",
      type: 2,
@@ -847,8 +595,8 @@
            propsHttp: {
              res: "data"
            },
            data:{
              type:1
            data: {
              type: 1
            },
            tip: "请上传 zip 压缩文件,照片文件名以身份证号码命名",
            action: "/api/blade-resource/oss/endpoint/put-file-zip"
@@ -871,8 +619,8 @@
            propsHttp: {
              res: "data"
            },
            data:{
              type:2
            data: {
              type: 2
            },
            tip: "请上传 zip 压缩文件,照片文件名以身份证号码命名",
            action: "/api/blade-resource/oss/endpoint/put-file-zip"
@@ -896,8 +644,8 @@
              res: "data"
            },
            //额外的参数
            data:{
              type:3
            data: {
              type: 3
            },
            tip: "请上传 zip 压缩文件,照片文件名以身份证号码命名",
            action: "/api/blade-resource/oss/endpoint/put-file-zip"
@@ -944,7 +692,7 @@
      treeOption: {
        nodeKey: "id",
        lazy: true,
        treeLoad: function(node, resolve) {
        treeLoad: function (node, resolve) {
          const parentId = node.level === 0 ? 0 : node.data.id;
          getDeptLazyTree(parentId).then(res => {
            resolve(
@@ -1270,21 +1018,21 @@
                label: "政治面貌",
                prop: "politicaloutlook"
              },
              {
                label: "联系地址",
                prop: "address"
              },
              {
                label: "身份证住址",
                prop: "registered",
                rules: [
                  {
                    required: true,
                    message: "请输入身份证住址",
                    trigger: "click"
                  }
                ]
              },
              // {
              //   label: "联系地址",
              //   prop: "address"
              // },
              // {
              //   label: "身份证住址",
              //   prop: "registered",
              //   rules: [
              //     {
              //       required: true,
              //       message: "请输入身份证住址",
              //       trigger: "click"
              //     }
              //   ]
              // },
              {
                label: "所属辖区",
                prop: "jurisdiction",
@@ -1350,7 +1098,17 @@
                  value: "dictKey"
                },
                dataType: "number",
                hide:true,
                hide: true,
              },
              {
                label: "居住地址",
                prop: "dwellAddress",
                hide: true,
              },
              {
                label: "户籍地址",
                prop: "permanentResidenceAddress",
                hide: true,
              },
              {
                label: "报考等级",
@@ -1363,38 +1121,48 @@
                  value: "dictKey"
                },
                dataType: "number",
                hide:true,
              },
              {
                label: "户籍地址",
                prop: "permanentResidenceAddress",
                hide:true,
              },
              {
                label: "居住地址",
                prop: "dwellAddress",
                hide:true,
                hide: true,
              },
              {
                label: "家庭主要成员及联系方式",
                prop: "memberOfFamily",
                type: "textarea",
                span:24,
                hide:true,
                span: 24,
                hide: true,
              },
              {
                label: "教育经历",
                prop: "educationExperience",
                type: "textarea",
                span:24,
                hide:true,
                span: 24,
                hide: true,
              },
              {
                label: "工作经历",
                prop: "workExperience",
                type: "textarea",
                span:24,
                hide:true,
                span: 24,
                hide: true,
              },
              {
                label: "受理公安机关",
                prop: "acceptancePoliceUnit",
                hide: true,
              },
              {
                label: "受理人",
                prop: "acceptancePerson",
                hide: true,
              },
              {
                label: "受理时间",
                prop: "acceptanceTime",
                type: "date",
                format: "yyyy-MM-dd",
                valueFormat: "yyyy-MM-dd",
                span: 12,
                row: true,
                hide: true,
              },
              {
                label: "健康状况图片(健康证)",
@@ -1411,7 +1179,7 @@
                },
                action: "/api/blade-resource/oss/endpoint/put-files",
                span: 12,
                hide:true,
                hide: true,
                labelWidth: 120,
              },
              {
@@ -1429,7 +1197,7 @@
                },
                action: "/api/blade-resource/oss/endpoint/put-files",
                span: 12,
                hide:true,
                hide: true,
                labelWidth: 120,
              },
            ]
@@ -1600,7 +1368,6 @@
          "securitynumber"
        );
        // var emailcolumn = this.findObject(this.option.group, "email");
        console.log(val, 1234);
        if (val == 1) {
          securitynumbercolumn.display = true;
          securitynumbercolumn.rules = [
@@ -1633,7 +1400,7 @@
        function sets(state, dom, fingerprint, myPicture) {
          isoks = state;
          dom.onload = function() {
          dom.onload = function () {
            // var winzhiwen = document.getElementById("zhiwen").contentWindow;
            var winzhiwen = dom.contentWindow;
            winzhiwen.setZhiwenData({
@@ -1732,7 +1499,7 @@
      userInfo: state => state.user.userInfo
    })
  },
  beforeCreate() {},
  beforeCreate() { },
  created() {
    var that = this;
    if (this.userInfo.role_name == "办证管理员") {
@@ -1864,7 +1631,7 @@
        fn: this.Client.CID_Init,
        CID5000: this.Client.CIDDeviceType.CID5000
      };
      this.Client.OnCID_Alg_Begin = function(code, msg) {
      this.Client.OnCID_Alg_Begin = function (code, msg) {
        //初始化机器返数据
        if (code == 1) {
          console.log("初始化成功");
@@ -1877,7 +1644,7 @@
          console.log("算法初始化发生错误   错误码:" + code);
        }
      };
      this.Client.OnCID_Close = function(code, msg) {
      this.Client.OnCID_Close = function (code, msg) {
        //关闭机器返数据
        if (code == 1) {
          console.log("关闭设备成功");
@@ -1893,7 +1660,7 @@
          console.log("关闭设备发生错误   错误码:" + code);
        }
      };
      this.Client.OnCID_BeginCapture = function(code, msg) {
      this.Client.OnCID_BeginCapture = function (code, msg) {
        //开始使用预览图片模式函数
        // console.log(code, "图片模式开始");
        if (code == 1) {
@@ -1902,7 +1669,7 @@
          console.log("开始采集发生错误   错误码:" + code);
        }
      };
      this.Client.OnCID_GetBmpData = function(code, msg, imagedata, feadata) {
      this.Client.OnCID_GetBmpData = function (code, msg, imagedata, feadata) {
        //使用预览图片模式 采集 BMP格式
        // console.log(msg, "图片模式采集");
        if (code == 1) {
@@ -1930,7 +1697,7 @@
      //     console.log("格式转换失败," + code + " " + msg);
      //   }
      // };
      this.Client.OnBmpToRaw = function(code, msg, imagedata) {
      this.Client.OnBmpToRaw = function (code, msg, imagedata) {
        //使用预览图片模式  BMP格式转换成RAW
        // console.log(code, msg, "BMP格式转换成RAW");
        if (code == 0) {
@@ -1943,7 +1710,7 @@
          alert("格式转换失败," + code + " " + msg);
        }
      };
      this.Client.OnCID_EndCapture = function(code, msg) {
      this.Client.OnCID_EndCapture = function (code, msg) {
        //使用预览图片模式  停止采集
        if (code == 1) {
          if (that.begin_cap) {
@@ -1954,7 +1721,7 @@
          console.log("停止采集发生错误   错误码:" + code);
        }
      };
      this.Client.OnCID_Alg_GetQualityScore = function(code, msg, score) {
      this.Client.OnCID_Alg_GetQualityScore = function (code, msg, score) {
        //停止获取
        console.log(
          "code:" + code + ";",
@@ -1984,7 +1751,7 @@
          console.log("获取质量分数发生错误   错误码:" + code);
        }
      };
      this.Client.OnCID_Alg_FeatureExtract = function(code, msg, featuredata) {
      this.Client.OnCID_Alg_FeatureExtract = function (code, msg, featuredata) {
        //获取特征
        if (code == 1) {
          that.zhiwenChart = featuredata;
@@ -2028,20 +1795,18 @@
      done();
    },
    handleTemplate1() {
      if (
        this.userInfo.account == "晋城市保安服务总公司" ||
        this.userInfo.account == "押运分公司"
      ) {
        window.open(
          `/api/blade-user/export-template-securityYy?${
            this.website.tokenHeader
          }=${getToken()}`
        );
        return;
      }
      // if (
      //   this.userInfo.account == "晋城市保安服务总公司" ||
      //   this.userInfo.account == "押运分公司"
      // ) {
      //   window.open(
      //     `/api/blade-user/export-template-securityYy?${this.website.tokenHeader
      //     }=${getToken()}`
      //   );
      //   return;
      // }
      window.open(
        `/api/blade-user/export-template-security?${
          this.website.tokenHeader
        `/api/blade-user/export-template-security?${this.website.tokenHeader
        }=${getToken()}`
      );
    },
@@ -2350,8 +2115,7 @@
        //序列号url形式,用&拼接
        data = Qs.stringify(data);
        window.open(
          `/api/blade-user/export-security-info?${
            this.website.tokenHeader
          `/api/blade-user/export-security-info?${this.website.tokenHeader
          }=${getToken()}&` + data
        );
      });
@@ -2380,7 +2144,6 @@
          avatar: row.avatar,
          // fingerprint: row.fingerprint,
          healstats: row.healstats,
          address: row.address,
          birthday: row.birthday,
          cardid: row.cardid,
          deptId: row.deptId,
@@ -2398,23 +2161,24 @@
          phone: row.phone,
          politicaloutlook: row.politicaloutlook,
          realName: row.realName,
          registered: row.registered,
          rtime: row.rtime,
          securitynumber: row.securitynumber,
          sex: row.sex,
          guncode: row.guncode,
          unitName: row.unitName
        },
        userDetail:{
          marriageStatus:row.marriageStatus,
          signLevel:row.signLevel,
          permanentResidenceAddress:row.permanentResidenceAddress,
          dwellAddress:row.dwellAddress,
          memberOfFamily:row.memberOfFamily,
          educationExperience:row.educationExperience,
          workExperience:row.workExperience,
          healthCertificateUrl:row.healthCertificateUrl,
          noCriminalRecordProveUrl:row.noCriminalRecordProveUrl
        userDetail: {
          marriageStatus: row.marriageStatus,
          signLevel: row.signLevel,
          permanentResidenceAddress: row.permanentResidenceAddress,
          dwellAddress: row.dwellAddress,
          memberOfFamily: row.memberOfFamily,
          educationExperience: row.educationExperience,
          workExperience: row.workExperience,
          healthCertificateUrl: row.healthCertificateUrl,
          noCriminalRecordProveUrl: row.noCriminalRecordProveUrl,
          acceptancePoliceUnit: row.acceptancePoliceUnit,
          acceptancePerson: row.acceptancePerson,
          acceptanceTime: row.acceptanceTime,
          unitName: row.unitName,
        }
      };
@@ -2479,7 +2243,7 @@
      }
      const userMap = {
        user: {
          id:row.id,
          id: row.id,
          //是否是身份证自动识别进入
          cell: row.cell,
          //指纹↓
@@ -2489,7 +2253,6 @@
          account: row.account,
          avatar: row.avatar,
          healstats: row.healstats,
          address: row.address,
          birthday: row.birthday,
          cardid: row.cardid,
          deptId: row.deptId,
@@ -2504,25 +2267,26 @@
          phone: row.phone,
          politicaloutlook: row.politicaloutlook,
          realName: row.realName,
          registered: row.registered,
          rtime: row.rtime,
          securitynumber: row.securitynumber,
          sex: row.sex,
          guncode: row.guncode,
          unitName: row.unitName
          guncode: row.guncode
        },
        userDetail:{
          id:row.userDetailId,
          userId:row.id,
          marriageStatus:row.marriageStatus,
          signLevel:row.signLevel,
          permanentResidenceAddress:row.permanentResidenceAddress,
          dwellAddress:row.dwellAddress,
          memberOfFamily:row.memberOfFamily,
          educationExperience:row.educationExperience,
          workExperience:row.workExperience,
          healthCertificateUrl:row.healthCertificateUrl,
          noCriminalRecordProveUrl:row.noCriminalRecordProveUrl
        userDetail: {
          id: row.userDetailId,
          userId: row.id,
          marriageStatus: row.marriageStatus,
          signLevel: row.signLevel,
          permanentResidenceAddress: row.permanentResidenceAddress,
          dwellAddress: row.dwellAddress,
          memberOfFamily: row.memberOfFamily,
          educationExperience: row.educationExperience,
          workExperience: row.workExperience,
          healthCertificateUrl: row.healthCertificateUrl,
          noCriminalRecordProveUrl: row.noCriminalRecordProveUrl,
          acceptancePoliceUnit: row.acceptancePoliceUnit,
          acceptancePerson: row.acceptancePerson,
          acceptanceTime: row.acceptanceTime,
          unitName: row.unitName,
        }
      };
      update(userMap).then(
@@ -2566,7 +2330,7 @@
        "离职原因",
        {
          confirmButtonText: "确定",
          callback: action => {}
          callback: action => { }
        }
      );
    },
@@ -2588,7 +2352,7 @@
          });
          this.refreshChange();
        })
        .catch(() => {});
        .catch(() => { });
    },
    rowDel(row) {
      this.$confirm("确定注销当前用户?", {
@@ -2727,18 +2491,15 @@
        type: "warning"
      }).then(() => {
        window.open(
          `/api/blade-user/export-user?${
            this.website.tokenHeader
          }=${getToken()}&account=${this.search.account}&realName=${
            this.search.realName
          `/api/blade-user/export-user?${this.website.tokenHeader
          }=${getToken()}&account=${this.search.account}&realName=${this.search.realName
          }`
        );
      });
    },
    handleTemplate() {
      window.open(
        `/api/blade-user/export-template?${
          this.website.tokenHeader
        `/api/blade-user/export-template?${this.website.tokenHeader
        }=${getToken()}`
      );
    },
@@ -2813,9 +2574,9 @@
        }
      });
    },
    setIntervals: function() {
    setIntervals: function () {
      let that = this;
      this.intTime = setInterval(function() {
      this.intTime = setInterval(function () {
        if (!that.haveCardid) {
          //定时读卡
          // console.log(that.haveCardid);
@@ -2924,6 +2685,10 @@
            this.form.workExperience = this.form.userDetail.workExperience;
            this.form.healthCertificateUrl = this.form.userDetail.healthCertificateUrl;
            this.form.noCriminalRecordProveUrl = this.form.userDetail.noCriminalRecordProveUrl;
            this.form.acceptancePoliceUnit = this.form.userDetail.acceptancePoliceUnit;
            this.form.acceptancePerson = this.form.userDetail.acceptancePerson;
            this.form.acceptanceTime = this.form.userDetail.acceptanceTime;
            this.form.unitName = this.form.userDetail.unitName;
          }
          // this.from["education1"] = res.data.data.education;
          if (this.form.hasOwnProperty("deptId")) {
@@ -3021,7 +2786,7 @@
            // column.search = false;
            // column.dicUrl =
            //   "/api/blade-system/dept/security_lazy-tree?deptId="+that.userInfo.dept_id;
            const deptColumn = that.findObject(that.option.group, "deptId");
            const deptColumn = that.findObject(that.option.group, "deptId");-
            deptColumn.dicUrl =
              "/api/blade-system/dept/security_lazy-tree?deptId=" +
              that.userInfo.dept_id;
@@ -3246,6 +3011,7 @@
// 标题
$upTop: 45px;
$downTop: 265px; //整体高度
//经国家保安员考试审查合格。<br />特颁此证。
.security_main-title {
  position: absolute;
@@ -3275,6 +3041,7 @@
$rightWidth: 77px;
$lineHigeht: 30px;
//姓名
.security_m_r_a {
  position: absolute;
@@ -3344,6 +3111,7 @@
//发证时间
$timeTop: 315px; //整体高度
//年
.security_m_l_titlepaperTimenian {
  position: absolute;
@@ -3378,6 +3146,7 @@
//内容
// 姓名
$centerLeft: 458px;
.security_m_r_o_right {
  position: absolute;
  top: $downTop + $lineHigeht * 0+18px;
@@ -3449,20 +3218,25 @@
  right: 239px;
  top: 93px;
  font-size: 14px;
  a {
    text-decoration: underline;
    &:hover {
      color: rgb(36, 143, 231);
    }
  }
}
.downSFZqudongS {
  position: absolute;
  right: 30px;
  top: 10px;
  font-size: 14px;
  a {
    text-decoration: underline;
    &:hover {
      color: rgb(36, 143, 231);
    }