Przeglądaj źródła

Merge branch 'dev' of http://www.baoxianzhanggui.com:8090/sxzgd/vue-insagent-pc into dev

test 2 lat temu
rodzic
commit
1676ead2f7

+ 231 - 12
src/components/PeopleImage/index.vue

@@ -1,5 +1,160 @@
 <template>
   <div>
+    <!-- 新样式 -->
+    <el-form inline label-position="top">
+      <el-tabs tab-position="left">
+      <el-tab-pane label="身份证照片">
+        <el-form-item label="身份证正面:">
+          <el-upload
+            class="avatar-uploader"
+            action=""
+            name="SFZ_01"
+            :show-file-list="false"
+            :http-request="httpRequest"
+            :before-upload="beforeAvatarUpload"
+            :on-preview="handlePictureCardPreview"
+          >
+            <img v-if="dataForm.SFZ_01" :src="dataForm.SFZ_01" class="avatar"/>
+            <div v-else class="upload-icon">
+              <i class="el-icon-plus" style="font-size: 30px;"></i>
+              <div class="el-upload__text">上传资料</div>
+            </div>
+            <span class="slot" v-show="dataForm.SFZ_01">
+              <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(dataForm.SFZ_01)"></i>
+            </span>
+          </el-upload>
+        </el-form-item>
+        <el-form-item label="身份证反面:">
+          <el-upload
+            class="avatar-uploader"
+            action=""
+            name="SFZ_02"
+            :show-file-list="false"
+            :http-request="httpRequest"
+            :before-upload="beforeAvatarUpload"
+          >
+            <img v-if="dataForm.SFZ_02" :src="dataForm.SFZ_02" class="avatar"/>
+            <div v-else class="upload-icon">
+              <i class="el-icon-plus" style="font-size: 30px;"></i>
+              <div class="el-upload__text">上传资料</div>
+            </div>
+            <span class="slot" v-show="dataForm.SFZ_02">
+              <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(dataForm.SFZ_02)"></i>
+            </span>
+          </el-upload>
+        </el-form-item>
+      </el-tab-pane>
+      <el-tab-pane label="展业资格证">
+        <el-form-item label="展业资格证:" style="width: 50%">
+          <el-upload
+            class="avatar-uploader"
+            action=""
+            name="Z6Z_00"
+            :show-file-list="false"
+            :http-request="httpRequest"
+            :before-upload="beforeAvatarUpload"
+          >
+            <img v-if="dataForm.Z6Z_00" :src="dataForm.Z6Z_00" class="avatar" />
+            <div v-else class="upload-icon">
+              <i class="el-icon-plus" style="font-size: 30px;"></i>
+              <div class="el-upload__text">上传资料</div>
+            </div>
+            <!-- <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>
+            </span>
+          </el-upload>
+        </el-form-item>
+      </el-tab-pane>
+      <el-tab-pane label="劳动合同">
+        <el-form-item label="劳动合同照片:" style="width: 50%">
+          <el-upload
+            class="avatar-uploader"
+            action=""
+            name="LD_00"
+            :show-file-list="false"
+            :http-request="httpRequest"
+            :before-upload="beforeAvatarUpload"
+          >
+            <img v-if="dataForm.LD_00" :src="dataForm.LD_00" class="avatar" />
+            <div v-else class="upload-icon">
+              <i class="el-icon-plus" style="font-size: 30px;"></i>
+              <div class="el-upload__text">上传资料</div>
+            </div>
+            <span class="slot" v-show="dataForm.LD_00">
+              <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(dataForm.LD_00)"></i>
+            </span>
+          </el-upload>
+        </el-form-item>
+      </el-tab-pane>
+      <el-tab-pane label="应聘表">
+        <el-form-item label="应聘表照片:" style="width: 50%">
+          <el-upload
+            class="avatar-uploader"
+            action=""
+            name="YP_00"
+            :show-file-list="false"
+            :http-request="httpRequest"
+            :before-upload="beforeAvatarUpload"
+          >
+            <img v-if="dataForm.YP_00" :src="dataForm.YP_00" class="avatar"/>
+            <div v-else class="upload-icon">
+              <i class="el-icon-plus" style="font-size: 30px;"></i>
+              <div class="el-upload__text">上传资料</div>
+            </div>
+            <span class="slot" v-show="dataForm.YP_00">
+              <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(dataForm.YP_00)" ></i>
+            </span>
+          </el-upload>
+        </el-form-item>
+      </el-tab-pane>
+      <el-tab-pane label="定薪表">
+        <el-form-item label="定薪表照片:" style="width: 50%">
+          <el-upload
+            class="avatar-uploader"
+            action=""
+            name="DX_00"
+            :show-file-list="false"
+            :http-request="httpRequest"
+            :before-upload="beforeAvatarUpload"
+          >
+            <img v-if="dataForm.DX_00" :src="dataForm.DX_00" class="avatar" />
+            <div v-else class="upload-icon">
+              <i class="el-icon-plus" style="font-size: 30px;"></i>
+              <div class="el-upload__text">上传资料</div>
+            </div>
+            <span class="slot" v-show="dataForm.DX_00">
+              <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(dataForm.DX_00)"></i>
+            </span>
+          </el-upload>
+        </el-form-item>
+      </el-tab-pane>
+      <el-tab-pane label="离职表">
+        <el-form-item label="离职表照片:" style="width: 50%">
+          <el-upload
+            class="avatar-uploader"
+            action=""
+            name="LZ_01"
+            :show-file-list="false"
+            :http-request="httpRequest"
+            :before-upload="beforeAvatarUpload"
+          >
+            <img v-if="dataForm.LZ_01" :src="dataForm.LZ_01" class="avatar" />
+            <div v-else class="upload-icon">
+              <i class="el-icon-plus" style="font-size: 30px;"></i>
+              <div class="el-upload__text">上传资料</div>
+            </div>
+            <span class="slot" v-show="dataForm.LZ_01">
+              <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(dataForm.LZ_01)"></i>
+            </span>
+          </el-upload>
+        </el-form-item>
+    </el-tab-pane>
+  </el-tabs>
+</el-form>
+
+
+<!-- 
     <div class="imageLibraryItem">
       <el-row class="imageLibraryItemTitle">
         <label @click="pic1Control = !pic1Control"> 身份证照片 </label>
@@ -136,6 +291,31 @@
         </el-form-item>
       </el-row>
     </div>
+    
+    <div class="imageLibraryItem">
+      <el-row class="imageLibraryItemTitle">
+        <label @click="pic7Control = !pic7Control"> 离职表 </label>
+      </el-row>
+      <el-row class="imageLibraryItemBody" v-show="pic7Control">
+        <el-form-item label="离职表照片:" style="width: 50%">
+          <el-upload
+            class="avatar-uploader"
+            action=""
+            name="LZ_01"
+            :show-file-list="false"
+            :http-request="httpRequest"
+            :before-upload="beforeAvatarUpload"
+          >
+            <img v-if="dataForm.LZ_01" :src="dataForm.LZ_01" class="avatar" />
+            <i v-else class="el-icon-plus avatar-uploader-icon"></i>
+            <span class="slot" v-show="carfrontImg" @click.stop>
+              <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(dataForm.LZ_01)"></i>
+            </span>
+          </el-upload>
+        </el-form-item>
+      </el-row>
+    </div> -->
+
     <el-image-viewer v-if="showViewer" :on-close="closeViewer" :z-index="9999" :url-list="[ProViewImg]" />
   </div>
 </template>
@@ -184,6 +364,7 @@ export default {
       pic4Control: false,
       pic5Control: false,
       pic6Control: false,
+      pic7Control: false,
       showViewer: false,
     };
   },
