<template>
  <basic-container>
    <el-drawer title="录用人员" append-to-body :visible.sync="drawer" size="80%" class="drawer" :before-close="drawerClose">
      <!-- <div class="tipsWrap" v-show="getUserConfig.insuranceOn == 1">录用人员说明：不在保期的人员，不可以录用，请先到 “商保管理" 模块申请投保</div> -->
      <div class="tipsWrap1" v-show="getUserConfig.insuranceOn == 1 && employState == 1">
        说明：录用成功后，平台自动计算保期，任务开始前一天自动投保，确保录用人员任务期内均有商保。</div>
      <div class="tipsWrap2" v-show="getUserConfig.insuranceOn == 1 && employState == 2">
        说明：录用人员取消后，投保可自动取消（任务开始前一天20:00以后，不再支持取消操作）。</div>
      <avue-crud :option="option" :table-loading="loading" :data="data" :page.sync="page" ref="crud" v-model="obj"
        :permission="permissionList" @search-change="searchChange" @search-reset="searchReset"
        @selection-change="selectionChange" @current-change="currentChange" @size-change="sizeChange"
        @refresh-change="refreshChange" class="customPage" @on-load="onLoad">
        <!--自定义列-->
        <template slot="period" slot-scope="{row}">
          <span v-if="row.startTime && row.endTime">
            <el-tag type="warning"
              v-if="row.serviceStatus == 0">{{ dateFormat(row.startTime) }}-{{ dateFormat(row.endTime) }}</el-tag>
            <el-tag type="success"
              v-if="row.serviceStatus == 1">{{ dateFormat(row.startTime) }}-{{ dateFormat(row.endTime) }}</el-tag>
            <el-tag type="danger"
              v-if="row.serviceStatus == 2">{{ dateFormat(row.startTime) }}-{{ dateFormat(row.endTime) }}</el-tag>
            <el-tag type="info"
              v-if="row.serviceStatus == 3">{{ dateFormat(row.startTime) }}-{{ dateFormat(row.endTime) }}</el-tag>
          </span>
        </template>
        <template slot="serviceStatus" slot-scope="{row}">
          <span>
            <el-tag type="warning" v-if="row.serviceStatus == 0">未生效</el-tag>
            <el-tag type="success" v-if="row.serviceStatus == 1">生效中</el-tag>
            <el-tag type="danger" v-if="row.serviceStatus == 2">即将失效</el-tag>
            <el-tag type="info" v-if="row.serviceStatus == 3">已失效</el-tag>
          </span>

        </template>
        <template slot="missionDate" slot-scope="{ row }">
          <div>{{ row.startDate }}至{{ row.endDate }}</div>
        </template>
        <template slot="resume" slot-scope="{ row }">
          <div>
            <el-button type="text" size="mini" @click="$refs.resume.openDialog(row)"
              v-if="row.userId && row.userId !== '0'">查看简历</el-button>
            <div v-else>暂无简历</div>
          </div>
        </template>
        <template slot="canBao" slot-scope="{ row }">
          <div>
            <el-button type="text" size="mini">{{ row.canBao }}</el-button>
          </div>
        </template>
        <!--/自定义列-->
        <!--自定义搜索-->
        <template slot-scope slot="statusSearch">
          <!-- <el-select v-model="query.status" placeholder="请选择录用状态">
            <el-option
              :key="item.value"
              :label="item.label"
              :value="item.value"
              v-for="item in personType"
            ></el-option>
          </el-select>-->
          <el-radio-group v-model="query.status" @change="radioButtonChange()">
            <el-radio-button v-for="(item, key, index) in personType" :key="index" :label="item.value"
              :disabled="personTypeDisabledFlag">{{ item.label }}</el-radio-button>
          </el-radio-group>
        </template>
        <!--/自定义搜索-->
        <div slot="menu" slot-scope="{ row }">
          <el-button type="text" size="mini" @click="rowEmploy(row)"
            v-show="employState === 1 && status === 1">录用</el-button>
          <!-- <el-popover v-show="employState === 1 && status === 1 && row.effect"
            placement="top-start"
            title="提示："
            width="260"
            trigger="click"
            content="您选择的人员当前未在保期内，请您前去”商保管理”投保之后再次录用“"
            v-show="employState === 1 && status === 1 && !row.effect"
            >
            <el-button type="text" size="mini" slot="reference" class="selectBtn">录用</el-button>
          </el-popover> -->
          <el-button type="text" size="mini" @click="rowDel(row)"
            v-show="employState === 2 && status === 1">取消</el-button>
          <el-button type="text" size="mini" @click="rowCheck(row)"
            v-show="employState === 2 && status === 1 && companyContractOn == 1">查看合同</el-button>
        </div>
        <!-- <div slot="menu" slot-scope="{ row }" v-else-if="getUserConfig.insuranceOn == 0">
          <el-button
            type="text"
            size="mini"
            @click="rowEmploy(row)"
            v-show="employState === 1 && status === 1"
            >录用</el-button
          >
          <el-button
            type="text"
            size="mini"
            @click="rowDel(row)"
            v-show="employState === 2 && status === 1"
            >取消</el-button
          >
          <el-button
            type="text"
            size="mini"
            @click="rowCheck(row)"
            v-show="employState === 2 && status === 1 && companyContractOn==1"
            >查看合同</el-button
          >
        </div> -->
        <!--/自定义操作栏-->
        <!--自定义按钮-->
        <template slot="menuLeft">
          <el-button type="primary" size="small" :disabled="!selectionList.length" icon="el-icon-plus"
            @click="handleEmploy" v-show="employState === 1 && status === 1">批量录用</el-button>
          <!-- <el-button
            type="primary"
            size="small"
            icon="el-icon-delete"
            :disabled="!selectionList.length"
            @click="handleDelete"
            v-show="employState === 2 && status === 1"
            >批量取消</el-button
          > -->
        </template>
        <template v-slot:cardNumber="{ row }">
          <span>{{ idNumberDDesensitization(row.cardNumber) }}</span>
        </template>

      </avue-crud>
      <el-dialog title="" :visible.sync="dialogVisible" width="35%" :modal=false>
        <div>
          <img class="" :src="'data:image/png;base64,' + imgStr" width="100%" />
        </div>
        <span slot="footer" class="dialog-footer">
          <el-button @click="dialogVisible = false">取 消</el-button>
          <el-button type="primary" @click="downLoadContract">下载合同</el-button>
        </span>
      </el-dialog>
      <el-dialog title="" :visible.sync="dialogVisible1" width="30%" :modal=false>
        <div>
          <p style="text-align:center; font-size:16px">您选择<span
              class="employ-employNum-count">{{ employNum }}</span>人准备录用，请输入密码并确定录用</p>
          <el-form :model="pwdForm" ref="pwdForm" :rules="pwdFormRules">
            <el-form-item label="输入密码：" prop="pwd" :label-position="labelPosition" label-width="100px">
              <el-col :span="16">
                <el-input type="number" v-model="pwdForm.pwd" maxlength="6"
                  onKeypress="return(/^[0-9]*$/.test(String.fromCharCode(event.keyCode)))" show-password
                  placeholder="请输入六位数字密码"></el-input>
              </el-col>
            </el-form-item>
            <el-form-item class="employ-forgetPwd">
              <el-button type="text" @click="forgetPwd">忘记密码？</el-button>
            </el-form-item>
          </el-form>
        </div>
        <span slot="footer" class="dialog-footer">
          <el-button type="primary" @click="PWDOk" :loading="loadingbut">{{ loadingbuttext }}</el-button>
          <el-button @click="dialogVisible1 = false">取 消</el-button>
        </span>
      </el-dialog>

      <!--忘记密码dialog-->
      <el-dialog title="重置密码" :visible.sync="resetPwdDialogVisible" append-to-body width="30%">
        <el-form class="econtract-resetForm" label-position="right" :model="resetPwdForm" :rules="resetPwdRules"
          ref="resetPwdForm">
          <el-form-item label="手机号码：" :label-width="formLabelWidth" prop="account">
            <span>{{ phone }}</span>
          </el-form-item>
          <el-form-item label="请输入验证码：" :label-width="formLabelWidth" prop="code">
            <el-input v-model="resetPwdForm.code" autocomplete="off" style="width: 50%;"></el-input>
            <el-button :disabled="msgKey" style="margin-left: 15px;" type="primary"
              @click="getCode">{{ msgText }}</el-button>
          </el-form-item>
          <el-form-item label="请设置新密码：" :label-width="formLabelWidth" prop="pwd">
            <el-input type="number" v-model="resetPwdForm.pwd" maxlength="6"
              onKeypress="return(/^[0-9]*$/.test(String.fromCharCode(event.keyCode)))" autocomplete="off" show-password
              placeholder="请输入六位数字密码"></el-input>
          </el-form-item>
          <el-form-item label="请再次输入新密码：" :label-width="formLabelWidth" prop="pwd2">
            <el-input type="number" maxlength="6" onKeypress="return(/^[0-9]*$/.test(String.fromCharCode(event.keyCode)))"
              v-model="resetPwdForm.pwd2" autocomplete="off" show-password placeholder="请再次输入六位数字密码"></el-input>
          </el-form-item>
        </el-form>
        <div slot="footer" class="dialog-footer">
          <el-button @click="resetPwdDialogVisible = false">取 消</el-button>
          <el-button type="primary" @click="submitResetPwd">确 认</el-button>
        </div>
      </el-dialog>

    </el-drawer>
    <Resume ref="resume"></Resume>
    <employ-information ref="order" :checkDisplayVisible="checkDisplayVisible" :fpData="fpData" :fpTitleId='fpTitleId'
      :usersInfo="userInfo" @checkDisplayVisibleClose="checkDisplayVisibleClose"
      @refresh="refreshChange"></employ-information>
  </basic-container>
