From 92d0cf73df170131eba84490d875bc954eb7a708 Mon Sep 17 00:00:00 2001
From: Administrator <admin>
Date: Wed, 11 Aug 2021 20:41:58 +0800
Subject: [PATCH] 报名考试修改

---
 src/views/securityGuard/securityGuard.vue | 1069 ++++++++++++++++++++++++++++++++++++----------------------
 1 files changed, 659 insertions(+), 410 deletions(-)

diff --git a/src/views/securityGuard/securityGuard.vue b/src/views/securityGuard/securityGuard.vue
index 2de491f..ed4b4c3 100644
--- a/src/views/securityGuard/securityGuard.vue
+++ b/src/views/securityGuard/securityGuard.vue
@@ -1,219 +1,246 @@
 <template>
-  <div class="ours">
-    <!-- <add-or-update v-if="addOrUpdateVisiable" ref="addOrUpdate"></add-or-update> -->
-    <add-or-update ref="addOrUpdate"></add-or-update>
-    <el-row>
-      <el-col :span="0" style="display: none">
-        <div class="box">
-          <el-scrollbar>
-            <basic-container>
-              <avue-tree
-                :option="treeOption"
-                :data="treeData"
-                @node-click="nodeClick"
-              />
-            </basic-container>
-          </el-scrollbar>
-        </div>
-      </el-col>
-      <el-col :span="24">
-        <basic-container>
-          <avue-crud
-            :option="option"
-            :search.sync="search"
-            :table-loading="loading"
-            :data="data"
-            ref="crud"
-            v-model="form"
-            :permission="permissionList"
-            @row-del="rowDel"
-            @row-update="rowUpdate"
-            @row-save="rowSave"
-            @row-click="rowClick"
-            :before-open="beforeOpen"
-            :page.sync="page"
-            @search-change="searchChange"
-            @search-reset="searchReset"
-            @selection-change="selectionChange"
-            @current-change="currentChange"
-            @size-change="sizeChange"
-            @refresh-change="refreshChange"
-            @on-load="onLoad"
-          >
-            <template slot="menuLeft">
-              <el-button
-                type="danger"
-                style="display: none"
-                size="small"
-                plain
-                icon="el-icon-delete"
-                v-if="permission.user_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>
-              <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>
-              <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>
-            </template>
+  <el-row class="securityGuard">
+    <el-col :span="0" style="display: none">
+      <div class="box">
+        <el-scrollbar>
+          <basic-container>
+            <avue-tree
+              :option="treeOption"
+              :data="treeData"
+              @node-click="nodeClick"
+            />
+          </basic-container>
+        </el-scrollbar>
+      </div>
+    </el-col>
+    <el-col :span="24">
+      <basic-container>
+        <avue-crud
+          :option="option"
+          :search.sync="search"
+          :table-loading="loading"
+          :data="data"
+          ref="crud"
+          v-model="form"
+          :permission="permissionList"
+          @row-del="rowDel"
+          @row-update="rowUpdate"
+          @row-save="rowSave"
+          @row-click="rowClick"
+          :before-open="beforeOpen"
+          :page.sync="page"
+          @search-change="searchChange"
+          @search-reset="searchReset"
+          @selection-change="selectionChange"
+          @current-change="currentChange"
+          @size-change="sizeChange"
+          @refresh-change="refreshChange"
+          @on-load="onLoad"
+        >
+          <template slot="menuLeft">
+            <el-button
+              type="success"
+              size="small"
+              plain
+              icon="el-icon-upload2"
+              @click="handleImport1"
+              >批量导入
+            </el-button>
+            <el-button
+              type="danger"
+              style="display: none"
+              size="small"
+              plain
+              icon="el-icon-delete"
+              v-if="permission.user_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>
+            <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>
+            <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>
+          </template>
 