@@ -194,6 +375,7 @@ export default {
       this.pic4Control= o
       this.pic5Control= o
       this.pic6Control= o
+      this.pic7Control= o
     }
   },
   created() {
@@ -274,19 +456,39 @@ export default {
 .avatar-uploader-icon {
   font-size: 28px;
   color: #8c939d;
-  width: 100px;
-  height: 100px;
-  line-height: 100px;
+  width: 260px;
+  height: 160px;
+  line-height: 160px;
   text-align: center;
-  border: 1px dashed #d9d9d9;
+  border: 2px dashed #d9d9d9;
+  border-radius: 4px;
+}
+.upload-icon {
+  width: 260px;
+  height: 160px;
+  border: 2px dashed #d9d9d9;
+  border-radius: 4px;
+  padding-top: 44px;
+  box-sizing: border-box;
+}
+.el-upload__text {
+  line-height: 20px;
+}
+.upload-icon:hover {
+  /* border: 1px dashed #2D4D89; */
+  border-color: #2D4D89;
+  color: #2D4D89;
+  transition: all ease 1s;
 }
 .avatar {
-  border: 1px dashed #d9d9d9;
-  padding: 5px;
+  border: 2px dashed #d9d9d9;
+  padding: 0px;
   border-radius: 6px;
-  width: 100px;
-  height: 100px;
+  width: 260px;
+  height: 160px;
   display: block;
+  object-fit: cover;
+  border-radius: 4px;
 }
 .imageLibraryItem {
   margin-bottom: 10px;
@@ -312,10 +514,11 @@ export default {
 /* 上传图片样式End */
 .slot {
   position: absolute;
-  width: 100%;
-  height: 100%;
-  left: 0;
-  top: 0;
+  width: 260px;
+  height: 160px;
+  left: 2px;
+  top: 2px;
+  border-radius: 4px;
   cursor: default;
   text-align: center;
   color: #fff;
@@ -339,4 +542,20 @@ export default {
   opacity: 1;
 }
 
+</style>
+
+<style lang="scss" scoped>
+>>> .el-tabs__header {
+  margin-right: 50px !important;
+}
+>>> .el-tabs__item:hover {
+  color: #2D4D89;
+}
+>>> .el-tabs__item.is-active{
+  color: #2D4D89;
+  background: rgba(45,77,137,0.1);
+}
+>>> .el-tabs__active-bar {
+  background-color: #2D4D89;
+}
 </style>

+ 380 - 0
src/components/UserDetail/index.vue

@@ -0,0 +1,380 @@
+<template>
+  <div class="userdetail">
+    <el-form :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" :disabled="isDisabled"></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-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="出生日期">
+            <el-date-picker
+               :disabled="isDisabled"
+              style="width: 200px"
+              v-model="formDataDetail.birthday"
+              type="date"
+              value-format="yyyy-MM-dd"
+              placeholder="选择日期"
+              popper-class="select-prop"
+            >
+            </el-date-picker>
+          </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="民族" prop="nations">
+            <el-select
+               :disabled="isDisabled"
+              style="width: 200px"
+              v-model="formDataDetail.nations"
+              placeholder="请选择民族"
+              popper-class="select-prop"
+            >
+              <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-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>
+        </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-form-item>
+        </el-col>
+        <el-col :span="8">
+          <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="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>
+        </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>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="学历" prop="education">
+            <el-select
+               :disabled="isDisabled"
+              style="width: 200px"
+              v-model="formDataDetail.education"
+              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-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="isDisabled"
+              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
+               :disabled="isDisabled"
+              style="width: 200px"
+              v-model="formDataDetail.graduationTime"
+              type="date"
+              placeholder="选择日期"
+              popper-class="select-prop"
+            >
+            </el-date-picker>
+          </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.address"
+            ></el-input>
+          </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <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="邮箱">
+            <el-input
+               :disabled="isDisabled"
+              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
+               :disabled="isDisabled"
+              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
+               :disabled="isDisabled"
+              style="width: 200px"
+              v-model="formDataDetail.emergencyContactTel"
+            ></el-input>
+          </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="工资">
+            <el-input
+               :disabled="isDisabled"
+              style="width: 200px"
+              v-model="formDataDetail.salary"
+            ></el-input>
+          </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="薪资等级">
+            <el-input
+               :disabled="isDisabled"
+              style="width: 200px"
+              v-model="formDataDetail.salaryLevel"
+            ></el-input>
+          </el-form-item>
+        </el-col>
+
+        <el-col :span="8">
+          <el-form-item label="绩效方案">
+            <el-select
+               :disabled="isDisabled"
+              style="width: 200px"
+              v-model="formDataDetail.performance"
+              placeholder="请选择"
+              popper-class="select-prop"
+            >
+              <!-- <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
+               :disabled="isDisabled"
+              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
+               :disabled="isDisabled"
+              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="logoutTime">
+            <el-date-picker
+               :disabled="isDisabled"
+              value-format="yyyy-MM-dd"
+              style="width: 200px"
+              v-model="formData.logoutTime"
+              type="date"
+              placeholder="选择日期"
+              popper-class="select-prop"
+            >
+            </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-input
+               disabled
+               v-model="formData.approvalOpinion"
+               type="textarea"
+               style="width: 30vw;"
+               :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";
+const mixin = new mixa({
+  treeTypeNum: null,
+});
+export default {
+  props: {
+    // 基本信息
+    formData: {
+      type: Object,
+      default: () => {
+        return {};
+      },
+    },
+    // 详细信息
+    formDataDetail: {
+      type: Object,
+      default: () => {
+        return {};
+      },
+    },
+    isDisabled: {
+      type: Boolean,
+      default: false
+    },
+  },
+  mixins: [mixin],
+  data() {
+    return {
+
+    }
+  },
+  created() {
+    this.getDictItems("user_status");
+  },
+  methods: {
+    // 新增或修改的弹出框Start
+    getDictItems(typeName) {
+      //--数据字典--
+      this.$api.dict
+        .findByLableName(typeName)
+        .then((response) => {
+          this[typeName + "options"] = response.data; // 把获取到的数据赋给this.data
+        })
+        .catch((error) => {
+          this[typeName + "options"] = [];
+        });
+    },
+  }
+};
+</script>
+
+<style lang="scss">
+.select-prop {
+  .el-select-dropdown__item.selected,.el-date-table td.available:hover {
+    color: #2D4D89;
+  }
+  .el-date-table td.current:not(.disabled) span  {
+    background-color: #2D4D89;
+  }
+}
+</style>
+
+<style lang="scss" scoped>
+>>> .el-radio__input.is-checked .el-radio__inner {
+  background-color: #2D4D89 !important;
+  border-color: #2D4D89 !important;
+}
+>>> .el-radio__input.is-checked + .el-radio__label {
+  color: #2D4D89 !important;
+}
+>>> .radio-four {
+  .el-radio {
+    margin-right: 6px;
+    line-height: 32px;
+  }
+  .el-radio__label {
+    padding-left: 4px;
+  }
+}
+>>> .el-input__inner:focus, >>> .el-select .el-input.is-focus .el-input__inner {
+  border-color: #2D4D89;
+}
+</style>

+ 19 - 0
src/http/moudules/dict.js

@@ -179,4 +179,23 @@ export const companyFindPage = (data) => {
         method: 'post',
         data
     })
+}
+
+
+// 后线代客录单报表查询
+export const queryHxOrdersCount = (data) => {
+    return axios({
+        url: '/insurance/order/queryHxOrdersCount',
+        method: 'post',
+        data
+    })
+}
+
+// 后线代客录单报表导出
+export const exportHxOrdersCount = (data) => {
+    return axios({
+        url: '/insurance/order/exportHxOrdersCount',
+        method: 'post',
+        data
+    })
 }

+ 10 - 0
src/http/moudules/user.js

@@ -515,4 +515,14 @@ export const sysUserLinkFrontLineDeptFindAllUserList = (data) => {
     method: 'post',
     data
   })
+}
+
+
+// 后线管理 离司
+export const departApply = (data) => {
+  return axios({
+    url: '/user/departApply',
+    method: 'post',
+    data
+  })
 }

+ 46 - 0
src/views/Core/KtCommonTable.vue

@@ -256,6 +256,20 @@
             :type="button6Type"
             @click="handleButton6(scope.$index, scope.row)"
           />
+          <kt-button
+            v-if="button7Name && scope.row.status == button7Status"
+            :label="button7Name"
+            :size="size"
+            :type="button7Type"
+            @click="handleButton7(scope.$index, scope.row)"
+          />
+          <kt-button
+            v-if="button8Name && scope.row.status == button8Status"
+            :label="button8Name"
+            :size="size"
+            :type="button8Type"
+            @click="handleButton8(scope.$index, scope.row)"
+          />
           <el-button type="text" size="small" v-if="buttonDropdown.length>0">
             <el-dropdown trigger="click">
               <span class="el-dropdown-link">
@@ -403,6 +417,18 @@ export default {
     button6Name: {
       type: String,
     },
+    button7Name: {
+      type: String,
+    },
+    button7Status: {
+      type: String
+    },
+    button8Name: {
+      type: String,
+    },
+    button8Status: {
+      type: String
+    },
     buttonDropdown:{
       type: Array,
       default: () => [],
@@ -475,6 +501,14 @@ export default {
       type: String,
       default: "primary",
     },
+    button7Type: {
+      type: String,
+      default: "primary",
+    },
+    button8Type: {
+      type: String,
+      default: "primary",
+    },
     editButtonName: {
       type: String,
     },
@@ -744,6 +778,18 @@ export default {
         row: row,
       });
     },
+    handleButton7: function (index, row) {
+      this.$emit("handleButton7", {
+        index: index,
+        row: row,
+      });
+    },
+    handleButton8: function (index, row) {
+      this.$emit("handleButton8", {
+        index: index,
+        row: row,
+      });
+    },
     handleButton: function (index, row) {
       this.$emit("handleButton", {
         index: index,

+ 163 - 22
src/views/PeopleManage/Agent/AgentExamine.vue

@@ -53,18 +53,19 @@
                     ></el-input>
                   </el-form-item>
                 </el-col>
-                <!-- <el-col :span="5">
+                <el-col :span="5">
                   <el-form-item label="状态">
                     <el-select
-              style="width:200px"
-              clearable 
-                v-model="queryFrom.status"
-                placeholder="请选择"
-              >
-              <el-option v-for="val in user_statusoptions" :label="val.label" :value="val.value" :key="val.id"></el-option>
-            </el-select>
+                      size="small"
+                      style="width:200px"
+                      clearable 
+                      v-model="queryFrom.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>
                 <el-col :span="4">
                   <el-form-item label>
                     <el-button
@@ -83,11 +84,21 @@
             permsButton1="sys:agent:examine"
             :data="pageResult"
             :columns="columns"
-            :button1Name="'审核'"
             :showBatchDelete="false"
             @findPage="findPage"
-            @handleButton1="handleTableEdit"
+            :button7Name="'审核'"
+            :button7Status="'离司待审核'"
+            @handleButton7="handleTableEdit"
+            :button8Name="'审核'"
+            :button8Status="'入司待审核'"
+            @handleButton8="handleTableEdit"
+             @handleButton3="handleTableEdit1"
+              :button3Name="'详情'"
           ></kt-common-table>
+          <!-- 
+            @handleButton1="handleTableEdit"
+            :button1Name="'审核'"
+           -->
         </SplitArea>
         <!-- 右侧列表页面End -->
       </Split>
@@ -114,6 +125,23 @@
             size="small"
           >
             <el-row>
+              <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
@@ -141,8 +169,6 @@
                   <el-input v-model="formData.mobile"></el-input>
                 </el-form-item>
               </el-col>
-            </el-row>
-              <el-row>
               <el-col :span="8">
                 <el-form-item label="身份证号" prop="identity">
                   <el-input
@@ -166,8 +192,6 @@
                   ></el-input>
                 </el-form-item>
               </el-col>
-            </el-row>
-              <el-row>
               <el-col :span="8">
                 <el-form-item label="状态" prop="status">
                   <el-select
@@ -201,8 +225,6 @@
                   </el-select>
                 </el-form-item>
               </el-col>
-            </el-row>
-              <el-row>
               <el-col :span="8">
                 <el-form-item label="岗位" prop="positionId">
                   <el-select style="width:200px" v-model="formData.positionId" placeholder="请选择">
@@ -219,8 +241,8 @@
           </div>
         </el-tab-pane>
         <el-tab-pane label="详细信息" name="2">
-          <el-form
-            :rules="formDataRules"
+          <userDetail :formData="formData" :formDataDetail="formDataDetail" isDisabled></userDetail>
+          <!-- <el-form :rules="formDataRules"
             :model="formDataDetail"
             ref="formDataDetail"
             :inline="true"
@@ -437,8 +459,9 @@
               <el-col :span="22">
                 <el-form-item label="备注" prop="remark">
                   <el-input
+                    disabled
                     style="width: 30vw"
-                    v-model="formDataDetail.remark"
+                    v-model="formDataDetail.approvalOpinion"
                     type="textarea"
                     :autosize="{ minRows: 4, maxRows: 6 }"
                     placeholder="请输入内容"
@@ -449,7 +472,7 @@
                 </el-form-item>
               </el-col>
             </el-row>
-          </el-form>
+          </el-form> -->
           <div style="text-align: right">
             <el-button size="small" type="primary" @click="nextStep('1')"
               >上一步</el-button
@@ -474,6 +497,7 @@
               >上一步</el-button
             >
             <el-button
+               v-show="dialogTitle == '审核代理人'"
               size="mini"
               type="primary"
               style="background-color: #0ec216; border: 1px solid #0ec216"
@@ -481,6 +505,7 @@
               >审核通过</el-button
             >
             <el-button
+               v-show="dialogTitle == '审核代理人'"
               size="mini"
               type="danger"
               style="background-color: #de504c; border: 1px solid #de504c"
@@ -494,6 +519,23 @@
         </el-tab-pane>
       </el-tabs>
     </el-dialog>
+    
+    <!-- 驳回理由 -->
+    <el-dialog title="驳回" width="40%" :visible.sync="showRemark"  @close="closeDialogOut">
+      <el-form>
+        <el-form-item label="备注" prop="remark">
+          <el-input style="width: 30vw;" v-model="formDataDetail.remark" type="textarea"
+            :autosize="{ minRows: 4, maxRows: 6 }" placeholder="请输入内容" prop="remark" maxlength="200"
+            show-word-limit></el-input>
+        </el-form-item>
+      </el-form>
+      <span slot="footer">
+        <el-button type="primary" @click="handleSubOut">确定</el-button>
+        <el-button @click="closeDialogOut">取消</el-button>
+      </span>
+    </el-dialog>
+
+
   </div>
 </template>
 
@@ -501,6 +543,7 @@
 import tree from "@/components/ztree.vue"; // 机构树组件
 import KtCommonTable from "@/views/Core/KtCommonTable.vue"; //表格组件
 import peopleImage from "@/components/PeopleImage/index.vue"; //影像组件
+import userDetail from '@/components/UserDetail/index.vue'    // 详情信息
 import mixa from '../mixin' 
 const mixin = new mixa({
   treeTypeNum:2 //树分类过滤参数
@@ -510,10 +553,12 @@ export default {
     tree,
     KtCommonTable,
     peopleImage,
+    userDetail
   },
   mixins: [mixin], 
   data() {
     return {
+      showRemark: false,    // 驳回弹窗
       activeName: "1",
       pageData: {
         pageNum: 1,
@@ -594,6 +639,32 @@ export default {
   created() {
   },
   methods: {
+    handleSubOut() {
+      if(!this.formDataDetail.remark){
+          this.$message.error('请在详细信息填写驳回原因')
+          return
+        }
+        this.$refs.formDataDetail.validate(valid => {
+          if (valid) {
+            this.$api.user
+              .getApprovalNotPass({ userId: this.formData.id, reason: this.formDataDetail.remark })
+              .then(result => {
+                if (result.code == 200 && result.data) {
+                  this.$message({
+                    message: "审核已驳回",
+                    type: "success"
+                  });
+                  this.findPage();
+                  this.closeDialogOut()
+                  this.dialogVisible = false;
+                }
+              });
+          }
+        });
+    },
+    closeDialogOut() {
+      this.showRemark = false
+    },
     handleDialogBefore(done) {
       // 退出对话框之前确认提示
       var that = this;
@@ -608,6 +679,7 @@ export default {
       this.pageData.realName = this.queryFrom.name;
       this.pageData.mobile = this.queryFrom.mobile;
       this.pageData.userId = this.queryFrom.userId;
+      this.pageData.status = this.queryFrom.status;
       this.findPage();
     },
     onZTreeClick: function (evt, treeId, treeNode) {
@@ -639,7 +711,7 @@ export default {
         mobile: this.pageData.mobile,
         name: this.pageData.realName,
         userId: this.pageData.userId,
-        status: "2",
+        status: this.pageData.status,
         roleId: "20",
       };
       this.$api.user
@@ -680,6 +752,32 @@ export default {
         }
       });
     },
+    handleTableEdit1(params) {
+      this.dataForm = {
+        SFZ_01: "",
+        SFZ_02: "",
+        Z6Z_00: "",
+        LD_00: "",
+        YP_00: "",
+        DX_00: "",
+        LZ_01: ""
+      };
+      this.$api.user.getUserDatail(params.row.userId).then((res) => {
+        if (res.code == 200) {
+          res.data.sysUser.status += ''
+          if(res.data.esmUserImageVo.length > 0) {
+            res.data.esmUserImageVo.forEach(item=>{
+              item.path = process.env.BASE_URL + item.path
+              this.dataForm[item.type]=item.path
+            })
+          }
+          this.formData = res.data.sysUser
+          this.formDataDetail = res.data.sysUserInfo ? res.data.sysUserInfo : {}
+        }
+      })
+      this.dialogTitle = "详情";
+      this.dialogVisible = true;
+    },
     handleTableEdit(params) {
       this.dataForm = {
         SFZ_01: "",
@@ -726,6 +824,8 @@ export default {
           }
         });
       } else {
+        this.showRemark = true
+        return
         if(!this.formDataDetail.remark){
           this.$message.error('请在详细信息填写驳回原因')
           return
@@ -773,3 +873,44 @@ export default {
   margin-left: 0px !important;
 }
 </style>
+
+<style lang="scss" scoped>
+>>> .el-tabs__header {
+  margin-right: 50px !important;
+}
+>>> .el-tabs__item:hover{
+  color: #2D4D89;
+}
+>>> .el-tabs__item.is-active {
+  color: #FFF;
+  background: #2D4D89;
+  transition: all ease .5s;
+}
+>>> .el-tabs__active-bar {
+  background-color: #2D4D89;
+}
+>>> .el-tabs__item.is-top:nth-child(2) {
+  padding-left: 20px !important;
+}
+>>> .el-tabs--top .el-tabs__item.is-top:last-child {
+  padding-right: 20px !important;
+}
+
+.el-tabs {
+  >>> .el-input__inner:focus, >>> .el-select .el-input.is-focus .el-input__inner {
+    border-color: #2D4D89;
+  }
+  .el-button--primary, .el-button--primary:focus {
+    background-color: #2D4D89;
+    border-color: #2D4D89;
+  }
+}
+.select-prop {
+  .el-select-dropdown__item.selected, .el-date-table td.available:hover {
+    color: #2D4D89;
+  }
+  .el-date-table td.current:not(.disabled) span  {
+    background-color: #2D4D89;
+  }
+}
+</style>

+ 340 - 88
src/views/PeopleManage/Agent/AgentManage.vue

@@ -72,7 +72,25 @@
           >
             <el-row>
               <el-col :span="8">
-                <el-form-item label="机构名称" prop="deptId">
+                <el-form-item label="机构名称">
+                  <el-cascader
+                    style="width: 200px"
+                    :options="ztreeNodes"
+                    v-model="formData.pdeptId"
+                    clearable
+                    disabled
+                    :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
                     style="width: 200px"
                     :options="ztreeNodes"
@@ -99,8 +117,6 @@
                   <el-input v-model="formData.mobile"></el-input>
                 </el-form-item>
               </el-col>
-            </el-row>
-            <el-row>
               <el-col :span="8">
                 <el-form-item label="身份证号" prop="identity">
                   <el-input
@@ -130,14 +146,13 @@
                     show-password></el-input> -->
                 </el-form-item>
               </el-col>
-            </el-row>
-            <el-row>
               <el-col :span="8">
                 <el-form-item label="状态" prop="status">
                   <el-select
                     style="width: 200px"
                     @change="statusChange"
                     v-model="formData.status"
+                    disabled
                     placeholder="请选择"
                   >
                     <el-option
@@ -172,6 +187,7 @@
                     style="width: 200px"
                     v-model="formData.positionId"
                     placeholder="请选择"
+                    popper-class="select-prop"
                   >
                     <el-option
                       v-for="val in postOption"
@@ -182,8 +198,6 @@
                   </el-select>
                 </el-form-item>
               </el-col>
-            </el-row>
-            <el-row>
               <el-col :span="8">
                 <el-form-item label="推荐人" prop="referrerId">
                   <el-select
@@ -191,6 +205,7 @@
                     clearable
                     v-model="formData.referrerId"
                     placeholder="请选择"
+                    popper-class="select-prop"
                   >
                     <el-option
                       v-for="val in recommenderOptions"
@@ -214,6 +229,7 @@
                     filterable
                     v-model="formData.leaderId"
                     placeholder="请选择"
+                    popper-class="select-prop"
                   >
                     <el-option
                       v-for="val in leaderOptions"
@@ -229,18 +245,6 @@
                   <el-input v-model="formData.leaderId" disabled></el-input>
                 </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-row>
           </el-form>
           <div style="text-align: right">
@@ -250,7 +254,8 @@
           </div>
         </el-tab-pane>
         <el-tab-pane label="详细信息" name="2">
-          <el-form
+          <userDetail :formData="formData" :formDataDetail="formDataDetail"></userDetail>
+          <!-- <el-form
             :model="formDataDetail"
             :rules="formDataRulesDetail"
             ref="formDataDetail"
@@ -260,13 +265,8 @@
           >
             <el-row>
               <el-col :span="8">
-                <el-form-item label="开户账号" prop="accountno">
-                  <el-input v-model="formDataDetail.accountno"></el-input>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="开户行" prop="bankName">
-                  <el-input v-model="formDataDetail.bankName"></el-input>
+                <el-form-item label="姓名" prop="name">
+                  <el-input v-model="formData.name"></el-input>
                 </el-form-item>
               </el-col>
               <el-col :span="8">
@@ -285,8 +285,6 @@
                   </el-select>
                 </el-form-item>
               </el-col>
-            </el-row>
-            <el-row>
               <el-col :span="8">
                 <el-form-item label="出生日期" prop="birthday">
                   <el-date-picker
@@ -298,29 +296,6 @@
                   </el-date-picker>
                 </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="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-row>
-            <el-row>
               <el-col :span="8">
                 <el-form-item label="民族" prop="nations">
                   <el-select
@@ -354,14 +329,14 @@
                 </el-form-item>
               </el-col>
               <el-col :span="8">
-                <el-form-item label="健康状况" prop="health">
+                <el-form-item label="婚姻状况" prop="maritalStatus">
                   <el-select
+                    v-model="formDataDetail.maritalStatus"
+                    placeholder="请选择婚姻状况"
                     style="width: 200px"
-                    v-model="formDataDetail.health"
-                    placeholder="请选择"
                   >
                     <el-option
-                      v-for="val in healthOption"
+                      v-for="val in maritalStatusOption"
                       :key="val.value"
                       :label="val.label"
                       :value="val.value"
@@ -369,19 +344,11 @@
                   </el-select>
                 </el-form-item>
               </el-col>
-            </el-row>
-            <el-row>
               <el-col :span="8">
-                <el-form-item label="邮政编码" prop="postalCode">
-                  <el-input v-model="formDataDetail.postalCode"></el-input>
+                <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="address">
-                  <el-input v-model="formDataDetail.address"></el-input>
-                </el-form-item>
-              </el-col>
-
               <el-col :span="8">
                 <el-form-item label="血型" prop="bloodType">
                   <el-select
@@ -398,8 +365,22 @@
                   </el-select>
                 </el-form-item>
               </el-col>
-            </el-row>
-            <el-row>
+              <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
@@ -433,31 +414,31 @@
                   </el-date-picker>
                 </el-form-item>
               </el-col>
-            </el-row>
-            <el-row>
               <el-col :span="8">
-                <el-form-item label="原工作单位" prop="formerEmployer">
-                  <el-input v-model="formDataDetail.formerEmployer"></el-input>
+                <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="entryTime">
-                  <el-date-picker
+                <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.entryTime"
-                    type="date"
-                    placeholder="选择日期"
-                  >
-                  </el-date-picker>
+                    v-model="formDataDetail.email"
+                  ></el-input>
                 </el-form-item>
               </el-col>
               <el-col :span="8">
                 <el-form-item
-                  label="代理人资格证号"
-                  prop="agentQualificationCode"
+                  label="紧急联系人姓名"
+                  prop="emergencyContactName"
                 >
                   <el-input
-                    v-model="formDataDetail.agentQualificationCode"
+                    v-model="formDataDetail.emergencyContactName"
                   ></el-input>
                 </el-form-item>
               </el-col>
@@ -468,18 +449,94 @@
                   ></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="emergencyContactName"
+                  label="代理人资格证号"
+                  prop="agentQualificationCode"
                 >
                   <el-input
-                    v-model="formDataDetail.emergencyContactName"
+                    v-model="formDataDetail.agentQualificationCode"
                   ></el-input>
                 </el-form-item>
               </el-col>
             </el-row>
-          </el-form>
+          </el-form> -->
           <div style="text-align: right">
             <el-button size="small" type="primary" @click="activeName = '1'"
               >上一步</el-button
@@ -507,7 +564,7 @@
             <el-button
               size="small"
               type="primary"
-              style="background-color: #ffc000; border: 1px solid #ffc000"
+              style="background-color: #EAEDF1; border: 1px solid #EAEDF1; color: #2D4D89;"
               @click="closeDialog"
               >取消</el-button
             >
@@ -521,6 +578,40 @@
         </el-tab-pane>
       </el-tabs>
     </el-dialog>
+    
+    <el-dialog title="离司" width="40%" :visible.sync="showOut"  @close="closeDialogOut">
+      <div>
+        <el-form>
+          <el-form-item label="离职时间" prop="logoutTime">
+            <el-date-picker
+              value-format="yyyy-MM-dd"
+              style="width: 200px"
+              v-model="logoutTime"
+              type="date"
+              placeholder="选择日期"
+            ></el-date-picker>
+            </el-form-item>
+            <el-form-item label="离职表:" style="width: 50%">
+            <el-upload
+              class="avatar-uploader"
+              action=""
+              name="LZ_01"
+              :show-file-list="false"
+              :http-request="httpRequest"
+              :before-upload="beforeAvatarUpload"
+            >
+              <img v-if="logoutImg" :src="logoutImg" class="avatar" />
+              <i v-else class="el-icon-plus avatar-uploader-icon"></i>
+            </el-upload>
+          </el-form-item>
+        </el-form>
+      </div>
+      <span slot="footer">
+        <el-button type="primary" @click="handleSubOut">确定</el-button>
+        <el-button @click="closeDialogOut">取消</el-button>
+      </span>
+    </el-dialog>
+
   </div>
 </template>
 
@@ -530,6 +621,7 @@ import tree from "@/components/ztree.vue"; // 机构树组件
 import templateTable from "../../../components/TemplateTable/index.vue";
 import peopleImage from "@/components/PeopleImage/index.vue";
 import { validateSfz } from "../../../utils/validate.js";
+import userDetail from '@/components/UserDetail/index.vue'    // 详情信息
 import mixa from "../mixin";
 const mixin = new mixa({
   treeTypeNum: 2, //树分类过滤参数
@@ -540,10 +632,16 @@ export default {
     tree,
     templateTable,
     peopleImage,
+    userDetail
   },
   mixins: [mixin],
   data() {
     return {
+      showOut: false,     // 离司
+      logoutTime: '', // 离司 离职时间
+      logoutImg: '',   // 离司 图片
+      logoutImgId: '',
+      lineId: '',
       leaderOptions: [],
       activeName: "1",
       isShow: true,
@@ -555,6 +653,7 @@ export default {
         LD_00: "",
         YP_00: "",
         DX_00: "",
+        LZ_01: ""
       },
       //影像上传列表
       imagesIdList: [],
@@ -631,6 +730,7 @@ export default {
         loading: true,
         isPaginationShow: true,
         isShowIndex: true,
+        operationWidth: "150",
         optBtns: [
           {
             type: "primary",
@@ -641,6 +741,18 @@ export default {
               return this.handleTableEdit(row);
             },
           },
+          {
+            type: "primary",
+            label: "离司",
+            perm: "sys:agent:edit",
+            icon: "fa fa-edit",
+            hide: (row) => {
+              return row.status == '正常'
+            },
+            click: (row, index) => {
+              return this.handleOut(row);
+            },
+          },
         ],
       },
       recommenderOptions: [],
@@ -703,6 +815,75 @@ export default {
     this.searchLeaderFun();
   },
   methods: {
+    
+    handleSubOut() {
+      if (this.logoutTime == '') {
+        this.$message.error('请选择时间')
+        return
+      }
+      if (this.logoutImgId == '') {
+        this.$message.error('请上传离职表')
+        return
+      }
+      let subData = {
+        esmUserImageVo: [{
+          imageId: this.logoutImgId,
+          type: 'LZ_01'
+        }],
+        sysUser: {id: this.lineId, logoutTime: this.logoutTime},
+        sysUserInfo: {},
+      }
+      this.$api.user.departApply(subData).then((res) => {
+        if (res.code == 200) {
+          this.$message.success(res.msg)
+          this.findPage()
+          this.closeDialogOut()
+        } else {
+          this.$message.error(res.msg)
+        }
+      })
+    },
+    // 上传图片的方法Start
+    beforeAvatarUpload(file) {
+      const isJPG = file.type === "image/jpeg" || file.type === "image/png";
+      const isLt2M = file.size / 1024 / 1024 < 2;
+      if (!isJPG) {
+        this.$message.error("上传图片只能是 JPG 或者 PNG 格式!");
+      }
+      if (!isLt2M) {
+        this.$message.error("上传图片大小不能超过 2MB!");
+      }
+      return isJPG && isLt2M;
+    },
+    //上传影像
+    httpRequest(options) {
+      let file = options.file;
+      let filename = options.filename;
+      let reader = new FileReader();
+      if (file) {
+        reader.readAsDataURL(file);
+      }
+      reader.onload = () => {
+        let base64Str = reader.result;
+        this.logoutImg = base64Str;
+      };
+      const params = new FormData(); // 声明formData数据类型
+      params.append("multipartFile", file);
+      params.append("type", "personnel");
+      this.$api.letter.uploadFile(params).then(res => {
+        if (res.code == "200") {
+          this.logoutImgId = res.data.id
+        }
+      });
+    },
+    closeDialogOut() {
+      this.showOut = false
+    },
+    // 离司
+    handleOut(data) {
+      this.lineId = data.userId
+      this.showOut = true
+    },
     async searchLeaderFun() {
       await this.$api.user.findHxUserList().then((res) => {
         this.leaderOptions = res.data;
@@ -855,6 +1036,7 @@ export default {
         LD_00: "",
         YP_00: "",
         DX_00: "",
+        LZ_01: "",
       };
       this.imagesIdList = [];
       this.activeName = "1";
@@ -935,7 +1117,7 @@ export default {
       this.dialogPassword = true;
       this.formData = {
         roleId: "20",
-        status: "",
+        status: "2",
         referrerId: "",
         deptId: this.deptId,
       };
@@ -1082,4 +1264,74 @@ export default {
   top: 10px;
   text-align: center;
 }
+
+.avatar-uploader .el-upload {
+  border: 1px dashed #d9d9d9;
+  border-radius: 6px;
+  cursor: pointer;
+  position: relative;
+  overflow: hidden;
+}
+.avatar-uploader .el-upload:hover {
+  border-color: #409eff;
+}
+.avatar-uploader-icon {
+  font-size: 28px;
+  color: #8c939d;
+  width: 100px;
+  height: 100px;
+  line-height: 100px;
+  text-align: center;
+  border: 1px dashed #d9d9d9;
+}
+
+.avatar {
+  border: 1px dashed #d9d9d9;
+  padding: 5px;
+  border-radius: 6px;
+  width: 100px;
+  height: 100px;
+  display: block;
+}
+</style>
+
+<style lang="scss" scoped>
+>>> .el-tabs__header {
+  margin-right: 50px !important;
+}
+>>> .el-tabs__item:hover{
+  color: #2D4D89;
+}
+>>> .el-tabs__item.is-active {
+  color: #FFF;
+  background: #2D4D89;
+  transition: all ease .5s;
+}
+>>> .el-tabs__active-bar {
+  background-color: #2D4D89;
+}
+>>> .el-tabs__item.is-top:nth-child(2) {
+  padding-left: 20px !important;
+}
+>>> .el-tabs--top .el-tabs__item.is-top:last-child {
+  padding-right: 20px !important;
+}
+
+.el-tabs {
+  >>> .el-input__inner:focus, >>> .el-select .el-input.is-focus .el-input__inner {
+    border-color: #2D4D89;
+  }
+  .el-button--primary, .el-button--primary:focus {
+    background-color: #2D4D89;
+    border-color: #2D4D89;
+  }
+}
+.select-prop {
+  .el-select-dropdown__item.selected, .el-date-table td.available:hover {
+    color: #2D4D89;
+  }
+  .el-date-table td.current:not(.disabled) span  {
+    background-color: #2D4D89;
+  }
+}
 </style>

+ 689 - 0
src/views/PeopleManage/Player/PlayerExamine.vue

@@ -0,0 +1,689 @@
+<template>
+  <div>
+    <el-main ref="elMain" style="padding: 0px">
+      <Split :gutterSize="2" style="height: calc(100vh - 120px)">
+        <!-- 左侧树Start -->
+        <SplitArea :size="leftSplitWidth" :minSize="240">
+          <div>
+            <!-- 左侧树形结构 -->
+            <el-tree
+              :data="ztreeNodes"
+              :props="{ children: 'children', label: 'name' }"
+              node-key="id"
+              :default-expanded-keys="['9']"
+              @node-click="onZTreeClick"
+            ></el-tree>
+          </div>
+        </SplitArea>
+        <!-- 左侧树End -->
+
+        <!-- 右侧列表页面Start -->
+        <SplitArea :size="rightSplitWidth">
+          <!-- 筛选区域Start -->
+          <el-row class="queryFrom">
+            <el-form ref="queryFormRef" :model="queryFrom" label-width="80px">
+              <el-row>
+                <el-col :span="5">
+                  <el-form-item label="工号">
+                    <el-input
+                      clearable
+                      size="small"
+                      placeholder="工号"
+                      v-model="queryFrom.userId"
+                    ></el-input>
+                  </el-form-item>
+                </el-col>
+                <el-col :span="5">
+                  <el-form-item label="姓名">
+                    <el-input
+                      clearable
+                      size="small"
+                      placeholder="姓名"
+                      v-model="queryFrom.name"
+                    ></el-input>
+                  </el-form-item>
+                </el-col>
+                <el-col :span="5">
+                  <el-form-item label="手机号">
+                    <el-input
+                      clearable
+                      size="small"
+                      placeholder="手机号"
+                      v-model="queryFrom.mobile"
+                    ></el-input>
+                  </el-form-item>
+                </el-col>
+                <el-col :span="5">
+                  <el-form-item label="状态">
+                    <el-select
+                      size="small"
+                      style="width:200px"
+                      clearable 
+                      v-model="queryFrom.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="4">
+                  <el-form-item label>
+                    <el-button
+                      size="small"
+                      type="primary"
+                      @click="queryStaffInfo"
+                      >查询</el-button
+                    >
+                  </el-form-item>
+                </el-col>
+              </el-row>
+            </el-form>
+          </el-row>
+
+          <kt-common-table
+            permsButton1="sys:agent:examine"
+            :data="pageResult"
+            :columns="columns"
+            :showBatchDelete="false"
+            @findPage="findPage"
+            :button7Name="'审核'"
+            :button7Status="'离司待审核'"
+            @handleButton7="handleTableEdit"
+            :button8Name="'审核'"
+            :button8Status="'入司待审核'"
+            @handleButton8="handleTableEdit"
+             @handleButton3="handleTableEdit1"
+              :button3Name="'详情'"
+          ></kt-common-table>
+          <!-- 
+            @handleButton1="handleTableEdit"
+            :button1Name="'审核'"
+           -->
+        </SplitArea>
+        <!-- 右侧列表页面End -->
+      </Split>
+    </el-main>
+
+    <el-dialog
+      :title="dialogTitle"
+      width="60%"
+      :visible.sync="dialogVisible"
+      :close-on-click-modal="false"
+      :before-close="handleDialogBefore"
+      @close="closeDialog"
+      v-dialogDrag
+    >
+      <el-tabs v-model="activeName">
+        <el-tab-pane label="基本信息" name="1">
+          <el-form
+            :model="formData"
+            disabled
+            ref="formData"
+            :inline="true"
+            @keyup.enter.native="nextStep()"
+            label-width="110px"
+            size="small"
+          >
+            <el-row>
+              <el-col :span="8">
+                <el-form-item label="机构名称">
+                  <el-cascader
+                    style="width: 200px"
+                    :options="ztreeNodes"
+                    v-model="formData.pdeptId"
+                    clearable
+                    disabled
+                    :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
+                    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
+                    style="width: 200px"
+                    :options="ztreeNodes"
+                    v-model="formData.deptId"
+                    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="id">
+                  <el-input v-model="formData.id" disabled></el-input>
+                </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>
+              </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="name">
+                  <el-input v-model="formData.name"></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"
+                    autocomplete="new-password"
+                    show-password
+                  ></el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="状态" prop="status">
+                  <el-select
+                    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">
+                <el-form-item label="角色" prop="roleId">
+                  <el-select
+                    style="width: 200px"
+                    v-model="formData.roleId"
+                    placeholder="请选择"
+                    disabled
+                  >
+                    <el-option
+                      v-for="val in roles"
+                      :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="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-row>
+          </el-form>
+          <div style="text-align: right">
+            <el-button size="small" type="primary" @click="nextStep('3')">下一步</el-button>
+          </div>
+        </el-tab-pane>
+        
+        <el-tab-pane label="影像资料" name="3">
+          <el-form :model="formDataDetail" ref="formDataDetail" :inline="true"
+           label-width="130px" size="small">
+           <peopleImage :dataForm="dataForm" :dialogVisible="dialogVisible" :carfrontImg="true"></peopleImage>
+          </el-form>
+          <div style="text-align: right;">
+            <el-button size="small" type="primary" @click="nextStep('1')">上一步</el-button>
+            <el-button
+               v-show="dialogTitle == '审核代理人'"
+              size="mini"
+              type="primary"
+              style="background-color: #0ec216; border: 1px solid #0ec216"
+              @click="submitForm(1)"
+              >审核通过</el-button
+            >
+            <el-button
+               v-show="dialogTitle == '审核代理人'"
+              size="mini"
+              type="danger"
+              style="background-color: #de504c; border: 1px solid #de504c"
+              @click="submitForm(2)"
+              >审核驳回</el-button
+            >
+            <el-button size="small" type="primary" @click="closeDialog"
+              >取消</el-button
+            >
+          </div>
+        </el-tab-pane>
+      </el-tabs>
+    </el-dialog>
+    
+    <!-- 驳回理由 -->
+    <el-dialog title="驳回" width="40%" :visible.sync="showRemark"  @close="closeDialogOut">
+      <el-form>
+        <el-form-item label="备注" prop="remark">
+          <el-input style="width: 30vw;" v-model="formDataDetail.remark" type="textarea"
+            :autosize="{ minRows: 4, maxRows: 6 }" placeholder="请输入内容" prop="remark" maxlength="200"
+            show-word-limit></el-input>
+        </el-form-item>
+      </el-form>
+      <span slot="footer">
+        <el-button type="primary" @click="handleSubOut">确定</el-button>
+        <el-button @click="closeDialogOut">取消</el-button>
+      </span>
+    </el-dialog>
+
+
+  </div>
+</template>
+
+<script>
+import tree from "@/components/ztree.vue"; // 机构树组件
+import KtCommonTable from "@/views/Core/KtCommonTable.vue"; //表格组件
+import peopleImage from "@/components/PeopleImage/index.vue"; //影像组件
+import mixa from '../mixin' 
+const mixin = new mixa({
+  treeTypeNum:1 //树分类过滤参数
+})
+export default {
+  components: {
+    tree,
+    KtCommonTable,
+    peopleImage,
+  },
+  mixins: [mixin], 
+  data() {
+    return {
+      showRemark: false,    // 驳回弹窗
+      activeName: "1",
+      pageData: {
+        pageNum: 1,
+        pageSize: 20,
+        deptId: JSON.parse(localStorage.getItem("user_data")).deptId,
+        userId: "",
+        realName: "",
+        mobile: "",
+      },
+      formData: {},
+      formDataRules: {
+        remark: [
+          { required: true, message: "请填写驳回原因", trigger: "blur" },
+        ],
+      },
+      formDataDetail: {},
+      filterObject: {},
+      peopleid: "",
+      peopledeptid: "",
+      recommenderList: [],
+      teamleadername: "",
+      teamleaderid: "",
+      // 右侧列表查询数据Start
+      queryFrom: {},
+      pageResult: {},
+      columns: [
+        // 数据列
+        { prop: "deptId", label: "部门编码", minWidth: 80, sortable: false },
+        {
+          prop: "pdeptName",
+          label: "机构名称",
+          minWidth: 120,
+          sortable: false,
+        },
+
+        { prop: "deptName", label: "部门名称", minWidth: 80, sortable: false },
+
+        { prop: "userId", label: "工号", minWidth: 80, sortable: false },
+        { prop: "name", label: "姓名", minWidth: 120, sortable: false },
+        {
+          prop: "sex",
+          label: "性别",
+          minWidth: 50,
+          sortable: false,
+        },
+        { prop: "mobile", label: "联系电话", minWidth: 100, sortable: false },
+        {
+          prop: "roleId",
+          label: "角色",
+          minWidth: 80,
+          sortable: false,
+        },
+        {
+          prop: "status",
+          label: "状态",
+          minWidth: 50,
+          sortable: false,
+        },
+      ],
+      dialogTitle: "",
+      dialogVisible: false, // 新增编辑界面是否显示
+      departmentList: [], // 选中公司的所有部门的集合
+      deptInfo: {}, //选中机构的基本信息
+      option: [], //机构列表
+      //影像资料
+      dataForm: {
+        SFZ_01: "",
+        SFZ_02: "",
+        Z6Z_00: "",
+        LD_00: "",
+        YP_00: "",
+        DX_00: "",
+        LZ_01: "",
+      },
+      //影像上传列表
+      imagesIdList:[],
+    };
+  },
+  created() {
+  },
+  methods: {
+    handleSubOut() {
+      if(!this.formDataDetail.remark){
+          this.$message.error('请在详细信息填写驳回原因')
+          return
+        }
+        this.$api.user
+          .getApprovalNotPass({ userId: this.formData.id, reason: this.formDataDetail.remark })
+          .then(result => {
+            if (result.code == 200 && result.data) {
+              this.$message({
+                message: "审核已驳回",
+                type: "success"
+              });
+              this.findPage();
+              this.closeDialogOut()
+              this.dialogVisible = false;
+            }
+          });
+    },
+    closeDialogOut() {
+      this.showRemark = false
+    },
+    handleDialogBefore(done) {
+      // 退出对话框之前确认提示
+      var that = this;
+      this.$confirm("确认关闭?")
+        .then((_) => {
+          done();
+        })
+        .catch((_) => {});
+    },
+    // 查询Start
+    queryStaffInfo() {
+      this.pageData.realName = this.queryFrom.name;
+      this.pageData.mobile = this.queryFrom.mobile;
+      this.pageData.userId = this.queryFrom.userId;
+      this.pageData.status = this.queryFrom.status;
+      this.findPage();
+    },
+    onZTreeClick: function (evt, treeId, treeNode) {
+      // 点击事件
+      this.currentTreeNode = evt;
+      this.pageData.deptId = this.currentTreeNode.id;
+      this.pageData.pageNum = 1;
+      this.findPage();
+      this.formData.deptId = [];
+      this.platform(treeId);
+    },
+    platform(array) {
+      if (!array.parent) {
+        return;
+      }
+      this.formData.deptId.unshift(array.data.id);
+      this.platform(array.parent);
+    },
+
+    // 右侧列表的方法Start
+    findPage(data) {
+      // 获取分页数据
+      if (data && data.pageRequest) {
+        this.pageData.pageNum = data.pageRequest.pageNum;
+        this.pageData.pageSize = data.pageRequest.pageSize;
+      }
+      let dto = {
+        deptId: this.pageData.deptId,
+        mobile: this.pageData.mobile,
+        name: this.pageData.realName,
+        userId: this.pageData.userId,
+        status: this.pageData.status,
+        agentFlag: "1",
+        roleId: "19",
+      };
+      this.$api.user
+        .findUserList({
+          dto,
+          pageNum: this.pageData.pageNum,
+          pageSize: this.pageData.pageSize,
+        })
+        .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
+          });
+          let datas = {
+            content: res.data.records,
+            pageNum: res.data.current,
+            pageSize: res.data.size,
+            totalPages: res.data.pages,
+            totalSize: res.data.total
+          }
+          this.pageResult = datas;
+        });
+    },
+    closeDialog() {
+      this.$refs["formData"].resetFields();
+      for (let key in this.formData) {
+        this.formData[key] = "";
+      }
+      this.dialogVisible = false;
+    },
+    // 下一步
+    nextStep(num) {
+      this.$refs.formData.validate((valid) => {
+        if (valid) {
+          this.activeName = num;
+        }
+      });
+    },
+    handleTableEdit1(params) {
+      this.dataForm = {
+        SFZ_01: "",
+        SFZ_02: "",
+        Z6Z_00: "",
+        LD_00: "",
+        YP_00: "",
+        DX_00: "",
+        LZ_01: ""
+      };
+      this.$api.user.getUserDatail(params.row.userId).then((res) => {
+        if (res.code == 200) {
+          res.data.sysUser.status += ''
+          if(res.data.esmUserImageVo && res.data.esmUserImageVo.length > 0) {
+            res.data.esmUserImageVo.forEach(item=>{
+              item.path = process.env.BASE_URL + item.path
+              this.dataForm[item.type]=item.path
+            })
+          }
+          this.formData = res.data.sysUser
+          this.formDataDetail = res.data.sysUserInfo ? res.data.sysUserInfo : {}
+        }
+          this.dialogTitle = "详情";
+          this.dialogVisible = true;
+      })
+    },
+    handleTableEdit(params) {
+      this.dataForm = {
+        SFZ_01: "",
+        SFZ_02: "",
+        Z6Z_00: "",
+        LD_00: "",
+        YP_00: "",
+        DX_00: "",
+        LZ_01: "",
+      }
+      this.$api.user.getUserDatail(params.row.userId).then((res) => {
+        if (res.code == 200) {
+          res.data.sysUser.status += "";
+          this.formData = res.data.sysUser;
+          if(res.data.esmUserImageVo.length > 0) {
+            res.data.esmUserImageVo.forEach(item=>{
+              item.path = process.env.BASE_URL + item.path
+              this.dataForm[item.type]=item.path
+            })
+          }
+          this.formDataDetail = res.data.sysUserInfo
+            ? res.data.sysUserInfo
+            : {};
+        }
+      });
+      this.dialogTitle = "审核代理人";
+      this.dialogVisible = true;
+    },
+    //联级选择器触发事件
+    handleChange(val) {
+      if (val.length !== 0) {
+        this.formData.deptId = val.at(-1);
+      }
+    },
+    submitForm(type) {
+      if (type == 1) {
+        this.$api.user.getApprovalPass(this.formData.id).then((result) => {
+          if (result.code == 200 && result.data) {
+            this.$message({
+              message: "审核已通过",
+              type: "success",
+            });
+            this.findPage();
+            this.dialogVisible = false;
+          }
+        });
+      } else {
+        this.showRemark = true
+        return
+        if(!this.formDataDetail.remark){
+          this.$message.error('请在详细信息填写驳回原因')
+          return
+        }
+        this.$refs.formDataDetail.validate((valid) => {
+          if (valid) {
+            this.$api.user
+              .getApprovalNotPass({
+                userId: this.formData.id,
+                reason: this.formDataDetail.remark,
+              })
+              .then((result) => {
+                if (result.code == 200 && result.data) {
+                  this.$message({
+                    message: "审核已驳回",
+                    type: "success",
+                  });
+                  this.findPage();
+                  this.dialogVisible = false;
+                }
+              });
+          }
+        });
+      }
+    },
+  },
+};
+</script>
+
+<style scoped>
+.el-divider--horizontal {
+  margin: 4px 0;
+}
+
+/* 顶部查询条件样式Start */
+.queryFrom .el-row {
+  margin: 10px 0px;
+}
+
+.queryFrom .el-form-item {
+  margin-bottom: 0px;
+}
+
+.queryFrom .queryButton .el-form-item__content {
+  margin-left: 0px !important;
+}
+</style>
+
+<style lang="scss" scoped>
+>>> .el-tabs__header {
+  margin-right: 50px !important;
+}
+>>> .el-tabs__item:hover{
+  color: #2D4D89;
+}
+>>> .el-tabs__item.is-active {
+  color: #FFF;
+  background: #2D4D89;
+  transition: all ease .5s;
+}
+>>> .el-tabs__active-bar {
+  background-color: #2D4D89;
+  transform: translateX(0) !important;
+}
+>>> .el-tabs__item.is-top:nth-child(2) {
+  padding-left: 20px !important;
+}
+>>> .el-tabs--top .el-tabs__item.is-top:last-child {
+  padding-right: 20px !important;
+}
+
+.el-tabs {
+  >>> .el-input__inner:focus, >>> .el-select .el-input.is-focus .el-input__inner {
+    border-color: #2D4D89;
+  }
+  .el-button--primary, .el-button--primary:focus {
+    background-color: #2D4D89;
+    border-color: #2D4D89;
+  }
+}
+.select-prop {
+  .el-select-dropdown__item.selected, .el-date-table td.available:hover {
+    color: #2D4D89;
+  }
+  .el-date-table td.current:not(.disabled) span  {
+    background-color: #2D4D89;
+  }
+}
+</style>

+ 933 - 0
src/views/PeopleManage/Player/PlayerExamineTeam.vue

@@ -0,0 +1,933 @@
+<template>
+  <div>
+    <el-main ref="elMain" style="padding: 0px">
+      <Split :gutterSize="2" style="height: calc(100vh - 120px)">
+        <!-- 左侧树Start -->
+        <SplitArea :size="leftSplitWidth" :minSize="240">
+          <div>
+            <!-- 左侧树形结构 -->
+            <!-- <el-tree
+              :data="ztreeNodes"
+              :props="{ children: 'children', label: 'name' }"
+              node-key="id"
+              :default-expanded-keys="['9']"
+              @node-click="onZTreeClick"
+            ></el-tree> -->
+            <el-tree
+              :data="ztreeNodes"
+              :props="{ children: 'children', label: 'name' }"
+              node-key="id"
+              :default-expanded-keys="['9']"
+              @node-click="onZTreeClick"
+            ></el-tree>
+          </div>
+        </SplitArea>
+        <!-- 左侧树End -->
+
+        <!-- 右侧列表页面Start -->
+        <SplitArea :size="rightSplitWidth">
+          <!-- 筛选区域Start -->
+          <el-row class="queryFrom">
+            <el-form ref="queryFormRef" :model="queryFrom" label-width="80px">
+              <el-row>
+                <el-col :span="5">
+                  <el-form-item label="工号">
+                    <el-input
+                      clearable
+                      size="small"
+                      placeholder="工号"
+                      v-model="queryFrom.userId"
+                    ></el-input>
+                  </el-form-item>
+                </el-col>
+                <el-col :span="5">
+                  <el-form-item label="姓名">
+                    <el-input
+                      clearable
+                      size="small"
+                      placeholder="姓名"
+                      v-model="queryFrom.name"
+                    ></el-input>
+                  </el-form-item>
+                </el-col>
+                <el-col :span="5">
+                  <el-form-item label="手机号">
+                    <el-input
+                      clearable
+                      size="small"
+                      placeholder="手机号"
+                      v-model="queryFrom.mobile"
+                    ></el-input>
+                  </el-form-item>
+                </el-col>
+                <el-col :span="5">
+                  <el-form-item label="状态">
+                    <el-select
+                      size="small"
+                      style="width:200px"
+                      clearable 
+                      v-model="queryFrom.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="4">
+                  <el-form-item label>
+                    <el-button
+                      size="small"
+                      type="primary"
+                      @click="queryStaffInfo"
+                      >查询</el-button
+                    >
+                  </el-form-item>
+                </el-col>
+              </el-row>
+            </el-form>
+          </el-row>
+
+          <kt-common-table
+            permsButton1="sys:agent:examine"
+            :data="pageResult"
+            :columns="columns"
+            :showBatchDelete="false"
+            @findPage="findPage"
+            :button7Name="'审核'"
+            :button7Status="'离司待审核'"
+            @handleButton7="handleTableEdit"
+            :button8Name="'审核'"
+            :button8Status="'入司待审核'"
+            @handleButton8="handleTableEdit"
+             @handleButton3="handleTableEdit1"
+              :button3Name="'详情'"
+          ></kt-common-table>
+          <!-- 
+            @handleButton1="handleTableEdit"
+            :button1Name="'审核'"
+           -->
+        </SplitArea>
+        <!-- 右侧列表页面End -->
+      </Split>
+    </el-main>
+
+    <el-dialog
+      :title="dialogTitle"
+      width="60%"
+      :visible.sync="dialogVisible"
+      :close-on-click-modal="false"
+      :before-close="handleDialogBefore"
+      @close="closeDialog"
+      v-dialogDrag
+    >
+      <el-tabs v-model="activeName">
+        <el-tab-pane label="基本信息" name="1">
+          <el-form
+            :model="formData"
+            disabled
+            ref="formData"
+            :inline="true"
+            @keyup.enter.native="nextStep()"
+            label-width="110px"
+            size="small"
+          >
+            <el-row>
+              <el-col :span="8">
+                <el-form-item label="机构名称" prop="pdeptId">
+                  <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
+                    style="width: 200px"
+                    :options="ztreeNodes"
+                    v-model="formData.deptId"
+                    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="id">
+                  <el-input v-model="formData.id" disabled></el-input>
+                </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>
+              </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="name">
+                  <el-input v-model="formData.name"></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"
+                    autocomplete="new-password"
+                    show-password
+                  ></el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="状态" prop="status">
+                  <el-select
+                    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">
+                <el-form-item label="角色" prop="roleId">
+                  <el-select
+                    style="width: 200px"
+                    v-model="formData.roleId"
+                    placeholder="请选择"
+                    disabled
+                  >
+                    <el-option
+                      v-for="val in roles"
+                      :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="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-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-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
+            >
+            <el-button size="small" type="primary" @click="nextStep('3')"
+              >下一步</el-button
+            >
+          </div>
+        </el-tab-pane>
+        <el-tab-pane label="影像资料" name="3">
+          <el-form
+            :model="formDataDetail"
+            ref="formDataDetail"
+            :inline="true"
+            label-width="130px"
+            size="small"
+          >
+            <peopleImage :dataForm="dataForm" :carfrontImg="true" :dialogVisible="dialogVisible"></peopleImage>
+          </el-form>
+          <div style="text-align: right">
+            <el-button size="small" type="primary" @click="nextStep('2')"
+              >上一步</el-button
+            >
+            <el-button
+               v-show="dialogTitle == '审核代理人'"
+              size="mini"
+              type="primary"
+              style="background-color: #0ec216; border: 1px solid #0ec216"
+              @click="submitForm(1)"
+              >审核通过</el-button
+            >
+            <el-button
+               v-show="dialogTitle == '审核代理人'"
+              size="mini"
+              type="danger"
+              style="background-color: #de504c; border: 1px solid #de504c"
+              @click="submitForm(2)"
+              >审核驳回</el-button
+            >
+            <el-button size="small" type="primary" @click="closeDialog"
+              >取消</el-button
+            >
+          </div>
+        </el-tab-pane>
+      </el-tabs>
+    </el-dialog>
+    
+    <!-- 驳回理由 -->
+    <el-dialog title="驳回" width="40%" :visible.sync="showRemark"  @close="closeDialogOut">
+      <el-form>
+        <el-form-item label="备注" prop="remark">
+          <el-input style="width: 30vw;" v-model="formDataDetail.remark" type="textarea"
+            :autosize="{ minRows: 4, maxRows: 6 }" placeholder="请输入内容" prop="remark" maxlength="200"
+            show-word-limit></el-input>
+        </el-form-item>
+      </el-form>
+      <span slot="footer">
+        <el-button type="primary" @click="handleSubOut">确定</el-button>
+        <el-button @click="closeDialogOut">取消</el-button>
+      </span>
+    </el-dialog>
+
+
+  </div>
+</template>
+
+<script>
+import tree from "@/components/ztree.vue"; // 机构树组件
+import KtCommonTable from "@/views/Core/KtCommonTable.vue"; //表格组件
+import peopleImage from "@/components/PeopleImage/index.vue"; //影像组件
+import userDetail from '@/components/UserDetail/index.vue'    // 详情信息
+import mixa from '../mixin' 
+const mixin = new mixa({
+  treeTypeNum:1 //树分类过滤参数
+})
+export default {
+  components: {
+    tree,
+    KtCommonTable,
+    peopleImage,
+    userDetail
+  },
+  mixins: [mixin], 
+  data() {
+    return {
+      showRemark: false,    // 驳回弹窗
+      activeName: "1",
+      pageData: {
+        pageNum: 1,
+        pageSize: 20,
+        deptId: JSON.parse(localStorage.getItem("user_data")).deptId,
+        userId: "",
+        realName: "",
+        mobile: "",
+      },
+      formData: {},
+      formDataRules: {
+        remark: [
+          { required: true, message: "请填写驳回原因", trigger: "blur" },
+        ],
+      },
+      formDataDetail: {},
+      filterObject: {},
+      peopleid: "",
+      peopledeptid: "",
+      recommenderList: [],
+      teamleadername: "",
+      teamleaderid: "",
+      // 右侧列表查询数据Start
+      queryFrom: {},
+      pageResult: {},
+      columns: [
+        // 数据列
+        { prop: "deptId", label: "部门编码", minWidth: 80, sortable: false },
+        {
+          prop: "pdeptName",
+          label: "机构名称",
+          minWidth: 120,
+          sortable: false,
+        },
+
+        { prop: "deptName", label: "部门名称", minWidth: 80, sortable: false },
+
+        { prop: "userId", label: "工号", minWidth: 80, sortable: false },
+        { prop: "name", label: "姓名", minWidth: 120, sortable: false },
+        {
+          prop: "sex",
+          label: "性别",
+          minWidth: 50,
+          sortable: false,
+        },
+        { prop: "mobile", label: "联系电话", minWidth: 100, sortable: false },
+        {
+          prop: "roleId",
+          label: "角色",
+          minWidth: 80,
+          sortable: false,
+        },
+        {
+          prop: "status",
+          label: "状态",
+          minWidth: 50,
+          sortable: false,
+        },
+      ],
+      dialogTitle: "",
+      dialogVisible: false, // 新增编辑界面是否显示
+      departmentList: [], // 选中公司的所有部门的集合
+      deptInfo: {}, //选中机构的基本信息
+      option: [], //机构列表
+      //影像资料
+      dataForm: {
+        SFZ_01: "",
+        SFZ_02: "",
+        Z6Z_00: "",
+        LD_00: "",
+        YP_00: "",
+        DX_00: "",
+      },
+      //影像上传列表
+      imagesIdList:[],
+    };
+  },
+  created() {
+    this.findPage();
+  },
+  methods: {
+    handleSubOut() {
+      if(!this.formDataDetail.remark){
+          this.$message.error('请在详细信息填写驳回原因')
+          return
+        }
+        this.$refs.formDataDetail.validate(valid => {
+          if (valid) {
+            this.$api.user
+              .getApprovalNotPass({ userId: this.formData.id, reason: this.formDataDetail.remark })
+              .then(result => {
+                if (result.code == 200 && result.data) {
+                  this.$message({
+                    message: "审核已驳回",
+                    type: "success"
+                  });
+                  this.findPage();
+                  this.closeDialogOut()
+                  this.dialogVisible = false;
+                }
+              });
+          }
+        });
+    },
+    closeDialogOut() {
+      this.showRemark = false
+    },
+    handleDialogBefore(done) {
+      // 退出对话框之前确认提示
+      var that = this;
+      this.$confirm("确认关闭?")
+        .then((_) => {
+          done();
+        })
+        .catch((_) => {});
+    },
+    // 查询Start
+    queryStaffInfo() {
+      this.pageData.realName = this.queryFrom.name;
+      this.pageData.mobile = this.queryFrom.mobile;
+      this.pageData.userId = this.queryFrom.userId;
+      this.pageData.status = this.queryFrom.status;
+      this.findPage();
+    },
+    onZTreeClick: function (evt, treeId, treeNode) {
+      // 点击事件
+      this.currentTreeNode = evt;
+      this.pageData.deptId = this.currentTreeNode.id;
+      this.pageData.pageNum = 1;
+      this.findPage();
+      this.formData.deptId = [];
+      this.platform(treeId);
+    },
+    platform(array) {
+      if (!array.parent) {
+        return;
+      }
+      this.formData.deptId.unshift(array.data.id);
+      this.platform(array.parent);
+    },
+
+    // 右侧列表的方法Start
+    findPage(data) {
+      // 获取分页数据
+      if (data && data.pageRequest) {
+        this.pageData.pageNum = data.pageRequest.pageNum;
+        this.pageData.pageSize = data.pageRequest.pageSize;
+      }
+      let dto = {
+        deptId: this.pageData.deptId,
+        mobile: this.pageData.mobile,
+        name: this.pageData.realName,
+        userId: this.pageData.userId,
+        status: this.pageData.status,
+        agentFlag: "1",
+        roleId: "21",
+      };
+      this.$api.user
+        .findUserList({
+          dto,
+          pageNum: this.pageData.pageNum,
+          pageSize: this.pageData.pageSize,
+        })
+        .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
+          });
+          let datas = {
+            content: res.data.records,
+            pageNum: res.data.current,
+            pageSize: res.data.size,
+            totalPages: res.data.pages,
+            totalSize: res.data.total
+          }
+          this.pageResult = datas;
+        });
+    },
+    closeDialog() {
+      this.$refs["formData"].resetFields();
+      for (let key in this.formData) {
+        this.formData[key] = "";
+      }
+      this.dialogVisible = false;
+    },
+    // 下一步
+    nextStep(num) {
+      this.$refs.formData.validate((valid) => {
+        if (valid) {
+          this.activeName = num;
+        }
+      });
+    },
+    handleTableEdit1(params) {
+      this.dataForm = {
+        SFZ_01: "",
+        SFZ_02: "",
+        Z6Z_00: "",
+        LD_00: "",
+        YP_00: "",
+        DX_00: "",
+        LZ_01: ""
+      };
+      this.$api.user.getUserDatail(params.row.userId).then((res) => {
+        if (res.code == 200) {
+          res.data.sysUser.status += ''
+          if(res.data.esmUserImageVo.length > 0) {
+            res.data.esmUserImageVo.forEach(item=>{
+              item.path = process.env.BASE_URL + item.path
+              this.dataForm[item.type]=item.path
+            })
+          }
+          this.formData = res.data.sysUser
+          this.formDataDetail = res.data.sysUserInfo ? res.data.sysUserInfo : {}
+        }
+      })
+      this.dialogTitle = "详情";
+      this.dialogVisible = true;
+    },
+    handleTableEdit(params) {
+      this.dataForm = {
+        SFZ_01: "",
+        SFZ_02: "",
+        Z6Z_00: "",
+        LD_00: "",
+        YP_00: "",
+        DX_00: "",
+      }
+      this.$api.user.getUserDatail(params.row.userId).then((res) => {
+        if (res.code == 200) {
+          res.data.sysUser.status += "";
+          this.formData = res.data.sysUser;
+          if(res.data.esmUserImageVo.length > 0) {
+            res.data.esmUserImageVo.forEach(item=>{
+              item.path = process.env.BASE_URL + item.path
+              this.dataForm[item.type]=item.path
+            })
+          }
+          this.formDataDetail = res.data.sysUserInfo
+            ? res.data.sysUserInfo
+            : {};
+        }
+      });
+      this.dialogTitle = "审核代理人";
+      this.dialogVisible = true;
+    },
+    //联级选择器触发事件
+    handleChange(val) {
+      if (val.length !== 0) {
+        this.formData.deptId = val.at(-1);
+      }
+    },
+    submitForm(type) {
+      if (type == 1) {
+        this.$api.user.getApprovalPass(this.formData.id).then((result) => {
+          if (result.code == 200 && result.data) {
+            this.$message({
+              message: "审核已通过",
+              type: "success",
+            });
+            this.findPage();
+            this.dialogVisible = false;
+          }
+        });
+      } else {
+        this.showRemark = true
+        return
+        if(!this.formDataDetail.remark){
+          this.$message.error('请在详细信息填写驳回原因')
+          return
+        }
+        this.$refs.formDataDetail.validate((valid) => {
+          if (valid) {
+            this.$api.user
+              .getApprovalNotPass({
+                userId: this.formData.id,
+                reason: this.formDataDetail.remark,
+              })
+              .then((result) => {
+                if (result.code == 200 && result.data) {
+                  this.$message({
+                    message: "审核已驳回",
+                    type: "success",
+                  });
+                  this.findPage();
+                  this.dialogVisible = false;
+                }
+              });
+          }
+        });
+      }
+    },
+  },
+};
+</script>
+
+<style scoped>
+.el-divider--horizontal {
+  margin: 4px 0;
+}
+
+/* 顶部查询条件样式Start */
+.queryFrom .el-row {
+  margin: 10px 0px;
+}
+
+.queryFrom .el-form-item {
+  margin-bottom: 0px;
+}
+
+.queryFrom .queryButton .el-form-item__content {
+  margin-left: 0px !important;
+}
+</style>
+
+<style lang="scss" scoped>
+>>> .el-tabs__header {
+  margin-right: 50px !important;
+}
+>>> .el-tabs__item:hover{
+  color: #2D4D89;
+}
+>>> .el-tabs__item.is-active {
+  color: #FFF;
+  background: #2D4D89;
+  transition: all ease .5s;
+}
+>>> .el-tabs__active-bar {
+  background-color: #2D4D89;
+}
+>>> .el-tabs__item.is-top:nth-child(2) {
+  padding-left: 20px !important;
+}
+>>> .el-tabs--top .el-tabs__item.is-top:last-child {
+  padding-right: 20px !important;
+}
+
+.el-tabs {
+  >>> .el-input__inner:focus, >>> .el-select .el-input.is-focus .el-input__inner {
+    border-color: #2D4D89;
+  }
+  .el-button--primary, .el-button--primary:focus {
+    background-color: #2D4D89;
+    border-color: #2D4D89;
+  }
+}
+.select-prop {
+  .el-select-dropdown__item.selected, .el-date-table td.available:hover {
+    color: #2D4D89;
+  }
+  .el-date-table td.current:not(.disabled) span  {
+    background-color: #2D4D89;
+  }
+}
+</style>

+ 292 - 16
src/views/PeopleManage/Player/PlayerManage.vue

@@ -84,7 +84,25 @@
           >
             <el-row>
               <el-col :span="8">
-                <el-form-item label="机构名称" prop="deptId">
+                <el-form-item label="机构名称">
+                  <el-cascader
+                    style="width: 200px"
+                    :options="ztreeNodes"
+                    v-model="formData.pdeptId"
+                    clearable
+                    disabled
+                    :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
                     style="width: 200px"
                     :options="ztreeNodes"
@@ -111,8 +129,14 @@
                   <el-input v-model="formData.mobile"></el-input>
                 </el-form-item>
               </el-col>
-            </el-row>
-            <el-row>
+              <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="name">
                   <el-input v-model="formData.name"></el-input>
@@ -137,7 +161,7 @@
               <el-col :span="8">
                 <el-form-item label="状态" prop="status">
                   <el-select
-                    :disabled="dialogTitle == '新增渠道信息'"
+                    disabled
                     style="width: 200px"
                     v-model="formData.status"
                     placeholder="请选择"
@@ -151,8 +175,6 @@
                   </el-select>
                 </el-form-item>
               </el-col>
-            </el-row>
-            <el-row>
               <el-col :span="8">
                 <el-form-item label="角色" prop="roleId">
                   <el-select
@@ -176,6 +198,7 @@
                     style="width: 200px"
                     v-model="formData.positionId"
                     placeholder="请选择"
+                    popper-class="select-prop"
                   >
                     <el-option
                       v-for="val in postOption"
@@ -192,6 +215,7 @@
                     style="width: 200px"
                     v-model="formData.leaderId"
                     placeholder="请选择"
+                    popper-class="select-prop"
                   >
                     <el-option
                       v-for="val in leaderOptions"
@@ -202,8 +226,6 @@
                   </el-select>
                 </el-form-item>
               </el-col>
-            </el-row>
-            <el-row>
               <el-col :span="8">
                 <el-form-item label="领导人工号" prop="leaderName">
                   <el-input v-model="formData.leaderId" disabled></el-input>
@@ -216,6 +238,7 @@
                     clearable
                     v-model="formData.referrerId"
                     placeholder="请选择"
+                    popper-class="select-prop"
                   >
                     <el-option
                       v-for="val in recommenderOptions"
@@ -231,16 +254,45 @@
                   <el-input v-model="formData.referrerId" disabled></el-input>
                 </el-form-item>
               </el-col>
+              <el-col :span="16">
+                <el-form-item label="驳回信息" prop="referrerName">
+                  <el-input type="textarea" v-model="formData.approvalOpinion" disabled></el-input>
+                </el-form-item>
+              </el-col>
             </el-row>
           </el-form>
+          <div style="text-align: right">
+            <el-button size="small" type="primary" @click="activeName = '3'"
+              >下一步</el-button
+            >
+          </div>
+        </el-tab-pane>
+        
+        <el-tab-pane label="影像资料" name="3">
+          <el-form
+            :model="formDataDetail"
+            ref="formDataDetail"
+            :inline="true"
+            label-width="130px"
+            size="small"
+          >
+            <peopleImage
+              :dataForm="dataForm"
+              :imagesIdList="imagesIdList"
+              :dialogVisible="dialogVisible"
+            ></peopleImage>
+          </el-form>
           <div style="text-align: right">
             <el-button
               size="small"
               type="primary"
-              style="background-color: #ffc000; border: 1px solid #ffc000"
+              style="background-color: #EAEDF1; border: 1px solid #EAEDF1; color: #2D4D89;"
               @click="closeDialog"
               >取消</el-button
             >
+            <el-button size="small" type="primary" @click="activeName = '1'"
+              >上一步</el-button
+            >
             <el-button size="small" type="primary" @click="submitForm"
               >提交</el-button
             >
@@ -248,6 +300,40 @@
         </el-tab-pane>
       </el-tabs>
     </el-dialog>
+
+    
+    <el-dialog title="离司" width="40%" :visible.sync="showOut"  @close="closeDialogOut">
+      <div>
+        <el-form>
+          <el-form-item label="离职时间" prop="logoutTime">
+            <el-date-picker
+              value-format="yyyy-MM-dd"
+              style="width: 200px"
+              v-model="logoutTime"
+              type="date"
+              placeholder="选择日期"
+            ></el-date-picker>
+            </el-form-item>
+            <el-form-item label="离职表:" style="width: 50%">
+            <el-upload
+              class="avatar-uploader"
+              action=""
+              name="LZ_01"
+              :show-file-list="false"
+              :http-request="httpRequest"
+              :before-upload="beforeAvatarUpload"
+            >
+              <img v-if="logoutImg" :src="logoutImg" class="avatar" />
+              <i v-else class="el-icon-plus avatar-uploader-icon"></i>
+            </el-upload>
+          </el-form-item>
+        </el-form>
+      </div>
+      <span slot="footer">
+        <el-button type="primary" @click="handleSubOut">确定</el-button>
+        <el-button @click="closeDialogOut">取消</el-button>
+      </span>
+    </el-dialog>
   </div>
 </template>
 
@@ -256,6 +342,7 @@ import KtButton from "@/views/Core/KtButton"; // 按钮权限组件
 import tree from "@/components/ztree.vue"; // 机构树组件
 import templateTable from "../../../components/TemplateTable/index.vue";
 import peopleImage from "@/components/PeopleImage/index.vue";
+import { validateSfz } from "../../../utils/validate.js";
 import mixa from "../mixin";
 const mixin = new mixa({
   treeTypeNum: 1,
@@ -270,6 +357,11 @@ export default {
   mixins: [mixin],
   data() {
     return {
+      showOut: false,     // 离司
+      logoutTime: '', // 离司 离职时间
+      logoutImg: '',   // 离司 图片
+      logoutImgId: '',
+      lineId: '',
       activeName: "1", //弹框tab索引
       isShow: true, //密码是否显示
       formList: [
@@ -344,6 +436,7 @@ export default {
         loading: true,
         isPaginationShow: true,
         isShowIndex: true,
+        operationWidth: "150",
         optBtns: [
           {
             type: "primary",
@@ -354,6 +447,18 @@ export default {
               return this.handleTableEdit(row);
             },
           },
+          {
+            type: "primary",
+            label: "离司",
+            perm: "sys:agent:edit",
+            icon: "fa fa-edit",
+            hide: (row) => {
+              return row.status == '正常'
+            },
+            click: (row, index) => {
+              return this.handleOut(row);
+            },
+          },
         ],
       },
       recommenderOptions: [],
@@ -377,6 +482,9 @@ export default {
             trigger: "blur",
           },
         ],
+        identity: [{ required: true, message: "请填写身份证号" },
+          { validator: validateSfz },
+        ],
         name: [{ required: true, message: "请填写名称", trigger: "blur" }],
         password: [{ required: true, message: "请填写密码", trigger: "blur" }],
         status: [{ required: true, message: "请选择状态", trigger: "change" }],
@@ -397,6 +505,19 @@ export default {
       dialogPassword: true, //密码是否显示明文
       leaderOptions: [],
       searchLeaderOptions: [],
+      //影像资料
+      dataForm: {
+        SFZ_01: "",
+        SFZ_02: "",
+        Z6Z_00: "",
+        LD_00: "",
+        YP_00: "",
+        DX_00: "",
+        LZ_01: ""
+      },
+      //影像上传列表
+      imagesIdList: [],
+      formDataDetail: {},
     };
   },
   created() {
@@ -409,6 +530,74 @@ export default {
     },
   },
   methods: {
+    handleSubOut() {
+      if (this.logoutTime == '') {
+        this.$message.error('请选择时间')
+        return
+      }
+      if (this.logoutImgId == '') {
+        this.$message.error('请上传离职表')
+        return
+      }
+      let subData = {
+        esmUserImageVo: [{
+          imageId: this.logoutImgId,
+          type: 'LZ_01'
+        }],
+        sysUser: {id: this.lineId, logoutTime: this.logoutTime},
+        sysUserInfo: {},
+      }
+      this.$api.user.departApply(subData).then((res) => {
+        if (res.code == 200) {
+          this.$message.success(res.msg)
+          this.findPage()
+          this.closeDialogOut()
+        } else {
+          this.$message.error(res.msg)
+        }
+      })
+    },
+    // 上传图片的方法Start
+    beforeAvatarUpload(file) {
+      const isJPG = file.type === "image/jpeg" || file.type === "image/png";
+      const isLt2M = file.size / 1024 / 1024 < 2;
+      if (!isJPG) {
+        this.$message.error("上传图片只能是 JPG 或者 PNG 格式!");
+      }
+      if (!isLt2M) {
+        this.$message.error("上传图片大小不能超过 2MB!");
+      }
+      return isJPG && isLt2M;
+    },
+    //上传影像
+    httpRequest(options) {
+      let file = options.file;
+      let filename = options.filename;
+      let reader = new FileReader();
+      if (file) {
+        reader.readAsDataURL(file);
+      }
+      reader.onload = () => {
+        let base64Str = reader.result;
+        this.logoutImg = base64Str;
+      };
+      const params = new FormData(); // 声明formData数据类型
+      params.append("multipartFile", file);
+      params.append("type", "personnel");
+      this.$api.letter.uploadFile(params).then(res => {
+        if (res.code == "200") {
+          this.logoutImgId = res.data.id
+        }
+      });
+    },
+    closeDialogOut() {
+      this.showOut = false
+    },
+    // 离司
+    handleOut(data) {
+      this.lineId = data.userId
+      this.showOut = true
+    },
     searchLeaderFun() {
       this.$api.user.findHxUserList().then((res) => {
         this.leaderOptions = res.data;
@@ -517,7 +706,9 @@ export default {
         LD_00: "",
         YP_00: "",
         DX_00: "",
+        LZ_01: ""
       };
+      this.imagesIdList = [];
       this.activeName = "1";
       let res = await this.$api.user.getUserDatail(params.userId);
       if (res.code == 200) {
@@ -530,6 +721,17 @@ export default {
         //   this.leaderOptions = res.data;
         // });
         res.data.sysUser.status += "";
+        if (res.data.esmUserImageVo && res.data.esmUserImageVo.length > 0) {
+          this.imagesIdList = res.data.esmUserImageVo.map((item) => {
+            item.path = process.env.BASE_URL + item.path;
+            this.dataForm[item.type] = item.path;
+            return {
+              imageId: item.imageId,
+              type: item.type,
+            };
+          });
+        }
+        this.formDataDetail = res.data.sysUserInfo ? res.data.sysUserInfo : {};
         this.formData = res.data.sysUser;
         this.dialogTitle = "编辑渠道信息";
         this.dialogVisible = true;
@@ -563,17 +765,17 @@ export default {
         this.$message.info("请选择第六级机构");
         return;
       }
-      let statusArr = this.user_statusoptions.filter(
-        (item) => item.label == "正常"
-      );
+      // let statusArr = this.user_statusoptions.filter(
+      //   (item) => item.label == "正常"
+      // );
       this.dialogPassword = true;
       this.formData = {
         roleId: "19",
-        status: "",
+        status: "2",
         referrerId: "",
         deptId: this.deptId,
       };
-      this.formData.status = statusArr.length > 0 ? statusArr[0].value : "";
+      // this.formData.status = statusArr.length > 0 ? statusArr[0].value : "";
       this.activeName = "1";
       this.dialogTitle = "新增渠道信息";
       this.dialogVisible = true;
@@ -607,7 +809,9 @@ export default {
             }
             if (this.dialogTitle == "新增渠道信息") {
               this.$api.user
-                .saveUserInfo({ sysUser: this.formData })
+                .saveUserInfo({ sysUser: this.formData,
+                  esmUserImageVo: this.imagesIdList,
+                 })
                 .then((res) => {
                   if (res.code == 200) {
                     this.$message({
@@ -627,7 +831,9 @@ export default {
                 });
             } else {
               this.$api.user
-                .updateUserInfo(this.formData.id, { sysUser: this.formData })
+                .updateUserInfo(this.formData.id, { sysUser: this.formData,
+                  esmUserImageVo: this.imagesIdList,
+                 })
                 .then((res) => {
                   if (res.code == 200) {
                     this.$message({
@@ -686,4 +892,74 @@ export default {
   top: 10px;
   text-align: center;
 }
+.avatar-uploader .el-upload {
+  border: 1px dashed #d9d9d9;
+  border-radius: 6px;
+  cursor: pointer;
+  position: relative;
+  overflow: hidden;
+}
+.avatar-uploader .el-upload:hover {
+  border-color: #409eff;
+}
+.avatar-uploader-icon {
+  font-size: 28px;
+  color: #8c939d;
+  width: 100px;
+  height: 100px;
+  line-height: 100px;
+  text-align: center;
+  border: 1px dashed #d9d9d9;
+}
+
+.avatar {
+  border: 1px dashed #d9d9d9;
+  padding: 5px;
+  border-radius: 6px;
+  width: 100px;
+  height: 100px;
+  display: block;
+}
+</style>
+
+<style lang="scss" scoped>
+>>> .el-tabs__header {
+  margin-right: 50px !important;
+}
+>>> .el-tabs__item:hover{
+  color: #2D4D89;
+}
+>>> .el-tabs__item.is-active {
+  color: #FFF;
+  background: #2D4D89;
+  transition: all ease .5s;
+}
+>>> .el-tabs__active-bar {
+  background-color: #2D4D89;
+  transform: translateX(0) !important;
+}
+>>> .el-tabs__item.is-top:nth-child(2) {
+  padding-left: 20px !important;
+}
+>>> .el-tabs--top .el-tabs__item.is-top:last-child {
+  padding-right: 20px !important;
+}
+
+.el-tabs {
+  >>> .el-input__inner:focus, >>> .el-select .el-input.is-focus .el-input__inner {
+    border-color: #2D4D89;
+  }
+  .el-button--primary, .el-button--primary:focus {
+    background-color: #2D4D89;
+    border-color: #2D4D89;
+  }
+}
+.select-prop {
+  .el-select-dropdown__item.selected, .el-date-table td.available:hover {
+    color: #2D4D89;
+  }
+  .el-date-table td.current:not(.disabled) span  {
+    background-color: #2D4D89;
+  }
+}
 </style>

+ 399 - 99
src/views/PeopleManage/Player/PlayerManageteam.vue

@@ -77,7 +77,25 @@
           >
             <el-row>
               <el-col :span="8">
-                <el-form-item label="机构名称" prop="deptId">
+                <el-form-item label="机构名称">
+                  <el-cascader
+                    style="width: 200px"
+                    :options="ztreeNodes"
+                    v-model="formData.pdeptId"
+                    clearable
+                    disabled
+                    :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
                     style="width: 200px"
                     :options="ztreeNodes"
@@ -104,18 +122,13 @@
                   <el-input v-model="formData.mobile"></el-input>
                 </el-form-item>
               </el-col>
-            </el-row>
-            <el-row>
               <el-col :span="8">
                 <el-form-item label="身份证号" prop="identity">
                   <el-input
                     v-model="formData.identity"
                     :maxlength="18"
-                    @change="
-                      iden;
-                      tityChange;
-                    "
-                  ></el-input>
+                    ></el-input>
+                    <!-- @change="identityChange" -->
                 </el-form-item>
               </el-col>
               <el-col :span="8">
@@ -138,11 +151,10 @@
                   <!-- show-password></el-input> -->
                 </el-form-item>
               </el-col>
-            </el-row>
-            <el-row>
               <el-col :span="8">
                 <el-form-item label="状态" prop="status">
                   <el-select
+                    disabled
                     style="width: 200px"
                     @change="statusChange"
                     v-model="formData.status"
@@ -180,6 +192,7 @@
                     style="width: 200px"
                     v-model="formData.positionId"
                     placeholder="请选择"
+                    popper-class="select-prop"
                   >
                     <el-option
                       v-for="val in postOption"
@@ -190,8 +203,6 @@
                   </el-select>
                 </el-form-item>
               </el-col>
-            </el-row>
-            <el-row>
               <el-col :span="8">
                 <el-form-item label="领导人" prop="leaderId">
                   <el-select
@@ -200,6 +211,7 @@
                     filterable
                     v-model="formData.leaderId"
                     placeholder="请选择"
+                    popper-class="select-prop"
                   >
                     <el-option
                       v-for="val in leaderOptions"
@@ -215,18 +227,6 @@
                   <el-input v-model="formData.leaderId" disabled></el-input>
                 </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-row>
           </el-form>
           <div style="text-align: right">
@@ -236,7 +236,8 @@
           </div>
         </el-tab-pane>
         <el-tab-pane label="详细信息" name="2">
-          <el-form
+          <userDetail :formData="formData" :formDataDetail="formDataDetail"></userDetail>
+          <!-- <el-form
             :model="formDataDetail"
             :rules="formDataRulesDetail"
             ref="formDataDetail"
@@ -246,13 +247,8 @@
           >
             <el-row>
               <el-col :span="8">
-                <el-form-item label="开户账号" prop="accountno">
-                  <el-input v-model="formDataDetail.accountno"></el-input>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="开户行" prop="bankName">
-                  <el-input v-model="formDataDetail.bankName"></el-input>
+                <el-form-item label="姓名" prop="name">
+                  <el-input v-model="formData.name"></el-input>
                 </el-form-item>
               </el-col>
               <el-col :span="8">
@@ -271,8 +267,6 @@
                   </el-select>
                 </el-form-item>
               </el-col>
-            </el-row>
-            <el-row>
               <el-col :span="8">
                 <el-form-item label="出生日期" prop="birthday">
                   <el-date-picker
@@ -284,29 +278,6 @@
                   </el-date-picker>
                 </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="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-row>
-            <el-row>
               <el-col :span="8">
                 <el-form-item label="民族" prop="nations">
                   <el-select
@@ -340,14 +311,14 @@
                 </el-form-item>
               </el-col>
               <el-col :span="8">
-                <el-form-item label="健康状况" prop="health">
+                <el-form-item label="婚姻状况" prop="maritalStatus">
                   <el-select
+                    v-model="formDataDetail.maritalStatus"
+                    placeholder="请选择婚姻状况"
                     style="width: 200px"
-                    v-model="formDataDetail.health"
-                    placeholder="请选择"
                   >
                     <el-option
-                      v-for="val in healthOption"
+                      v-for="val in maritalStatusOption"
                       :key="val.value"
                       :label="val.label"
                       :value="val.value"
@@ -355,19 +326,11 @@
                   </el-select>
                 </el-form-item>
               </el-col>
-            </el-row>
-            <el-row>
-              <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="居住地址" prop="address">
-                  <el-input v-model="formDataDetail.address"></el-input>
+                <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
@@ -384,8 +347,22 @@
                   </el-select>
                 </el-form-item>
               </el-col>
-            </el-row>
-            <el-row>
+              <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
@@ -418,31 +395,31 @@
                   </el-date-picker>
                 </el-form-item>
               </el-col>
-            </el-row>
-            <el-row>
               <el-col :span="8">
-                <el-form-item label="原工作单位" prop="formerEmployer">
-                  <el-input v-model="formDataDetail.formerEmployer"></el-input>
+                <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="entryTime">
-                  <el-date-picker
+                <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.entryTime"
-                    type="date"
-                    placeholder="选择日期"
-                  >
-                  </el-date-picker>
+                    v-model="formDataDetail.email"
+                  ></el-input>
                 </el-form-item>
               </el-col>
               <el-col :span="8">
                 <el-form-item
-                  label="代理人资格证号"
-                  prop="agentQualificationCode"
+                  label="紧急联系人姓名"
+                  prop="emergencyContactName"
                 >
                   <el-input
-                    v-model="formDataDetail.agentQualificationCode"
+                    v-model="formDataDetail.emergencyContactName"
                   ></el-input>
                 </el-form-item>
               </el-col>
@@ -453,25 +430,123 @@
                   ></el-input>
                 </el-form-item>
               </el-col>
-            </el-row>
-            <el-row>
+              <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="emergencyContactName"
+                  label="代理人资格证号"
+                  prop="agentQualificationCode"
                 >
                   <el-input
-                    v-model="formDataDetail.emergencyContactName"
+                    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
+            >
+            <el-button size="small" type="primary" @click="activeName = '3'"
+              >下一步</el-button
+            >
+          </div>
+        </el-tab-pane>
+        
+        <el-tab-pane label="影像资料" name="3">
+          <el-form
+            :model="formDataDetail"
+            ref="formDataDetail"
+            :inline="true"
+            label-width="130px"
+            size="small"
+          >
+            <peopleImage
+              :dataForm="dataForm"
+              :imagesIdList="imagesIdList"
+              :dialogVisible="dialogVisible"
+            ></peopleImage>
           </el-form>
           <div style="text-align: right">
             <el-button
               size="small"
               type="primary"
-              style="background-color: #ffc000; border: 1px solid #ffc000"
+              style="background-color: #EAEDF1; border: 1px solid #EAEDF1; color: #2D4D89;"
               @click="closeDialog"
               >取消</el-button
             >
@@ -485,6 +560,41 @@
         </el-tab-pane>
       </el-tabs>
     </el-dialog>
+
+    
+    <el-dialog title="离司" width="40%" :visible.sync="showOut"  @close="closeDialogOut">
+      <div>
+        <el-form>
+          <el-form-item label="离职时间" prop="logoutTime">
+            <el-date-picker
+              value-format="yyyy-MM-dd"
+              style="width: 200px"
+              v-model="logoutTime"
+              type="date"
+              placeholder="选择日期"
+            ></el-date-picker>
+            </el-form-item>
+            <el-form-item label="离职表:" style="width: 50%">
+            <el-upload
+              class="avatar-uploader"
+              action=""
+              name="LZ_01"
+              :show-file-list="false"
+              :http-request="httpRequest"
+              :before-upload="beforeAvatarUpload"
+            >
+              <img v-if="logoutImg" :src="logoutImg" class="avatar" />
+              <i v-else class="el-icon-plus avatar-uploader-icon"></i>
+            </el-upload>
+          </el-form-item>
+        </el-form>
+      </div>
+      <span slot="footer">
+        <el-button type="primary" @click="handleSubOut">确定</el-button>
+        <el-button @click="closeDialogOut">取消</el-button>
+      </span>
+    </el-dialog>
+
   </div>
 </template>
 
@@ -493,6 +603,8 @@ import KtButton from "@/views/Core/KtButton"; // 按钮权限组件
 import tree from "@/components/ztree.vue"; // 机构树组件
 import templateTable from "../../../components/TemplateTable/index.vue";
 import peopleImage from "@/components/PeopleImage/index.vue";
+import userDetail from '@/components/UserDetail/index.vue'    // 详情信息
+import { validateSfz } from "../../../utils/validate.js";
 import mixa from "../mixin";
 const mixin = new mixa({
   treeTypeNum: 1, //树分类过滤参数
@@ -503,10 +615,28 @@ export default {
     tree,
     templateTable,
     peopleImage,
+    userDetail
   },
   mixins: [mixin],
   data() {
     return {
+      //影像资料
+      dataForm: {
+        SFZ_01: "",
+        SFZ_02: "",
+        Z6Z_00: "",
+        LD_00: "",
+        YP_00: "",
+        DX_00: "",
+        LZ_01: ""
+      },
+      //影像上传列表
+      imagesIdList: [],
+      showOut: false,     // 离司
+      logoutTime: '', // 离司 离职时间
+      logoutImg: '',   // 离司 图片
+      logoutImgId: '',
+      lineId: '',
       searchLeaderOptions: [],
       leaderOptions: [],
       activeName: "1", //弹框tab索引
@@ -574,6 +704,7 @@ export default {
         loading: true,
         isPaginationShow: true,
         isShowIndex: true,
+        operationWidth: "150",
         optBtns: [
           {
             type: "primary",
@@ -584,6 +715,18 @@ export default {
               return this.handleTableEdit(row);
             },
           },
+          {
+            type: "primary",
+            label: "离司",
+            perm: "sys:agent:edit",
+            icon: "fa fa-edit",
+            hide: (row) => {
+              return row.status == '正常'
+            },
+            click: (row, index) => {
+              return this.handleOut(row);
+            },
+          },
         ],
       },
       recommenderOptions: [],
@@ -607,6 +750,9 @@ export default {
             trigger: "blur",
           },
         ],
+        identity: [{ required: true, message: "请填写身份证号" },
+          { validator: validateSfz },
+        ],
         name: [{ required: true, message: "请填写名称", trigger: "blur" }],
         password: [{ required: true, message: "请填写密码", trigger: "blur" }],
         status: [{ required: true, message: "请选择状态", trigger: "change" }],
@@ -627,7 +773,9 @@ export default {
       option: [], //机构列表
       dialogPassword: true, //密码是否显示明文
       // postOption:[],
-      formDataDetail: {},
+      formDataDetail: {
+        birthday: ''
+      },
       formDataRulesDetail: {},
     };
   },
@@ -642,6 +790,74 @@ export default {
     },
   },
   methods: {
+    handleSubOut() {
+      if (this.logoutTime == '') {
+        this.$message.error('请选择时间')
+        return
+      }
+      if (this.logoutImgId == '') {
+        this.$message.error('请上传离职表')
+        return
+      }
+      let subData = {
+        esmUserImageVo: [{
+          imageId: this.logoutImgId,
+          type: 'LZ_01'
+        }],
+        sysUser: {id: this.lineId, logoutTime: this.logoutTime},
+        sysUserInfo: {},
+      }
+      this.$api.user.departApply(subData).then((res) => {
+        if (res.code == 200) {
+          this.$message.success(res.msg)
+          this.findPage()
+          this.closeDialogOut()
+        } else {
+          this.$message.error(res.msg)
+        }
+      })
+    },
+    // 上传图片的方法Start
+    beforeAvatarUpload(file) {
+      const isJPG = file.type === "image/jpeg" || file.type === "image/png";
+      const isLt2M = file.size / 1024 / 1024 < 2;
+      if (!isJPG) {
+        this.$message.error("上传图片只能是 JPG 或者 PNG 格式!");
+      }
+      if (!isLt2M) {
+        this.$message.error("上传图片大小不能超过 2MB!");
+      }
+      return isJPG && isLt2M;
+    },
+    //上传影像
+    httpRequest(options) {
+      let file = options.file;
+      let filename = options.filename;
+      let reader = new FileReader();
+      if (file) {
+        reader.readAsDataURL(file);
+      }
+      reader.onload = () => {
+        let base64Str = reader.result;
+        this.logoutImg = base64Str;
+      };
+      const params = new FormData(); // 声明formData数据类型
+      params.append("multipartFile", file);
+      params.append("type", "personnel");
+      this.$api.letter.uploadFile(params).then(res => {
+        if (res.code == "200") {
+          this.logoutImgId = res.data.id
+        }
+      });
+    },
+    closeDialogOut() {
+      this.showOut = false
+    },
+    // 离司
+    handleOut(data) {
+      this.lineId = data.userId
+      this.showOut = true
+    },
     searchLeaderFun() {
       this.$api.user.findHxUserList().then((res) => {
         this.leaderOptions = res.data;
@@ -683,6 +899,7 @@ export default {
       }
     },
     identityChange(iden) {
+      return
       let sex = null;
       let birth = null;
       let myDate = new Date();
@@ -810,7 +1027,9 @@ export default {
         LD_00: "",
         YP_00: "",
         DX_00: "",
+        LZ_01: ""
       };
+      this.imagesIdList = [];
       this.activeName = "1";
       let res = await this.$api.user.getUserDatail(params.userId);
       if (res.code == 200) {
@@ -818,6 +1037,16 @@ export default {
         //   this.leaderOptions = res.data;
         // });
         res.data.sysUser.status += "";
+        if (res.data.esmUserImageVo.length > 0) {
+          this.imagesIdList = res.data.esmUserImageVo.map((item) => {
+            item.path = process.env.BASE_URL + item.path;
+            this.dataForm[item.type] = item.path;
+            return {
+              imageId: item.imageId,
+              type: item.type,
+            };
+          });
+        }
         this.formData = res.data.sysUser;
         this.dialogTitle = "编辑渠道信息";
         this.formDataDetail = res.data.sysUserInfo ? res.data.sysUserInfo : {};
@@ -852,17 +1081,17 @@ export default {
         this.$message.info("请选择第六级机构");
         return;
       }
-      let statusArr = this.user_statusoptions.filter(
-        (item) => item.label == "正常"
-      );
+      // let statusArr = this.user_statusoptions.filter(
+      //   (item) => item.label == "正常"
+      // );
       this.dialogPassword = true;
       this.formData = {
         roleId: "21",
-        status: "",
+        status: "2",
         referrerId: "",
         deptId: this.deptId,
       };
-      this.formData.status = statusArr.length > 0 ? statusArr[0].value : "";
+      // this.formData.status = statusArr.length > 0 ? statusArr[0].value : "";
       this.activeName = "1";
       this.dialogTitle = "新增渠道信息";
       this.formDataDetail = {};
@@ -898,6 +1127,7 @@ export default {
             if (this.dialogTitle == "新增渠道信息") {
               this.$api.user
                 .saveUserInfo({
+                  esmUserImageVo: this.imagesIdList,
                   sysUser: this.formData,
                   sysUserInfo: this.formDataDetail,
                 })
@@ -921,6 +1151,7 @@ export default {
             } else {
               this.$api.user
                 .updateUserInfo(this.formData.id, {
+                  esmUserImageVo: this.imagesIdList,
                   sysUser: this.formData,
                   sysUserInfo: this.formDataDetail,
                 })
@@ -982,4 +1213,73 @@ export default {
   top: 10px;
   text-align: center;
 }
+.avatar-uploader .el-upload {
+  border: 1px dashed #d9d9d9;
+  border-radius: 6px;
+  cursor: pointer;
+  position: relative;
+  overflow: hidden;
+}
+.avatar-uploader .el-upload:hover {
+  border-color: #409eff;
+}
+.avatar-uploader-icon {
+  font-size: 28px;
+  color: #8c939d;
+  width: 100px;
+  height: 100px;
+  line-height: 100px;
+  text-align: center;
+  border: 1px dashed #d9d9d9;
+}
+
+.avatar {
+  border: 1px dashed #d9d9d9;
+  padding: 5px;
+  border-radius: 6px;
+  width: 100px;
+  height: 100px;
+  display: block;
+}
+</style>
+
+<style lang="scss" scoped>
+>>> .el-tabs__header {
+  margin-right: 50px !important;
+}
+>>> .el-tabs__item:hover{
+  color: #2D4D89;
+}
+>>> .el-tabs__item.is-active {
+  color: #FFF;
+  background: #2D4D89;
+  transition: all ease .5s;
+}
+>>> .el-tabs__active-bar {
+  background-color: #2D4D89;
+}
+>>> .el-tabs__item.is-top:nth-child(2) {
+  padding-left: 20px !important;
+}
+>>> .el-tabs--top .el-tabs__item.is-top:last-child {
+  padding-right: 20px !important;
+}
+
+.el-tabs {
+  >>> .el-input__inner:focus, >>> .el-select .el-input.is-focus .el-input__inner {
+    border-color: #2D4D89;
+  }
+  .el-button--primary, .el-button--primary:focus {
+    background-color: #2D4D89;
+    border-color: #2D4D89;
+  }
+}
+.select-prop {
+  .el-select-dropdown__item.selected, .el-date-table td.available:hover {
+    color: #2D4D89;
+  }
+  .el-date-table td.current:not(.disabled) span  {
+    background-color: #2D4D89;
+  }
+}
 </style>

+ 175 - 57
src/views/PeopleManage/Staff/StaffExamine.vue

@@ -33,18 +33,19 @@
                     <el-input clearable size="small" placeholder="手机号" v-model="queryFrom.mobile"></el-input>
                   </el-form-item>
                 </el-col>
-                <!-- <el-col :span="5">
+                <el-col :span="5">
                   <el-form-item label="状态">
                     <el-select
-              style="width:200px"
-              clearable 
-                v-model="queryFrom.status"
-                placeholder="请选择"
-              >
-              <el-option v-for="val in user_statusoptions" :label="val.label" :value="val.value" :key="val.id"></el-option>
-            </el-select>
+                      style="width:200px"
+                      clearable 
+                      v-model="queryFrom.status"
+                      placeholder="请选择"
+                      size="small"
+                      >
+                      <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>
                 <el-col :span="4">
                   <el-form-item label="">
                     <el-button size="small" type="primary" @click="queryStaffInfo">查询</el-button>
@@ -54,8 +55,14 @@
             </el-form>
           </el-row>
 
-          <kt-common-table permsButton1="sys:backline:examine" :data="pageResult" :columns="columns" :button1Name="'审核'"
-            :showBatchDelete="false" @findPage="findPage" @handleButton1="handleTableEdit">
+          <kt-common-table permsButton1="sys:backline:examine" :data="pageResult" :columns="columns" :button3Name="'详情'"
+            :button7Name="'审核'"
+            :button7Status="'离司待审核'"
+            @handleButton7="handleTableEdit"
+            :button8Name="'审核'"
+            :button8Status="'入司待审核'"
+            @handleButton8="handleTableEdit"
+            :showBatchDelete="false" @findPage="findPage" @handleButton3="handleTableEdit1">
           </kt-common-table>
 
         </SplitArea>
@@ -69,6 +76,16 @@
           <el-form :model="formData" disabled ref="formData" :inline="true" @keyup.enter.native="nextStep('1')"
             label-width="110px" size="small">
             <el-row>
+              <el-col :span="8">
+                <el-form-item label="机构部门">
+                  <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 style="width:200px" :options="ztreeNodes" v-model="formData.deptId" clearable
@@ -89,8 +106,6 @@
                   <el-input v-model="formData.mobile"></el-input>
                 </el-form-item>
               </el-col>
-            </el-row>
-              <el-row>
               <el-col :span="8">
                 <el-form-item label="身份证号" prop="identity">
                   <el-input v-model="formData.identity" :maxlength="18"></el-input>
@@ -107,8 +122,6 @@
                     show-password></el-input>
                 </el-form-item>
               </el-col>
-            </el-row>
-              <el-row>
               <el-col :span="8">
                 <el-form-item label="状态" prop="status">
                   <el-select style="width:200px" v-model="formData.status" placeholder="请选择">
@@ -138,17 +151,13 @@
           </div>
         </el-tab-pane>
         <el-tab-pane label="详细信息" name="2">
-          <el-form :model="formDataDetail" :rules="formDataRules" ref="formDataDetail" :inline="true"
+          <userDetail :formData="formData" :formDataDetail="formDataDetail" 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="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 label="姓名" prop="name">
+                  <el-input v-model="formData.name"></el-input>
                 </el-form-item>
               </el-col>
               <el-col :span="8">
@@ -158,8 +167,6 @@
                   </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"
@@ -167,6 +174,24 @@
                   </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>
@@ -291,15 +316,13 @@
                   <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 style="width: 30vw;" v-model="formDataDetail.remark" type="textarea"
-                    :autosize="{ minRows: 4, maxRows: 6 }" placeholder="请输入内容" prop="remark" maxlength="200"
-                    show-word-limit></el-input>
+              <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>
+          </el-form> -->
           <div style="text-align: right;">
             <div style="text-align: right;">
               <el-button size="small" type="primary" @click="nextStep('1')">上一步</el-button>
@@ -313,9 +336,9 @@
            <peopleImage :dataForm="dataForm" :dialogVisible="dialogVisible" :carfrontImg="true"></peopleImage>
           </el-form>
           <div style="text-align: right;">
-            <el-button size="mini" type="primary" style="background-color: #0ec216; border: 1px solid #0ec216"
+            <el-button v-show="dialogTitle == '审核后线人员'" size="mini" type="primary" style="background-color: #0ec216; border: 1px solid #0ec216"
               @click="submitForm(1)">审核通过</el-button>
-            <el-button size="mini" type="danger" style="background-color: #de504c; border: 1px solid #de504c"
+            <el-button v-show="dialogTitle == '审核后线人员'" size="mini" type="danger" style="background-color: #de504c; border: 1px solid #de504c"
               @click="submitForm(2)">审核驳回</el-button>
             <el-button size="small" type="primary" @click="closeDialog">取消</el-button>
             <div style="text-align: right;">
@@ -323,9 +346,22 @@
           </div>
         </el-tab-pane>
       </el-tabs>
-
     </el-dialog>
 
+    <!-- 驳回理由 -->
+    <el-dialog title="驳回" width="40%" :visible.sync="showRemark"  @close="closeDialogOut">
+      <el-form>
+        <el-form-item label="备注" prop="remark">
+          <el-input style="width: 30vw;" v-model="formDataDetail.remark" type="textarea"
+            :autosize="{ minRows: 4, maxRows: 6 }" placeholder="请输入内容" prop="remark" maxlength="200"
+            show-word-limit></el-input>
+        </el-form-item>
+      </el-form>
+      <span slot="footer">
+        <el-button type="primary" @click="handleSubOut">确定</el-button>
+        <el-button @click="closeDialogOut">取消</el-button>
+      </span>
+    </el-dialog>
 
   </div>
 </template>
@@ -334,6 +370,7 @@
 import tree from "@/components/ztree.vue"; // 机构树组件
 import KtCommonTable from "@/views/Core/KtCommonTable.vue"; //表格组件
 import peopleImage from '@/components/PeopleImage/index.vue' //影像组件
+import userDetail from '@/components/UserDetail/index.vue'    // 详情信息
 import mixa from '../mixin' 
 const mixin = new mixa({
   treeTypeNum:null
@@ -343,11 +380,13 @@ export default {
   components: {
     tree,
     KtCommonTable,
-    peopleImage
+    peopleImage,
+    userDetail
   },
   mixins: [mixin], 
   data() {
     return {
+      showRemark: false,    // 驳回弹窗
       activeName: '1',
       //56个民族
       //影像资料
@@ -358,6 +397,7 @@ export default {
         LD_00: "",
         YP_00: "",
         DX_00: "",
+        LZ_01: "",
       },
       pageData: {
         pageNum: 1,
@@ -420,14 +460,41 @@ export default {
       departmentList: [], // 选中公司的所有部门的集合
       deptInfo: {}, //选中机构的基本信息
       option: [], //机构列表
+      user_statusoptions: [],
     };
   },
   created() {
-
+    this.getDictItems("user_status");
   },
   mounted() {
   },
   methods: {
+    handleSubOut() {
+      if(!this.formDataDetail.remark){
+          this.$message.error('请在详细信息填写驳回原因')
+          return
+        }
+        this.$refs.formDataDetail.validate(valid => {
+          if (valid) {
+            this.$api.user
+              .getApprovalNotPass({ userId: this.formData.id, reason: this.formDataDetail.remark })
+              .then(result => {
+                if (result.code == 200 && result.data) {
+                  this.$message({
+                    message: "审核已驳回",
+                    type: "success"
+                  });
+                  this.findPage();
+                  this.closeDialogOut()
+                  this.dialogVisible = false;
+                }
+              });
+          }
+        });
+    },
+    closeDialogOut() {
+      this.showRemark = false
+    },
     // 下一步
     nextStep(num) {
       this.$refs.formData.validate((valid) => {
@@ -441,6 +508,7 @@ export default {
       this.pageData.realName = this.queryFrom.name
       this.pageData.mobile = this.queryFrom.mobile
       this.pageData.userId = this.queryFrom.userId;
+      this.pageData.status = this.queryFrom.status;
       this.findPage();
     },
     changeTreeWidth(widthVal) {
@@ -488,7 +556,7 @@ export default {
         mobile: this.pageData.mobile,
         name: this.pageData.realName,
         userId: this.pageData.userId,
-        status: '2',
+        status: this.pageData.status,
         roleId: '22',
       }
       this.$api.user
@@ -525,6 +593,32 @@ export default {
           this[typeName + "options"] = [];
         });
     },
+    handleTableEdit1(params) {
+      this.dataForm = {
+        SFZ_01: "",
+        SFZ_02: "",
+        Z6Z_00: "",
+        LD_00: "",
+        YP_00: "",
+        DX_00: "",
+        LZ_01: ""
+      };
+      this.$api.user.getUserDatail(params.row.userId).then((res) => {
+        if (res.code == 200) {
+          res.data.sysUser.status += ''
+          if(res.data.esmUserImageVo.length > 0) {
+            res.data.esmUserImageVo.forEach(item=>{
+              item.path = process.env.BASE_URL + item.path
+              this.dataForm[item.type]=item.path
+            })
+          }
+          this.formData = res.data.sysUser
+          this.formDataDetail = res.data.sysUserInfo ? res.data.sysUserInfo : {}
+        }
+      })
+      this.dialogTitle = "详情";
+      this.dialogVisible = true;
+    },
     //审核按钮事件
     handleTableEdit(params) {
       this.dataForm = {
@@ -534,6 +628,7 @@ export default {
         LD_00: "",
         YP_00: "",
         DX_00: "",
+        LZ_01: ""
       };
       this.$api.user.getUserDatail(params.row.userId).then((res) => {
         if (res.code == 200) {
@@ -571,26 +666,8 @@ export default {
           }
         });
       } else {
-        if(!this.formDataDetail.remark){
-          this.$message.error('请在详细信息填写驳回原因')
-          return
-        }
-        this.$refs.formDataDetail.validate(valid => {
-          if (valid) {
-            this.$api.user
-              .getApprovalNotPass({ userId: this.formData.id, reason: this.formDataDetail.remark })
-              .then(result => {
-                if (result.code == 200 && result.data) {
-                  this.$message({
-                    message: "审核已驳回",
-                    type: "success"
-                  });
-                  this.findPage();
-                  this.dialogVisible = false;
-                }
-              });
-          }
-        });
+        this.showRemark = true
+        return
       }
     }
   },
@@ -615,3 +692,44 @@ export default {
   margin-left: 0px !important;
 }
 </style>
+
+<style lang="scss" scoped>
+>>> .el-tabs__header {
+  margin-right: 50px !important;
+}
+>>> .el-tabs__item:hover{
+  color: #2D4D89;
+}
+>>> .el-tabs__item.is-active {
+  color: #FFF;
+  background: #2D4D89;
+  transition: all ease .5s;
+}
+>>> .el-tabs__active-bar {
+  background-color: #2D4D89;
+}
+>>> .el-tabs__item.is-top:nth-child(2) {
+  padding-left: 20px !important;
+}
+>>> .el-tabs--top .el-tabs__item.is-top:last-child {
+  padding-right: 20px !important;
+}
+
+.el-tabs {
+  >>> .el-input__inner:focus, >>> .el-select .el-input.is-focus .el-input__inner {
+    border-color: #2D4D89;
+  }
+  .el-button--primary, .el-button--primary:focus {
+    background-color: #2D4D89;
+    border-color: #2D4D89;
+  }
+}
+.select-prop {
+  .el-select-dropdown__item.selected, .el-date-table td.available:hover {
+    color: #2D4D89;
+  }
+  .el-date-table td.current:not(.disabled) span  {
+    background-color: #2D4D89;
+  }
+}
+</style>

+ 226 - 276
src/views/PeopleManage/Staff/StaffManage.vue

@@ -40,13 +40,13 @@
               ref="queryFormRef"
               :model="pageData"
               label-width="80px"
-              size="small"
             >
               <el-row>
                 <el-col :span="5">
                   <el-form-item label="工号">
                     <el-input
                       clearable
+                      size="small"
                       placeholder="工号"
                       v-model="pageData.userId"
                     ></el-input>
@@ -56,6 +56,7 @@
                   <el-form-item label="姓名">
                     <el-input
                       clearable
+                      size="small"
                       placeholder="姓名"
                       v-model="pageData.name"
                     ></el-input>
@@ -65,6 +66,7 @@
                   <el-form-item label="手机号">
                     <el-input
                       clearable
+                      size="small"
                       placeholder="手机号"
                       v-model="pageData.mobile"
                     ></el-input>
@@ -73,10 +75,10 @@
                 <el-col :span="5">
                   <el-form-item label="状态">
                     <el-select
+                      size="small"
                       style="width: 200px"
                       clearable
                       v-model="pageData.status"
-                      placeholder="请选择"
                     >
                       <el-option
                         v-for="val in user_statusoptions"
@@ -96,6 +98,7 @@
                       filterable
                       v-model="pageData.leaderId"
                       placeholder="请选择"
+                      popper-class="select-prop"
                     >
                       <el-option
                         v-for="item in searchLeaderOptions"
@@ -110,6 +113,7 @@
                 <el-col :span="4">
                   <el-form-item label="">
                     <el-button type="primary" @click="queryStaffInfo"
+                      size="small"
                       >查询</el-button
                     >
                   </el-form-item>
@@ -126,6 +130,9 @@
             :showBatchDelete="false"
             @findPage="findPage"
             @handleEdit="handleTableEdit"
+            :button7Name="'离司'"
+            :button7Status="'正常'"
+            @handleButton7="handleButton7"
           >
           </kt-common-table>
         </SplitArea>
@@ -143,7 +150,7 @@
       @close="closeDialog"
       v-dialogDrag
     >
-      <el-tabs v-model="activeName" :before-leave="beforeTabLeave">
+      <el-tabs v-model="activeName" :before-leave="beforeTabLeave" >
         <el-tab-pane label="基本信息" name="1">
           <el-form
             :model="formData"
@@ -156,7 +163,26 @@
           >
             <el-row>
               <el-col :span="8">
-                <el-form-item label="机构名称" prop="deptId">
+                <el-form-item label="机构名称">
+                  <el-cascader
+                    style="width: 200px"
+                    :options="ztreeNodes"
+                    v-model="formData.pdeptId"
+                    clearable
+                    disabled
+                    :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
                     style="width: 200px"
                     :options="ztreeNodes"
@@ -178,13 +204,13 @@
                   <el-input v-model="formData.id" disabled></el-input>
                 </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>
               </el-col>
-            </el-row>
-            <el-row>
               <el-col :span="8">
                 <el-form-item label="身份证号" prop="identity">
                   <el-input
@@ -199,6 +225,8 @@
                   <el-input v-model="formData.name"></el-input>
                 </el-form-item>
               </el-col>
+            </el-row>
+            <el-row>
               <el-col :span="8">
                 <el-form-item label="密码" prop="password">
                   <el-input
@@ -214,11 +242,9 @@
                     show-password></el-input> -->
                 </el-form-item>
               </el-col>
-            </el-row>
-            <el-row>
               <el-col :span="8">
                 <el-form-item label="状态" prop="status">
-                  <el-select
+                  <el-select disabled
                     @change="statusChange"
                     style="width: 200px"
                     v-model="formData.status"
@@ -256,7 +282,9 @@
                     style="width: 200px"
                     v-model="formData.positionId"
                     placeholder="请选择"
-                  >
+                    clearable
+                    popper-class="select-prop"
+              >
                     <el-option
                       v-for="val in postOption"
                       :label="val.postName"
@@ -274,7 +302,8 @@
                     filterable
                     v-model="formData.leaderId"
                     placeholder="请选择"
-                  >
+                    popper-class="select-prop"
+              >
                     <el-option
                       v-for="val in leaderOptions"
                       :label="val.name"
@@ -289,18 +318,6 @@
                   <el-input v-model="formData.leaderId" disabled></el-input>
                 </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-row>
           </el-form>
           <div style="text-align: right">
@@ -310,252 +327,8 @@
           </div>
         </el-tab-pane>
         <el-tab-pane label="详细信息" name="2">
-          <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="accountno">
-                  <el-input
-                    style="width: 200px"
-                    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"
-                    v-model="formDataDetail.bankName"
-                  ></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-row>
-            <el-row>
-              <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="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="maritalStatus">
-                  <el-select
-                    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
-                    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 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
-                    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
-                    style="width: 200px"
-                    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"
-                    v-model="formDataDetail.address"
-                  ></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 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
-                    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
-                    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-row>
-            <el-row>
-              <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="agentQualificationCode"
-                >
-                  <el-input
-                    style="width: 200px"
-                    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"
-                    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"
-                    v-model="formDataDetail.emergencyContactName"
-                  ></el-input>
-                </el-form-item>
-              </el-col>
-            </el-row>
-          </el-form>
+          <userDetail :formData="formData" :formDataDetail="formDataDetail"></userDetail>
+          
           <div style="text-align: right">
             <el-button size="small" type="primary" @click="activeName = '1'"
               >上一步</el-button
@@ -583,7 +356,7 @@
             <el-button
               size="small"
               type="primary"
-              style="background-color: #ffc000; border: 1px solid #ffc000"
+              style="background-color: #EAEDF1; border: 1px solid #EAEDF1; color: #2D4D89;"
               @click="closeDialog"
               >取消</el-button
             >
@@ -597,6 +370,39 @@
         </el-tab-pane>
       </el-tabs>
     </el-dialog>
+
+    <el-dialog title="离司" width="40%" :visible.sync="showOut"  @close="closeDialogOut">
+      <div>
+        <el-form>
+          <el-form-item label="离职时间" prop="logoutTime">
+            <el-date-picker
+              value-format="yyyy-MM-dd"
+              style="width: 200px"
+              v-model="logoutTime"
+              type="date"
+              placeholder="选择日期"
+            ></el-date-picker>
+            </el-form-item>
+            <el-form-item label="离职表:" style="width: 50%">
+            <el-upload
+              class="avatar-uploader"
+              action=""
+              name="LZ_01"
+              :show-file-list="false"
+              :http-request="httpRequest"
+              :before-upload="beforeAvatarUpload"
+            >
+              <img v-if="logoutImg" :src="logoutImg" class="avatar" />
+              <i v-else class="el-icon-plus avatar-uploader-icon"></i>
+            </el-upload>
+          </el-form-item>
+        </el-form>
+      </div>
+      <span slot="footer">
+        <el-button type="primary" @click="handleSubOut">确定</el-button>
+        <el-button @click="closeDialogOut">取消</el-button>
+      </span>
+    </el-dialog>
   </div>
 </template>
 
@@ -606,6 +412,7 @@ import tree from "@/components/ztree.vue"; // 机构树组件
 import KtCommonTable from "@/views/Core/KtCommonTable.vue"; //表格组件
 import { validateSfz } from "../../../utils/validate.js";
 import peopleImage from "@/components/PeopleImage/index.vue"; //影像组件
+import userDetail from '@/components/UserDetail/index.vue'    // 详情信息
 import mixa from "../mixin";
 const mixin = new mixa({
   treeTypeNum: null,
@@ -616,10 +423,15 @@ export default {
     tree,
     KtCommonTable,
     peopleImage,
+    userDetail
   },
   mixins: [mixin],
   data() {
     return {
+      logoutTime: '', // 离司 离职时间
+      logoutImg: '',   // 离司 图片
+      logoutImgId: '',
+      lineId: '',
       activeName: "1",
       isShow: true,
       //56个民族
@@ -682,7 +494,7 @@ export default {
         { prop: "deptId", label: "部门编码", minWidth: 80, sortable: false },
         {
           prop: "pdeptName",
-          label: "机构名称",
+          label: "机构部门",
           minWidth: 120,
           sortable: false,
         },
@@ -729,24 +541,23 @@ export default {
         LD_00: "",
         YP_00: "",
         DX_00: "",
+        LZ_01: ""
       },
       //影像上传列表
       imagesIdList: [],
       dialogPassword: false, //密码是否显示明文
       leaderOptions: [],
       searchLeaderOptions: {},
+      user_statusoptions: [],
+      showOut: false,
     };
   },
   created() {
-    //获取所有下拉框数据(字典)
     // this.getDictItems("sex");
-    // this.getDictItems("user_status");
+    this.getDictItems("user_status");
     this.getFindRoleByUserId();
     this.searchLeaderFun();
   },
-  mounted() {
-    //用像素初始化左边的split的宽度
-  },
   watch: {
     containsSubDeptChecked() {
       // 监听是否包含下级
@@ -758,6 +569,73 @@ export default {
     },
   },
   methods: {
+    handleSubOut() {
+      if (this.logoutTime == '') {
+        this.$message.error('请选择时间')
+        return
+      }
+      if (this.logoutImgId == '') {
+        this.$message.error('请上传离职表')
+        return
+      }
+      let subData = {
+        esmUserImageVo: [{
+          imageId: this.logoutImgId,
+          type: 'LZ_01'
+        }],
+        sysUser: {id: this.lineId, logoutTime: this.logoutTime},
+        sysUserInfo: {},
+      }
+      this.$api.user.departApply(subData).then((res) => {
+        if (res.code == 200) {
+          this.$message.success(res.msg)
+          this.findPage()
+          this.closeDialogOut()
+        } else {
+          this.$message.error(res.msg)
+        }
+      })
+    },
+    // 上传图片的方法Start
+    beforeAvatarUpload(file) {
+      const isJPG = file.type === "image/jpeg" || file.type === "image/png";
+      const isLt2M = file.size / 1024 / 1024 < 2;
+      if (!isJPG) {
+        this.$message.error("上传图片只能是 JPG 或者 PNG 格式!");
+      }
+      if (!isLt2M) {
+        this.$message.error("上传图片大小不能超过 2MB!");
+      }
+      return isJPG && isLt2M;
+    },
+    //上传影像
+    httpRequest(options) {
+      let file = options.file;
+      let filename = options.filename;
+      let reader = new FileReader();
+      if (file) {
+        reader.readAsDataURL(file);
+      }
+      reader.onload = () => {
+        let base64Str = reader.result;
+        this.logoutImg = base64Str;
+      };
+      const params = new FormData(); // 声明formData数据类型
+      params.append("multipartFile", file);
+      params.append("type", "personnel");
+      this.$api.letter.uploadFile(params).then(res => {
+        if (res.code == "200") {
+          this.logoutImgId = res.data.id
+        }
+      });
+    },
+    closeDialogOut() {
+      this.showOut = false
+    },
+    handleButton7(data) {
+      this.lineId = data.row.userId
+      this.showOut = true
+    },
     searchLeaderFun() {
       this.$api.user.findHxUserList().then((res) => {
         this.leaderOptions = res.data;
@@ -933,6 +811,7 @@ export default {
         LD_00: "",
         YP_00: "",
         DX_00: "",
+        LZ_01: "",
       };
       this.imagesIdList = [];
       this.activeName = "1";
@@ -1179,4 +1058,75 @@ export default {
   top: 10px;
   text-align: center;
 }
+
+.avatar-uploader .el-upload {
+  border: 1px dashed #d9d9d9;
+  border-radius: 6px;
+  cursor: pointer;
+  position: relative;
+  overflow: hidden;
+}
+.avatar-uploader .el-upload:hover {
+  border-color: #409eff;
+}
+.avatar-uploader-icon {
+  font-size: 28px;
+  color: #8c939d;
+  width: 100px;
+  height: 100px;
+  line-height: 100px;
+  text-align: center;
+  border: 1px dashed #d9d9d9;
+}
+
+.avatar {
+  border: 1px dashed #d9d9d9;
+  padding: 5px;
+  border-radius: 6px;
+  width: 100px;
+  height: 100px;
+  display: block;
+  box-sizing: border-box;
+}
+</style>
+
+<style lang="scss" scoped>
+>>> .el-tabs__header {
+  margin-right: 50px !important;
+}
+>>> .el-tabs__item:hover{
+  color: #2D4D89;
+}
+>>> .el-tabs__item.is-active {
+  color: #FFF;
+  background: #2D4D89;
+  transition: all ease .5s;
+}
+>>> .el-tabs__active-bar {
+  background-color: #2D4D89;
+}
+>>> .el-tabs__item.is-top:nth-child(2) {
+  padding-left: 20px !important;
+}
+>>> .el-tabs--top .el-tabs__item.is-top:last-child {
+  padding-right: 20px !important;
+}
+
+.el-tabs {
+  >>> .el-input__inner:focus, >>> .el-select .el-input.is-focus .el-input__inner {
+    border-color: #2D4D89;
+  }
+  .el-button--primary, .el-button--primary:focus {
+    background-color: #2D4D89;
+    border-color: #2D4D89;
+  }
+}
+.select-prop {
+  .el-select-dropdown__item.selected, .el-date-table td.available:hover {
+    color: #2D4D89;
+  }
+  .el-date-table td.current:not(.disabled) span  {
+    background-color: #2D4D89;
+  }
+}
 </style>

+ 215 - 42
src/views/PeopleManage/TeamLeader/TeamLeaderExamine.vue

@@ -53,18 +53,19 @@
                     ></el-input>
                   </el-form-item>
                 </el-col>
-                <!-- <el-col :span="5">
+                <el-col :span="5">
                   <el-form-item label="状态">
                     <el-select
-              style="width:200px"
-              clearable 
-                v-model="queryFrom.status"
-                placeholder="请选择"
-              >
-              <el-option v-for="val in user_statusoptions" :label="val.label" :value="val.value" :key="val.id"></el-option>
-            </el-select>
+                      style="width:200px"
+                      clearable 
+                      v-model="queryFrom.status"
+                      placeholder="请选择"
+                      size="small"
+                      >
+                      <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>
                 <el-col :span="4">
                   <el-form-item label="">
                     <el-button
@@ -83,10 +84,16 @@
                permsButton1="sys:team:examine"
               :data="pageResult"
               :columns="columns"
-              :button1Name="'审核'"
               :showBatchDelete="false"
               @findPage="findPage"
-              @handleButton1="handleTableEdit"
+              @handleButton3="handleTableEdit1"
+              :button3Name="'详情'"
+              :button7Name="'审核'"
+              :button7Status="'离司待审核'"
+              @handleButton7="handleTableEdit"
+              :button8Name="'审核'"
+              :button8Status="'入司待审核'"
+              @handleButton8="handleTableEdit"
             >
             </kt-common-table>
          
@@ -102,6 +109,16 @@
           <el-form :model="formData" disabled  ref="formData" :inline="true" @keyup.enter.native="nextStep()"
             label-width="110px" size="small">
             <el-row>
+              <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 style="width:200px" :options="ztreeNodes" v-model="formData.deptId" clearable
@@ -122,8 +139,6 @@
                   <el-input v-model="formData.mobile"></el-input>
                 </el-form-item>
               </el-col>
-            </el-row>
-              <el-row>
               <el-col :span="8">
                 <el-form-item label="身份证号" prop="identity">
                   <el-input v-model="formData.identity" :maxlength="18"></el-input>
@@ -140,8 +155,6 @@
                     show-password></el-input>
                 </el-form-item>
               </el-col>
-            </el-row>
-              <el-row>
               <el-col :span="8">
                 <el-form-item label="状态" prop="status">
                   <el-select style="width:200px" v-model="formData.status" placeholder="请选择">
@@ -171,7 +184,8 @@
           </div>
         </el-tab-pane>
         <el-tab-pane label="详细信息" name="2">
-          <el-form :rules="formDataRules" :model="formDataDetail" ref="formDataDetail" :inline="true"
+          <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">
@@ -311,8 +325,9 @@
               <el-col :span="22">
             <el-form-item label="备注" prop="remark">
             <el-input
-            style="width: 30vw;"
-              v-model="formDataDetail.remark"
+              disabled
+              style="width: 30vw;"
+              v-model="formData.approvalOpinion"
               type="textarea"
               :autosize="{ minRows: 4, maxRows: 6 }"
               placeholder="请输入内容"
@@ -323,33 +338,59 @@
           </el-form-item>
           </el-col>
         </el-row>
-      </el-form>
-      <div style="text-align: right;">
-        <el-button
-          size="mini"
-          type="primary"
-          style="background-color: #0ec216; border: 1px solid #0ec216"
-          @click="submitForm(1)"
-          >审核通过</el-button
-        >
-        <el-button
-          size="mini"
-          type="danger"
-          style="background-color: #de504c; border: 1px solid #de504c"
-          @click="submitForm(2)"
-          >审核驳回</el-button
-        >
-        <el-button
-          size="small"
-          type="primary"
-          @click="closeDialog"
-          >取消</el-button
-        >
-      </div>
+      </el-form> -->
+          <div style="text-align: right;">
+            <el-button size="small" type="primary" @click="nextStep('1')">上一步</el-button>
+            <el-button size="small" type="primary" @click="nextStep('3')">下一步</el-button>
+          </div>
+        </el-tab-pane>
+        <el-tab-pane label="影像资料" name="3">
+          <el-form :model="formDataDetail" ref="formDataDetail" :inline="true"
+           label-width="130px" size="small">
+           <peopleImage :dataForm="dataForm" :dialogVisible="dialogVisible" :carfrontImg="true"></peopleImage>
+          </el-form>
+          <div style="text-align: right;">
+            <el-button
+              v-show="dialogTitle == '审核团队长'"
+              size="mini"
+              type="primary"
+              style="background-color: #0ec216; border: 1px solid #0ec216"
+              @click="submitForm(1)"
+              >审核通过</el-button
+            >
+            <el-button
+              v-show="dialogTitle == '审核团队长'"
+              size="mini"
+              type="danger"
+              style="background-color: #de504c; border: 1px solid #de504c"
+              @click="submitForm(2)"
+              >审核驳回</el-button
+            >
+            <el-button
+              size="small"
+              type="primary"
+              @click="closeDialog"
+              >取消</el-button
+            >
+          </div>
         </el-tab-pane>
       </el-tabs>
 
     </el-dialog>
+    <!-- 驳回理由 -->
+    <el-dialog title="驳回" width="40%" :visible.sync="showRemark"  @close="closeDialogOut">
+      <el-form>
+        <el-form-item label="备注" prop="remark">
+          <el-input style="width: 30vw;" v-model="formDataDetail.remark" type="textarea"
+            :autosize="{ minRows: 4, maxRows: 6 }" placeholder="请输入内容" prop="remark" maxlength="200"
+            show-word-limit></el-input>
+        </el-form-item>
+      </el-form>
+      <span slot="footer">
+        <el-button type="primary" @click="handleSubOut">确定</el-button>
+        <el-button @click="closeDialogOut">取消</el-button>
+      </span>
+    </el-dialog>
 
 
   </div>
@@ -358,6 +399,8 @@
 <script>
 import tree from "@/components/ztree.vue"; // 机构树组件
 import KtCommonTable from "@/views/Core/KtCommonTable.vue"; //表格组件
+import peopleImage from '@/components/PeopleImage/index.vue' //影像组件
+import userDetail from '@/components/UserDetail/index.vue'    // 详情信息
 import mixa from '../mixin' 
 const mixin = new mixa({
   treeTypeNum:2 //树分类过滤参数
@@ -366,10 +409,23 @@ export default {
   components: {
     tree,
     KtCommonTable,
+    peopleImage,
+    userDetail
   },
   mixins: [mixin], 
   data() {
     return {
+      showRemark: false,    // 驳回弹窗
+      //影像资料
+      dataForm: {
+        SFZ_01: "",
+        SFZ_02: "",
+        Z6Z_00: "",
+        LD_00: "",
+        YP_00: "",
+        DX_00: "",
+        LZ_01: "",
+      },
       activeName: '1',
       pageData:{
         pageNum: 1,
@@ -441,6 +497,35 @@ export default {
     })
   },
   methods: {
+    handleSubOut() {
+      if(!this.formDataDetail.remark){
+          this.$message.error('请在详细信息填写驳回原因')
+          return
+        }
+        this.$refs.formDataDetail.validate(valid => {
+          if (valid) {
+            this.$api.user
+              .getApprovalNotPass({ userId: this.formData.id, reason: this.formDataDetail.remark })
+              .then(result => {
+                if (result.code == 200 && result.data) {
+                  this.$message({
+                    message: "审核已驳回",
+                    type: "success"
+                  });
+                  this.findPage();
+                  this.closeDialogOut()
+                  this.dialogVisible = false;
+                }
+              });
+          }
+        });
+    },
+    closeDialogOut() {
+      this.showRemark = false
+    },
+    closeDialogOut() {
+      this.showRemark = false
+    },
     handleDialogBefore(done) {
       // 退出对话框之前确认提示
       var that = this;
@@ -455,6 +540,7 @@ export default {
         this.pageData.realName=this.queryFrom.name
         this.pageData.mobile=this.queryFrom.mobile
         this.pageData.userId = this.queryFrom.userId;
+        this.pageData.status = this.queryFrom.status;
       this.findPage();
     },
     onZTreeClick: function (evt, treeId, treeNode) {
@@ -487,7 +573,7 @@ export default {
         mobile:this.pageData.mobile,
         name:this.pageData.realName,
         userId:this.pageData.userId,
-        status:'2',
+        status: this.pageData.status,
         roleId:'21',
       }
       this.$api.user
@@ -524,13 +610,56 @@ export default {
           this[typeName + "options"] = [];
         });
     },
+    handleTableEdit1(params){
+      this.dataForm = {
+        SFZ_01: "",
+        SFZ_02: "",
+        Z6Z_00: "",
+        LD_00: "",
+        YP_00: "",
+        DX_00: "",
+        LZ_01: ""
+      };
+      this.$api.user.getUserDatail(params.row.userId).then((res) => {
+        if(res.code==200){
+          res.data.sysUser.status += ''
+          if(res.data.esmUserImageVo.length > 0) {
+            res.data.esmUserImageVo.forEach(item=>{
+              item.path = process.env.BASE_URL + item.path
+              this.dataForm[item.type]=item.path
+            })
+          }
+          this.formData = res.data.sysUser
+          this.formDataDetail = res.data.sysUserInfo?res.data.sysUserInfo:{}
+          this.formData.password = ''
+        }
+      })
+      this.dialogTitle = "详情";
+      this.dialogVisible = true;
+    },
     handleTableEdit(params){
+      this.dataForm = {
+        SFZ_01: "",
+        SFZ_02: "",
+        Z6Z_00: "",
+        LD_00: "",
+        YP_00: "",
+        DX_00: "",
+        LZ_01: ""
+      };
       this.$api.user.getUserDatail(params.row.userId).then((res) => {
         if(res.code==200){
           res.data.sysUser.status += ''
+          if(res.data.esmUserImageVo.length > 0) {
+            res.data.esmUserImageVo.forEach(item=>{
+              item.path = process.env.BASE_URL + item.path
+              this.dataForm[item.type]=item.path
+            })
+          }
         this.formData = res.data.sysUser
         this.formDataDetail = res.data.sysUserInfo?res.data.sysUserInfo:{}
         this.formData.password = ''
+        
         }
       })
       this.dialogTitle = "审核团队长";
@@ -579,6 +708,9 @@ export default {
           }
         });
       } else {
+        this.showRemark = true
+
+        return
         this.$refs.formDataDetail.validate(valid => {
           if (valid) {
             this.$api.user
@@ -619,3 +751,44 @@ export default {
   margin-left: 0px !important;
 }
 </style>
+
+<style lang="scss" scoped>
+>>> .el-tabs__header {
+  margin-right: 50px !important;
+}
+>>> .el-tabs__item:hover{
+  color: #2D4D89;
+}
+>>> .el-tabs__item.is-active {
+  color: #FFF;
+  background: #2D4D89;
+  transition: all ease .5s;
+}
+>>> .el-tabs__active-bar {
+  background-color: #2D4D89;
+}
+>>> .el-tabs__item.is-top:nth-child(2) {
+  padding-left: 20px !important;
+}
+>>> .el-tabs--top .el-tabs__item.is-top:last-child {
+  padding-right: 20px !important;
+}
+
+.el-tabs {
+  >>> .el-input__inner:focus, >>> .el-select .el-input.is-focus .el-input__inner {
+    border-color: #2D4D89;
+  }
+  .el-button--primary, .el-button--primary:focus {
+    background-color: #2D4D89;
+    border-color: #2D4D89;
+  }
+}
+.select-prop {
+  .el-select-dropdown__item.selected, .el-date-table td.available:hover {
+    color: #2D4D89;
+  }
+  .el-date-table td.current:not(.disabled) span  {
+    background-color: #2D4D89;
+  }
+}
+</style>

+ 407 - 103
src/views/PeopleManage/TeamLeader/TeamLeaderManage.vue

@@ -128,6 +128,9 @@
             :showBatchDelete="false"
             @findPage="findPage"
             @handleEdit="handleTableEdit"
+            :button7Name="'离司'"
+            :button7Status="'正常'"
+            @handleButton7="handleButton7"
           >
           </kt-common-table>
         </SplitArea>
@@ -159,7 +162,25 @@
           >
             <el-row>
               <el-col :span="8">
-                <el-form-item label="机构名称" prop="deptId">
+                <el-form-item label="机构名称">
+                  <el-cascader
+                    style="width: 200px"
+                    :options="ztreeNodes"
+                    v-model="formData.pdeptId"
+                    clearable
+                    disabled
+                    :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
                     style="width: 200px"
                     :options="ztreeNodes"
@@ -186,8 +207,6 @@
                   <el-input v-model="formData.mobile"></el-input>
                 </el-form-item>
               </el-col>
-            </el-row>
-            <el-row>
               <el-col :span="8">
                 <el-form-item label="身份证号" prop="identity">
                   <el-input
@@ -217,11 +236,10 @@
                   <!-- show-password></el-input> -->
                 </el-form-item>
               </el-col>
-            </el-row>
-            <el-row>
               <el-col :span="8">
                 <el-form-item label="状态" prop="status">
                   <el-select
+                    disabled
                     style="width: 200px"
                     @change="statusChange"
                     v-model="formData.status"
@@ -259,7 +277,8 @@
                     style="width: 200px"
                     v-model="formData.positionId"
                     placeholder="请选择"
-                  >
+                    popper-class="select-prop"
+                    >
                     <el-option
                       v-for="val in postOption"
                       :label="val.postName"
@@ -277,7 +296,8 @@
                     filterable
                     v-model="formData.leaderId"
                     placeholder="请选择"
-                  >
+                    popper-class="select-prop"
+                    >
                     <el-option
                       v-for="val in leaderOptions"
                       :label="val.name"
@@ -292,18 +312,6 @@
                   <el-input v-model="formData.leaderId" disabled></el-input>
                 </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-row>
           </el-form>
           <div style="text-align: right">
@@ -313,7 +321,8 @@
           </div>
         </el-tab-pane>
         <el-tab-pane label="详细信息" name="2">
-          <el-form
+          <userDetail :formData="formData" :formDataDetail="formDataDetail"></userDetail>
+          <!-- <el-form
             :model="formDataDetail"
             :rules="formDataRulesDetail"
             ref="formDataDetail"
@@ -323,19 +332,8 @@
           >
             <el-row>
               <el-col :span="8">
-                <el-form-item label="开户账号" prop="accountno">
-                  <el-input
-                    style="width: 200px"
-                    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"
-                    v-model="formDataDetail.bankName"
-                  ></el-input>
+                <el-form-item label="姓名" prop="name">
+                  <el-input v-model="formData.name"></el-input>
                 </el-form-item>
               </el-col>
               <el-col :span="8">
@@ -354,8 +352,6 @@
                   </el-select>
                 </el-form-item>
               </el-col>
-            </el-row>
-            <el-row>
               <el-col :span="8">
                 <el-form-item label="出生日期" prop="birthday">
                   <el-date-picker
@@ -367,32 +363,6 @@
                   </el-date-picker>
                 </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="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-row>
-            <el-row>
               <el-col :span="8">
                 <el-form-item label="民族" prop="nations">
                   <el-select
@@ -426,14 +396,14 @@
                 </el-form-item>
               </el-col>
               <el-col :span="8">
-                <el-form-item label="健康状况" prop="health">
+                <el-form-item label="婚姻状况" prop="maritalStatus">
                   <el-select
+                    v-model="formDataDetail.maritalStatus"
+                    placeholder="请选择婚姻状况"
                     style="width: 200px"
-                    v-model="formDataDetail.health"
-                    placeholder="请选择"
                   >
                     <el-option
-                      v-for="val in healthOption"
+                      v-for="val in maritalStatusOption"
                       :key="val.value"
                       :label="val.label"
                       :value="val.value"
@@ -441,34 +411,39 @@
                   </el-select>
                 </el-form-item>
               </el-col>
-            </el-row>
-            <el-row>
               <el-col :span="8">
-                <el-form-item label="邮政编码" prop="postalCode">
+                <el-form-item label="户籍" prop="koseki">
                   <el-input
                     style="width: 200px"
-                    v-model="formDataDetail.postalCode"
+                    v-model="formDataDetail.koseki"
                   ></el-input>
                 </el-form-item>
               </el-col>
               <el-col :span="8">
-                <el-form-item label="居住地址" prop="address">
-                  <el-input
+                <el-form-item label="血型" prop="bloodType">
+                  <el-select
                     style="width: 200px"
-                    v-model="formDataDetail.address"
-                  ></el-input>
+                    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="bloodType">
+                <el-form-item label="健康状况" prop="health">
                   <el-select
                     style="width: 200px"
-                    v-model="formDataDetail.bloodType"
+                    v-model="formDataDetail.health"
                     placeholder="请选择"
                   >
                     <el-option
-                      v-for="val in bloodOption"
+                      v-for="val in healthOption"
                       :key="val.value"
                       :label="val.label"
                       :value="val.value"
@@ -476,8 +451,6 @@
                   </el-select>
                 </el-form-item>
               </el-col>
-            </el-row>
-            <el-row>
               <el-col :span="8">
                 <el-form-item label="学历" prop="education">
                   <el-select
@@ -513,40 +486,38 @@
                   </el-date-picker>
                 </el-form-item>
               </el-col>
-            </el-row>
-            <el-row>
               <el-col :span="8">
-                <el-form-item label="原工作单位" prop="formerEmployer">
+                <el-form-item label="居住地址" prop="address">
                   <el-input
                     style="width: 200px"
-                    v-model="formDataDetail.formerEmployer"
+                    v-model="formDataDetail.address"
                   ></el-input>
                 </el-form-item>
               </el-col>
               <el-col :span="8">
-                <el-form-item label="入司时间" prop="entryTime">
-                  <el-date-picker
+                <el-form-item label="邮政编码" prop="postalCode">
+                  <el-input
                     style="width: 200px"
-                    v-model="formDataDetail.entryTime"
-                    type="date"
-                    placeholder="选择日期"
-                  >
-                  </el-date-picker>
+                    v-model="formDataDetail.postalCode"
+                  ></el-input>
                 </el-form-item>
               </el-col>
               <el-col :span="8">
-                <el-form-item
-                  label="代理人资格证号"
-                  prop="agentQualificationCode"
-                >
+                <el-form-item label="邮箱">
                   <el-input
                     style="width: 200px"
-                    v-model="formDataDetail.agentQualificationCode"
+                    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-row>
-            <el-row>
               <el-col :span="8">
                 <el-form-item label="紧急联系人电话" prop="emergencyContactTel">
                   <el-input
@@ -555,24 +526,110 @@
                   ></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="emergencyContactName"
+                  label="代理人资格证号"
+                  prop="agentQualificationCode"
                 >
                   <el-input
                     style="width: 200px"
-                    v-model="formDataDetail.emergencyContactName"
+                    v-model="formDataDetail.agentQualificationCode"
                   ></el-input>
                 </el-form-item>
               </el-col>
             </el-row>
-          </el-form>
+          </el-form> -->
           <div style="text-align: right">
+            <el-button size="small" type="primary" @click="activeName = '1'"
+              >上一步</el-button
+            >
+            <el-button size="small" type="primary" @click="activeName = '3'"
+              >下一步</el-button
+            >
+          </div>
+          <!-- <div style="text-align: right">
             <el-button
               size="small"
               type="primary"
-              style="background-color: #ffc000; border: 1px solid #ffc000"
+              style="background-color: #EAEDF1; border: 1px solid #EAEDF1; color: #2D4D89;"
               @click="closeDialog"
               >取消</el-button
             >
@@ -582,10 +639,75 @@
             <el-button size="small" type="primary" @click="submitForm"
               >提交</el-button
             >
+          </div> -->
+        </el-tab-pane>
+        <el-tab-pane label="影像资料" name="3">
+          <el-form
+            :model="formDataDetail"
+            ref="formDataDetail"
+            :inline="true"
+            label-width="130px"
+            size="small"
+          >
+            <peopleImage
+              :dataForm="dataForm"
+              :imagesIdList="imagesIdList"
+              :dialogVisible="dialogVisible"
+            ></peopleImage>
+          </el-form>
+          <div style="text-align: right">
+            <el-button
+              size="small"
+              type="primary"
+              style="background-color: #EAEDF1; border: 1px solid #EAEDF1; color: #2D4D89;"
+              @click="closeDialog"
+              >取消</el-button
+            >
+            <el-button size="small" type="primary" @click="activeName = '2'"
+              >上一步</el-button
+            >
+            <el-button size="small" type="primary" @click="submitForm"
+              >提交</el-button
+            >
           </div>
         </el-tab-pane>
       </el-tabs>
     </el-dialog>
+
+    
+    <el-dialog title="离司" width="40%" :visible.sync="showOut"  @close="closeDialogOut">
+      <div>
+        <el-form>
+          <el-form-item label="离职时间" prop="logoutTime">
+            <el-date-picker
+              value-format="yyyy-MM-dd"
+              style="width: 200px"
+              v-model="logoutTime"
+              type="date"
+              placeholder="选择日期"
+            ></el-date-picker>
+            </el-form-item>
+            <el-form-item label="离职表:" style="width: 50%">
+            <el-upload
+              class="avatar-uploader"
+              action=""
+              name="LZ_01"
+              :show-file-list="false"
+              :http-request="httpRequest"
+              :before-upload="beforeAvatarUpload"
+            >
+              <img v-if="logoutImg" :src="logoutImg" class="avatar" />
+              <i v-else class="el-icon-plus avatar-uploader-icon"></i>
+            </el-upload>
+          </el-form-item>
+        </el-form>
+      </div>
+      <span slot="footer">
+        <el-button type="primary" @click="handleSubOut">确定</el-button>
+        <el-button @click="closeDialogOut">取消</el-button>
+      </span>
+    </el-dialog>
+
   </div>
 </template>
 
@@ -593,7 +715,9 @@
 import KtButton from "@/views/Core/KtButton"; // 按钮权限组件
 import tree from "@/components/ztree.vue"; // 机构树组件
 import KtCommonTable from "@/views/Core/KtCommonTable.vue"; //表格组件
+import peopleImage from "@/components/PeopleImage/index.vue"; //影像组件
 import { validateSfz } from "../../../utils/validate.js";
+import userDetail from '@/components/UserDetail/index.vue'    // 详情信息
 import mixa from "../mixin";
 const mixin = new mixa({
   treeTypeNum: 2, //树分类过滤参数
@@ -603,10 +727,16 @@ export default {
     KtButton,
     tree,
     KtCommonTable,
+    userDetail,
+    peopleImage
   },
   mixins: [mixin],
   data() {
     return {
+      logoutTime: '', // 离司 离职时间
+      logoutImg: '',   // 离司 图片
+      logoutImgId: '',
+      lineId: '',
       leaderOptions: [],
       searchLeaderOptions: {},
       activeName: "1",
@@ -700,12 +830,93 @@ export default {
       deptInfo: {}, //选中机构的基本信息
       option: [], //机构列表
       dialogPassword: false, //密码是否明文
+      showOut: false,
+      //影像资料
+      dataForm: {
+        SFZ_01: "",
+        SFZ_02: "",
+        Z6Z_00: "",
+        LD_00: "",
+        YP_00: "",
+        DX_00: "",
+        LZ_01: ""
+      },
+      //影像上传列表
+      imagesIdList: [],
     };
   },
   created() {
     this.searchLeaderFun();
   },
   methods: {
+    
+    //上传影像
+    httpRequest(options) {
+      let file = options.file;
+      let filename = options.filename;
+      let reader = new FileReader();
+      if (file) {
+        reader.readAsDataURL(file);
+      }
+      reader.onload = () => {
+        let base64Str = reader.result;
+        this.logoutImg = base64Str;
+      };
+      const params = new FormData(); // 声明formData数据类型
+      params.append("multipartFile", file);
+      params.append("type", "personnel");
+      this.$api.letter.uploadFile(params).then(res => {
+        if (res.code == "200") {
+          this.logoutImgId = res.data.id
+        }
+      });
+    },
+    // 上传图片的方法Start
+    beforeAvatarUpload(file) {
+      const isJPG = file.type === "image/jpeg" || file.type === "image/png";
+      const isLt2M = file.size / 1024 / 1024 < 2;
+      if (!isJPG) {
+        this.$message.error("上传图片只能是 JPG 或者 PNG 格式!");
+      }
+      if (!isLt2M) {
+        this.$message.error("上传图片大小不能超过 2MB!");
+      }
+      return isJPG && isLt2M;
+    },
+    handleSubOut() {
+      if (this.logoutTime == '') {
+        this.$message.error('请选择时间')
+        return
+      }
+      if (this.logoutImgId == '') {
+        this.$message.error('请上传离职表')
+        return
+      }
+      let subData = {
+        esmUserImageVo: [{
+          imageId: this.logoutImgId,
+          type: 'LZ_01'
+        }],
+        sysUser: {id: this.lineId, logoutTime: this.logoutTime},
+        sysUserInfo: {},
+      }
+      this.$api.user.departApply(subData).then((res) => {
+        if (res.code == 200) {
+          this.$message.success(res.msg)
+          this.findPage()
+          this.closeDialogOut()
+        } else {
+          this.$message.error(res.msg)
+        }
+      })
+    },
+    closeDialogOut() {
+      this.showOut = false
+    },
+    handleButton7(data) {
+      this.lineId = data.row.userId
+      this.showOut = true
+    },
     searchLeaderFun() {
       this.$api.user.findHxUserList().then((res) => {
         this.leaderOptions = res.data;
@@ -875,6 +1086,17 @@ export default {
       });
     },
     async handleTableEdit(params) {
+      this.dataForm = {
+        SFZ_01: "",
+        SFZ_02: "",
+        Z6Z_00: "",
+        LD_00: "",
+        YP_00: "",
+        DX_00: "",
+        LZ_01: ""
+      };
+      this.imagesIdList = [];
+
       this.activeName = "1";
       let res = await this.$api.user.getUserDatail(params.row.userId);
       if (res.code == 200) {
@@ -893,6 +1115,16 @@ export default {
         } else {
           this.formDataRules.logoutTime = undefined;
         }
+        if (res.data.esmUserImageVo.length > 0) {
+          this.imagesIdList = res.data.esmUserImageVo.map((item) => {
+            item.path = process.env.BASE_URL + item.path;
+            this.dataForm[item.type] = item.path;
+            return {
+              imageId: item.imageId,
+              type: item.type,
+            };
+          });
+        }
         this.formDataDetail = res.data.sysUserInfo ? res.data.sysUserInfo : {};
         this.dialogTitle = "编辑团队长";
         this.dialogVisible = true;
@@ -940,7 +1172,7 @@ export default {
       // }
       this.formData = {
         roleId: "21",
-        status: "",
+        status: "2",
         deptId: this.deptId,
       };
       this.formDataDetail = {};
@@ -1022,6 +1254,7 @@ export default {
             if (this.dialogTitle == "新增团队长") {
               this.$api.user
                 .saveUserInfo({
+                  esmUserImageVo: this.imagesIdList,
                   sysUser: this.formData,
                   sysUserInfo: this.formDataDetail,
                 })
@@ -1045,6 +1278,7 @@ export default {
             } else {
               this.$api.user
                 .updateUserInfo(this.formData.id, {
+                  esmUserImageVo: this.imagesIdList,
                   sysUser: this.formData,
                   sysUserInfo: this.formDataDetail,
                 })
@@ -1106,4 +1340,74 @@ export default {
   top: 10px;
   text-align: center;
 }
+
+.avatar-uploader .el-upload {
+  border: 1px dashed #d9d9d9;
+  border-radius: 6px;
+  cursor: pointer;
+  position: relative;
+  overflow: hidden;
+}
+.avatar-uploader .el-upload:hover {
+  border-color: #409eff;
+}
+.avatar-uploader-icon {
+  font-size: 28px;
+  color: #8c939d;
+  width: 100px;
+  height: 100px;
+  line-height: 100px;
+  text-align: center;
+  border: 1px dashed #d9d9d9;
+}
+
+.avatar {
+  border: 1px dashed #d9d9d9;
+  padding: 5px;
+  border-radius: 6px;
+  width: 100px;
+  height: 100px;
+  display: block;
+}
 </style>
+
+<style lang="scss" scoped>
+>>> .el-tabs__header {
+  margin-right: 50px !important;
+}
+>>> .el-tabs__item:hover{
+  color: #2D4D89;
+}
+>>> .el-tabs__item.is-active {
+  color: #FFF;
+  background: #2D4D89;
+  transition: all ease .5s;
+}
+>>> .el-tabs__active-bar {
+  background-color: #2D4D89;
+}
+>>> .el-tabs__item.is-top:nth-child(2) {
+  padding-left: 20px !important;
+}
+>>> .el-tabs--top .el-tabs__item.is-top:last-child {
+  padding-right: 20px !important;
+}
+
+.el-tabs {
+  >>> .el-input__inner:focus, >>> .el-select .el-input.is-focus .el-input__inner {
+    border-color: #2D4D89;
+  }
+  .el-button--primary, .el-button--primary:focus {
+    background-color: #2D4D89;
+    border-color: #2D4D89;
+  }
+}
+.select-prop {
+  .el-select-dropdown__item.selected, .el-date-table td.available:hover {
+    color: #2D4D89;
+  }
+  .el-date-table td.current:not(.disabled) span  {
+    background-color: #2D4D89;
+  }
+}
+</style>

+ 175 - 0
src/views/Sys/HxOrdersCount.vue

@@ -0,0 +1,175 @@
+<template>
+  <div>
+    <templateTable ref="templateTable" :formList="formList" :btnGroup="btnGroup" :searchData.sync="searchData"
+      :tableConfig="tableConfig" :data="tableData" @findPage="findPage" @handleSearchList="handleSearchList"
+      @selectionChange="selectionChange"
+      :pagination="pageData" @getList="findPage">
+      <template slot="导出">
+        <el-button
+            size="small"
+            type="primary"
+            :disabled="selectionList.length == 0"
+            @click="handExport"
+            >导出</el-button>
+      </template>
+    </templateTable>
+  </div>
+</template>
+
+<script>
+import templateTable from '@/components/TemplateTable/index.vue'
+export default {
+  components: { templateTable },
+  data() {
+    return {
+      formList: [
+        {
+          label: "工号",
+          prop: "operatorId",
+          type: "input",
+        },
+        {
+          label: "姓名",
+          prop: "name",
+          type: "input",
+        },
+        {
+          label: "录单日期",
+          prop: "time",
+          type: "datePicker",
+        },
+      ],
+      btnGroup:[
+        {
+          name:'导出',
+          slot: true,
+          // click:(row, index) => {return this.handExport()},
+        }
+      ],
+      searchData: {},
+      tableConfig: {
+        columns: [
+          {
+            prop: "operatorId",
+            label: "工号",
+            type: "text"
+          },
+          {
+            prop: "name",
+            label: "姓名",
+            type: "text"
+          },
+          {
+            prop: "count",
+            label: "录单次数",
+            type: "text"
+          },
+          {
+            prop: "orderStatus0",
+            label: "报价中次数",
+            type: "text"
+          },
+          {
+            prop: "orderStatus1",
+            label: "待核保次数",
+            type: "text"
+          },
+          {
+            prop: "orderStatus2",
+            label: "已核保待缴费次数",
+            type: "text"
+          },
+          {
+            prop: "orderStatus3",
+            label: "已承保次数",
+            type: "text"
+          },
+          {
+            prop: "orderStatus4",
+            label: "核保退回次数",
+            type: "text"
+          },
+        ],
+        loading: true,
+        isPaginationShow: true,
+        isShowIndex: true,
+        isCheckBox: true,
+        // optBtns:[
+        //   {
+        //     type:'primary',
+        //     label:'详情',
+        //     click:(row, index) => {return this.haldDetail(row)},
+        // },
+        // ]
+      },
+      tableData: [],
+      pageData: {
+        pageNum: 1,
+        pageSize: 20,
+      },
+      selectionList: [],
+    }
+  },
+  created() {
+    this.findPage()
+  },
+  methods: {
+    // 多选
+    selectionChange(data) {
+      this.selectionList = []
+      if (data && data.length) {
+        data.forEach((val) => {
+          this.selectionList.push(val.operatorId)
+        })
+      }
+    },
+    // 导出
+    handExport() {
+      // let time = undefined
+      // let createTimeStart = undefined
+      // let createTimeEnd = undefined
+      // if (this.$refs.templateTable.searchDataClone && this.$refs.templateTable.searchDataClone.time) {
+      //   createTimeStart = this.$refs.templateTable.searchDataClone.time[0]
+      //   createTimeEnd = this.$refs.templateTable.searchDataClone.time[1]
+      // }
+      // this.$api.dict.exportHxOrdersCount({...this.$refs.templateTable.searchDataClone, ...this.pageData,createTimeStart, createTimeEnd, time}).then((res) => {
+        this.$api.dict.exportHxOrdersCount({
+          ids: this.selectionList
+        }).then((res) => {
+        if (res.code == 200) {
+          let url = process.env.BASE_URL  + res.data; // 3.创建一个临时的url指向blob对象
+          let a = document.createElement("a");
+          a.href = url;
+          a.download = "导出文件.xlsx";
+          a.click();
+          window.URL.revokeObjectURL(url);
+        }
+      })
+    },
+    findPage(data) {
+      this.tableConfig.loading = true
+      let time = undefined
+      let createTimeStart = undefined
+      let createTimeEnd = undefined
+      if (data && data.time) {
+        createTimeStart = data.time[0]
+        createTimeEnd = data.time[1]
+      }
+      this.$api.dict.queryHxOrdersCount({...data, ...this.pageData,createTimeStart, createTimeEnd, time}).then((res) => {
+        this.tableConfig.loading = false;
+        if (res.code == 200) {
+          this.tableData = res.data.records
+          this.pageData.pageNum = res.data.current
+          this.pageData.pageSize = res.data.size
+          this.pageData.totalSize = res.data.total
+        }
+      })
+    },
+    handleSearchList(data) {
+      this.findPage(data)
+    },
+  },
+}
+</script>
+
+<style></style>

+ 8 - 4
src/views/Task/daikeComponents/KtLetter.vue

@@ -959,8 +959,10 @@
                         )
                         : 'true'
                       ">
-                      <el-option :label="agreementitem.agreementName" :value="agreementitem.id"
-                        :disabled="agreementitem.disabled"></el-option>
+                      <!-- <el-option :label="agreementitem.agreementName" :value="agreementitem.id"
+                        :disabled="agreementitem.disabled"></el-option> -->
+                        <el-option :label="agreementitem.jobDescription ? agreementitem.businessDescription + '(' + agreementitem.jobDescription + ')' : agreementitem.businessDescription" :value="agreementitem.id"
+                        :disabled="agreementitem.disabled">{{ agreementitem.jobDescription ? agreementitem.businessDescription + '(' + agreementitem.jobDescription + ')' : agreementitem.businessDescription }}</el-option>
                     </div>
                   </div>
                 </el-select>
@@ -1553,8 +1555,10 @@
                         )
                         : 'true'
                       ">
-                      <el-option :label="agreementitem.agreementName" :value="agreementitem.id"
-                        :disabled="agreementitem.disabled"></el-option>
+                      <!-- <el-option :label="agreementitem.agreementName" :value="agreementitem.id"
+                        :disabled="agreementitem.disabled"></el-option> -->
+                        <el-option :label="agreementitem.jobDescription ? agreementitem.businessDescription + '(' + agreementitem.jobDescription + ')' : agreementitem.businessDescription" :value="agreementitem.id"
+                        :disabled="agreementitem.disabled">{{ agreementitem.jobDescription ? agreementitem.businessDescription + '(' + agreementitem.jobDescription + ')' : agreementitem.businessDescription }}</el-option>
                     </div>
                   </div>
                 </el-select>