Pārlūkot izejas kodu

人员管理-前三个页面的新增和编辑修改

lihongxiao 3 gadi atpakaļ
vecāks
revīzija
f353995cd5

+ 2 - 2
config/dev.env.js

@@ -6,8 +6,8 @@ module.exports = merge(prodEnv, {
   NODE_ENV: '"development"',
   ENV_CONFIG:'"dev"',
   // BASE_URL: '"http://39.98.239.48/web-api"',//测试服务器
-  // BASE_URL: '"http://192.168.0.111:8080/"' //大哥
-  BASE_URL: '"http://192.168.0.14:8080/"' //君
+  BASE_URL: '"http://192.168.0.111:8080/"' //大哥
+  // BASE_URL: '"http://192.168.0.14:8080/"' //君
 
 })
 

+ 2 - 1
src/http/moudules/cost.js

@@ -1,10 +1,11 @@
 import axios from '../axios'
 
 //获取保险公司下拉列表
-export const gainTopList = () => {
+export const gainTopList = (params) => {
     return axios({
         url: "/esmInsCompany/gainTopList",
         method: "get",
+        params
     })
 }
 //excel导入接口

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

@@ -264,6 +264,14 @@ export const getApprovalPass= (id) => {
       method: 'get',
   })
 }
+export const getApprovalNotPass= (params) => {
+  return axios({
+      url: '/user/approvalNotPass',
+      method: 'get',
+      params
+  })
+}
+
 //获取推荐人
 export const selectfindByreferrerId= (params) => {
   return axios({

+ 9 - 7
src/views/FinancialManagement/CostVerification/Baosi.vue

@@ -37,12 +37,7 @@
       </el-table-column>
       
       <template slot="operate" slot-scope="scope" > 
-        <el-button
-            v-if="scope.row.importStatus == 1"
-            size="mini"
-            type="primary"
-            @click="modifyFun(scope.row)"
-          >修改</el-button>
+       
         
           <div style="display: inline-block;">
             <el-upload
@@ -62,6 +57,13 @@
               >重新导入</el-button>
             </el-upload>
           </div>
+          <el-button
+          
+            v-if="scope.row.importStatus == 1"
+            size="mini"
+            type="primary"
+            @click="modifyFun(scope.row)"
+          >修改</el-button>
           <el-button
             size="mini"
             type="primary"
@@ -224,7 +226,7 @@ export default {
   mixins: [ mixin ],
   components: { templateTable,importDialog },
   created() {
-    this.$api.cost.gainTopList().then(res => {
+    this.$api.cost.gainTopList({type:1}).then(res => {
       if (res.data) {
         this.InsCompanyList = res.data;
       }

+ 337 - 113
src/views/PeopleManage/Agent/AgentExamine.vue

@@ -73,121 +73,253 @@
       </Split>
     </el-main>
 
-    <el-dialog
-      :title="dialogTitle"
-      width="60%"
-      :visible.sync="dialogVisible"
-      :close-on-click-modal="false"
-      @close="closeDialog"
-      v-dialogDrag
-    >
-      <el-form
-        :model="formData"
-        :rules="formDataRules"
-        ref="formData"
-        :inline="true"
-        label-width="130px"
-        size="small"
-      >
-        <el-row>
-          <el-col :span="8">
-            <el-form-item label="机构名称" prop="deptId">
-              <el-cascader
-                style="width:200px"
-                :options="option"
-                v-model="formData.deptId"
-                clearable
-                :show-all-levels="false"
-                disabled
-                :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-col>
-          <el-form-item label="手机号" prop="mobile">
-            <el-input v-model="formData.mobile" disabled></el-input>
+    <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="130px" size="small">
+            <el-row>
+              <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-row>
+          </el-form>
+          <div style="text-align: right;">
+            <el-button size="small" type="primary" @click="nextStep">下一步</el-button>
+          </div>
+        </el-tab-pane>
+        <el-tab-pane label="详细信息" name="2">
+          <el-form :rules="formDataRules" :model="formDataDetail" ref="formDataDetail" :inline="true"
+            @keyup.enter.native="submitForml('提交审核')" label-width="130px" 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-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 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="nations">
+                  <el-select disabled style="width:200px" v-model="formDataDetail.nations" placeholder="请选择民族">
+                    <el-option :label="national" :value="national" v-for="national in nationalList"
+                      :key="national"></el-option>
+                  </el-select>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="政治面貌" prop="politicsStatus">
+                  <el-select disabled style="width:200px" v-model="formDataDetail.politicsStatus" placeholder="请选择">
+                    <el-option label="群众" value="群众"></el-option>
+                    <el-option label="共青团员" value="共青团员"></el-option>
+                    <el-option label="中共党员" value="中共党员"></el-option>
+                  </el-select>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="健康状况" prop="health">
+                  <el-select disabled style="width:200px" v-model="formDataDetail.health" placeholder="请选择">
+                    <el-option label="健康" value="健康"></el-option>
+                    <el-option label="亚健康" value="亚健康"></el-option>
+                    <el-option label="疾病" value="疾病"></el-option>
+                  </el-select>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="邮政编码" prop="postalCode">
+                  <el-input disabled v-model="formDataDetail.postalCode"></el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="居住地址" prop="address">
+                  <el-input disabled v-model="formDataDetail.address"></el-input>
+                </el-form-item>
+              </el-col>
+
+              <el-col :span="8">
+                <el-form-item label="血型" prop="bloodType">
+                  <el-select disabled style="width:200px" v-model="formDataDetail.bloodType" placeholder="请选择">
+                    <el-option label="A型" value="A型"></el-option>
+                    <el-option label="B型" value="B型"></el-option>
+                    <el-option label="O型" value="O型"></el-option>
+                    <el-option label="AB型" value="AB型"></el-option>
+                  </el-select>
+                </el-form-item>
+              </el-col>
+              <el-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-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-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
+            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-col :span="8">
-            <el-form-item label="邮箱" prop="email">
-              <el-input v-model="formData.email" disabled></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item label="名称" prop="name">
-              <el-input v-model="formData.name" disabled></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
-                disabled
-              ></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item label="性别" prop="sex">
-              <el-select style="width:200px" v-model="formData.sex" disabled placeholder="请选择">
-                <el-option
-                  v-for="val in sexoptions"
-                  :label="val.label"
-                  :value="val.value"
-                  :key="val.id"
-                ></el-option>
-              </el-select>
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item label="角色" prop="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="22">
-            <el-form-item label="驳回原因" prop="remark">
-              <el-input
-                style="width: 30vw;"
-                v-model="formData.remark"
-                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>
-      <span slot="footer" class="dialog-footer">
+      <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
+        >
         <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>
-      </span>
+          >审核驳回</el-button
+        >
+        <el-button
+          size="small"
+          type="primary"
+          @click="closeDialog"
+          >取消</el-button
+        >
+      </div>
+        </el-tab-pane>
+      </el-tabs>
+
     </el-dialog>
   </div>
 </template>
@@ -195,7 +327,6 @@
 <script>
 import tree from "@/components/ztree.vue"; // 机构树组件
 import KtCommonTable from "@/views/Core/KtCommonTable.vue"; //表格组件
-import Cookies from "js-cookie";
 
 export default {
   components: {
@@ -204,6 +335,66 @@ export default {
   },
   data() {
     return {
+      activeName: '1',
+      //56个民族
+      nationalList: [
+        "汉族",
+        "壮族",
+        "满族",
+        "回族",
+        "苗族",
+        "维吾尔族",
+        "土家族",
+        "彝族",
+        "蒙古族",
+        "藏族",
+        "布依族",
+        "侗族",
+        "瑶族",
+        "朝鲜族",
+        "白族",
+        "哈尼族",
+        "哈萨克族",
+        "黎族",
+        "傣族",
+        "畲族",
+        "傈僳族",
+        "仡佬族",
+        "东乡族",
+        "高山族",
+        "拉祜族",
+        "水族",
+        "佤族",
+        "纳西族",
+        "羌族",
+        "土族",
+        "仫佬族",
+        "锡伯族",
+        "柯尔克孜族",
+        "达斡尔族",
+        "景颇族",
+        "毛南族",
+        "撒拉族",
+        "布朗族",
+        "塔吉克族",
+        "阿昌族",
+        "普米族",
+        "鄂温克族",
+        "怒族",
+        "京族",
+        "基诺族",
+        "德昂族",
+        "保安族",
+        "俄罗斯族",
+        "裕固族",
+        "乌兹别克族",
+        "门巴族",
+        "鄂伦春族",
+        "独龙族",
+        "塔塔尔族",
+        "赫哲族",
+        "珞巴族",
+      ],
       pageData: {
         pageNum: 1,
         pageSize: 20,
@@ -217,6 +408,7 @@ export default {
       formDataRules: {
         remark: [{ required: true, message: "请填写驳回原因", trigger: "blur" }]
       },
+      formDataDetail: {},
       filterObject: {},
       peopleid: "",
       peopledeptid: "",
@@ -301,6 +493,15 @@ export default {
     this.changeTreeWidth(240); // 初始化树的宽度
   },
   methods: {
+    handleDialogBefore(done) {
+      // 退出对话框之前确认提示
+      var that = this;
+      this.$confirm("确认关闭?")
+        .then((_) => {
+          done();
+        })
+        .catch((_) => {});
+    },
     // 查询Start
     queryStaffInfo() {
       this.pageData.realName = this.queryFrom.name;
@@ -393,17 +594,40 @@ export default {
           this[typeName + "options"] = [];
         });
     },
-    handleTableEdit(params) {
-      this.$api.dept.findDeptTree().then(res => {
-        this.option = res.data;
-      });
-      this.$api.user.getUserDatail(params.row.userId).then(result => {
-        if (result.code == 200) {
-          result.data.status += "";
-          this.formData = result.data;
+       // 下一步
+       nextStep() {
+      this.$refs.formData.validate((valid) => {
+        if (valid) {
+          this.activeName = '2'
+          // this.formData.deptIdCom= this.formData.deptId 
+          // this.formData.deptId =  this.formData.deptId.at(-1);
+          // if (this.formData.referrerId) {
+          //   this.formData.referrerName = this.recommenderOptions.find(val => this.formData.referrerId == val.id).name
+          // }
+          // this.$api.user.saveOrUpdate(this.formData).then((res) => {
+          //   if (res.code == 200) {
+          //   this.activeName='2'
+          //   this.basicInformation=res.data
+          //   } else {
+          //     this.$message({
+          //       message: `操作失败,请重新添加,(${res.msg})`,
+          //       type: "error",
+          //     });
+          //   }
+          // });
         }
       });
-      this.dialogTitle = "审核后线人员";
+  },
+  handleTableEdit(params){
+      this.$api.user.getUserDatail(params.row.userId).then((res) => {
+        if(res.code==200){
+          res.data.sysUser.status += ''
+        this.formData = res.data.sysUser
+        this.formDataDetail = res.data.sysUserInfo?res.data.sysUserInfo:{}
+        this.formData.password = ''
+        }
+      })
+      this.dialogTitle = "审核代理人";
       this.dialogVisible = true;
     },
     //联级选择器触发事件
@@ -425,10 +649,10 @@ export default {
           }
         });
       } else {
-        this.$refs.formData.validate(valid => {
+        this.$refs.formDataDetail.validate(valid => {
           if (valid) {
             this.$api.user
-              .getApprovalNotPass({ userId: this.formData.id,reason:this.formData.remark })
+              .getApprovalNotPass({ userId: this.formData.id,reason:this.formDataDetail.remark })
               .then(result => {
                 if (result.code == 200 && result.data) {
                   this.$message({

+ 94 - 82
src/views/PeopleManage/Agent/AgentManage.vue

@@ -42,7 +42,7 @@
     <!-- 新增修改界面 -->
     <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-tabs v-model="activeName"  :before-leave="beforeTabLeave" >
         <el-tab-pane label="基本信息" name="1">
           <el-form :model="formData" :rules="formDataRules" ref="formData" :inline="true" @keyup.enter.native="nextStep()"
             label-width="130px" size="small">
@@ -68,8 +68,8 @@
                 </el-form-item>
               </el-col>
               <el-col :span="8">
-                <el-form-item label="邮箱" prop="email">
-                  <el-input v-model="formData.email"></el-input>
+                <el-form-item label="身份证号" prop="identity">
+                  <el-input v-model="formData.identity" :maxlength="18" @change="identityChange"></el-input>
                 </el-form-item>
               </el-col>
               <el-col :span="8">
@@ -78,18 +78,15 @@
                 </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"
+                <el-form-item label="密码" prop="word">
+                  <!-- <el-input type="text"  v-model="formData.word" @input="replacePwd" oncopy="return false" oncut="return false" @select="selectText" @keyup.delete="deleteText"/> -->
+
+                  <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="sex">
-                  <el-select style="width:200px" v-model="formData.sex" placeholder="请选择">
-                    <el-option v-for="val in sexoptions" :label="val.label" :value="val.value" :key="val.id"></el-option>
-                  </el-select>
-                </el-form-item>
-              </el-col>
+             
               <el-col :span="8">
                 <el-form-item label="状态" prop="status">
                   <el-select style="width:200px" v-model="formData.status" placeholder="请选择">
@@ -113,6 +110,11 @@
                   </el-select>
                 </el-form-item>
               </el-col>
+              <el-col :span="8">
+                <el-form-item label="推荐人工号" prop="referrerName">
+                  <el-input  v-model="formData.referrerId" disabled></el-input>
+                </el-form-item>
+              </el-col>
             </el-row>
           </el-form>
           <div style="text-align: right;">
@@ -121,21 +123,23 @@
         </el-tab-pane>
         <el-tab-pane label="详细信息" name="2">
           <el-form :model="formDataDetail" :rules="formDataRulesDetail" ref="formDataDetail" :inline="true"
-            @keyup.enter.native="submitForml('提交审核')" label-width="130px" size="small">
+           label-width="130px" size="small">
             <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="address">
-                  <el-input v-model="formDataDetail.address"></el-input>
+              <el-col :span="8">
+                <el-form-item label="开户行" prop="bankName">
+                  <el-input v-model="formDataDetail.bankName"></el-input>
                 </el-form-item>
-              </el-col> -->
+              </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="sex">
+                  <el-select style="width:200px" v-model="formDataDetail.sex" placeholder="请选择">
+                    <el-option v-for="val in sexoptions" :label="val.label" :value="val.value" :key="val.id"></el-option>
+                  </el-select>
                 </el-form-item>
               </el-col>
               <el-col :span="8">
@@ -145,18 +149,13 @@
                 </el-form-item>
               </el-col>
               <el-col :span="8">
-                <el-form-item label="身份证号" prop="identity">
-                  <el-input v-model="formDataDetail.identity" :maxlength="18"></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="nativeplace">
-                  <el-input v-model="formDataDetail.nativeplace"></el-input>
-                </el-form-item>
-              </el-col>
-              <el-col :span="8">
-                <el-form-item label="婚姻状况" prop="marrycode">
-                  <el-select v-model="formDataDetail.marrycode" placeholder="请选择婚姻状况" style="width:200px">
+                <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>
@@ -173,8 +172,8 @@
                 </el-form-item>
               </el-col>
               <el-col :span="8">
-                <el-form-item label="政治面貌" prop="politicalstatus">
-                  <el-select style="width:200px" v-model="formDataDetail.politicalstatus" placeholder="请选择">
+                <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>
@@ -191,19 +190,19 @@
                 </el-form-item>
               </el-col>
               <el-col :span="8">
-                <el-form-item label="邮政编码" prop="postalcode">
-                  <el-input v-model="formDataDetail.postalcode"></el-input>
+                <el-form-item 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="addressnow">
-                   <el-input v-model="formDataDetail.addressnow"></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="blood">
-                  <el-select style="width:200px" v-model="formDataDetail.blood" placeholder="请选择">
+                <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>
@@ -225,40 +224,40 @@
                 </el-form-item>
               </el-col>
               <el-col :span="8">
-                  <el-form-item label="毕业院校" prop="college">
-                    <el-input v-model="formDataDetail.college"></el-input>
+                  <el-form-item label="毕业院校" prop="school">
+                    <el-input v-model="formDataDetail.school"></el-input>
                   </el-form-item>
                 </el-col>
               <el-col :span="8">
-                <el-form-item label="毕业时间" prop="collegetm">
-                  <el-date-picker  style="width:200px" v-model="formDataDetail.collegetm" type="date" placeholder="选择日期">
+                <el-form-item label="毕业时间" prop="graduationTime">
+                  <el-date-picker  style="width:200px" v-model="formDataDetail.graduationTime" type="date" placeholder="选择日期">
                   </el-date-picker>
                 </el-form-item>
               </el-col>
               <el-col :span="8">
-                <el-form-item label="原工作单位" prop="orglast">
-                  <el-input v-model="formDataDetail.orglast"></el-input>
+                <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="intime">
-                    <el-date-picker style="width:200px" v-model="formDataDetail.intime" type="date" placeholder="选择日期">
+                  <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="saleno">
-                  <el-input v-model="formDataDetail.saleno"></el-input>
+                <el-form-item label="代理人资格证号" prop="agentQualificationCode">
+                  <el-input v-model="formDataDetail.agentQualificationCode"></el-input>
                 </el-form-item>
               </el-col>
               <el-col :span="8">
-                <el-form-item label="紧急联系人电话" prop="phonespecial">
-                  <el-input v-model="formDataDetail.phonespecial"></el-input>
+                <el-form-item label="紧急联系人电话" prop="emergencyContactTel">
+                  <el-input v-model="formDataDetail.emergencyContactTel"></el-input>
                 </el-form-item>
               </el-col>
               <el-col :span="8">
-                <el-form-item label="紧急联系人姓名" prop="namespecial">
-                  <el-input v-model="formDataDetail.namespecial"></el-input>
+                <el-form-item label="紧急联系人姓名" prop="emergencyContactName">
+                  <el-input v-model="formDataDetail.emergencyContactName"></el-input>
                 </el-form-item>
               </el-col>
             </el-row>
@@ -426,7 +425,7 @@ export default {
       },
       deptId: JSON.parse(localStorage.getItem('user_data')).deptId,
       formData: {
-        roleId: '20'
+        roleId: '20',
       },
       formDataDetail: {},
       formDataRulesDetail: {
@@ -442,7 +441,6 @@ export default {
         // maritalStatus: [{ required: true, message: "请选择婚姻状况", trigger: "change" }],
         // nations: [{ required: true, message: "请选择民族", trigger: "change" }],
       },
-      basicInformation: {},
       formDataRules: {
         deptId: [{ required: true, message: "请选择机构", trigger: "change" }],
         mobile: [
@@ -459,6 +457,10 @@ export default {
         // password: [{ required: true, message: "请填写密码", trigger: "blur" }],
         status: [{ required: true, message: "请选择状态", trigger: "change" }],
         // roleId: [{ required: true, message: "请填写角色", trigger: "blur" }],
+        identity:
+        [{ required: true, message: "请填写身份证号" },
+        { validator: validateSfz }], 
+        referrerId:[{ required: true, message: "请选择推荐人", trigger: "change" }]
       },
       filterObject: {},
       peopleid: "",
@@ -494,9 +496,6 @@ export default {
       sexoptions: JSON.parse(localStorage.getItem('sexOptions')),
       user_statusoptions: JSON.parse(localStorage.getItem('user_statusoptions')),
       roles: JSON.parse(localStorage.getItem('find_all')),
-      sexoptions: JSON.parse(localStorage.getItem('sexOptions')),
-      user_statusoptions: JSON.parse(localStorage.getItem('user_statusoptions')),
-      roles: JSON.parse(localStorage.getItem('find_all')),
       option: [], //机构列表
     };
   },
@@ -525,7 +524,6 @@ export default {
     },
   },
   methods: {
-    // excel导入
     // excel导入
     carfrontChange(file) {
       const params = new FormData(); // 声明formData数据类型
@@ -543,6 +541,22 @@ export default {
         }
       });
     },
+    identityChange(iden){
+        let sex = null;
+        let birth = null;
+        let myDate = new Date();
+        let month = myDate.getMonth() + 1;
+        let day = myDate.getDate();
+          sex = iden.substring(16,17);
+          birth = iden.substring(6,10)+"-"+iden.substring(10,12)+"-"+iden.substring(12,14);
+          if (iden.substring(10, 12) < month || iden.substring(10, 12) == month && iden.substring(12, 14) <= day) age++;
+        if(sex%2 === 0)
+          sex = '女';
+        else
+          sex = '男';
+          this.formDataDetail.birthday=birth
+          this.formDataDetail.sex=this.sexoptions.find(val=>sex==val.label).value
+    },
     // 查询Start
     queryStaffInfo() {
       this.findPage();
@@ -566,12 +580,10 @@ export default {
       });
     },
     onZTreeClick: function (evt, treeId, treeNode) {
-      console.log(evt)
       // 点击事件
       this.currentTreeNode = evt;
       this.deptId = this.currentTreeNode.id;
       this.pageData.pageNum = 1;
-      this.pageData.pageNum = 1;
       this.findPage();
       // this.formData.deptId = [];
       // this.platform(treeId);
@@ -583,6 +595,7 @@ export default {
       this.formData.deptId.unshift(array.data.id);
       this.platform(array.parent);
     },
+    
     //联级选择器触发事件
     handleChange(val) {
       if (val && val.length !== 0) {
@@ -601,7 +614,7 @@ export default {
         .then((res) => {
           if (res.code == 200 && res.data.content.length > 0) {
             res.data.content.forEach(val => {
-              if (val.sex && val.sex !== '' && val.sex !== null) {
+              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) {
@@ -617,9 +630,6 @@ export default {
           this.pageData.pageNum = res.data.pageNum;
           this.pageData.pageSize = res.data.pageSize;
           this.pageData.totalSize = res.data.totalSize;
-          this.pageData.pageNum = res.data.pageNum;
-          this.pageData.pageSize = res.data.pageSize;
-          this.pageData.totalSize = res.data.totalSize;
         })
     },
     handleSearchList(data) {
@@ -634,7 +644,7 @@ export default {
         });
         res.data.sysUser.status += ''
         this.formData = res.data.sysUser
-        this.formDataDetail = res.data.userInternal?res.data.userInternal:{}
+        this.formDataDetail = res.data.sysUserInfo?res.data.sysUserInfo:{}
         this.formData.password = ''
         this.dialogTitle = "编辑代理人";
         this.dialogVisible = true;
@@ -675,6 +685,7 @@ export default {
       this.formData = {
         roleId: '20',
         status: '',
+        referrerId:'',
         deptId: this.deptId
       }
       this.formDataDetail = {}
@@ -722,7 +733,10 @@ export default {
               //   return false
               // }
               if (this.dialogTitle == '新增代理人') {
-                this.$api.user.saveUserInfo({ sysUser: this.formData, userInternal: this.formDataDetail }).then((res) => {
+                if(!this.formDataDetail.password){
+                  this.formDataDetail.password=this.formDataDetail.mobile+'@2023'
+                }
+                this.$api.user.saveUserInfo({ sysUser: this.formData, sysUserInfo: this.formDataDetail }).then((res) => {
                   if (res.code == 200) {
                     this.$message({
                       message: "保存成功",
@@ -731,6 +745,7 @@ export default {
                     this.dialogVisible = false;
                     this.$refs["formData"].resetFields();
                     this.$refs["formDataDetail"].resetFields();
+                    this.activeName = '1'
                     this.findPage();
                   } else {
                     this.$message({
@@ -741,7 +756,7 @@ export default {
                 });
               }
               else{
-                this.$api.user.updateUserInfo(this.formData.id,{ sysUser: this.formData, userInternal: this.formDataDetail }).then((res) => {
+                this.$api.user.updateUserInfo(this.formData.id,{ sysUser: this.formData, sysUserInfo: this.formDataDetail }).then((res) => {
                   if (res.code == 200) {
                     this.$message({
                       message: "编辑成功",
@@ -750,6 +765,7 @@ export default {
                     this.dialogVisible = false;
                     this.$refs["formData"].resetFields();
                     this.$refs["formDataDetail"].resetFields();
+                    this.activeName = '1'
                     this.findPage();
                   } else {
                     this.$message({
@@ -764,27 +780,23 @@ export default {
         }
       });
     },
+    beforeTabLeave(){
+      let p = new Promise((resolve, reject) => {
+        this.$refs.formData.validate(async (valid) => {
+          valid ? resolve() : reject();
+          if (valid !== resolve()) {
+            // this.$message.error("请完善基本信息!");
+          }
+        
+        });
+      });
+      return p;
+    },
     // 下一步
-    nextStep() {
+     nextStep() {
       this.$refs.formData.validate((valid) => {
         if (valid) {
           this.activeName = '2'
-          // this.formData.deptIdCom= this.formData.deptId 
-          // this.formData.deptId =  this.formData.deptId.at(-1);
-          // if (this.formData.referrerId) {
-          //   this.formData.referrerName = this.recommenderOptions.find(val => this.formData.referrerId == val.id).name
-          // }
-          // this.$api.user.saveOrUpdate(this.formData).then((res) => {
-          //   if (res.code == 200) {
-          //   this.activeName='2'
-          //   this.basicInformation=res.data
-          //   } else {
-          //     this.$message({
-          //       message: `操作失败,请重新添加,(${res.msg})`,
-          //       type: "error",
-          //     });
-          //   }
-          // });
         }
       });
   },

+ 1 - 5
src/views/PeopleManage/Seo/BloodSeo.vue

@@ -601,20 +601,17 @@ export default {
     controlPersonInfo(index, row) {
       this.activeTabs = "first";
       this.dataForm = {};
-      console.log(index);
-      console.log(this.personInfo);
       this.$api.dept
         .getDeptById(this.personInfo[index].sysUser.deptId.split("D")[0])
         .then((deptRes) => {
           this.deptInfo = deptRes.data;
 
-          Object.assign(this.dataForm, this.personInfo[index].sysUser);
+        Object.assign(this.dataForm, this.personInfo[index].sysUser);
           Object.assign(this.dataForm, this.personInfo[index].esmUserInternal);
           Object.assign(this.dataForm, this.personInfo[index].esmUserAgent);
           this.dataForm.status = this.personInfo[index].sysUser.status;
           this.dataForm.status1 = this.personInfo[index].esmUserInternal.status;
 
-          console.log(this.dataForm.deptId);
           this.$api.user.selectByDeptId(this.dataForm.deptId).then((res2) => {
             console.log(res2);
             if (res2.code == 200 && res2.data != null) {
@@ -626,7 +623,6 @@ export default {
             }
           });
 
-          console.log(this.dataForm);
           this.dialogVisible = true;
         });
     },

+ 4 - 4
src/views/PeopleManage/Seo/StaffSeo.vue

@@ -416,10 +416,10 @@ export default {
       this.$api.dept.findDeptTree().then(res => {
         this.option = res.data;
       });
-      this.$api.user.getUserDatail(params.row.userId).then(result => {
-        if (result.code == 200) {
-          result.data.status += "";
-          this.formData = result.data;
+      this.$api.user.getUserDatail(params.row.userId).then(res => {
+        if (res.code == 200) {
+          res.data.sysUser.status += ''
+          this.formData = res.data.sysUser
           this.formData.password = "";
         }
       });

+ 1 - 1
src/views/PeopleManage/Seo/TeamSeo.vue

@@ -1019,7 +1019,7 @@ export default {
           //     });
           // }
           if(result.code==200){
-            this.dataForm=result.data
+            this.dataForm=result.data.sysUser
           }
           this.dialogVisible = true;
         });

+ 375 - 213
src/views/PeopleManage/Staff/StaffExamine.vue

@@ -6,13 +6,8 @@
         <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 -->
@@ -25,32 +20,17 @@
               <el-row>
                 <el-col :span="5">
                   <el-form-item label="工号">
-                    <el-input
-                      clearable
-                      size="small"
-                      placeholder="工号"
-                      v-model="queryFrom.userId"
-                    ></el-input>
+                    <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-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-input clearable size="small" placeholder="手机号" v-model="queryFrom.mobile"></el-input>
                   </el-form-item>
                 </el-col>
                 <!-- <el-col :span="5">
@@ -67,156 +47,247 @@
                 </el-col> -->
                 <el-col :span="4">
                   <el-form-item label="">
-                    <el-button
-                      size="small"
-                      type="primary"
-                      @click="queryStaffInfo"
-                      >查询</el-button
-                    >
+                    <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:edit"
-              :data="pageResult"
-              :columns="columns"
-              :button1Name="'审核'"
-              :showBatchDelete="false"
-              @findPage="findPage"
-              @handleButton1="handleTableEdit"
-            >
-            </kt-common-table>
-         
+          <kt-common-table permsButton1="sys:agent:edit" :data="pageResult" :columns="columns" :button1Name="'审核'"
+            :showBatchDelete="false" @findPage="findPage" @handleButton1="handleTableEdit">
+          </kt-common-table>
+
         </SplitArea>
         <!-- 右侧列表页面End -->
       </Split>
     </el-main>
-
-    <el-dialog
-      :title="dialogTitle"
-      width="60%"
-      :visible.sync="dialogVisible"
-      :close-on-click-modal="false"
-      @close="closeDialog"
-      v-dialogDrag
-    >
-      <el-form
-        :model="formData"
-        :rules="formDataRules"
-        ref="formData"
-        :inline="true"
-        label-width="130px"
-        size="small"
-      >
-        <el-row>
-          <el-col :span="8" >
-          <el-form-item label="机构名称" prop="deptId">
-            <el-cascader
-            style="width:200px"
-              :options="option"
-              v-model="formData.deptId"
-              clearable
-              :show-all-levels="false"
-               disabled
-              :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-col>
-          <el-form-item label="手机号" prop="mobile">
-            <el-input v-model="formData.mobile" disabled></el-input>
-          </el-form-item>
-          <el-col :span="8">
-            <el-form-item label="邮箱" prop="email">
-              <el-input v-model="formData.email" disabled></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item label="名称" prop="name">
-              <el-input v-model="formData.name" disabled></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 disabled></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item label="性别" prop="sex">
-              <el-select
-                    style="width:200px"
-                    v-model="formData.sex"
-                    disabled
-                    placeholder="请选择"
-                  >
+    <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="130px" size="small">
+            <el-row>
+              <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-row>
+          </el-form>
+          <div style="text-align: right;">
+            <el-button size="small" type="primary" @click="nextStep">下一步</el-button>
+          </div>
+        </el-tab-pane>
+        <el-tab-pane label="详细信息" name="2">
+          <el-form :model="formDataDetail" :rules="formDataRules" ref="formDataDetail" :inline="true"
+            label-width="130px" 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-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="22">
-            <el-form-item label="备注" prop="remark">
-            <el-input
-            style="width: 30vw;"
-              v-model="formData.remark"
-              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>
-      <span slot="footer" class="dialog-footer" >
-        <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
-        >
-      </span>
-      </el-dialog>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="出生日期" prop="birthday">
+                  <el-date-picker disabled style="width:200px" v-model="formDataDetail.birthday" type="date"
+                    placeholder="选择日期">
+                  </el-date-picker>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="户籍" prop="koseki">
+                  <el-input disabled v-model="formDataDetail.koseki"></el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="婚姻状况" prop="maritalStatus">
+                  <el-select disabled v-model="formDataDetail.maritalStatus" placeholder="请选择婚姻状况" style="width:200px">
+                    <el-option label="未婚" value="未婚"></el-option>
+                    <el-option label="已婚" value="已婚"></el-option>
+                    <el-option label="离异" value="离异"></el-option>
+                    <el-option label="再婚" value="再婚"></el-option>
+                  </el-select>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="民族" prop="nations">
+                  <el-select disabled style="width:200px" v-model="formDataDetail.nations" placeholder="请选择民族">
+                    <el-option :label="national" :value="national" v-for="national in nationalList"
+                      :key="national"></el-option>
+                  </el-select>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="政治面貌" prop="politicsStatus">
+                  <el-select disabled style="width:200px" v-model="formDataDetail.politicsStatus" placeholder="请选择">
+                    <el-option label="群众" value="群众"></el-option>
+                    <el-option label="共青团员" value="共青团员"></el-option>
+                    <el-option label="中共党员" value="中共党员"></el-option>
+                  </el-select>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="健康状况" prop="health">
+                  <el-select disabled style="width:200px" v-model="formDataDetail.health" placeholder="请选择">
+                    <el-option label="健康" value="健康"></el-option>
+                    <el-option label="亚健康" value="亚健康"></el-option>
+                    <el-option label="疾病" value="疾病"></el-option>
+                  </el-select>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="邮政编码" prop="postalCode">
+                  <el-input disabled v-model="formDataDetail.postalCode"></el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="居住地址" prop="address">
+                  <el-input disabled v-model="formDataDetail.address"></el-input>
+                </el-form-item>
+              </el-col>
+
+              <el-col :span="8">
+                <el-form-item label="血型" prop="bloodType">
+                  <el-select disabled style="width:200px" v-model="formDataDetail.bloodType" placeholder="请选择">
+                    <el-option label="A型" value="A型"></el-option>
+                    <el-option label="B型" value="B型"></el-option>
+                    <el-option label="O型" value="O型"></el-option>
+                    <el-option label="AB型" value="AB型"></el-option>
+                  </el-select>
+                </el-form-item>
+              </el-col>
+              <el-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-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-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 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-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-tab-pane>
+      </el-tabs>
+
+    </el-dialog>
 
 
   </div>
@@ -225,7 +296,6 @@
 <script>
 import tree from "@/components/ztree.vue"; // 机构树组件
 import KtCommonTable from "@/views/Core/KtCommonTable.vue"; //表格组件
-import Cookies from "js-cookie";
 
 export default {
   components: {
@@ -234,18 +304,79 @@ export default {
   },
   data() {
     return {
-      pageData:{
+      activeName: '1',
+      //56个民族
+      nationalList: [
+        "汉族",
+        "壮族",
+        "满族",
+        "回族",
+        "苗族",
+        "维吾尔族",
+        "土家族",
+        "彝族",
+        "蒙古族",
+        "藏族",
+        "布依族",
+        "侗族",
+        "瑶族",
+        "朝鲜族",
+        "白族",
+        "哈尼族",
+        "哈萨克族",
+        "黎族",
+        "傣族",
+        "畲族",
+        "傈僳族",
+        "仡佬族",
+        "东乡族",
+        "高山族",
+        "拉祜族",
+        "水族",
+        "佤族",
+        "纳西族",
+        "羌族",
+        "土族",
+        "仫佬族",
+        "锡伯族",
+        "柯尔克孜族",
+        "达斡尔族",
+        "景颇族",
+        "毛南族",
+        "撒拉族",
+        "布朗族",
+        "塔吉克族",
+        "阿昌族",
+        "普米族",
+        "鄂温克族",
+        "怒族",
+        "京族",
+        "基诺族",
+        "德昂族",
+        "保安族",
+        "俄罗斯族",
+        "裕固族",
+        "乌兹别克族",
+        "门巴族",
+        "鄂伦春族",
+        "独龙族",
+        "塔塔尔族",
+        "赫哲族",
+        "珞巴族",
+      ],
+      pageData: {
         pageNum: 1,
         pageSize: 20,
-        deptId:JSON.parse(localStorage.getItem('user_data')).deptId  ,
-        userId:'',
-        realName:'',
-        mobile:'',
+        deptId: JSON.parse(localStorage.getItem('user_data')).deptId,
+        userId: '',
+        realName: '',
+        mobile: '',
       },
-      formData:{},
-      formDataRules:{
+      formData: {},
+      formDataRules: {
         remark: [{ required: true, message: "请填写备注", trigger: "blur" }],
-        },
+      },
+      formDataDetail: {},
       filterObject: {},
       peopleid: "",
       peopledeptid: "",
@@ -287,7 +418,7 @@ export default {
         },
 
         { prop: "deptName", label: "部门名称", minWidth: 80, sortable: false },
-      
+
         { prop: "userId", label: "工号", minWidth: 80, sortable: false },
         { prop: "name", label: "姓名", minWidth: 120, sortable: false },
         {
@@ -297,7 +428,7 @@ export default {
           sortable: false,
         },
         { prop: "mobile", label: "联系电话", minWidth: 100, sortable: false },
-          {
+        {
           prop: "roleId",
           label: "角色",
           minWidth: 80,
@@ -314,9 +445,9 @@ export default {
       dialogVisible: false, // 新增编辑界面是否显示
       departmentList: [], // 选中公司的所有部门的集合
       deptInfo: {}, //选中机构的基本信息
-      sexoptions: JSON.parse(localStorage.getItem('sexOptions')) ,
-      user_statusoptions: JSON.parse(localStorage.getItem('user_statusoptions')) ,
-      roles: JSON.parse(localStorage.getItem('find_all')) ,
+      sexoptions: JSON.parse(localStorage.getItem('sexOptions')),
+      user_statusoptions: JSON.parse(localStorage.getItem('user_statusoptions')),
+      roles: JSON.parse(localStorage.getItem('find_all')),
       option: [], //机构列表
     };
   },
@@ -332,10 +463,34 @@ export default {
     this.changeTreeWidth(240); // 初始化树的宽度
   },
   methods: {
+    // 下一步
+    nextStep() {
+      this.$refs.formData.validate((valid) => {
+        if (valid) {
+          this.activeName = '2'
+          // this.formData.deptIdCom= this.formData.deptId 
+          // this.formData.deptId =  this.formData.deptId.at(-1);
+          // if (this.formData.referrerId) {
+          //   this.formData.referrerName = this.recommenderOptions.find(val => this.formData.referrerId == val.id).name
+          // }
+          // this.$api.user.saveOrUpdate(this.formData).then((res) => {
+          //   if (res.code == 200) {
+          //   this.activeName='2'
+          //   this.basicInformation=res.data
+          //   } else {
+          //     this.$message({
+          //       message: `操作失败,请重新添加,(${res.msg})`,
+          //       type: "error",
+          //     });
+          //   }
+          // });
+        }
+      });
+    },
     // 查询Start
     queryStaffInfo() {
-        this.pageData.realName=this.queryFrom.name
-        this.pageData.mobile=this.queryFrom.mobile
+      this.pageData.realName = this.queryFrom.name
+      this.pageData.mobile = this.queryFrom.mobile
       this.findPage();
     },
     changeTreeWidth(widthVal) {
@@ -354,11 +509,11 @@ export default {
       // 点击事件
       this.currentTreeNode = evt;
       this.pageData.deptId = this.currentTreeNode.id;
-      this.pageData.pageNum =1;
+      this.pageData.pageNum = 1;
       this.findPage();
       this.formData.deptId = [];
       this.platform(treeId);
-      
+
     },
     platform(array) {
       if (!array.parent) {
@@ -367,7 +522,15 @@ export default {
       this.formData.deptId.unshift(array.data.id);
       this.platform(array.parent);
     },
-    
+    handleDialogBefore(done) {
+      // 退出对话框之前确认提示
+      var that = this;
+      this.$confirm("确认关闭?")
+        .then((_) => {
+          done();
+        })
+        .catch((_) => { });
+    },
     // 右侧列表的方法Start
     findPage(data) {
       // 获取分页数据
@@ -375,32 +538,32 @@ export default {
         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:'2',
-        roleId:'22',
+      let dto = {
+        deptId: this.pageData.deptId,
+        mobile: this.pageData.mobile,
+        name: this.pageData.realName,
+        userId: this.pageData.userId,
+        status: '2',
+        roleId: '22',
       }
       this.$api.user
-        .findPage({dto,pageNum:this.pageData.pageNum,pageSize:this.pageData.pageSize})
+        .findPage({ dto, pageNum: this.pageData.pageNum, pageSize: this.pageData.pageSize })
         .then((res) => {
-          res.data.content.forEach(val=>{
-            if(val.sex&& val.sex!==''&& val.sex!==null){
-              val.sex=this.sexoptions.find(ele=>ele.value==val.sex).label
+          res.data.content.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
+            if (val.status && val.status !== '' && val.status !== null) {
+              val.status = this.user_statusoptions.find(ele => ele.value == val.status).label
             }
-            if(val.roleId&& val.roleId!==''&& val.roleId!==null){
-              val.roleId=this.roles.find(ele=>ele.id==val.roleId).name
+            if (val.roleId && val.roleId !== '' && val.roleId !== null) {
+              val.roleId = this.roles.find(ele => ele.id == val.roleId).name
             }
-            
+
           })
           this.pageResult = res.data;
         })
-       
+
     },
     closeDialog() {
       this.$refs["formData"].resetFields();
@@ -409,8 +572,8 @@ export default {
       }
       this.dialogVisible = false;
     },
-   // 新增或修改的弹出框Start
-   getDictItems(typeName) {
+    // 新增或修改的弹出框Start
+    getDictItems(typeName) {
       //--数据字典--
       this.$api.dict
         .findByLableName(typeName)
@@ -421,21 +584,20 @@ export default {
           this[typeName + "options"] = [];
         });
     },
-    handleTableEdit(params){
-      this.$api.dept.findDeptTree().then((res) => {
-        this.option = res.data;
-      });
-      this.$api.user.getUserDatail(params.row.userId).then((result) => {
-        if(result.code==200){
-            result.data.status+=''
-          this.formData=result.data
+    handleTableEdit(params) {
+      this.$api.user.getUserDatail(params.row.userId).then((res) => {
+        if (res.code == 200) {
+          res.data.sysUser.status += ''
+          this.formData = res.data.sysUser
+          this.formDataDetail = res.data.sysUserInfo ? res.data.sysUserInfo : {}
+          this.formData.password = ''
         }
       })
       this.dialogTitle = "审核后线人员";
       this.dialogVisible = true;
     },
-     //联级选择器触发事件
-     handleChange(val) {
+    //联级选择器触发事件
+    handleChange(val) {
       if (val.length !== 0) {
         this.formData.deptId = val.at(-1);
       }
@@ -453,10 +615,10 @@ export default {
           }
         });
       } else {
-        this.$refs.formData.validate(valid => {
+        this.$refs.formDataDetail.validate(valid => {
           if (valid) {
             this.$api.user
-              .getApprovalNotPass({ userId: this.formData.id,reason:this.formData.remark })
+              .getApprovalNotPass({ userId: this.formData.id, reason: this.formDataDetail.remark })
               .then(result => {
                 if (result.code == 200 && result.data) {
                   this.$message({

+ 428 - 211
src/views/PeopleManage/Staff/StaffManage.vue

@@ -116,135 +116,232 @@
 
 
 
-<!-- 新新增修改界面 -->
-
-<el-dialog
-      :title="dialogTitle"
-      width="60%"
-      :visible.sync="dialogVisible"
-      :close-on-click-modal="false"
-      :before-close="handleDialogBefore"
-      @close="closeDialog"
-      v-dialogDrag
-    >
-    <!-- <template v-if="dataForm.status1 == '2' || dataForm.status1 == '3'">
-        <div style="color: red">
-          {{ dataForm.status1 == "2" ? "驳回原因:" : "退回修改原因:" }}
-          {{ dataForm.remark }}
-        </div>
-      </template> -->
-      <el-form
-        :model="formData"
-        :rules="formDataRules"
-        ref="formData"
-        :inline="true"
-        @keyup.enter.native="submitForm('提交审核')"
-        label-width="130px"
-        size="small"
-      >
-        <el-row>
-          <el-col :span="8" >
-          <el-form-item label="机构名称" prop="deptId">
-            <el-cascader
-            style="width:200px"
-              :options="option"
-              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="email">
-              <el-input v-model="formData.email"></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="sex">
-              <el-select
-                    style="width:200px"
-                    v-model="formData.sex"
-                    placeholder="请选择"
-                  >
+<!-- 新增修改界面 -->
+<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"  :before-leave="beforeTabLeave" >
+        <el-tab-pane label="基本信息" name="1">
+          <el-form :model="formData" :rules="formDataRules" ref="formData" :inline="true" @keyup.enter.native="nextStep()"
+            label-width="130px" size="small">
+            <el-row>
+              <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" @change="identityChange"></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-row>
+          </el-form>
+          <div style="text-align: right;">
+            <el-button size="small" type="primary" @click="nextStep">下一步</el-button>
+          </div>
+        </el-tab-pane>
+        <el-tab-pane label="详细信息" name="2">
+          <el-form :model="formDataDetail" :rules="formDataRulesDetail" ref="formDataDetail" :inline="true"
+           label-width="130px" size="small">
+            <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>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="性别" prop="sex">
+                  <el-select style="width:200px" v-model="formDataDetail.sex" placeholder="请选择">
                     <el-option v-for="val in sexoptions" :label="val.label" :value="val.value" :key="val.id"></el-option>
                   </el-select>
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item label="状态" prop="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="请选择"
-              >
-              <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-row>
-      </el-form>
-      <span slot="footer" class="dialog-footer" >
-        <el-button
-          size="small"
-          type="primary"
-          style="background-color: #ffc000; border: 1px solid #ffc000"
-          @click="closeDialog"
-          >取消</el-button
-        >
-        <el-button
-          size="small"
-          type="primary"
-          @click="submitForm"
-          >提交</el-button
-        >
-      </span>
-      </el-dialog>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="出生日期" prop="birthday">
+                  <el-date-picker style="width:200px" v-model="formDataDetail.birthday" type="date" placeholder="选择日期">
+                  </el-date-picker>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="户籍" prop="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 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="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-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>
+               </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-col :span="8">
+                <el-form-item label="学历" prop="education">
+                  <el-select style="width:200px" v-model="formDataDetail.education" placeholder="请选择">
+                    <el-option label="小学" value="小学"></el-option>
+                    <el-option label="初中" value="初中"></el-option>
+                    <el-option label="高中" value="高中"></el-option>
+                    <el-option label="专科" value="专科"></el-option>
+                    <el-option label="本科" value="本科"></el-option>
+                    <el-option label="硕士" value="硕士"></el-option>
+                    <el-option label="博士" value="博士"></el-option>
+                  </el-select>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                  <el-form-item label="毕业院校" prop="school">
+                    <el-input v-model="formDataDetail.school"></el-input>
+                  </el-form-item>
+                </el-col>
+              <el-col :span="8">
+                <el-form-item label="毕业时间" prop="graduationTime">
+                  <el-date-picker  style="width:200px" v-model="formDataDetail.graduationTime" type="date" placeholder="选择日期">
+                  </el-date-picker>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="原工作单位" prop="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="agentQualificationCode">
+                  <el-input v-model="formDataDetail.agentQualificationCode"></el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="紧急联系人电话" prop="emergencyContactTel">
+                  <el-input v-model="formDataDetail.emergencyContactTel"></el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="紧急联系人姓名" prop="emergencyContactName">
+                  <el-input v-model="formDataDetail.emergencyContactName"></el-input>
+                </el-form-item>
+              </el-col>
+            </el-row>
+          </el-form>
+          <div style="text-align: right;">
+            <el-button size="small" type="primary" style="background-color: #ffc000; border: 1px solid #ffc000"
+              @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>
+          </div>
+        </el-tab-pane>
+      </el-tabs>
+
+    </el-dialog>
 
   </div>
 </template>
 
 <script>
-import Cookies from "js-cookie";
 import KtButton from "@/views/Core/KtButton"; // 按钮权限组件
 import tree from "@/components/ztree.vue"; // 机构树组件
 import KtCommonTable from "@/views/Core/KtCommonTable.vue"; //表格组件
+import { validateSfz } from "../../../utils/validate.js";
+
 export default {
   components: {
     KtButton,
@@ -252,40 +349,67 @@ export default {
     KtCommonTable,
   },
   data() {
-    //验证身份证
-    var validateIdCard = (rule, value, callback) => {
-      let that = this;
-      var pattern =
-        /^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X|x)$/;
-      if (!pattern.test(value) || value == "") {
-        callback(new Error("身份证输入有误"));
-      } else {
-        let upperCaseValue = value.toUpperCase();
-        var such = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];
-        var sum = 0;
-        for (var i = 0; i < value.length - 1; i++) {
-          var product = value[i] * such[i];
-          sum += product;
-        }
-        var result = sum % 11;
-        var example = ["1", "0", "X", "9", "8", "7", "6", "5", "4", "3", "2"];
-        if (upperCaseValue[17] == example[result]) {
-          that.formData.identity = upperCaseValue;
-          that.formData.birthday =
-            value.substr(6, 4) +
-            "-" +
-            value.substr(10, 2) +
-            "-" +
-            value.substr(12, 2);
-          that.formData.sex = value.substr(16, 1) % 2 == 0 ? "女" : "男";
-          callback();
-        } else {
-          callback(new Error("身份证输入有误"));
-        }
-      }
-    };
-
     return {
+      activeName: '1',
+      //56个民族
+      nationalList: [
+        "汉族",
+        "壮族",
+        "满族",
+        "回族",
+        "苗族",
+        "维吾尔族",
+        "土家族",
+        "彝族",
+        "蒙古族",
+        "藏族",
+        "布依族",
+        "侗族",
+        "瑶族",
+        "朝鲜族",
+        "白族",
+        "哈尼族",
+        "哈萨克族",
+        "黎族",
+        "傣族",
+        "畲族",
+        "傈僳族",
+        "仡佬族",
+        "东乡族",
+        "高山族",
+        "拉祜族",
+        "水族",
+        "佤族",
+        "纳西族",
+        "羌族",
+        "土族",
+        "仫佬族",
+        "锡伯族",
+        "柯尔克孜族",
+        "达斡尔族",
+        "景颇族",
+        "毛南族",
+        "撒拉族",
+        "布朗族",
+        "塔吉克族",
+        "阿昌族",
+        "普米族",
+        "鄂温克族",
+        "怒族",
+        "京族",
+        "基诺族",
+        "德昂族",
+        "保安族",
+        "俄罗斯族",
+        "裕固族",
+        "乌兹别克族",
+        "门巴族",
+        "鄂伦春族",
+        "独龙族",
+        "塔塔尔族",
+        "赫哲族",
+        "珞巴族",
+      ],
       pageData:{
         pageNum: 1,
         pageSize: 20,
@@ -311,7 +435,24 @@ export default {
         // password: [{ required: true, message: "请填写密码", trigger: "blur" }],
         status: [{ required: true, message: "请选择状态", trigger: "change" }],
         roleId: [{ required: true, message: "请填写角色", trigger: "blur" }],
+        identity:
+        [{ required: true, message: "请填写身份证号" },
+        { validator: validateSfz }], 
         },
+        formDataDetail: {},
+      formDataRulesDetail: {
+        // accountno: [{ required: true, message: "请填写开户账号", trigger: "blur" }],
+        // address: [{ required: true, message: "请填写居住地址", trigger: "blur" }],
+        // bankName: [{ required: true, message: "请填写开户行", trigger: "blur" }],
+        // birthday: [{ required: true, message: "请填写出生日期", trigger: "blur" }],
+        // identity:
+        // [{ required: true, message: "请填写身份证号" },
+        // { validator: validateSfz }], 
+
+        // koseki: [{ required: true, message: "请填写户籍", trigger: "blur" }],
+        // maritalStatus: [{ required: true, message: "请选择婚姻状况", trigger: "change" }],
+        // nations: [{ required: true, message: "请选择民族", trigger: "change" }],
+      },
       filterObject: {},
       peopleid: "",
       peopledeptid: "",
@@ -412,6 +553,22 @@ export default {
     },
   },
   methods: {
+    identityChange(iden){
+        let sex = null;
+        let birth = null;
+        let myDate = new Date();
+        let month = myDate.getMonth() + 1;
+        let day = myDate.getDate();
+          sex = iden.substring(16,17);
+          birth = iden.substring(6,10)+"-"+iden.substring(10,12)+"-"+iden.substring(12,14);
+          if (iden.substring(10, 12) < month || iden.substring(10, 12) == month && iden.substring(12, 14) <= day) age++;
+        if(sex%2 === 0)
+          sex = '女';
+        else
+          sex = '男';
+          this.formDataDetail.birthday=birth
+          this.formDataDetail.sex=this.sexoptions.find(val=>sex==val.label).value
+    },
     // 查询Start
     queryStaffInfo() {
       this.findPage();
@@ -428,7 +585,7 @@ export default {
       );
       this.rightSplitWidth = 100 - this.leftSplitWidth;
     },
-    findLeftTreeData: function () {
+    findLeftTreeData(){
       this.$api.dept.findDeptTree().then((res) => {
         this.ztreeNodes = res.data;
       });
@@ -436,26 +593,44 @@ export default {
     onZTreeClick: function (evt, treeId, treeNode) {
       // 点击事件
       this.currentTreeNode = evt;
-      this.pageData.deptId = this.currentTreeNode.id;
+       this.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);
-    },
     //联级选择器触发事件
     handleChange(val) {
       if (val.length !== 0) {
         this.formData.deptId = val.at(-1);
       }
     },
+  
+       // 下一步
+       nextStep() {
+      this.$refs.formData.validate((valid) => {
+        if (valid) {
+          this.activeName = '2'
+          // this.formData.deptIdCom= this.formData.deptId 
+          // this.formData.deptId =  this.formData.deptId.at(-1);
+          // if (this.formData.referrerId) {
+          //   this.formData.referrerName = this.recommenderOptions.find(val => this.formData.referrerId == val.id).name
+          // }
+          // this.$api.user.saveOrUpdate(this.formData).then((res) => {
+          //   if (res.code == 200) {
+          //   this.activeName='2'
+          //   this.basicInformation=res.data
+          //   } else {
+          //     this.$message({
+          //       message: `操作失败,请重新添加,(${res.msg})`,
+          //       type: "error",
+          //     });
+          //   }
+          // });
+        }
+      });
+  },
     // 右侧列表的方法Start
     findPage(data) {
       // 获取分页数据
@@ -490,20 +665,44 @@ export default {
         })
        
     },
-   
-    handleTableEdit(params) {
-      this.$api.dept.findDeptTree().then((res) => {
-        this.option = res.data;
+    beforeTabLeave(){
+      let p = new Promise((resolve, reject) => {
+        this.$refs.formData.validate(async (valid) => {
+          valid ? resolve() : reject();
+          if (valid !== resolve()) {
+            // this.$message.error("请完善基本信息!");
+          }
+        
+        });
       });
-      this.$api.user.getUserDatail(params.row.userId).then((result) => {
-        if(result.code==200){
-            result.data.status+=''
-          this.formData=result.data
-          this.formData.password=''
-        }
-      })
-      this.dialogTitle = "编辑后线人员";
-      this.dialogVisible = true;
+      return p;
+    },
+    async handleTableEdit(params) {
+      this.activeName = '1'
+      let res = await this.$api.user.getUserDatail(params.row.userId)
+      if (res.code == 200) {
+        res.data.sysUser.status += ''
+        this.formData = res.data.sysUser
+        this.formDataDetail = res.data.sysUserInfo?res.data.sysUserInfo:{}
+        this.formData.password = ''
+        this.dialogTitle = "编辑后线人员";
+        this.dialogVisible = true;
+      }
+      else {
+        this.$message.error(res.msg);
+      }
+      // this.$api.dept.findDeptTree().then((res) => {
+      //   this.option = res.data;
+      // });
+      // this.$api.user.getUserDatail(params.row.userId).then((result) => {
+      //   if(result.code==200){
+      //       result.data.status+=''
+      //     this.formData=result.data
+      //     this.formData.password=''
+      //   }
+      // })
+      // this.dialogTitle = "编辑后线人员";
+      // this.dialogVisible = true;
     },
     // 删除单个人员
     handleTableDeleteFlag(data) {
@@ -523,21 +722,17 @@ export default {
     },
     //添加人员
     handleAddButton() {
-      //级联渲染部门列表
-      this.$api.dept.findDeptTree().then((res) => {
-        this.option = res.data;
-      });
       if (this.currentTreeNode == null) {
         this.$message.info("请选择所属公司或部门");
         return;
       }
-      // let deptId=''
-      // if(this.formData.deptId){
-      //    deptId = this.formData.deptId.at(-1);
-      // }
-      this.formData={
-        deptId:this.pageData.deptId
+      this.formData = {
+        roleId: '22',
+        status: '',
+        deptId: this.deptId
       }
+      this.formDataDetail = {}
+      this.activeName = '1'
       this.dialogTitle = "新增后线人员";
       this.dialogVisible = true;
     },
@@ -582,36 +777,58 @@ export default {
     },
     // 提交
     submitForm() {
-      this.$refs.formData.validate((valid) => {
+      this.$refs.formDataDetail.validate((valid) => {
         if (valid) {
-          this.$confirm("确认提交审核吗?", "提示", {})
+          this.$confirm("确认提交吗?", "提示", {})
             .then(() => {
-              // this.formData.deptIdCom= this.formData.deptId 
-              // this.formData.deptId =  this.formData.deptId.at(-1);
-              this.$api.user.saveOrUpdate(this.formData).then((res) => {
-                if (res.code == 200) {
-                  this.$message({
-                    message: "操作成功",
-                    type: "success",
-                  });
-                  this.dialogVisible = false;
-                  this.$refs["formData"].resetFields();
-                  this.findPage();
-                } else {
-                  this.$message({
-                    message: `操作失败,请重新添加,(${res.msg})`,
-                    type: "error",
-                  });
-                }
-              });
+              // if(!this.basicInformation.id && this.dialogTitle =="新增代理人"){
+              //   this.$message({
+              //     message: '请先填写基本信息!!!',
+              //     type: 'warning'
+              //   });
+              //   return false
+              // }
+              if (this.dialogTitle == '新增后线人员') {
+                this.$api.user.saveUserInfo({ sysUser: this.formData, sysUserInfo: this.formDataDetail }).then((res) => {
+                  if (res.code == 200) {
+                    this.$message({
+                      message: "保存成功",
+                      type: "success",
+                    });
+                    this.dialogVisible = false;
+                    this.$refs["formData"].resetFields();
+                    this.$refs["formDataDetail"].resetFields();
+                    this.findPage();
+                  } else {
+                    this.$message({
+                      message: `保存失败,请重新添加,(${res.msg})`,
+                      type: "error",
+                    });
+                  }
+                });
+              }
+              else{
+                this.$api.user.updateUserInfo(this.formData.id,{ sysUser: this.formData, sysUserInfo: this.formDataDetail }).then((res) => {
+                  if (res.code == 200) {
+                    this.$message({
+                      message: "编辑成功",
+                      type: "success",
+                    });
+                    this.dialogVisible = false;
+                    this.$refs["formData"].resetFields();
+                    this.$refs["formDataDetail"].resetFields();
+                    this.findPage();
+                  } else {
+                    this.$message({
+                      message: `编辑失败,请重新添加,(${res.msg})`,
+                      type: "error",
+                    });
+                  }
+                });
+              }
+
             })
-            .catch(() => {
-              this.$message({
-                type: "info",
-                message: "已取消提交",
-              });
-            });
-        } 
+        }
       });
     },
   },

+ 315 - 97
src/views/PeopleManage/TeamLeader/TeamLeaderExamine.vue

@@ -95,94 +95,217 @@
       </Split>
     </el-main>
 
-    <el-dialog
-      :title="dialogTitle"
-      width="60%"
-      :visible.sync="dialogVisible"
-      :close-on-click-modal="false"
-      @close="closeDialog"
-      v-dialogDrag
-    >
-      <el-form
-        :model="formData"
-        :rules="formDataRules"
-        ref="formData"
-        :inline="true"
-        label-width="130px"
-        size="small"
-      >
-        <el-row>
-          <el-col :span="8" >
-          <el-form-item label="机构名称" prop="deptId">
-            <el-cascader
-            style="width:200px"
-              :options="option"
-              v-model="formData.deptId"
-              clearable
-              :show-all-levels="false"
-               disabled
-              :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-col>
-          <el-form-item label="手机号" prop="mobile">
-            <el-input v-model="formData.mobile" disabled></el-input>
-          </el-form-item>
-          <el-col :span="8">
-            <el-form-item label="邮箱" prop="email">
-              <el-input v-model="formData.email" disabled></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item label="名称" prop="name">
-              <el-input v-model="formData.name" disabled></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 disabled></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item label="性别" prop="sex">
-              <el-select
-                    style="width:200px"
-                    v-model="formData.sex"
-                    disabled
-                    placeholder="请选择"
-                  >
+    <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="130px" size="small">
+            <el-row>
+              <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-row>
+          </el-form>
+          <div style="text-align: right;">
+            <el-button size="small" type="primary" @click="nextStep">下一步</el-button>
+          </div>
+        </el-tab-pane>
+        <el-tab-pane label="详细信息" name="2">
+          <el-form :rules="formDataRules" :model="formDataDetail" ref="formDataDetail" :inline="true"
+            @keyup.enter.native="submitForml('提交审核')" label-width="130px" 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-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="22">
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="出生日期" prop="birthday">
+                  <el-date-picker disabled style="width:200px" v-model="formDataDetail.birthday" type="date"
+                    placeholder="选择日期">
+                  </el-date-picker>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="户籍" prop="koseki">
+                  <el-input disabled v-model="formDataDetail.koseki"></el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="婚姻状况" prop="maritalStatus">
+                  <el-select disabled v-model="formDataDetail.maritalStatus" placeholder="请选择婚姻状况" style="width:200px">
+                    <el-option label="未婚" value="未婚"></el-option>
+                    <el-option label="已婚" value="已婚"></el-option>
+                    <el-option label="离异" value="离异"></el-option>
+                    <el-option label="再婚" value="再婚"></el-option>
+                  </el-select>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="民族" prop="nations">
+                  <el-select disabled style="width:200px" v-model="formDataDetail.nations" placeholder="请选择民族">
+                    <el-option :label="national" :value="national" v-for="national in nationalList"
+                      :key="national"></el-option>
+                  </el-select>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="政治面貌" prop="politicsStatus">
+                  <el-select disabled style="width:200px" v-model="formDataDetail.politicsStatus" placeholder="请选择">
+                    <el-option label="群众" value="群众"></el-option>
+                    <el-option label="共青团员" value="共青团员"></el-option>
+                    <el-option label="中共党员" value="中共党员"></el-option>
+                  </el-select>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="健康状况" prop="health">
+                  <el-select disabled style="width:200px" v-model="formDataDetail.health" placeholder="请选择">
+                    <el-option label="健康" value="健康"></el-option>
+                    <el-option label="亚健康" value="亚健康"></el-option>
+                    <el-option label="疾病" value="疾病"></el-option>
+                  </el-select>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="邮政编码" prop="postalCode">
+                  <el-input disabled v-model="formDataDetail.postalCode"></el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="居住地址" prop="address">
+                  <el-input disabled v-model="formDataDetail.address"></el-input>
+                </el-form-item>
+              </el-col>
+
+              <el-col :span="8">
+                <el-form-item label="血型" prop="bloodType">
+                  <el-select disabled style="width:200px" v-model="formDataDetail.bloodType" placeholder="请选择">
+                    <el-option label="A型" value="A型"></el-option>
+                    <el-option label="B型" value="B型"></el-option>
+                    <el-option label="O型" value="O型"></el-option>
+                    <el-option label="AB型" value="AB型"></el-option>
+                  </el-select>
+                </el-form-item>
+              </el-col>
+              <el-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-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-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
             style="width: 30vw;"
-              v-model="formData.remark"
+              v-model="formDataDetail.remark"
               type="textarea"
               :autosize="{ minRows: 4, maxRows: 6 }"
               placeholder="请输入内容"
@@ -194,7 +317,7 @@
           </el-col>
         </el-row>
       </el-form>
-      <span slot="footer" class="dialog-footer" >
+      <div style="text-align: right;">
         <el-button
           size="mini"
           type="primary"
@@ -215,8 +338,11 @@
           @click="closeDialog"
           >取消</el-button
         >
-      </span>
-      </el-dialog>
+      </div>
+        </el-tab-pane>
+      </el-tabs>
+
+    </el-dialog>
 
 
   </div>
@@ -225,7 +351,6 @@
 <script>
 import tree from "@/components/ztree.vue"; // 机构树组件
 import KtCommonTable from "@/views/Core/KtCommonTable.vue"; //表格组件
-import Cookies from "js-cookie";
 
 export default {
   components: {
@@ -234,6 +359,66 @@ export default {
   },
   data() {
     return {
+      activeName: '1',
+      //56个民族
+      nationalList: [
+        "汉族",
+        "壮族",
+        "满族",
+        "回族",
+        "苗族",
+        "维吾尔族",
+        "土家族",
+        "彝族",
+        "蒙古族",
+        "藏族",
+        "布依族",
+        "侗族",
+        "瑶族",
+        "朝鲜族",
+        "白族",
+        "哈尼族",
+        "哈萨克族",
+        "黎族",
+        "傣族",
+        "畲族",
+        "傈僳族",
+        "仡佬族",
+        "东乡族",
+        "高山族",
+        "拉祜族",
+        "水族",
+        "佤族",
+        "纳西族",
+        "羌族",
+        "土族",
+        "仫佬族",
+        "锡伯族",
+        "柯尔克孜族",
+        "达斡尔族",
+        "景颇族",
+        "毛南族",
+        "撒拉族",
+        "布朗族",
+        "塔吉克族",
+        "阿昌族",
+        "普米族",
+        "鄂温克族",
+        "怒族",
+        "京族",
+        "基诺族",
+        "德昂族",
+        "保安族",
+        "俄罗斯族",
+        "裕固族",
+        "乌兹别克族",
+        "门巴族",
+        "鄂伦春族",
+        "独龙族",
+        "塔塔尔族",
+        "赫哲族",
+        "珞巴族",
+      ],
       pageData:{
         pageNum: 1,
         pageSize: 20,
@@ -247,6 +432,7 @@ export default {
       formDataRules:{
         remark: [{ required: true, message: "请填写备注", trigger: "blur" }],
         },
+        formDataDetail: {},
       filterObject: {},
       peopleid: "",
       peopledeptid: "",
@@ -332,6 +518,15 @@ export default {
     this.changeTreeWidth(240); // 初始化树的宽度
   },
   methods: {
+    handleDialogBefore(done) {
+      // 退出对话框之前确认提示
+      var that = this;
+      this.$confirm("确认关闭?")
+        .then((_) => {
+          done();
+        })
+        .catch((_) => {});
+    },
     // 查询Start
     queryStaffInfo() {
         this.pageData.realName=this.queryFrom.name
@@ -422,18 +617,41 @@ export default {
         });
     },
     handleTableEdit(params){
-      this.$api.dept.findDeptTree().then((res) => {
-        this.option = res.data;
-      });
-      this.$api.user.getUserDatail(params.row.userId).then((result) => {
-        if(result.code==200){
-            result.data.status+=''
-          this.formData=result.data
+      this.$api.user.getUserDatail(params.row.userId).then((res) => {
+        if(res.code==200){
+          res.data.sysUser.status += ''
+        this.formData = res.data.sysUser
+        this.formDataDetail = res.data.sysUserInfo?res.data.sysUserInfo:{}
+        this.formData.password = ''
         }
       })
-      this.dialogTitle = "审核后线人员";
+      this.dialogTitle = "审核团队长";
       this.dialogVisible = true;
     },
+     // 下一步
+     nextStep() {
+      this.$refs.formData.validate((valid) => {
+        if (valid) {
+          this.activeName = '2'
+          // this.formData.deptIdCom= this.formData.deptId 
+          // this.formData.deptId =  this.formData.deptId.at(-1);
+          // if (this.formData.referrerId) {
+          //   this.formData.referrerName = this.recommenderOptions.find(val => this.formData.referrerId == val.id).name
+          // }
+          // this.$api.user.saveOrUpdate(this.formData).then((res) => {
+          //   if (res.code == 200) {
+          //   this.activeName='2'
+          //   this.basicInformation=res.data
+          //   } else {
+          //     this.$message({
+          //       message: `操作失败,请重新添加,(${res.msg})`,
+          //       type: "error",
+          //     });
+          //   }
+          // });
+        }
+      });
+  },
      //联级选择器触发事件
      handleChange(val) {
       if (val.length !== 0) {
@@ -453,10 +671,10 @@ export default {
           }
         });
       } else {
-        this.$refs.formData.validate(valid => {
+        this.$refs.formDataDetail.validate(valid => {
           if (valid) {
             this.$api.user
-              .getApprovalNotPass({ userId: this.formData.id,reason:this.formData.remark })
+              .getApprovalNotPass({ userId: this.formData.id,reason:this.formDataDetail.remark })
               .then(result => {
                 if (result.code == 200 && result.data) {
                   this.$message({

+ 414 - 200
src/views/PeopleManage/TeamLeader/TeamLeaderManage.vue

@@ -116,130 +116,232 @@
 
 
 
-<!-- 新增修改界面 -->
+<!-- 新增修改界面 -->
 
-<el-dialog
-      :title="dialogTitle"
-      width="60%"
-      :visible.sync="dialogVisible"
-      :close-on-click-modal="false"
-      :before-close="handleDialogBefore"
-      @close="closeDialog"
-      v-dialogDrag
-    >
-      <el-form
-        :model="formData"
-        :rules="formDataRules"
-        ref="formData"
-        :inline="true"
-        @keyup.enter.native="submitForm('提交审核')"
-        label-width="130px"
-        size="small"
-      >
-        <el-row>
-          <el-col :span="8" >
-          <el-form-item label="机构名称" prop="deptId">
-            <el-cascader
-            style="width:200px"
-              :options="option"
-              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="email">
-              <el-input v-model="formData.email"></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="sex">
-              <el-select
-                    style="width:200px"
-                    v-model="formData.sex"
-                    placeholder="请选择"
-                  >
+<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"  :before-leave="beforeTabLeave">
+        <el-tab-pane label="基本信息" name="1">
+          <el-form :model="formData" :rules="formDataRules" ref="formData" :inline="true" @keyup.enter.native="nextStep()"
+            label-width="130px" size="small">
+            <el-row>
+              <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" @change="identityChange"></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-row>
+          </el-form>
+          <div style="text-align: right;">
+            <el-button size="small" type="primary" @click="nextStep">下一步</el-button>
+          </div>
+        </el-tab-pane>
+        <el-tab-pane label="详细信息" name="2">
+          <el-form :model="formDataDetail" :rules="formDataRulesDetail" ref="formDataDetail" :inline="true"
+           label-width="130px" size="small">
+            <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>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="性别" prop="sex">
+                  <el-select style="width:200px" v-model="formDataDetail.sex" placeholder="请选择">
                     <el-option v-for="val in sexoptions" :label="val.label" :value="val.value" :key="val.id"></el-option>
                   </el-select>
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item label="状态" prop="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-row>
-      </el-form>
-      <span slot="footer" class="dialog-footer" >
-        <el-button
-          size="small"
-          type="primary"
-          style="background-color: #ffc000; border: 1px solid #ffc000"
-          @click="closeDialog"
-          >取消</el-button
-        >
-        <el-button
-          size="small"
-          type="primary"
-          @click="submitForm"
-          >提交</el-button
-        >
-      </span>
-      </el-dialog>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="出生日期" prop="birthday">
+                  <el-date-picker style="width:200px" v-model="formDataDetail.birthday" type="date" placeholder="选择日期">
+                  </el-date-picker>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="户籍" prop="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 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="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-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>
+               </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-col :span="8">
+                <el-form-item label="学历" prop="education">
+                  <el-select style="width:200px" v-model="formDataDetail.education" placeholder="请选择">
+                    <el-option label="小学" value="小学"></el-option>
+                    <el-option label="初中" value="初中"></el-option>
+                    <el-option label="高中" value="高中"></el-option>
+                    <el-option label="专科" value="专科"></el-option>
+                    <el-option label="本科" value="本科"></el-option>
+                    <el-option label="硕士" value="硕士"></el-option>
+                    <el-option label="博士" value="博士"></el-option>
+                  </el-select>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                  <el-form-item label="毕业院校" prop="school">
+                    <el-input v-model="formDataDetail.school"></el-input>
+                  </el-form-item>
+                </el-col>
+              <el-col :span="8">
+                <el-form-item label="毕业时间" prop="graduationTime">
+                  <el-date-picker  style="width:200px" v-model="formDataDetail.graduationTime" type="date" placeholder="选择日期">
+                  </el-date-picker>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="原工作单位" prop="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="agentQualificationCode">
+                  <el-input v-model="formDataDetail.agentQualificationCode"></el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="紧急联系人电话" prop="emergencyContactTel">
+                  <el-input v-model="formDataDetail.emergencyContactTel"></el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="紧急联系人姓名" prop="emergencyContactName">
+                  <el-input v-model="formDataDetail.emergencyContactName"></el-input>
+                </el-form-item>
+              </el-col>
+            </el-row>
+          </el-form>
+          <div style="text-align: right;">
+            <el-button size="small" type="primary" style="background-color: #ffc000; border: 1px solid #ffc000"
+              @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>
+          </div>
+        </el-tab-pane>
+      </el-tabs>
+
+    </el-dialog>
 
   </div>
 </template>
 
 <script>
-import Cookies from "js-cookie";
 import KtButton from "@/views/Core/KtButton"; // 按钮权限组件
 import tree from "@/components/ztree.vue"; // 机构树组件
 import KtCommonTable from "@/views/Core/KtCommonTable.vue"; //表格组件
+import { validateSfz } from "../../../utils/validate.js";
+
 export default {
   components: {
     KtButton,
@@ -247,40 +349,68 @@ export default {
     KtCommonTable,
   },
   data() {
-    //验证身份证
-    var validateIdCard = (rule, value, callback) => {
-      let that = this;
-      var pattern =
-        /^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X|x)$/;
-      if (!pattern.test(value) || value == "") {
-        callback(new Error("身份证输入有误"));
-      } else {
-        let upperCaseValue = value.toUpperCase();
-        var such = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];
-        var sum = 0;
-        for (var i = 0; i < value.length - 1; i++) {
-          var product = value[i] * such[i];
-          sum += product;
-        }
-        var result = sum % 11;
-        var example = ["1", "0", "X", "9", "8", "7", "6", "5", "4", "3", "2"];
-        if (upperCaseValue[17] == example[result]) {
-          that.formData.identity = upperCaseValue;
-          that.formData.birthday =
-            value.substr(6, 4) +
-            "-" +
-            value.substr(10, 2) +
-            "-" +
-            value.substr(12, 2);
-          that.formData.sex = value.substr(16, 1) % 2 == 0 ? "女" : "男";
-          callback();
-        } else {
-          callback(new Error("身份证输入有误"));
-        }
-      }
-    };
 
     return {
+      activeName: '1',
+      //56个民族
+      nationalList: [
+        "汉族",
+        "壮族",
+        "满族",
+        "回族",
+        "苗族",
+        "维吾尔族",
+        "土家族",
+        "彝族",
+        "蒙古族",
+        "藏族",
+        "布依族",
+        "侗族",
+        "瑶族",
+        "朝鲜族",
+        "白族",
+        "哈尼族",
+        "哈萨克族",
+        "黎族",
+        "傣族",
+        "畲族",
+        "傈僳族",
+        "仡佬族",
+        "东乡族",
+        "高山族",
+        "拉祜族",
+        "水族",
+        "佤族",
+        "纳西族",
+        "羌族",
+        "土族",
+        "仫佬族",
+        "锡伯族",
+        "柯尔克孜族",
+        "达斡尔族",
+        "景颇族",
+        "毛南族",
+        "撒拉族",
+        "布朗族",
+        "塔吉克族",
+        "阿昌族",
+        "普米族",
+        "鄂温克族",
+        "怒族",
+        "京族",
+        "基诺族",
+        "德昂族",
+        "保安族",
+        "俄罗斯族",
+        "裕固族",
+        "乌兹别克族",
+        "门巴族",
+        "鄂伦春族",
+        "独龙族",
+        "塔塔尔族",
+        "赫哲族",
+        "珞巴族",
+      ],
       pageData:{
         pageNum: 1,
         pageSize: 20,
@@ -308,7 +438,24 @@ export default {
         // password: [{ required: true, message: "请填写密码", trigger: "blur" }],
         status: [{ required: true, message: "请选择状态", trigger: "change" }],
         // roleId: [{ required: true, message: "请填写角色", trigger: "blur" }],
+        identity:
+        [{ required: true, message: "请填写身份证号" },
+        { validator: validateSfz }], 
         },
+        formDataDetail: {},
+      formDataRulesDetail: {
+        // accountno: [{ required: true, message: "请填写开户账号", trigger: "blur" }],
+        // address: [{ required: true, message: "请填写居住地址", trigger: "blur" }],
+        // bankName: [{ required: true, message: "请填写开户行", trigger: "blur" }],
+        // birthday: [{ required: true, message: "请填写出生日期", trigger: "blur" }],
+        // identity:
+        // [{ required: true, message: "请填写身份证号" },
+        // { validator: validateSfz }], 
+
+        // koseki: [{ required: true, message: "请填写户籍", trigger: "blur" }],
+        // maritalStatus: [{ required: true, message: "请选择婚姻状况", trigger: "change" }],
+        // nations: [{ required: true, message: "请选择民族", trigger: "change" }],
+      },
       filterObject: {},
       peopleid: "",
       peopledeptid: "",
@@ -433,26 +580,35 @@ export default {
     onZTreeClick: function (evt, treeId, treeNode) {
       // 点击事件
       this.currentTreeNode = evt;
-      this.pageData.deptId = this.currentTreeNode.id;
+      this.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);
-    },
     //联级选择器触发事件
     handleChange(val) {
       if (val.length !== 0) {
         this.formData.deptId = val.at(-1);
       }
     },
+    identityChange(iden){
+        let sex = null;
+        let birth = null;
+        let myDate = new Date();
+        let month = myDate.getMonth() + 1;
+        let day = myDate.getDate();
+          sex = iden.substring(16,17);
+          birth = iden.substring(6,10)+"-"+iden.substring(10,12)+"-"+iden.substring(12,14);
+          if (iden.substring(10, 12) < month || iden.substring(10, 12) == month && iden.substring(12, 14) <= day) age++;
+        if(sex%2 === 0)
+          sex = '女';
+        else
+          sex = '男';
+          this.formDataDetail.birthday=birth
+          this.formDataDetail.sex=this.sexoptions.find(val=>sex==val.label).value
+    },
     // 右侧列表的方法Start
     findPage(data) {
       // 获取分页数据
@@ -487,20 +643,56 @@ export default {
         })
        
     },
-   
-    handleTableEdit(params) {
-      this.$api.dept.findDeptTree().then((res) => {
-        this.option = res.data;
+    beforeTabLeave(){
+      let p = new Promise((resolve, reject) => {
+        this.$refs.formData.validate(async (valid) => {
+          valid ? resolve() : reject();
+          if (valid !== resolve()) {
+            // this.$message.error("请完善基本信息!");
+          }
+        
+        });
       });
-      this.$api.user.getUserDatail(params.row.userId).then((result) => {
-        if(result.code==200){
-            result.data.status+=''
-          this.formData=result.data
-          this.formData.password=''
+      return p;
+    },
+       // 下一步
+       nextStep() {
+      this.$refs.formData.validate((valid) => {
+        if (valid) {
+          this.activeName = '2'
+          // this.formData.deptIdCom= this.formData.deptId 
+          // this.formData.deptId =  this.formData.deptId.at(-1);
+          // if (this.formData.referrerId) {
+          //   this.formData.referrerName = this.recommenderOptions.find(val => this.formData.referrerId == val.id).name
+          // }
+          // this.$api.user.saveOrUpdate(this.formData).then((res) => {
+          //   if (res.code == 200) {
+          //   this.activeName='2'
+          //   this.basicInformation=res.data
+          //   } else {
+          //     this.$message({
+          //       message: `操作失败,请重新添加,(${res.msg})`,
+          //       type: "error",
+          //     });
+          //   }
+          // });
         }
-      })
-      this.dialogTitle = "编辑后线人员";
-      this.dialogVisible = true;
+      });
+  },
+    async handleTableEdit(params) {
+      this.activeName = '1'
+      let res = await this.$api.user.getUserDatail(params.row.userId)
+      if (res.code == 200) {
+        res.data.sysUser.status += ''
+        this.formData = res.data.sysUser
+        this.formDataDetail = res.data.sysUserInfo?res.data.sysUserInfo:{}
+        this.formData.password = ''
+        this.dialogTitle = "编辑团队长";
+        this.dialogVisible = true;
+      }
+      else {
+        this.$message.error(res.msg);
+      }
     },
     // 删除单个人员
     handleTableDeleteFlag(data) {
@@ -520,10 +712,6 @@ export default {
     },
     //添加人员
     handleAddButton() {
-      //级联渲染部门列表
-      this.$api.dept.findDeptTree().then((res) => {
-        this.option = res.data;
-      });
       if (this.currentTreeNode == null) {
         this.$message.info("请选择所属公司或部门");
         return;
@@ -532,12 +720,16 @@ export default {
       // if(this.formData.deptId){
       //    deptId = this.formData.deptId.at(-1);
       // }
-      this.formData={
-        roleId:'21',
-        deptId:this.pageData.deptId
+      this.formData = {
+        roleId: '21',
+        status: '',
+        deptId: this.deptId
       }
-      this.dialogTitle = "新增后线人员";
+      this.formDataDetail = {}
+      this.activeName = '1'
+      this.dialogTitle = "新增团队长";
       this.dialogVisible = true;
+      
     },
     // 新增或修改的弹出框Start
     getDictItems(typeName) {
@@ -581,36 +773,58 @@ export default {
     },
     // 提交
     submitForm() {
-      this.$refs.formData.validate((valid) => {
+      this.$refs.formDataDetail.validate((valid) => {
         if (valid) {
-          this.$confirm("确认提交审核吗?", "提示", {})
+          this.$confirm("确认提交吗?", "提示", {})
             .then(() => {
-              // this.formData.deptIdCom= this.formData.deptId 
-              // this.formData.deptId =  this.formData.deptId.at(-1);
-              this.$api.user.saveOrUpdate(this.formData).then((res) => {
-                if (res.code == 200) {
-                  this.$message({
-                    message: "操作成功",
-                    type: "success",
-                  });
-                  this.dialogVisible = false;
-                  this.$refs["formData"].resetFields();
-                  this.findPage();
-                } else {
-                  this.$message({
-                    message: `操作失败,请重新添加,(${res.msg})`,
-                    type: "error",
-                  });
-                }
-              });
+              // if(!this.basicInformation.id && this.dialogTitle =="新增代理人"){
+              //   this.$message({
+              //     message: '请先填写基本信息!!!',
+              //     type: 'warning'
+              //   });
+              //   return false
+              // }
+              if (this.dialogTitle == '新增团队长') {
+                this.$api.user.saveUserInfo({ sysUser: this.formData, sysUserInfo: this.formDataDetail }).then((res) => {
+                  if (res.code == 200) {
+                    this.$message({
+                      message: "保存成功",
+                      type: "success",
+                    });
+                    this.dialogVisible = false;
+                    this.$refs["formData"].resetFields();
+                    this.$refs["formDataDetail"].resetFields();
+                    this.findPage();
+                  } else {
+                    this.$message({
+                      message: `保存失败,请重新添加,(${res.msg})`,
+                      type: "error",
+                    });
+                  }
+                });
+              }
+              else{
+                this.$api.user.updateUserInfo(this.formData.id,{ sysUser: this.formData, sysUserInfo: this.formDataDetail }).then((res) => {
+                  if (res.code == 200) {
+                    this.$message({
+                      message: "编辑成功",
+                      type: "success",
+                    });
+                    this.dialogVisible = false;
+                    this.$refs["formData"].resetFields();
+                    this.$refs["formDataDetail"].resetFields();
+                    this.findPage();
+                  } else {
+                    this.$message({
+                      message: `编辑失败,请重新添加,(${res.msg})`,
+                      type: "error",
+                    });
+                  }
+                });
+              }
+
             })
-            .catch(() => {
-              this.$message({
-                type: "info",
-                message: "已取消提交",
-              });
-            });
-        } 
+        }
       });
     },
   },