yaoyao 2 vuotta sitten
vanhempi
commit
780254521e

+ 35 - 1
src/App.vue

@@ -31,7 +31,7 @@ export default {
 };
 </script>
 
-<style>
+<style lang="scss">
 .icon {
   width: 34px;
   height: 34px;
@@ -61,4 +61,38 @@ export default {
   cursor: pointer;
   z-index: 999;
 }
+.people-style {
+  .el-dialog {
+    background: #F2F2F2;
+    .el-dialog__header {
+      background: #FFF;
+      border-bottom: 1px solid #F2F2F2;
+    }
+    .el-dialog__body {
+      padding: 0;
+      padding-bottom: 1px;
+      
+      .el-form {
+        padding: 24px;
+        margin: 0 24px;
+        background: #FFF;
+      }
+    }
+    .tab-style {
+       > .el-tabs__header {
+          padding: 0 24px;
+          background: #FFF;
+          margin-bottom: 18px;
+          .el-tabs__nav-wrap::after {
+            height: 0;
+          }
+        }
+        > .el-tabs__content > .el-tab-pane > :last-child {
+          background: #FFF;
+          margin-top: 18px;
+          padding: 8px 20px;
+        }
+      }
+  }
+}
 </style>

+ 97 - 19
src/components/PeopleImage/index.vue

@@ -1,13 +1,27 @@
 <template>
-  <div>
+  <div class="contaner">
+    <el-tabs tab-position="left" @tab-click="toItem">
+        <el-tab-pane label="身份证照片" name="sfz">
+        </el-tab-pane>
+        <el-tab-pane label="展业资格证" name="zyzgz">
+        </el-tab-pane>
+        <el-tab-pane label="劳动合同" name="ldht">
+        </el-tab-pane>
+        <el-tab-pane label="应聘表" name="ypb">
+        </el-tab-pane>
+        <el-tab-pane label="定薪表" name="dxb">
+        </el-tab-pane>
+        <el-tab-pane label="离职表" name="lzb">
+        </el-tab-pane>
+      </el-tabs>
     <!-- 新样式 -->
     <el-form inline label-position="top">
-      <el-tabs tab-position="left">
-      <el-tab-pane label="身份证照片">
+      <div id="sfz">
         <el-form-item label="身份证正面:">
           <el-upload
             class="avatar-uploader"
             action=""
+            v-if="!isDisabled"
             name="SFZ_01"
             :show-file-list="false"
             :http-request="httpRequest"
@@ -21,13 +35,18 @@
             </div>
             <span class="slot" v-show="dataForm.SFZ_01">
               <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(dataForm.SFZ_01)"></i>
+              <i v-show="!isDisabled" class="el-icon-delete" @click.stop="handlePictureCardDelete('SFZ_01')"></i>
             </span>
           </el-upload>
+          <div class="avatar-uploader" v-else @click.stop="handlePictureCardPreview(dataForm.SFZ_01)">
+            <img v-if="dataForm.SFZ_01" :src="dataForm.SFZ_01" class="avatar"/>
+          </div>
         </el-form-item>
         <el-form-item label="身份证反面:">
           <el-upload
             class="avatar-uploader"
             action=""
+            v-if="!isDisabled"
             name="SFZ_02"
             :show-file-list="false"
             :http-request="httpRequest"
@@ -40,14 +59,19 @@
             </div>
             <span class="slot" v-show="dataForm.SFZ_02">
               <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(dataForm.SFZ_02)"></i>
+              <i v-show="!isDisabled" class="el-icon-delete" @click.stop="handlePictureCardDelete('SFZ_02')"></i>
             </span>
           </el-upload>
+          <div class="avatar-uploader" v-else @click.stop="handlePictureCardPreview(dataForm.SFZ_02)">
+            <img v-if="dataForm.SFZ_02" :src="dataForm.SFZ_02" class="avatar"/>
+          </div>
         </el-form-item>
-      </el-tab-pane>
-      <el-tab-pane label="展业资格证">
+      </div>
+      <div id="zyzgz">
         <el-form-item label="展业资格证:" style="width: 50%">
           <el-upload
             class="avatar-uploader"
+            v-if="!isDisabled"
             action=""
             name="Z6Z_00"
             :show-file-list="false"
@@ -62,15 +86,20 @@
             <!-- <i v-else class="el-icon-plus avatar-uploader-icon"></i> -->
             <span class="slot" v-show="dataForm.Z6Z_00">
               <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(dataForm.Z6Z_00)"></i>
+              <i v-show="!isDisabled" class="el-icon-delete" @click.stop="handlePictureCardDelete('Z6Z_00')"></i>
             </span>
           </el-upload>
+          <div class="avatar-uploader" v-else @click.stop="handlePictureCardPreview(dataForm.Z6Z_00)">
+            <img v-if="dataForm.Z6Z_00" :src="dataForm.Z6Z_00" class="avatar"/>
+          </div>
         </el-form-item>
-      </el-tab-pane>
-      <el-tab-pane label="劳动合同">
+      </div>
+      <div id="ldht">
         <el-form-item label="劳动合同照片:" style="width: 50%">
           <el-upload
             class="avatar-uploader"
             action=""
+            v-if="!isDisabled"
             name="LD_00"
             :show-file-list="false"
             :http-request="httpRequest"
@@ -83,15 +112,20 @@
             </div>
             <span class="slot" v-show="dataForm.LD_00">
               <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(dataForm.LD_00)"></i>
+              <i v-show="!isDisabled" class="el-icon-delete" @click.stop="handlePictureCardDelete('LD_00')"></i>
             </span>
           </el-upload>
+          <div class="avatar-uploader" v-else @click.stop="handlePictureCardPreview(dataForm.LD_00)">
+            <img v-if="dataForm.LD_00" :src="dataForm.LD_00" class="avatar"/>
+          </div>
         </el-form-item>
-      </el-tab-pane>
-      <el-tab-pane label="应聘表">
+      </div>
+      <div id="ypb">
         <el-form-item label="应聘表照片:" style="width: 50%">
           <el-upload
             class="avatar-uploader"
             action=""
+            v-if="!isDisabled"
             name="YP_00"
             :show-file-list="false"
             :http-request="httpRequest"
@@ -104,15 +138,20 @@
             </div>
             <span class="slot" v-show="dataForm.YP_00">
               <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(dataForm.YP_00)" ></i>
+              <i v-show="!isDisabled" class="el-icon-delete" @click.stop="handlePictureCardDelete('YP_00')"></i>
             </span>
           </el-upload>
+          <div class="avatar-uploader" v-else @click.stop="handlePictureCardPreview(dataForm.YP_00)">
+            <img v-if="dataForm.YP_00" :src="dataForm.YP_00" class="avatar"/>
+          </div>
         </el-form-item>
-      </el-tab-pane>
-      <el-tab-pane label="定薪表">
+      </div>
+      <div id="dxb">
         <el-form-item label="定薪表照片:" style="width: 50%">
           <el-upload
             class="avatar-uploader"
             action=""
+            v-if="!isDisabled"
             name="DX_00"
             :show-file-list="false"
             :http-request="httpRequest"
@@ -125,15 +164,20 @@
             </div>
             <span class="slot" v-show="dataForm.DX_00">
               <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(dataForm.DX_00)"></i>
+              <i v-show="!isDisabled" class="el-icon-delete" @click.stop="handlePictureCardDelete('DX_00')"></i>
             </span>
           </el-upload>
+          <div class="avatar-uploader" v-else @click.stop="handlePictureCardPreview(dataForm.DX_00)">
+            <img v-if="dataForm.DX_00" :src="dataForm.DX_00" class="avatar"/>
+          </div>
         </el-form-item>
-      </el-tab-pane>
-      <el-tab-pane label="离职表">
+      </div>
+      <div id="lzb">
         <el-form-item label="离职表照片:" style="width: 50%">
           <el-upload
             class="avatar-uploader"
             action=""
+            v-if="!isDisabled"
             name="LZ_01"
             :show-file-list="false"
             :http-request="httpRequest"
@@ -146,12 +190,15 @@
             </div>
             <span class="slot" v-show="dataForm.LZ_01">
               <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(dataForm.LZ_01)"></i>
+              <i v-show="!isDisabled" class="el-icon-delete" @click.stop="handlePictureCardDelete('LZ_01')"></i>
             </span>
           </el-upload>
+          <div class="avatar-uploader" v-else @click.stop="handlePictureCardPreview(dataForm.LZ_01)">
+            <img v-if="dataForm.LZ_01" :src="dataForm.LZ_01" class="avatar"/>
+          </div>
         </el-form-item>
-    </el-tab-pane>
-  </el-tabs>
-</el-form>
+      </div>
+    </el-form>
 
 
 <!-- 
@@ -350,6 +397,10 @@ export default {
       default: () => {
         return false;
       },
+    },
+    isDisabled: {
+      type: Boolean,
+      default: false
     }
   },
   components: {
@@ -381,6 +432,13 @@ export default {
   created() {
   },
   methods: {
+    toItem(item) {
+      document.getElementById(item._props.name).scrollIntoView({ behavior: "smooth" });
+    },
+    // 删除
+    handlePictureCardDelete(type) {
+      this.dataForm[type] = ''
+    },
     //预览图片
     handlePictureCardPreview(img) {
       if(!img){
@@ -396,6 +454,9 @@ export default {
     },
     // 上传图片的方法Start
     beforeAvatarUpload(file) {
+      if (this.isDisabled) {
+        return
+      }
       const isJPG = file.type === "image/jpeg" || file.type === "image/png";
       const isLt2M = file.size / 1024 / 1024 < 2;
       if (!isJPG) {
@@ -408,6 +469,9 @@ export default {
     },
     //上传影像
     httpRequest(options) {
+      if (this.isDisabled) {
+        return
+      }
       let file = options.file;
       let filename = options.filename;
       let reader = new FileReader();
@@ -545,9 +609,6 @@ export default {
 </style>
 
 <style lang="scss" scoped>
->>> .el-tabs__header {
-  margin-right: 50px !important;
-}
 >>> .el-tabs__item:hover {
   color: #2D4D89;
 }
@@ -558,4 +619,21 @@ export default {
 >>> .el-tabs__active-bar {
   background-color: #2D4D89;
 }
+</style>
+<style lang="scss" scoped>
+.contaner {
+  width: 100%;
+  height: 600px;
+  display: flex;
+
+  .el-tabs {
+    padding-right: 50px;
+  }
+  .el-form {
+    overflow-y: scroll;
+    width: 100%;
+    padding: 0 !important;
+    margin-right: 0 !important;
+  }
+}
 </style>

+ 238 - 65
src/components/UserDetail/index.vue

@@ -1,17 +1,36 @@
 <template>
   <div class="userdetail">
-    <el-form :inline="true" label-width="110px" size="small">
+    <el-form :inline="true" :model="formData" label-width="110px" size="small" :rules="rules" ref="formData">
+      <div class="info-title" style="padding-top: 0;">人员信息</div>
       <el-row>
         <el-col :span="8">
           <el-form-item label="姓名" prop="name">
             <el-input v-model="formData.name" :disabled="isDisabled"></el-input>
           </el-form-item>
         </el-col>
+        <el-col :span="8">
+          <el-form-item label="身份证号" prop="identity">
+            <el-input
+               :disabled="isDisabled"
+               clearable
+               v-model="formData.identity"
+              :maxlength="18"
+              style="width: 200px"
+              @change="identityChange"
+            ></el-input>
+          </el-form-item>
+        </el-col>
         <el-col :span="8">
           <el-form-item label="性别" prop="sex">
-            <el-radio-group v-model="formDataDetail.sex" :disabled="isDisabled">
-              <el-radio v-for="val in sexoptions" :key="val.id" :label="val.value">{{ val.label }}</el-radio>
-            </el-radio-group>
+            <el-select
+               :disabled="isDisabled"
+              style="width: 200px"
+              v-model="formDataDetail.sex"
+              placeholder="请选择"
+              popper-class="select-prop"
+            >
+              <el-option v-for="val in sexoptions" :key="val.id" :label="val.label" :value="val.value"></el-option>
+            </el-select>
           </el-form-item>
         </el-col>
         <el-col :span="8">
@@ -47,50 +66,92 @@
           </el-form-item>
         </el-col>
         <el-col :span="8">
-          <el-form-item label="政治面貌" prop="politicsStatus">
-            <el-radio-group v-model="formDataDetail.politicsStatus" :disabled="isDisabled" class="radio-four">
-              <el-radio label="群众">群众</el-radio>
-              <el-radio label="共青团员">共青团员</el-radio>
-              <el-radio label="中共党员">中共党员</el-radio>
-            </el-radio-group>
+          <el-form-item label="户籍" prop="koseki">
+            <el-input
+               :disabled="isDisabled"
+              style="width: 200px"
+              v-model="formDataDetail.koseki"
+            ></el-input>
           </el-form-item>
         </el-col>
         <el-col :span="8">
           <el-form-item label="婚姻状况" prop="maritalStatus">
-            <el-radio-group v-model="formDataDetail.maritalStatus" :disabled="isDisabled" class="radio-four">
-              <el-radio label="未婚">未婚</el-radio>
-              <el-radio label="已婚">已婚</el-radio>
-              <el-radio label="离异">离异</el-radio>
-              <el-radio label="再婚">再婚</el-radio>
-            </el-radio-group>
+            <el-select
+               :disabled="isDisabled"
+              style="width: 200px"
+              v-model="formDataDetail.maritalStatus"
+              placeholder="请选择"
+              popper-class="select-prop"
+            >
+              <el-option label="未婚" :value="'未婚'"></el-option>
+              <el-option label="已婚" :value="'已婚'"></el-option>
+              <el-option label="离异" :value="'离异'"></el-option>
+              <el-option label="再婚" :value="'再婚'"></el-option>
+            </el-select>
           </el-form-item>
         </el-col>
         <el-col :span="8">
-          <el-form-item label="户籍" prop="koseki">
+          <el-form-item label="政治面貌" prop="politicsStatus">
+            <el-select
+               :disabled="isDisabled"
+              style="width: 200px"
+              v-model="formDataDetail.politicsStatus"
+              placeholder="请选择"
+              popper-class="select-prop"
+            >
+              <el-option label="群众" :value="'群众'"></el-option>
+              <el-option label="共青团员" :value="'共青团员'"></el-option>
+              <el-option label="中共党员" :value="'中共党员'"></el-option>
+            </el-select>
+          </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="健康状况" prop="health">
+            <el-select
+               :disabled="isDisabled"
+              style="width: 200px"
+              v-model="formDataDetail.health"
+              placeholder="请选择"
+              popper-class="select-prop"
+            >
+              <el-option label="健康" :value="'健康'"></el-option>
+              <el-option label="亚健康" :value="'亚健康'"></el-option>
+              <el-option label="疾病" :value="'疾病'"></el-option>
+            </el-select>
+          </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="居住地址" prop="address">
             <el-input
                :disabled="isDisabled"
               style="width: 200px"
-              v-model="formDataDetail.koseki"
+              v-model="formDataDetail.address"
             ></el-input>
           </el-form-item>
         </el-col>
         <el-col :span="8">
-          <el-form-item label="血型" prop="bloodType">
-            <el-radio-group v-model="formDataDetail.bloodType" :disabled="isDisabled" class="radio-four">
-              <el-radio label="A型">A型</el-radio>
-              <el-radio label="B型">B型</el-radio>
-              <el-radio label="O型">O型</el-radio>
-              <el-radio label="AB型">AB型</el-radio>
-            </el-radio-group>
+          <el-form-item label="邮政编码" prop="postalCode">
+            <el-input
+               :disabled="isDisabled"
+              style="width: 200px"
+              v-model="formDataDetail.postalCode"
+            ></el-input>
           </el-form-item>
         </el-col>
         <el-col :span="8">
-          <el-form-item label="健康状况" prop="health">
-            <el-radio-group v-model="formDataDetail.health" :disabled="isDisabled" class="radio-four">
-              <el-radio label="健康">健康</el-radio>
-              <el-radio label="亚健康">亚健康</el-radio>
-              <el-radio label="疾病">疾病</el-radio>
-            </el-radio-group>
+          <el-form-item label="血型" prop="bloodType">
+            <el-select
+               :disabled="isDisabled"
+              style="width: 200px"
+              v-model="formDataDetail.bloodType"
+              placeholder="请选择"
+              popper-class="select-prop"
+            >
+              <el-option label="A型" :value="'A型'"></el-option>
+              <el-option label="B型" :value="'B型'"></el-option>
+              <el-option label="O型" :value="'O型'"></el-option>
+              <el-option label="AB型" :value="'AB型'"></el-option>
+            </el-select>
           </el-form-item>
         </el-col>
         <el-col :span="8">
@@ -135,50 +196,57 @@
           </el-form-item>
         </el-col>
         <el-col :span="8">
-          <el-form-item label="居住地址" prop="address">
+          <el-form-item label="原工作单位" prop="formerEmployer">
             <el-input
                :disabled="isDisabled"
               style="width: 200px"
-              v-model="formDataDetail.address"
+              v-model="formDataDetail.formerEmployer"
             ></el-input>
           </el-form-item>
         </el-col>
         <el-col :span="8">
-          <el-form-item label="邮政编码" prop="postalCode">
+          <el-form-item label="密码" prop="password">
             <el-input
-               :disabled="isDisabled"
+              v-model="formData.password"
+              :disabled="isDisabled"
               style="width: 200px"
-              v-model="formDataDetail.postalCode"
-            ></el-input>
+              type="password" show-password
+              ></el-input>
+              <!-- :class="isShow == true ? 'disc' : 'none'" -->
           </el-form-item>
         </el-col>
         <el-col :span="8">
-          <el-form-item label="邮箱">
+          <el-form-item label="紧急联系人姓名" prop="emergencyContactName">
             <el-input
                :disabled="isDisabled"
               style="width: 200px"
-              v-model="formDataDetail.email"
+              v-model="formDataDetail.emergencyContactName"
             ></el-input>
           </el-form-item>
         </el-col>
         <el-col :span="8">
-          <el-form-item label="紧急联系人姓名" prop="emergencyContactName">
+          <el-form-item label="紧急联系人电话" prop="emergencyContactTel">
             <el-input
                :disabled="isDisabled"
               style="width: 200px"
-              v-model="formDataDetail.emergencyContactName"
+              v-model="formDataDetail.emergencyContactTel"
             ></el-input>
           </el-form-item>
         </el-col>
+<!-- 
+
         <el-col :span="8">
-          <el-form-item label="紧急联系人电话" prop="emergencyContactTel">
+          <el-form-item label="邮箱">
             <el-input
                :disabled="isDisabled"
               style="width: 200px"
-              v-model="formDataDetail.emergencyContactTel"
+              v-model="formDataDetail.email"
             ></el-input>
           </el-form-item>
-        </el-col>
+        </el-col> -->
+      </el-row>
+      <div class="info-title">工资信息</div>
+      <el-row>
         <el-col :span="8">
           <el-form-item label="工资">
             <el-input
@@ -189,7 +257,7 @@
           </el-form-item>
         </el-col>
         <el-col :span="8">
-          <el-form-item label="薪资等级">
+          <el-form-item label="工资等级">
             <el-input
                :disabled="isDisabled"
               style="width: 200px"
@@ -211,6 +279,9 @@
             </el-select>
           </el-form-item>
         </el-col>
+      </el-row>
+      <div class="info-title">银行信息</div>
+      <el-row>
         <el-col :span="8">
           <el-form-item label="开户账号" prop="accountno">
             <el-input
@@ -231,13 +302,51 @@
             ></el-input>
           </el-form-item>
         </el-col>
+      </el-row>
+      <div class="info-title" v-if="showTjr">推荐人信息</div>
+      <el-row v-if="showTjr">
         <el-col :span="8">
-          <el-form-item label="原工作单位" prop="formerEmployer">
-            <el-input
-               :disabled="isDisabled"
+          <el-form-item label="推荐人" prop="referrerId">
+            <el-select
               style="width: 200px"
-              v-model="formDataDetail.formerEmployer"
-            ></el-input>
+              clearable
+              v-model="formData.referrerId"
+              placeholder="请选择"
+              popper-class="select-prop"
+              :disabled="!!formData.referrerId"
+            >
+              <el-option
+                v-for="val in recommenderOptions"
+                :label="val.name"
+                :value="val.id"
+                :key="val.id"
+              ></el-option>
+            </el-select>
+          </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="推荐人工号" prop="referrerName">
+            <el-input v-model="formData.referrerId" disabled></el-input>
+          </el-form-item>
+        </el-col>
+      </el-row>
+      <div class="info-title">状态</div>
+      <el-row>
+        <el-col :span="8">
+          <el-form-item label="状态" prop="status">
+            <el-select
+              disabled
+              style="width: 200px"
+              v-model="formData.status"
+              placeholder="请选择"
+            >
+              <el-option
+                v-for="val in user_statusoptions"
+                :label="val.label"
+                :value="val.value"
+                :key="val.id"
+              ></el-option>
+            </el-select>
           </el-form-item>
         </el-col>
         <el-col :span="8">
@@ -267,35 +376,29 @@
             </el-date-picker>
           </el-form-item>
         </el-col>
-        <el-col :span="8">
-          <el-form-item label="代理人资格证号" prop="agentQualificationCode">
-            <el-input
-               :disabled="isDisabled"
-              style="width: 200px"
-              v-model="formDataDetail.agentQualificationCode"
-            ></el-input>
-          </el-form-item>
-        </el-col>
         <!--  v-show="isDisabled" -->
-        <el-col :span="16">
-          <el-form-item label="驳回信息">
+      </el-row>
+      <div class="info-title">其他</div>
+        <el-col :span="24">
+          <el-form-item label="备注">
             <el-input
-               disabled
+               :disabled="isDisabled"
                v-model="formData.approvalOpinion"
                type="textarea"
-               style="width: 30vw;"
+               style="width: 800px"
                :autosize="{ minRows: 4, maxRows: 6 }"
                placeholder="请输入内容"
             ></el-input>
           </el-form-item>
         </el-col>
-      </el-row>
     </el-form>
   </div>
 </template>
 
 <script>
 import mixa from "@/views/PeopleManage/mixin";
+import { validateSfz } from "@/utils/validate.js";
+
 const mixin = new mixa({
   treeTypeNum: null,
 });
@@ -315,6 +418,10 @@ export default {
         return {};
       },
     },
+    showTjr: {
+      type: Boolean,
+      default: false
+    },
     isDisabled: {
       type: Boolean,
       default: false
@@ -323,13 +430,39 @@ export default {
   mixins: [mixin],
   data() {
     return {
-
+      recommenderOptions: [],
+      dialogPassword: false, //密码是否显示明文
+      isShow: true,
+      rules: {
+        identity: [
+          { required: true, message: "请填写身份证号" },
+          { validator: validateSfz },
+        ],
+        password: [
+          { required: true, message: "请输入密码", trigger: "blur" },
+        ]
+      },
     }
   },
   created() {
+    this.$api.user
+    .selectfindByreferrerId({ deptId: this.formData.deptId })
+    .then((res) => {
+      this.recommenderOptions = res.data || [];
+    });
     this.getDictItems("user_status");
   },
   methods: {
+    submit() {
+      this.$refs.formData.validate((valid) => {
+        let valids
+        valids = valid
+        this.$emit('valids', valids)
+      })
+    },
+    isShowFun() {
+      this.isShow = !this.isShow;
+    },
     // 新增或修改的弹出框Start
     getDictItems(typeName) {
       //--数据字典--
@@ -342,6 +475,35 @@ export default {
           this[typeName + "options"] = [];
         });
     },
+    
+    identityChange(iden) {
+      if (iden) {
+        let sex = null;
+        let birth = null;
+        let myDate = new Date();
+        let month = myDate.getMonth() + 1;
+        let day = myDate.getDate();
+        sex = iden.substring(16, 17);
+        birth =
+          iden.substring(6, 10) +
+          "-" +
+          iden.substring(10, 12) +
+          "-" +
+          iden.substring(12, 14);
+        let age = 0;
+        if (
+          iden.substring(10, 12) < month ||
+          (iden.substring(10, 12) == month && iden.substring(12, 14) <= day)
+        )
+          age++;
+        if (sex % 2 === 0) sex = "女";
+        else sex = "男";
+        this.formDataDetail.birthday = birth;
+        this.formDataDetail.sex = this.sexoptions.find(
+          (val) => sex == val.label
+        ).value;
+      }
+    },
   }
 };
 </script>
@@ -377,4 +539,15 @@ export default {
 >>> .el-input__inner:focus, >>> .el-select .el-input.is-focus .el-input__inner {
   border-color: #2D4D89;
 }
+.info-title {
+  color: #262626;
+  font-size: 18px;
+  padding: 16px 0;
+  font-family: PingFang SC, PingFang SC;
+}
+
+.el-form {
+  overflow-y: scroll;
+  max-height: 600px;
+}
 </style>

+ 8 - 1
src/http/moudules/user.js

@@ -525,4 +525,11 @@ export const departApply = (data) => {
     method: 'post',
     data
   })
-}
+}
+// 离司恢复
+export const separationReinstatement = (data) => {
+  return axios({
+    url: '/user/separationReinstatement/' + data,
+    method: 'get',
+  })
+}

+ 90 - 1
src/views/Core/KtCommonTable.vue

@@ -111,7 +111,7 @@
           :type="column.type"
           :formatter="column.formatter"
           :sortable="column.sortable ? column.sortable : false"
-          v-if="column.signIcon || column.isImg || column.isBtn"
+          v-if="column.signIcon || column.isImg || column.isBtn || column.isSex || column.isStatus"
         >
           <template slot-scope="scope">
             <el-switch
@@ -136,6 +136,20 @@
               :perms="column.permsEdit"
               @click="handleBtnEdit(scope.$index, scope.row)"
             />
+            <el-tag
+              v-if="column.isSex && scope.row[column.prop]"
+              :type="scope.row[column.prop] == '女' ? 'danger' : scope.row[column.prop] == '男' ? '' : 'danger'"
+              effect="plain">
+              {{ scope.row[column.prop] }}
+            </el-tag>
+            
+            <el-tag
+              v-if="column.isStatus"
+              :type="scope.row[column.prop] == '在职' ? 'success' : scope.row[column.prop] == '离司' ? 'info' : scope.row[column.prop] == '入司待审核' ? 'warning' : scope.row[column.prop] == '离司待审核' ? 'warning' : scope.row[column.prop] == '修改待审核' ? 'warning' : 'danger'"
+              
+              effect="plain">
+              {{ scope.row[column.prop] }}
+            </el-tag>
           </template>
         </el-table-column>
         <el-table-column
@@ -270,6 +284,20 @@
             :type="button8Type"
             @click="handleButton8(scope.$index, scope.row)"
           />
+          <kt-button
+            v-if="button10Name && scope.row.status == button10Status"
+            :label="button10Name"
+            :size="size"
+            :type="button10Type"
+            @click="handleButton10(scope.$index, scope.row)"
+          />
+          <kt-button
+            v-if="button9Name && scope.row.status == button9Status"
+            :label="button9Name"
+            :size="size"
+            :type="button9Type"
+            @click="handleButton9(scope.$index, scope.row)"
+          />
           <el-button type="text" size="small" v-if="buttonDropdown.length>0">
             <el-dropdown trigger="click">
               <span class="el-dropdown-link">
@@ -429,6 +457,18 @@ export default {
     button8Status: {
       type: String
     },
+    button9Name: {
+      type: String,
+    },
+    button9Status: {
+      type: String
+    },
+    button10Name: {
+      type: String,
+    },
+    button10Status: {
+      type: String
+    },
     buttonDropdown:{
       type: Array,
       default: () => [],
@@ -509,6 +549,14 @@ export default {
       type: String,
       default: "primary",
     },
+    button9Type: {
+      type: String,
+      default: "primary",
+    },
+    button10Type: {
+      type: String,
+      default: "primary",
+    },
     editButtonName: {
       type: String,
     },
@@ -790,6 +838,18 @@ export default {
         row: row,
       });
     },
+    handleButton10: function (index, row) {
+      this.$emit("handleButton10", {
+        index: index,
+        row: row,
+      });
+    },
+    handleButton9: function (index, row) {
+      this.$emit("handleButton9", {
+        index: index,
+        row: row,
+      });
+    },
     handleButton: function (index, row) {
       this.$emit("handleButton", {
         index: index,
@@ -967,3 +1027,32 @@ export default {
 }
 
 </style>
+<style lang="scss" scoped>
+/deep/ .el-tag--plain {
+  background: rgba(93,125,255,0.1);
+  border-radius: 4px;
+  border: 1px solid #5D7DFF;
+}
+/deep/ .el-tag--plain.el-tag--danger {
+  background: rgba(240,85,82,0.1);
+  border-radius: 4px 4px 4px 4px;
+  border: 1px solid #F05552;
+}
+/deep/ .el-tag--plain.el-tag--info {
+  background: rgba(158,158,158,0.1);
+  border-radius: 4px 4px 4px 4px;
+  border: 1px solid #9E9E9E;
+}
+
+/deep/ .el-tag--plain.el-tag--success {
+  background: rgba(81,189,44,0.1);
+  border-radius: 4px 4px 4px 4px;
+  border: 1px solid #51BD2C;
+}
+ 
+/deep/ .el-tag--plain.el-tag--warning {
+  background: rgba(242,153,47,0.1);
+  border-radius: 4px 4px 4px 4px;
+  border: 1px solid #F2992F;
+}
+</style>

+ 7 - 0
src/views/FinancialManagement/CarInsurance/Verifytasks/Verifyintasks.vue

@@ -63,6 +63,13 @@
           <span>{{ scope.row.insCompany ? scope.row.insCompany : "--" }}</span>
         </template>
       </el-table-column>
+      <el-table-column prop="entryStatus" label="录入来源" align="center" width="100">
+        <template slot-scope="scope">
+          <el-tag size="mini" v-if="scope.row.entryStatus == '1'" effect="dark">车险录入</el-tag>
+          <el-tag size="mini" v-if="scope.row.entryStatus == '2'" effect="dark" type="success">代客录单</el-tag>
+          <el-tag size="mini" v-if="scope.row.entryStatus == '3'" effect="dark" type="warning">外部订单</el-tag>
+        </template>
+      </el-table-column>
       <el-table-column prop="isExternal" label="外部订单" align="center">
         <template slot-scope="scope">
           <span>{{ scope.row.isExternal == "1" ? "是" : "否" }}</span>

+ 180 - 254
src/views/PeopleManage/Agent/AgentExamine.vue

@@ -71,6 +71,26 @@
                     </el-select>
                   </el-form-item>
                 </el-col>
+                <el-col :span="5">
+                  <el-form-item label="领导人">
+                    <el-select
+                      size="small"
+                      style="width: 215px"
+                      clearable
+                      filterable
+                      v-model="queryFrom.leaderId"
+                      placeholder="请选择"
+                    >
+                      <el-option
+                        v-for="item in searchLeaderOptions"
+                        :key="item.id"
+                        :label="item.name"
+                        :value="item.name"
+                      >
+                      </el-option>
+                    </el-select>
+                  </el-form-item>
+                </el-col>
                 <el-col :span="4">
                   <el-form-item label>
                     <el-button
@@ -99,6 +119,9 @@
             @handleButton8="handleTableEdit"
             @handleButton3="handleTableEdit1"
             :button3Name="'详情'"
+            :button10Name="'审核'"
+            :button10Status="'修改待审核'"
+            @handleButton10="handleTableEdit"
           ></kt-common-table>
           <!-- 
             @handleButton1="handleTableEdit"
@@ -112,13 +135,15 @@
     <el-dialog
       :title="dialogTitle"
       width="60%"
+      top="5vh"
       :visible.sync="dialogVisible"
       :close-on-click-modal="false"
       :before-close="handleDialogBefore"
       @close="closeDialog"
       v-dialogDrag
+      class="people-style"
     >
-      <el-tabs v-model="activeName">
+      <el-tabs v-model="activeName" class="tab-style">
         <el-tab-pane label="基本信息" name="1">
           <el-form
             :model="formData"
@@ -148,7 +173,7 @@
                   </el-cascader> </el-form-item
               ></el-col>
               <el-col :span="8">
-                <el-form-item label="机构名称" prop="deptId">
+                <el-form-item label="机构部门" prop="deptId">
                   <el-cascader
                     style="width: 200px"
                     :options="ztreeNodes"
@@ -165,36 +190,52 @@
                   </el-cascader> </el-form-item
               ></el-col>
               <el-col :span="8">
-                <el-form-item label="员工工号" prop="id">
-                  <el-input v-model="formData.id" disabled></el-input>
+                <el-form-item label="岗位" prop="positionId">
+                  <el-select
+                    style="width: 200px"
+                    v-model="formData.positionId"
+                    placeholder="请选择"
+                  >
+                    <el-option
+                      v-for="val in postOption"
+                      :label="val.postName"
+                      :value="val.postId"
+                      :key="val.postId"
+                    ></el-option>
+                  </el-select>
                 </el-form-item>
               </el-col>
               <el-col :span="8">
-                <el-form-item label="手机号" prop="mobile">
-                  <el-input v-model="formData.mobile"></el-input>
+                <el-form-item label="工号" prop="id">
+                  <el-input v-model="formData.id" disabled
+                  style="width: 200px"
+                  ></el-input>
                 </el-form-item>
               </el-col>
               <el-col :span="8">
-                <el-form-item label="身份证号" prop="identity">
-                  <el-input
-                    v-model="formData.identity"
-                    :maxlength="18"
+                <el-form-item label="姓名" prop="name">
+                  <el-input v-model="formData.name"
+                  style="width: 200px"
                   ></el-input>
                 </el-form-item>
               </el-col>
               <el-col :span="8">
-                <el-form-item label="名称" prop="name">
-                  <el-input v-model="formData.name"></el-input>
+                <el-form-item label="手机号" prop="mobile">
+                  <el-input v-model="formData.mobile"
+                  style="width: 200px"
+                  ></el-input>
                 </el-form-item>
               </el-col>
               <el-col :span="8">
-                <el-form-item label="密码" prop="password">
-                  <el-input
+                <el-form-item label="入司时间">
+                  <el-date-picker
                     style="width: 200px"
-                    v-model="formData.password"
-                    autocomplete="new-password"
-                    show-password
-                  ></el-input>
+                    v-model="formDataDetail.entryTime"
+                    type="date"
+                    placeholder="选择日期"
+                    popper-class="select-prop"
+                  >
+                  </el-date-picker>
                 </el-form-item>
               </el-col>
               <el-col :span="8">
@@ -230,267 +271,83 @@
                   </el-select>
                 </el-form-item>
               </el-col>
+              
               <el-col :span="8">
-                <el-form-item label="岗位" prop="positionId">
+                <el-form-item label="领导人" prop="leaderId">
                   <el-select
                     style="width: 200px"
-                    v-model="formData.positionId"
+                    clearable
+                    filterable
+                    v-model="formData.leaderId"
                     placeholder="请选择"
+                    popper-class="select-prop"
                   >
                     <el-option
-                      v-for="val in postOption"
-                      :label="val.postName"
-                      :value="val.postId"
-                      :key="val.postId"
+                      v-for="val in leaderOptions"
+                      :label="val.name"
+                      :value="val.id"
+                      :key="val.id"
                     ></el-option>
                   </el-select>
                 </el-form-item>
               </el-col>
-            </el-row>
-          </el-form>
-          <div style="text-align: right">
-            <el-button size="small" type="primary" @click="nextStep('2')"
-              >下一步</el-button
-            >
-          </div>
-        </el-tab-pane>
-        <el-tab-pane label="详细信息" name="2">
-          <userDetail
-            :formData="formData"
-            :formDataDetail="formDataDetail"
-            isDisabled
-          ></userDetail>
-          <!-- <el-form :rules="formDataRules"
-            :model="formDataDetail"
-            ref="formDataDetail"
-            :inline="true"
-            @keyup.enter.native="submitForml('提交审核')"
-            label-width="110px"
-            size="small"
-          >
-            <el-row>
               <el-col :span="8">
-                <el-form-item label="开户账号" prop="accountno">
-                  <el-input
-                    disabled
-                    v-model="formDataDetail.accountno"
+                <el-form-item label="领导人工号" prop="leaderName">
+                  <el-input v-model="formData.leaderId" disabled
+                  style="width: 200px"
                   ></el-input>
                 </el-form-item>
               </el-col>
               <el-col :span="8">
-                <el-form-item label="开户行" prop="bankName">
+                <el-form-item label="代理人资格证号" prop="agentQualificationCode">
                   <el-input
-                    disabled
-                    v-model="formDataDetail.bankName"
+                    style="width: 200px"
+                    v-model="formDataDetail.agentQualificationCode"
                   ></el-input>
                 </el-form-item>
               </el-col>
               <el-col :span="8">
-                <el-form-item label="性别" prop="sex">
+                <el-form-item label="推荐人" prop="referrerId">
                   <el-select
-                    disabled
                     style="width: 200px"
-                    v-model="formDataDetail.sex"
+                    clearable
+                    v-model="formData.referrerId"
                     placeholder="请选择"
+                    popper-class="select-prop"
+                    :disabled="!!formData.referrerId"
                   >
                     <el-option
-                      v-for="val in sexoptions"
-                      :label="val.label"
-                      :value="val.value"
+                      v-for="val in recommenderOptions"
+                      :label="val.name"
+                      :value="val.id"
                       :key="val.id"
                     ></el-option>
                   </el-select>
                 </el-form-item>
               </el-col>
-            </el-row>
-              <el-row>
-              <el-col :span="8">
-                <el-form-item label="出生日期" prop="birthday">
-                  <el-date-picker
-                    disabled
-                    style="width: 200px"
-                    v-model="formDataDetail.birthday"
-                    type="date"
-                    placeholder="选择日期"
-                  >
-                  </el-date-picker>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="户籍" prop="koseki">
-                  <el-input disabled v-model="formDataDetail.koseki"></el-input>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="婚姻状况" prop="maritalStatus">
-                  <el-select disabled v-model="formDataDetail.maritalStatus" placeholder="请选择婚姻状况" style="width:200px">
-                    <el-option v-for="val in maritalStatusOption" :key="val.value" :label="val.label" :value="val.value"></el-option>
-                  </el-select>
-                </el-form-item>
-              </el-col>
-            </el-row>
-              <el-row>
-              <el-col :span="8">
-                <el-form-item label="民族" prop="nations">
-                  <el-select disabled style="width:200px" v-model="formDataDetail.nations" placeholder="请选择民族">
-                    <el-option :label="national" :value="national" v-for="national in nationalList"
-                      :key="national"></el-option>
-                  </el-select>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="政治面貌" prop="politicsStatus">
-                  <el-select disabled style="width:200px" v-model="formDataDetail.politicsStatus" placeholder="请选择">
-                    <el-option v-for="val in politicsStatusOption" :key="val.value" :label="val.label" :value="val.value"></el-option>
-                  </el-select>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="健康状况" prop="health">
-                  <el-select disabled style="width:200px" v-model="formDataDetail.health" placeholder="请选择">
-                    <el-option v-for="val in healthOption" :key="val.value" :label="val.label" :value="val.value"></el-option>
-                  </el-select>
-                </el-form-item>
-              </el-col>
-            </el-row>
-              <el-row>
-              <el-col :span="8">
-                <el-form-item label="邮政编码" prop="postalCode">
-                  <el-input
-                    disabled
-                    v-model="formDataDetail.postalCode"
-                  ></el-input>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="居住地址" prop="address">
-                  <el-input
-                    disabled
-                    v-model="formDataDetail.address"
-                  ></el-input>
-                </el-form-item>
-              </el-col>
-
-              <el-col :span="8">
-                <el-form-item label="血型" prop="bloodType">
-                  <el-select
-                    disabled
-                    style="width: 200px"
-                    v-model="formDataDetail.bloodType"
-                    placeholder="请选择"
-                  >
-                  <el-option v-for="val in bloodOption" :key="val.value" :label="val.label" :value="val.value"></el-option>
-                  </el-select>
-                </el-form-item>
-              </el-col>
-            </el-row>
-              <el-row>
-              <el-col :span="8">
-                <el-form-item label="学历" prop="education">
-                  <el-select
-                    disabled
-                    style="width: 200px"
-                    v-model="formDataDetail.education"
-                    placeholder="请选择"
-                  >
-                    <el-option label="小学" value="小学"></el-option>
-                    <el-option label="初中" value="初中"></el-option>
-                    <el-option label="高中" value="高中"></el-option>
-                    <el-option label="专科" value="专科"></el-option>
-                    <el-option label="本科" value="本科"></el-option>
-                    <el-option label="硕士" value="硕士"></el-option>
-                    <el-option label="博士" value="博士"></el-option>
-                  </el-select>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="毕业院校" prop="school">
-                  <el-input disabled v-model="formDataDetail.school"></el-input>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="毕业时间" prop="graduationTime">
-                  <el-date-picker
-                    disabled
-                    style="width: 200px"
-                    v-model="formDataDetail.graduationTime"
-                    type="date"
-                    placeholder="选择日期"
-                  >
-                  </el-date-picker>
-                </el-form-item>
-              </el-col>
-            </el-row>
-              <el-row>
-              <el-col :span="8">
-                <el-form-item label="原工作单位" prop="formerEmployer">
-                  <el-input
-                    disabled
-                    v-model="formDataDetail.formerEmployer"
-                  ></el-input>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="入司时间" prop="entryTime">
-                  <el-date-picker
-                    disabled
-                    style="width: 200px"
-                    v-model="formDataDetail.entryTime"
-                    type="date"
-                    placeholder="选择日期"
-                  >
-                  </el-date-picker>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item
-                  label="代理人资格证号"
-                  prop="agentQualificationCode"
-                >
-                  <el-input
-                    disabled
-                    v-model="formDataDetail.agentQualificationCode"
-                  ></el-input>
-                </el-form-item>
-              </el-col>
-            </el-row>
-              <el-row>
-              <el-col :span="8">
-                <el-form-item label="紧急联系人电话" prop="emergencyContactTel">
-                  <el-input
-                    disabled
-                    v-model="formDataDetail.emergencyContactTel"
-                  ></el-input>
-                </el-form-item>
-              </el-col>
               <el-col :span="8">
-                <el-form-item
-                  label="紧急联系人姓名"
-                  prop="emergencyContactName"
-                >
-                  <el-input
-                    disabled
-                    v-model="formDataDetail.emergencyContactName"
-                  ></el-input>
-                </el-form-item>
-              </el-col>
-              <el-col :span="22">
-                <el-form-item label="备注" prop="remark">
-                  <el-input
-                    disabled
-                    style="width: 30vw"
-                    v-model="formDataDetail.approvalOpinion"
-                    type="textarea"
-                    :autosize="{ minRows: 4, maxRows: 6 }"
-                    placeholder="请输入内容"
-                    prop="remark"
-                    maxlength="200"
-                    show-word-limit
+                <el-form-item label="推荐人工号" prop="referrerName">
+                  <el-input v-model="formData.referrerId" disabled
+                  style="width: 200px"
                   ></el-input>
                 </el-form-item>
               </el-col>
-            </el-row>
-          </el-form> -->
+             </el-row>
+          </el-form>
+          <div style="text-align: right">
+            <el-button size="small" type="primary" @click="nextStep('2')"
+              >下一步</el-button
+            >
+          </div>
+        </el-tab-pane>
+        <el-tab-pane label="详细信息" name="2">
+          <userDetail
+            :formData="formData"
+            :formDataDetail="formDataDetail"
+            isDisabled
+            ref="formDataDetails"
+            showTjr
+          ></userDetail>
           <div style="text-align: right">
             <el-button size="small" type="primary" @click="nextStep('1')"
               >上一步</el-button
@@ -512,6 +369,7 @@
               :dataForm="dataForm"
               :carfrontImg="true"
               :dialogVisible="dialogVisible"
+              isDisabled
             ></peopleImage>
           </el-form>
           <div style="text-align: right">
@@ -590,6 +448,7 @@ export default {
   mixins: [mixin],
   data() {
     return {
+      searchLeaderOptions: {},
       showRemark: false, // 驳回弹窗
       activeName: "1",
       pageData: {
@@ -633,8 +492,9 @@ export default {
         {
           prop: "sex",
           label: "性别",
-          minWidth: 50,
+          minWidth: 80,
           sortable: false,
+          isSex: true
         },
         { prop: "mobile", label: "联系电话", minWidth: 100, sortable: false },
         {
@@ -655,11 +515,18 @@ export default {
           type: "text",
           minWidth: 100,
         },
+        {
+          prop: "approveBy",
+          label: "审核人",
+          type: "text",
+          minWidth: 100,
+        },
         {
           prop: "status",
           label: "状态",
-          minWidth: 50,
+          minWidth: 120,
           sortable: false,
+          isStatus: true
         },
       ],
       dialogTitle: "",
@@ -678,10 +545,25 @@ export default {
       },
       //影像上传列表
       imagesIdList: [],
+      leaderOptions: [],
+      recommenderOptions: [],
     };
   },
-  created() {},
+  created() {
+    this.getDictItems("user_status");
+    this.searchLeaderFun();
+  },
   methods: {
+    async searchLeaderFun() {
+      await this.$api.user.findHxUserList().then((res) => {
+        this.leaderOptions = res.data;
+      });
+      this.$api.user
+      .findBackListByDeptId({ deptId: this.deptId })
+      .then((res) => {
+        this.searchLeaderOptions = res.data;
+      });
+    },
     handleSubOut() {
       if (!this.formDataDetail.remark) {
         this.$message.error("请在详细信息填写驳回原因");
@@ -736,6 +618,8 @@ export default {
       this.findPage();
       this.formData.deptId = [];
       this.platform(treeId);
+      this.searchLeaderFun();
+      
     },
     platform(array) {
       if (!array.parent) {
@@ -758,16 +642,19 @@ export default {
         name: this.pageData.realName,
         userId: this.pageData.userId,
         status: this.pageData.status,
+        leaderName: this.queryFrom.leaderId,
         roleId: "20",
+        agentFlag: "2"
       };
       this.$api.user
-        .findPage({
+        // .findPage({
+        .findUserList({
           dto,
           pageNum: this.pageData.pageNum,
           pageSize: this.pageData.pageSize,
         })
         .then((res) => {
-          res.data.content.forEach((val) => {
+          res.data.records.forEach((val) => {
             if (val.sex && val.sex !== "" && val.sex !== null) {
               val.sex = this.sexoptions.find(
                 (ele) => ele.value == val.sex
@@ -780,7 +667,29 @@ export default {
             }
             val.roleId = val.roleName;
           });
-          this.pageResult = res.data;
+          // this.pageResult = res.data;
+          this.pageResult = {
+            content: res.data.records,
+            pageNum: res.data.current,
+            pageSize: res.data.size,
+            totalPages: res.data.pages,
+            totalSize: res.data.total,
+          };
+          this.pageData.pageNum = res.data.current;
+          this.pageData.pageSize = res.data.size;
+          this.pageData.totalSize = res.data.total;
+        });
+    },
+    // 新增或修改的弹出框Start
+    getDictItems(typeName) {
+      //--数据字典--
+      this.$api.dict
+        .findByLableName(typeName)
+        .then((response) => {
+          this[typeName + "options"] = response.data; // 把获取到的数据赋给this.data
+        })
+        .catch((error) => {
+          this[typeName + "options"] = [];
         });
     },
     closeDialog() {
@@ -811,6 +720,11 @@ export default {
       this.$api.user.getUserDatail(params.row.userId).then((res) => {
         if (res.code == 200) {
           res.data.sysUser.status += "";
+        this.$api.user
+          .selectfindByreferrerId({ deptId: res.data.sysUser.deptId })
+          .then((res) => {
+            this.recommenderOptions = res.data;
+          });
           if (res.data.esmUserImageVo.length > 0) {
             res.data.esmUserImageVo.forEach((item) => {
               item.path = process.env.BASE_URL + item.path;
@@ -839,6 +753,11 @@ export default {
         if (res.code == 200) {
           res.data.sysUser.status += "";
           this.formData = res.data.sysUser;
+        this.$api.user
+          .selectfindByreferrerId({ deptId: res.data.sysUser.deptId })
+          .then((res) => {
+            this.recommenderOptions = res.data;
+          });
           if (res.data.esmUserImageVo.length > 0) {
             res.data.esmUserImageVo.forEach((item) => {
               item.path = process.env.BASE_URL + item.path;
@@ -857,6 +776,16 @@ export default {
     handleChange(val) {
       if (val.length !== 0) {
         this.formData.deptId = val.at(-1);
+        this.$api.user
+          .selectfindByreferrerId({ deptId: this.formData.deptId })
+          .then((res) => {
+            this.recommenderOptions = res.data;
+          });
+        this.$api.user
+          .findListByDeptId({ deptId: this.formData.deptId })
+          .then((res) => {
+            this.leaderOptions = res.data;
+          });
       }
     },
     submitForm(type) {
@@ -923,9 +852,6 @@ export default {
 </style>
 
 <style lang="scss" scoped>
->>> .el-tabs__header {
-  margin-right: 50px !important;
-}
 >>> .el-tabs__item:hover {
   color: #2d4d89;
 }

+ 301 - 453
src/views/PeopleManage/Agent/AgentManage.vue

@@ -43,6 +43,26 @@
             @handleSearchList="handleSearchList"
             :pagination="pageData"
           >
+          <template slot="sex" slot-scope="scope">
+            <el-tag
+              v-if="scope.row.sex"
+              :type="scope.row.sex == '女' ? 'danger' :
+              scope.row.sex == '男' ? '' : 'warning'"
+              effect="plain">
+              {{ scope.row.sex }}
+            </el-tag>
+          </template>
+          <template slot="status" slot-scope="scope">
+            <el-tag
+            :type="scope.row.status == '在职' ? 'success' :
+               scope.row.status == '离司' ? 'info' :
+               scope.row.status == '入司待审核' ? 'warning' :
+               scope.row.status == '修改待审核' ? 'warning' :
+               scope.row.status == '离司待审核' ? 'warning' : 'danger'"
+              effect="plain">
+              {{ scope.row.status }}
+            </el-tag>
+          </template>
           </templateTable>
         </SplitArea>
         <!-- 右侧列表页面End -->
@@ -53,13 +73,15 @@
     <el-dialog
       :title="dialogTitle"
       width="60%"
+      top="5vh"
       :visible.sync="dialogVisible"
       :close-on-click-modal="false"
       :before-close="handleDialogBefore"
       @close="closeDialog"
       v-dialogDrag
+      class="people-style"
     >
-      <el-tabs v-model="activeName">
+      <el-tabs v-model="activeName" class="tab-style">
         <el-tab-pane label="基本信息" name="1">
           <el-form
             :model="formData"
@@ -108,42 +130,53 @@
                   </el-cascader> </el-form-item
               ></el-col>
               <el-col :span="8">
-                <el-form-item label="员工工号" prop="id">
-                  <el-input v-model="formData.id" disabled></el-input>
+                <el-form-item label="岗位" prop="positionId">
+                  <el-select
+                    style="width: 200px"
+                    v-model="formData.positionId"
+                    placeholder="请选择"
+                    popper-class="select-prop"
+                  >
+                    <el-option
+                      v-for="val in postOption"
+                      :label="val.postName"
+                      :value="val.postId"
+                      :key="val.postId"
+                    ></el-option>
+                  </el-select>
                 </el-form-item>
               </el-col>
               <el-col :span="8">
-                <el-form-item label="手机号" prop="mobile">
-                  <el-input v-model="formData.mobile"></el-input>
+                <el-form-item label="工号" prop="id">
+                  <el-input v-model="formData.id" disabled
+              style="width: 200px"
+              ></el-input>
                 </el-form-item>
               </el-col>
               <el-col :span="8">
-                <el-form-item label="身份证号" prop="identity">
-                  <el-input
-                    v-model="formData.identity"
-                    :maxlength="18"
-                    @change="identityChange"
-                  ></el-input>
+                <el-form-item label="姓名" prop="name">
+                  <el-input v-model="formData.name"
+              style="width: 200px"
+              ></el-input>
                 </el-form-item>
               </el-col>
               <el-col :span="8">
-                <el-form-item label="名称" prop="name">
-                  <el-input v-model="formData.name"></el-input>
+                <el-form-item label="手机号" prop="mobile">
+                  <el-input v-model="formData.mobile"
+              style="width: 200px"
+              ></el-input>
                 </el-form-item>
               </el-col>
               <el-col :span="8">
-                <el-form-item label="密码" prop="password">
-                  <el-input
-                    v-model="formData.password"
-                    :class="isShow == true ? 'disc' : 'none'"
-                  ></el-input>
-                  <i
-                    class="el-icon-view icon"
-                    @click="isShowFun()"
-                    v-if="dialogPassword"
-                  ></i>
-                  <!-- <el-input style="width:200px"  v-model="formData.password" autocomplete="new-password"
-                    show-password></el-input> -->
+                <el-form-item label="入司时间">
+                  <el-date-picker
+                    style="width: 200px"
+                    v-model="formDataDetail.entryTime"
+                    type="date"
+                    placeholder="选择日期"
+                    popper-class="select-prop"
+                  >
+                  </el-date-picker>
                 </el-form-item>
               </el-col>
               <el-col :span="8">
@@ -182,33 +215,17 @@
                 </el-form-item>
               </el-col>
               <el-col :span="8">
-                <el-form-item label="岗位" prop="positionId">
-                  <el-select
-                    style="width: 200px"
-                    v-model="formData.positionId"
-                    placeholder="请选择"
-                    popper-class="select-prop"
-                  >
-                    <el-option
-                      v-for="val in postOption"
-                      :label="val.postName"
-                      :value="val.postId"
-                      :key="val.postId"
-                    ></el-option>
-                  </el-select>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="推荐人" prop="referrerId">
+                <el-form-item label="领导人" prop="leaderId">
                   <el-select
                     style="width: 200px"
                     clearable
-                    v-model="formData.referrerId"
+                    filterable
+                    v-model="formData.leaderId"
                     placeholder="请选择"
                     popper-class="select-prop"
                   >
                     <el-option
-                      v-for="val in recommenderOptions"
+                      v-for="val in leaderOptions"
                       :label="val.name"
                       :value="val.id"
                       :key="val.id"
@@ -217,22 +234,32 @@
                 </el-form-item>
               </el-col>
               <el-col :span="8">
-                <el-form-item label="推荐人工号" prop="referrerName">
-                  <el-input v-model="formData.referrerId" disabled></el-input>
+                <el-form-item label="领导人工号" prop="leaderName">
+                  <el-input v-model="formData.leaderId" disabled
+              style="width: 200px"
+              ></el-input>
                 </el-form-item>
               </el-col>
               <el-col :span="8">
-                <el-form-item label="领导人" prop="leaderId">
+                <el-form-item label="代理人资格证号" prop="agentQualificationCode">
+                  <el-input
+                    style="width: 200px"
+                    v-model="formDataDetail.agentQualificationCode"
+                  ></el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="推荐人" prop="referrerId">
                   <el-select
                     style="width: 200px"
                     clearable
-                    filterable
-                    v-model="formData.leaderId"
+                    v-model="formData.referrerId"
                     placeholder="请选择"
                     popper-class="select-prop"
+                    :disabled="!!formData.referrerId"
                   >
                     <el-option
-                      v-for="val in leaderOptions"
+                      v-for="val in recommenderOptions"
                       :label="val.name"
                       :value="val.id"
                       :key="val.id"
@@ -241,8 +268,10 @@
                 </el-form-item>
               </el-col>
               <el-col :span="8">
-                <el-form-item label="领导人工号" prop="leaderName">
-                  <el-input v-model="formData.leaderId" disabled></el-input>
+                <el-form-item label="推荐人工号" prop="referrerName">
+                  <el-input v-model="formData.referrerId" disabled
+              style="width: 200px"
+              ></el-input>
                 </el-form-item>
               </el-col>
             </el-row>
@@ -257,289 +286,10 @@
           <userDetail
             :formData="formData"
             :formDataDetail="formDataDetail"
+            ref="formDataDetails"
+            @valids="valids"
+            showTjr
           ></userDetail>
-          <!-- <el-form
-            :model="formDataDetail"
-            :rules="formDataRulesDetail"
-            ref="formDataDetail"
-            :inline="true"
-            label-width="110px"
-            size="small"
-          >
-            <el-row>
-              <el-col :span="8">
-                <el-form-item label="姓名" prop="name">
-                  <el-input v-model="formData.name"></el-input>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="性别" prop="sex">
-                  <el-select
-                    style="width: 200px"
-                    v-model="formDataDetail.sex"
-                    placeholder="请选择"
-                  >
-                    <el-option
-                      v-for="val in sexoptions"
-                      :label="val.label"
-                      :value="val.value"
-                      :key="val.id"
-                    ></el-option>
-                  </el-select>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="出生日期" prop="birthday">
-                  <el-date-picker
-                    style="width: 200px"
-                    v-model="formDataDetail.birthday"
-                    type="date"
-                    placeholder="选择日期"
-                  >
-                  </el-date-picker>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="民族" prop="nations">
-                  <el-select
-                    style="width: 200px"
-                    v-model="formDataDetail.nations"
-                    placeholder="请选择民族"
-                  >
-                    <el-option
-                      :label="national"
-                      :value="national"
-                      v-for="national in nationalList"
-                      :key="national"
-                    ></el-option>
-                  </el-select>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="政治面貌" prop="politicsStatus">
-                  <el-select
-                    style="width: 200px"
-                    v-model="formDataDetail.politicsStatus"
-                    placeholder="请选择"
-                  >
-                    <el-option
-                      v-for="val in politicsStatusOption"
-                      :key="val.value"
-                      :label="val.label"
-                      :value="val.value"
-                    ></el-option>
-                  </el-select>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="婚姻状况" prop="maritalStatus">
-                  <el-select
-                    v-model="formDataDetail.maritalStatus"
-                    placeholder="请选择婚姻状况"
-                    style="width: 200px"
-                  >
-                    <el-option
-                      v-for="val in maritalStatusOption"
-                      :key="val.value"
-                      :label="val.label"
-                      :value="val.value"
-                    ></el-option>
-                  </el-select>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="户籍" prop="koseki">
-                  <el-input v-model="formDataDetail.koseki"></el-input>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="血型" prop="bloodType">
-                  <el-select
-                    style="width: 200px"
-                    v-model="formDataDetail.bloodType"
-                    placeholder="请选择"
-                  >
-                    <el-option
-                      v-for="val in bloodOption"
-                      :key="val.value"
-                      :label="val.label"
-                      :value="val.value"
-                    ></el-option>
-                  </el-select>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="健康状况" prop="health">
-                  <el-select
-                    style="width: 200px"
-                    v-model="formDataDetail.health"
-                    placeholder="请选择"
-                  >
-                    <el-option
-                      v-for="val in healthOption"
-                      :key="val.value"
-                      :label="val.label"
-                      :value="val.value"
-                    ></el-option>
-                  </el-select>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="学历" prop="education">
-                  <el-select
-                    style="width: 200px"
-                    v-model="formDataDetail.education"
-                    placeholder="请选择"
-                  >
-                    <el-option label="小学" value="小学"></el-option>
-                    <el-option label="初中" value="初中"></el-option>
-                    <el-option label="高中" value="高中"></el-option>
-                    <el-option label="专科" value="专科"></el-option>
-                    <el-option label="本科" value="本科"></el-option>
-                    <el-option label="硕士" value="硕士"></el-option>
-                    <el-option label="博士" value="博士"></el-option>
-                  </el-select>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="毕业院校" prop="school">
-                  <el-input v-model="formDataDetail.school"></el-input>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="毕业时间" prop="graduationTime">
-                  <el-date-picker
-                    style="width: 200px"
-                    v-model="formDataDetail.graduationTime"
-                    type="date"
-                    placeholder="选择日期"
-                  >
-                  </el-date-picker>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="居住地址" prop="address">
-                  <el-input v-model="formDataDetail.address"></el-input>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="邮政编码" prop="postalCode">
-                  <el-input v-model="formDataDetail.postalCode"></el-input>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="邮箱">
-                  <el-input
-                    style="width: 200px"
-                    v-model="formDataDetail.email"
-                  ></el-input>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item
-                  label="紧急联系人姓名"
-                  prop="emergencyContactName"
-                >
-                  <el-input
-                    v-model="formDataDetail.emergencyContactName"
-                  ></el-input>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="紧急联系人电话" prop="emergencyContactTel">
-                  <el-input
-                    v-model="formDataDetail.emergencyContactTel"
-                  ></el-input>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="工资">
-                  <el-input
-                    style="width: 200px"
-                    v-model="formDataDetail.salary"
-                  ></el-input>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="薪资等级">
-                  <el-input
-                    style="width: 200px"
-                    v-model="formDataDetail.salaryLevel"
-                  ></el-input>
-                </el-form-item>
-              </el-col>
-              
-              <el-col :span="8">
-                <el-form-item label="绩效方案">
-                  <el-input
-                    style="width: 200px"
-                    v-model="formDataDetail.performance"
-                  ></el-input>
-                  <el-select style="width: 200px" v-model="formDataDetail.performance" placeholder="请选择" >
-                    <el-option label="博士" value="博士"></el-option>
-                  </el-select>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="开户账号" prop="accountno">
-                  <el-input
-                    disabled
-                    style="width: 200px"
-                    v-model="formDataDetail.accountno"
-                    placeholder="登录系统绑卡后显示"
-                  ></el-input>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="开户行" prop="bankName">
-                  <el-input
-                    disabled
-                    style="width: 200px"
-                    v-model="formDataDetail.bankName"
-                    placeholder="登录系统绑卡后显示"
-                  ></el-input>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="原工作单位" prop="formerEmployer">
-                  <el-input v-model="formDataDetail.formerEmployer"></el-input>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="入司时间" prop="entryTime">
-                  <el-date-picker
-                    style="width: 200px"
-                    v-model="formDataDetail.entryTime"
-                    type="date"
-                    placeholder="选择日期"
-                  >
-                  </el-date-picker>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="离职时间" prop="logoutTime">
-                  <el-date-picker
-                    style="width: 200px"
-                    value-format="yyyy-MM-dd"
-                    v-model="formData.logoutTime"
-                    type="date"
-                    placeholder="选择日期"
-                  >
-                  </el-date-picker>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item
-                  label="代理人资格证号"
-                  prop="agentQualificationCode"
-                >
-                  <el-input
-                    v-model="formDataDetail.agentQualificationCode"
-                  ></el-input>
-                </el-form-item>
-              </el-col>
-            </el-row>
-          </el-form> -->
           <div style="text-align: right">
             <el-button size="small" type="primary" @click="activeName = '1'"
               >上一步</el-button
@@ -717,9 +467,9 @@ export default {
           { prop: "userId", label: "工号", type: "text" },
           { prop: "name", label: "姓名", type: "text" },
           {
-            prop: "sex",
+            name: "sex",
             label: "性别",
-            type: "text",
+            type: "slot",
           },
           { prop: "mobile", label: "联系电话", type: "text" },
           {
@@ -742,11 +492,17 @@ export default {
             label: "审核时间",
             type: "text",
           },
-
           {
-            prop: "status",
+          prop: "approveBy",
+          label: "审核人",
+          type: "text",
+          minWidth: 100,
+        },
+          {
+            name: "status",
             label: "状态",
-            type: "text",
+            type: "slot",
+            width: 120
           },
         ],
         loading: true,
@@ -769,12 +525,24 @@ export default {
             perm: "sys:agent:edit",
             icon: "fa fa-edit",
             hide: (row) => {
-              return row.status == "正常";
+              return row.status == "在职";
             },
             click: (row, index) => {
               return this.handleOut(row);
             },
           },
+          {
+            type: "primary",
+            label: "离司恢复",
+            perm: "sys:agent:edit",
+            icon: "fa fa-edit",
+            hide: (row) => {
+              return row.status == "离司";
+            },
+            click: (row, index) => {
+              return this.handleRest(row);
+            },
+          },
         ],
       },
       recommenderOptions: [],
@@ -802,13 +570,13 @@ export default {
           },
         ],
         name: [{ required: true, message: "请填写名称", trigger: "blur" }],
-        password: [{ required: true, message: "请填写密码", trigger: "blur" }],
+        // password: [{ required: true, message: "请填写密码", trigger: "blur" }],
         status: [{ required: true, message: "请选择状态", trigger: "change" }],
         // roleId: [{ required: true, message: "请填写角色", trigger: "blur" }],
-        identity: [
-          { required: true, message: "请填写身份证号" },
-          { validator: validateSfz },
-        ],
+        // identity: [
+        //   { required: true, message: "请填写身份证号" },
+        //   { validator: validateSfz },
+        // ],
         referrerId: [
           { required: true, message: "请选择推荐人", trigger: "change" },
         ],
@@ -824,6 +592,7 @@ export default {
       deptInfo: {}, //选中机构的基本信息
       option: [], //机构列表
       dialogPassword: true, //密码是否显示明文
+      user_statusoptions: [],
     };
   },
   created() {
@@ -832,11 +601,34 @@ export default {
     // })
     //获取所有下拉框数据(字典)
     // this.getDictItems("sex");
-    // this.getDictItems("user_status");
-    this.findPage();
+    this.getDictItems("user_status");
     this.searchLeaderFun();
+    this.findPage();
   },
   methods: {
+    // 离司恢复
+    handleRest(data) {
+      this.$confirm('是否恢复', '提示', { 
+          confirmButtonText: '确定',
+          cancelButtonText: '取消',
+          type: 'warning'
+        }).then(() => {
+          this.$api.user.separationReinstatement(data.row.userId).then((res) => {
+            if (res.code == 200) {
+              this.$message({
+                type: 'success',
+                message: res.msg
+              });
+              this.findPage();
+            }
+          })
+        }).catch(() => {
+          this.$message({
+            type: 'info',
+            message: '已取消'
+          });          
+        });
+    },
     handleSubOut() {
       if (this.logoutTime == "") {
         this.$message.error("请选择时间");
@@ -935,31 +727,45 @@ export default {
         this.formDataRules.logoutTime = undefined;
       }
     },
+    // 新增或修改的弹出框Start
+    getDictItems(typeName) {
+      //--数据字典--
+      this.$api.dict
+        .findByLableName(typeName)
+        .then((response) => {
+          this[typeName + "options"] = response.data; // 把获取到的数据赋给this.data
+        })
+        .catch((error) => {
+          this[typeName + "options"] = [];
+        });
+    },
     identityChange(iden) {
-      let sex = null;
-      let birth = null;
-      let myDate = new Date();
-      let month = myDate.getMonth() + 1;
-      let day = myDate.getDate();
-      sex = iden.substring(16, 17);
-      birth =
-        iden.substring(6, 10) +
-        "-" +
-        iden.substring(10, 12) +
-        "-" +
-        iden.substring(12, 14);
-      let age = 0;
-      if (
-        iden.substring(10, 12) < month ||
-        (iden.substring(10, 12) == month && iden.substring(12, 14) <= day)
-      )
-        age++;
-      if (sex % 2 === 0) sex = "女";
-      else sex = "男";
-      this.formDataDetail.birthday = birth;
-      this.formDataDetail.sex = this.sexoptions.find(
-        (val) => sex == val.label
-      ).value;
+      if (iden) {
+        let sex = null;
+        let birth = null;
+        let myDate = new Date();
+        let month = myDate.getMonth() + 1;
+        let day = myDate.getDate();
+        sex = iden.substring(16, 17);
+        birth =
+          iden.substring(6, 10) +
+          "-" +
+          iden.substring(10, 12) +
+          "-" +
+          iden.substring(12, 14);
+        let age = 0;
+        if (
+          iden.substring(10, 12) < month ||
+          (iden.substring(10, 12) == month && iden.substring(12, 14) <= day)
+        )
+          age++;
+        if (sex % 2 === 0) sex = "女";
+        else sex = "男";
+        this.formDataDetail.birthday = birth;
+        this.formDataDetail.sex = this.sexoptions.find(
+          (val) => sex == val.label
+        ).value;
+      }
     },
     // 查询Start
     queryStaffInfo() {
@@ -976,6 +782,12 @@ export default {
       this.currentTreeNode = evt;
       this.deptId = this.currentTreeNode.id;
       this.pageData.pageNum = 1;
+      this.$api.user
+      .selectfindByreferrerId({ deptId: this.deptId })
+      .then((res) => {
+        this.recommenderOptions = res.data;
+        console.log(res.data, this.recommenderOptions)
+      });
       this.findPage();
       this.searchLeaderFun();
       // this.formData.deptId = [];
@@ -1036,7 +848,6 @@ export default {
           }
 
           this.tableConfig.loading = false;
-
           this.pageResult = res.data.records;
           this.pageData.pageNum = res.data.current;
           this.pageData.pageSize = res.data.size;
@@ -1161,87 +972,97 @@ export default {
       // 清空数据
       this.deptInfo = {};
       this.dialogVisible = false;
+      this.activeName = '1'
+    },
+    valids(data) {
+      this.detailValid = data
     },
     // 提交
     submitForm() {
-      this.$refs.formDataDetail.validate((valid) => {
-        if (valid) {
-          this.$confirm("确认提交吗?", "提示", {}).then(() => {
-            // if(!this.basicInformation.id && this.dialogTitle =="新增代理人"){
-            //   this.$message({
-            //     message: '请先填写基本信息!!!',
-            //     type: 'warning'
-            //   });
-            //   return false
-            // }
-            if (this.formData.positionId) {
-              this.formData.positionName = this.postOption.find(
-                (val) => val.postId == this.formData.positionId
-              ).postName;
-            }
-            if (this.formData.leaderId) {
-              this.formData.leaderName = this.leaderOptions.find(
-                (val) => val.id == this.formData.leaderId
-              ).name;
-            }
-            if (this.dialogTitle == "新增代理人") {
-              if (!this.formDataDetail.password) {
-                this.formDataDetail.password =
-                  this.formDataDetail.mobile + "@2023";
+      this.$refs.formDataDetails.submit()
+      setTimeout(() => {
+        this.$refs.formData.validate((valid) => {
+          if (valid && this.detailValid) {
+            this.$confirm("确认提交吗?", "提示", {}).then(() => {
+              // if(!this.basicInformation.id && this.dialogTitle =="新增代理人"){
+              //   this.$message({
+              //     message: '请先填写基本信息!!!',
+              //     type: 'warning'
+              //   });
+              //   return false
+              // }
+              if (this.formData.positionId) {
+                this.formData.positionName = this.postOption.find(
+                  (val) => val.postId == this.formData.positionId
+                ).postName;
               }
-              this.$api.user
-                .saveUserInfo({
-                  esmUserImageVo: this.imagesIdList,
-                  sysUser: this.formData,
-                  sysUserInfo: this.formDataDetail,
-                })
-                .then((res) => {
-                  if (res.code == 200) {
-                    this.$message({
-                      message: "保存成功",
-                      type: "success",
-                    });
-                    this.dialogVisible = false;
-                    this.$refs["formData"].resetFields();
-                    this.$refs["formDataDetail"].resetFields();
-                    this.activeName = "1";
-                    this.findPage();
-                  } else {
-                    this.$message({
-                      message: `保存失败,请重新添加,(${res.msg})`,
-                      type: "error",
-                    });
-                  }
-                });
-            } else {
-              this.$api.user
-                .updateUserInfo(this.formData.id, {
-                  esmUserImageVo: this.imagesIdList,
-                  sysUser: this.formData,
-                  sysUserInfo: this.formDataDetail,
-                })
-                .then((res) => {
-                  if (res.code == 200) {
-                    this.$message({
-                      message: "编辑成功",
-                      type: "success",
-                    });
-                    this.dialogVisible = false;
-                    this.$refs["formData"].resetFields();
-                    this.$refs["formDataDetail"].resetFields();
-                    this.activeName = "1";
-                    this.findPage();
-                  } else {
-                    this.$message({
-                      message: `编辑失败,请重新添加,(${res.msg})`,
-                      type: "error",
-                    });
-                  }
-                });
-            }
-          });
-        }
-      });
+              if (this.formData.leaderId) {
+                this.formData.leaderName = this.leaderOptions.find(
+                  (val) => val.id == this.formData.leaderId
+                ).name;
+              }
+              if (this.dialogTitle == "新增代理人") {
+                if (!this.formDataDetail.password) {
+                  this.formDataDetail.password =
+                    this.formDataDetail.mobile + "@2023";
+                }
+                this.$api.user
+                  .saveUserInfo({
+                    esmUserImageVo: this.imagesIdList,
+                    sysUser: this.formData,
+                    sysUserInfo: this.formDataDetail,
+                  })
+                  .then((res) => {
+                    if (res.code == 200) {
+                      this.$message({
+                        message: "保存成功",
+                        type: "success",
+                      });
+                      this.dialogVisible = false;
+                      this.$refs["formData"].resetFields();
+                      this.$refs["formDataDetail"].resetFields();
+                      this.activeName = "1";
+                      this.findPage();
+                    } else {
+                      this.$message({
+                        message: `保存失败,请重新添加,(${res.msg})`,
+                        type: "error",
+                      });
+                    }
+                  });
+              } else {
+                this.$api.user
+                  .updateUserInfo(this.formData.id, {
+                    esmUserImageVo: this.imagesIdList,
+                    sysUser: this.formData,
+                    sysUserInfo: this.formDataDetail,
+                  })
+                  .then((res) => {
+                    if (res.code == 200) {
+                      this.$message({
+                        message: "编辑成功",
+                        type: "success",
+                      });
+                      this.dialogVisible = false;
+                      this.$refs["formData"].resetFields();
+                      this.$refs["formDataDetail"].resetFields();
+                      this.activeName = "1";
+                      this.findPage();
+                    } else {
+                      this.$message({
+                        message: `编辑失败,请重新添加,(${res.msg})`,
+                        type: "error",
+                      });
+                    }
+                  });
+              }
+            });
+          } else {
+            this.$message.error('请填写全部信息')
+          }
+        });
+      
+      }, 500);
     },
     // 下一步
     nextStep() {
@@ -1319,9 +1140,6 @@ export default {
 </style>
 
 <style lang="scss" scoped>
->>> .el-tabs__header {
-  margin-right: 50px !important;
-}
 >>> .el-tabs__item:hover {
   color: #2d4d89;
 }
@@ -1361,3 +1179,33 @@ export default {
   }
 }
 </style>
+
+<style lang="scss" scoped>
+/deep/ .el-tag--plain {
+  background: rgba(93,125,255,0.1);
+  border-radius: 4px;
+  border: 1px solid #5D7DFF;
+}
+/deep/ .el-tag--plain.el-tag--danger {
+  background: rgba(240,85,82,0.1);
+  border-radius: 4px 4px 4px 4px;
+  border: 1px solid #F05552;
+}
+/deep/ .el-tag--plain.el-tag--info {
+  background: rgba(158,158,158,0.1);
+  border-radius: 4px 4px 4px 4px;
+  border: 1px solid #9E9E9E;
+}
+
+/deep/ .el-tag--plain.el-tag--success {
+  background: rgba(81,189,44,0.1);
+  border-radius: 4px 4px 4px 4px;
+  border: 1px solid #51BD2C;
+}
+ 
+/deep/ .el-tag--plain.el-tag--warning {
+  background: rgba(242,153,47,0.1);
+  border-radius: 4px 4px 4px 4px;
+  border: 1px solid #F2992F;
+}
+</style>

+ 220 - 48
src/views/PeopleManage/Player/PlayerExamine.vue

@@ -71,6 +71,26 @@
                     </el-select>
                   </el-form-item>
                 </el-col>
+                <el-col :span="5">
+                  <el-form-item label="领导人">
+                    <el-select
+                      size="small"
+                      style="width: 215px"
+                      clearable
+                      filterable
+                      v-model="queryFrom.leaderId"
+                      placeholder="请选择"
+                    >
+                      <el-option
+                        v-for="item in searchLeaderOptions"
+                        :key="item.id"
+                        :label="item.name"
+                        :value="item.name"
+                      >
+                      </el-option>
+                    </el-select>
+                  </el-form-item>
+                </el-col>
                 <el-col :span="4">
                   <el-form-item label>
                     <el-button
@@ -99,6 +119,9 @@
             @handleButton8="handleTableEdit"
             @handleButton3="handleTableEdit1"
             :button3Name="'详情'"
+            :button10Name="'审核'"
+            :button10Status="'修改待审核'"
+            @handleButton10="handleTableEdit"
           ></kt-common-table>
           <!-- 
             @handleButton1="handleTableEdit"
@@ -112,13 +135,15 @@
     <el-dialog
       :title="dialogTitle"
       width="60%"
+      top="5vh"
       :visible.sync="dialogVisible"
       :close-on-click-modal="false"
       :before-close="handleDialogBefore"
       @close="closeDialog"
       v-dialogDrag
+      class="people-style"
     >
-      <el-tabs v-model="activeName">
+      <el-tabs v-model="activeName" class="tab-style">
         <el-tab-pane label="基本信息" name="1">
           <el-form
             :model="formData"
@@ -129,7 +154,7 @@
             label-width="110px"
             size="small"
           >
-            <el-row>
+          <el-row>
               <el-col :span="8">
                 <el-form-item label="机构名称">
                   <el-cascader
@@ -148,23 +173,6 @@
                   >
                   </el-cascader> </el-form-item
               ></el-col>
-              <el-col :span="8">
-                <el-form-item label="机构名称" prop="deptId">
-                  <el-cascader
-                    style="width: 200px"
-                    :options="ztreeNodes"
-                    v-model="formData.pdeptId"
-                    clearable
-                    :show-all-levels="false"
-                    :props="{
-                      value: 'id',
-                      label: 'name',
-                      checkStrictly: true,
-                    }"
-                    @change="handleChange"
-                  >
-                  </el-cascader> </el-form-item
-              ></el-col>
               <el-col :span="8">
                 <el-form-item label="机构部门" prop="deptId">
                   <el-cascader
@@ -172,6 +180,7 @@
                     :options="ztreeNodes"
                     v-model="formData.deptId"
                     clearable
+                    disabled
                     :show-all-levels="false"
                     :props="{
                       value: 'id',
@@ -183,41 +192,59 @@
                   </el-cascader> </el-form-item
               ></el-col>
               <el-col :span="8">
-                <el-form-item label="员工工号" prop="id">
-                  <el-input v-model="formData.id" disabled></el-input>
+                <el-form-item label="岗位" prop="positionId">
+                  <el-select
+                    style="width: 200px"
+                    v-model="formData.positionId"
+                    placeholder="请选择"
+                    popper-class="select-prop"
+                  >
+                    <el-option
+                      v-for="val in postOption"
+                      :label="val.postName"
+                      :value="val.postId"
+                      :key="val.postId"
+                    ></el-option>
+                  </el-select>
                 </el-form-item>
               </el-col>
               <el-col :span="8">
-                <el-form-item label="手机号" prop="mobile">
-                  <el-input v-model="formData.mobile"></el-input>
+                <el-form-item label="工号" prop="id">
+                  <el-input v-model="formData.id" disabled
+                  style="width: 200px"
+                  ></el-input>
                 </el-form-item>
               </el-col>
               <el-col :span="8">
-                <el-form-item label="身份证号" prop="identity">
-                  <el-input
-                    v-model="formData.identity"
-                    :maxlength="18"
+                <el-form-item label="姓名" prop="name">
+                  <el-input v-model="formData.name"
+                  style="width: 200px"
                   ></el-input>
                 </el-form-item>
               </el-col>
               <el-col :span="8">
-                <el-form-item label="名称" prop="name">
-                  <el-input v-model="formData.name"></el-input>
+                <el-form-item label="手机号" prop="mobile">
+                  <el-input v-model="formData.mobile"
+                  style="width: 200px"
+                  ></el-input>
                 </el-form-item>
               </el-col>
               <el-col :span="8">
-                <el-form-item label="密码" prop="password">
-                  <el-input
+                <el-form-item label="入司时间">
+                  <el-date-picker
                     style="width: 200px"
-                    v-model="formData.password"
-                    autocomplete="new-password"
-                    show-password
-                  ></el-input>
+                    v-model="formDataDetail.entryTime"
+                    type="date"
+                    placeholder="选择日期"
+                    popper-class="select-prop"
+                  >
+                  </el-date-picker>
                 </el-form-item>
               </el-col>
               <el-col :span="8">
                 <el-form-item label="状态" prop="status">
                   <el-select
+                    disabled
                     style="width: 200px"
                     v-model="formData.status"
                     placeholder="请选择"
@@ -249,21 +276,104 @@
                 </el-form-item>
               </el-col>
               <el-col :span="8">
-                <el-form-item label="岗位" prop="positionId">
+                <el-form-item label="领导人" prop="leaderId">
                   <el-select
                     style="width: 200px"
-                    v-model="formData.positionId"
+                    v-model="formData.leaderId"
                     placeholder="请选择"
+                    popper-class="select-prop"
                   >
                     <el-option
-                      v-for="val in postOption"
-                      :label="val.postName"
-                      :value="val.postId"
-                      :key="val.postId"
+                      v-for="val in leaderOptions"
+                      :label="val.name"
+                      :value="val.id"
+                      :key="val.id"
                     ></el-option>
                   </el-select>
                 </el-form-item>
               </el-col>
+              <el-col :span="8">
+                <el-form-item label="领导人工号" prop="leaderName">
+                  <el-input v-model="formData.leaderId" disabled
+                  style="width: 200px"
+                  ></el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="业务员" prop="referrerId">
+                  <el-select
+                    style="width: 200px"
+                    clearable
+                    v-model="formData.referrerId"
+                    placeholder="请选择"
+                    popper-class="select-prop"
+                  >
+                    <el-option
+                      v-for="val in recommenderOptions"
+                      :label="val.name"
+                      :value="val.id"
+                      :key="val.id"
+                    ></el-option>
+                  </el-select>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="业务员工号" prop="referrerName">
+                  <el-input v-model="formData.referrerId" disabled
+                  style="width: 200px"
+                  ></el-input>
+                </el-form-item>
+              </el-col>
+
+              <!-- <el-col :span="8">
+                <el-form-item label="身份证号" prop="identity">
+                  <el-input
+                    v-model="formData.identity"
+                    :maxlength="18"
+                  ></el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="密码" prop="password">
+                  <el-input
+                    v-model="formData.password"
+                    :class="isShow == true ? 'disc' : 'none'"
+                  ></el-input>
+                  <i
+                    class="el-icon-view icon"
+                    @click="isShowFun()"
+                    v-if="dialogPassword"
+                  ></i>
+                </el-form-item>
+              </el-col> -->
+
+              <el-col :span="8">
+                <el-form-item label="密码" prop="password">
+                  <el-input
+                    style="width: 200px"
+                    v-model="formData.password"
+                    type="password" show-password
+                  ></el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="代理人资格证号" prop="agentQualificationCode">
+                  <el-input
+                    style="width: 200px"
+                    v-model="formDataDetail.agentQualificationCode"
+                  ></el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="24">
+                <el-form-item label="驳回信息" prop="referrerName">
+                  <el-input
+                    type="textarea"
+                    style="width: 600px;"
+                    v-model="formData.approvalOpinion"
+                    disabled
+                  ></el-input>
+                </el-form-item>
+              </el-col>
             </el-row>
           </el-form>
           <div style="text-align: right">
@@ -285,6 +395,7 @@
               :dataForm="dataForm"
               :dialogVisible="dialogVisible"
               :carfrontImg="true"
+              isDisabled
             ></peopleImage>
           </el-form>
           <div style="text-align: right">
@@ -361,6 +472,7 @@ export default {
   mixins: [mixin],
   data() {
     return {
+      searchLeaderOptions: {},
       showRemark: false, // 驳回弹窗
       activeName: "1",
       pageData: {
@@ -404,8 +516,9 @@ export default {
         {
           prop: "sex",
           label: "性别",
-          minWidth: 50,
+          minWidth: 80,
           sortable: false,
+          isSex: true
         },
         { prop: "mobile", label: "联系电话", minWidth: 100, sortable: false },
         {
@@ -426,11 +539,18 @@ export default {
           type: "text",
           minWidth: 100,
         },
+        {
+          prop: "approveBy",
+          label: "审核人",
+          type: "text",
+          minWidth: 100,
+        },
         {
           prop: "status",
           label: "状态",
-          minWidth: 50,
+          minWidth: 120,
           sortable: false,
+          isStatus: true
         },
       ],
       dialogTitle: "",
@@ -450,10 +570,37 @@ export default {
       },
       //影像上传列表
       imagesIdList: [],
+      leaderOptions: [],
+      recommenderOptions: [],
     };
   },
-  created() {},
+  created() {
+    this.getDictItems("user_status");
+    this.searchLeaderFun();
+  },
   methods: {
+    async searchLeaderFun() {
+      await this.$api.user.findHxUserList().then((res) => {
+        this.leaderOptions = res.data;
+      });
+      this.$api.user
+      .findBackListByDeptId({ deptId: this.deptId })
+      .then((res) => {
+        this.searchLeaderOptions = res.data;
+      });
+    },
+    // 新增或修改的弹出框Start
+    getDictItems(typeName) {
+      //--数据字典--
+      this.$api.dict
+        .findByLableName(typeName)
+        .then((response) => {
+          this[typeName + "options"] = response.data; // 把获取到的数据赋给this.data
+        })
+        .catch((error) => {
+          this[typeName + "options"] = [];
+        });
+    },
     handleSubOut() {
       if (!this.formDataDetail.remark) {
         this.$message.error("请在详细信息填写驳回原因");
@@ -494,6 +641,7 @@ export default {
       this.pageData.mobile = this.queryFrom.mobile;
       this.pageData.userId = this.queryFrom.userId;
       this.pageData.status = this.queryFrom.status;
+      this.isQueryStaff = true
       this.findPage();
     },
     onZTreeClick: function (evt, treeId, treeNode) {
@@ -504,7 +652,8 @@ export default {
       this.findPage();
       this.formData.deptId = [];
       this.platform(treeId);
-    },
+    this.searchLeaderFun();
+  },
     platform(array) {
       if (!array.parent) {
         return;
@@ -520,12 +669,17 @@ export default {
         this.pageData.pageNum = data.pageRequest.pageNum;
         this.pageData.pageSize = data.pageRequest.pageSize;
       }
+      if (this.isQueryStaff) {
+        this.pageData.pageNum = 1
+      }
+      this.isQueryStaff = false
       let dto = {
         deptId: this.pageData.deptId,
         mobile: this.pageData.mobile,
         name: this.pageData.realName,
         userId: this.pageData.userId,
         status: this.pageData.status,
+        leaderName: this.queryFrom.leaderId,
         agentFlag: "1",
         roleId: "19",
       };
@@ -565,6 +719,7 @@ export default {
         this.formData[key] = "";
       }
       this.dialogVisible = false;
+      this.activeName = '1'
     },
     // 下一步
     nextStep(num) {
@@ -587,6 +742,11 @@ export default {
       this.$api.user.getUserDatail(params.row.userId).then((res) => {
         if (res.code == 200) {
           res.data.sysUser.status += "";
+          this.$api.user
+          .selectfindByreferrerId({ deptId: res.data.sysUser.deptId })
+          .then((res) => {
+            this.recommenderOptions = res.data;
+          });
           if (res.data.esmUserImageVo && res.data.esmUserImageVo.length > 0) {
             res.data.esmUserImageVo.forEach((item) => {
               item.path = process.env.BASE_URL + item.path;
@@ -616,6 +776,11 @@ export default {
         if (res.code == 200) {
           res.data.sysUser.status += "";
           this.formData = res.data.sysUser;
+          this.$api.user
+          .selectfindByreferrerId({ deptId: res.data.sysUser.deptId })
+          .then((res) => {
+            this.recommenderOptions = res.data;
+          });
           if (res.data.esmUserImageVo.length > 0) {
             res.data.esmUserImageVo.forEach((item) => {
               item.path = process.env.BASE_URL + item.path;
@@ -634,6 +799,16 @@ export default {
     handleChange(val) {
       if (val.length !== 0) {
         this.formData.deptId = val.at(-1);
+        this.$api.user
+          .selectfindByreferrerId({ deptId: this.formData.deptId })
+          .then((res) => {
+            this.recommenderOptions = res.data;
+          });
+        this.$api.user
+          .findBackListByDeptId({ deptId: this.formData.deptId })
+          .then((res) => {
+            this.leaderOptions = res.data;
+          });
       }
     },
     submitForm(type) {
@@ -700,9 +875,6 @@ export default {
 </style>
 
 <style lang="scss" scoped>
->>> .el-tabs__header {
-  margin-right: 50px !important;
-}
 >>> .el-tabs__item:hover {
   color: #2d4d89;
 }

+ 144 - 262
src/views/PeopleManage/Player/PlayerExamineTeam.vue

@@ -78,6 +78,26 @@
                     </el-select>
                   </el-form-item>
                 </el-col>
+                <el-col :span="5">
+                  <el-form-item label="领导人">
+                    <el-select
+                      size="small"
+                      style="width: 215px"
+                      clearable
+                      filterable
+                      v-model="queryFrom.leaderId"
+                      placeholder="请选择"
+                    >
+                      <el-option
+                        v-for="item in searchLeaderOptions"
+                        :key="item.id"
+                        :label="item.name"
+                        :value="item.name"
+                      >
+                      </el-option>
+                    </el-select>
+                  </el-form-item>
+                </el-col>
                 <el-col :span="4">
                   <el-form-item label>
                     <el-button
@@ -106,6 +126,9 @@
             @handleButton8="handleTableEdit"
             @handleButton3="handleTableEdit1"
             :button3Name="'详情'"
+            :button10Name="'审核'"
+            :button10Status="'修改待审核'"
+            @handleButton10="handleTableEdit"
           ></kt-common-table>
           <!-- 
             @handleButton1="handleTableEdit"
@@ -119,13 +142,15 @@
     <el-dialog
       :title="dialogTitle"
       width="60%"
+      top="5vh"
       :visible.sync="dialogVisible"
       :close-on-click-modal="false"
       :before-close="handleDialogBefore"
       @close="closeDialog"
       v-dialogDrag
+      class="people-style"
     >
-      <el-tabs v-model="activeName">
+      <el-tabs v-model="activeName" class="tab-style">
         <el-tab-pane label="基本信息" name="1">
           <el-form
             :model="formData"
@@ -136,14 +161,15 @@
             label-width="110px"
             size="small"
           >
-            <el-row>
+          <el-row>
               <el-col :span="8">
-                <el-form-item label="机构名称" prop="pdeptId">
+                <el-form-item label="机构名称">
                   <el-cascader
                     style="width: 200px"
                     :options="ztreeNodes"
                     v-model="formData.pdeptId"
                     clearable
+                    disabled
                     :show-all-levels="false"
                     :props="{
                       value: 'id',
@@ -161,6 +187,7 @@
                     :options="ztreeNodes"
                     v-model="formData.deptId"
                     clearable
+                    disabled
                     :show-all-levels="false"
                     :props="{
                       value: 'id',
@@ -172,41 +199,59 @@
                   </el-cascader> </el-form-item
               ></el-col>
               <el-col :span="8">
-                <el-form-item label="员工工号" prop="id">
-                  <el-input v-model="formData.id" disabled></el-input>
+                <el-form-item label="岗位" prop="positionId">
+                  <el-select
+                    style="width: 200px"
+                    v-model="formData.positionId"
+                    placeholder="请选择"
+                    popper-class="select-prop"
+                  >
+                    <el-option
+                      v-for="val in postOption"
+                      :label="val.postName"
+                      :value="val.postId"
+                      :key="val.postId"
+                    ></el-option>
+                  </el-select>
                 </el-form-item>
               </el-col>
               <el-col :span="8">
-                <el-form-item label="手机号" prop="mobile">
-                  <el-input v-model="formData.mobile"></el-input>
+                <el-form-item label="工号" prop="id">
+                  <el-input v-model="formData.id" disabled
+                  style="width: 200px"
+                  ></el-input>
                 </el-form-item>
               </el-col>
               <el-col :span="8">
-                <el-form-item label="身份证号" prop="identity">
-                  <el-input
-                    v-model="formData.identity"
-                    :maxlength="18"
+                <el-form-item label="姓名" prop="name">
+                  <el-input v-model="formData.name"
+                  style="width: 200px"
                   ></el-input>
                 </el-form-item>
               </el-col>
               <el-col :span="8">
-                <el-form-item label="名称" prop="name">
-                  <el-input v-model="formData.name"></el-input>
+                <el-form-item label="手机号" prop="mobile">
+                  <el-input v-model="formData.mobile"
+                  style="width: 200px"
+                  ></el-input>
                 </el-form-item>
               </el-col>
               <el-col :span="8">
-                <el-form-item label="密码" prop="password">
-                  <el-input
+                <el-form-item label="入司时间">
+                  <el-date-picker
                     style="width: 200px"
-                    v-model="formData.password"
-                    autocomplete="new-password"
-                    show-password
-                  ></el-input>
+                    v-model="formDataDetail.entryTime"
+                    type="date"
+                    placeholder="选择日期"
+                    popper-class="select-prop"
+                  >
+                  </el-date-picker>
                 </el-form-item>
               </el-col>
               <el-col :span="8">
                 <el-form-item label="状态" prop="status">
                   <el-select
+                    disabled
                     style="width: 200px"
                     v-model="formData.status"
                     placeholder="请选择"
@@ -238,21 +283,39 @@
                 </el-form-item>
               </el-col>
               <el-col :span="8">
-                <el-form-item label="岗位" prop="positionId">
+                <el-form-item label="领导人" prop="leaderId">
                   <el-select
                     style="width: 200px"
-                    v-model="formData.positionId"
+                    clearable
+                    filterable
+                    v-model="formData.leaderId"
                     placeholder="请选择"
+                    popper-class="select-prop"
                   >
                     <el-option
-                      v-for="val in postOption"
-                      :label="val.postName"
-                      :value="val.postId"
-                      :key="val.postId"
+                      v-for="val in leaderOptions"
+                      :label="val.name"
+                      :value="val.id"
+                      :key="val.id"
                     ></el-option>
                   </el-select>
                 </el-form-item>
               </el-col>
+              <el-col :span="8">
+                <el-form-item label="领导人工号" prop="leaderName">
+                  <el-input v-model="formData.leaderId" disabled
+                  style="width: 200px"
+                  ></el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="代理人资格证号" prop="agentQualificationCode">
+                  <el-input
+                    style="width: 200px"
+                    v-model="formDataDetail.agentQualificationCode"
+                  ></el-input>
+                </el-form-item>
+              </el-col>
             </el-row>
           </el-form>
           <div style="text-align: right">
@@ -265,240 +328,9 @@
           <userDetail
             :formData="formData"
             :formDataDetail="formDataDetail"
+            ref="formDataDetails"
             isDisabled
           ></userDetail>
-          <!-- <el-form
-            :rules="formDataRules"
-            :model="formDataDetail"
-            ref="formDataDetail"
-            :inline="true"
-            @keyup.enter.native="submitForml('提交审核')"
-            label-width="110px"
-            size="small"
-          >
-            <el-row>
-              <el-col :span="8">
-                <el-form-item label="开户账号" prop="accountno">
-                  <el-input
-                    disabled
-                    v-model="formDataDetail.accountno"
-                  ></el-input>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="开户行" prop="bankName">
-                  <el-input
-                    disabled
-                    v-model="formDataDetail.bankName"
-                  ></el-input>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="性别" prop="sex">
-                  <el-select
-                    disabled
-                    style="width: 200px"
-                    v-model="formDataDetail.sex"
-                    placeholder="请选择"
-                  >
-                    <el-option
-                      v-for="val in sexoptions"
-                      :label="val.label"
-                      :value="val.value"
-                      :key="val.id"
-                    ></el-option>
-                  </el-select>
-                </el-form-item>
-              </el-col>
-            </el-row>
-              <el-row>
-              <el-col :span="8">
-                <el-form-item label="出生日期" prop="birthday">
-                  <el-date-picker
-                    disabled
-                    style="width: 200px"
-                    v-model="formDataDetail.birthday"
-                    type="date"
-                    placeholder="选择日期"
-                  >
-                  </el-date-picker>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="户籍" prop="koseki">
-                  <el-input disabled v-model="formDataDetail.koseki"></el-input>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="婚姻状况" prop="maritalStatus">
-                  <el-select disabled v-model="formDataDetail.maritalStatus" placeholder="请选择婚姻状况" style="width:200px">
-                    <el-option v-for="val in maritalStatusOption" :key="val.value" :label="val.label" :value="val.value"></el-option>
-                  </el-select>
-                </el-form-item>
-              </el-col>
-            </el-row>
-              <el-row>
-              <el-col :span="8">
-                <el-form-item label="民族" prop="nations">
-                  <el-select disabled style="width:200px" v-model="formDataDetail.nations" placeholder="请选择民族">
-                    <el-option :label="national" :value="national" v-for="national in nationalList"
-                      :key="national"></el-option>
-                  </el-select>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="政治面貌" prop="politicsStatus">
-                  <el-select disabled style="width:200px" v-model="formDataDetail.politicsStatus" placeholder="请选择">
-                    <el-option v-for="val in politicsStatusOption" :key="val.value" :label="val.label" :value="val.value"></el-option>
-                  </el-select>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="健康状况" prop="health">
-                  <el-select disabled style="width:200px" v-model="formDataDetail.health" placeholder="请选择">
-                    <el-option v-for="val in healthOption" :key="val.value" :label="val.label" :value="val.value"></el-option>
-                  </el-select>
-                </el-form-item>
-              </el-col>
-            </el-row>
-              <el-row>
-              <el-col :span="8">
-                <el-form-item label="邮政编码" prop="postalCode">
-                  <el-input
-                    disabled
-                    v-model="formDataDetail.postalCode"
-                  ></el-input>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="居住地址" prop="address">
-                  <el-input
-                    disabled
-                    v-model="formDataDetail.address"
-                  ></el-input>
-                </el-form-item>
-              </el-col>
-
-              <el-col :span="8">
-                <el-form-item label="血型" prop="bloodType">
-                  <el-select
-                    disabled
-                    style="width: 200px"
-                    v-model="formDataDetail.bloodType"
-                    placeholder="请选择"
-                  >
-                  <el-option v-for="val in bloodOption" :key="val.value" :label="val.label" :value="val.value"></el-option>
-                  </el-select>
-                </el-form-item>
-              </el-col>
-            </el-row>
-              <el-row>
-              <el-col :span="8">
-                <el-form-item label="学历" prop="education">
-                  <el-select
-                    disabled
-                    style="width: 200px"
-                    v-model="formDataDetail.education"
-                    placeholder="请选择"
-                  >
-                    <el-option label="小学" value="小学"></el-option>
-                    <el-option label="初中" value="初中"></el-option>
-                    <el-option label="高中" value="高中"></el-option>
-                    <el-option label="专科" value="专科"></el-option>
-                    <el-option label="本科" value="本科"></el-option>
-                    <el-option label="硕士" value="硕士"></el-option>
-                    <el-option label="博士" value="博士"></el-option>
-                  </el-select>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="毕业院校" prop="school">
-                  <el-input disabled v-model="formDataDetail.school"></el-input>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="毕业时间" prop="graduationTime">
-                  <el-date-picker
-                    disabled
-                    style="width: 200px"
-                    v-model="formDataDetail.graduationTime"
-                    type="date"
-                    placeholder="选择日期"
-                  >
-                  </el-date-picker>
-                </el-form-item>
-              </el-col>
-            </el-row>
-              <el-row>
-              <el-col :span="8">
-                <el-form-item label="原工作单位" prop="formerEmployer">
-                  <el-input
-                    disabled
-                    v-model="formDataDetail.formerEmployer"
-                  ></el-input>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="入司时间" prop="entryTime">
-                  <el-date-picker
-                    disabled
-                    style="width: 200px"
-                    v-model="formDataDetail.entryTime"
-                    type="date"
-                    placeholder="选择日期"
-                  >
-                  </el-date-picker>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item
-                  label="代理人资格证号"
-                  prop="agentQualificationCode"
-                >
-                  <el-input
-                    disabled
-                    v-model="formDataDetail.agentQualificationCode"
-                  ></el-input>
-                </el-form-item>
-              </el-col>
-            </el-row>
-              <el-row>
-              <el-col :span="8">
-                <el-form-item label="紧急联系人电话" prop="emergencyContactTel">
-                  <el-input
-                    disabled
-                    v-model="formDataDetail.emergencyContactTel"
-                  ></el-input>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item
-                  label="紧急联系人姓名"
-                  prop="emergencyContactName"
-                >
-                  <el-input
-                    disabled
-                    v-model="formDataDetail.emergencyContactName"
-                  ></el-input>
-                </el-form-item>
-              </el-col>
-              <el-col :span="22">
-                <el-form-item label="备注" prop="remark">
-                  <el-input
-                    disabled
-                    style="width: 30vw"
-                    v-model="formDataDetail.approvalOpinion"
-                    type="textarea"
-                    :autosize="{ minRows: 4, maxRows: 6 }"
-                    placeholder="请输入内容"
-                    prop="remark"
-                    maxlength="200"
-                    show-word-limit
-                  ></el-input>
-                </el-form-item>
-              </el-col>
-            </el-row>
-          </el-form> -->
           <div style="text-align: right">
             <el-button size="small" type="primary" @click="nextStep('1')"
               >上一步</el-button
@@ -520,6 +352,7 @@
               :dataForm="dataForm"
               :carfrontImg="true"
               :dialogVisible="dialogVisible"
+              isDisabled
             ></peopleImage>
           </el-form>
           <div style="text-align: right">
@@ -641,8 +474,9 @@ export default {
         {
           prop: "sex",
           label: "性别",
-          minWidth: 50,
+          minWidth: 80,
           sortable: false,
+          isSex: true
         },
         { prop: "mobile", label: "联系电话", minWidth: 100, sortable: false },
         {
@@ -663,11 +497,18 @@ export default {
           type: "text",
           minWidth: 100,
         },
+        {
+          prop: "approveBy",
+          label: "审核人",
+          type: "text",
+          minWidth: 100,
+        },
         {
           prop: "status",
           label: "状态",
-          minWidth: 50,
+          minWidth: 120,
           sortable: false,
+          isStatus: true
         },
       ],
       dialogTitle: "",
@@ -686,12 +527,47 @@ export default {
       },
       //影像上传列表
       imagesIdList: [],
+      searchLeaderOptions: [],
+      leaderOptions: [],
     };
   },
   created() {
     this.findPage();
+    this.getDictItems("user_status");
+    this.searchLeaderFun();
   },
   methods: {
+    searchLeaderFun() {
+      this.$api.user.findHxUserList().then((res) => {
+        this.leaderOptions = res.data;
+      });
+      this.$api.user
+        .findBackListByDeptId({ deptId: this.deptId })
+        .then((res) => {
+          res.data.forEach((e) => {
+            e.value = e.id;
+            e.label = e.name;
+          });
+          this.searchLeaderOptions = [...res.data];
+          this.formList.forEach((val) => {
+            if (val.prop == "leaderName") {
+              val.options = res.data;
+            }
+          });
+        });
+    },
+    // 新增或修改的弹出框Start
+    getDictItems(typeName) {
+      //--数据字典--
+      this.$api.dict
+        .findByLableName(typeName)
+        .then((response) => {
+          this[typeName + "options"] = response.data; // 把获取到的数据赋给this.data
+        })
+        .catch((error) => {
+          this[typeName + "options"] = [];
+        });
+    },
     handleSubOut() {
       if (!this.formDataDetail.remark) {
         this.$message.error("请在详细信息填写驳回原因");
@@ -736,6 +612,7 @@ export default {
       this.pageData.mobile = this.queryFrom.mobile;
       this.pageData.userId = this.queryFrom.userId;
       this.pageData.status = this.queryFrom.status;
+      this.isQueryStaff = true
       this.findPage();
     },
     onZTreeClick: function (evt, treeId, treeNode) {
@@ -746,6 +623,7 @@ export default {
       this.findPage();
       this.formData.deptId = [];
       this.platform(treeId);
+      this.searchLeaderFun();
     },
     platform(array) {
       if (!array.parent) {
@@ -762,12 +640,17 @@ export default {
         this.pageData.pageNum = data.pageRequest.pageNum;
         this.pageData.pageSize = data.pageRequest.pageSize;
       }
+      if (this.isQueryStaff) {
+        this.pageData.pageNum = 1
+      }
+      this.isQueryStaff = false
       let dto = {
         deptId: this.pageData.deptId,
         mobile: this.pageData.mobile,
         name: this.pageData.realName,
         userId: this.pageData.userId,
         status: this.pageData.status,
+        leaderName: this.queryFrom.leaderId,
         agentFlag: "1",
         roleId: "21",
       };
@@ -807,6 +690,7 @@ export default {
         this.formData[key] = "";
       }
       this.dialogVisible = false;
+      this.activeName = '1'
     },
     // 下一步
     nextStep(num) {
@@ -941,9 +825,7 @@ export default {
 </style>
 
 <style lang="scss" scoped>
->>> .el-tabs__header {
-  margin-right: 50px !important;
-}
+
 >>> .el-tabs__item:hover {
   color: #2d4d89;
 }

+ 184 - 58
src/views/PeopleManage/Player/PlayerManage.vue

@@ -39,6 +39,16 @@
             @handleSearchList="handleSearchList"
             :pagination="pageData"
           >
+            <template slot="status" slot-scope="scope">
+              <el-tag
+                :type="scope.row.status == '在职' ? 'success' :
+                scope.row.status == '离司' ? 'info' :
+                scope.row.status == '入司待审核' ? 'warning' :
+                scope.row.status == '离司待审核' ? 'warning' : 'danger'"
+                effect="plain">
+                {{ scope.row.status }}
+              </el-tag>
+            </template>
             <!-- <template slot="领导人">
               <el-select
                 size="small"
@@ -66,13 +76,15 @@
     <el-dialog
       :title="dialogTitle"
       width="60%"
+      top="5vh"
       :visible.sync="dialogVisible"
       :close-on-click-modal="false"
       :before-close="handleDialogBefore"
       @close="closeDialog"
       v-dialogDrag
+      class="people-style"
     >
-      <el-tabs v-model="activeName">
+      <el-tabs v-model="activeName" class="tab-style">
         <el-tab-pane label="基本信息" name="1">
           <el-form
             :model="formData"
@@ -120,44 +132,55 @@
                   </el-cascader> </el-form-item
               ></el-col>
               <el-col :span="8">
-                <el-form-item label="员工工号" prop="id">
-                  <el-input v-model="formData.id" disabled></el-input>
+                <el-form-item label="岗位" prop="positionId">
+                  <el-select
+                    style="width: 200px"
+                    v-model="formData.positionId"
+                    placeholder="请选择"
+                    popper-class="select-prop"
+                  >
+                    <el-option
+                      v-for="val in postOption"
+                      :label="val.postName"
+                      :value="val.postId"
+                      :key="val.postId"
+                    ></el-option>
+                  </el-select>
                 </el-form-item>
               </el-col>
               <el-col :span="8">
-                <el-form-item label="手机号" prop="mobile">
-                  <el-input v-model="formData.mobile"></el-input>
+                <el-form-item label="工号" prop="id">
+                  <el-input v-model="formData.id" disabled
+                  style="width: 200px"
+                  ></el-input>
                 </el-form-item>
               </el-col>
               <el-col :span="8">
-                <el-form-item label="身份证号" prop="identity">
-                  <el-input
-                    v-model="formData.identity"
-                    :maxlength="18"
+                <el-form-item label="姓名" prop="name">
+                  <el-input v-model="formData.name"
+                  style="width: 200px"
                   ></el-input>
                 </el-form-item>
               </el-col>
               <el-col :span="8">
-                <el-form-item label="名称" prop="name">
-                  <el-input v-model="formData.name"></el-input>
+                <el-form-item label="手机号" prop="mobile">
+                  <el-input v-model="formData.mobile"
+                  style="width: 200px"
+                  ></el-input>
                 </el-form-item>
               </el-col>
               <el-col :span="8">
-                <el-form-item label="密码" prop="password">
-                  <el-input
-                    v-model="formData.password"
-                    :class="isShow == true ? 'disc' : 'none'"
-                  ></el-input>
-                  <i
-                    class="el-icon-view icon"
-                    @click="isShowFun()"
-                    v-if="dialogPassword"
-                  ></i>
-                  <!-- <el-input style="width:200px"  v-model="formData.password" autocomplete="new-password"
-                      show-password></el-input> -->
+                <el-form-item label="入司时间">
+                  <el-date-picker
+                    style="width: 200px"
+                    v-model="formDataDetail.entryTime"
+                    type="date"
+                    placeholder="选择日期"
+                    popper-class="select-prop"
+                  >
+                  </el-date-picker>
                 </el-form-item>
               </el-col>
-
               <el-col :span="8">
                 <el-form-item label="状态" prop="status">
                   <el-select
@@ -192,23 +215,6 @@
                   </el-select>
                 </el-form-item>
               </el-col>
-              <el-col :span="8">
-                <el-form-item label="岗位" prop="positionId">
-                  <el-select
-                    style="width: 200px"
-                    v-model="formData.positionId"
-                    placeholder="请选择"
-                    popper-class="select-prop"
-                  >
-                    <el-option
-                      v-for="val in postOption"
-                      :label="val.postName"
-                      :value="val.postId"
-                      :key="val.postId"
-                    ></el-option>
-                  </el-select>
-                </el-form-item>
-              </el-col>
               <el-col :span="8">
                 <el-form-item label="领导人" prop="leaderId">
                   <el-select
@@ -228,7 +234,9 @@
               </el-col>
               <el-col :span="8">
                 <el-form-item label="领导人工号" prop="leaderName">
-                  <el-input v-model="formData.leaderId" disabled></el-input>
+                  <el-input v-model="formData.leaderId" disabled
+                  style="width: 200px"
+                  ></el-input>
                 </el-form-item>
               </el-col>
               <el-col :span="8">
@@ -251,13 +259,44 @@
               </el-col>
               <el-col :span="8">
                 <el-form-item label="业务员工号" prop="referrerName">
-                  <el-input v-model="formData.referrerId" disabled></el-input>
+                  <el-input v-model="formData.referrerId" disabled
+                  style="width: 200px"
+                  ></el-input>
+                </el-form-item>
+              </el-col>
+
+              <!-- <el-col :span="8">
+                <el-form-item label="身份证号" prop="identity">
+                  <el-input
+                    v-model="formData.identity"
+                    :maxlength="18"
+                  ></el-input>
+                </el-form-item>
+              </el-col> -->
+
+              <el-col :span="8">
+                <el-form-item label="密码" prop="password">
+                  <el-input
+                    style="width: 200px"
+                    v-model="formData.password"
+                    type="password" show-password
+                  ></el-input>
                 </el-form-item>
               </el-col>
-              <el-col :span="16">
+
+              <el-col :span="8">
+                <el-form-item label="代理人资格证号" prop="agentQualificationCode">
+                  <el-input
+                    style="width: 200px"
+                    v-model="formDataDetail.agentQualificationCode"
+                  ></el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="24">
                 <el-form-item label="驳回信息" prop="referrerName">
                   <el-input
                     type="textarea"
+                    style="width: 600px;"
                     v-model="formData.approvalOpinion"
                     disabled
                   ></el-input>
@@ -266,13 +305,12 @@
             </el-row>
           </el-form>
           <div style="text-align: right">
-            <el-button size="small" type="primary" @click="activeName = '3'"
+            <el-button size="small" type="primary" @click="activeName = '2'"
               >下一步</el-button
             >
           </div>
         </el-tab-pane>
-
-        <el-tab-pane label="影像资料" name="3">
+        <el-tab-pane label="影像资料" name="2">
           <el-form
             :model="formDataDetail"
             ref="formDataDetail"
@@ -452,9 +490,16 @@ export default {
             minWidth: 100,
           },
           {
-            prop: "status",
-            label: "状态",
+            prop: "approveBy",
+            label: "审核人",
             type: "text",
+            minWidth: 100,
+          },
+          {
+            name: "status",
+            label: "状态",
+            type: "slot",
+            width: 120
           },
         ],
         loading: true,
@@ -477,12 +522,24 @@ export default {
             perm: "sys:agent:edit",
             icon: "fa fa-edit",
             hide: (row) => {
-              return row.status == "正常";
+              return row.status == "在职";
             },
             click: (row, index) => {
               return this.handleOut(row);
             },
           },
+          {
+            type: "primary",
+            label: "离司恢复",
+            perm: "sys:agent:edit",
+            icon: "fa fa-edit",
+            hide: (row) => {
+              return row.status == "离司";
+            },
+            click: (row, index) => {
+              return this.handleRest(row);
+            },
+          },
         ],
       },
       recommenderOptions: [],
@@ -506,12 +563,12 @@ export default {
             trigger: "blur",
           },
         ],
-        identity: [
-          { required: true, message: "请填写身份证号" },
-          { validator: validateSfz },
-        ],
+        // identity: [
+        //   { required: true, message: "请填写身份证号" },
+        //   { validator: validateSfz },
+        // ],
         name: [{ required: true, message: "请填写名称", trigger: "blur" }],
-        password: [{ required: true, message: "请填写密码", trigger: "blur" }],
+        // password: [{ required: true, message: "请填写密码", trigger: "blur" }],
         status: [{ required: true, message: "请选择状态", trigger: "change" }],
         // roleId: [{ required: true, message: "请填写角色", trigger: "blur" }],
         referrerId: [
@@ -547,6 +604,7 @@ export default {
   },
   created() {
     this.findPage();
+    this.getDictItems("user_status");
     this.searchLeaderFun();
   },
   watch: {
@@ -555,6 +613,43 @@ export default {
     },
   },
   methods: {
+    // 离司恢复
+    handleRest(data) {
+      this.$confirm('是否恢复', '提示', { 
+          confirmButtonText: '确定',
+          cancelButtonText: '取消',
+          type: 'warning'
+        }).then((res) => {
+          if (res == 'confirm') {
+            this.$api.user.separationReinstatement(data.userId).then((res) => {
+              if (res.code == 200) {
+                this.$message({
+                  type: 'success',
+                  message: res.msg
+                });
+                this.findPage()
+              }
+            })
+          }
+        }).catch(() => {
+          this.$message({
+            type: 'info',
+            message: '已取消'
+          });          
+        });
+    },
+    // 新增或修改的弹出框Start
+    getDictItems(typeName) {
+      //--数据字典--
+      this.$api.dict
+        .findByLableName(typeName)
+        .then((response) => {
+          this[typeName + "options"] = response.data; // 把获取到的数据赋给this.data
+        })
+        .catch((error) => {
+          this[typeName + "options"] = [];
+        });
+    },
     handleSubOut() {
       if (this.logoutTime == "") {
         this.$message.error("请选择时间");
@@ -818,6 +913,7 @@ export default {
     // 清空数据
     closeDialog() {
       this.dialogVisible = false;
+      this.activeName = '1'
     },
     // 提交
     submitForm() {
@@ -882,6 +978,8 @@ export default {
                 });
             }
           });
+        } else {
+          this.$message.error('请填写全部信息')
         }
       });
     },
@@ -952,9 +1050,7 @@ export default {
 </style>
 
 <style lang="scss" scoped>
->>> .el-tabs__header {
-  margin-right: 50px !important;
-}
+
 >>> .el-tabs__item:hover {
   color: #2d4d89;
 }
@@ -995,3 +1091,33 @@ export default {
   }
 }
 </style>
+
+<style lang="scss" scoped>
+/deep/ .el-tag--plain {
+  background: rgba(93,125,255,0.1);
+  border-radius: 4px;
+  border: 1px solid #5D7DFF;
+}
+/deep/ .el-tag--plain.el-tag--danger {
+  background: rgba(240,85,82,0.1);
+  border-radius: 4px 4px 4px 4px;
+  border: 1px solid #F05552;
+}
+/deep/ .el-tag--plain.el-tag--info {
+  background: rgba(158,158,158,0.1);
+  border-radius: 4px 4px 4px 4px;
+  border: 1px solid #9E9E9E;
+}
+
+/deep/ .el-tag--plain.el-tag--success {
+  background: rgba(81,189,44,0.1);
+  border-radius: 4px 4px 4px 4px;
+  border: 1px solid #51BD2C;
+}
+ 
+/deep/ .el-tag--plain.el-tag--warning {
+  background: rgba(242,153,47,0.1);
+  border-radius: 4px 4px 4px 4px;
+  border: 1px solid #F2992F;
+}
+</style>

+ 225 - 394
src/views/PeopleManage/Player/PlayerManageteam.vue

@@ -49,6 +49,17 @@
               </el-option>
             </el-select>
           </template> -->
+          <template slot="status" slot-scope="scope">
+            <el-tag
+              :type="scope.row.status == '在职' ? 'success' :
+               scope.row.status == '离司' ? 'info' :
+               scope.row.status == '入司待审核' ? 'warning' :
+               scope.row.status == '修改待审核' ? 'warning' :
+               scope.row.status == '离司待审核' ? 'warning' : 'danger'"
+              effect="plain">
+              {{ scope.row.status }}
+            </el-tag>
+          </template>
           </templateTable>
         </SplitArea>
         <!-- 右侧列表页面End -->
@@ -58,13 +69,15 @@
     <el-dialog
       :title="dialogTitle"
       width="60%"
+      top="5vh"
       :visible.sync="dialogVisible"
       :close-on-click-modal="false"
       :before-close="handleDialogBefore"
       @close="closeDialog"
       v-dialogDrag
+      class="people-style"
     >
-      <el-tabs v-model="activeName" :before-leave="beforeTabLeave">
+      <el-tabs v-model="activeName" :before-leave="beforeTabLeave" class="tab-style">
         <el-tab-pane label="基本信息" name="1">
           <el-form
             :model="formData"
@@ -113,42 +126,53 @@
                   </el-cascader> </el-form-item
               ></el-col>
               <el-col :span="8">
-                <el-form-item label="员工工号" prop="id">
-                  <el-input v-model="formData.id" disabled></el-input>
+                <el-form-item label="岗位" prop="positionId">
+                  <el-select
+                    style="width: 200px"
+                    v-model="formData.positionId"
+                    placeholder="请选择"
+                    popper-class="select-prop"
+                  >
+                    <el-option
+                      v-for="val in postOption"
+                      :label="val.postName"
+                      :value="val.postId"
+                      :key="val.postId"
+                    ></el-option>
+                  </el-select>
                 </el-form-item>
               </el-col>
               <el-col :span="8">
-                <el-form-item label="手机号" prop="mobile">
-                  <el-input v-model="formData.mobile"></el-input>
+                <el-form-item label="工号" prop="id">
+                  <el-input v-model="formData.id" disabled
+                  style="width: 200px"
+                  ></el-input>
                 </el-form-item>
               </el-col>
               <el-col :span="8">
-                <el-form-item label="身份证号" prop="identity">
-                  <el-input
-                    v-model="formData.identity"
-                    :maxlength="18"
+                <el-form-item label="姓名" prop="name">
+                  <el-input v-model="formData.name"
+                  style="width: 200px"
                   ></el-input>
-                  <!-- @change="identityChange" -->
                 </el-form-item>
               </el-col>
               <el-col :span="8">
-                <el-form-item label="名称" prop="name">
-                  <el-input v-model="formData.name"></el-input>
+                <el-form-item label="手机号" prop="mobile">
+                  <el-input v-model="formData.mobile"
+                  style="width: 200px"
+                  ></el-input>
                 </el-form-item>
               </el-col>
               <el-col :span="8">
-                <el-form-item label="密码" prop="password">
-                  <el-input
-                    v-model="formData.password"
-                    :class="isShow == true ? 'disc' : 'none'"
-                  ></el-input>
-                  <i
-                    class="el-icon-view icon"
-                    @click="isShowFun()"
-                    v-if="dialogPassword"
-                  ></i>
-                  <!-- <el-input style="width:200px" v-model="formData.password" autocomplete="new-password" -->
-                  <!-- show-password></el-input> -->
+                <el-form-item label="入司时间">
+                  <el-date-picker
+                    style="width: 200px"
+                    v-model="formDataDetail.entryTime"
+                    type="date"
+                    placeholder="选择日期"
+                    popper-class="select-prop"
+                  >
+                  </el-date-picker>
                 </el-form-item>
               </el-col>
               <el-col :span="8">
@@ -186,23 +210,6 @@
                   </el-select>
                 </el-form-item>
               </el-col>
-              <el-col :span="8">
-                <el-form-item label="岗位" prop="positionId">
-                  <el-select
-                    style="width: 200px"
-                    v-model="formData.positionId"
-                    placeholder="请选择"
-                    popper-class="select-prop"
-                  >
-                    <el-option
-                      v-for="val in postOption"
-                      :label="val.postName"
-                      :value="val.postId"
-                      :key="val.postId"
-                    ></el-option>
-                  </el-select>
-                </el-form-item>
-              </el-col>
               <el-col :span="8">
                 <el-form-item label="领导人" prop="leaderId">
                   <el-select
@@ -224,7 +231,17 @@
               </el-col>
               <el-col :span="8">
                 <el-form-item label="领导人工号" prop="leaderName">
-                  <el-input v-model="formData.leaderId" disabled></el-input>
+                  <el-input v-model="formData.leaderId" disabled
+                  style="width: 200px"
+                  ></el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="代理人资格证号" prop="agentQualificationCode">
+                  <el-input
+                    style="width: 200px"
+                    v-model="formDataDetail.agentQualificationCode"
+                  ></el-input>
                 </el-form-item>
               </el-col>
             </el-row>
@@ -239,288 +256,9 @@
           <userDetail
             :formData="formData"
             :formDataDetail="formDataDetail"
+            ref="formDataDetails"
+            @valids="valids"
           ></userDetail>
-          <!-- <el-form
-            :model="formDataDetail"
-            :rules="formDataRulesDetail"
-            ref="formDataDetail"
-            :inline="true"
-            label-width="110px"
-            size="small"
-          >
-            <el-row>
-              <el-col :span="8">
-                <el-form-item label="姓名" prop="name">
-                  <el-input v-model="formData.name"></el-input>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="性别" prop="sex">
-                  <el-select
-                    style="width: 200px"
-                    v-model="formDataDetail.sex"
-                    placeholder="请选择"
-                  >
-                    <el-option
-                      v-for="val in sexoptions"
-                      :label="val.label"
-                      :value="val.value"
-                      :key="val.id"
-                    ></el-option>
-                  </el-select>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="出生日期" prop="birthday">
-                  <el-date-picker
-                    style="width: 200px"
-                    v-model="formDataDetail.birthday"
-                    type="date"
-                    placeholder="选择日期"
-                  >
-                  </el-date-picker>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="民族" prop="nations">
-                  <el-select
-                    style="width: 200px"
-                    v-model="formDataDetail.nations"
-                    placeholder="请选择民族"
-                  >
-                    <el-option
-                      :label="national"
-                      :value="national"
-                      v-for="national in nationalList"
-                      :key="national"
-                    ></el-option>
-                  </el-select>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="政治面貌" prop="politicsStatus">
-                  <el-select
-                    style="width: 200px"
-                    v-model="formDataDetail.politicsStatus"
-                    placeholder="请选择"
-                  >
-                    <el-option
-                      v-for="val in politicsStatusOption"
-                      :key="val.value"
-                      :label="val.label"
-                      :value="val.value"
-                    ></el-option>
-                  </el-select>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="婚姻状况" prop="maritalStatus">
-                  <el-select
-                    v-model="formDataDetail.maritalStatus"
-                    placeholder="请选择婚姻状况"
-                    style="width: 200px"
-                  >
-                    <el-option
-                      v-for="val in maritalStatusOption"
-                      :key="val.value"
-                      :label="val.label"
-                      :value="val.value"
-                    ></el-option>
-                  </el-select>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="户籍" prop="koseki">
-                  <el-input v-model="formDataDetail.koseki"></el-input>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="血型" prop="bloodType">
-                  <el-select
-                    style="width: 200px"
-                    v-model="formDataDetail.bloodType"
-                    placeholder="请选择"
-                  >
-                    <el-option
-                      v-for="val in bloodOption"
-                      :key="val.value"
-                      :label="val.label"
-                      :value="val.value"
-                    ></el-option>
-                  </el-select>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="健康状况" prop="health">
-                  <el-select
-                    style="width: 200px"
-                    v-model="formDataDetail.health"
-                    placeholder="请选择"
-                  >
-                    <el-option
-                      v-for="val in healthOption"
-                      :key="val.value"
-                      :label="val.label"
-                      :value="val.value"
-                    ></el-option>
-                  </el-select>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="学历" prop="education">
-                  <el-select
-                    style="width: 200px"
-                    v-model="formDataDetail.education"
-                    placeholder="请选择"
-                  >
-                    <el-option
-                      v-for="val in educationOption"
-                      :key="val.value"
-                      :label="val.label"
-                      :value="val.value"
-                    ></el-option>
-                  </el-select>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="毕业院校" prop="school">
-                  <el-input v-model="formDataDetail.school"></el-input>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="毕业时间" prop="graduationTime">
-                  <el-date-picker
-                    style="width: 200px"
-                    v-model="formDataDetail.graduationTime"
-                    type="date"
-                    placeholder="选择日期"
-                  >
-                  </el-date-picker>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="居住地址" prop="address">
-                  <el-input v-model="formDataDetail.address"></el-input>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="邮政编码" prop="postalCode">
-                  <el-input v-model="formDataDetail.postalCode"></el-input>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="邮箱">
-                  <el-input
-                    style="width: 200px"
-                    v-model="formDataDetail.email"
-                  ></el-input>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item
-                  label="紧急联系人姓名"
-                  prop="emergencyContactName"
-                >
-                  <el-input
-                    v-model="formDataDetail.emergencyContactName"
-                  ></el-input>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="紧急联系人电话" prop="emergencyContactTel">
-                  <el-input
-                    v-model="formDataDetail.emergencyContactTel"
-                  ></el-input>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="工资">
-                  <el-input
-                    style="width: 200px"
-                    v-model="formDataDetail.salary"
-                  ></el-input>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="薪资等级">
-                  <el-input
-                    style="width: 200px"
-                    v-model="formDataDetail.salaryLevel"
-                  ></el-input>
-                </el-form-item>
-              </el-col>
-              
-              <el-col :span="8">
-                <el-form-item label="绩效方案">
-                  <el-input
-                    style="width: 200px"
-                    v-model="formDataDetail.performance"
-                  ></el-input>
-                  <el-select style="width: 200px" v-model="formDataDetail.performance" placeholder="请选择" >
-                    <el-option label="博士" value="博士"></el-option>
-                  </el-select>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="开户账号" prop="accountno">
-                  <el-input
-                    disabled
-                    style="width: 200px"
-                    v-model="formDataDetail.accountno"
-                    placeholder="登录系统绑卡后显示"
-                  ></el-input>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="开户行" prop="bankName">
-                  <el-input
-                    disabled
-                    style="width: 200px"
-                    v-model="formDataDetail.bankName"
-                    placeholder="登录系统绑卡后显示"
-                  ></el-input>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="原工作单位" prop="formerEmployer">
-                  <el-input v-model="formDataDetail.formerEmployer"></el-input>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="入司时间" prop="entryTime">
-                  <el-date-picker
-                    style="width: 200px"
-                    v-model="formDataDetail.entryTime"
-                    type="date"
-                    placeholder="选择日期"
-                  >
-                  </el-date-picker>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="离职时间" prop="logoutTime">
-                  <el-date-picker
-                    value-format="yyyy-MM-dd"
-                    style="width: 200px"
-                    v-model="formData.logoutTime"
-                    type="date"
-                    placeholder="选择日期"
-                  >
-                  </el-date-picker>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item
-                  label="代理人资格证号"
-                  prop="agentQualificationCode"
-                >
-                  <el-input
-                    v-model="formDataDetail.agentQualificationCode"
-                  ></el-input>
-                </el-form-item>
-              </el-col>
-            </el-row>
-          </el-form> -->
           <div style="text-align: right">
             <el-button size="small" type="primary" @click="activeName = '1'"
               >上一步</el-button
@@ -718,9 +456,16 @@ export default {
             minWidth: 100,
           },
           {
-            prop: "status",
-            label: "状态",
+            prop: "approveBy",
+            label: "审核人",
             type: "text",
+            minWidth: 100,
+          },
+          {
+            name: "status",
+            label: "状态",
+            type: "slot",
+            width: 120
           },
         ],
         loading: true,
@@ -743,12 +488,24 @@ export default {
             perm: "sys:agent:edit",
             icon: "fa fa-edit",
             hide: (row) => {
-              return row.status == "正常";
+              return row.status == "在职";
             },
             click: (row, index) => {
               return this.handleOut(row);
             },
           },
+          {
+            type: "primary",
+            label: "离司恢复",
+            perm: "sys:agent:edit",
+            icon: "fa fa-edit",
+            hide: (row) => {
+              return row.status == "离司";
+            },
+            click: (row, index) => {
+              return this.handleRest(row);
+            },
+          },
         ],
       },
       recommenderOptions: [],
@@ -805,6 +562,7 @@ export default {
   created() {
     this.findPage();
     this.searchLeaderFun();
+    this.getDictItems("user_status");
   },
 
   watch: {
@@ -813,6 +571,41 @@ export default {
     },
   },
   methods: {
+    // 离司恢复
+    handleRest(data) {
+      this.$confirm('是否恢复', '提示', { 
+          confirmButtonText: '确定',
+          cancelButtonText: '取消',
+          type: 'warning'
+        }).then(() => {
+          this.$api.user.separationReinstatement(data.userId).then((res) => {
+            if (res.code == 200) {
+              this.$message({
+                type: 'success',
+                message: res.msg
+              });
+              this.findPage();
+            }
+          })
+        }).catch(() => {
+          this.$message({
+            type: 'info',
+            message: '已取消'
+          });          
+        });
+    },
+    // 新增或修改的弹出框Start
+    getDictItems(typeName) {
+      //--数据字典--
+      this.$api.dict
+        .findByLableName(typeName)
+        .then((response) => {
+          this[typeName + "options"] = response.data; // 把获取到的数据赋给this.data
+        })
+        .catch((error) => {
+          this[typeName + "options"] = [];
+        });
+    },
     handleSubOut() {
       if (this.logoutTime == "") {
         this.$message.error("请选择时间");
@@ -1133,74 +926,84 @@ export default {
     // 清空数据
     closeDialog() {
       this.dialogVisible = false;
+      this.activeName = '1'
+    },
+    valids(data) {
+      this.detailValid = data
     },
     // 提交
     submitForm() {
-      this.$refs.formData.validate((valid) => {
-        if (valid) {
-          this.$confirm("确认提交吗?", "提示", {}).then(() => {
-            if (this.formData.positionId) {
-              this.formData.positionName = this.postOption.find(
-                (val) => val.postId == this.formData.positionId
-              ).postName;
-            }
-            if (this.formData.leaderId) {
-              this.formData.leaderName = this.leaderOptions.find(
-                (val) => val.id == this.formData.leaderId
-              ).name;
-            }
-            if (this.dialogTitle == "新增渠道信息") {
-              this.$api.user
-                .saveUserInfo({
-                  esmUserImageVo: this.imagesIdList,
-                  sysUser: this.formData,
-                  sysUserInfo: this.formDataDetail,
-                })
-                .then((res) => {
-                  if (res.code == 200) {
-                    this.$message({
-                      message: "保存成功",
-                      type: "success",
-                    });
-                    this.dialogVisible = false;
-                    this.$refs["formData"].resetFields();
-                    this.activeName = "1";
-                    this.findPage();
-                  } else {
-                    this.$message({
-                      message: `保存失败,请重新添加,(${res.msg})`,
-                      type: "error",
-                    });
-                  }
-                });
-            } else {
-              this.$api.user
-                .updateUserInfo(this.formData.id, {
-                  esmUserImageVo: this.imagesIdList,
-                  sysUser: this.formData,
-                  sysUserInfo: this.formDataDetail,
-                })
-                .then((res) => {
-                  if (res.code == 200) {
-                    this.$message({
-                      message: "编辑成功",
-                      type: "success",
-                    });
-                    this.dialogVisible = false;
-                    this.$refs["formData"].resetFields();
-                    this.activeName = "1";
-                    this.findPage();
-                  } else {
-                    this.$message({
-                      message: `编辑失败,请重新添加,(${res.msg})`,
-                      type: "error",
-                    });
-                  }
-                });
-            }
-          });
-        }
-      });
+      this.$refs.formDataDetails.submit()
+      setTimeout(() => {
+        this.$refs.formData.validate((valid) => {
+          if (valid && this.detailValid) {
+            this.$confirm("确认提交吗?", "提示", {}).then(() => {
+              if (this.formData.positionId) {
+                this.formData.positionName = this.postOption.find(
+                  (val) => val.postId == this.formData.positionId
+                ).postName;
+              }
+              if (this.formData.leaderId) {
+                this.formData.leaderName = this.leaderOptions.find(
+                  (val) => val.id == this.formData.leaderId
+                ).name;
+              }
+              if (this.dialogTitle == "新增渠道信息") {
+                this.$api.user
+                  .saveUserInfo({
+                    esmUserImageVo: this.imagesIdList,
+                    sysUser: this.formData,
+                    sysUserInfo: this.formDataDetail,
+                  })
+                  .then((res) => {
+                    if (res.code == 200) {
+                      this.$message({
+                        message: "保存成功",
+                        type: "success",
+                      });
+                      this.dialogVisible = false;
+                      this.$refs["formData"].resetFields();
+                      this.activeName = "1";
+                      this.findPage();
+                    } else {
+                      this.$message({
+                        message: `保存失败,请重新添加,(${res.msg})`,
+                        type: "error",
+                      });
+                    }
+                  });
+              } else {
+                this.$api.user
+                  .updateUserInfo(this.formData.id, {
+                    esmUserImageVo: this.imagesIdList,
+                    sysUser: this.formData,
+                    sysUserInfo: this.formDataDetail,
+                  })
+                  .then((res) => {
+                    if (res.code == 200) {
+                      this.$message({
+                        message: "编辑成功",
+                        type: "success",
+                      });
+                      this.dialogVisible = false;
+                      this.$refs["formData"].resetFields();
+                      this.activeName = "1";
+                      this.findPage();
+                    } else {
+                      this.$message({
+                        message: `编辑失败,请重新添加,(${res.msg})`,
+                        type: "error",
+                      });
+                    }
+                  });
+              }
+            });
+          } else {
+            this.$message.error('请填写全部信息')
+          }
+        });
+      
+      }, 500);
     },
   },
 };
@@ -1269,9 +1072,7 @@ export default {
 </style>
 
 <style lang="scss" scoped>
->>> .el-tabs__header {
-  margin-right: 50px !important;
-}
+
 >>> .el-tabs__item:hover {
   color: #2d4d89;
 }
@@ -1311,3 +1112,33 @@ export default {
   }
 }
 </style>
+
+<style lang="scss" scoped>
+/deep/ .el-tag--plain {
+  background: rgba(93,125,255,0.1);
+  border-radius: 4px;
+  border: 1px solid #5D7DFF;
+}
+/deep/ .el-tag--plain.el-tag--danger {
+  background: rgba(240,85,82,0.1);
+  border-radius: 4px 4px 4px 4px;
+  border: 1px solid #F05552;
+}
+/deep/ .el-tag--plain.el-tag--info {
+  background: rgba(158,158,158,0.1);
+  border-radius: 4px 4px 4px 4px;
+  border: 1px solid #9E9E9E;
+}
+
+/deep/ .el-tag--plain.el-tag--success {
+  background: rgba(81,189,44,0.1);
+  border-radius: 4px 4px 4px 4px;
+  border: 1px solid #51BD2C;
+}
+ 
+/deep/ .el-tag--plain.el-tag--warning {
+  background: rgba(242,153,47,0.1);
+  border-radius: 4px 4px 4px 4px;
+  border: 1px solid #F2992F;
+}
+</style>

+ 143 - 201
src/views/PeopleManage/Staff/StaffExamine.vue

@@ -71,6 +71,27 @@
                     </el-select>
                   </el-form-item>
                 </el-col>
+                <el-col :span="5">
+                  <el-form-item label="领导人">
+                    <el-select
+                      size="small"
+                      style="width: 215px"
+                      clearable
+                      filterable
+                      v-model="queryFrom.leaderId"
+                      placeholder="请选择"
+                      popper-class="select-prop"
+                    >
+                      <el-option
+                        v-for="item in searchLeaderOptions"
+                        :key="item.id"
+                        :label="item.name"
+                        :value="item.name"
+                      >
+                      </el-option>
+                    </el-select>
+                  </el-form-item>
+                </el-col>
                 <el-col :span="4">
                   <el-form-item label="">
                     <el-button
@@ -96,6 +117,9 @@
             :button8Name="'审核'"
             :button8Status="'入司待审核'"
             @handleButton8="handleTableEdit"
+            :button10Name="'审核'"
+            :button10Status="'修改待审核'"
+            @handleButton10="handleTableEdit"
             :showBatchDelete="false"
             @findPage="findPage"
             @handleButton3="handleTableEdit1"
@@ -108,13 +132,15 @@
     <el-dialog
       :title="dialogTitle"
       width="60%"
+      top="5vh"
       :visible.sync="dialogVisible"
       :close-on-click-modal="false"
       :before-close="handleDialogBefore"
       @close="closeDialog"
       v-dialogDrag
+      class="people-style"
     >
-      <el-tabs v-model="activeName">
+      <el-tabs v-model="activeName" class="tab-style">
         <el-tab-pane label="基本信息" name="1">
           <el-form
             :model="formData"
@@ -127,7 +153,7 @@
           >
             <el-row>
               <el-col :span="8">
-                <el-form-item label="机构部门">
+                <el-form-item label="机构名称">
                   <el-cascader
                     style="width: 200px"
                     :options="ztreeNodes"
@@ -144,7 +170,7 @@
                   </el-cascader> </el-form-item
               ></el-col>
               <el-col :span="8">
-                <el-form-item label="机构名称" prop="deptId">
+                <el-form-item label="机构部门" prop="deptId">
                   <el-cascader
                     style="width: 200px"
                     :options="ztreeNodes"
@@ -161,36 +187,52 @@
                   </el-cascader> </el-form-item
               ></el-col>
               <el-col :span="8">
-                <el-form-item label="员工工号" prop="id">
-                  <el-input v-model="formData.id" disabled></el-input>
+                <el-form-item label="岗位" prop="positionId">
+                  <el-select
+                    style="width: 200px"
+                    v-model="formData.positionId"
+                    placeholder="请选择"
+                  >
+                    <el-option
+                      v-for="val in postOption"
+                      :label="val.postName"
+                      :value="val.postId"
+                      :key="val.postId"
+                    ></el-option>
+                  </el-select>
                 </el-form-item>
               </el-col>
               <el-col :span="8">
-                <el-form-item label="手机号" prop="mobile">
-                  <el-input v-model="formData.mobile"></el-input>
+                <el-form-item label="工号" prop="id">
+                  <el-input v-model="formData.id" disabled 
+                    style="width: 200px"
+                  ></el-input>
                 </el-form-item>
               </el-col>
               <el-col :span="8">
-                <el-form-item label="身份证号" prop="identity">
-                  <el-input
-                    v-model="formData.identity"
-                    :maxlength="18"
+                <el-form-item label="姓名" prop="name">
+                  <el-input v-model="formData.name"
+                  style="width: 200px"
                   ></el-input>
                 </el-form-item>
               </el-col>
               <el-col :span="8">
-                <el-form-item label="名称" prop="name">
-                  <el-input v-model="formData.name"></el-input>
+                <el-form-item label="手机号" prop="mobile">
+                  <el-input v-model="formData.mobile"
+                  style="width: 200px"
+                  ></el-input>
                 </el-form-item>
               </el-col>
               <el-col :span="8">
-                <el-form-item label="密码" prop="password">
-                  <el-input
+                <el-form-item label="入司时间">
+                  <el-date-picker
                     style="width: 200px"
-                    v-model="formData.password"
-                    autocomplete="new-password"
-                    show-password
-                  ></el-input>
+                    v-model="formDataDetail.entryTime"
+                    type="date"
+                    placeholder="选择日期"
+                    popper-class="select-prop"
+                  >
+                  </el-date-picker>
                 </el-form-item>
               </el-col>
               <el-col :span="8">
@@ -227,21 +269,39 @@
                 </el-form-item>
               </el-col>
               <el-col :span="8">
-                <el-form-item label="岗位" prop="positionId">
+                <el-form-item label="领导人" prop="leaderId">
                   <el-select
                     style="width: 200px"
-                    v-model="formData.positionId"
+                    clearable
+                    filterable
+                    v-model="formData.leaderId"
                     placeholder="请选择"
+                    popper-class="select-prop"
                   >
                     <el-option
-                      v-for="val in postOption"
-                      :label="val.postName"
-                      :value="val.postId"
-                      :key="val.postId"
+                      v-for="val in leaderOptions"
+                      :label="val.name"
+                      :value="val.id"
+                      :key="val.id"
                     ></el-option>
                   </el-select>
                 </el-form-item>
               </el-col>
+              <el-col :span="8">
+                <el-form-item label="领导人工号" prop="leaderName">
+                  <el-input v-model="formData.leaderId" disabled 
+                    style="width: 200px"
+                  ></el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="代理人资格证号" prop="agentQualificationCode">
+                  <el-input
+                    style="width: 200px"
+                    v-model="formDataDetail.agentQualificationCode"
+                  ></el-input>
+                </el-form-item>
+              </el-col>
             </el-row>
           </el-form>
           <div style="text-align: right">
@@ -254,179 +314,9 @@
           <userDetail
             :formData="formData"
             :formDataDetail="formDataDetail"
+            ref="formDataDetails"
             isDisabled
           ></userDetail>
-          <!-- <el-form :model="formDataDetail" :rules="formDataRules" ref="formDataDetail" :inline="true"
-            label-width="110px" size="small">
-            <el-row>
-              <el-col :span="8">
-                <el-form-item label="姓名" prop="name">
-                  <el-input v-model="formData.name"></el-input>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="性别" prop="sex">
-                  <el-select disabled style="width:200px" v-model="formDataDetail.sex" placeholder="请选择">
-                    <el-option v-for="val in sexoptions" :label="val.label" :value="val.value" :key="val.id"></el-option>
-                  </el-select>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="出生日期" prop="birthday">
-                  <el-date-picker disabled style="width:200px" v-model="formDataDetail.birthday" type="date"
-                    placeholder="选择日期">
-                  </el-date-picker>
-                </el-form-item>
-              </el-col>
-
-
-
-
-
-
-              <el-col :span="8">
-                <el-form-item label="开户账号" prop="accountno">
-                  <el-input disabled v-model="formDataDetail.accountno"></el-input>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="开户行" prop="bankName">
-                  <el-input disabled v-model="formDataDetail.bankName"></el-input>
-                </el-form-item>
-              </el-col>
-            </el-row>
-              <el-row>
-              <el-col :span="8">
-                <el-form-item label="户籍" prop="koseki">
-                  <el-input disabled v-model="formDataDetail.koseki"></el-input>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="婚姻状况" prop="maritalStatus">
-                  <el-select disabled v-model="formDataDetail.maritalStatus" placeholder="请选择婚姻状况" style="width:200px">
-                    <el-option label="未婚" value="未婚"></el-option>
-                    <el-option label="已婚" value="已婚"></el-option>
-                    <el-option label="离异" value="离异"></el-option>
-                    <el-option label="再婚" value="再婚"></el-option>
-                  </el-select>
-                </el-form-item>
-              </el-col>
-            </el-row>
-              <el-row>
-              <el-col :span="8">
-                <el-form-item label="民族" prop="nations">
-                  <el-select disabled style="width:200px" v-model="formDataDetail.nations" placeholder="请选择民族">
-                    <el-option :label="national" :value="national" v-for="national in nationalList"
-                      :key="national"></el-option>
-                  </el-select>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="政治面貌" prop="politicsStatus">
-                  <el-select disabled style="width:200px" v-model="formDataDetail.politicsStatus" placeholder="请选择">
-                    <el-option label="群众" value="群众"></el-option>
-                    <el-option label="共青团员" value="共青团员"></el-option>
-                    <el-option label="中共党员" value="中共党员"></el-option>
-                  </el-select>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="健康状况" prop="health">
-                  <el-select disabled style="width:200px" v-model="formDataDetail.health" placeholder="请选择">
-                    <el-option label="健康" value="健康"></el-option>
-                    <el-option label="亚健康" value="亚健康"></el-option>
-                    <el-option label="疾病" value="疾病"></el-option>
-                  </el-select>
-                </el-form-item>
-              </el-col>
-            </el-row>
-              <el-row>
-              <el-col :span="8">
-                <el-form-item label="邮政编码" prop="postalCode">
-                  <el-input disabled v-model="formDataDetail.postalCode"></el-input>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="居住地址" prop="address">
-                  <el-input disabled v-model="formDataDetail.address"></el-input>
-                </el-form-item>
-              </el-col>
-
-              <el-col :span="8">
-                <el-form-item label="血型" prop="bloodType">
-                  <el-select disabled style="width:200px" v-model="formDataDetail.bloodType" placeholder="请选择">
-                    <el-option label="A型" value="A型"></el-option>
-                    <el-option label="B型" value="B型"></el-option>
-                    <el-option label="O型" value="O型"></el-option>
-                    <el-option label="AB型" value="AB型"></el-option>
-                  </el-select>
-                </el-form-item>
-              </el-col>
-            </el-row>
-              <el-row>
-              <el-col :span="8">
-                <el-form-item label="学历" prop="education">
-                  <el-select disabled style="width:200px" v-model="formDataDetail.education" placeholder="请选择">
-                    <el-option label="小学" value="小学"></el-option>
-                    <el-option label="初中" value="初中"></el-option>
-                    <el-option label="高中" value="高中"></el-option>
-                    <el-option label="专科" value="专科"></el-option>
-                    <el-option label="本科" value="本科"></el-option>
-                    <el-option label="硕士" value="硕士"></el-option>
-                    <el-option label="博士" value="博士"></el-option>
-                  </el-select>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="毕业院校" prop="school">
-                  <el-input disabled v-model="formDataDetail.school"></el-input>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="毕业时间" prop="graduationTime">
-                  <el-date-picker disabled style="width:200px" v-model="formDataDetail.graduationTime" type="date"
-                    placeholder="选择日期">
-                  </el-date-picker>
-                </el-form-item>
-              </el-col>
-            </el-row>
-              <el-row>
-              <el-col :span="8">
-                <el-form-item label="原工作单位" prop="formerEmployer">
-                  <el-input disabled v-model="formDataDetail.formerEmployer"></el-input>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="入司时间" prop="entryTime">
-                  <el-date-picker disabled style="width:200px" v-model="formDataDetail.entryTime" type="date"
-                    placeholder="选择日期">
-                  </el-date-picker>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="代理人资格证号" prop="agentQualificationCode">
-                  <el-input disabled v-model="formDataDetail.agentQualificationCode"></el-input>
-                </el-form-item>
-              </el-col>
-            </el-row>
-              <el-row>
-              <el-col :span="8">
-                <el-form-item label="紧急联系人电话" prop="emergencyContactTel">
-                  <el-input disabled v-model="formDataDetail.emergencyContactTel"></el-input>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="紧急联系人姓名" prop="emergencyContactName">
-                  <el-input disabled v-model="formDataDetail.emergencyContactName"></el-input>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="驳回" prop="approvalOpinion">
-                  <el-input type="textarea" disabled v-model="formData.approvalOpinion"></el-input>
-                </el-form-item>
-              </el-col>
-            </el-row>
-          </el-form> -->
           <div style="text-align: right">
             <div style="text-align: right">
               <el-button size="small" type="primary" @click="nextStep('1')"
@@ -450,6 +340,7 @@
               :dataForm="dataForm"
               :dialogVisible="dialogVisible"
               :carfrontImg="true"
+              isDisabled
             ></peopleImage>
           </el-form>
           <div style="text-align: right">
@@ -579,8 +470,9 @@ export default {
         {
           prop: "sex",
           label: "性别",
-          minWidth: 50,
+          minWidth: 80,
           sortable: false,
+          isSex: true
         },
         { prop: "mobile", label: "联系电话", minWidth: 100, sortable: false },
         {
@@ -601,11 +493,18 @@ export default {
           type: "text",
           minWidth: 100,
         },
+        {
+          prop: "approveBy",
+          label: "审核人",
+          type: "text",
+          minWidth: 100,
+        },
         {
           prop: "status",
           label: "状态",
-          minWidth: 50,
+          minWidth: 120,
           sortable: false,
+          isStatus: true
         },
       ],
       dialogTitle: "",
@@ -614,10 +513,13 @@ export default {
       deptInfo: {}, //选中机构的基本信息
       option: [], //机构列表
       user_statusoptions: [],
+      leaderOptions: [],
+      searchLeaderOptions: {},
     };
   },
   created() {
     this.getDictItems("user_status");
+    this.searchLeaderFun()
   },
   mounted() {},
   methods: {
@@ -664,6 +566,8 @@ export default {
       this.pageData.mobile = this.queryFrom.mobile;
       this.pageData.userId = this.queryFrom.userId;
       this.pageData.status = this.queryFrom.status;
+      this.pageData.leaderId = this.queryFrom.leaderId;
+      this.isQueryStaff = true
       this.findPage();
     },
     changeTreeWidth(widthVal) {
@@ -673,6 +577,16 @@ export default {
       );
       this.rightSplitWidth = 100 - this.leftSplitWidth;
     },
+    searchLeaderFun() {
+      this.$api.user.findHxUserList().then((res) => {
+        this.leaderOptions = res.data;
+      });
+      this.$api.user
+        .findBackListByDeptId({ deptId: this.deptId })
+        .then((res) => {
+          this.searchLeaderOptions = res.data;
+        });
+    },
     onZTreeClick: function (evt, treeId, treeNode) {
       // 点击事件
       this.currentTreeNode = evt;
@@ -681,6 +595,7 @@ export default {
       this.findPage();
       this.formData.deptId = [];
       this.platform(treeId);
+      this.searchLeaderFun();
     },
     platform(array) {
       if (!array.parent) {
@@ -705,14 +620,43 @@ export default {
         this.pageData.pageNum = data.pageRequest.pageNum;
         this.pageData.pageSize = data.pageRequest.pageSize;
       }
+      if (this.isQueryStaff) {
+        this.pageData.pageNum = 1
+      }
+      this.isQueryStaff = false
       let dto = {
         deptId: this.pageData.deptId,
         mobile: this.pageData.mobile,
         name: this.pageData.realName,
         userId: this.pageData.userId,
         status: this.pageData.status,
+        leaderName: this.pageData.leaderId,
+        agentFlag: 0,
         roleId: "22",
+        pageNum: this.pageData.pageNum,
+        pageSize: this.pageData.pageSize,
       };
+      this.$api.user.findBackUserList(dto).then((res) => {
+        res.data.records.forEach((val) => {
+          if (val.sex && val.sex !== "" && val.sex !== null) {
+            val.sex = this.sexoptions.find((ele) => ele.value == val.sex).label;
+          }
+          if (val.status && val.status !== "" && val.status !== null) {
+            val.status = this.user_statusoptions.find(
+              (ele) => ele.value == val.status
+            ).label;
+          }
+          val.roleId = val.roleName;
+        });
+        this.pageResult = {
+          content: res.data.records,
+          pageNum: res.data.current,
+          pageSize: res.data.size,
+          totalPages: res.data.pages,
+          totalSize: res.data.total,
+        };
+      });
+      return
       this.$api.user
         .findPage({
           dto,
@@ -742,6 +686,7 @@ export default {
         this.formData[key] = "";
       }
       this.dialogVisible = false;
+      this.activeName = '1'
     },
     // 新增或修改的弹出框Start
     getDictItems(typeName) {
@@ -860,9 +805,6 @@ export default {
 </style>
 
 <style lang="scss" scoped>
->>> .el-tabs__header {
-  margin-right: 50px !important;
-}
 >>> .el-tabs__item:hover {
   color: #2d4d89;
 }

+ 188 - 164
src/views/PeopleManage/Staff/StaffManage.vue

@@ -121,6 +121,7 @@
           </el-row>
 
           <kt-common-table
+            ref="ktcommonTable"
             permsEdit="sys:backline:edit"
             :data="pageResult"
             :columns="columns"
@@ -129,8 +130,11 @@
             @findPage="findPage"
             @handleEdit="handleTableEdit"
             :button7Name="'离司'"
-            :button7Status="'正常'"
+            :button7Status="'在职'"
             @handleButton7="handleButton7"
+            :button9Name="'离司恢复'"
+            :button9Status="'离司'"
+            @handleButton9="handleRest"
           >
           </kt-common-table>
         </SplitArea>
@@ -142,13 +146,15 @@
     <el-dialog
       :title="dialogTitle"
       width="60%"
+      top="5vh"
       :visible.sync="dialogVisible"
       :close-on-click-modal="false"
       :before-close="handleDialogBefore"
       @close="closeDialog"
       v-dialogDrag
+      class="people-style"
     >
-      <el-tabs v-model="activeName" :before-leave="beforeTabLeave">
+      <el-tabs v-model="activeName" :before-leave="beforeTabLeave" class="tab-style">
         <el-tab-pane label="基本信息" name="1">
           <el-form
             :model="formData"
@@ -198,53 +204,60 @@
                   </el-cascader> </el-form-item
               ></el-col>
               <el-col :span="8">
-                <el-form-item label="员工工号" prop="id">
-                  <el-input v-model="formData.id" disabled></el-input>
+                <el-form-item label="岗位" prop="positionId">
+                  <el-select
+                    style="width: 200px"
+                    v-model="formData.positionId"
+                    placeholder="请选择"
+                    clearable
+                    popper-class="select-prop"
+                  >
+                    <el-option
+                      v-for="val in postOption"
+                      :label="val.postName"
+                      :value="val.postId"
+                      :key="val.postId"
+                    ></el-option>
+                  </el-select>
                 </el-form-item>
               </el-col>
-            </el-row>
-            <el-row>
               <el-col :span="8">
-                <el-form-item label="手机号" prop="mobile">
-                  <el-input v-model="formData.mobile"></el-input>
+                <el-form-item label="工号" prop="id">
+                  <el-input v-model="formData.id" disabled 
+                  style="width: 200px"
+                  ></el-input>
                 </el-form-item>
               </el-col>
               <el-col :span="8">
-                <el-form-item label="身份证号" prop="identity">
-                  <el-input
-                    v-model="formData.identity"
-                    :maxlength="18"
-                    @change="identityChange"
+                <el-form-item label="姓名" prop="name">
+                  <el-input v-model="formData.name"
+                  style="width: 200px"
                   ></el-input>
                 </el-form-item>
               </el-col>
               <el-col :span="8">
-                <el-form-item label="名称" prop="name">
-                  <el-input v-model="formData.name"></el-input>
+                <el-form-item label="手机号" prop="mobile">
+                  <el-input v-model="formData.mobile"
+                  style="width: 200px"
+                  ></el-input>
                 </el-form-item>
               </el-col>
-            </el-row>
-            <el-row>
               <el-col :span="8">
-                <el-form-item label="密码" prop="password">
-                  <el-input
-                    v-model="formData.password"
-                    :class="isShow == true ? 'disc' : 'none'"
-                  ></el-input>
-                  <i
-                    class="el-icon-view icon"
-                    @click="isShowFun()"
-                    v-if="dialogPassword"
-                  ></i>
-                  <!-- <el-input style="width:200px" v-model="formData.password" autocomplete="new-password"
-                    show-password></el-input> -->
+                <el-form-item label="入司时间">
+                  <el-date-picker
+                    style="width: 200px"
+                    v-model="formDataDetail.entryTime"
+                    type="date"
+                    placeholder="选择日期"
+                    popper-class="select-prop"
+                  >
+                  </el-date-picker>
                 </el-form-item>
               </el-col>
               <el-col :span="8">
                 <el-form-item label="状态" prop="status">
                   <el-select
                     disabled
-                    @change="statusChange"
                     style="width: 200px"
                     v-model="formData.status"
                     placeholder="请选择"
@@ -275,24 +288,6 @@
                   </el-select>
                 </el-form-item>
               </el-col>
-              <el-col :span="8">
-                <el-form-item label="岗位" prop="positionId">
-                  <el-select
-                    style="width: 200px"
-                    v-model="formData.positionId"
-                    placeholder="请选择"
-                    clearable
-                    popper-class="select-prop"
-                  >
-                    <el-option
-                      v-for="val in postOption"
-                      :label="val.postName"
-                      :value="val.postId"
-                      :key="val.postId"
-                    ></el-option>
-                  </el-select>
-                </el-form-item>
-              </el-col>
               <el-col :span="8">
                 <el-form-item label="领导人" prop="leaderId">
                   <el-select
@@ -314,9 +309,22 @@
               </el-col>
               <el-col :span="8">
                 <el-form-item label="领导人工号" prop="leaderName">
-                  <el-input v-model="formData.leaderId" disabled></el-input>
+                  <el-input v-model="formData.leaderId" disabled
+                  style="width: 200px"
+                  ></el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="代理人资格证号" prop="agentQualificationCode">
+                  <el-input
+                    style="width: 200px"
+                    v-model="formDataDetail.agentQualificationCode"
+                  ></el-input>
                 </el-form-item>
               </el-col>
+              
+            </el-row>
+            <el-row>
             </el-row>
           </el-form>
           <div style="text-align: right">
@@ -329,6 +337,8 @@
           <userDetail
             :formData="formData"
             :formDataDetail="formDataDetail"
+            ref="formDataDetails"
+            @valids="valids"
           ></userDetail>
 
           <div style="text-align: right">
@@ -470,11 +480,11 @@ export default {
         name: [{ required: true, message: "请填写名称", trigger: "blur" }],
         status: [{ required: true, message: "请选择状态", trigger: "change" }],
         roleId: [{ required: true, message: "请填写角色", trigger: "blur" }],
-        password: [{ required: true, message: "请填写密码", trigger: "blur" }],
-        identity: [
-          { required: true, message: "请填写身份证号" },
-          { validator: validateSfz },
-        ],
+        // password: [{ required: true, message: "请填写密码", trigger: "blur" }],
+        // identity: [
+        //   { required: true, message: "请填写身份证号" },
+        //   { validator: validateSfz },
+        // ],
       },
       formDataDetail: {},
       formDataRulesDetail: {
@@ -517,8 +527,9 @@ export default {
         {
           prop: "sex",
           label: "性别",
-          minWidth: 50,
+          minWidth: 80,
           sortable: false,
+          isSex: true
         },
         { prop: "mobile", label: "联系电话", minWidth: 100, sortable: false },
         {
@@ -544,11 +555,18 @@ export default {
           type: "text",
           minWidth: 100,
         },
+        {
+          prop: "approveBy",
+          label: "审核人",
+          type: "text",
+          minWidth: 100,
+        },
         {
           prop: "status",
           label: "状态",
-          minWidth: 50,
+          minWidth: 120,
           sortable: false,
+          isStatus: true
         },
       ],
       dialogTitle: "",
@@ -592,6 +610,29 @@ export default {
     },
   },
   methods: {
+    // 离司恢复
+    handleRest(data) {
+      this.$confirm('是否恢复', '提示', { 
+          confirmButtonText: '确定',
+          cancelButtonText: '取消',
+          type: 'warning'
+        }).then(() => {
+          this.$api.user.separationReinstatement(data.row.userId).then((res) => {
+            if (res.code == 200) {
+              this.$message({
+                type: 'success',
+                message: res.msg
+              });
+              this.findPage()
+            }
+          })
+        }).catch(() => {
+          this.$message({
+            type: 'info',
+            message: '已取消'
+          });          
+        });
+    },
     handleSubOut() {
       if (this.logoutTime == "") {
         this.$message.error("请选择时间");
@@ -687,37 +728,9 @@ export default {
         this.formDataRules.logoutTime = undefined;
       }
     },
-    isShowFun() {
-      this.isShow = !this.isShow;
-    },
-    identityChange(iden) {
-      let sex = null;
-      let birth = null;
-      let myDate = new Date();
-      let month = myDate.getMonth() + 1;
-      let day = myDate.getDate();
-      sex = iden.substring(16, 17);
-      birth =
-        iden.substring(6, 10) +
-        "-" +
-        iden.substring(10, 12) +
-        "-" +
-        iden.substring(12, 14);
-      let age = 0;
-      if (
-        iden.substring(10, 12) < month ||
-        (iden.substring(10, 12) == month && iden.substring(12, 14) <= day)
-      )
-        age++;
-      if (sex % 2 === 0) sex = "女";
-      else sex = "男";
-      this.formDataDetail.birthday = birth;
-      this.formDataDetail.sex = this.sexoptions.find(
-        (val) => sex == val.label
-      ).value;
-    },
     // 查询Start
     queryStaffInfo() {
+      this.isQueryStaff = true
       this.findPage();
     },
     sexFormatter(row) {
@@ -750,8 +763,8 @@ export default {
 
     // 下一步
     nextStep() {
-      this.$refs.formData.validate((valid) => {
-        if (valid) {
+      // this.$refs.formData.validate((valid) => {
+        // if (valid) {
           this.activeName = "2";
           // this.formData.deptIdCom= this.formData.deptId
           // this.formData.deptId =  this.formData.deptId.at(-1);
@@ -769,8 +782,8 @@ export default {
           //     });
           //   }
           // });
-        }
-      });
+        // }
+      // });
     },
     // 右侧列表的方法Start
     findPage(data) {
@@ -779,6 +792,10 @@ export default {
         this.pageData.pageNum = data.pageRequest.pageNum;
         this.pageData.pageSize = data.pageRequest.pageSize;
       }
+      if (this.isQueryStaff) {
+        this.pageData.pageNum = 1
+      }
+      this.isQueryStaff = false
       let dto = {
         deptId: this.deptId,
         mobile: this.pageData.mobile,
@@ -968,81 +985,91 @@ export default {
       //   status:''
       // }
       this.dialogVisible = false;
+      this.activeName = '1'
+    },
+    valids(data) {
+      this.detailValid = data
     },
     // 提交
     submitForm() {
-      this.$refs.formDataDetail.validate((valid) => {
-        if (valid) {
-          this.$confirm("确认提交吗?", "提示", {}).then(() => {
-            // if(!this.basicInformation.id && this.dialogTitle =="新增代理人"){
-            //   this.$message({
-            //     message: '请先填写基本信息!!!',
-            //     type: 'warning'
-            //   });
-            //   return false
-            // }
-            if (this.formData.positionId) {
-              this.formData.positionName = this.postOption.find(
-                (val) => val.postId == this.formData.positionId
-              ).postName;
-            }
-            if (this.formData.leaderId) {
-              this.formData.leaderName = this.leaderOptions.find(
-                (val) => val.id == this.formData.leaderId
-              ).name;
-            }
-            if (this.dialogTitle == "新增后线人员") {
-              this.$api.user
-                .saveUserInfo({
-                  esmUserImageVo: this.imagesIdList,
-                  sysUser: this.formData,
-                  sysUserInfo: this.formDataDetail,
-                })
-                .then((res) => {
-                  if (res.code == 200) {
-                    this.$message({
-                      message: "保存成功",
-                      type: "success",
-                    });
-                    this.dialogVisible = false;
-                    this.$refs["formData"].resetFields();
-                    this.$refs["formDataDetail"].resetFields();
-                    this.findPage();
-                  } else {
-                    this.$message({
-                      message: `保存失败,请重新添加,(${res.msg})`,
-                      type: "error",
-                    });
-                  }
-                });
-            } else {
-              this.$api.user
-                .updateUserInfo(this.formData.id, {
-                  esmUserImageVo: this.imagesIdList,
-                  sysUser: this.formData,
-                  sysUserInfo: this.formDataDetail,
-                })
-                .then((res) => {
-                  if (res.code == 200) {
-                    this.$message({
-                      message: "编辑成功",
-                      type: "success",
-                    });
-                    this.dialogVisible = false;
-                    this.$refs["formData"].resetFields();
-                    this.$refs["formDataDetail"].resetFields();
-                    this.findPage();
-                  } else {
-                    this.$message({
-                      message: `编辑失败,请重新添加,(${res.msg})`,
-                      type: "error",
-                    });
-                  }
-                });
-            }
-          });
-        }
-      });
+      this.$refs.formDataDetails.submit()
+      setTimeout(() => {
+        this.$refs.formData.validate((valid) => {
+          if (valid && this.detailValid) {
+            this.$confirm("确认提交吗?", "提示", {}).then(() => {
+              // if(!this.basicInformation.id && this.dialogTitle =="新增代理人"){
+              //   this.$message({
+              //     message: '请先填写基本信息!!!',
+              //     type: 'warning'
+              //   });
+              //   return false
+              // }
+              // if (this.formData.identity)
+              if (this.formData.positionId) {
+                this.formData.positionName = this.postOption.find(
+                  (val) => val.postId == this.formData.positionId
+                ).postName;
+              }
+              if (this.formData.leaderId) {
+                this.formData.leaderName = this.leaderOptions.find(
+                  (val) => val.id == this.formData.leaderId
+                ).name;
+              }
+              if (this.dialogTitle == "新增后线人员") {
+                this.$api.user
+                  .saveUserInfo({
+                    esmUserImageVo: this.imagesIdList,
+                    sysUser: this.formData,
+                    sysUserInfo: this.formDataDetail,
+                  })
+                  .then((res) => {
+                    if (res.code == 200) {
+                      this.$message({
+                        message: "保存成功",
+                        type: "success",
+                      });
+                      this.dialogVisible = false;
+                      this.$refs["formData"].resetFields();
+                      this.$refs["formDataDetail"].resetFields();
+                      this.findPage();
+                    } else {
+                      this.$message({
+                        message: `保存失败,请重新添加,(${res.msg})`,
+                        type: "error",
+                      });
+                    }
+                  });
+              } else {
+                this.$api.user
+                  .updateUserInfo(this.formData.id, {
+                    esmUserImageVo: this.imagesIdList,
+                    sysUser: this.formData,
+                    sysUserInfo: this.formDataDetail,
+                  })
+                  .then((res) => {
+                    if (res.code == 200) {
+                      this.$message({
+                        message: "编辑成功",
+                        type: "success",
+                      });
+                      this.dialogVisible = false;
+                      this.$refs["formData"].resetFields();
+                      this.$refs["formDataDetail"].resetFields();
+                      this.findPage();
+                    } else {
+                      this.$message({
+                        message: `编辑失败,请重新添加,(${res.msg})`,
+                        type: "error",
+                      });
+                    }
+                  });
+              }
+            });
+          } else {
+            this.$message.error('请填写全部信息')
+          }
+        });
+      }, 200);
     },
   },
 };
@@ -1116,9 +1143,6 @@ export default {
 </style>
 
 <style lang="scss" scoped>
->>> .el-tabs__header {
-  margin-right: 50px !important;
-}
 >>> .el-tabs__item:hover {
   color: #2d4d89;
 }

+ 134 - 189
src/views/PeopleManage/TeamLeader/TeamLeaderExamine.vue

@@ -71,6 +71,26 @@
                     </el-select>
                   </el-form-item>
                 </el-col>
+                <el-col :span="5">
+                  <el-form-item label="领导人">
+                    <el-select
+                      size="small"
+                      style="width: 215px"
+                      clearable
+                      filterable
+                      v-model="queryFrom.leaderId"
+                      placeholder="请选择"
+                    >
+                      <el-option
+                        v-for="item in searchLeaderOptions"
+                        :key="item.id"
+                        :label="item.name"
+                        :value="item.name"
+                      >
+                      </el-option>
+                    </el-select>
+                  </el-form-item>
+                </el-col>
                 <el-col :span="4">
                   <el-form-item label="">
                     <el-button
@@ -99,6 +119,9 @@
             :button8Name="'审核'"
             :button8Status="'入司待审核'"
             @handleButton8="handleTableEdit"
+            :button10Name="'审核'"
+            :button10Status="'修改待审核'"
+            @handleButton10="handleTableEdit"
           >
           </kt-common-table>
         </SplitArea>
@@ -109,13 +132,15 @@
     <el-dialog
       :title="dialogTitle"
       width="60%"
+      top="5vh"
       :visible.sync="dialogVisible"
       :close-on-click-modal="false"
       :before-close="handleDialogBefore"
       @close="closeDialog"
       v-dialogDrag
+      class="people-style"
     >
-      <el-tabs v-model="activeName">
+      <el-tabs v-model="activeName" class="tab-style">
         <el-tab-pane label="基本信息" name="1">
           <el-form
             :model="formData"
@@ -145,7 +170,7 @@
                   </el-cascader> </el-form-item
               ></el-col>
               <el-col :span="8">
-                <el-form-item label="机构名称" prop="deptId">
+                <el-form-item label="机构部门" prop="deptId">
                   <el-cascader
                     style="width: 200px"
                     :options="ztreeNodes"
@@ -162,38 +187,54 @@
                   </el-cascader> </el-form-item
               ></el-col>
               <el-col :span="8">
-                <el-form-item label="员工工号" prop="id">
-                  <el-input v-model="formData.id" disabled></el-input>
+                <el-form-item label="岗位" prop="positionId">
+                  <el-select
+                    style="width: 200px"
+                    v-model="formData.positionId"
+                    placeholder="请选择"
+                  >
+                    <el-option
+                      v-for="val in postOption"
+                      :label="val.postName"
+                      :value="val.postId"
+                      :key="val.postId"
+                    ></el-option>
+                  </el-select>
                 </el-form-item>
               </el-col>
               <el-col :span="8">
-                <el-form-item label="手机号" prop="mobile">
-                  <el-input v-model="formData.mobile"></el-input>
+                <el-form-item label="工号" prop="id">
+                  <el-input v-model="formData.id" disabled
+                  style="width: 200px"
+                  ></el-input>
                 </el-form-item>
               </el-col>
               <el-col :span="8">
-                <el-form-item label="身份证号" prop="identity">
-                  <el-input
-                    v-model="formData.identity"
-                    :maxlength="18"
+                <el-form-item label="名称" prop="name">
+                  <el-input v-model="formData.name"
+                  style="width: 200px"
                   ></el-input>
                 </el-form-item>
               </el-col>
               <el-col :span="8">
-                <el-form-item label="名称" prop="name">
-                  <el-input v-model="formData.name"></el-input>
+                <el-form-item label="手机号" prop="mobile">
+                  <el-input v-model="formData.mobile"
+                  style="width: 200px"
+                  ></el-input>
                 </el-form-item>
               </el-col>
               <el-col :span="8">
-                <el-form-item label="密码" prop="password">
-                  <el-input
+                <el-form-item label="入司时间">
+                  <el-date-picker
                     style="width: 200px"
-                    v-model="formData.password"
-                    autocomplete="new-password"
-                    show-password
-                  ></el-input>
+                    v-model="formDataDetail.entryTime"
+                    type="date"
+                    placeholder="选择日期"
+                    popper-class="select-prop"
+                  >
+                  </el-date-picker>
                 </el-form-item>
-              </el-col>
+                </el-col>
               <el-col :span="8">
                 <el-form-item label="状态" prop="status">
                   <el-select
@@ -228,21 +269,39 @@
                 </el-form-item>
               </el-col>
               <el-col :span="8">
-                <el-form-item label="岗位" prop="positionId">
+                <el-form-item label="领导人" prop="leaderId">
                   <el-select
                     style="width: 200px"
-                    v-model="formData.positionId"
+                    clearable
+                    filterable
+                    v-model="formData.leaderId"
                     placeholder="请选择"
+                    popper-class="select-prop"
                   >
                     <el-option
-                      v-for="val in postOption"
-                      :label="val.postName"
-                      :value="val.postId"
-                      :key="val.postId"
+                      v-for="val in leaderOptions"
+                      :label="val.name"
+                      :value="val.id"
+                      :key="val.id"
                     ></el-option>
                   </el-select>
                 </el-form-item>
               </el-col>
+              <el-col :span="8">
+                <el-form-item label="领导人工号" prop="leaderName">
+                  <el-input v-model="formData.leaderId" disabled
+                  style="width: 200px"
+                  ></el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="代理人资格证号" prop="agentQualificationCode">
+                  <el-input
+                    style="width: 200px"
+                    v-model="formDataDetail.agentQualificationCode"
+                  ></el-input>
+                </el-form-item>
+              </el-col>
             </el-row>
           </el-form>
           <div style="text-align: right">
@@ -255,167 +314,14 @@
           <userDetail
             :formData="formData"
             :formDataDetail="formDataDetail"
+            ref="formDataDetails"
             isDisabled
           ></userDetail>
-          <!-- <el-form :rules="formDataRules" :model="formDataDetail" ref="formDataDetail" :inline="true"
-            @keyup.enter.native="submitForml('提交审核')" label-width="110px" size="small">
-            <el-row>
-              <el-col :span="8">
-                <el-form-item label="开户账号" prop="accountno">
-                  <el-input style="width:200px" disabled v-model="formDataDetail.accountno"></el-input>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="开户行" prop="bankName">
-                  <el-input style="width:200px" disabled v-model="formDataDetail.bankName"></el-input>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="性别" prop="sex">
-                  <el-select disabled style="width:200px" v-model="formDataDetail.sex" placeholder="请选择">
-                    <el-option v-for="val in sexoptions" :label="val.label" :value="val.value" :key="val.id"></el-option>
-                  </el-select>
-                </el-form-item>
-              </el-col>
-            </el-row>
-              <el-row>
-              <el-col :span="8">
-                <el-form-item label="出生日期" prop="birthday">
-                  <el-date-picker disabled style="width:200px" v-model="formDataDetail.birthday" type="date"
-                    placeholder="选择日期">
-                  </el-date-picker>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="户籍" prop="koseki">
-                  <el-input style="width:200px" disabled v-model="formDataDetail.koseki"></el-input>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="婚姻状况" prop="maritalStatus">
-                  <el-select disabled v-model="formDataDetail.maritalStatus" placeholder="请选择婚姻状况" style="width:200px">
-                    <el-option v-for="val in maritalStatusOption" :key="val.value" :label="val.label" :value="val.value"></el-option>
-                  </el-select>
-                </el-form-item>
-              </el-col>
-            </el-row>
-              <el-row>
-              <el-col :span="8">
-                <el-form-item label="民族" prop="nations">
-                  <el-select disabled style="width:200px" v-model="formDataDetail.nations" placeholder="请选择民族">
-                    <el-option :label="national" :value="national" v-for="national in nationalList"
-                      :key="national"></el-option>
-                  </el-select>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="政治面貌" prop="politicsStatus">
-                  <el-select disabled style="width:200px" v-model="formDataDetail.politicsStatus" placeholder="请选择">
-                    <el-option v-for="val in politicsStatusOption" :key="val.value" :label="val.label" :value="val.value"></el-option>
-                  </el-select>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="健康状况" prop="health">
-                  <el-select disabled style="width:200px" v-model="formDataDetail.health" placeholder="请选择">
-                    <el-option v-for="val in healthOption" :key="val.value" :label="val.label" :value="val.value"></el-option>
-                  </el-select>
-                </el-form-item>
-              </el-col>
-            </el-row>
-              <el-row>
-              <el-col :span="8">
-                <el-form-item label="邮政编码" prop="postalCode">
-                  <el-input style="width:200px" disabled v-model="formDataDetail.postalCode"></el-input>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="居住地址" prop="address">
-                  <el-input style="width:200px" disabled v-model="formDataDetail.address"></el-input>
-                </el-form-item>
-              </el-col>
-
-              <el-col :span="8">
-                <el-form-item label="血型" prop="bloodType">
-                  <el-select disabled style="width:200px" v-model="formDataDetail.bloodType" placeholder="请选择">
-                    <el-option v-for="val in bloodOption" :key="val.value" :label="val.label" :value="val.value"></el-option>
-                  </el-select>
-                </el-form-item>
-              </el-col>
-            </el-row>
-              <el-row>
-              <el-col :span="8">
-                <el-form-item label="学历" prop="education">
-                  <el-select disabled style="width:200px" v-model="formDataDetail.education" placeholder="请选择">
-                  <el-option v-for="val in educationOption" :key="val.value" :label="val.label" :value="val.value"></el-option>
-                  </el-select>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="毕业院校" prop="school">
-                  <el-input style="width:200px" disabled v-model="formDataDetail.school"></el-input>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="毕业时间" prop="graduationTime">
-                  <el-date-picker disabled style="width:200px" v-model="formDataDetail.graduationTime" type="date"
-                    placeholder="选择日期">
-                  </el-date-picker>
-                </el-form-item>
-              </el-col>
-            </el-row>
-              <el-row>
-              <el-col :span="8">
-                <el-form-item label="原工作单位" prop="formerEmployer">
-                  <el-input style="width:200px" disabled v-model="formDataDetail.formerEmployer"></el-input>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="入司时间" prop="entryTime">
-                  <el-date-picker disabled style="width:200px" v-model="formDataDetail.entryTime" type="date"
-                    placeholder="选择日期">
-                  </el-date-picker>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="代理人资格证号" prop="agentQualificationCode">
-                  <el-input style="width:200px" disabled v-model="formDataDetail.agentQualificationCode"></el-input>
-                </el-form-item>
-              </el-col>
-            </el-row>
-              <el-row>
-              <el-col :span="8">
-                <el-form-item label="紧急联系人电话" prop="emergencyContactTel">
-                  <el-input style="width:200px" disabled v-model="formDataDetail.emergencyContactTel"></el-input>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="紧急联系人姓名" prop="emergencyContactName">
-                  <el-input style="width:200px" disabled v-model="formDataDetail.emergencyContactName"></el-input>
-                </el-form-item>
-              </el-col>
-              <el-col :span="22">
-            <el-form-item label="备注" prop="remark">
-            <el-input
-              disabled
-              style="width: 30vw;"
-              v-model="formData.approvalOpinion"
-              type="textarea"
-              :autosize="{ minRows: 4, maxRows: 6 }"
-              placeholder="请输入内容"
-              prop="remark"
-              maxlength="200"
-              show-word-limit
-            ></el-input>
-          </el-form-item>
-          </el-col>
-        </el-row>
-      </el-form> -->
           <div style="text-align: right">
-            <el-button size="small" type="primary" @click="nextStep('1')"
+            <el-button size="small" type="primary" @click="activeName = '1'"
               >上一步</el-button
             >
-            <el-button size="small" type="primary" @click="nextStep('3')"
+            <el-button size="small" type="primary" @click="activeName = '3'"
               >下一步</el-button
             >
           </div>
@@ -432,6 +338,7 @@
               :dataForm="dataForm"
               :dialogVisible="dialogVisible"
               :carfrontImg="true"
+              isDisabled
             ></peopleImage>
           </el-form>
           <div style="text-align: right">
@@ -451,6 +358,9 @@
               @click="submitForm(2)"
               >审核驳回</el-button
             >
+            <el-button size="small" type="primary" @click="activeName = '2'"
+              >上一步</el-button
+            >
             <el-button size="small" type="primary" @click="closeDialog"
               >取消</el-button
             >
@@ -558,8 +468,9 @@ export default {
         {
           prop: "sex",
           label: "性别",
-          minWidth: 50,
+          minWidth: 80,
           sortable: false,
+          isSex: true
         },
         { prop: "mobile", label: "联系电话", minWidth: 100, sortable: false },
         {
@@ -580,11 +491,18 @@ export default {
           type: "text",
           minWidth: 100,
         },
+        {
+          prop: "approveBy",
+          label: "审核人",
+          type: "text",
+          minWidth: 100,
+        },
         {
           prop: "status",
           label: "状态",
-          minWidth: 50,
+          minWidth: 120,
           sortable: false,
+          isStatus: true
         },
       ],
       dialogTitle: "",
@@ -592,14 +510,28 @@ export default {
       departmentList: [], // 选中公司的所有部门的集合
       deptInfo: {}, //选中机构的基本信息
       option: [], //机构列表
+      leaderOptions: [],
+      searchLeaderOptions: {},
     };
   },
   created() {
+    this.getDictItems("user_status");
     this.$api.role.findAll().then((res) => {
       this.roles = res.data;
     });
+    this.searchLeaderFun()
   },
   methods: {
+    searchLeaderFun() {
+      this.$api.user.findHxUserList().then((res) => {
+        this.leaderOptions = res.data;
+      });
+      this.$api.user
+        .findBackListByDeptId({ deptId: this.deptId })
+        .then((res) => {
+          this.searchLeaderOptions = res.data;
+        });
+    },
     handleSubOut() {
       if (!this.formDataDetail.remark) {
         this.$message.error("请在详细信息填写驳回原因");
@@ -643,6 +575,7 @@ export default {
     },
     // 查询Start
     queryStaffInfo() {
+      this.pageData.pageNum = 1
       this.pageData.realName = this.queryFrom.name;
       this.pageData.mobile = this.queryFrom.mobile;
       this.pageData.userId = this.queryFrom.userId;
@@ -679,16 +612,19 @@ export default {
         name: this.pageData.realName,
         userId: this.pageData.userId,
         status: this.pageData.status,
+        leaderName: this.queryFrom.leaderId,
+        agentFlag: "2",
         roleId: "21",
       };
       this.$api.user
-        .findPage({
+        // .findPage({
+        .findUserList({
           dto,
           pageNum: this.pageData.pageNum,
           pageSize: this.pageData.pageSize,
         })
         .then((res) => {
-          res.data.content.forEach((val) => {
+          res.data.records.forEach((val) => {
             if (val.sex && val.sex !== "" && val.sex !== null) {
               val.sex = this.sexoptions.find(
                 (ele) => ele.value == val.sex
@@ -701,7 +637,17 @@ export default {
             }
             val.roleId = val.roleName;
           });
-          this.pageResult = res.data;
+          // this.pageResult = res.data;
+          this.pageResult = {
+            content: res.data.records,
+            pageNum: res.data.current,
+            pageSize: res.data.size,
+            totalPages: res.data.pages,
+            totalSize: res.data.total,
+          };
+          this.pageData.pageNum = res.data.current;
+          this.pageData.pageSize = res.data.size;
+          this.pageData.totalSize = res.data.total;
         });
     },
     closeDialog() {
@@ -710,6 +656,7 @@ export default {
         this.formData[key] = "";
       }
       this.dialogVisible = false;
+      this.activeName = '1'
     },
     // 新增或修改的弹出框Start
     getDictItems(typeName) {
@@ -872,9 +819,7 @@ export default {
 </style>
 
 <style lang="scss" scoped>
->>> .el-tabs__header {
-  margin-right: 50px !important;
-}
+
 >>> .el-tabs__item:hover {
   color: #2d4d89;
 }

+ 180 - 422
src/views/PeopleManage/TeamLeader/TeamLeaderManage.vue

@@ -129,8 +129,11 @@
             @findPage="findPage"
             @handleEdit="handleTableEdit"
             :button7Name="'离司'"
-            :button7Status="'正常'"
+            :button7Status="'在职'"
             @handleButton7="handleButton7"
+            :button9Name="'离司恢复'"
+            :button9Status="'离司'"
+            @handleButton9="handleRest"
           >
           </kt-common-table>
         </SplitArea>
@@ -143,13 +146,15 @@
     <el-dialog
       :title="dialogTitle"
       width="60%"
+      top="5vh"
       :visible.sync="dialogVisible"
       :close-on-click-modal="false"
       :before-close="handleDialogBefore"
       @close="closeDialog"
       v-dialogDrag
+      class="people-style"
     >
-      <el-tabs v-model="activeName" :before-leave="beforeTabLeave">
+      <el-tabs v-model="activeName" :before-leave="beforeTabLeave" class="tab-style">
         <el-tab-pane label="基本信息" name="1">
           <el-form
             :model="formData"
@@ -198,42 +203,53 @@
                   </el-cascader> </el-form-item
               ></el-col>
               <el-col :span="8">
-                <el-form-item label="员工工号" prop="id">
-                  <el-input v-model="formData.id" disabled></el-input>
+                <el-form-item label="岗位" prop="positionId">
+                  <el-select
+                    style="width: 200px"
+                    v-model="formData.positionId"
+                    placeholder="请选择"
+                    popper-class="select-prop"
+                  >
+                    <el-option
+                      v-for="val in postOption"
+                      :label="val.postName"
+                      :value="val.postId"
+                      :key="val.postId"
+                    ></el-option>
+                  </el-select>
                 </el-form-item>
               </el-col>
               <el-col :span="8">
-                <el-form-item label="手机号" prop="mobile">
-                  <el-input v-model="formData.mobile"></el-input>
+                <el-form-item label="工号" prop="id">
+                  <el-input v-model="formData.id" disabled
+                  style="width: 200px"
+                  ></el-input>
                 </el-form-item>
               </el-col>
               <el-col :span="8">
-                <el-form-item label="身份证号" prop="identity">
-                  <el-input
-                    v-model="formData.identity"
-                    :maxlength="18"
-                    @change="identityChange"
+                <el-form-item label="姓名" prop="name">
+                  <el-input v-model="formData.name"
+                  style="width: 200px"
                   ></el-input>
                 </el-form-item>
               </el-col>
               <el-col :span="8">
-                <el-form-item label="名称" prop="name">
-                  <el-input v-model="formData.name"></el-input>
+                <el-form-item label="手机号" prop="mobile">
+                  <el-input v-model="formData.mobile"
+                  style="width: 200px"
+                  ></el-input>
                 </el-form-item>
               </el-col>
               <el-col :span="8">
-                <el-form-item label="密码" prop="password">
-                  <el-input
-                    v-model="formData.password"
-                    :class="isShow == true ? 'disc' : 'none'"
-                  ></el-input>
-                  <i
-                    class="el-icon-view icon"
-                    @click="isShowFun()"
-                    v-if="dialogPassword"
-                  ></i>
-                  <!-- <el-input style="width:200px" v-model="formData.password" autocomplete="new-password" -->
-                  <!-- show-password></el-input> -->
+                <el-form-item label="入司时间">
+                  <el-date-picker
+                    style="width: 200px"
+                    v-model="formDataDetail.entryTime"
+                    type="date"
+                    placeholder="选择日期"
+                    popper-class="select-prop"
+                  >
+                  </el-date-picker>
                 </el-form-item>
               </el-col>
               <el-col :span="8">
@@ -271,23 +287,6 @@
                   </el-select>
                 </el-form-item>
               </el-col>
-              <el-col :span="8">
-                <el-form-item label="岗位" prop="positionId">
-                  <el-select
-                    style="width: 200px"
-                    v-model="formData.positionId"
-                    placeholder="请选择"
-                    popper-class="select-prop"
-                  >
-                    <el-option
-                      v-for="val in postOption"
-                      :label="val.postName"
-                      :value="val.postId"
-                      :key="val.postId"
-                    ></el-option>
-                  </el-select>
-                </el-form-item>
-              </el-col>
               <el-col :span="8">
                 <el-form-item label="领导人" prop="leaderId">
                   <el-select
@@ -309,7 +308,17 @@
               </el-col>
               <el-col :span="8">
                 <el-form-item label="领导人工号" prop="leaderName">
-                  <el-input v-model="formData.leaderId" disabled></el-input>
+                  <el-input v-model="formData.leaderId" disabled
+                  style="width: 200px"
+                  ></el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="代理人资格证号" prop="agentQualificationCode">
+                  <el-input
+                    style="width: 200px"
+                    v-model="formDataDetail.agentQualificationCode"
+                  ></el-input>
                 </el-form-item>
               </el-col>
             </el-row>
@@ -324,303 +333,11 @@
           <userDetail
             :formData="formData"
             :formDataDetail="formDataDetail"
-          ></userDetail>
-          <!-- <el-form
-            :model="formDataDetail"
-            :rules="formDataRulesDetail"
-            ref="formDataDetail"
-            :inline="true"
-            label-width="110px"
-            size="small"
-          >
-            <el-row>
-              <el-col :span="8">
-                <el-form-item label="姓名" prop="name">
-                  <el-input v-model="formData.name"></el-input>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="性别" prop="sex">
-                  <el-select
-                    style="width: 200px"
-                    v-model="formDataDetail.sex"
-                    placeholder="请选择"
-                  >
-                    <el-option
-                      v-for="val in sexoptions"
-                      :label="val.label"
-                      :value="val.value"
-                      :key="val.id"
-                    ></el-option>
-                  </el-select>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="出生日期" prop="birthday">
-                  <el-date-picker
-                    style="width: 200px"
-                    v-model="formDataDetail.birthday"
-                    type="date"
-                    placeholder="选择日期"
-                  >
-                  </el-date-picker>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="民族" prop="nations">
-                  <el-select
-                    style="width: 200px"
-                    v-model="formDataDetail.nations"
-                    placeholder="请选择民族"
-                  >
-                    <el-option
-                      :label="national"
-                      :value="national"
-                      v-for="national in nationalList"
-                      :key="national"
-                    ></el-option>
-                  </el-select>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="政治面貌" prop="politicsStatus">
-                  <el-select
-                    style="width: 200px"
-                    v-model="formDataDetail.politicsStatus"
-                    placeholder="请选择"
-                  >
-                    <el-option
-                      v-for="val in politicsStatusOption"
-                      :key="val.value"
-                      :label="val.label"
-                      :value="val.value"
-                    ></el-option>
-                  </el-select>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="婚姻状况" prop="maritalStatus">
-                  <el-select
-                    v-model="formDataDetail.maritalStatus"
-                    placeholder="请选择婚姻状况"
-                    style="width: 200px"
-                  >
-                    <el-option
-                      v-for="val in maritalStatusOption"
-                      :key="val.value"
-                      :label="val.label"
-                      :value="val.value"
-                    ></el-option>
-                  </el-select>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="户籍" prop="koseki">
-                  <el-input
-                    style="width: 200px"
-                    v-model="formDataDetail.koseki"
-                  ></el-input>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="血型" prop="bloodType">
-                  <el-select
-                    style="width: 200px"
-                    v-model="formDataDetail.bloodType"
-                    placeholder="请选择"
-                  >
-                    <el-option
-                      v-for="val in bloodOption"
-                      :key="val.value"
-                      :label="val.label"
-                      :value="val.value"
-                    ></el-option>
-                  </el-select>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="健康状况" prop="health">
-                  <el-select
-                    style="width: 200px"
-                    v-model="formDataDetail.health"
-                    placeholder="请选择"
-                  >
-                    <el-option
-                      v-for="val in healthOption"
-                      :key="val.value"
-                      :label="val.label"
-                      :value="val.value"
-                    ></el-option>
-                  </el-select>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="学历" prop="education">
-                  <el-select
-                    style="width: 200px"
-                    v-model="formDataDetail.education"
-                    placeholder="请选择"
-                  >
-                    <el-option
-                      v-for="val in educationOption"
-                      :key="val.value"
-                      :label="val.label"
-                      :value="val.value"
-                    ></el-option>
-                  </el-select>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="毕业院校" prop="school">
-                  <el-input
-                    style="width: 200px"
-                    v-model="formDataDetail.school"
-                  ></el-input>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="毕业时间" prop="graduationTime">
-                  <el-date-picker
-                    style="width: 200px"
-                    v-model="formDataDetail.graduationTime"
-                    type="date"
-                    placeholder="选择日期"
-                  >
-                  </el-date-picker>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="居住地址" prop="address">
-                  <el-input
-                    style="width: 200px"
-                    v-model="formDataDetail.address"
-                  ></el-input>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="邮政编码" prop="postalCode">
-                  <el-input
-                    style="width: 200px"
-                    v-model="formDataDetail.postalCode"
-                  ></el-input>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="邮箱">
-                  <el-input
-                    style="width: 200px"
-                    v-model="formDataDetail.email"
-                  ></el-input>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="紧急联系人姓名" prop="emergencyContactName" >
-                  <el-input
-                    style="width: 200px"
-                    v-model="formDataDetail.emergencyContactName"
-                  ></el-input>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="紧急联系人电话" prop="emergencyContactTel">
-                  <el-input
-                    style="width: 200px"
-                    v-model="formDataDetail.emergencyContactTel"
-                  ></el-input>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="工资">
-                  <el-input
-                    style="width: 200px"
-                    v-model="formDataDetail.salary"
-                  ></el-input>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="薪资等级">
-                  <el-input
-                    style="width: 200px"
-                    v-model="formDataDetail.salaryLevel"
-                  ></el-input>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="绩效方案">
-                  <el-input
-                    style="width: 200px"
-                    v-model="formDataDetail.performance"
-                  ></el-input>
-                  <el-select style="width: 200px" v-model="formDataDetail.performance" placeholder="请选择" >
-                     <el-option label="博士" value="博士"></el-option>
-                  </el-select>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="开户账号" prop="accountno">
-                  <el-input
-                    disabled
-                    style="width: 200px"
-                    v-model="formDataDetail.accountno"
-                    placeholder="登录系统绑卡后显示"
-                  ></el-input>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="开户行" prop="bankName">
-                  <el-input
-                    disabled
-                    style="width: 200px"
-                    v-model="formDataDetail.bankName"
-                    placeholder="登录系统绑卡后显示"
-                  ></el-input>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="原工作单位" prop="formerEmployer">
-                  <el-input
-                    style="width: 200px"
-                    v-model="formDataDetail.formerEmployer"
-                  ></el-input>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="入司时间" prop="entryTime">
-                  <el-date-picker
-                    style="width: 200px"
-                    v-model="formDataDetail.entryTime"
-                    type="date"
-                    placeholder="选择日期"
-                  >
-                  </el-date-picker>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="离职时间" prop="logoutTime">
-                  <el-date-picker
-                    value-format="yyyy-MM-dd"
-                    style="width: 200px"
-                    v-model="formData.logoutTime"
-                    type="date"
-                    placeholder="选择日期"
-                  >
-                  </el-date-picker>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item
-                  label="代理人资格证号"
-                  prop="agentQualificationCode"
-                >
-                  <el-input
-                    style="width: 200px"
-                    v-model="formDataDetail.agentQualificationCode"
-                  ></el-input>
-                </el-form-item>
-              </el-col>
-            </el-row>
-          </el-form> -->
-          <div style="text-align: right">
+            ref="formDataDetails"
+            @statusChange="statusChange"
+            @valids="valids"
+            ></userDetail>
+            <div style="text-align: right">
             <el-button size="small" type="primary" @click="activeName = '1'"
               >上一步</el-button
             >
@@ -775,13 +492,13 @@ export default {
           },
         ],
         name: [{ required: true, message: "请填写名称", trigger: "blur" }],
-        password: [{ required: true, message: "请填写密码", trigger: "blur" }],
+        // password: [{ required: true, message: "请填写密码", trigger: "blur" }],
         status: [{ required: true, message: "请选择状态", trigger: "change" }],
         // roleId: [{ required: true, message: "请填写角色", trigger: "blur" }],
-        identity: [
-          { required: true, message: "请填写身份证号" },
-          { validator: validateSfz },
-        ],
+        // identity: [
+        //   { required: true, message: "请填写身份证号" },
+        //   { validator: validateSfz },
+        // ],
       },
       formDataDetail: {},
       formDataRulesDetail: {},
@@ -811,8 +528,9 @@ export default {
         {
           prop: "sex",
           label: "性别",
-          minWidth: 50,
+          minWidth: 80,
           sortable: false,
+          isSex: true
         },
         { prop: "mobile", label: "联系电话", minWidth: 100, sortable: false },
         {
@@ -839,11 +557,18 @@ export default {
           type: "text",
           minWidth: 100,
         },
+        {
+          prop: "approveBy",
+          label: "审核人",
+          type: "text",
+          minWidth: 100,
+        },
         {
           prop: "status",
           label: "状态",
-          minWidth: 50,
+          minWidth: 120,
           sortable: false,
+          isStatus: true
         },
       ],
       dialogTitle: "",
@@ -869,8 +594,33 @@ export default {
   },
   created() {
     this.searchLeaderFun();
+    this.getDictItems("user_status");
+
   },
   methods: {
+    // 离司恢复
+    handleRest(data) {
+      this.$confirm('是否恢复', '提示', { 
+          confirmButtonText: '确定',
+          cancelButtonText: '取消',
+          type: 'warning'
+        }).then(() => {
+          this.$api.user.separationReinstatement(data.row.userId).then((res) => {
+            if (res.code == 200) {
+              this.$message({
+                type: 'success',
+                message: res.msg
+              });
+              this.findPage();
+            }
+          })
+        }).catch(() => {
+          this.$message({
+            type: 'info',
+            message: '已取消'
+          });          
+        });
+    },
     //上传影像
     httpRequest(options) {
       let file = options.file;
@@ -966,6 +716,7 @@ export default {
     },
     // 查询Start
     queryStaffInfo() {
+      this.pageData.pageNum = 1
       this.findPage();
     },
     sexFormatter(row) {
@@ -1038,6 +789,7 @@ export default {
         name: this.pageData.name,
         userId: this.pageData.userId,
         status: this.pageData.status,
+        leaderName: this.pageData.leaderId,
         roleId: "21",
         agentFlag: "2",
       };
@@ -1252,81 +1004,90 @@ export default {
       // }
       this.dialogVisible = false;
     },
+    valids(data) {
+      this.detailValid = data
+    },
     // 提交
     submitForm() {
-      this.$refs.formDataDetail.validate((valid) => {
-        if (valid) {
-          this.$confirm("确认提交吗?", "提示", {}).then(() => {
-            // if(!this.basicInformation.id && this.dialogTitle =="新增代理人"){
-            //   this.$message({
-            //     message: '请先填写基本信息!!!',
-            //     type: 'warning'
-            //   });
-            //   return false
-            // }
-            if (this.formData.positionId) {
-              this.formData.positionName = this.postOption.find(
-                (val) => val.postId == this.formData.positionId
-              ).postName;
-            }
-            if (this.formData.leaderId) {
-              this.formData.leaderName = this.leaderOptions.find(
-                (val) => val.id == this.formData.leaderId
-              ).name;
-            }
-            if (this.dialogTitle == "新增团队长") {
-              this.$api.user
-                .saveUserInfo({
-                  esmUserImageVo: this.imagesIdList,
-                  sysUser: this.formData,
-                  sysUserInfo: this.formDataDetail,
-                })
-                .then((res) => {
-                  if (res.code == 200) {
-                    this.$message({
-                      message: "保存成功",
-                      type: "success",
-                    });
-                    this.dialogVisible = false;
-                    this.$refs["formData"].resetFields();
-                    this.$refs["formDataDetail"].resetFields();
-                    this.findPage();
-                  } else {
-                    this.$message({
-                      message: `保存失败,请重新添加,(${res.msg})`,
-                      type: "error",
-                    });
-                  }
-                });
-            } else {
-              this.$api.user
-                .updateUserInfo(this.formData.id, {
-                  esmUserImageVo: this.imagesIdList,
-                  sysUser: this.formData,
-                  sysUserInfo: this.formDataDetail,
-                })
-                .then((res) => {
-                  if (res.code == 200) {
-                    this.$message({
-                      message: "编辑成功",
-                      type: "success",
-                    });
-                    this.dialogVisible = false;
-                    this.$refs["formData"].resetFields();
-                    this.$refs["formDataDetail"].resetFields();
-                    this.findPage();
-                  } else {
-                    this.$message({
-                      message: `编辑失败,请重新添加,(${res.msg})`,
-                      type: "error",
-                    });
-                  }
-                });
-            }
-          });
-        }
-      });
+      this.$refs.formDataDetails.submit()
+      setTimeout(() => {
+        this.$refs.formData.validate((valid) => {
+          if (valid && this.detailValid) {
+            this.$confirm("确认提交吗?", "提示", {}).then(() => {
+              // if(!this.basicInformation.id && this.dialogTitle =="新增代理人"){
+              //   this.$message({
+              //     message: '请先填写基本信息!!!',
+              //     type: 'warning'
+              //   });
+              //   return false
+              // }
+              if (this.formData.positionId) {
+                this.formData.positionName = this.postOption.find(
+                  (val) => val.postId == this.formData.positionId
+                ).postName;
+              }
+              if (this.formData.leaderId) {
+                this.formData.leaderName = this.leaderOptions.find(
+                  (val) => val.id == this.formData.leaderId
+                ).name;
+              }
+              if (this.dialogTitle == "新增团队长") {
+                this.$api.user
+                  .saveUserInfo({
+                    esmUserImageVo: this.imagesIdList,
+                    sysUser: this.formData,
+                    sysUserInfo: this.formDataDetail,
+                  })
+                  .then((res) => {
+                    if (res.code == 200) {
+                      this.$message({
+                        message: "保存成功",
+                        type: "success",
+                      });
+                      this.dialogVisible = false;
+                      this.$refs["formData"].resetFields();
+                      this.$refs["formDataDetail"].resetFields();
+                      this.findPage();
+                    } else {
+                      this.$message({
+                        message: `保存失败,请重新添加,(${res.msg})`,
+                        type: "error",
+                      });
+                    }
+                  });
+              } else {
+                this.$api.user
+                  .updateUserInfo(this.formData.id, {
+                    esmUserImageVo: this.imagesIdList,
+                    sysUser: this.formData,
+                    sysUserInfo: this.formDataDetail,
+                  })
+                  .then((res) => {
+                    if (res.code == 200) {
+                      this.$message({
+                        message: "编辑成功",
+                        type: "success",
+                      });
+                      this.dialogVisible = false;
+                      this.$refs["formData"].resetFields();
+                      this.$refs["formDataDetail"].resetFields();
+                      this.findPage();
+                    } else {
+                      this.$message({
+                        message: `编辑失败,请重新添加,(${res.msg})`,
+                        type: "error",
+                      });
+                    }
+                  });
+              }
+            });
+          } else {
+            this.$message.error('请填写全部信息')
+          }
+        });
+      }, 200);
     },
+
   },
 };
 </script>
@@ -1395,9 +1156,6 @@ export default {
 </style>
 
 <style lang="scss" scoped>
->>> .el-tabs__header {
-  margin-right: 50px !important;
-}
 >>> .el-tabs__item:hover {
   color: #2d4d89;
 }