From 79d9fc857559982b00b68b2d709807bdc4cd286f Mon Sep 17 00:00:00 2001
From: Administrator <admin>
Date: Mon, 11 Apr 2022 10:58:17 +0800
Subject: [PATCH] minio 地址修改

---
 src/views/securityGuard/securityGuardRegistration.vue |  857 +++++++++++++++++++++++++++++++++++----------------------
 1 files changed, 527 insertions(+), 330 deletions(-)

diff --git a/src/views/securityGuard/securityGuardRegistration.vue b/src/views/securityGuard/securityGuardRegistration.vue
index 76a2fa4..d134497 100644
--- a/src/views/securityGuard/securityGuardRegistration.vue
+++ b/src/views/securityGuard/securityGuardRegistration.vue
@@ -1,342 +1,539 @@
-/*
- * @Author: Morpheus
- * @Date: 2021-07-05 16:31:54
- * @Last Modified by: Morpheus
- * @Last Modified time: 2021-07-07 18:01:57
- * menu-name 保安详细资料
- */
 <template>
-    <el-row class="morpheus-box">
-        <el-col :span="24">
-            <el-card>
-                <div class="card-body">
-                    <el-tabs v-model="activeName"
-                             @tab-click="handleClick">
-                        <el-tab-pane label="基本信息"
-                                     name="first">
-
-                            <el-form :model="form"
-                                     label-position="right"
-                                     size="mini"
-                                     label-width="100px">
-
-                                <el-row>
-                                    <el-col span="12">
-                                        <el-form-item label="姓名">
-                                            <el-input disabled="true"
-                                                      v-model="form.realName"
-                                                      autocomplete="off"></el-input>
-                                        </el-form-item>
-                                    </el-col>
-                                    <el-col span="12">
-                                        <el-form-item label="性别">
-                                            <el-input disabled="true"
-                                                      :value="form.sex == 1 ? '男' : '女'"
-                                                      autocomplete="off"></el-input>
-                                        </el-form-item>
-                                    </el-col>
-                                </el-row>
-                                <el-row>
-                                    <el-col span="12">
-                                        <el-col span="12">
-                                            <el-form-item label="电子邮箱">
-                                                <el-input disabled="true"
-                                                          v-model="form.emails"
-                                                          autocomplete="off"></el-input>
-                                            </el-form-item>
-                                        </el-col>
-
-                                    </el-col>
-                                    <el-col span="12">
-                                        <el-form-item label="联系方式">
-                                            <el-input disabled="true"
-                                                      v-model="form.phone"
-                                                      autocomplete="off"></el-input>
-                                        </el-form-item>
-                                    </el-col>
-                                </el-row>
-
-                                <el-row>
-                                    <el-col span="12">
-                                        <el-form-item label="身高">
-                                            <el-input disabled="true"
-                                                      v-model="form.height"
-                                                      autocomplete="off"></el-input>
-                                        </el-form-item>
-                                    </el-col>
-                                    <el-col span="12">
-                                        <el-form-item label="联系地址">
-                                            <el-input disabled="true"
-                                                      v-model="form.address"
-                                                      autocomplete="off"></el-input>
-                                        </el-form-item>
-                                    </el-col>
-                                </el-row>
-                                <el-row>
-
-                                    <el-col span="12">
-                                        <el-form-item label="籍贯">
-                                            <el-input disabled="true"
-                                                      v-model="form.nativePlace"
-                                                      autocomplete="off"></el-input>
-                                        </el-form-item>
-                                    </el-col>
-                                    <el-col span="12">
-                                        <el-form-item label="户口所在地">
-                                            <el-input disabled="true"
-                                                      v-model="form.registered"
-                                                      autocomplete="off"></el-input>
-                                        </el-form-item>
-                                    </el-col>
-
-                                </el-row>
-
-                                <el-row>
-                                    <el-col span="12">
-                                        <el-form-item label="政治面貌">
-                                            <el-input disabled="true"
-                                                      v-model="form.politicaloutlook"
-                                                      autocomplete="off"></el-input>
-                                        </el-form-item>
-                                    </el-col>
-                                    <el-col span="12">
-
-                                        <el-form-item label="身份证号">
-                                            <el-input disabled="true"
-                                                      v-model="form.cardid"
-                                                      autocomplete="off"></el-input>
-                                        </el-form-item>
-                                    </el-col>
-
-                                </el-row>
-
-                                <el-row>
-                                    <el-col span="12">
-
-                                        <el-form-item label="所属角色">
-                                            <el-input disabled="true"
-                                                      v-model="form.roleName"
-                                                      autocomplete="off"></el-input>
-                                        </el-form-item>
-                                    </el-col>
-                                    <el-col span="12">
-                                        <el-form-item label="所属公司">
-                                            <el-input disabled="true"
-                                                      v-model="form.deptName"
-                                                      autocomplete="off"></el-input>
-                                        </el-form-item>
-                                    </el-col>
-                                </el-row>
-
-                                <el-row>
-                                    <el-col span="12">
-                                        <el-form-item label="入职时间">
-                                            <el-input disabled="true"
-                                                      v-model="form.rtime"
-                                                      autocomplete="off"></el-input>
-                                        </el-form-item>
-                                    </el-col>
-                                    <el-col span="12">
-                                        <el-form-item label="是否在职">
-                                            <el-input disabled="true"
-                                                      :value="form.sex == 1 ? '是' : '否'"
-                                                      autocomplete="off"></el-input>
-                                        </el-form-item>
-                                    </el-col>
-                                </el-row>
-
-                            </el-form>
-
-                        </el-tab-pane>
-                        <el-tab-pane label="人员表现"
-                                     name="second">
-                            <el-table :data="manifestationData"
-                                      style="width: 100%">
-
-                                <el-table-column prop="name"
-                                                 label="姓名"
-                                                 align="center">
-                                </el-table-column>
-
-                                <el-table-column prop="securityid"
-                                                 label="身份证号"
-                                                 align="center">
-                                </el-table-column>
-
-                                <el-table-column prop="workingattitude"
-                                                 align="center"
-                                                 label="工作态度">
-                                </el-table-column>
-
-                                <el-table-column prop="workingability"
-                                                 align="center"
-                                                 label="工作能力">
-                                </el-table-column>
-
-                                <el-table-column prop="achievements"
-                                                 align="center"
-                                                 label="工作成效">
-                                </el-table-column>
-
-                                <el-table-column prop="score"
-                                                 align="center"
-                                                 label="评分">
-                                </el-table-column>
-
-                                <el-table-column prop="time"
-                                                 align="center"
-                                                 label="时间">
-                                </el-table-column>
-
-                            </el-table>
-                        </el-tab-pane>
-                        <el-tab-pane label="派遣记录"
-                                     name="third">
-                            <el-table :data="dispatchData"
-                                      style="width: 100%">
-
-                                <el-table-column prop="name"
-                                                 label="姓名"
-                                                 align="center">
-                                </el-table-column>
-
-                                <el-table-column prop="cardid"
-                                                 label="身份证号"
-                                                 align="center">
-                                </el-table-column>
-
-                                <el-table-column prop="dispatcher"
-                                                 align="center"
-                                                 label="派遣人">
-                                </el-table-column>
-
-                                <el-table-column prop="dispatchertime"
-                                                 align="center"
-                                                 label="派遣时间">
-                                </el-table-column>
-
-                                <el-table-column prop="dispatcheraddress"
-                                                 align="center"
-                                                 label="派遣地址">
-                                </el-table-column>
-
-                            </el-table>
-                        </el-tab-pane>
-                        <el-tab-pane label="相关荣誉"
-                                     name="fourth">
-                            <el-table :data="honorchData"
-                                      style="width: 100%">
-
-                                <el-table-column prop="name"
-                                                 label="姓名"
-                                                 align="center">
-                                </el-table-column>
-
-                                <el-table-column prop="cardid"
-                                                 label="身份证号"
-                                                 align="center">
-                                </el-table-column>
-
-                                <el-table-column prop="honor"
-                                                 align="center"
-                                                 label="荣誉">
-                                </el-table-column>
-
-                                <el-table-column prop="honortime"
-                                                 align="center"
-                                                 label="获取时间">
-                                </el-table-column>
-
-                            </el-table>
-                        </el-tab-pane>
-                    </el-tabs>
-                </div>
-
-            </el-card>
-        </el-col>
-    </el-row>
+  <el-dialog
+    :title="!form1.id ? '新增' : '修改'"
+    width="60%"
+    modal-append-to-body="false"
+    append-to-body="true"
+    :close-on-click-model="true"
+    :visible.sync="visible"
+  >
+    <avue-form :option="option" v-model="form1" @submit="update">
+      <template slot-scope="{ row }" slot="input">
+        <el-tag>{{ row }}</el-tag>
+      </template>
+    </avue-form>
+  </el-dialog>
 </template>
 
 <script>