-            <template slot-scope="{ type, size, row }" slot="menu">
-              <el-button
+          <template slot-scope="{ type, size, row }" slot="menu">
+            <!-- <el-button
+                style="display:none"
                 icon="el-icon-edit"
                 :size="size"
                 :type="type"
-                @click.stop="addOrUpdateHandle(row)"
+                @click.stop="addOrUpdateHandle(row.id)"
                 >修改
-              </el-button>
-              <el-button
-                icon="el-icon-edit"
-                :size="size"
-                :type="type"
-                @click.stop="rowDel(row)"
-                >离职登记
+              </el-button> -->
+            <el-button
+              icon="el-icon-edit"
+              :size="size"
+              :type="type"
+              @click.stop="rowDel(row)"
+              >离职登记
+            </el-button>
+          </template>
+
+          <template slot-scope="{ row }" slot="sex">
+            <el-tag v-if="row.sex == 1">男</el-tag>
+            <el-tag v-if="row.sex == 2">女</el-tag>
+          </template>
+
+          <template slot-scope="{ row }" slot="tenantName">
+            <el-tag>{{ row.tenantName }}</el-tag>
+          </template>
+          <template slot-scope="{ row }" slot="roleName">
+            <el-tag>{{ row.roleName }}</el-tag>
+          </template>
+          <template slot-scope="{ row }" slot="deptName">
+            <el-tag>{{ row.deptName }}</el-tag>
+          </template>
+          <template slot-scope="{ row }" slot="userTypeName">
+            <el-tag>{{ row.userTypeName }}</el-tag>
+          </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-tree>
+
+          <span slot="footer" class="dialog-footer">
+            <el-button @click="roleBox = false">取 消</el-button>
+            <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"
+          >
+            <template slot="excelTemplate">
+              <el-button type="primary" @click="handleTemplate">
+                点击下载<i class="el-icon-download el-icon--right"></i>
               </el-button>
             </template>
-
+          </avue-form>
+        </el-dialog>
+        <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>
-            <template slot-scope="{ row }" slot="roleName">
-              <el-tag>{{ row.roleName }}</el-tag>
-            </template>
-            <template slot-scope="{ row }" slot="deptName">
-              <el-tag>{{ row.deptName }}</el-tag>
             </template>
             <template slot-scope="{ row }" slot="userTypeName">
               <el-tag>{{ row.userTypeName }}</el-tag>
             </template>
           </avue-crud>
-          <el-dialog
-            title="用户角色配置"
-            append-to-body
-            :visible.sync="roleBox"
-            width="345px"
+        </el-dialog>
+        <el-dialog
+          title="保安员导入"
+          append-to-body
+          :visible.sync="excelBox1"
+          width="555px"
+        >
+          <avue-form
+            :option="excelOption1"
+            v-model="excelForm1"
+            :upload-after="uploadAfter1"
           >
-            <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">
-              <el-button @click="roleBox = false">取 消</el-button>
-              <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"
-            >
-              <template slot="excelTemplate">
-                <el-button type="primary" @click="handleTemplate">
-                  点击下载<i class="el-icon-download el-icon--right"></i>
-                </el-button>
-              </template>
-            </avue-form>
-          </el-dialog>
-          <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>
-              <template slot-scope="{ row }" slot="userTypeName">
-                <el-tag>{{ row.userTypeName }}</el-tag>
-              </template>
-            </avue-crud>
-          </el-dialog>
-        </basic-container>
-      </el-col>
-    </el-row>
-  </div>
+            <template slot="excelTemplate">
+              <el-button type="primary" @click="handleTemplate1">
+                点击下载<i class="el-icon-download el-icon--right"></i>
+              </el-button>
+            </template>
+          </avue-form>
+        </el-dialog>
+      </basic-container>
+    </el-col>
+  </el-row>
 </template>
 
 <script>
 import {
-  getList,
   getUser,
   getUserPlatform,
   remove,
@@ -223,20 +250,18 @@
   grant,
   resetPassword,
   getUserPractitionersInfo,
+  saveOrUpdateUserPractitionersInfo,
 } from "@/api/system/user";
