| 
					
				 | 
			
			
				@@ -0,0 +1,876 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  <div class="m-container"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    <h2> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      <div class="squrt"></div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      OA信息管理 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    </h2> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    <div class="m-core"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      <save-form 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        :inline="true" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        class="searchForm" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ref="searchForm" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        @submit="search" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        @reset="reset" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        :model="searchForm" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <el-form-item prop="search"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <el-input 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            type="text" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            clearable 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            v-model.trim="searchForm.search" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            @keyup.enter.native="search" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            placeholder="姓名、编号、手机号" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          ></el-input> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </el-form-item> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <el-form-item prop="jobNature"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <el-select 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            v-model.trim="searchForm.jobNature" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            clearable 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            filterable 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            placeholder="请选择工作类型" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <el-option label="全职" value="FULL_TIME"></el-option> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <el-option label="兼职" value="PART_TIME"></el-option> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          </el-select> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </el-form-item> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <el-form-item prop="deptId"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <el-cascader 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            v-model="searchForm.deptId" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            placeholder="请选择社保分部" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            clearable 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            style="width: 100%" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            :options="deptSmallList" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            :show-all-levels="false" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            :collapse-tags="true" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            :props="{ checkStrictly: false }" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          ></el-cascader> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </el-form-item> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <el-form-item prop="deptIds"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <el-cascader 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            v-model="searchForm.deptIds" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            placeholder="请选择所属部门" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            clearable 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            style="width: 100%" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            :options="deptList" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            :show-all-levels="false" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            :collapse-tags="true" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            @change="onDeptChange" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            :props="{ multiple: true, checkStrictly: false }" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          ></el-cascader> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </el-form-item> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <el-form-item> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <el-button native-type="submit" type="danger">搜索</el-button> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <el-button native-type="reset" type="primary">重置</el-button> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </el-form-item> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      </save-form> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      <!-- <el-button 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        type="primary" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        style="margin-bottom: 20px" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        @click="roleOperation('create')" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        v-permission="'employee/add'" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        >添加</el-button 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      > --> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      <!-- 列表 --> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      <div class="tableWrap"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <el-table 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          :data="tableList" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          :header-cell-style="{ background: '#EDEEF0', color: '#444' }" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <el-table-column align="center" prop="id" label="员工编号"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <template slot-scope="scope"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <copy-text>{{ scope.row.id }}</copy-text> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          </el-table-column> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <el-table-column align="center" prop="realName" label="姓名"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <template slot-scope="scope"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <copy-text>{{ scope.row.realName }}</copy-text> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          </el-table-column> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <el-table-column align="center" prop="phone" label="手机号"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <template slot-scope="scope"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <copy-text>{{ scope.row.phone }}</copy-text> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          </el-table-column> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <el-table-column align="center" prop="deptName" label="社保分部"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          </el-table-column> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <el-table-column align="center" prop="deptsName" label="所属部门"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          </el-table-column> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <!-- <el-table-column align="center" label="角色分类"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <template slot-scope="scope"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <tooltip 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                :content="scope.row.roleNames | joinArray(',')" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              ></tooltip> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          </el-table-column> --> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <!-- <el-table-column align="center" prop="jobNature" label="工作类型"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <template slot-scope="scope"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              {{ scope.row.jobNature | jobNature }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          </el-table-column> --> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <!-- <el-table-column align="center" label="所属分部"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <template slot-scope="scope"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <tooltip 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                :content="scope.row.organNameList | joinArray(',')" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              ></tooltip> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          </el-table-column> --> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <!-- <el-table-column 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            align="center" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            label="状态" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            :formatter="formatLockFlag" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          </el-table-column> --> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <!-- <el-table-column align="center" label="入职时间"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <template slot-scope="scope"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              {{ scope.row.entryDate | formatTimer }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          </el-table-column> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <el-table-column align="center" label="离职时间"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <template slot-scope="scope"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              {{ scope.row.demissionDate | formatTimer }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          </el-table-column> --> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <el-table-column 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            align="center" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            width="250px" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            fixed="right" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            label="操作" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <template slot-scope="scope"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <el-button 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                @click="roleOperation('update', scope.row)" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                v-if="permission('employee/update')" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                type="text" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                >修改</el-button 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          </el-table-column> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </el-table> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <pagination 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          sync 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          :total.sync="pageInfo.total" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          :page.sync="pageInfo.page" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          :limit.sync="pageInfo.limit" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          :page-sizes="pageInfo.page_size" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          @pagination="getList" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    <el-dialog 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      :title="formTitle[formActionTitle]" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      :visible.sync="roleStatus" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      @close="onFormClose('ruleForm')" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      width="650px" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      <el-form :model="form" :rules="rules" ref="ruleForm"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <el-alert 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          style="margin: 10px 0" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          title="OA信息" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          :closable="false" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          type="info" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </el-alert> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <el-row> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <el-col :span="12"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <el-form-item 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              label="所属部门" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              prop="deptIds" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              :label-width="formLabelWidth" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <el-cascader 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                v-model="form.deptIds" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                placeholder="请选择所属部门" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                clearable 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                style="width: 100%" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                :options="deptList" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                :show-all-levels="false" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                :collapse-tags="true" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                @change="onDeptChange" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                :props="{ multiple: true, checkStrictly: false }" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              ></el-cascader> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </el-form-item> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          </el-col> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <el-col :span="12"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <el-form-item 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              label="社保分部" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              prop="deptId" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              :label-width="formLabelWidth" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <el-cascader 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                v-model="form.deptId" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                placeholder="请选择社保分部" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                clearable 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                style="width: 100%" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                :options="deptSmallList" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                :show-all-levels="false" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                :collapse-tags="true" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                :props="{ checkStrictly: false }" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              ></el-cascader> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </el-form-item> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          </el-col> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </el-row> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <div v-for="(postDeptIds, index) in form.postDeptIds" :key="index"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <el-form-item 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            :label="'岗位管理' + (index + 1)" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            :label-width="formLabelWidth" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            class="setWidth" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            :prop="'postDeptIds.' + index + '.postId'" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <el-select 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              filterable 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              clearable 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              placeholder="所属岗位" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              style="width: 180px !important" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              v-model.trim="postDeptIds.postId" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <el-option 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                v-for="item in postList" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                :key="item.value" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                :label="item.label" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                :value="item.value" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              ></el-option> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </el-select> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          </el-form-item> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <el-form-item 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            class="setWidth" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            style="margin: 0 10px; width: 190px !important" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            :prop="'postDeptIds.' + index + '.deptIds'" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <el-cascader 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              v-model="postDeptIds.deptIds" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              placeholder="管理部门" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              clearable 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              :options="deptList" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              :show-all-levels="false" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              :collapse-tags="true" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              :props="{ multiple: true, checkStrictly: false }" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            ></el-cascader> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          </el-form-item> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <el-button 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            icon="el-icon-minus" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            circle 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            v-if="form.postDeptIds.length > 1" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            @click.prevent="removePostDept(postDeptIds)" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          ></el-button> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <el-button 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            icon="el-icon-plus" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            @click.prevent="addPostDept" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            circle 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            style="margin-left: 5px" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          ></el-button> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      </el-form> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      <span slot="footer" class="dialog-footer"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <el-button @click="roleStatus = false">取 消</el-button> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <el-button @click="onRoleSubmit('ruleForm')" type="primary" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          >确 定</el-button 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      </span> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    </el-dialog> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+</template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<script> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import pagination from "@/components/Pagination/index"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { permission } from "@/utils/directivePage"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  queryEmployByOrganId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  employeeOperate, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  getUserRole, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  employeeAdd, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  employeeUpdate, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  hasCourseGroupRelation, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  updateEducationTeacherId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  queryEmployeeOrganByUser, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  getDepts, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  getPosts, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} from "@/api/systemManage"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { findEducationTeacher } from "@/api/specialSetting"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import deepClone from "@/helpers/deep-clone"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// import Treeselect from '@riophae/vue-treeselect' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// import '@riophae/vue-treeselect/dist/vue-treeselect.css' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import Tooltip from "@/components/Tooltip/index"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { isvalidPhone } from "@/utils/validate"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+let validPhone = (rule, value, callback) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  if (!value) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    callback(new Error("请输入电话号码")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } else if (!isvalidPhone(value)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    callback(new Error("请输入正确的11位手机号码")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    callback(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+export default { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  name: "staffManager", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  components: { pagination, Tooltip }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  data() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    return { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      roleResetList: [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      organList: [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      tableList: [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      educationList: [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      deptList: [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      deptSmallList: [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      postList: [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      educationForm: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        targetUserId: "", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      educationViseble: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      activeRow: null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      pageInfo: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 分页规则 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        limit: 10, // 限制显示条数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        page: 1, // 当前页 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        total: 0, // 总条数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        page_size: [10, 20, 40, 50], // 选择限制显示条数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      detail: null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      handoverVisible: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      roleStatus: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      formActionTitle: "create", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      roleList: [], // 角色列表, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      roleBaseList: [], // 登陆人角色 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      formTitle: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        create: "添加员工", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        update: "修改员工", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      formLabelWidth: "100px", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      form: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        realName: null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        gender: null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        phone: null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        roleIds: [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        deptId: null, // 社保分部 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        organIdLists: [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        postDeptIds: [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            postId: null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            deptIds: [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        deptIds: [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // postIds: [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        jobNature: null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        entryDate: null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        contactAddress: null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        postalCode: null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      rules: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        realName: [{ required: true, message: "请输入姓名", trigger: "blur" }], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        gender: [{ required: true, message: "请选择性别", trigger: "change" }], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        phone: [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            type: "number", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            required: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            validator: validPhone, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            trigger: "blur", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            pattern: /^1[3456789]\d{9}$/, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            message: "请输入正确的手机号", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            trigger: "blur", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        roleIds: [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            type: "array", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            required: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            message: "请选择分类", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            trigger: "change", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // deptId: [{ required: true, message: '请选择社保分部', trigger: 'change' }], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        organIdLists: [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            type: "array", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            required: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            message: "请选择所属分部", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            trigger: "change", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // deptIds: [{ type: 'array', required: true, message: '请选择所属部门', trigger: 'change' }], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // postIds: [{ type: 'array', required: true, message: '请选择所属岗位', trigger: 'change' }], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        jobNature: [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          { required: true, message: "请选择工作类型", trigger: "change" }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        entryDate: [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          { required: true, message: "请选择入职时间", trigger: "blur" }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      searchForm: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        search: null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        jobNature: null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        organId: null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        roleId: null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        deptId: null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        deptIds:null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  mounted() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    this.getList(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    this.getRoleList(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  methods: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    permission, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    handover(row) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.detail = row; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.handoverVisible = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    onBranchCheckAll() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.form.organIdLists = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.organList.forEach((item) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.form.organIdLists.push(item.id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    onRoleSubmit(formName) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.$refs[formName].validate((valid) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (valid) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          const { organIdLists, postDeptIds, deptIds, deptId, ...res } = 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            this.form; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          let tempPost = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          postDeptIds.forEach((post) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            let tempIds = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            post.deptIds.forEach((item) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              tempIds.push(item[item.length - 1]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            tempPost.push({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              postId: post.postId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              deptIds: tempIds, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          const tempDeptIds = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          deptIds.forEach((ds) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            tempDeptIds.push(ds[ds.length - 1]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          const tempDeptId = deptId ? deptId[deptId.length - 1] : ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          let tempForm = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            postDeptIds: JSON.stringify(tempPost), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            organIdList: organIdLists.join(","), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            deptIds: tempDeptIds, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            deptId: tempDeptId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            ...res, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          if (this.formActionTitle == "create") { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (this.form.id) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              // 判断有没有Id,如果有则删除 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              delete this.form.id; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            employeeAdd(tempForm).then((res) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              this.messageTips("添加", res); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } else if (this.formActionTitle == "update") { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            employeeUpdate(tempForm).then((res) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              this.messageTips("修改", res); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    messageTips(title, res) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (res.code == 200) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.$message.success(title + "成功"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.roleStatus = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.getList(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.$message.error(res.msg); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    search() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.pageInfo.page = 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.getList(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    reset() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.$refs.searchForm.resetFields(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.search(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    getList() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      let searchForm = this.searchForm; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      let params = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        search: searchForm.search ? searchForm.search : null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        jobNature: searchForm.jobNature ? searchForm.jobNature : null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        organId: searchForm.organId ? searchForm.organId : null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        roleId: searchForm.roleId ? searchForm.roleId : null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        rows: this.pageInfo.limit, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        page: this.pageInfo.page, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      queryEmployByOrganId(params).then((res) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (res.code == 200 && res.data) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          this.tableList = res.data.rows; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          this.pageInfo.total = res.data.total; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /** 转换菜单数据结构 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    normalizer(node) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      let temp = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (node.children && node.children.length > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        node.children.forEach((item) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          let child = this.normalizer(item, status); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          let obj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            value: item.deptId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            label: item.deptName, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          if (child && child.length > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            obj.children = child; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          temp.push(obj); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return temp; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    async getRoleList() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // 获取角色 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      getUserRole({ delFlag: 0, rows: 9999 }).then((res) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let result = res.data; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (res.code == 200 && result && result.rows.length > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          this.roleList = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          result.rows.forEach((item) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            this.roleList.push({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              label: item.roleName, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              value: item.id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              disabled: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // 获取可编辑角色 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      //   const res = await userRole(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      //   this.roleResetList = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      //   res.data.forEach((item) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      //     this.roleResetList.push({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      //       label: item.roleName, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      //       value: item.id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      //       disabled: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      //     }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      //   }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // } catch (e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      //   console.log(e); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      getDepts({ rows: 9999 }).then((res) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (res.code == 200 && res.data && res.data.length > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          const depts = res.data || []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          const formatArr = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          depts.forEach((dep) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            formatArr.push({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              value: dep.deptId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              label: dep.deptName, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              children: this.normalizer(dep), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          this.deptList = formatArr; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // 岗位 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      getPosts({ rows: 9999 }).then((res) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (res.code == 200 && res.data && res.data.length > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          this.postList = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          res.data.forEach((item) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            this.postList.push({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              label: item.postName, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              value: item.postId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.$store.dispatch("setBranchs"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    onDeptChange(value) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.form.deptId = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.deptSmallList = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      let selectList = value.flat(Infinity); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      selectList = [...new Set(selectList)]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      const depts = deepClone(this.deptList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      const formatArr = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      depts.forEach((dep) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        formatArr.push({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          value: dep.value, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          label: dep.label, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          disabled: !selectList.includes(dep.value), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          children: this.normalizer2(dep, selectList), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.deptSmallList = formatArr; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /** 转换菜单数据结构 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    normalizer2(node, selectList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      let temp = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (node.children && node.children.length > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        node.children.forEach((item) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          let child = this.normalizer2(item, selectList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          let obj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            value: item.value, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            label: item.label, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            disabled: !selectList.includes(item.value), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          if (child && child.length > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            obj.children = child; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          temp.push(obj); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return temp; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    async roleOperation(type, data) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // 获取分部 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      await queryEmployeeOrganByUser().then((res) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (res.code == 200) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          this.organList = res.data; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.formActionTitle = type; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.roleStatus = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      //  格式化 可选角色 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // 修改的时候 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (type == "update") { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let roleIdList = [...data.roleIds]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // this.roleBaseList.forEach((item) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //   if (roleIdList.indexOf(item.value) == -1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //     roleIdList.push(item.value); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // this.roleResetList = [...this.roleList]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // this.roleList.forEach((role) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //   if (roleIdList.indexOf(role.value) != -1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //     this.roleResetList.push(role); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 初始化数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let postDeptArr = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const postDept = data.postDeptIds ? JSON.parse(data.postDeptIds) : []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (postDept.length > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          postDept.forEach((dept) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            let deptIds = dept.deptIds || []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            let deptArr = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            deptIds.forEach((ds) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              deptArr.push(this.formatParentId(ds, this.deptList)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            postDeptArr.push({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              postId: dept.postId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              deptIds: deptArr, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          postDeptArr = [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              postId: null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              deptIds: [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          ]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const deptIds = data.deptIds ? eval(data.deptIds) : []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const tempDeptIds = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (deptIds.length > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          deptIds.forEach((ds) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            tempDeptIds.push(this.formatParentId(ds, this.deptList)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.onDeptChange(tempDeptIds); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.form = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          id: data.id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          realName: data.realName, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          gender: data.gender, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          phone: Number(data.phone), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          roleIds: data.roleIds, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          deptId: data.deptId 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            ? this.formatParentId(data.deptId, this.deptList) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            : null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          organIdLists: data.organIdList ? data.organIdList : [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          jobNature: data.jobNature, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          entryDate: data.entryDate, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          contactAddress: data.contactAddress, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          postalCode: data.postalCode, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          postDeptIds: postDeptArr, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          deptIds: tempDeptIds, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.roleResetList = [...this.roleBaseList]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    formatParentId(id, list, ids = []) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      for (const item of list) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (item.children) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          const cIds = this.formatParentId(id, item.children, [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            ...ids, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            item.value, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          ]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          if (cIds.includes(id)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return cIds; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (item.value === id) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          return [...ids, id]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return ids; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    onFormClose(formName) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // 关闭弹窗重置验证 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.form = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        realName: null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        gender: null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        phone: null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        roleName: null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        roleIds: [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        deptId: null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        organIdLists: [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        jobNature: null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        entryDate: null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        contactAddress: null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        postalCode: null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        deptIds: [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        postDeptIds: [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            postId: null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            deptIds: [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.$refs[formName].resetFields(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    formatLockFlag(row) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      let reuslt = ["正常", "冻结"]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (row.demissionDate) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return "离职"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return reuslt[row.lockFlag]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    async checkStatus(data) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      let status; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      await hasCourseGroupRelation({ employeeId: data.id }).then( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        async (res) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          if (res.code === 200) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (res.data.hasCourseSchedule) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              this.$message.error("请先交接指导老师课程"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              status = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              if (res.data.hasCourseGroupRelation) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                let userId = data.id; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                await findEducationTeacher({ userId }).then((res) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  if (res.code === 200) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    this.educationList = res.data; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    this.educationViseble = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    status = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                // 1 要弹出 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                status = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return status; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    onStaffOperation(type, data) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      const tempStatus = type == "RESET_PASSWORD" ? true : false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.$confirm( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        `您确定${tempStatus ? "重置密码" : "修改员工状态"}?`, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        "提示", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          confirmButtonText: "确定", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          cancelButtonText: "取消", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          type: "warning", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        .then(async () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          if (type === "DEMISSION" && !data.demissionDate) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            this.activeRow = data; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // 1.点击的是离职按钮 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // 2.判断该考级是否存在乐团主管 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            const status = await this.checkStatus(data); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (!status) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          employeeOperate({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            employeeId: data.id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            operate: type, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          }).then((res) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (res.code == 200) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              this.$message.success(tempStatus ? "重置密码成功" : "更改成功"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              this.roleStatus = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              this.getList(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              this.$message.error(res.msg); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        .catch((err) => {}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    submitEducation() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // 发请求 提交信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      updateEducationTeacherId({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        currentUserId: this.activeRow.id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        targetUserId: this.educationForm.targetUserId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }).then((res) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (res.code === 200) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          const type = "DEMISSION"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          const data = this.activeRow; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          employeeOperate({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            employeeId: data.id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            operate: type, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          }).then((res) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (res.code == 200) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              this.$message.success("更改成功"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              this.roleStatus = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              this.educationViseble = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              this.getList(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              this.$message.error(res.msg); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    removePostDept(item) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      const index = this.form.postDeptIds.indexOf(item); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (index !== -1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.form.postDeptIds.splice(index, 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    addPostDept() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.form.postDeptIds.push({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        postId: null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        deptIds: [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  watch: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    educationViseble(val) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (!val) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.educationForm.targetUserId = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.$refs["educationForm"].resetFields(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+</script> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<style lang="scss" scoped> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/deep/.el-dialog__body { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // padding: 0 20px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/deep/.el-select, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/deep/.el-date-editor.el-input { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  width: 100% !important; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.setWidth { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  display: inline-block; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+</style> 
			 |