-// import {
-//     manifestationList,
-//     dispatchList,
-//     honorchList
-// } from "@/api/management/peopleDetails";
-
+import {
+  getUser,
+  update,
+  getUserPractitionersInfo,
+  saveOrUpdateUserPractitionersInfo,
+} from "@/api/system/user";
+import { getDeptLazyTree } from "@/api/system/dept";
 
 export default {
-    data () {
-        return {
-            activeName: 'first',
-            form: {},
-            manifestationData: [],
-            dispatchData: [],
-            honorchData: [],
-        }
-    },
-    created () {
-        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)
-
-        }
-
-
-        this.form = this.$route.query;
-
-    },
-    mounted () {
-
-        // this.$store.state.tags.tag.label = '保安详细资料'
-
-    },
-    methods: {
-        handleClick (tab) {
-            if (tab.index == 1) {
-                this.getManifestationData()
-            } else if (tab.index == 2) {
-                this.getDispatchData()
-            } else if (tab.index == 3) {
-                this.getHonorchData()
-            }
+  name: "securityGuardRegistration",
+  data() {
+    return {
+      loading: true,
+      userId: "",
+      visible: false,
+      init: {
+        deptTree: [],
+      },
+      props: {
+        label: "title",
+        value: "key",
+      },
+      roleGrantList: [],
+      roleTreeObj: [],
+      treeDeptId: "",
+      treeData: [],
+      form1: {
+        UserPractitionersInfo: [],
+        title: "标题",
+      },
+      treeOption: {
+        nodeKey: "id",
+        lazy: true,
+        treeLoad: function (node, resolve) {
+          const parentId = node.level === 0 ? 0 : node.data.id;
+          getDeptLazyTree(parentId).then((res) => {
+            resolve(
+              res.data.data.map((item) => {
+                return {
+                  ...item,
+                  leaf: !item.hasChildren,
+                };
+              })
+            );
+          });
         },
-        getManifestationData () {
-            manifestationList(this.form.cardid).then(res => {
-                this.manifestationData = res.data.data.records
-                this.manifestationData.forEach(item => {
-                    item.name = this.form.realName
-                    item.time = item.time.substring(0, 10)
-                })
-            })
+        addBtn: false,
+        menu: false,
+        size: "small",
+        props: {
+          labelText: "标题",
+          label: "title",
+          value: "value",
+          children: "children",
         },
-        getDispatchData () {
-            dispatchList(this.form.cardid).then(res => {
-
-                this.dispatchData = res.data.data.records
-
-            })
-        },
-        getHonorchData () {
-            honorchList(this.form.cardid).then(res => {
-
-                this.honorchData = res.data.data.records
-
-            })
+      },
+      option: {
+        height: "auto",
+        calcHeight: 54,
+        tip: false,
+        searchShow: true,
+        searchMenuSpan: 6,
+        border: true, //liu
+        stripe: true,
+        index: true,
+        selection: true,
+        dialogClickModal: false,
+        group: [
+          {
+            label: "",
+            prop: "title",
+            type: "title",
+            span: 24,
+            labelWidth: 140,
+            style: {
+              fontsize: 24,
+            },
+          },
+          {
+            label: "基础信息",
+            labelWidth: "110",
+            prop: "baseInfo",
+            icon: "el-icon-user-solid",
+            column: [
+              {
+                label: "所属组织机构",
+                prop: "deptId",
+                type: "tree",
+                dicUrl:
+                  "/api/blade-system/dept/security_lazy-tree?parentId=1413470343230877697",
+                props: {
+                  label: "title",
+                  value: "id",
+                },
+                // disabled: true,
+                span: 24,
+                rules: [
+                  {
+                    required: true,
+                    message: "请选择组织机构",
+                    trigger: "blur",
+                  },
+                ],
+              },
+              {
+                label: "登录账号",
+                prop: "account",
+                rules: [
+                  {
+                    required: true,
+                    message: "请输入登录账号",
+                    trigger: "blur",
+                  },
+                ],
+                // disabled: true,
+              },
+              {
+                label: "用户姓名",
+                prop: "realName",
+                rules: [
+                  {
+                    required: true,
+                    message: "请输入用户姓名",
+                    trigger: "blur",
+                  },
+                  {
+                    min: 2,
+                    max: 5,
+                    message: "姓名长度在2到5个字符",
+                  },
+                ],
+              },
+              {
+                label: "用户编号",
+                prop: "code",
+              },
+              {
+                label: "用户昵称",
+                prop: "name",
+              },
+              {
+                label: "所属行政区",
+                prop: "jurisdiction",
+                // multiple: true,
+                type: "tree",
+                dicUrl: "/api/jurisdiction/lazy-tree",
+                props: {
+                  label: "title",
+                  value: "id",
+                },
+                checkStrictly: true,
+                slot: true,
+                rules: [
+                  {
+                    required: true,
+                    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: true,
+                    message: "请选择所属岗位",
+                    trigger: "click",
+                  },
+                ],
+              },
+              {
+                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: "education",
+                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",
+                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: true, //liu
+                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,
+                    },
+                  ],
+                },
+              },
+            ],
+          },
+        ],
+      },
+      datachild: [],
+    };
+  },
+  watch: {
+    "form.tenantId"() {
+      if (this.form.tenantId !== "" && this.initFlag) {
+        this.initData(this.form.tenantId);
+      }
+    },
+    "excelForm.isCovered"() {
+      if (this.excelForm.isCovered !== "") {
+        const column = this.findObject(this.excelOption.column, "excelFile");
+        column.action = `/api/blade-user/import-user?isCovered=${this.excelForm.isCovered}`;
+      }
+    },
+  },
+  computed: {},
+  mounted() {
+    //获取userId
+    this.userId = JSON.parse(
+      window.localStorage.getItem("saber-userInfo")
+    ).content.user_id;
+    //获取用户信息
+    this.getUserDetail();
+  },
+  methods: {
+    inits(id) {
+      this.form1.id = id || 0;
+      this.visible = true;
+    },
+    //获取用户信息
+    getUserDetail() {
+      var that = this;
+      //获取用户基本信息
+      getUser(this.userId).then((res) => {
+        this.form1 = res.data.data;
+        var userInfo = res.data.data;
+        //获取用户从业信息
+        getUserPractitionersInfo(userInfo.cardid).then((res1) => {
+          that.form1.UserPractitionersInfo = res1.data.data;
+        });
+        if (this.form.hasOwnProperty("deptId")) {
+          this.form1.deptId = this.form.deptId.split(",");
         }
-    }
-}
+        if (this.form.hasOwnProperty("postId")) {
+          this.form1.postId = this.form.postId.split(",");
+        }
+      });
+    },
+    //新增用户信息(包含从业信息)
+    update(row, index, done, loading) {
+      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,
+            cardid: row.cardid,
+            post: item.post,
+            responsibilities: item.responsibilities,
+          };
+          userPractitionersList.push(info);
+        });
+      }
+      var IdCardNo = row.cardid;
+      row.deptId = row.deptId.join(",");
+      row.postId = row.postId.join(",");
+      update(row).then(
+        () => {
+          const experience = {
+            cardid: IdCardNo,
+            userPractitionersInfo: userPractitionersList,
+          };
+          //更新从业信息
+          saveOrUpdateUserPractitionersInfo(experience).then(() => {
+            this.$message({
+              type: "success",
+              message: "操作成功!",
+            });
+          });
+          this.loading = false;
+          //debugger;
+          done();
+        },
+        (error) => {
+          window.console.log(error, 111);
+          loading();
+        }
+      );
+    },
+  },
+};
 </script>
 
-<style lang="scss" scoped>
+<style scope>
+.box {
+  height: 800px;
+}
+
+/* .el-card__body {
+  margin-bottom: 0px !important;
+} */
+
+/* .el-scrollbar {
+  height: 100%;
+} */
+
+/* .box .el-scrollbar__wrap {
+  overflow: scroll;
+} */
+
+/* .el-form-item__content{
+      margin-left: 0px !important;
+  } */
+
+.addorupdatetitle {
+  position: absolute;
+  left: 10px;
+  top: 70px;
+  width: 10px;
+  height: 10px;
+  font-size: 10px;
+  cursor: pointer;
+}
+.xx {
+  position: absolute;
+  right: 50px;
+  top: 70px;
+  height: 10px;
+  font-size: 24px;
+  z-index: 600;
+}
+.flaots {
+  width: 70%;
+  padding-top: 50px;
+  position: absolute;
+}
 </style>
\ No newline at end of file

--
Gitblit v1.9.3