From 6e85937b4ed360b6ba0451128c4a90b325c38e7a Mon Sep 17 00:00:00 2001
From: liuyg <376836862@qq.com>
Date: Fri, 27 Aug 2021 09:27:09 +0800
Subject: [PATCH] 冲突

---
 src/views/securityMan/index.vue                 |  577 ++++++++++++
 src/views/securityGuard/securityGuardDetail.vue |   88 +
 src/views/securityMan/data.js                   |  664 ++++++++++++++
 src/api/experience/experience.js                |   67 +
 src/router/views/index.js                       |   13 
 src/views/securityGuard/securityGuard.vue       |  291 +----
 src/views/securityGuard/data.js                 | 1010 ++++++++++-----------
 src/views/system/user.vue                       |    5 
 8 files changed, 1,977 insertions(+), 738 deletions(-)

diff --git a/src/api/experience/experience.js b/src/api/experience/experience.js
new file mode 100644
index 0000000..87fee8a
--- /dev/null
+++ b/src/api/experience/experience.js
@@ -0,0 +1,67 @@
+import request from '@/router/axios';
+
+
+export const getExperienceList = (current, size, params) => {
+    return request({
+        url: '/api/experience/page',
+        method: 'get',
+        params: {
+            ...params,
+            current,
+            size
+        }
+    })
+}
+
+export const addExperience = (row) => {
+    return request({
+        url: '/api/experience/submit',
+        method: 'post',
+        data: row
+    })
+}
+
+
+
+export const updateExperience = (row) => {
+    return request({
+        url: '/api/experience/submit',
+        method: 'post',
+        data: row
+    })
+}
+
+
+
+export const experienceRemove = (ids) => {
+    return request({
+        url: '/api/experience/remove',
+        method: 'post',
+        params: {
+            ids,
+        }
+    })
+}
+
+
+
+export const getExperienceDetail = (id) => {
+    return request({
+        url: '/api/experience/detail',
+        method: 'get',
+        params: {
+            id,
+        }
+    })
+}
+
+
+export const getUserDetails = (id) => {
+    return request({
+        url: '/api/blade-user/getUserDetails',
+        method: 'get',
+        params: {
+            id,
+        }
+    })
+}
\ No newline at end of file
diff --git a/src/router/views/index.js b/src/router/views/index.js
index 49c1598..fd1ba52 100644
--- a/src/router/views/index.js
+++ b/src/router/views/index.js
@@ -909,6 +909,19 @@
             import( /* webpackChunkName: "views" */ '@/views/resource/uploadPolicyRelease')
     }]
 }, {
+    path: '/securityMan',
+    redirect: '/securityMan/index',
+    component: Layout,
+    children: [{
+        path: 'index',
+        name: '保安员信息',
+        meta: {
+            i18n: 'index',
+        },
+        component: () =>
+            import( /* webpackChunkName: "views" */ '@/views/securityMan/index')
+    }]
+}, {
     path: '/attachOnce',
     redirect: '/resource/attachOnce',
     component: Layout,
diff --git a/src/views/securityGuard/data.js b/src/views/securityGuard/data.js
index e67ca1c..e3ac2a2 100644
--- a/src/views/securityGuard/data.js
+++ b/src/views/securityGuard/data.js
@@ -1,314 +1,314 @@
 //保安员基本信息
 export var securityBaseInfoColumn = [{
-    label: "",
-    labelWidth: "20",
-    type: 'title',
-    prop: "title",
-    span: 24,
-    styles: {
-        fontSize: '24px'
-    }
-},
-{
-    label: "所属保安公司",
-    prop: "deptId",
-    type: "tree",
-    dicUrl: "/api/blade-system/dept/security_lazy-tree?parentId=1413470343230877697",
-    // dicUrl: "/api/blade-system/dept/lazy-tree?parentId=0",
-    props: {
-        label: "title",
-        value: "id",
-    },
-    disabled: true,
-    span: 24,
-},
-{
-    label: "登录账号",
-    prop: "account",
-    disabled: true
-},
-{
-    label: "用户姓名",
-    prop: "realName",
-    disabled: true,
-},
-{
-    label: "用户昵称",
-    prop: "name",
-    disabled: true
-},
-{
-    label: "手机号码",
-    prop: "phone",
-    disabled: true
-},
-{
-    label: "电子邮箱",
-    prop: "email",
-    disabled: true
-},
-{
-    label: "身份证号",
-    prop: "cardid",
-    disabled: true
-},
-{
-    label: "籍贯",
-    prop: "nativeplace",
-    disabled: true
-},
-{
-    label: "民族",
-    prop: "nation",
-    disabled: true
-},
-{
-    label: "是否持证",
-    prop: "hold",
-    dicUrl: "/api/blade-system/dict-biz/dictionary?code=equipage",
-    props: {
-        label: "dictValue",
-        value: "dictKey",
-    },
-    type: "select",
-    disabled: true
-},
-{
-    label: "保安员证编号",
-    prop: "securitynumber",
-    disabled: true
-},
-{
-    label: "所属辖区",
-    prop: "jurisdiction",
-    // multiple: true,
-    type: "tree",
-    dicUrl: "/api/jurisdiction/lazy-tree?parentId=0",
-    props: {
-        label: "title",
-        value: "id",
-    },
-    disabled: true
-},
-{
-    label: "最高学历",
-    prop: "education",
-    type: "select",
-    dicUrl: "/api/blade-system/dict-biz/dictionary?code=educationType",
-    props: {
-        label: "dictValue",
-        value: "dictKey"
-    },
-    dataType: "number",
-    slot: true,
-    disabled: true
-},
-{
-    label: "政治面貌",
-    prop: "politicaloutlook",
-    disabled: true
-},
-{
-    label: "身高",
-    prop: "height",
-    disabled: true
-},
-{
-    label: "联系地址",
-    prop: "address",
-    disabled: true
-},
-{
-    label: "户口所在地",
-    prop: "registered",
-    disabled: true
-},
-{
-    label: "入职时间",
-    prop: "rtime",
-    type: 'date',
-    format: "yyyy-MM-dd",
-    valueFormat: "yyyy-MM-dd",
-    disabled: true
-},
-{
-    label: "用户性别",
-    prop: "sex",
-    type: "select",
-    dicData: [{
-        label: "男",
-        value: 1
+        label: "",
+        labelWidth: "20",
+        type: 'title',
+        prop: "title",
+        span: 24,
+        styles: {
+            fontSize: '24px'
+        }
     },
     {
-        label: "女",
-        value: 2
+        label: "所属保安公司",
+        prop: "deptId",
+        type: "tree",
+        dicUrl: "/api/blade-system/dept/security_lazy-tree?parentId=1413470343230877697",
+        // dicUrl: "/api/blade-system/dept/lazy-tree?parentId=0",
+        props: {
+            label: "title",
+            value: "id",
+        },
+        disabled: true,
+        span: 24,
     },
     {
-        label: "未知",
-        value: 3
+        label: "登录账号",
+        prop: "account",
+        disabled: true
+    },
+    {
+        label: "用户姓名",
+        prop: "realName",
+        disabled: true,
+    },
+    {
+        label: "用户昵称",
+        prop: "name",
+        disabled: true
+    },
+    {
+        label: "手机号码",
+        prop: "phone",
+        disabled: true
+    },
+    {
+        label: "电子邮箱",
+        prop: "email",
+        disabled: true
+    },
+    {
+        label: "身份证号",
+        prop: "cardid",
+        disabled: true
+    },
+    {
+        label: "籍贯",
+        prop: "nativeplace",
+        disabled: true
+    },
+    {
+        label: "民族",
+        prop: "nation",
+        disabled: true
+    },
+    {
+        label: "是否持证",
+        prop: "hold",
+        dicUrl: "/api/blade-system/dict-biz/dictionary?code=equipage",
+        props: {
+            label: "dictValue",
+            value: "dictKey",
+        },
+        type: "select",
+        disabled: true
+    },
+    {
+        label: "保安员证编号",
+        prop: "securitynumber",
+        disabled: true
+    },
+    {
+        label: "所属辖区",
+        prop: "jurisdiction",
+        // multiple: true,
+        type: "tree",
+        dicUrl: "/api/jurisdiction/lazy-tree?parentId=0",
+        props: {
+            label: "title",
+            value: "id",
+        },
+        disabled: true
+    },
+    {
+        label: "最高学历",
+        prop: "education",
+        type: "select",
+        dicUrl: "/api/blade-system/dict-biz/dictionary?code=educationType",
+        props: {
+            label: "dictValue",
+            value: "dictKey"
+        },
+        dataType: "number",
+        slot: true,
+        disabled: true
+    },
+    {
+        label: "政治面貌",
+        prop: "politicaloutlook",
+        disabled: true
+    },
+    {
+        label: "身高",
+        prop: "height",
+        disabled: true
+    },
+    {
+        label: "联系地址",
+        prop: "address",
+        disabled: true
+    },
+    {
+        label: "户口所在地",
+        prop: "registered",
+        disabled: true
+    },
+    {
+        label: "入职时间",
+        prop: "rtime",
+        type: 'date',
+        format: "yyyy-MM-dd",
+        valueFormat: "yyyy-MM-dd",
+        disabled: true
+    },
+    {
+        label: "用户性别",
+        prop: "sex",
+        type: "select",
+        dicData: [{
+                label: "男",
+                value: 1
+            },
+            {
+                label: "女",
+                value: 2
+            },
+            {
+                label: "未知",
+                value: 3
+            }
+        ],
+        disabled: true
+    },
+    {
+        label: "用户生日",
+        type: "date",
+        prop: "birthday",
+        disabled: true
     }
-    ],
-    disabled: true
-},
-{
-    label: "用户生日",
-    type: "date",
-    prop: "birthday",
-    disabled: true
-}
 
 
 ]
 
 
 export var securityBaseInfoColumns = [{
-    label: "所属保安单位",
-    prop: "tenantId",
-    type: "tree",
-    dicUrl: "/api/blade-system/tenant/select",
-    props: {
-        label: "tenantName",
-        value: "tenantId"
-    },
-    disabled: true,
-    span: 24,
-},
-{
-    label: "登录账号",
-    prop: "account",
-    disabled: true
-},
-{
-    label: "用户姓名",
-    prop: "realName",
-    rules: [{
-        required: true,
-        message: "请输入用户姓名",
-        trigger: "blur"
-    }, {
-        min: 2,
-        max: 5,
-        message: '姓名长度在2到5个字符'
-    }]
-},
-{
-    label: "用户昵称",
-    prop: "name"
-},
-{
-    label: "手机号码",
-    prop: "phone",
-    overHidden: true,
-    rules: [{
-        required: true,
-        message: "请输入手机号",
-        trigger: "blur"
-    }]
-},
-{
-    label: "电子邮箱",
-    prop: "email",
-    hide: true,
-    overHidden: true
-},
-{
-    label: "身份证号",
-    prop: "cardid",
-    hide: true,
-    overHidden: true,
-    rules: [{
-        required: true,
-        message: "请输入身份证号",
-        trigger: "blur"
-    }]
-},
-{
-    label: "籍贯",
-    prop: "nativeplace",
-    hide: true,
-    overHidden: true
-},
-{
-    label: "民族",
-    prop: "nation",
-    hide: true,
-    overHidden: true
-},
-{
-    label: "最高学历",
-    prop: "education",
-    type: "select",
-    dicUrl: "/api/blade-system/dict-biz/dictionary?code=educationType",
-    props: {
-        label: "dictValue",
-        value: "dictKey"
-    },
-    dataType: "number",
-    slot: true,
-    rules: [{
-        required: true,
-        message: "请选择学历",
-        trigger: "blur"
-    }]
-},
-{
-    label: "政治面貌",
-    prop: "politicaloutlook",
-    hide: true,
-    overHidden: true
-},
-{
-    label: "身高",
-    prop: "height",
-    hide: true,
-    overHidden: true
-},
-{
-    label: "联系地址",
-    prop: "address",
-    hide: true,
-    overHidden: true
-},
-{
-    label: "户口所在地",
-    prop: "registered",
-    hide: true,
-    overHidden: true
-},
-{
-    label: "入职时间",
-    prop: "rtime",
-    type: 'date',
-    format: "yyyy-MM-dd",
-    valueFormat: "yyyy-MM-dd",
-    hide: true,
-    overHidden: true
-},
-{
-    label: "用户性别",
-    prop: "sex",
-    type: "select",
-    dicData: [{
-        label: "男",
-        value: 1
+        label: "所属保安单位",
+        prop: "tenantId",
+        type: "tree",
+        dicUrl: "/api/blade-system/tenant/select",
+        props: {
+            label: "tenantName",
+            value: "tenantId"
+        },
+        disabled: true,
+        span: 24,
     },
     {
-        label: "女",
-        value: 2
+        label: "登录账号",
+        prop: "account",
+        disabled: true
     },
     {
-        label: "未知",
-        value: 3
+        label: "用户姓名",
+        prop: "realName",
+        rules: [{
+            required: true,
+            message: "请输入用户姓名",
+            trigger: "blur"
+        }, {
+            min: 2,
+            max: 5,
+            message: '姓名长度在2到5个字符'
+        }]
+    },
+    {
+        label: "用户昵称",
+        prop: "name"
+    },
+    {
+        label: "手机号码",
+        prop: "phone",
+        overHidden: true,
+        rules: [{
+            required: true,
+            message: "请输入手机号",
+            trigger: "blur"
+        }]
+    },
+    {
+        label: "电子邮箱",
+        prop: "email",
+        hide: true,
+        overHidden: true
+    },
+    {
+        label: "身份证号",
+        prop: "cardid",
+        hide: true,
+        overHidden: true,
+        rules: [{
+            required: true,
+            message: "请输入身份证号",
+            trigger: "blur"
+        }]
+    },
+    {
+        label: "籍贯",
+        prop: "nativeplace",
+        hide: true,
+        overHidden: true
+    },
+    {
+        label: "民族",
+        prop: "nation",
+        hide: true,
+        overHidden: true
+    },
+    {
+        label: "最高学历",
+        prop: "education",
+        type: "select",
+        dicUrl: "/api/blade-system/dict-biz/dictionary?code=educationType",
+        props: {
+            label: "dictValue",
+            value: "dictKey"
+        },
+        dataType: "number",
+        slot: true,
+        rules: [{
+            required: true,
+            message: "请选择学历",
+            trigger: "blur"
+        }]
+    },
+    {
+        label: "政治面貌",
+        prop: "politicaloutlook",
+        hide: true,
+        overHidden: true
+    },
+    {
+        label: "身高",
+        prop: "height",
+        hide: true,
+        overHidden: true
+    },
+    {
+        label: "联系地址",
+        prop: "address",
+        hide: true,
+        overHidden: true
+    },
+    {
+        label: "户口所在地",
+        prop: "registered",
+        hide: true,
+        overHidden: true
+    },
+    {
+        label: "入职时间",
+        prop: "rtime",
+        type: 'date',
+        format: "yyyy-MM-dd",
+        valueFormat: "yyyy-MM-dd",
+        hide: true,
+        overHidden: true
+    },
+    {
+        label: "用户性别",
+        prop: "sex",
+        type: "select",
+        dicData: [{
+                label: "男",
+                value: 1
+            },
+            {
+                label: "女",
+                value: 2
+            },
+            {
+                label: "未知",
+                value: 3
+            }
+        ],
+        hide: true
+    },
+    {
+        label: "用户生日",
+        type: "date",
+        prop: "birthday",
+        hide: true
     }
-    ],
-    hide: true
-},
-{
-    label: "用户生日",
-    type: "date",
-    prop: "birthday",
-    hide: true
-}
 ]
 
 
@@ -340,14 +340,14 @@
     type: 'date',
     format: "yyyy-MM-dd",
     valueFormat: "yyyy-MM-dd",
-    prop: "entryTime",
+    prop: "entrytime",
     formslot: true,
 }, {
     label: '离职时间',
     type: 'date',
     format: "yyyy-MM-dd",
     valueFormat: "yyyy-MM-dd",
-    prop: "departureTime",
+    prop: "departuretime",
     formslot: true,
 }, {
     label: '离职原因',
@@ -445,229 +445,227 @@
 
 
 export var securityFormPageColumn = [{
-    label: "姓名",
-    prop: "realName",
-    search: true,
-    searchSpan: 3,
-    width: 60,
-    searchLabelWidth: 50,
-    display: false
-},
-{
-    label: "所属保安公司",
-    searchLabelWidth: "110",
-    // prop: "deptName",
-    prop: "deptId",
-    type: "tree",
-    dicUrl: "/api/blade-system/dept/security_lazy-tree?parentId=1413470343230877697",
-    props: {
-        label: "title",
-        value: "id",
-    },
-    slot: true,
-    searchSpan: 5,
-    display: false,
-    search: true,
-    minWidth: 260
-},
-{
-    label: "性别",
-    prop: "sex",
-    width: 55,
-    type: "select",
-    dicData: [{
-        label: "男",
-        value: 1,
+        label: "姓名",
+        prop: "realName",
+        search: true,
+        searchSpan: 3,
+        width: 60,
+        searchLabelWidth: 50,
+        display: false
     },
     {
-        label: "女",
-        value: 2,
+        label: "所属保安公司",
+        searchLabelWidth: "110",
+        // prop: "deptName",
+        prop: "deptId",
+        type: "tree",
+        dicUrl: "/api/blade-system/dept/security_lazy-tree?parentId=1413470343230877697",
+        props: {
+            label: "title",
+            value: "id",
+        },
+        slot: true,
+        searchSpan: 5,
+        display: false,
+        search: true,
+        minWidth: 260
     },
     {
-        label: "未知",
-        value: 3,
+        label: "性别",
+        prop: "sex",
+        width: 55,
+        type: "select",
+        dicData: [{
+                label: "男",
+                value: 1,
+            },
+            {
+                label: "女",
+                value: 2,
+            },
+            {
+                label: "未知",
+                value: 3,
+            },
+        ],
+        display: false
     },
-    ],
-    display: false
-},
-{
-    label: "身份证号码",
-    prop: "cardid",
-    search: true,
-    searchLabelWidth: 90,
-    searchSpan: 4,
-    minWidth: 140,
-
-    display: false
-},
-
-{
-    label: "籍贯",
-    prop: "nativeplace",
-    hide: true,
-    display: false
-},
-{
-    label: "民族",
-    prop: "nation",
-    hide: true,
-    width: 55,
-    display: false
-},
-
-{
-    label: "出生日期",
-    prop: "birthday",
-    type: "date",
-    format: "yyyy-MM-dd",
-    valueFormat: "yyyy-MM-dd",
-    display: false,
-    hide: true,
-},
-{
-    label: "年龄",
-    prop: "age",
-    width: 55,
-    display: false
-},
-{
-    label: "学历",
-    prop: "education",
-    display: false,
-    width: 90,
-    dicUrl: "/api/blade-system/dict-biz/dictionary?code=educationType",
-    props: {
-        label: "dictValue",
-        value: "dictKey"
+    {
+        label: "身份证号码",
+        prop: "cardid",
+        search: true,
+        searchLabelWidth: 90,
+        searchSpan: 5,
+        minWidth: 140,
+        display: false
     },
-    type: "select",
-    // hide: true,
-    rules: [{
-        required: true,
-        message: "请选择学历",
-        trigger: "blur"
-    }],
-},
-{
-    label: "联系电话",
-    prop: "phone",
-    minWidth: 100,
-    display: false
-},
-{
-    label: "健康状态",
-    prop: "healstats",
-    hide: true,
-    display: false
-},
-{
-    label: "保安证编号",
-    prop: "securitynumber",
-    search: true,
-    searchLabelWidth: 90,
-    minWidth: 105,
-    searchSpan: 4,
-    addDisplay: false,
-    editDisplay: false,
-    // hide: true,
-},
-{
-    label: "入职时间",
-    prop: "rtime",
-    hide: true,
-    display: false
-},
-// {
-//     label: "是否派遣",
-//     prop: "dispatch",
-//     // hide: true,
-//     type: 'select',
-//     // display: false,
-//     dicData: [
-//         {
-//             label: '未派遣',
-//             value: 1
-//         }, {
-//             label: '已派遣',
-//             value: 0
-//         }
-//     ]
-// },
-{
-    label: '是否派遣',
-    prop: 'dispatch',
-    type: 'select',
-    editDisplay: false,
-    addDisplay: false,
-    dicData: [
-        {
+
+    {
+        label: "籍贯",
+        prop: "nativeplace",
+        hide: true,
+        display: false
+    },
+    {
+        label: "民族",
+        prop: "nation",
+        hide: true,
+        width: 55,
+        display: false
+    },
+
+    {
+        label: "出生日期",
+        prop: "birthday",
+        type: "date",
+        format: "yyyy-MM-dd",
+        valueFormat: "yyyy-MM-dd",
+        display: false,
+        hide: true,
+    },
+    {
+        label: "年龄",
+        prop: "age",
+        width: 55,
+        display: false
+    },
+    {
+        label: "学历",
+        prop: "education",
+        display: false,
+        width: 90,
+        dicUrl: "/api/blade-system/dict-biz/dictionary?code=educationType",
+        props: {
+            label: "dictValue",
+            value: "dictKey"
+        },
+        type: "select",
+        // hide: true,
+        rules: [{
+            required: true,
+            message: "请选择学历",
+            trigger: "blur"
+        }],
+    },
+    {
+        label: "联系电话",
+        prop: "phone",
+        minWidth: 100,
+        display: false
+    },
+    {
+        label: "健康状态",
+        prop: "healstats",
+        hide: true,
+        display: false
+    },
+    {
+        label: "保安证编号",
+        prop: "securitynumber",
+        search: true,
+        searchLabelWidth: 90,
+        minWidth: 105,
+        searchSpan: 4,
+        addDisplay: false,
+        editDisplay: false,
+        // hide: true,
+    },
+    {
+        label: "入职时间",
+        prop: "rtime",
+        hide: true,
+        display: false
+    },
+    // {
+    //     label: "是否派遣",
+    //     prop: "dispatch",
+    //     // hide: true,
+    //     type: 'select',
+    //     // display: false,
+    //     dicData: [
+    //         {
+    //             label: '未派遣',
+    //             value: 1
+    //         }, {
+    //             label: '已派遣',
+    //             value: 0
+    //         }
+    //     ]
+    // },
+    {
+        label: '是否派遣',
+        prop: 'dispatch',
+        type: 'select',
+        editDisplay: false,
+        addDisplay: false,
+        dicData: [{
             label: '未派遣',
             value: '1'
         }, {
             label: '已派遣',
             value: '0'
-        }
-    ]
-},
-{
-    label: "是否持证",
-    prop: "hold",
-    slot: true,
-    search: true,
-    searchSpan: 3,
-    width: 69,
-    display: false,
-    dicUrl: "/api/blade-system/dict-biz/dictionary?code=equipage",
-    props: {
-        label: "dictValue",
-        value: "dictKey"
+        }]
     },
-    type: "select",
-    rules: [{
-        required: true,
-        message: "请选择",
-        trigger: "blur"
-    }],
-},
+    {
+        label: "是否持证",
+        prop: "hold",
+        slot: true,
+        search: true,
+        searchSpan: 3,
+        width: 69,
+        display: false,
+        dicUrl: "/api/blade-system/dict-biz/dictionary?code=equipage",
+        props: {
+            label: "dictValue",
+            value: "dictKey"
+        },
+        type: "select",
+        rules: [{
+            required: true,
+            message: "请选择",
+            trigger: "blur"
+        }],
+    },
 
-// {
-//     label: "入职时间",
-//     prop: "rtime",
-//     type: "datetime",
-//     format: "yyyy-MM-dd",
-//     valueFormat: "yyyy-MM-dd",
-//     searchRange: true,
-//     searchSpan: 6,
-//     hide: true,
-//     addDisplay: false,
-//     editDisplay: false,
-//     viewDisplay: false,
-//     search: true,
-//     rules: [{
-//         required: true,
-//         message: "请输入时间",
-//         trigger: "blur"
-//     }]
-// },
-{
-    label: "在职状态",
-    prop: "status",
-    type: "select",
-    dicUrl: "/api/blade-system/dict-biz/dictionary?code=workerState",
-    props: {
-        label: "dictValue",
-        value: "dictKey"
+    // {
+    //     label: "入职时间",
+    //     prop: "rtime",
+    //     type: "datetime",
+    //     format: "yyyy-MM-dd",
+    //     valueFormat: "yyyy-MM-dd",
+    //     searchRange: true,
+    //     searchSpan: 6,
+    //     hide: true,
+    //     addDisplay: false,
+    //     editDisplay: false,
+    //     viewDisplay: false,
+    //     search: true,
+    //     rules: [{
+    //         required: true,
+    //         message: "请输入时间",
+    //         trigger: "blur"
+    //     }]
+    // },
+    {
+        label: "在职状态",
+        prop: "status",
+        type: "select",
+        dicUrl: "/api/blade-system/dict-biz/dictionary?code=workerState",
+        props: {
+            label: "dictValue",
+            value: "dictKey"
+        },
+        dataType: "number",
+        searchValue: 1,
+        display: false,
+        hide: true,
+        searchSpan: 3,
+        width: 80,
+        search: true,
+        rules: [{
+            required: true,
+            message: "请选择在职状态",
+            trigger: "blur"
+        }]
     },
-    dataType: "number",
-    display: false,
-    hide: true,
-    searchSpan: 3,
-    width: 80,
-    search: true,
-    rules: [{
-        required: true,
-        message: "请选择在职状态",
-        trigger: "blur"
-    }]
-},
 ]
\ No newline at end of file
diff --git a/src/views/securityGuard/securityGuard.vue b/src/views/securityGuard/securityGuard.vue
index ddb6260..ff04663 100644
--- a/src/views/securityGuard/securityGuard.vue
+++ b/src/views/securityGuard/securityGuard.vue
@@ -1,5 +1,5 @@
 <template>
-  <el-row class="securityGuard">
+  <el-row :class="{securityGuard : isSecurity}">
     <el-col :span="0" style="display: none">
       <div class="box">
         <el-scrollbar>
@@ -26,6 +26,7 @@
           @row-del="rowDel"
           :row-style="rowStyle"
           @row-save="rowSave"
+          @row-update="rowUpdate"
           :before-open="beforeOpen"
           :page.sync="page"
           @search-change="searchChange"
@@ -299,7 +300,7 @@
     return {
       securityid: "",
       excelBox1: false,
-      isSecurity: false,
+      isSecurity: true,
       excelForm1: {},
       excelOption1: {
         submitBtn: false,
@@ -327,7 +328,8 @@
         ],
       },
 
-      form: {},
+      form: {
+      },
       search: {},
       roleBox: false,
       excelBox: false,
@@ -439,6 +441,7 @@
               {
                 label: "登录账号",
                 prop: "account",
+                editDisabled:true,
                 rules: [
                   {
                     required: true,
@@ -451,6 +454,7 @@
               {
                 label: "密码",
                 prop: "password",
+                type:'password',
                 hide: true,
                 editDisplay: false,
                 viewDisplay: false,
@@ -461,6 +465,7 @@
               {
                 label: "确认密码",
                 prop: "password2",
+                type:'password',
                 hide: true,
                 editDisplay: false,
                 viewDisplay: false,
@@ -468,6 +473,15 @@
                   { required: true, validator: validatePass2, trigger: "blur" },
                 ],
               },
+              
+            ],
+          },
+          {
+            label: "详细信息",
+            prop: "detailInfo",
+            labelWidth: "110",
+            icon: "el-icon-s-order",
+            column: [
               {
                 label: "姓名",
                 prop: "realName",
@@ -506,69 +520,6 @@
                 row: true,
                 prop: "myPicture",
               },
-
-              // {
-              //   label: "编号",
-              //   prop: "code",
-              // },
-
-              {
-                label: "所属辖区",
-                prop: "jurisdiction",
-                // multiple: true,
-                type: "tree",
-                dicUrl: "/api/jurisdiction/lazy-tree?parentId=0",
-                props: {
-                  label: "title",
-                  value: "id",
-                },
-                checkStrictly: true,
-                slot: true,
-                rules: [
-                  {
-                    required: false,
-                    message: "请选择所属辖区",
-                    trigger: "click",
-                  },
-                ],
-              },
-              // {
-              //   label: "所属角色",
-              //   prop: "roleId",
-              //   multiple: true,
-              //   type: "tree",
-              //   dicData: [],
-              //   props: {
-              //     label: "title",
-              //   },
-              //   checkStrictly: true,
-              //   slot: true,
-              //   rules: [
-              //     {
-              //       required: true,
-              //       message: "请选择所属角色",
-              //       trigger: "click",
-              //     },
-              //   ],
-              // },
-              // {
-              //   label: "所属岗位",
-              //   prop: "postId",
-              //   type: "tree",
-              //   multiple: true,
-              //   dicData: [],
-              //   props: {
-              //     label: "postName",
-              //     value: "id",
-              //   },
-              //   rules: [
-              //     {
-              //       required: false,
-              //       message: "请选择所属岗位",
-              //       trigger: "click",
-              //     },
-              //   ],
-              // },
               {
                 label: "是否持证",
                 prop: "hold",
@@ -592,6 +543,19 @@
                 hide: true,
               },
               {
+                label: "身份证号",
+                prop: "cardid",
+                hide: true,
+                overHidden: true,
+                rules: [
+                  {
+                    required: true,
+                    message: "请输入身份证号",
+                    trigger: "blur",
+                  },
+                ],
+              },
+              {
                 label: "手机号码",
                 prop: "phone",
                 overHidden: true,
@@ -606,19 +570,6 @@
               {
                 label: "电子邮箱",
                 prop: "email",
-              },
-              {
-                label: "身份证号",
-                prop: "cardid",
-                hide: true,
-                overHidden: true,
-                rules: [
-                  {
-                    required: true,
-                    message: "请输入身份证号",
-                    trigger: "blur",
-                  },
-                ],
               },
               {
                 label: "籍贯",
@@ -662,6 +613,26 @@
                 prop: "registered",
               },
               {
+                label: "所属辖区",
+                prop: "jurisdiction",
+                // multiple: true,
+                type: "tree",
+                dicUrl: "/api/jurisdiction/lazy-tree?parentId=0",
+                props: {
+                  label: "title",
+                  value: "id",
+                },
+                checkStrictly: true,
+                slot: true,
+                rules: [
+                  {
+                    required: false,
+                    message: "请选择所属辖区",
+                    trigger: "click",
+                  },
+                ],
+              },
+              {
                 label: "入职时间",
                 prop: "rtime",
                 type: "date",
@@ -688,91 +659,13 @@
                   // },
                 ],
               },
-              {
-                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,
-                    },
-                  ],
-                },
-              },
+              // {
+              //   label: "生日",
+              //   type: "date",
+              //   prop: "birthday",
+              //   format: "yyyy-MM-dd",
+              //   valueFormat: "yyyy-MM-dd",
+              // },
             ],
           },
         ],
@@ -958,6 +851,8 @@
     if (!website.tenantMode) {
       this.initData(website.tenantId);
     }
+    console.log(this.search,111);
+    this.search['status'] = 1;
   },
   methods: {
     handleImport1() {
@@ -1028,24 +923,7 @@
       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);
-        });
-      }
+
       const user = {
         account: row.account,
         address: row.address,
@@ -1072,17 +950,16 @@
         sex: row.sex,
       };
       const userMap = {
-        user: user,
-        userPractitionersInfo: userPractitionersList,
+        user: user
       };
       securitySave(userMap).then(
         () => {
+          this.initFlag = false;
+          this.onLoad(this.page);
           this.$message({
             type: "success",
             message: "操作成功!",
           });
-          this.initFlag = false;
-          this.onLoad(this.page);
           done();
         },
         (error) => {
@@ -1095,42 +972,15 @@
       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: "操作成功!",
-            });
-          });
+      update(row).then(() => {
           this.initFlag = false;
           this.onLoad(this.page);
+          this.$message({
+            type: "success",
+            message: "操作成功!",
+          });
           done();
         },
         (error) => {
@@ -1146,7 +996,7 @@
         type: "warning",
       })
         .then(() => {
-          row.status = "0";
+          row.status = "2";
           return update(row);
         })
         .then(() => {
@@ -1334,6 +1184,7 @@
       this.onLoad(this.page, this.query);
     },
     onLoad(page, params = {}) {
+      params = this.search;
       var that = this;
       //获取当前登录人员的角色信息
       var roleIds = this.userInfo.role_id.split(",");
@@ -1354,7 +1205,7 @@
             //禁止编辑
             deptColumn.disabled = true;
             deptColumn.value = that.userInfo.dept_id;
-            that.isSecurity = true;
+            that.isSecurity = false;
             //如果是保安公司管理员
             params["deptId"] = that.userInfo.dept_id;
           } else if (roleAlias == "公安管理员") {
diff --git a/src/views/securityGuard/securityGuardDetail.vue b/src/views/securityGuard/securityGuardDetail.vue
index 534670d..b388b1a 100644
--- a/src/views/securityGuard/securityGuardDetail.vue
+++ b/src/views/securityGuard/securityGuardDetail.vue
@@ -10,6 +10,9 @@
         :data="data1"
         :page.sync="page1"
         :table-loading="loading1"
+        @row-save="rowSave1"
+        @row-update="rowUpdate1"
+        @row-del="rowDel1"
         @refresh-change="refreshChange1"
       >
       </avue-crud>
@@ -87,7 +90,14 @@
   practitionersColumn,
   trackRecordColumn,
 } from "./data";
-import { getUserPractitionersInfo } from "@/api/system/user";
+import {
+  addExperience,
+  updateExperience,
+  getExperienceDetail,
+  experienceRemove,
+  getExperienceList
+} from "@/api/experience/experience";
+
 import {
   getPerformanceInfo,
   add,
@@ -108,7 +118,7 @@
         column: [
           {
             // icon: "el-icon-info",
-            label: "保安员入职登记基本信息",
+            label: "保安员基本信息",
             prop: "tab1",
           },
           {
@@ -158,12 +168,12 @@
         total: 0,
       },
       query1: {},
+      query2: {},
       data1: [],
       data2: [],
       option1: {
         card: true,
-        menu: false,
-        addBtn: false,
+        menu: true,
         height: "auto",
         widtd: "auto",
         calcHeight: 54,
@@ -246,20 +256,21 @@
     },
     //查询当前保安员的从业记录信息
     getPractitionersPageInfo() {
-      var that = this;
+      var param = {
+        securityid: this.id,
+      };
       //获取用户从业信息
       console.log(this.id, "cid");
-      getUserPractitionersInfo(this.id).then((res1) => {
-        that.data1 = res1.data.data;
+      getExperienceList(this.current, this.size,param).then((res1) => {
+        const data = res1.data.data;
+        this.page1.total = data.total;
+        this.data1 = data.records;
+        this.loading1 = false;
       });
     },
     //查询当前保安员的现实表现记录信息
     getPerformancePageInfo() {
       //获取现实表现信息
-      // getPerformanceInfo(this.id).then((res) => {
-      //   that.data2 = res1.data.data;
-      //   console.log(that.data2, 1);
-      // });
       var param = {
         securityid: this.id,
       };
@@ -271,11 +282,32 @@
         this.loading2 = false;
       });
     },
+    
+
     rowSave2(form, done, loading) {
       form.securityid = this.id;
       add(form).then(
         (res) => {
           this.getPerformancePageInfo(this.page2);
+          this.$message({
+            type: "success",
+            message: "操作成功!",
+          });
+          done();
+        },
+        (error) => {
+          window.console.log(error);
+          loading();
+        }
+      );
+      // }
+    },
+    //从业记录新增
+    rowSave1(form, done, loading) {
+      form.securityid = this.id;
+      addExperience(form).then(
+        (res) => {
+          this.getPractitionersPageInfo(this.page1);
           this.$message({
             type: "success",
             message: "操作成功!",
@@ -306,6 +338,23 @@
         }
       );
     },
+    rowUpdate1(row, index, done, loading) {
+      row.securityid = this.id;
+      updateExperience(row).then(
+        () => {
+          this.getPractitionersPageInfo(this.page1);
+          this.$message({
+            type: "success",
+            message: "操作成功!",
+          });
+          done();
+        },
+        (error) => {
+          window.console.log(error);
+          loading();
+        }
+      );
+    },
     rowDel2(row) {
       this.$confirm("确定将选择数据删除?", {
         confirmButtonText: "确定",
@@ -323,6 +372,23 @@
           });
         });
     },
+    rowDel1(row) {
+      this.$confirm("确定将选择数据删除?", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      })
+        .then(() => {
+          return experienceRemove(row.id);
+        })
+        .then(() => {
+          this.getPractitionersPageInfo(this.page1);
+          this.$message({
+            type: "success",
+            message: "操作成功!",
+          });
+        });
+    },
   },
   mounted() {
     this.typeTABS = this.optionTABS.column[0];
diff --git a/src/views/securityMan/data.js b/src/views/securityMan/data.js
new file mode 100644
index 0000000..030cab0
--- /dev/null
+++ b/src/views/securityMan/data.js
@@ -0,0 +1,664 @@
+//保安员基本信息
+export var securityBaseInfoColumn = [{
+        label: "",
+        labelWidth: "20",
+        type: 'title',
+        prop: "title",
+        span: 24,
+        styles: {
+            fontSize: '24px'
+        }
+    },
+    {
+        label: "所属保安公司",
+        prop: "deptName",
+        disabled: true,
+        span: 24,
+    },
+    {
+        label: "登录账号",
+        prop: "account",
+        disabled: true
+    },
+    {
+        label: "用户姓名",
+        prop: "realName",
+        disabled: false,
+    },
+    {
+        label: "用户昵称",
+        prop: "name",
+        disabled: false
+    },
+    {
+        label: "手机号码",
+        prop: "phone",
+        disabled: false
+    },
+    {
+        label: "电子邮箱",
+        prop: "email",
+        disabled: false
+    },
+    {
+        label: "身份证号",
+        prop: "cardid",
+        disabled: false
+    },
+    {
+        label: "籍贯",
+        prop: "nativeplace",
+        disabled: false
+    },
+    {
+        label: "民族",
+        prop: "nation",
+        disabled: false
+    },
+    {
+        label: "是否持证",
+        prop: "hold",
+        dicUrl: "/api/blade-system/dict-biz/dictionary?code=equipage",
+        props: {
+            label: "dictValue",
+            value: "dictKey",
+        },
+        type: "select",
+        disabled: true
+    },
+    {
+        label: "保安员证编号",
+        prop: "securitynumber",
+        disabled: true
+    },
+    {
+        label: "所属辖区",
+        prop: "jurisdiction",
+        // multiple: true,
+        type: "tree",
+        dicUrl: "/api/jurisdiction/lazy-tree?parentId=0",
+        props: {
+            label: "title",
+            value: "id",
+        },
+        disabled: false
+    },
+    {
+        label: "最高学历",
+        prop: "education",
+        type: "select",
+        dicUrl: "/api/blade-system/dict-biz/dictionary?code=educationType",
+        props: {
+            label: "dictValue",
+            value: "dictKey"
+        },
+        dataType: "number",
+        slot: true,
+        disabled: false
+    },
+    {
+        label: "政治面貌",
+        prop: "politicaloutlook",
+        disabled: false
+    },
+    {
+        label: "身高",
+        prop: "height",
+        disabled: false
+    },
+    {
+        label: "联系地址",
+        prop: "address",
+        disabled: false
+    },
+    {
+        label: "户口所在地",
+        prop: "registered",
+        disabled: false
+    },
+    {
+        label: "入职时间",
+        prop: "rtime",
+        type: 'date',
+        format: "yyyy-MM-dd",
+        valueFormat: "yyyy-MM-dd",
+        disabled: false
+    },
+    {
+        label: "用户性别",
+        prop: "sex",
+        type: "select",
+        dicData: [{
+                label: "男",
+                value: 1
+            },
+            {
+                label: "女",
+                value: 2
+            },
+            {
+                label: "未知",
+                value: 3
+            }
+        ],
+        disabled: false
+    },
+    // {
+    //     label: "用户生日",
+    //     type: "date",
+    //     prop: "birthday",
+    //     disabled: true
+    // }
+
+
+]
+
+
+export var securityBaseInfoColumns = [{
+        label: "所属保安单位",
+        prop: "tenantId",
+        type: "tree",
+        dicUrl: "/api/blade-system/tenant/select",
+        props: {
+            label: "tenantName",
+            value: "tenantId"
+        },
+        disabled: true,
+        span: 24,
+    },
+    {
+        label: "登录账号",
+        prop: "account",
+        disabled: true
+    },
+    {
+        label: "用户姓名",
+        prop: "realName",
+        rules: [{
+            required: true,
+            message: "请输入用户姓名",
+            trigger: "blur"
+        }, {
+            min: 2,
+            max: 5,
+            message: '姓名长度在2到5个字符'
+        }]
+    },
+    {
+        label: "用户昵称",
+        prop: "name"
+    },
+    {
+        label: "手机号码",
+        prop: "phone",
+        overHidden: true,
+        rules: [{
+            required: true,
+            message: "请输入手机号",
+            trigger: "blur"
+        }]
+    },
+    {
+        label: "电子邮箱",
+        prop: "email",
+        hide: true,
+        overHidden: true
+    },
+    {
+        label: "身份证号",
+        prop: "cardid",
+        hide: true,
+        overHidden: true,
+        rules: [{
+            required: true,
+            message: "请输入身份证号",
+            trigger: "blur"
+        }]
+    },
+    {
+        label: "籍贯",
+        prop: "nativeplace",
+        hide: true,
+        overHidden: true
+    },
+    {
+        label: "民族",
+        prop: "nation",
+        hide: true,
+        overHidden: true
+    },
+    {
+        label: "最高学历",
+        prop: "education",
+        type: "select",
+        dicUrl: "/api/blade-system/dict-biz/dictionary?code=educationType",
+        props: {
+            label: "dictValue",
+            value: "dictKey"
+        },
+        dataType: "number",
+        slot: true,
+        rules: [{
+            required: true,
+            message: "请选择学历",
+            trigger: "blur"
+        }]
+    },
+    {
+        label: "政治面貌",
+        prop: "politicaloutlook",
+        hide: true,
+        overHidden: true
+    },
+    {
+        label: "身高",
+        prop: "height",
+        hide: true,
+        overHidden: true
+    },
+    {
+        label: "联系地址",
+        prop: "address",
+        hide: true,
+        overHidden: true
+    },
+    {
+        label: "户口所在地",
+        prop: "registered",
+        hide: true,
+        overHidden: true
+    },
+    {
+        label: "入职时间",
+        prop: "rtime",
+        type: 'date',
+        format: "yyyy-MM-dd",
+        valueFormat: "yyyy-MM-dd",
+        hide: true,
+        overHidden: true
+    },
+    {
+        label: "用户性别",
+        prop: "sex",
+        type: "select",
+        dicData: [{
+                label: "男",
+                value: 1
+            },
+            {
+                label: "女",
+                value: 2
+            },
+            {
+                label: "未知",
+                value: 3
+            }
+        ],
+        hide: true
+    },
+    {
+        label: "用户生日",
+        type: "date",
+        prop: "birthday",
+        hide: true
+    }
+]
+
+
+//从业记录
+export var practitionersColumn = [{
+    label: "id",
+    prop: "id",
+    hide: true,
+    editDisplay: false,
+    addDisplay: false
+}, {
+    label: '单位名称',
+    prop: "companyname",
+    formslot: true,
+}, {
+    label: '部门',
+    prop: "department",
+    formslot: true,
+}, {
+    label: '岗位',
+    prop: "post",
+    formslot: true,
+}, {
+    label: '岗位职责',
+    prop: "responsibilities",
+    formslot: true,
+}, {
+    label: '入职时间',
+    type: 'date',
+    format: "yyyy-MM-dd",
+    valueFormat: "yyyy-MM-dd",
+    prop: "entrytime",
+    formslot: true,
+}, {
+    label: '离职时间',
+    type: 'date',
+    format: "yyyy-MM-dd",
+    valueFormat: "yyyy-MM-dd",
+    prop: "departuretime",
+    formslot: true,
+}, {
+    label: '离职原因',
+    prop: "leaving",
+    formslot: true,
+}]
+
+export var practitionersColumns = [{
+    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,
+}]
+
+
+//表现
+export var trackRecordColumn = [{
+    label: "id",
+    prop: "id",
+    hide: true,
+    editDisplay: false,
+    addDisplay: false
+}, {
+    label: '工作态度',
+    prop: "workingattitude",
+    formslot: true,
+}, {
+    label: '工作成效',
+    prop: "achievements",
+    formslot: true,
+}, {
+    label: '表现',
+    prop: "score",
+    type: "select",
+    dicUrl: "/api/blade-system/dict-biz/dictionary?code=scoreType",
+    props: {
+        label: "dictValue",
+        value: "dictKey"
+    },
+    dataType: "number",
+    slot: true,
+    rules: [{
+        required: true,
+        message: "请选择表现",
+        trigger: "blur"
+    }]
+}, {
+    label: '时间',
+    type: 'date',
+    format: "yyyy-MM-dd",
+    valueFormat: "yyyy-MM-dd",
+    prop: "time",
+    formslot: true,
+}, {
+    label: '服务公司',
+    prop: "departmentName",
+    formslot: true,
+}]
+
+
+export var securityFormPageColumn = [{
+        label: "姓名",
+        prop: "realName",
+        search: true,
+        searchSpan: 3,
+        width: 60,
+        searchLabelWidth: 50,
+        display: false
+    },
+    {
+        label: "所属保安公司",
+        searchLabelWidth: "110",
+        // prop: "deptName",
+        prop: "deptId",
+        type: "tree",
+        dicUrl: "/api/blade-system/dept/security_lazy-tree?parentId=1413470343230877697",
+        props: {
+            label: "title",
+            value: "id",
+        },
+        slot: true,
+        searchSpan: 5,
+        display: false,
+        search: true,
+        minWidth: 260
+    },
+    {
+        label: "性别",
+        prop: "sex",
+        width: 55,
+        type: "select",
+        dicData: [{
+                label: "男",
+                value: 1,
+            },
+            {
+                label: "女",
+                value: 2,
+            },
+            {
+                label: "未知",
+                value: 3,
+            },
+        ],
+        display: false
+    },
+    {
+        label: "身份证号码",
+        prop: "cardid",
+        search: true,
+        searchLabelWidth: 90,
+        searchSpan: 5,
+        minWidth: 140,
+        display: false
+    },
+
+    {
+        label: "籍贯",
+        prop: "nativeplace",
+        hide: true,
+        display: false
+    },
+    {
+        label: "民族",
+        prop: "nation",
+        hide: true,
+        width: 55,
+        display: false
+    },
+
+    {
+        label: "出生日期",
+        prop: "birthday",
+        type: "date",
+        format: "yyyy-MM-dd",
+        valueFormat: "yyyy-MM-dd",
+        display: false,
+        hide: true,
+    },
+    {
+        label: "年龄",
+        prop: "age",
+        width: 55,
+        display: false
+    },
+    {
+        label: "学历",
+        prop: "education",
+        display: false,
+        width: 90,
+        dicUrl: "/api/blade-system/dict-biz/dictionary?code=educationType",
+        props: {
+            label: "dictValue",
+            value: "dictKey"
+        },
+        type: "select",
+        // hide: true,
+        rules: [{
+            required: true,
+            message: "请选择学历",
+            trigger: "blur"
+        }],
+    },
+    {
+        label: "联系电话",
+        prop: "phone",
+        minWidth: 100,
+        display: false
+    },
+    {
+        label: "健康状态",
+        prop: "healstats",
+        hide: true,
+        display: false
+    },
+    {
+        label: "保安证编号",
+        prop: "securitynumber",
+        search: true,
+        searchLabelWidth: 90,
+        minWidth: 105,
+        searchSpan: 4,
+        addDisplay: false,
+        editDisplay: false,
+        // hide: true,
+    },
+    {
+        label: "入职时间",
+        prop: "rtime",
+        hide: true,
+        display: false
+    },
+    // {
+    //     label: "是否派遣",
+    //     prop: "dispatch",
+    //     // hide: true,
+    //     type: 'select',
+    //     // display: false,
+    //     dicData: [
+    //         {
+    //             label: '未派遣',
+    //             value: 1
+    //         }, {
+    //             label: '已派遣',
+    //             value: 0
+    //         }
+    //     ]
+    // },
+    {
+        label: '是否派遣',
+        prop: 'dispatch',
+        type: 'select',
+        editDisplay: false,
+        addDisplay: false,
+        dicData: [{
+            label: '未派遣',
+            value: '1'
+        }, {
+            label: '已派遣',
+            value: '0'
+        }]
+    },
+    {
+        label: "是否持证",
+        prop: "hold",
+        slot: true,
+        search: true,
+        searchSpan: 3,
+        width: 69,
+        display: false,
+        dicUrl: "/api/blade-system/dict-biz/dictionary?code=equipage",
+        props: {
+            label: "dictValue",
+            value: "dictKey"
+        },
+        type: "select",
+        rules: [{
+            required: true,
+            message: "请选择",
+            trigger: "blur"
+        }],
+    },
+
+    // {
+    //     label: "入职时间",
+    //     prop: "rtime",
+    //     type: "datetime",
+    //     format: "yyyy-MM-dd",
+    //     valueFormat: "yyyy-MM-dd",
+    //     searchRange: true,
+    //     searchSpan: 6,
+    //     hide: true,
+    //     addDisplay: false,
+    //     editDisplay: false,
+    //     viewDisplay: false,
+    //     search: true,
+    //     rules: [{
+    //         required: true,
+    //         message: "请输入时间",
+    //         trigger: "blur"
+    //     }]
+    // },
+    {
+        label: "在职状态",
+        prop: "status",
+        type: "select",
+        dicUrl: "/api/blade-system/dict-biz/dictionary?code=workerState",
+        props: {
+            label: "dictValue",
+            value: "dictKey"
+        },
+        dataType: "number",
+        searchValue: 1,
+        display: false,
+        hide: true,
+        searchSpan: 3,
+        width: 80,
+        search: true,
+        rules: [{
+            required: true,
+            message: "请选择在职状态",
+            trigger: "blur"
+        }]
+    },
+]
\ No newline at end of file
diff --git a/src/views/securityMan/index.vue b/src/views/securityMan/index.vue
new file mode 100644
index 0000000..0c476a8
--- /dev/null
+++ b/src/views/securityMan/index.vue
@@ -0,0 +1,577 @@
+<template>
+  <div class="dispatch">
+    <avue-tabs :option="optionTABS" @change="handleChangeTABS"></avue-tabs>
+    <span v-if="typeTABS.prop === 'tab1'">
+      <avue-form ref="form" v-model="obj0" :option="option0" @submit="submit"> </avue-form>
+    </span>
+    <span v-else-if="typeTABS.prop === 'tab2'">
+      <avue-crud
+        :option="option1"
+        :data="data1"
+        :page.sync="page1"
+        :table-loading="loading1"
+        @row-save="rowSave1"
+        @row-update="rowUpdate1"
+        @row-del="rowDel1"
+        @refresh-change="refreshChange1"
+      >
+      </avue-crud>
+    </span>
+    <span v-else-if="typeTABS.prop === 'tab3'">
+      <avue-crud
+        :option="option2"
+        :data="data2"
+        :page.sync="page2"
+        @row-save="rowSave2"
+        @row-update="rowUpdate2"
+        @row-del="rowDel2"
+        :table-loading="loading2"
+        @refresh-change="refreshChange2"
+      >
+      </avue-crud>
+    </span>
+    <span v-else-if="typeTABS.prop === 'tab4' && isSecurity">
+      <!-- 保安员证 -->
+      <div class="baoanzheng" id="baoanzheng">
+        <div class="baz-main">
+          <div class="baz-m-body" ref="baoanzheng">
+            <div class="bmb-heard">保安员证</div>
+            <div class="img">
+              <div v-if="!obj0.myPicture">暂无照片</div>
+              <img :src="obj0.myPicture" alt="" v-else />
+            </div>
+            <div class="imgs">
+              <div v-if="erweima == ''">暂无二维码</div>
+              <img :src="erweima" alt="" v-else />
+              <!-- <img src="/img/register/ewm.png" alt="" /> -->
+              <!-- logoSrc="/img/register/ewm.png" -->
+              <!-- <vue-qr :text="goToUrl" :size="200"></vue-qr> -->
+            </div>
+
+            <!-- <img src="/img/mock/card/card-1.jpg" alt="" /> -->
+            <div class="bmb-b">
+              姓名:<span class="bmb-b-s">{{ obj0.realName }}</span>
+            </div>
+            <div class="bmb-b">
+              性别:<span class="bmb-b-s">{{ obj0.$sex }}</span>
+            </div>
+            <div class="bmb-b">
+              编号:<span class="bmb-b-s">{{ obj0.securitynumber }}</span>
+            </div>
+            <div class="bmb-b">
+              发证机关:<span class="bmb-b-s">南昌市公安局</span>
+            </div>
+            <div class="bmb-b">
+              发证日期:<span class="bmb-b-s">{{
+                obj0.paperTime.slice(0, 10)
+              }}</span>
+            </div>
+            <!-- <div class="bmb-b">
+              发证机关:<span class="bmb-b-s" style="margin-right: 15px"
+                >南昌市公安局</span
+              >发证日期:<span class="bmb-b-s">{{
+                obj0.createTime.slice(0, 10)
+              }}</span>
+            </div> -->
+          </div>
+          <span slot="footer" class="dialog-footer no-print PrintBut">
+            <el-button type="primary" @click="Print">打 印</el-button>
+            <!-- <el-button type="primary" @click="closePrint"> 取 消 </el-button> -->
+          </span>
+        </div>
+      </div>
+    </span>
+  </div>
+</template> 
+
+<script>
+import {
+  securityBaseInfoColumn,
+  practitionersColumn,
+  trackRecordColumn,
+} from "./data";
+import {
+  addExperience,
+  updateExperience,
+  getUserDetails,
+  experienceRemove,
+  getExperienceList
+} from "@/api/experience/experience";
+
+import {
+  getPerformanceInfo,
+  add,
+  update,
+  page,
+  remove,
+  getER,
+} from "@/api/performance/performance";
+
+import {update as updateUserInfo} from "@/api/system/user";
+
+import { mapState } from "vuex";
+
+export default {
+  data() {
+    return {
+      typeTABS: {}, //标签页
+      row: {}, //数据
+      isSecurity:false,
+      optionTABS: {
+        column: [
+          {
+            // icon: "el-icon-info",
+            label: "保安员基本信息",
+            prop: "tab1",
+          },
+          {
+            // icon: "el-icon-info",
+            label: "从业记录",
+            prop: "tab2",
+          },
+          {
+            // icon: "el-icon-info",
+            label: "现实表现记录",
+            prop: "tab3",
+          },
+          // {
+          //   // icon: "el-icon-info",
+          //   label: "保安员证",
+          //   prop: "tab4",
+          // },
+        ],
+      },
+      current: 1,
+      size: 10,
+      cardid: "",
+      name: "",
+      dispatcherCompany: "",
+      id: "",
+      obj0: {
+        title: "",
+      },
+      option0: {
+        emptyBtn: false,
+        submitBtn: true,
+        labelWidth: "110",
+        gutter: 30,
+        column: securityBaseInfoColumn,
+      },
+      loading1: true,
+      loading2: true,
+      selectionList1: [],
+      page1: {
+        pageSize: 10,
+        currentPage: 1,
+        total: 0,
+      },
+      page2: {
+        pageSize: 10,
+        currentPage: 1,
+        total: 0,
+      },
+      query1: {},
+      query2: {},
+      data1: [],
+      data2: [],
+      option1: {
+        card: true,
+        menu: true,
+        height: "auto",
+        widtd: "auto",
+        calcHeight: 54,
+        border: true, //liu
+        stripe: true,
+        tip: false,
+        index: true,
+        dialogClickModal: false,
+        headerAlign: "center",
+        align: "center",
+        column: practitionersColumn,
+      },
+      option2: {
+        card: true,
+        menu: false,
+        addBtn:false,
+        height: "auto",
+        widtd: "auto",
+        calcHeight: 54,
+        border: true, //liu
+        stripe: true,
+        tip: false,
+        index: true,
+        dialogClickModal: false,
+        headerAlign: "center",
+        align: "center",
+        column: trackRecordColumn,
+      },
+      erweima: "",
+    };
+  },
+  // components: {
+  //   vueQr,
+  // },
+  computed: {
+    ids1() {
+      let ids1 = [];
+      this.selectionList1.forEach((ele) => {
+        ids1.push(ele.id);
+      });
+      return ids1.join(",");
+    },
+    ...mapState({
+      userInfo: (state) => state.user.userInfo,
+    }),
+    
+  },
+  methods: {
+    Print() {
+      var printDom = document.getElementById("baoanzheng");
+      printDom.style.position = "fixed";
+      printDom.style.left = "-10%";
+      printDom.style.width = "120%";
+      printDom.style.height = "100%";
+      this.$Print(this.$refs.baoanzheng);
+      printDom.style.position = "relative";
+      printDom.style.left = "0";
+      printDom.style.width = "100%";
+      printDom.style.height = "calc(100% - 100px)";
+    },
+    handleChangeTABS(column) {
+      this.typeTABS = column;
+      if (column.prop == "tab1") {
+        this.loading1 = false;
+      } else if (column.prop == "tab2") {
+        //查询当前保安员的从业记录信息
+        this.getPractitionersPageInfo();
+        this.loading1 = false;
+      } else if (column.prop == "tab3") {
+        //查询当前保安员的现实表现记录
+        this.getPerformancePageInfo();
+        this.loading2 = false;
+      } else if (column.prop == "tab4") {
+        getER(this.obj0.securitynumber).then((res) => {
+          this.erweima = res.data;
+          // console.log(res.data);
+        });
+      }
+    },
+    //查询当前保安员的从业记录信息
+    getPractitionersPageInfo() {
+      var param = {
+        securityid: this.id,
+      };
+      //获取用户从业信息
+      getExperienceList(this.current, this.size,param).then((res1) => {
+        const data = res1.data.data;
+        this.page1.total = data.total;
+        this.data1 = data.records;
+        this.loading1 = false;
+      });
+    },
+    //查询当前保安员的现实表现记录信息
+    getPerformancePageInfo() {
+      //获取现实表现信息
+      var param = {
+        securityid: this.id,
+      };
+      page(this.current, this.size, param).then((res2) => {
+        const data = res2.data.data;
+        this.page2.total = data.total;
+        this.data2 = data.records;
+        console.log(this.data2, 1);
+        this.loading2 = false;
+      });
+    },
+    
+
+    rowSave2(form, done, loading) {
+      form.securityid = this.id;
+      add(form).then(
+        (res) => {
+          this.getPerformancePageInfo(this.page2);
+          this.$message({
+            type: "success",
+            message: "操作成功!",
+          });
+          done();
+        },
+        (error) => {
+          window.console.log(error);
+          loading();
+        }
+      );
+      // }
+    },
+    //从业记录新增
+    rowSave1(form, done, loading) {
+      form.securityid = this.id;
+      addExperience(form).then(
+        (res) => {
+          this.getPractitionersPageInfo(this.page1);
+          this.$message({
+            type: "success",
+            message: "操作成功!",
+          });
+          done();
+        },
+        (error) => {
+          window.console.log(error);
+          loading();
+        }
+      );
+      // }
+    },
+    rowUpdate2(row, index, done, loading) {
+      row.securityid = this.id;
+      update(row).then(
+        () => {
+          this.getPerformancePageInfo(this.page2);
+          this.$message({
+            type: "success",
+            message: "操作成功!",
+          });
+          done();
+        },
+        (error) => {
+          window.console.log(error);
+          loading();
+        }
+      );
+    },
+    rowUpdate1(row, index, done, loading) {
+      row.securityid = this.id;
+      updateExperience(row).then(
+        () => {
+          this.getPractitionersPageInfo(this.page1);
+          this.$message({
+            type: "success",
+            message: "操作成功!",
+          });
+          done();
+        },
+        (error) => {
+          window.console.log(error);
+          loading();
+        }
+      );
+    },
+    rowDel2(row) {
+      this.$confirm("确定将选择数据删除?", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      })
+        .then(() => {
+          return remove(row.id);
+        })
+        .then(() => {
+          this.getPerformancePageInfo(this.page2);
+          this.$message({
+            type: "success",
+            message: "操作成功!",
+          });
+        });
+    },
+    rowDel1(row) {
+      this.$confirm("确定将选择数据删除?", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      })
+        .then(() => {
+          return experienceRemove(row.id);
+        })
+        .then(() => {
+          this.getPractitionersPageInfo(this.page1);
+          this.$message({
+            type: "success",
+            message: "操作成功!",
+          });
+        });
+    },
+    //信息修改
+    submit(){
+
+      updateUserInfo(this.obj0).then(()=>{
+          this.$message({
+          type: "success",
+          message: "操作成功!",
+        });
+      })
+    }
+  },
+  mounted() {
+    this.typeTABS = this.optionTABS.column[0];
+    // var data = JSON.parse(this.$route.query.row);
+    //查询保安员信息
+    console.log(this.userInfo,456);
+    this.id = this.userInfo.Id;
+    var roleName  = this.userInfo.role_name;
+    debugger;
+    //如果保安,才能看保安证
+    if(roleName=="保安"){
+      this.isSecurity= true;
+      this.optionTABS.column = [
+          {
+            // icon: "el-icon-info",
+            label: "保安员基本信息",
+            prop: "tab1",
+          },
+          {
+            // icon: "el-icon-info",
+            label: "从业记录",
+            prop: "tab2",
+          },
+          {
+            // icon: "el-icon-info",
+            label: "现实表现记录",
+            prop: "tab3",
+          },
+          {
+            // icon: "el-icon-info",
+            label: "保安员证",
+            prop: "tab4",
+          },
+        ]
+    }
+    getUserDetails(this.id).then((res)=>{
+      console.log(res.data.data,123);
+      var data = res.data.data;
+      this.obj0 = data;
+    })
+
+
+    var flag = false,
+      i = 0,
+      ind = null;
+    this.$store.state.tags.tagList.forEach((item, index) => {
+      if (item.label == "保安员详情") {
+        if (flag == false) {
+          ind = index;
+          flag = true;
+        }
+        i++;
+      }
+    });
+    if (i > 1) {
+      this.$store.state.tags.tagList.splice(ind, 1);
+    }
+  },
+};
+</script>
+
+<style lang="scss">
+.dispatch {
+  width: 100%;
+  height: 100%;
+  //   border: 1px solid #000;
+  box-sizing: border-box;
+}
+// .el-card__body {
+//   padding-bottom: 5px !important;
+// }
+// .avue-crud__tip,
+// .el-tag,
+// .el-tag--light {
+//   padding: 0 !important;
+// }
+
+.baoanzheng {
+  // position: fixed;
+  position: relative;
+  // top: 0;
+  top: 0;
+  // left: -10%;
+  left: 0;
+  // height: 0;
+  width: 100%;
+  height: calc(100% - 100px);
+  // background-color: rgba(0, 0, 0, 0.5);
+  background-color: #fff;
+  z-index: 9000;
+  display: flex;
+  align-items: center;
+  justify-content: center;
+}
+.baz-main {
+  position: relative;
+  top: 15px;
+  // width: 441px;
+  // height: 358px;
+  width: 750px;
+  height: 550px;
+  // background-color: #004ca7;
+  background-color: #fff;
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  flex-direction: column;
+}
+.baz-m-body {
+  width: 750px;
+  height: 550px;
+  background-image: url("/img/register/bazbj.png");
+  background-size: 100% 100%;
+  .bmb-heard {
+    font-size: 4rem;
+    width: 100%;
+    text-align: center;
+    letter-spacing: 1.4rem;
+    margin-bottom: 40px;
+    padding-left: 10px;
+    position: relative;
+    top: 20px;
+  }
+  .img {
+    width: 152px;
+    height: 205px;
+    border-radius: 10px;
+    position: absolute;
+    // border: 1px solid rgba($color: #888888, $alpha: 0.5);
+    top: 110px;
+    right: 80px;
+    display: flex;
+    align-items: center;
+    justify-content: center;
+    img {
+      width: 100%;
+      height: 100%;
+    }
+  }
+  .imgs {
+    width: 110px;
+    height: 110px;
+    border-radius: 10px;
+    position: absolute;
+    // border: 1px solid rgba($color: #888888, $alpha: 0.5);
+    top: 330px;
+    right: 103px;
+    display: flex;
+    align-items: center;
+    justify-content: center;
+    img {
+      width: 100%;
+      height: 100%;
+    }
+  }
+  .bmb-b {
+    padding-left: 20px;
+    box-sizing: border-box;
+    height: 3.9rem;
+    margin-left: 3rem;
+    width: 100%;
+    font-size: 2rem;
+    font-weight: 300;
+    .bmb-b-s {
+      display: inline-block;
+      width: 20rem;
+      font-size: 2rem;
+      font-weight: 300;
+    }
+  }
+}
+.PrintBut {
+  margin-top: 15px;
+}
+</style>
\ No newline at end of file
diff --git a/src/views/system/user.vue b/src/views/system/user.vue
index ccfbd2a..1a726da 100644
--- a/src/views/system/user.vue
+++ b/src/views/system/user.vue
@@ -220,7 +220,8 @@
       }
     };
     return {
-      form: {},
+      form: {
+      },
       search: {},
       roleBox: false,
       excelBox: false,
@@ -414,6 +415,7 @@
               {
                 label: "密码",
                 prop: "password",
+                type:'password',
                 hide: true,
                 editDisplay: false,
                 viewDisplay: false,
@@ -424,6 +426,7 @@
               {
                 label: "确认密码",
                 prop: "password2",
+                type:'password',
                 hide: true,
                 editDisplay: false,
                 viewDisplay: false,

--
Gitblit v1.9.3