luowei il y a 2 ans
Parent
commit
63a01f6bff

+ 2 - 1
.env.development

@@ -8,9 +8,10 @@ ENV = 'development'
 #测试地址
 #VUE_APP_BASE_API = 'http://10.87.10.55:8081/'
 #罗俊
-VUE_APP_BASE_API = 'http://10.87.10.49:8080/'
+#VUE_APP_BASE_API = 'http://10.87.10.49:8080/'
 #罗伟
 # VUE_APP_BASE_API = 'http://10.87.11.94:8080/'
+VUE_APP_BASE_API = 'http://127.0.0.1:8080/'
 # 路由懒加载
 VUE_CLI_BABEL_TRANSPILE_MODULES = true
 

+ 44 - 0
src/api/system/information.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询【请填写功能名称】列表
+export function listInformation(query) {
+  return request({
+    url: '/system/information/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询【请填写功能名称】详细
+export function getInformation(id) {
+  return request({
+    url: '/system/information/' + id,
+    method: 'get'
+  })
+}
+
+// 新增【请填写功能名称】
+export function addInformation(data) {
+  return request({
+    url: '/system/information',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改【请填写功能名称】
+export function updateInformation(data) {
+  return request({
+    url: '/system/information',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除【请填写功能名称】
+export function delInformation(id) {
+  return request({
+    url: '/system/information/' + id,
+    method: 'delete'
+  })
+}

+ 1 - 1
src/api/system/public.js

@@ -1,5 +1,5 @@
 import request from '@/utils/request'
-// 查询机构下拉树结构
+// 查询部门下拉树结构
 export function deptTreeSelect() {
     return request({
       url: '/system/dept/deptTree',

+ 17 - 0
src/router/index.js

@@ -41,6 +41,22 @@ export const constantRoutes = [
       }
     ]
   },
+
+    //用户管理扩展
+    {
+      path: '/system/user-information',
+      component: Layout,
+      hidden: true,
+      permissions: ['system:user:list'],
+      children: [
+        {
+          path: 'information/:id(\\d+)',
+          component: () => import('@/views/system/user/information'),
+          name: 'Data',
+          meta: { title: '用户信息管理', activeMenu: '/system/user' }
+        }
+      ]
+    },
 // {
   //   //自己添加的公开路由页面,不要添加在动态路由中!
   //   path: '/dept/extend',
@@ -61,6 +77,7 @@ export const constantRoutes = [
       }
     ]
   },
+
   {
     path: '/login',
     component: () => import('@/views/login'),

+ 471 - 0
src/views/system/information/index.vue

@@ -0,0 +1,471 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="用户ID" prop="userId">
+        <el-input
+          v-model="queryParams.userId"
+          placeholder="请输入用户ID"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="所属部门ID" prop="deptId">
+        <el-input
+          v-model="queryParams.deptId"
+          placeholder="请输入所属部门ID"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="职务ID" prop="dutiesId">
+        <el-input
+          v-model="queryParams.dutiesId"
+          placeholder="请输入职务ID"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="是否专职0是1否" prop="isFullTime">
+        <el-input
+          v-model="queryParams.isFullTime"
+          placeholder="请输入是否专职0是1否"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="最高学历" prop="highestEducation">
+        <el-input
+          v-model="queryParams.highestEducation"
+          placeholder="请输入最高学历"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="是否持证上岗" prop="certificateWork">
+        <el-input
+          v-model="queryParams.certificateWork"
+          placeholder="请输入是否持证上岗"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="初级以上相关专业技术职业资格" prop="professionalQualifications">
+        <el-input
+          v-model="queryParams.professionalQualifications"
+          placeholder="请输入初级以上相关专业技术职业资格"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="持证上岗未通过原因" prop="certificateFailReason">
+        <el-input
+          v-model="queryParams.certificateFailReason"
+          placeholder="请输入持证上岗未通过原因"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="参加工作时间" prop="workTime">
+        <el-date-picker clearable
+          v-model="queryParams.workTime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="请选择参加工作时间">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="入职现在公司的时间" prop="entryTime">
+        <el-date-picker clearable
+          v-model="queryParams.entryTime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="请选择入职现在公司的时间">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="出生时间" prop="bornTime">
+        <el-date-picker clearable
+          v-model="queryParams.bornTime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="请选择出生时间">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="分管领导名字" prop="responsibilitiesLeaderName">
+        <el-input
+          v-model="queryParams.responsibilitiesLeaderName"
+          placeholder="请输入分管领导名字"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="分管领导职务" prop="responsibilitiesLeaderDuties">
+        <el-input
+          v-model="queryParams.responsibilitiesLeaderDuties"
+          placeholder="请输入分管领导职务"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="资格证" prop="qualificationCertificateUrl">
+        <el-input
+          v-model="queryParams.qualificationCertificateUrl"
+          placeholder="请输入资格证"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['system:information:add']"
+        >新增</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['system:information:edit']"
+        >修改</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['system:information:remove']"
+        >删除</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-hasPermi="['system:information:export']"
+        >导出</el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="informationList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="${comment}" align="center" prop="id" />
+      <el-table-column label="用户ID" align="center" prop="userId" />
+      <el-table-column label="所属部门ID" align="center" prop="deptId" />
+      <el-table-column label="职务ID" align="center" prop="dutiesId" />
+      <el-table-column label="用工形式" align="center" prop="workType" />
+      <el-table-column label="是否专职0是1否" align="center" prop="isFullTime" />
+      <el-table-column label="最高学历" align="center" prop="highestEducation" />
+      <el-table-column label="学历取得形式" align="center" prop="educationType" />
+      <el-table-column label="是否持证上岗" align="center" prop="certificateWork" />
+      <el-table-column label="初级以上相关专业技术职业资格" align="center" prop="professionalQualifications" />
+      <el-table-column label="持证上岗未通过原因" align="center" prop="certificateFailReason" />
+      <el-table-column label="参加工作时间" align="center" prop="workTime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.workTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="入职现在公司的时间" align="center" prop="entryTime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.entryTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="出生时间" align="center" prop="bornTime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.bornTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="分管领导名字" align="center" prop="responsibilitiesLeaderName" />
+      <el-table-column label="分管领导职务" align="center" prop="responsibilitiesLeaderDuties" />
+      <el-table-column label="资格证" align="center" prop="qualificationCertificateUrl" />
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['system:information:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['system:information:remove']"
+          >删除</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+    
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改【请填写功能名称】对话框 -->
+    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="用户ID" prop="userId">
+          <el-input v-model="form.userId" placeholder="请输入用户ID" />
+        </el-form-item>
+        <el-form-item label="所属部门ID" prop="deptId">
+          <el-input v-model="form.deptId" placeholder="请输入所属部门ID" />
+        </el-form-item>
+        <el-form-item label="职务ID" prop="dutiesId">
+          <el-input v-model="form.dutiesId" placeholder="请输入职务ID" />
+        </el-form-item>
+        <el-form-item label="是否专职0是1否" prop="isFullTime">
+          <el-input v-model="form.isFullTime" placeholder="请输入是否专职0是1否" />
+        </el-form-item>
+        <el-form-item label="最高学历" prop="highestEducation">
+          <el-input v-model="form.highestEducation" placeholder="请输入最高学历" />
+        </el-form-item>
+        <el-form-item label="是否持证上岗" prop="certificateWork">
+          <el-input v-model="form.certificateWork" placeholder="请输入是否持证上岗" />
+        </el-form-item>
+        <el-form-item label="初级以上相关专业技术职业资格" prop="professionalQualifications">
+          <el-input v-model="form.professionalQualifications" placeholder="请输入初级以上相关专业技术职业资格" />
+        </el-form-item>
+        <el-form-item label="持证上岗未通过原因" prop="certificateFailReason">
+          <el-input v-model="form.certificateFailReason" placeholder="请输入持证上岗未通过原因" />
+        </el-form-item>
+        <el-form-item label="参加工作时间" prop="workTime">
+          <el-date-picker clearable
+            v-model="form.workTime"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="请选择参加工作时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="入职现在公司的时间" prop="entryTime">
+          <el-date-picker clearable
+            v-model="form.entryTime"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="请选择入职现在公司的时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="出生时间" prop="bornTime">
+          <el-date-picker clearable
+            v-model="form.bornTime"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="请选择出生时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="分管领导名字" prop="responsibilitiesLeaderName">
+          <el-input v-model="form.responsibilitiesLeaderName" placeholder="请输入分管领导名字" />
+        </el-form-item>
+        <el-form-item label="分管领导职务" prop="responsibilitiesLeaderDuties">
+          <el-input v-model="form.responsibilitiesLeaderDuties" placeholder="请输入分管领导职务" />
+        </el-form-item>
+        <el-form-item label="资格证" prop="qualificationCertificateUrl">
+          <el-input v-model="form.qualificationCertificateUrl" placeholder="请输入资格证" />
+        </el-form-item>
+        <el-form-item label="${comment}" prop="delFlag">
+          <el-input v-model="form.delFlag" placeholder="请输入${comment}" />
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listInformation, getInformation, delInformation, addInformation, updateInformation } from "@/api/system/information";
+
+export default {
+  name: "Information",
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 【请填写功能名称】表格数据
+      informationList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        userId: null,
+        deptId: null,
+        dutiesId: null,
+        workType: null,
+        isFullTime: null,
+        highestEducation: null,
+        educationType: null,
+        certificateWork: null,
+        professionalQualifications: null,
+        certificateFailReason: null,
+        workTime: null,
+        entryTime: null,
+        bornTime: null,
+        responsibilitiesLeaderName: null,
+        responsibilitiesLeaderDuties: null,
+        qualificationCertificateUrl: null,
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        userId: [
+          { required: true, message: "用户ID不能为空", trigger: "blur" }
+        ],
+      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 查询【请填写功能名称】列表 */
+    getList() {
+      this.loading = true;
+      listInformation(this.queryParams).then(response => {
+        this.informationList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        userId: null,
+        deptId: null,
+        dutiesId: null,
+        workType: null,
+        isFullTime: null,
+        highestEducation: null,
+        educationType: null,
+        certificateWork: null,
+        professionalQualifications: null,
+        certificateFailReason: null,
+        workTime: null,
+        entryTime: null,
+        bornTime: null,
+        responsibilitiesLeaderName: null,
+        responsibilitiesLeaderDuties: null,
+        qualificationCertificateUrl: null,
+        createBy: null,
+        createTime: null,
+        updateBy: null,
+        updateTime: null,
+        delFlag: null
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加【请填写功能名称】";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getInformation(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改【请填写功能名称】";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateInformation(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addInformation(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删除【请填写功能名称】编号为"' + ids + '"的数据项?').then(function() {
+        return delInformation(ids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => {});
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.download('system/information/export', {
+        ...this.queryParams
+      }, `information_${new Date().getTime()}.xlsx`)
+    }
+  }
+};
+</script>

+ 135 - 235
src/views/system/user/index.vue

@@ -4,30 +4,16 @@
       <!--机构数据-->
       <el-col :span="4" :xs="24">
         <div class="head-container">
-          <el-input
-            v-model="deptName"
-            placeholder="请输入机构名称"
-            clearable
-            size="small"
-            prefix-icon="el-icon-search"
-            style="margin-bottom: 20px"
-          />
+          <el-input v-model="deptName" placeholder="请输入机构名称" clearable size="small" prefix-icon="el-icon-search"
+            style="margin-bottom: 20px" />
         </div>
         <div class="tree-container">
           <div style="margin-bottom: 10px;">
             <el-checkbox v-model="queryParams.checkSub" @change="changeCheckBox">是否关联下级机构</el-checkbox>
           </div>
-          <el-tree
-            :data="deptOptions"
-            :props="defaultProps"
-            :expand-on-click-node="false"
-            :filter-node-method="filterNode"
-            ref="tree"
-            node-key="id"
-            :default-expanded-keys="defaultKeys"
-            :default-checked-keys="defaultKeys"
-            @node-click="handleNodeClick"
-          />
+          <el-tree :data="deptOptions" :props="defaultProps" :expand-on-click-node="false"
+            :filter-node-method="filterNode" ref="tree" node-key="id" :default-expanded-keys="defaultKeys"
+            :default-checked-keys="defaultKeys" @node-click="handleNodeClick" />
         </div>
       </el-col>
       <!--用户数据-->
@@ -36,48 +22,22 @@
         <!--    搜索条件    -->
         <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
           <el-form-item label="用户名称" prop="username">
-            <el-input
-              v-model="queryParams.username"
-              placeholder="请输入用户名称"
-              clearable
-              style="width: 240px"
-              @keyup.enter.native="handleQuery"
-            />
+            <el-input v-model="queryParams.username" placeholder="请输入用户名称" clearable style="width: 240px"
+              @keyup.enter.native="handleQuery" />
           </el-form-item>
           <el-form-item label="手机号码" prop="phone">
-            <el-input
-              v-model="queryParams.phone"
-              placeholder="请输入手机号码"
-              clearable
-              style="width: 240px"
-              @keyup.enter.native="handleQuery"
-            />
+            <el-input v-model="queryParams.phone" placeholder="请输入手机号码" clearable style="width: 240px"
+              @keyup.enter.native="handleQuery" />
           </el-form-item>
           <el-form-item label="状态" prop="status">
-            <el-select
-              v-model="queryParams.status"
-              placeholder="用户状态"
-              clearable
-              style="width: 240px"
-            >
-              <el-option
-                v-for="dict in dict.type.sys_normal_disable"
-                :key="dict.value"
-                :label="dict.label"
-                :value="dict.value"
-              />
+            <el-select v-model="queryParams.status" placeholder="用户状态" clearable style="width: 240px">
+              <el-option v-for="dict in dict.type.sys_normal_disable" :key="dict.value" :label="dict.label"
+                :value="dict.value" />
             </el-select>
           </el-form-item>
           <el-form-item label="创建时间">
-            <el-date-picker
-              v-model="dateRange"
-              style="width: 240px"
-              value-format="yyyy-MM-dd"
-              type="daterange"
-              range-separator="-"
-              start-placeholder="开始日期"
-              end-placeholder="结束日期"
-            ></el-date-picker>
+            <el-date-picker v-model="dateRange" style="width: 240px" value-format="yyyy-MM-dd" type="daterange"
+              range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期"></el-date-picker>
           </el-form-item>
           <el-form-item>
             <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
@@ -88,66 +48,49 @@
         <!--    按纽    -->
         <el-row :gutter="10" class="mb8">
           <el-col :span="1.5">
-            <el-button
-              type="primary"
-              plain
-              icon="el-icon-plus"
-              size="mini"
-              @click="handleAdd"
-              v-hasPermi="['system:user:add']"
-            >新增</el-button>
+            <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
+              v-hasPermi="['system:user:add']">新增</el-button>
           </el-col>
           <el-col :span="1.5">
-            <el-button
-              type="success"
-              plain
-              icon="el-icon-edit"
-              size="mini"
-              :disabled="single"
-              @click="handleUpdate"
-              v-hasPermi="['system:user:edit']"
-            >修改</el-button>
+            <el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate"
+              v-hasPermi="['system:user:edit']">修改</el-button>
           </el-col>
           <el-col :span="1.5">
-            <el-button
-              type="danger"
-              plain
-              icon="el-icon-delete"
-              size="mini"
-              :disabled="multiple"
-              @click="handleDelete"
-              v-hasPermi="['system:user:remove']"
-            >删除</el-button>
+            <el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
+              v-hasPermi="['system:user:remove']">删除</el-button>
           </el-col>
-<!--          <el-col :span="1.5">-->
-<!--            <el-button-->
-<!--              type="info"-->
-<!--              plain-->
-<!--              icon="el-icon-upload2"-->
-<!--              size="mini"-->
-<!--              @click="handleImport"-->
-<!--              v-hasPermi="['system:user:import']"-->
-<!--            >导入</el-button>-->
-<!--          </el-col>-->
-<!--          <el-col :span="1.5">-->
-<!--            <el-button-->
-<!--              type="warning"-->
-<!--              plain-->
-<!--              icon="el-icon-download"-->
-<!--              size="mini"-->
-<!--              @click="handleExport"-->
-<!--              v-hasPermi="['system:user:export']"-->
-<!--            >导出</el-button>-->
-<!--          </el-col>-->
+          <!--          <el-col :span="1.5">-->
+          <!--            <el-button-->
+          <!--              type="info"-->
+          <!--              plain-->
+          <!--              icon="el-icon-upload2"-->
+          <!--              size="mini"-->
+          <!--              @click="handleImport"-->
+          <!--              v-hasPermi="['system:user:import']"-->
+          <!--            >导入</el-button>-->
+          <!--          </el-col>-->
+          <!--          <el-col :span="1.5">-->
+          <!--            <el-button-->
+          <!--              type="warning"-->
+          <!--              plain-->
+          <!--              icon="el-icon-download"-->
+          <!--              size="mini"-->
+          <!--              @click="handleExport"-->
+          <!--              v-hasPermi="['system:user:export']"-->
+          <!--            >导出</el-button>-->
+          <!--          </el-col>-->
           <right-toolbar :showSearch.sync="showSearch" @queryTable="getList" :columns="columns"></right-toolbar>
         </el-row>
 
         <el-table v-loading="loading" :data="userList" @selection-change="handleSelectionChange">
           <el-table-column type="selection" width="50" align="center" />
           <el-table-column label="用户编号" align="center" key="id" prop="id" v-if="columns[0].visible" />
-          <el-table-column label="用户名称" align="center" key="username" prop="username" v-if="columns[1].visible" :show-overflow-tooltip="true" />
-          <el-table-column label="用户昵称" align="center" key="name" prop="name" v-if="columns[2].visible" :show-overflow-tooltip="true" />
-          <el-table-column label="所属机构" align="center" key="orgName" prop="orgName" v-if="columns[3].visible" :show-overflow-tooltip="true" />
+          <el-table-column label="用户名称" align="center" key="username" prop="username" v-if="columns[1].visible"
+            :show-overflow-tooltip="true" />
+          <el-table-column label="用户昵称" align="center" key="name" prop="name" v-if="columns[2].visible"
+            :show-overflow-tooltip="true" />
+          <el-table-column label="所属机构" align="center" key="orgName" prop="orgName" v-if="columns[3].visible"
+            :show-overflow-tooltip="true" />
           <el-table-column label="手机号码" align="center" key="phone" prop="phone" v-if="columns[4].visible" width="120" />
           <!-- <el-table-column label="状态" align="center" key="isLock" v-if="columns[5].visible">
             <template slot-scope="scope">
@@ -159,9 +102,9 @@
               ></el-switch>
             </template>
           </el-table-column> -->
-          <el-table-column label="状态" align="center" key="isLock" prop="isLock" v-if="columns[5].visible" width="80" >
+          <el-table-column label="状态" align="center" key="isLock" prop="isLock" v-if="columns[5].visible" width="80">
             <template slot-scope="scope">
-              <dict-tag :options="dict.type.sys_normal_disable" :value="scope.row.isLock"/>
+              <dict-tag :options="dict.type.sys_normal_disable" :value="scope.row.isLock" />
             </template>
           </el-table-column>
           <el-table-column label="创建时间" align="center" prop="createTime" v-if="columns[6].visible" width="160">
@@ -169,28 +112,19 @@
               <span>{{ parseTime(scope.row.createTime) }}</span>
             </template>
           </el-table-column>
-          <el-table-column
-            label="操作"
-            align="center"
-            width="160"
-            class-name="small-padding fixed-width"
-          >
+          <el-table-column label="操作" align="center" width="160" class-name="small-padding fixed-width">
             <template slot-scope="scope" v-if="scope.row.userId !== 1">
-              <el-button
-                size="mini"
-                type="text"
-                icon="el-icon-edit"
-                @click="handleUpdate(scope.row)"
-                v-hasPermi="['system:user:edit']"
-              >修改</el-button>
-              <el-button
-                size="mini"
-                type="text"
-                icon="el-icon-delete"
-                @click="handleDelete(scope.row)"
-                v-hasPermi="['system:user:remove']"
-              >删除</el-button>
-              <el-dropdown size="mini" @command="(command) => handleCommand(command, scope.row)" v-hasPermi="['system:user:resetPwd', 'system:user:edit']">
+              <router-link :to="'/system/user-information/information/' + scope.row.id" class="link-type">
+
+                <el-button size="mini" type="text" icon="el-icon-edit">扩展</el-button>
+              </router-link>
+
+              <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
+                v-hasPermi="['system:user:edit']">修改</el-button>
+              <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
+                v-hasPermi="['system:user:remove']">删除</el-button>
+              <el-dropdown size="mini" @command="(command) => handleCommand(command, scope.row)"
+                v-hasPermi="['system:user:resetPwd', 'system:user:edit']">
                 <el-button size="mini" type="text" icon="el-icon-d-arrow-right">更多</el-button>
                 <el-dropdown-menu slot="dropdown">
                   <el-dropdown-item command="handleResetPwd" icon="el-icon-key"
@@ -203,13 +137,8 @@
           </el-table-column>
         </el-table>
 
-        <pagination
-          v-show="total>0"
-          :total="total"
-          :page.sync="queryParams.pageNum"
-          :limit.sync="queryParams.pageSize"
-          @pagination="getList"
-        />
+        <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
+          @pagination="getList" />
       </el-col>
     </el-row>
 
@@ -224,19 +153,14 @@
           </el-col>
           <el-col :span="14">
             <el-form-item label="所属机构" prop="orgId">
-<!--              <el-cascader-->
-<!--                v-model="form.orgId"-->
-<!--                :options="deptOptions"-->
-<!--                :props="{checkStrictly: true, label:'name'}"-->
-<!--                placeholder="请选择归属机构">-->
-<!--              </el-cascader>-->
-              <treeselect
-                v-model="form.orgId"
-                :options="deptOptions"
-                :show-count="true"
-                :normalizer="tenantIdnormalizer"
-                :props="{checkStrictly: true, label:'name'}"
-                placeholder="请选择归属机构" />
+              <!--              <el-cascader-->
+              <!--                v-model="form.orgId"-->
+              <!--                :options="deptOptions"-->
+              <!--                :props="{checkStrictly: true, label:'name'}"-->
+              <!--                placeholder="请选择归属机构">-->
+              <!--              </el-cascader>-->
+              <treeselect v-model="form.orgId" :options="deptOptions" :show-count="true" :normalizer="tenantIdnormalizer"
+                :props="{ checkStrictly: true, label: 'name' }" placeholder="请选择归属机构" />
             </el-form-item>
           </el-col>
         </el-row>
@@ -249,13 +173,8 @@
           <el-col :span="14">
             <el-form-item label="用户角色">
               <el-select style="width: 100%;" v-model="form.roleIds" multiple placeholder="请选择角色">
-                <el-option
-                  v-for="item in roleOptions"
-                  :key="item.id"
-                  :label="item.roleName"
-                  :value="item.id"
-                  :disabled="item.status == 1"
-                ></el-option>
+                <el-option v-for="item in roleOptions" :key="item.id" :label="item.roleName" :value="item.id"
+                  :disabled="item.status == 1"></el-option>
               </el-select>
             </el-form-item>
           </el-col>
@@ -273,7 +192,7 @@
           </el-col>
           <el-col :span="14">
             <el-form-item v-if="!form.id" label="用户密码" prop="password">
-              <el-input v-model="form.password" placeholder="请输入用户密码" type="password" maxlength="20" show-password/>
+              <el-input v-model="form.password" placeholder="请输入用户密码" type="password" maxlength="20" show-password />
             </el-form-item>
           </el-col>
         </el-row>
@@ -281,49 +200,42 @@
           <el-col :span="10">
             <el-form-item label="用户性别">
               <el-select style="width: 100%;" v-model="form.gender" placeholder="请选择性别">
-                <el-option
-                  v-for="dict in dict.type.sys_user_sex"
-                  :key="dict.value"
-                  :label="dict.label"
-                  :value="`${dict.value}`"
-                ></el-option>
+                <el-option v-for="dict in dict.type.sys_user_sex" :key="dict.value" :label="dict.label"
+                  :value="`${dict.value}`"></el-option>
               </el-select>
             </el-form-item>
           </el-col>
           <el-col :span="14">
             <el-form-item label="状态">
               <el-radio-group v-model="form.isLock">
-                <el-radio
-                  v-for="dict in dict.type.sys_normal_disable"
-                  :key="`${dict.value}`"
-                  :label="dict.value"
-                >{{dict.label}}</el-radio>
+                <el-radio v-for="dict in dict.type.sys_normal_disable" :key="`${dict.value}`"
+                  :label="dict.value">{{ dict.label }}</el-radio>
               </el-radio-group>
             </el-form-item>
           </el-col>
         </el-row>
-<!--        <el-row>-->
-<!--          <el-col :span="12">-->
-<!--            <el-form-item label="岗位">-->
-<!--              <el-select v-model="form.orgId" multiple placeholder="请选择岗位">-->
-<!--                <el-option-->
-<!--                  v-for="item in postOptions"-->
-<!--                  :key="item.postId"-->
-<!--                  :label="item.postName"-->
-<!--                  :value="item.postId"-->
-<!--                  :disabled="item.status == 1"-->
-<!--                ></el-option>-->
-<!--              </el-select>-->
-<!--            </el-form-item>-->
-<!--          </el-col>-->
-<!--        </el-row>-->
-<!--        <el-row>-->
-<!--          <el-col :span="24">-->
-<!--            <el-form-item label="备注">-->
-<!--              <el-input v-model="form.remark" type="textarea" placeholder="请输入内容"></el-input>-->
-<!--            </el-form-item>-->
-<!--          </el-col>-->
-<!--        </el-row>-->
+        <!--        <el-row>-->
+        <!--          <el-col :span="12">-->
+        <!--            <el-form-item label="岗位">-->
+        <!--              <el-select v-model="form.orgId" multiple placeholder="请选择岗位">-->
+        <!--                <el-option-->
+        <!--                  v-for="item in postOptions"-->
+        <!--                  :key="item.postId"-->
+        <!--                  :label="item.postName"-->
+        <!--                  :value="item.postId"-->
+        <!--                  :disabled="item.status == 1"-->
+        <!--                ></el-option>-->
+        <!--              </el-select>-->
+        <!--            </el-form-item>-->
+        <!--          </el-col>-->
+        <!--        </el-row>-->
+        <!--        <el-row>-->
+        <!--          <el-col :span="24">-->
+        <!--            <el-form-item label="备注">-->
+        <!--              <el-input v-model="form.remark" type="textarea" placeholder="请输入内容"></el-input>-->
+        <!--            </el-form-item>-->
+        <!--          </el-col>-->
+        <!--        </el-row>-->
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button type="primary" @click="submitForm">确 定</el-button>
@@ -333,18 +245,9 @@
 
     <!-- 用户导入对话框 -->
     <el-dialog :title="upload.title" :visible.sync="upload.open" width="400px" append-to-body>
-      <el-upload
-        ref="upload"
-        :limit="1"
-        accept=".xlsx, .xls"
-        :headers="upload.headers"
-        :action="upload.url + '?updateSupport=' + upload.updateSupport"
-        :disabled="upload.isUploading"
-        :on-progress="handleFileUploadProgress"
-        :on-success="handleFileSuccess"
-        :auto-upload="false"
-        drag
-      >
+      <el-upload ref="upload" :limit="1" accept=".xlsx, .xls" :headers="upload.headers"
+        :action="upload.url + '?updateSupport=' + upload.updateSupport" :disabled="upload.isUploading"
+        :on-progress="handleFileUploadProgress" :on-success="handleFileSuccess" :auto-upload="false" drag>
         <i class="el-icon-upload"></i>
         <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
         <div class="el-upload__tip text-center" slot="tip">
@@ -352,7 +255,8 @@
             <el-checkbox v-model="upload.updateSupport" /> 是否更新已经存在的用户数据
           </div>
           <span>仅允许导入xls、xlsx格式文件。</span>
-          <el-link type="primary" :underline="false" style="font-size:12px;vertical-align: baseline;" @click="importTemplate">下载模板</el-link>
+          <el-link type="primary" :underline="false" style="font-size:12px;vertical-align: baseline;"
+            @click="importTemplate">下载模板</el-link>
         </div>
       </el-upload>
       <div slot="footer" class="dialog-footer">
@@ -437,7 +341,7 @@ export default {
         phone: null,
         status: null,
         orgId: null,
-        checkSub:false
+        checkSub: false
       },
       // 列信息
       columns: [
@@ -478,7 +382,7 @@ export default {
         ]
       },
       //默认选中节点
-      defaultKeys:[]
+      defaultKeys: []
     };
   },
   watch: {
@@ -506,20 +410,20 @@ export default {
       }
     },
     /** 下穿状态改变*/
-    changeCheckBox(){
+    changeCheckBox() {
       this.getList();
     },
     /** 查询用户列表 */
     getList(id) {
       this.loading = true;
       listUser(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
-          //兼容框架userId字段
-          response.rows.forEach(v=>{v.userId = v.id});
-          this.userList = response.rows;
-          this.total = response.total;
-          this.loading = false;
-        }
-      ).catch(err=>{
+        //兼容框架userId字段
+        response.rows.forEach(v => { v.userId = v.id });
+        this.userList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      }
+      ).catch(err => {
         this.loading = false;
       })
     },
@@ -527,7 +431,7 @@ export default {
     getDeptTree() {
       deptTreeSelect().then(response => {
         this.deptOptions = response.data;
-        console.log( this.deptOptions,' this.deptOptions')
+        console.log(this.deptOptions, ' this.deptOptions')
         this.defaultKeys.push(response.data[0].id);
         this.queryParams.orgId = response.data[0].id;
         this.handleQuery();
@@ -546,15 +450,15 @@ export default {
     // 用户状态修改
     handleStatusChange(row) {
       let text = row.status === "1" ? "启用" : "停用";
-      this.$modal.confirm( '确认要' + text + '"' + row.name + '"用户吗?').then(function() {
+      this.$modal.confirm('确认要' + text + '"' + row.name + '"用户吗?').then(function () {
         const data = {
-          id:row.id,
-          isLock:row.isLock
+          id: row.id,
+          isLock: row.isLock
         }
         return changeUserStatus(data);
       }).then(() => {
         this.$modal.msgSuccess(text + "成功");
-      }).catch(function() {
+      }).catch(function () {
         row.status = row.status === "0" ? "1" : "0";
       });
     },
@@ -630,7 +534,7 @@ export default {
       this.reset();
       const userId = row.id || this.ids;
       getUser(userId).then(response => {
-        console.log(response.data,'data')
+        console.log(response.data, 'data')
         this.form = response.data;
         this.postOptions = response.posts;
         this.roleOptions = response.roles;
@@ -643,7 +547,7 @@ export default {
     },
     /** 重置密码按钮操作 */
     handleResetPwd(row) {
-      console.log(row,'row')
+      console.log(row, 'row')
       this.$prompt('请输入"' + row.name + '"的新密码', "提示", {
         confirmButtonText: "确定",
         cancelButtonText: "取消",
@@ -651,22 +555,22 @@ export default {
         inputPattern: /^.{5,20}$/,
         inputErrorMessage: "用户密码长度必须介于 5 和 20 之间"
       }).then(({ value }) => {
-          let data = {
-            id:row.userId,
-            password:value
-          }
-          resetUserPwd(data).then(response => {
-            this.$modal.msgSuccess("修改成功,新密码是:" + value);
-          });
-        }).catch(() => {});
+        let data = {
+          id: row.userId,
+          password: value
+        }
+        resetUserPwd(data).then(response => {
+          this.$modal.msgSuccess("修改成功,新密码是:" + value);
+        });
+      }).catch(() => { });
     },
     /** 分配角色操作 */
-    handleAuthRole: function(row) {
+    handleAuthRole: function (row) {
       const userId = row.id;
       this.$router.push("/system/user-auth/role/" + userId);
     },
     /** 提交按钮 */
-    submitForm: function() {
+    submitForm: function () {
       this.$refs["form"].validate(valid => {
         if (valid) {
           if (this.form.id != undefined) {
@@ -689,12 +593,12 @@ export default {
     handleDelete(row) {
       console.log(row);
       const userIds = row.id || this.ids;
-      this.$modal.confirm('是否确认删除用户编号为"' + userIds + '"的数据项?').then(function() {
+      this.$modal.confirm('是否确认删除用户编号为"' + userIds + '"的数据项?').then(function () {
         return delUser(userIds);
       }).then(() => {
         this.getList();
         this.$modal.msgSuccess("删除成功");
-      }).catch(() => {});
+      }).catch(() => { });
     },
     /** 导出按钮操作 */
     handleExport() {
@@ -731,9 +635,5 @@ export default {
   }
 };
 </script>
-<style lang="scss">
-
-</style>
-<style lang="scss" scoped>
-
-</style>
+<style lang="scss"></style>
+<style lang="scss" scoped></style>

+ 787 - 0
src/views/system/user/information.vue

@@ -0,0 +1,787 @@
+<template>
+  <div class="container" style="
+      min-height: 100%;
+      padding-bottom: 100px;
+      margin-left: 25px;
+      margin-top: 20px;
+    ">
+
+    <el-descriptions title="编辑管理人员信息">
+      <el-descriptions-item label="用户名">{{ username }}</el-descriptions-item>
+      <el-descriptions-item label="姓名">{{ name }}</el-descriptions-item>
+      <el-descriptions-item label="工号">{{
+        jobNumber
+      }}</el-descriptions-item>
+      <el-descriptions-item label="手机">{{
+        phone
+      }}</el-descriptions-item>
+      <el-descriptions-item label="性别">{{
+        gender > 0 ? (gender > 1 ? "未知" : "女") : "男"
+      }}</el-descriptions-item>
+      <el-descriptions-item label="状态">{{
+        isLock !== "0" ? "禁用" : "启用"
+      }}</el-descriptions-item>
+      <el-descriptions-item label="机构">{{ orgName }}</el-descriptions-item>
+
+      <el-descriptions-item label="角色">{{
+        roleName
+      }}</el-descriptions-item>
+
+      <!-- <el-descriptions-item label="机构类型">一级机构</el-descriptions-item> -->
+    </el-descriptions>
+
+    <el-descriptions title="补充基础信息"></el-descriptions>
+    <div div-lc-mark>
+      <el-form inline class="demo-form-inline">
+        <el-row>
+          <el-col :span="14">
+
+          </el-col>
+          <!-- <el-form-item label="所属机构" prop="deptId">
+       
+              <treeselect v-model="form.deptId" :options="deptOptions" :show-count="true" :normalizer="tenantIdnormalizer"
+                :props="{ checkStrictly: true, label: 'name' }" placeholder="请选择归属机构" />
+            </el-form-item> -->
+          <el-form-item label="所属部门" prop="deptId">
+            <treeselect v-model="deptId" :options="deptList" :show-count="true" :normalizer="tenantIdnormalizer"
+              :props="{ checkStrictly: true, label: 'name' }" placeholder="请选择" />
+          </el-form-item> 
+
+          <el-form-item v-if="1" label="责任职务" style="margin-left: 270px">
+            <el-input v-model="dutiesId" placeholder="责任职务"></el-input>
+          </el-form-item>
+
+          <el-form-item v-if="1" label="用工形式" style="margin-left: 258px">
+            <el-input v-model="workType" placeholder="用工形式"></el-input>
+          </el-form-item>
+        </el-row>
+
+      </el-form>
+    </div>
+    <div v-if="1">
+      <div div-lc-mark>
+        <el-switch v-model="isFullTime" active-text inactive-text="是否专职"></el-switch>
+
+        <el-form-item v-if="1" label="最高学历" style="margin-left: 258px">
+          <el-select v-model="highestEducation" placeholder="最高学历">
+            <el-option
+                  v-for="dict in dict.type.sys_highest_education"
+                  :key="dict.value"
+                  :label="dict.label"
+                  :value="`${dict.value}`"
+                ></el-option>
+          </el-select>
+        </el-form-item>
+        <!-- <el-form-item label="机构类型" prop="orgType">
+              <el-select v-model="form.orgType" placeholder="请选择机构类型">
+                <el-option
+                  v-for="dict in dict.type.sys_org_type"
+                  :key="dict.value"
+                  :label="dict.label"
+                  :value="`${dict.value}`"
+                ></el-option>
+              </el-select>
+            </el-form-item> -->
+        <!-- <el-form-item
+          style="margin-left: 270px"
+          v-if="1"
+          label="平台供应商品牌"
+        >
+          <el-select
+            v-model="platformSupplierBrand"
+            placeholder="平台供应商品牌"
+          >
+            <el-option
+              v-for="(platformSupplierB, key) in platformSupplierBrands"
+              :key="key"
+              :label="platformSupplierB.label"
+              :value="platformSupplierB.value"
+            ></el-option>
+          </el-select>
+        </el-form-item> -->
+        <!-- <el-form-item label="机构类型" prop="highestEducation">
+            <el-select
+              v-model="queryParams.highestEducation"
+              placeholder="请选择"
+              clearable
+              style="width: 240px"
+            >
+              <el-option
+                v-for="dict in dict.type.sys_highest_education"
+                :key="dict.value"
+                :label="dict.label"
+                :value="dict.value"
+              />
+            </el-select>
+          </el-form-item> -->
+      </div>
+      <!-- <div div-lc-mark style="margin-top: 20px">
+        <el-col :span="1.5">
+          <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleOrgAdd"
+            v-hasPermi="['system:construction:add']">新增</el-button>
+        </el-col>
+        <el-table v-loading="orgloading" :data="constructionList" @selection-change="handleOrgSelectionChange">
+          <el-table-column type="selection" width="55" align="center" />
+          <el-table-column label="id" align="center" prop="id" />
+          <el-table-column label="标准" align="center" prop="standard" />
+          <el-table-column label="达标日期" align="center" prop="dateOfCompliance" width="180">
+            <template slot-scope="scope">
+              <span>{{ parseTime(scope.row.dateOfCompliance) }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column label="是否证书佐证" align="center" prop="certificateEvidence" />
+          <el-table-column label="证书" align="center" prop="certificate" />
+          <el-table-column label="佐证" align="center" prop="evidence" />
+          <el-table-column v-if="false" label="机构id" align="center" prop="orgId" />
+          <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+            <template slot-scope="scope">
+              <el-button size="mini" type="text" icon="el-icon-edit" @click="handleOrgUpdate(scope.row)"
+                v-hasPermi="['system:construction:edit']">查看证书</el-button>
+              <el-button size="mini" type="text" icon="el-icon-edit" @click="handleOrgUpdate(scope.row)"
+                v-hasPermi="['system:construction:edit']">修改</el-button>
+              <el-button size="mini" type="text" icon="el-icon-delete" @click="handleOrgDelete(scope.row)"
+                v-hasPermi="['system:construction:remove']">删除</el-button>
+            </template>
+          </el-table-column>
+        </el-table>
+      </div> -->
+      
+      <!-- <el-descriptions title="保安" style="margin-top: 20px"></el-descriptions>
+      <div div-lc-mark>
+        <el-switch style="margin-right: 100px" v-model="askari" active-text inactive-text="是否有保安"></el-switch>
+        <span>上传保安证</span>
+    
+        <div class="image-container" style="margin-left: 20px">
+          <el-image :src="uploadp" fit="contain"></el-image>
+        </div>
+        <div class="image-container" style="margin-right: 0">
+          <el-image :src="uplp" fit="contain"></el-image>
+        </div>
+      </div> -->
+      <div div-lc-mark style="margin-top: 10px">
+        <el-descriptions title="业务库设置"></el-descriptions>
+      </div>
+      <div div-lc-mark>
+        <span>业务库类型:</span>
+        <el-select v-model="businessLibraryType" placeholder="活动区域" style="margin-left: 5px">
+          <el-option v-for="(businessLibraryTy, key) in businessLibraryTypes" :key="key" :label="businessLibraryTy.label"
+            :value="businessLibraryTy.value"></el-option>
+        </el-select>
+        <span style="margin-left: 50px">值守方式</span>
+        <el-radio-group v-model="dutyMode" style="margin-left: 10px">
+          <el-radio :label="0">同楼异地值守</el-radio>
+          <el-radio :label="1">远程值守</el-radio>
+        </el-radio-group>
+        <el-switch style="margin-left: 50px" v-model="remoteControl" active-text inactive-text="业务库出入口远程控制"></el-switch>
+      </div>
+      <div div-lc-mark>
+        <el-descriptions title="在行自助银行设置" style="margin-top: 20px"></el-descriptions>
+      </div>
+      <div div-lc-mark>
+        <el-switch v-model="selfServiceBank" active-text inactive-text="是否有在行自助银行"></el-switch>
+        <span style="margin-left: 50px">在行式大堂设备</span>
+        <div style="display: inline-block; width: 200px">
+          <el-input-number style="margin-left: 10px" v-model="lobbyEquipment" controls-position="right"
+            @change="handleChange" :min="1" :max="10"></el-input-number>
+        </div>
+        <span style="margin-left: 50px">在行式穿墙设备</span>
+        <div style="display: inline-block; width: 200px">
+          <el-input-number style="margin-left: 10px" v-model="wallPenetratingEquipment" controls-position="right"
+            @change="handleChange" :min="1" :max="10"></el-input-number>
+        </div>
+      </div>
+      <div div-lc-mark style="margin-top: 20px">
+        <el-col :span="1.5">
+          <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleBankAdd"
+            v-hasPermi="['system:BankPhysicalDefenseConstruction:add']">新增</el-button>
+        </el-col>
+        <el-table v-loading="bankloading" :data="BankPhysicalDefenseConstructionList"
+          @selection-change="handleBankSelectionChange">
+          <el-table-column type="selection" width="55" align="center" />
+          <el-table-column label="id" align="center" prop="id" />
+          <el-table-column label="标准" align="center" prop="standard" />
+          <el-table-column label="达标日期" align="center" prop="dateOfCompliance" width="180">
+            <template slot-scope="scope">
+              <span>{{
+                parseTime(scope.row.dateOfCompliance, "YYYY-MM-dd HH:mm:ss")
+              }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column label="是否证书佐证" align="center" prop="certificateEvidence" />
+          <el-table-column label="证书" align="center" prop="certificate" />
+          <el-table-column label="佐证" align="center" prop="evidence" />
+          <el-table-column v-if="false" label="机构id" align="center" prop="orgId" />
+          <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+            <template slot-scope="scope">
+              <el-button size="mini" type="text" icon="el-icon-edit" @click="handleBankUpdate(scope.row)"
+                v-hasPermi="['system:construction:edit']">查看证书</el-button>
+              <el-button size="mini" type="text" icon="el-icon-edit" @click="handleBankUpdate(scope.row)"
+                v-hasPermi="['system:BankPhysicalDefenseConstruction:edit']">修改</el-button>
+              <el-button size="mini" type="text" icon="el-icon-delete" @click="handleBankDelete(scope.row)"
+                v-hasPermi="['system:BankPhysicalDefenseConstruction:remove']">删除</el-button>
+            </template>
+          </el-table-column>
+        </el-table>
+
+        <!-- 添加或修改银行物防建设对话框 -->
+        <el-dialog :title="Banktitle" :visible.sync="Bankopen" width="500px" append-to-body>
+          <el-form ref="Bankform" :model="Bankform" label-width="80px">
+            <el-form-item label="标准" prop="standard">
+              <el-input v-model="Bankform.standard" placeholder="请输入标准" />
+            </el-form-item>
+            <el-form-item label="达标日期" prop="dateOfCompliance">
+              <el-date-picker clearable v-model="Bankform.dateOfCompliance" type="date" value-format="yyyy-MM-dd HH:mm:ss"
+                placeholder="请选择达标日期">
+              </el-date-picker>
+            </el-form-item>
+            <el-form-item label="是否证书佐证" prop="certificateEvidence">
+              <el-input v-model="Bankform.certificateEvidence" placeholder="请输入是否证书佐证" />
+            </el-form-item>
+            <el-form-item label="证书" prop="certificate">
+              <el-input v-model="Bankform.certificate" placeholder="请输入证书" />
+            </el-form-item>
+            <el-form-item label="佐证" prop="evidence">
+              <el-input v-model="Bankform.evidence" placeholder="请输入佐证" />
+            </el-form-item>
+            <el-form-item v-if="false" label="机构id" prop="orgId">
+              <el-input v-model="Bankform.orgId" placeholder="请输入机构id" />
+            </el-form-item>
+          </el-form>
+          <div slot="footer" class="dialog-footer">
+            <el-button type="primary" @click="submitBankForm">确 定</el-button>
+            <el-button @click="Bankcancel">取 消</el-button>
+          </div>
+        </el-dialog>
+      </div>
+      <el-dialog :title="orgtitle" :visible.sync="orgopen" width="500px" append-to-body>
+        <el-form ref="orgform" :model="orgform" label-width="80px">
+          <el-form-item label="标准" prop="standard">
+            <el-input v-model="orgform.standard" placeholder="请输入标准" />
+          </el-form-item>
+          <el-form-item label="达标日期" prop="dateOfCompliance">
+            <el-date-picker clearable v-model="orgform.dateOfCompliance" type="date" value-format="yyyy-MM-dd HH:mm:ss"
+              placeholder="请选择达标日期">
+            </el-date-picker>
+          </el-form-item>
+          <el-form-item label="是否证书佐证" prop="certificateEvidence">
+            <el-input v-model="orgform.certificateEvidence" placeholder="请输入是否证书佐证" />
+          </el-form-item>
+          <el-form-item label="证书" prop="certificate">
+            <el-input v-model="orgform.certificate" placeholder="请输入证书" />
+          </el-form-item>
+          <el-form-item label="佐证" prop="evidence">
+            <el-input v-model="orgform.evidence" placeholder="请输入佐证" />
+          </el-form-item>
+          <el-form-item v-if="false" label="机构id" prop="orgId">
+            <el-input v-model="orgform.orgId" placeholder="请输入机构id" />
+          </el-form-item>
+        </el-form>
+        <div slot="footer" class="dialog-footer">
+          <el-button type="primary" @click="submitOrgForm">确 定</el-button>
+          <el-button @click="orgcancel">取 消</el-button>
+        </div>
+      </el-dialog>
+    </div>
+    <div style="margin-top: 50px; margin-left: 42%">
+      <el-button type="primary" @click="saveExtend" size="small">提交</el-button>
+      <el-button type="primary" @click="nosaveExtend" size="small">取消</el-button>
+    </div>
+  </div>
+</template>
+
+<script>
+import uploadpng from "@/assets/images/upload.png";
+import uplpng from "@/assets/images/upl.png";
+import { deptTreeList } from "@/api/system/public";
+import {
+  getUser
+} from "@/api/system/user";
+import{ getInformationByUserId}from "@/api/system/information"
+import request from '@/utils/request'
+import Treeselect from "@riophae/vue-treeselect";
+import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+
+// import {
+//   listOrgPhysicalDefenseConstruction,
+//   getOrgPhysicalDefenseConstruction,
+//   addOrgPhysicalDefenseConstruction,
+//   updateOrgPhysicalDefenseConstruction,
+//   delOrgPhysicalDefenseConstruction,
+// } from "@/api/system/OrgPhysicalDefenseConstruction";
+// import {
+//   listBankPhysicalDefenseConstruction,
+//   getBankPhysicalDefenseConstruction,
+//   delBankPhysicalDefenseConstruction,
+//   addBankPhysicalDefenseConstruction,
+//   updateBankPhysicalDefenseConstruction,
+// } from "@/api/system/BankPhysicalDefenseConstruction";
+export default {
+  dicts:['sys_highest_education'],
+  props: [],
+  components: {},
+  data() {
+    return {
+      //个人信息回显的
+      username: null,
+      name: null,
+      jobNumber: null,
+      phone: null,
+      gender: null,
+      isLock: null,
+      orgName: null,
+      roleName: null,
+      id: null,
+      //机构补充信息
+      deptId: null,
+      dutiesId: null,
+      workType: null,
+      isFullTime: null,
+      highestEducation: null,
+      educationType: null,
+      certificateWork: null,
+      professionalQualifications: null,
+      certificateFailReason: null,
+      workTime: null,
+      entryTime: null,
+      bornTime: null,
+      responsibilitiesLeaderName: null,
+      responsibilitiesLeaderDuties: null,
+      qualificationCertificateUrl: null,
+          // 查询参数
+          queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        name: null,
+        updateId: null,
+        orgType: null
+      },
+      // orgType: 1,
+      // weatherAreaCode: null,
+      // premisesArea: null,
+      // ownership: null,
+      // outsideArea: null,
+      // askari: 1,
+      // businessLibraryType: 1,
+      // dutyMode: 0,
+      // remoteControl: null,
+      // selfServiceBank: null,
+      // lobbyEquipment: 1,
+      // wallPenetratingEquipment: 2,
+      // platformBrand: null,
+      // platformSupplierBrand: null,
+      // constructionTime:null,
+      // lastUpdateTime:null,
+      //机构建设数据
+
+      // 遮罩层
+      orgloading: true,
+      // 选中数组
+      orgids: [],
+      // 选中数组
+      Bankids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 机构物防建设表格数据
+      constructionList: [],
+      // 银行物防建设表格数据
+      BankPhysicalDefenseConstructionList: [],
+      // 部门树选项
+      deptOptions: undefined,
+      // 机构树选项
+      deptList: null,
+      // 弹出层标题
+      orgtitle: "",
+      // 弹出层标题
+      Banktitle: "",
+      // 是否显示弹出层
+      Bankopen: false,
+      // 表单参数
+      Bankform: {},
+      // 是否显示弹出层
+      orgopen: false,
+      // 表单参数
+      orgform: {},
+      //2个图片信息
+      uploadp: uploadpng,
+      uplp: uplpng,
+      //下拉框生成信息
+      orgTypes: {
+        orgTyp1: { label: "营业网点", value: 0 },
+        orgTyp2: { label: "监控中心", value: 1 },
+      },
+      businessLibraryTypes: {
+        businessLibraryTyp1: { label: "1类业务库", value: 1 },
+        businessLibraryTyp2: { label: "2类业务库", value: 2 },
+        businessLibraryTyp3: { label: "3类业务库", value: 3 },
+      },
+      platformBrands: {
+        platformBrand1: { label: "品牌1", value: 0 },
+        platformBrand2: { label: "品牌2", value: 1 },
+      },
+      platformSupplierBrands: {
+        platformSupplierBrand1: { label: "品牌1", value: 0 },
+        platformSupplierBrand2: { label: "品牌2", value: 1 },
+      },
+      prop: "",
+      propItem: "",
+
+      row: "",
+    };
+  },
+  watch: {},
+  computed: {
+    switchModel: {
+      get() {
+        return this.switchValue === 1; // 将0转换为false,1转换为true
+      },
+      set(value) {
+        this.switchValue = value ? 1 : 0; // 将false转换为0,true转换为1
+      },
+    },
+  },
+  /** 查询机构下拉树结构 */
+  // getDeptTree() {
+  //     deptTreeSelect().then(response => {
+  //       this.deptOptions = response.data;
+  //       console.log(this.deptOptions, ' this.deptOptions')
+  //       this.defaultKeys.push(response.data[0].id);
+  //       this.queryParams.orgId = response.data[0].id;
+  //       this.handleQuery();
+  //     });
+  //   },
+
+  /** 查询机构下拉树结构 */
+  // getDeptTreeList() {
+  //   deptTreeList().then(response => {
+  //       this.deptList = response.data;
+  //      // this.defaultKeys.push(response.data[0].deptId);
+  //       this.queryParams.deptId = response.data[0].deptId;
+  //       this.handleQuery();
+  //     });
+  //   },
+  created() {
+    this.getOrgInfo();
+    this.getDeptTreeList();
+    // this.getOrgPhysicalDefenseConstructionInfo();
+    //this.getBankPhysicalDefenseConstructionInfo();
+  },
+  mounted() { },
+
+  methods: {
+
+    //自定义数据
+    tenantIdnormalizer(node, instanceId) {
+      if (node.children && !node.children.length) {
+        delete node.children
+      }
+      return {
+        id: node.id,
+        label: node.name,
+        children: node.children
+      }
+    },
+
+    request() { },
+    handleChange(value) { },
+    getOrgInfo() {
+      getUser(this.$route.params.id).then((data) => {
+        if (data.data != null) {
+          this.username = data.data.username;
+          this.name = data.data.name;
+          this.jobNumber = data.data.jobNumber;
+          this.phone = data.data.phone;
+          this.gender = data.data.gender;
+          this.isLock = data.data.isLock;
+          this.orgName = data.data.orgName;
+          this.roleName = data.roleName;
+
+        }
+      });
+    },
+    /** 查询机构下拉树结构 */
+    getDeptTreeList() {
+      deptTreeList().then(response => {
+        this.deptList = response.data;
+        this.defaultKeys.push(response.data[0].deptId);
+        this.queryParams.deptId = response.data[0].deptId;
+        this.handleQuery();
+      });
+    },
+        /** 查询机构下拉树结构 */
+        getDeptInfo() {
+      getInformationByUserId(this.$route.params.id).then(response => {
+        this.deptList = response.data;
+        this.defaultKeys.push(response.data[0].deptId);
+        this.queryParams.deptId = response.data[0].deptId;
+        this.handleQuery();
+      });
+    },
+    getInformation(){
+      getInformationByUserId(this.$route.params.id).then((data)=>{
+        if (data.data != null) {
+          this.deptId=data.data.deptId;
+          this.dutiesId=data.data.dutiesId;
+          this.workType=data.data.workType;
+          this.isFullTime=data.data.isFullTime;
+          this.highestEducation=data.data.highestEducation;
+          this.educationType=data.data.educationType;
+          this.certificateWork=data.data.certificateWork;
+          this.professionalQualifications=data.data.professionalQualifications;
+          this.certificateFailReason=data.data.certificateFailReason;
+          this.workTime=data.data.workTime;
+          this.entryTime=data.data.entryTime;
+          this.bornTime=data.data.bornTime;
+          this.responsibilitiesLeaderName=data.data.responsibilitiesLeaderName;
+          this.responsibilitiesLeaderDuties=data.data.responsibilitiesLeaderDuties;
+          this.qualificationCertificateUrl=data.data.qualificationCertificateUrl;
+        }
+      })
+    },
+    // getExtendInfo() {
+    //   getExtendByOrgId(this.$route.params.id).then((data) => {
+
+    //     if (data.data != null) {
+    //       this.orgType = data.data.orgType;
+    //       this.weatherAreaCode = data.data.weatherAreaCode;
+    //       this.premisesArea = data.data.premisesArea;
+    //       this.ownership = data.data.ownership;
+    //       this.outsideArea = data.data.outsideArea;
+    //       this.askari = data.data.askari;
+    //       this.remoteControl = data.data.remoteControl;
+    //       this.selfServiceBank = data.data.selfServiceBank;
+    //       this.lobbyEquipment = data.data.lobbyEquipment;
+    //       this.wallPenetratingEquipment = data.data.wallPenetratingEquipment;
+    //     }
+    //   });
+    // },
+    getOrgPhysicalDefenseConstructionInfo() {
+      this.orgloading = true;
+      let dat = { orgId: this.$route.params.id };
+      listOrgPhysicalDefenseConstruction(dat).then((data) => {
+        console.log(data);
+        this.constructionList = data.rows;
+        this.orgloading = false;
+      });
+    },
+    // getBankPhysicalDefenseConstructionInfo() {
+    //   this.bankloading = true;
+    //   let dat = { orgId: this.$route.params.id };
+    //   listBankPhysicalDefenseConstruction(dat).then((data) => {
+    //     console.log(data);
+    //     this.BankPhysicalDefenseConstructionList = data.rows;
+    //     this.bankloading = false;
+    //   });
+    // },
+    // 取消按钮
+    Bankcancel() {
+      this.Bankopen = false;
+      this.Bankreset();
+    },
+    // 表单重置
+    // Bankreset() {
+    //   this.Bankform = {
+    //     id: null,
+    //     standard: null,
+    //     dateOfCompliance: null,
+    //     certificateEvidence: null,
+    //     certificate: null,
+    //     evidence: null,
+    //     createTime: null,
+    //     updateTime: null,
+    //     createBy: null,
+    //     updateBy: null,
+    //     orgId: null,
+    //   };
+    //   this.resetForm("Bankform");
+    // },
+    // 多选框选中数据
+    handleBankSelectionChange(selection) {
+      this.Bankids = selection.map((item) => item.id);
+      this.single = selection.length !== 1;
+      this.multiple = !selection.length;
+    },
+    /** 新增按钮操作 */
+    handleBankAdd() {
+      this.Bankreset();
+      this.Bankopen = true;
+      this.Banktitle = "添加银行物防建设";
+    },
+    /** 修改按钮操作 */
+    handleBankUpdate(row) {
+      this.Bankreset();
+      const id = row.id || this.Bankids;
+      getBankPhysicalDefenseConstruction(id).then((response) => {
+        this.Bankform = response.data;
+        this.Bankopen = true;
+        this.Banktitle = "修改银行物防建设";
+      });
+    },
+    /** 提交按钮 */
+    submitBankForm() {
+      this.Bankform.orgId = this.$route.params.id;
+      this.$refs["Bankform"].validate((valid) => {
+        if (valid) {
+          if (this.Bankform.id != null) {
+            updateBankPhysicalDefenseConstruction(this.Bankform).then(
+              (response) => {
+                this.$modal.msgSuccess("修改成功");
+                this.Bankopen = false;
+                this.getBankPhysicalDefenseConstructionInfo();
+              }
+            );
+          } else {
+            addBankPhysicalDefenseConstruction(this.Bankform).then(
+              (response) => {
+                this.$modal.msgSuccess("新增成功");
+                this.Bankopen = false;
+                this.getBankPhysicalDefenseConstructionInfo();
+              }
+            );
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleBankDelete(row) {
+      const Bankids = row.id || this.Bankids;
+      this.$modal
+        .confirm('是否确认删除银行物防建设编号为"' + Bankids + '"的数据项?')
+        .then(function () {
+          return delBankPhysicalDefenseConstruction(Bankids);
+        })
+        .then(() => {
+          this.getBankPhysicalDefenseConstructionInfo();
+          this.$modal.msgSuccess("删除成功");
+        })
+        .catch(() => { });
+    },
+    // 表单重置
+    // orgreset() {
+    //   this.orgform = {
+    //     id: null,
+    //     standard: null,
+    //     dateOfCompliance: null,
+    //     certificateEvidence: null,
+    //     certificate: null,
+    //     evidence: null,
+    //     createTime: null,
+    //     updateTime: null,
+    //     createBy: null,
+    //     updateBy: null,
+    //     orgId: null,
+    //   };
+    //   this.resetForm("orgform");
+    // },
+    // 取消按钮
+    orgcancel() {
+      this.orgopen = false;
+      this.orgreset();
+    },
+    // 多选框选中数据
+    handleOrgSelectionChange(selection) {
+      this.orgids = selection.map((item) => item.id);
+      this.single = selection.length !== 1;
+      this.multiple = !selection.length;
+    },
+    /** 新增按钮操作 */
+    handleOrgAdd() {
+      this.orgreset();
+      this.orgopen = true;
+      this.orgtitle = "添加机构物防建设";
+    },
+    /** 修改按钮操作 */
+    handleOrgUpdate(row) {
+      this.orgreset();
+      const id = row.id || this.orgids;
+      getOrgPhysicalDefenseConstruction(id).then((response) => {
+        // console.log(response)
+        this.orgform = response.data;
+        this.orgopen = true;
+        this.orgtitle = "修改机构物防建设";
+      });
+    },
+    /** 提交按钮 */
+    submitOrgForm() {
+      this.orgform.orgId = this.$route.params.id;
+      this.$refs["orgform"].validate((valid) => {
+        if (valid) {
+          if (this.orgform.id != null) {
+            updateOrgPhysicalDefenseConstruction(this.orgform).then(
+              (response) => {
+                this.$modal.msgSuccess("修改成功");
+                this.orgopen = false;
+                this.getOrgPhysicalDefenseConstructionInfo();
+              }
+            );
+          } else {
+            addOrgPhysicalDefenseConstruction(this.orgform).then((response) => {
+              this.$modal.msgSuccess("新增成功");
+              this.orgopen = false;
+              this.getOrgPhysicalDefenseConstructionInfo();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleOrgDelete(row) {
+      const orgids = row.id || this.orgids;
+      this.$modal
+        .confirm('是否确认删除机构物防建设编号为"' + orgids + '"的数据项?')
+        .then(function () {
+          return delOrgPhysicalDefenseConstruction(orgids);
+        })
+        .then(() => {
+          this.getOrgPhysicalDefenseConstructionInfo();
+          this.$modal.msgSuccess("删除成功");
+        })
+        .catch(() => { });
+    },
+    saveExtend() {
+      let dat = {
+        deptId: this.deptId,
+        dutiesId: this.dutiesId,
+        premisesArea: this.premisesArea,
+        ownership: this.ownership,
+        outsideArea: this.outsideArea,
+        askari: this.askari,
+        businessLibraryType: this.businessLibraryType,
+        dutyMode: this.dutyMode,
+        remoteControl: this.remoteControl,
+        selfServiceBank: this.selfServiceBank,
+        lobbyEquipment: this.lobbyEquipment,
+        wallPenetratingEquipment: this.wallPenetratingEquipment,
+        platformBrand: this.platformBrand,
+        platformSupplierBrand: this.platformSupplierBrand,
+        constructionTime: this.constructionTime,
+        lastUpdateTime: this.lastUpdateTime,
+      };
+      console.log(dat);
+    },
+    nosaveExtend() { },
+  },
+  fillter: {},
+};
+</script>
+
+<style scoped>
+.demo-form-inline {}
+
+.dialog-footer {}
+
+.container {}
+
+.image-container {
+  display: inline-block;
+  width: 200px;
+  height: 200px;
+  margin-right: 20px;
+  /* 设置与下一个div的水平间距 */
+}
+</style>