</template>

<script>
import { employList, cancelEmploy, employ } from "@/api/tenant/mission";
import { viewContractImg, certCheckPass, getCode, resetPwd } from "@/api/manage/econtract.js";//api
import { contractDownload } from "@/api/manage/esignature.js";//api
import Resume from "@/components/resume/index";
import { idNumberDDesensitization } from "@/util/util";
import { applyStatus } from '@/api/manage/econtract'
import { mapGetters } from 'vuex'
import { dateFormat } from "@/util/date";
import { getConfig } from '@/api/tenant/config'
import EmployInformation from "./EmployInformation";
import { validatenull } from "@/util/validate";
import { getFpDetail, getAddressAll } from "@/api/tenant/fp";
export default {
  comments: {},
  components: {
    Resume,
    EmployInformation
  },
  props: {
    status: Number,
  },

  data() {
    const validatePwdLength = (rule, value, callback) => {
      if (value.length != 6 || isNaN(Number(value))) {
        callback(new Error('请输入6位数的数字密码'));
      }
      else {
        callback();
      }
    }

    const validatePwd = (rule, value, callback) => {
      if (value != this.resetPwdForm.pwd) {
        callback(new Error('两次输入密码不一致'));
      }
      else {
        callback();
      }
    };
    const validPwdNums = (rule, value, callback) => {
      if (value.length != 6 || isNaN(Number(value))) {
        callback(new Error('请输入6位数的数字密码'));
      }
      else {
        callback();
      }
    }

    return {
      selectTaskInfo: {},
      getUserConfig: {},
      checkDisplayVisible: false,
      fpTitleId: '',
      fpData: {},
      pwdFormRules: {
        pwd: [
          {
            required: true, message: '请输入密码', trigger: 'blur'
          },
          {
            validator: validatePwdLength, trigger: 'blur'
          },

        ]
      },
      companyContractOn: '',//电子合同状态
      conpanySealOn: '',//签章状态
      selectionFlag: true,
      /*忘记密码*/
      resetPwdDialogVisible: false,
      resetPwdForm: {},
      formLabelWidth: '150px',
      msgText: '获取验证码',
      msgTime: 120,
      cancel: '',
      //重置密码校验
      resetPwdRules: {
        code: [
          {
            required: true, message: '请输入验证码', trigger: 'blur'
          }
        ],
        pwd: [
          {
            required: true, message: '请输入密码', trigger: 'blur'
          },
          {
            validator: validPwdNums, trigger: 'blur'
          }
        ],
        pwd2: [
          {
            required: true, message: '请输入确认密码', trigger: 'blur'
          },
          {
            validator: validatePwd, trigger: 'blur'
          }
        ]

      },

      loadingbut: false,
      loadingbuttext: '确定',
      downLoadRow: {},
      dataCurClick: {},
      employDataIds: 1,
      employNum: 1,
      imgStr: '',
      isIndeterminate: false,
      checkAll: false,
      checked: false,
      missionId: "",
      loading: false,
      selectionList: [],
      dialogVisible: false,
      dialogVisible1: false,
      contractId: '',
      labelPosition: 'right',
      pwdForm: {
        pwd: ''
      },
      page: {
        pageSize: 20,
        currentPage: 1,
        total: 0,
      },
      query: {
        status: 1,
      },
      personType: [
        {
          value: 1,
          label: "待录用",
        },
        {
          value: 2,
          label: "已录用",
        },
      ],
      drawer: false,
      data: [],
      personTypeDisabledFlag: true,
      obj: {},

    };
  },
  computed: {
    ...mapGetters(['userInfo']),
    ids() {
      let ids = [];
      this.selectionList.forEach((ele) => {
        ids.push(ele.id);
      });
      return ids.join(",");
    },
    employState() {
      return this.query.status;
    },
    option() {
      //const self = this;
      return {
        height: "auto",
        align: "center",
        menuAlign: "center",
        tip: false,
        addBtn: false,
        viewBtn: false,
        delBtn: false,
        editBtn: false,
        excelBtn: false,
        columnBtn: false,
        searchBtn: true,
        searchShow: true,
        searchMenuSpan: 6,
        searchLabelWidth: 60,
        menuPosition: "center",
        labelPosition: "right",
        border: true,
        index: false,
        // index: true,
        // indexLabel: "序号",
        selection: this.selectionFlag,
        selectable: function (row) {
          return !row.noSelection;
        },
        dialogType: "drawer",
        dialogWidth: "60%",
        dialogClickModal: false,
        column: [
          {
            label: "",
            prop: "status",
            search: true,
            searchSpan: 5,
            searchLabelWidth: 1,
            hide: true,
            searchslot: true,
          },
          {
            label: "姓名",
            prop: "realName",
            search: true,
            searchSpan: 4,
            width: 70,
          },
          {
            label: "性别",
            prop: "sex",
            search: false,
            width: 50,
            dicData: [
              {
                label: "男",
                value: 1,
              },
              {
                label: "女",
                value: 2,
              },
            ],
          },
          {
            label: "年龄",
            prop: "age",
            search: false,
            width: 50,
          },
          {
            label: "手机号",
            prop: "telphone",
            search: false,
            width: 100,
          },
          {
            label: "身份证",
            prop: "cardNumber",
            search: false,
            slot: true,
            width: 110
          },
          {
            label: "最新保期",
            prop: "period",
            searchSpan: 5,
            display: false,
            slot: true,
            width: 190
          },
          {
            label: "商保状态",
            prop: "serviceStatus",
            searchSpan: 5,
            display: false,
            type: 'select',
            dicData: [
              {
                label: '未生效',
                value: 0
              },
              {
                label: '生效中',
                value: 1
              },
              {
                label: '即将失效',
                value: 2
              },
              {
                label: '已失效',
                value: 3
              },
            ],
            slot: true,
          },
          {
            label: "工种",
            prop: "workTypes",
          },
          {
            label: "来源",
            prop: "src",
            search: false,
            width: 70,
          },
          {
            label: "人才库",
            prop: "groupId",
            type: "tree",
            span: 24,
            search: true,
            display: true,
            width: '150',
            dicUrl: `/api/jobslink-api/tenant/talents/group/listAll`,
            dicFormatter: (res) => {
              return res.data.list; //返回字典的层级结构
            },
            props: {
              label: "groupName",
              value: "id",
            },
            placeholder: "请选择分组",
          },
        ],
      };
    },
  },
  watch: {
    "query.status": function (val, oldVal) {
      if (val == 1) {
        this.selectionFlag = true;
      } else {
        this.selectionFlag = false;
      }
      this.query.realName = '';
      this.query.groupId = '';
      if (val !== oldVal) {
        this.query.status = val;
        this.page.currentPage = 1;
        this.onLoad(this.page, this.query);
      }
    },
  },
  mounted() {
    this.checkStatus();
  },
  methods: {
    checkDisplayVisibleClose() {
      this.checkDisplayVisible = false;
    },
    /*获取发票数据*/
    async getData() {
      this.usersInfo = this.data;
      const self = this;
      self.drawerLoading = true;
      await getFpDetail().then((res) => {
        self.fpData = res.data.data;
        self.fpTitleId = self.fpData.id;
        self.drawerLoading = false;
      });
      self.drawerLoading = true;
      await getAddressAll().then((res) => {
        const data = res.data.data;
        self.addresses = data;
        self.drawerLoading = false;
      });

      if (validatenull(self.fpData)) {
        self.$message.warning("请完善您的发票抬头信息");
      } else if (validatenull(self.addresses)) {
        self.$message.warning("请完善您的发票收件地址");
      } else {
        self.checkDisplayVisible = true;
        self.$refs.order.openDialog(this.selectTaskInfo, this.employDataIds, this.selectionList);
        self.$refs.order.getData(self.addresses);
      }
    },
    rowEmployDisabled() {
    },
    dateFormat(date) {
      return dateFormat(new Date(date), 'yyyy/MM/dd')
    },
    checkStatus() {
      this.companyContractOn = 0;//电子合同是否启用，0=未启用
      this.conpanySealOn = 0;//电子签章是否设置，0=未设置,1=等待审核，2=已设置
      // applyStatus().then(res=>{
      //   this.companyContractOn=res.data.data.contractOn;//电子合同是否启用，0=未启用
      //   this.conpanySealOn=res.data.data.sealOn;//电子签章是否设置，0=未设置,1=等待审核，2=已设置
      // })
    },
    idNumberDDesensitization,
    //输入密码点击确定
    PWDOk() {
      this.$refs.pwdForm.validate(valid => {
        if (valid) {
          this.loadingbut = true;
          this.loadingbuttext = '提交中...';
          certCheckPass(this.pwdForm.pwd).then((res) => {
            if (res.data.data == true) {//输入签章密码正确走录用流程
              this.employApi(this.employDataIds);
            } else {
              this.$message.closeAll();
              this.$message({
                type: "error",
                message: "密码输入错误!",
              });
              this.loadingbut = false;
              this.loadingbuttext = '确定';
            }
          })
        }

      })

    },
    /*录用人员*/
    rowEmploy(row) {
      this.dataCurClick = row;
      this.employDataIds = row.id;
      this.employNum = 1;
      this.pwdForm.pwd = '';
      if (this.getUserConfig.insuranceOn == 1) {
        this.getData();
      } else {

        if (this.companyContractOn != 0) {
          this.dialogVisible1 = true;
        }
        else {
          this.employApi(this.employDataIds);
        }
      }


    },
    drawerClose() {
      this.$emit('refresh');
      this.drawer = false;
    },
    radioButtonChange() {
      this.query.realName = '';
      this.query.groupId = '';
      this.personTypeDisabledFlag = true;
      this.page.total = 0;
      this.data = [];
      if (this.query.status == 2) {
        this.selectionFlag = false;
        this.data = this.employedData;

      } else {
        this.selectionFlag = true;
        this.data = this.waitEmployedData;
      }
    },
    /*打开drawer*/
    openDialog(row, status) {
      this.selectTaskInfo = row;
      this.missionId = row.missionNo;
      this.query = {
        status: status,
      };
      if (this.$refs.crud) {
        this.$refs.crud.searchReset();
      } else {
        this.onLoad(this.page, this.query);
      }
      this.drawer = true;
    },
    //查看合同
    rowCheck(row) {
      this.downLoadRow = row;
      if (row.contractStatus == true) {
        viewContractImg(row.userId, row.missionNo).then((res) => {
          window.open(res.data.data.url)
          // this.imgStr = res.data.data.url;
          // this.contractId = res.data.data.id;
          // this.dialogVisible = true;
        })
      }
      else {
        this.$message.closeAll();
        this.$message.warning('合同生成中，请稍后查看');
      }


    },
    //下载合同
    downLoadContract() {
      window.open(contractDownload(this.contractId))
    },
    /*单行取消*/
    rowDel(row) {
      const h = this.$createElement;
      this.$confirm(
        h("div", null, [
          h("p", { style: "font-size: 16px" }, "您确定要取消录用该人员吗? "),
        ]),
        {
          type: "warning",
          showClose: false,
          showCancelButton: true,
          confirmButtonText: "确定",
          cancelButtonText: "取消",
          beforeClose: (action, instance, done) => {
            if (action === "confirm") {
              instance.confirmButtonLoading = true;
              instance.cancelButtonLoading = true;
              instance.closeOnPressEscape = false;
              instance.closeOnClickModal = false;
              setTimeout(() => {
                done();
                setTimeout(() => {
                  instance.confirmButtonLoading = false;
                  instance.cancelButtonLoading = false;
                }, 300);
              }, 1000);
            } else {
              done();
            }
          },
        }
      )
        .then(() => {
          cancelEmploy(this.missionId, row.id).then(
            () => {
              this.$message({
                type: "success",
                message: "操作成功!",
              });
              this.onLoad(this.page);
              this.$emit("refresh");
            },
            (error) => {
              window.console.log(error);
            }
          );
        })
        .catch(() => {
        });
    },
    /*批量录用*/
    handleEmploy() {
      if (this.selectionList.length === 0) {
        this.$message.warning("请选择至少一条数据");
        return;
      }
      const h = this.$createElement;
      this.$confirm(
        h("div", null, [
          h("p", { style: "font-size: 16px" }, "您确定要批量录用选中人员吗? "),
        ]),
        {
          type: "warning",
          showClose: false,
          showCancelButton: true,
          confirmButtonText: "确定",
          cancelButtonText: "取消",
          beforeClose: (action, instance, done) => {
            if (action === "confirm") {
              instance.confirmButtonLoading = true;
              instance.cancelButtonLoading = true;
              instance.closeOnPressEscape = false;
              instance.closeOnClickModal = false;
              setTimeout(() => {
                done();
                setTimeout(() => {
                  instance.confirmButtonLoading = false;
                  instance.cancelButtonLoading = false;
                }, 300);
              }, 1000);
            } else {
              done();
            }
          },
        }
      )
        .then(() => {
          this.employNum = this.selectionList.length;
          this.pwdForm.pwd = '';
          //未开通合同，不显示输入密码框
          this.employDataIds = this.ids;
          if (this.getUserConfig.insuranceOn == 1) {
            this.getData();
          } else {

            if (this.companyContractOn != 0) {
              this.dialogVisible1 = true;
            }
            else {
              this.employApi(this.employDataIds);
            }
          }
        })
        .catch(() => {
        });
    },
    employApi(ids) {
      employ(this.missionId, ids, 0, 0).then(
        () => {
          this.loadingbut = false;
          this.loadingbuttext = '确定';
          this.$message({
            type: "success",
            message: "操作成功!",
          });
          this.dialogVisible1 = false;
          this.onLoad(this.page, this.query);
          this.$emit("refresh");
        },
        (error) => {
          this.loadingbut = false;
          this.loadingbuttext = '确定';
          window.console.log(error);
          this.dialogVisible1 = false;
        }
      );
    },
    /*批量取消*/
    handleDelete() {
      if (this.selectionList.length === 0) {
        this.$message.warning("请选择至少一条数据");
        return;
      }
      const h = this.$createElement;
      this.$confirm(
        h("div", null, [
          h("p", { style: "font-size: 16px" }, "您确定要批量取消选中人员吗? "),
        ]),
        {
          type: "warning",
          showClose: false,
          showCancelButton: true,
          confirmButtonText: "确定",
          cancelButtonText: "取消",
          beforeClose: (action, instance, done) => {
            if (action === "confirm") {
              instance.confirmButtonLoading = true;
              instance.cancelButtonLoading = true;
              instance.closeOnPressEscape = false;
              instance.closeOnClickModal = false;
              setTimeout(() => {
                done();
                setTimeout(() => {
                  instance.confirmButtonLoading = false;
                  instance.cancelButtonLoading = false;
                }, 300);
              }, 1000);
            } else {
              done();
            }
          },
        }
      )
        .then(() => {
          cancelEmploy(this.missionId, this.ids).then(
            () => {
              this.$message({
                type: "success",
                message: "操作成功!",
              });
              this.onLoad(this.page);
              this.$emit("refresh");
            },
            (error) => {
              window.console.log(error);
            }
          );
        })
        .catch(() => {
        });
    },
    searchReset() {
      this.query = {
        status: this.query.status,
      };
      this.onLoad(this.page, this.query);
    },
    searchChange(params, done) {
      this.page.currentPage = 1;
      this.query = {
        realName: params.realName,
        groupId: params.groupId,
        status: this.query.status,
        worktypes: params.worktypes,
      };
      this.onLoad(this.page, this.query);
      done();
    },
    selectionChange(list) {
      this.selectionList = list;
    },
    selectionClear() {
      this.selectionList = [];
      this.$refs.crud.toggleSelection();
    },
    currentChange(currentPage) {
      this.page.currentPage = currentPage;
    },
    sizeChange(pageSize) {
      this.page.pageSize = pageSize;
    },
    /*刷新本页 带搜索参数*/
    refreshChange() {
      this.onLoad(this.page);
    },
    /*加载数据*/
    onLoad(page, params) {
      this.data = [];
      getConfig().then((res) => {
        this.getUserConfig = res.data.data;
      });
      this.loading = true;
      let paramscur = params ? Object.assign(params, this.query) : this.query;
      employList(
        page.currentPage,
        page.pageSize,
        paramscur,
        this.missionId,
      ).then((res) => {
        const data = res.data.data;
        this.page.total = data.total;
        this.data = data.records;
        this.personTypeDisabledFlag = false;
        // if(this.query.status == 2){
        //   this.employedData = data.records;
        //   console.log(this.employedData);
        //   console.log()
        // }
        // if(this.query.status == 1){
        //   this.waitEmployedData = data.records;
        //   console.log(this.waitEmployedData);
        //   console.log(this.data)
        // }

        // if(this.getUserConfig.insuranceOn == 1){
        //     this.data.forEach((ele)=>{
        //       if(!ele.effect){
        //         ele.noSelection = 1;
        //       }
        //     })
        // }

        this.loading = false;
        /*let datas = data.records;
        datas.forEach((ele,index)=>{
          isGenerateContract(ele.userId,ele.missionNo).then((res) => {
            datas[index].successFlag = res.data.data;
          })
        })
        setTimeout(()=>{
          this.data = datas;
          this.loading = false;
        },1000)
        */
        this.selectionClear();
      });

    },
    /*返回首页*/
    backIndex() {
      this.$emit("refresh");
    },
    forgetPwd() {
      this.phone = this.userInfo.account;
      var pat = /(\d{3})\d*(\d{4})/;
      this.phone = this.phone.replace(pat, '$1****$2');
      this.resetPwdDialogVisible = true;
      this.resetPwdForm = {};
    },
    /*获取验证码*/
    getCode() {
      this.msgKey = true;
      this.msgText = "发送中...";
      getCode(this.userInfo.account)
        .then(() => {
          this.msgText = "剩余" + 120 + "s";
          this.msgKey = true;
          const time = setInterval(() => {
            this.msgTime--;
            this.msgText = "剩余" + this.msgTime + "s";
            if (this.msgTime <= 0) {
              this.msgTime = 120;
              this.msgText = "重新获取";
              this.msgKey = false;
              clearInterval(time);
            }
          }, 1000);
        })
        .catch(() => {
          this.msgText = "重新获取";
          this.msgKey = false;
        });

    },
    /*重置密码*/
    submitResetPwd() {
      this.$refs.resetPwdForm.validate(valid => {
        if (valid) {
          resetPwd(this.userInfo.account, this.resetPwdForm.pwd, this.resetPwdForm.code).then(() => {
            this.$message.success('密码重置成功');
            this.resetPwdDialogVisible = false;
          })
            .catch((err) => {
              this.$message.error(err);
            })
        }
      })
    },
  },
};
</script>

<style>
.selectBtn {
  color: #787879 !important;
}

.selectBtn:hover {
  color: #787879 !important;
}

.tipsWrap1 {
  font-size: 14px;
  color: #ff0000;
  position: absolute;
  margin-top: 75px;
  margin-left: 130px;
  /* top: 165px;
  left: 130px; */
}

.tipsWrap2 {
  font-size: 14px;
  color: #ff0000;
  position: absolute;
  margin-top: 75px;
  margin-left: 30px;
}

.employ-employNum-count {
  color: #2098ee;
}

.employ-forgetPwd {
  float: right;
  margin-top: -33px;
}
</style>