-import { getDeptTree, getDeptLazyTree } from "@/api/system/dept";
+import { getList } from "@/api/securityGuard/securityGuard";
+import { getDeptLazyTree } from "@/api/system/dept";
 import { getRoleTree } from "@/api/system/role";
 import { getPostList } from "@/api/system/post";
 import { mapGetters } from "vuex";
 import website from "@/config/website";
 import { getToken } from "@/util/auth";
-import { securityFormPageColumn, securityBaseInfoColumns } from "./data";
+import { securityFormPageColumn } from "./data";
 
-import addOrUpdate from "./securityGuardRegistration.vue";
 export default {
-  components: {
-    addOrUpdate,
-  },
   data() {
     const validatePass = (rule, value, callback) => {
       if (value === "") {
@@ -255,7 +280,34 @@
       }
     };
     return {
-      floats: false,
+      excelBox1: false,
+      excelForm1: {},
+      excelOption1: {
+        submitBtn: false,
+        emptyBtn: false,
+        column: [
+          {
+            label: "文件上传",
+            prop: "excelFile",
+            type: "upload",
+            drag: true,
+            loadText: "文件上传中,请稍等",
+            span: 24,
+            propsHttp: {
+              res: "data",
+            },
+            tip: "请上传 .xls,.xlsx 标准格式文件",
+            action: "/api/examSubjectChoices/import-examSubject",
+          },
+          {
+            label: "模板下载",
+            prop: "excelTemplate",
+            formslot: true,
+            span: 24,
+          },
+        ],
+      },
+
       form: {},
       search: {},
       roleBox: false,
@@ -264,7 +316,6 @@
       initFlag: true,
       selectionList: [],
       query: {},
-      addOrUpdateVisiable: false,
       loading: true,
       platformLoading: false,
       page: {
@@ -272,6 +323,8 @@
         currentPage: 1,
         total: 0,
       },
+      roleId: "1412226235153731586",
+      deptId: "1413470343230877697",
       platformPage: {
         pageSize: 10,
         currentPage: 1,
@@ -323,10 +376,12 @@
         searchMenuSpan: 6,
         border: false,
         stripe: true,
+        align: "center",
         index: true,
         delBtnText: "注销",
         selection: true,
         viewBtn: true,
+        defaultExpandAll: true,
         //dialogType: 'drawer',
         dialogClickModal: false,
         column: securityFormPageColumn,
@@ -338,26 +393,25 @@
             icon: "el-icon-user-solid",
             column: [
               {
-                label: "所属保安单位",
-                prop: "tenantId",
+                label: "所属保安公司",
+                prop: "deptId",
                 type: "tree",
-                dicUrl: "/api/blade-system/tenant/select",
+                dicUrl:
+                  "/api/blade-system/dept/security_lazy-tree?parentId=1413470343230877697",
+                // dicUrl: "/api/blade-system/dept/lazy-tree?parentId=0",
                 props: {
-                  label: "tenantName",
-                  value: "tenantId",
+                  label: "title",
+                  value: "id",
                 },
-                hide: !website.tenantMode,
-                addDisplay: website.tenantMode,
-                editDisplay: website.tenantMode,
-                viewDisplay: website.tenantMode,
+                // disabled: true,
+                span: 24,
                 rules: [
                   {
                     required: true,
-                    message: "请输入所属保安单位",
-                    trigger: "click",
+                    message: "请选择保安公司",
+                    trigger: "blur",
                   },
                 ],
-                span: 24,
               },
               {
                 label: "登录账号",
@@ -369,25 +423,7 @@
                     trigger: "blur",
                   },
                 ],
-              },
-              {
-                label: "用户平台",
-                type: "select",
-                dicUrl: "/api/blade-system/dict/dictionary?code=user_type",
-                props: {
-                  label: "dictValue",
-                  value: "dictKey",
-                },
-                dataType: "number",
-                slot: true,
-                prop: "userType",
-                rules: [
-                  {
-                    required: true,
-                    message: "请选择用户平台",
-                    trigger: "blur",
-                  },
-                ],
+                // disabled: true,
               },
               {
                 label: "密码",
@@ -409,33 +445,13 @@
                   { required: true, validator: validatePass2, trigger: "blur" },
                 ],
               },
-            ],
-          },
-          {
-            label: "详细信息",
-            labelWidth: "110",
-            prop: "detailInfo",
-            icon: "el-icon-s-order",
-            column: [
               {
-                label: "用户昵称",
-                prop: "name",
-                hide: true,
-                rules: [
-                  {
-                    required: true,
-                    message: "请输入用户昵称",
-                    trigger: "blur",
-                  },
-                ],
-              },
-              {
-                label: "用户姓名",
+                label: "姓名",
                 prop: "realName",
                 rules: [
                   {
                     required: true,
-                    message: "请输入用户姓名",
+                    message: "请输入姓名",
                     trigger: "blur",
                   },
                   {
@@ -446,61 +462,50 @@
                 ],
               },
               {
-                label: "手机号码",
-                prop: "phone",
-                overHidden: true,
+                label: "个人照片",
+                type: "upload",
+                listType: "picture-img",
+                propsHttp: {
+                  res: "data",
+                  url: "link",
+                },
+                canvasOption: {
+                  text: " ",
+                  ratio: 0.1,
+                },
+                action: "/api/blade-resource/oss/endpoint/put-file",
+                tip: "只能上传jpg/png个人头像,且不超过500kb",
+                span: 12,
+                row: true,
+                prop: "myPicture",
               },
               {
-                label: "电子邮箱",
-                prop: "email",
-                hide: true,
-                overHidden: true,
+                label: "编号",
+                prop: "code",
               },
               {
-                label: "用户性别",
-                prop: "sex",
-                type: "select",
-                dicData: [
+                label: "昵称",
+                prop: "name",
+              },
+              {
+                label: "所属辖区",
+                prop: "jurisdiction",
+                // multiple: true,
+                type: "tree",
+                dicUrl: "/api/jurisdiction/lazy-tree?parentId=0",
+                props: {
+                  label: "title",
+                  value: "id",
+                },
+                checkStrictly: true,
+                slot: true,
+                rules: [
                   {
-                    label: "男",
-                    value: 1,
-                  },
-                  {
-                    label: "女",
-                    value: 2,
-                  },
-                  {
-                    label: "未知",
-                    value: 3,
+                    required: true,
+                    message: "请选择所属辖区",
+                    trigger: "click",
                   },
                 ],
-                hide: true,
-              },
-              {
-                label: "用户生日",
-                type: "date",
-                prop: "birthday",
-                format: "yyyy-MM-dd hh:mm:ss",
-                valueFormat: "yyyy-MM-dd hh:mm:ss",
-                hide: true,
-              },
-              {
-                label: "账号状态",
-                prop: "statusName",
-                hide: true,
-                display: false,
-              },
-            ],
-          },
-          {
-            label: "职责信息",
-            labelWidth: "110",
-            prop: "dutyInfo",
-            icon: "el-icon-s-custom",
-            column: [
-              {
-                label: "用户编号",
-                prop: "code",
               },
               {
                 label: "所属角色",
@@ -522,25 +527,6 @@
                 ],
               },
               {
-                label: "所属部门",
-                prop: "deptId",
-                type: "tree",
-                multiple: true,
-                dicData: [],
-                props: {
-                  label: "title",
-                },
-                checkStrictly: true,
-                slot: true,
-                rules: [
-                  {
-                    required: true,
-                    message: "请选择所属部门",
-                    trigger: "click",
-                  },
-                ],
-              },
-              {
                 label: "所属岗位",
                 prop: "postId",
                 type: "tree",
@@ -552,11 +538,211 @@
                 },
                 rules: [
                   {
-                    required: true,
+                    required: false,
                     message: "请选择所属岗位",
                     trigger: "click",
                   },
                 ],
+              },
+              {
+                label: "是否持证",
+                prop: "hold",
+                dicUrl: "/api/blade-system/dict-biz/dictionary?code=equipage",
+                props: {
+                  label: "dictValue",
+                  value: "dictKey",
+                },
+                type: "select",
+                rules: [
+                  {
+                    required: true,
+                    message: "请选择",
+                    trigger: "blur",
+                  },
+                ],
+              },
+              {
+                label: "保安员证编号",
+                prop: "securitynumber",
+                hide: true,
+              },
+              {
+                label: "手机号码",
+                prop: "phone",
+                overHidden: true,
+                rules: [
+                  {
+                    required: true,
+                    message: "请输入手机号",
+                    trigger: "blur",
+                  },
+                ],
+              },
+              {
+                label: "电子邮箱",
+                prop: "email",
+              },
+              {
+                label: "身份证号",
+                prop: "cardid",
+                hide: true,
+                overHidden: true,
+                rules: [
+                  {
+                    required: true,
+                    message: "请输入身份证号",
+                    trigger: "blur",
+                  },
+                ],
+              },
+              {
+                label: "籍贯",
+                prop: "nativeplace",
+              },
+              {
+                label: "民族",
+                prop: "nation",
+              },
+              {
+                label: "最高学历",
+                prop: "education1",
+                type: "select",
+                dicUrl:
+                  "/api/blade-system/dict-biz/dictionary?code=educationType",
+                props: {
+                  label: "dictValue",
+                  value: "dictKey",
+                },
+                dataType: "number",
+                slot: true,
+              },
+              {
+                label: "政治面貌",
+                prop: "politicaloutlook",
+              },
+              {
+                label: "身高",
+                prop: "height",
+              },
+              {
+                label: "联系地址",
+                prop: "address",
+              },
+              {
+                label: "户口所在地",
+                prop: "registered",
+              },
+              {
+                label: "入职时间",
+                prop: "rtime",
+                type: "date",
+                format: "yyyy-MM-dd",
+                valueFormat: "yyyy-MM-dd",
+              },
+              {
+                label: "性别",
+                prop: "sex",
+                type: "select",
+                slot: true,
+                dicData: [
+                  {
+                    label: "男",
+                    value: 1,
+                  },
+                  {
+                    label: "女",
+                    value: 2,
+                  },
+                  // {
+                  //   label: "未知",
+                  //   value: 3,
+                  // },
+                ],
+              },
+              {
+                label: "生日",
+                type: "date",
+                prop: "birthday",
+                format: "yyyy-MM-dd",
+                valueFormat: "yyyy-MM-dd",
+              },
+            ],
+          },
+          {
+            label: "从业信息",
+            prop: "detailInfo",
+            icon: "el-icon-s-order",
+            column: [
+              {
+                prop: "UserPractitionersInfo",
+                type: "dynamic",
+                border: false,
+                span: 24,
+                children: {
+                  align: "left",
+                  headerAlign: "center",
+                  type: "form",
+                  rowAdd: (done) => {
+                    console.log(done, 111);
+                    done({
+                      input: "默认值",
+                    });
+                  },
+                  rowDel: (row, done) => {
+                    console.log(row, 222);
+                    done();
+                  },
+                  column: [
+                    {
+                      width: 200,
+                      label: "单位名称",
+                      prop: "companyname",
+                      formslot: true,
+                    },
+                    {
+                      width: 200,
+                      label: "部门",
+                      prop: "department",
+                      formslot: true,
+                    },
+                    {
+                      width: 200,
+                      label: "岗位",
+                      prop: "post",
+                      formslot: true,
+                    },
+                    {
+                      width: 200,
+                      label: "岗位职责",
+                      prop: "responsibilities",
+                      formslot: true,
+                    },
+                    {
+                      width: 200,
+                      label: "入职时间",
+                      type: "date",
+                      format: "yyyy-MM-dd",
+                      valueFormat: "yyyy-MM-dd",
+                      prop: "entryTime",
+                      formslot: true,
+                    },
+                    {
+                      width: 200,
+                      label: "离职时间",
+                      type: "date",
+                      format: "yyyy-MM-dd",
+                      valueFormat: "yyyy-MM-dd",
+                      prop: "departureTime",
+                      formslot: true,
+                    },
+                    {
+                      width: 200,
+                      label: "离职原因",
+                      prop: "leaving",
+                      formslot: true,
+                    },
+                  ],
+                },
               },
             ],
           },
@@ -592,19 +778,19 @@
             display: false,
           },
           {
-            label: "用户姓名",
+            label: "姓名",
             prop: "realName",
             search: true,
             display: false,
           },
           {
-            label: "用户平台",
+            label: "平台",
             prop: "userTypeName",
             slot: true,
             display: false,
           },
           {
-            label: "用户平台",
+            label: "平台",
             type: "select",
             dicUrl: "/api/blade-system/dict/dictionary?code=user_type",
             props: {
@@ -619,13 +805,13 @@
             rules: [
               {
                 required: true,
-                message: "请选择用户平台",
+                message: "请选择平台",
                 trigger: "blur",
               },
             ],
           },
           {
-            label: "用户拓展",
+            label: "拓展",
             prop: "userExt",
             type: "textarea",
             minRows: 8,
@@ -696,6 +882,9 @@
         this.initData(this.form.tenantId);
       }
     },
+    "form.deptId"() {
+      this.initData(this.form.tenantId);
+    },
     "excelForm.isCovered"() {
       if (this.excelForm.isCovered !== "") {
         const column = this.findObject(this.excelOption.column, "excelFile");
@@ -710,7 +899,7 @@
         addBtn: this.vaildData(this.permission.user_add, false),
         viewBtn: this.vaildData(null, false),
         delBtn: this.vaildData(null, false),
-        editBtn: this.vaildData(null, false),
+        editBtn: this.vaildData(this.permission.user_edit, false),
       };
     },
     platformPermissionList() {
@@ -736,40 +925,24 @@
     }
   },
   methods: {
-    //行点击事件
-      rowClick(row) {
-        this.$router.push({
-          path: "/securityGuard/securityGuardDetail",
-          query: { row: row },
-        });
-      },
-    //新增或修改
-    addOrUpdateHandle(row) {
-      this.$nextTick(() => {
-          this.$refs.addOrUpdate.inits(row.id);
-      });
+    handleImport1() {
+      this.excelBox1 = true;
     },
-    closeOrUpdateHandle(row) {
-      this.floats = row;
+    uploadAfter1(res, done, loading, column) {
+      window.console.log(column);
+      this.excelBox1 = false;
+      // this.refreshChange();
+      done();
+    },
+    handleTemplate1() {
+      window.open(`/api/examSubjectChoices/export-template`);
     },
 
-    //获取用户信息
-    getUserDetail() {
-      var that = this;
-      //获取用户基本信息
-      getUser(this.userId).then((res) => {
-        this.form = res.data.data;
-        var userInfo = res.data.data;
-        //获取用户从业信息
-        getUserPractitionersInfo(userInfo.cardid).then((res1) => {
-          that.form.UserPractitionersInfo = res1.data.data;
-        });
-        if (this.form.hasOwnProperty("deptId")) {
-          this.form.deptId = this.form.deptId.split(",");
-        }
-        if (this.form.hasOwnProperty("postId")) {
-          this.form.postId = this.form.postId.split(",");
-        }
+    //行点击事件
+    rowClick(row) {
+      this.$router.push({
+        path: "/securityGuardDetail",
+        query: { row: JSON.stringify(row) },
       });
     },
     nodeClick(data) {
@@ -782,10 +955,10 @@
         const column = this.findObject(this.option.group, "roleId");
         column.dicData = res.data.data;
       });
-      getDeptTree(tenantId).then((res) => {
-        const column = this.findObject(this.option.group, "deptId");
-        column.dicData = res.data.data;
-      });
+      // getDeptTree(tenantId).then((res) => {
+      //   const column = this.findObject(this.option.group, "deptId");
+      //   column.dicData = res.data.data;
+      // });
       getPostList(tenantId).then((res) => {
         const column = this.findObject(this.option.group, "postId");
         column.dicData = res.data.data;
@@ -803,17 +976,53 @@
       });
     },
     rowSave(row, done, loading) {
-      row.deptId = row.deptId.join(",");
-      row.roleId = row.roleId.join(",");
-      row.postId = row.postId.join(",");
+      if (row.deptId) {
+        row.deptId = row.deptId;
+      }
+      if (row.roleId) {
+        row.roleId = row.roleId.join(",");
+      }
+      if (row.postId) {
+        row.postId = row.postId.join(",");
+      }
+      const userPractitionersList = [];
+      var userPractitionersInfo = row.UserPractitionersInfo;
+      if (userPractitionersInfo.length > 0) {
+        userPractitionersInfo.forEach((item) => {
+          const info = {
+            companyname: item.companyname,
+            department: item.department,
+            departureTime: item.departureTime,
+            entryTime: item.entryTime,
+            name: row.realName,
+            leaving: item.leaving,
+            securityid: row.id,
+            post: item.post,
+            responsibilities: item.responsibilities,
+          };
+          userPractitionersList.push(info);
+        });
+      }
+      var IdCardNo = row.id;
       add(row).then(
         () => {
+          const experience = {
+            securityid: IdCardNo,
+            userPractitionersInfo: userPractitionersList,
+          };
+          //新增从业信息
+          saveOrUpdateUserPractitionersInfo(experience).then(() => {
+            this.$message({
+              type: "success",
+              message: "操作成功!",
+            });
+          });
           this.initFlag = false;
           this.onLoad(this.page);
-          this.$message({
-            type: "success",
-            message: "操作成功!",
-          });
+          // this.$message({
+          //   type: "success",
+          //   message: "操作成功!",
+          // });
           done();
         },
         (error) => {
@@ -823,17 +1032,49 @@
       );
     },
     rowUpdate(row, index, done, loading) {
-      row.deptId = row.deptId.join(",");
+      row.deptId = row.deptId;
       row.roleId = row.roleId.join(",");
       row.postId = row.postId.join(",");
+      const userPractitionersList = [];
+      var userPractitionersInfo = row.UserPractitionersInfo;
+      if (userPractitionersInfo.length > 0) {
+        userPractitionersInfo.forEach((item) => {
+          const info = {
+            companyname: item.companyname,
+            department: item.department,
+            departureTime: item.departureTime,
+            entryTime: item.entryTime,
+            name: row.realName,
+            leaving: item.leaving,
+            securityid: row.id,
+            post: item.post,
+            responsibilities: item.responsibilities,
+          };
+          userPractitionersList.push(info);
+        });
+      }
+      var IdCardNo = row.id;
+      //值替换,education 放在页面会卡死
+      row.education = row.education1;
       update(row).then(
         () => {
+          const experience = {
+            securityid: IdCardNo,
+            userPractitionersInfo: userPractitionersList,
+          };
+          //更新从业信息
+          saveOrUpdateUserPractitionersInfo(experience).then(() => {
+            this.$message({
+              type: "success",
+              message: "操作成功!",
+            });
+          });
           this.initFlag = false;
           this.onLoad(this.page);
-          this.$message({
-            type: "success",
-            message: "操作成功!",
-          });
+          // this.$message({
+          //   type: "success",
+          //   message: "操作成功!",
+          // });
           done();
         },
         (error) => {
@@ -843,7 +1084,7 @@
       );
     },
     rowDel(row) {
-      this.$confirm("确定将选择用户登记离职?", {
+      this.$confirm("确定将选择保安登记离职?", {
         confirmButtonText: "确定",
         cancelButtonText: "取消",
         type: "warning",
@@ -883,7 +1124,7 @@
         this.$message.warning("请选择至少一条数据");
         return;
       }
-      this.$confirm("确定将选择用户注销?", {
+      this.$confirm("确定将选择保安注销?", {
         confirmButtonText: "确定",
         cancelButtonText: "取消",
         type: "warning",
@@ -948,7 +1189,7 @@
       done();
     },
     handleExport() {
-      this.$confirm("是否导出用户数据?", "提示", {
+      this.$confirm("是否导出保安数据?", "提示", {
         confirmButtonText: "确定",
         cancelButtonText: "取消",
         type: "warning",
@@ -970,11 +1211,20 @@
       );
     },
     beforeOpen(done, type) {
+      var that = this;
       if (["edit", "view"].includes(type)) {
         getUser(this.form.id).then((res) => {
           this.form = res.data.data;
+          var d = {
+            education1: res.data.data.education,
+          };
+          this.form = {
+            ...this.form,
+            ...d,
+          };
+          // this.from["education1"] = res.data.data.education;
           if (this.form.hasOwnProperty("deptId")) {
-            this.form.deptId = this.form.deptId.split(",");
+            this.form.deptId = this.form.deptId;
           }
           if (this.form.hasOwnProperty("roleId")) {
             this.form.roleId = this.form.roleId.split(",");
@@ -982,6 +1232,11 @@
           if (this.form.hasOwnProperty("postId")) {
             this.form.postId = this.form.postId.split(",");
           }
+          var userInfo = res.data.data;
+          //获取用户从业信息
+          getUserPractitionersInfo(userInfo.id).then((res1) => {
+            that.form.UserPractitionersInfo = res1.data.data;
+          });
         });
       }
       this.initFlag = true;
@@ -997,19 +1252,29 @@
       this.onLoad(this.page, this.query);
     },
     onLoad(page, params = {}) {
+      let values = {
+        ...params,
+      };
+      values = {
+        ...params,
+        deptId: this.deptId,
+        roleId: this.roleId,
+        ...this.query,
+      };
+      if (this.userInfo.role_id == "1414840172333842433") {
+        console.log("是公安add jurisdiction");
+        values["jurisdiction"] = this.userInfo.jurisdiction;
+      }
       this.loading = true;
-      getList(
-        page.currentPage,
-        page.pageSize,
-        Object.assign(params, this.query),
-        this.treeDeptId
-      ).then((res) => {
-        const data = res.data.data;
-        this.page.total = data.total;
-        this.data = data.records;
-        this.loading = false;
-        this.selectionClear();
-      });
+      getList(page.currentPage, page.pageSize, values, this.treeDeptId).then(
+        (res) => {
+          const data = res.data.data;
+          this.page.total = data.total;
+          this.data = data.records;
+          this.loading = false;
+          this.selectionClear();
+        }
+      );
     },
     platformRowUpdate(row, index, done, loading) {
       updatePlatform(row.id, row.userType, row.userExt).then(
@@ -1081,10 +1346,6 @@
 </script>
 
 <style>
-.ours {
-  width: 100%;
-  height: 100%;
-}
 .box {
   height: 800px;
 }
@@ -1095,17 +1356,5 @@
 
 .box .el-scrollbar__wrap {
   overflow: scroll;
-}
-.floats {
-  position: absolute;
-  width: 100%;
-  height: 100%;
-  overflow: scroll;
-  top: 0;
-  left: 0;
-  background-color: rgba(0,0,0,0.5);
-  z-index: 500 !important;
-  display: flex;
-  justify-content: center;
 }
 </style>

--
Gitblit v1.9.3