2024-02-02 15:04:47 +08:00
|
|
|
|
<template>
|
|
|
|
|
|
<basic-container>
|
2024-02-04 16:11:12 +08:00
|
|
|
|
<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">
|
2024-02-02 15:04:47 +08:00
|
|
|
|
<!--自定义列-->
|
|
|
|
|
|
<template slot="period" slot-scope="{row}">
|
2024-02-04 16:11:12 +08:00
|
|
|
|
<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>
|
2024-02-02 15:04:47 +08:00
|
|
|
|
|
2024-02-04 16:11:12 +08:00
|
|
|
|
</template>
|
2024-02-02 15:04:47 +08:00
|
|
|
|
<template slot="missionDate" slot-scope="{ row }">
|
|
|
|
|
|
<div>{{ row.startDate }}至{{ row.endDate }}</div>
|
|
|
|
|
|
</template>
|
|
|
|
|
|
<template slot="resume" slot-scope="{ row }">
|
|
|
|
|
|
<div>
|
2024-02-04 16:11:12 +08:00
|
|
|
|
<el-button type="text" size="mini" @click="$refs.resume.openDialog(row)"
|
|
|
|
|
|
v-if="row.userId && row.userId !== '0'">查看简历</el-button>
|
2024-02-02 15:04:47 +08:00
|
|
|
|
<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()">
|
2024-02-04 16:11:12 +08:00
|
|
|
|
<el-radio-button v-for="(item, key, index) in personType" :key="index" :label="item.value"
|
|
|
|
|
|
:disabled="personTypeDisabledFlag">{{ item.label }}</el-radio-button>
|
2024-02-02 15:04:47 +08:00
|
|
|
|
</el-radio-group>
|
|
|
|
|
|
</template>
|
|
|
|
|
|
<!--/自定义搜索-->
|
|
|
|
|
|
<div slot="menu" slot-scope="{ row }">
|
2024-02-04 16:11:12 +08:00
|
|
|
|
<el-button type="text" size="mini" @click="rowEmploy(row)"
|
|
|
|
|
|
v-show="employState === 1 && status === 1">录用</el-button>
|
2024-02-02 15:04:47 +08:00
|
|
|
|
<!-- <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> -->
|
2024-02-04 16:11:12 +08:00
|
|
|
|
<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>
|
2024-02-02 15:04:47 +08:00
|
|
|
|
</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">
|
2024-02-04 16:11:12 +08:00
|
|
|
|
<el-button type="primary" size="small" :disabled="!selectionList.length" icon="el-icon-plus"
|
|
|
|
|
|
@click="handleEmploy" v-show="employState === 1 && status === 1">批量录用</el-button>
|
2024-02-02 15:04:47 +08:00
|
|
|
|
<!-- <el-button
|
|
|
|
|
|
type="primary"
|
|
|
|
|
|
size="small"
|
|
|
|
|
|
icon="el-icon-delete"
|
|
|
|
|
|
:disabled="!selectionList.length"
|
|
|
|
|
|
@click="handleDelete"
|
|
|
|
|
|
v-show="employState === 2 && status === 1"
|
|
|
|
|
|
>批量取消</el-button
|
|
|
|
|
|
> -->
|
|
|
|
|
|
</template>
|
2024-02-04 16:11:12 +08:00
|
|
|
|
<template v-slot:cardNumber="{ row }">
|
|
|
|
|
|
<span>{{ idNumberDDesensitization(row.cardNumber) }}</span>
|
2024-02-02 15:04:47 +08:00
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
|
|
</avue-crud>
|
2024-02-04 16:11:12 +08:00
|
|
|
|
<el-dialog title="" :visible.sync="dialogVisible" width="35%" :modal=false>
|
2024-02-02 15:04:47 +08:00
|
|
|
|
<div>
|
2024-02-04 16:11:12 +08:00
|
|
|
|
<img class="" :src="'data:image/png;base64,' + imgStr" width="100%" />
|
2024-02-02 15:04:47 +08:00
|
|
|
|
</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>
|
2024-02-04 16:11:12 +08:00
|
|
|
|
<el-dialog title="" :visible.sync="dialogVisible1" width="30%" :modal=false>
|
2024-02-02 15:04:47 +08:00
|
|
|
|
<div>
|
2024-02-04 16:11:12 +08:00
|
|
|
|
<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>
|
2024-02-02 15:04:47 +08:00
|
|
|
|
</el-form>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<span slot="footer" class="dialog-footer">
|
2024-02-04 16:11:12 +08:00
|
|
|
|
<el-button type="primary" @click="PWDOk" :loading="loadingbut">{{ loadingbuttext }}</el-button>
|
2024-02-02 15:04:47 +08:00
|
|
|
|
<el-button @click="dialogVisible1 = false">取 消</el-button>
|
|
|
|
|
|
</span>
|
|
|
|
|
|
</el-dialog>
|
|
|
|
|
|
|
|
|
|
|
|
<!--忘记密码dialog-->
|
|
|
|
|
|
<el-dialog title="重置密码" :visible.sync="resetPwdDialogVisible" append-to-body width="30%">
|
2024-02-04 16:11:12 +08:00
|
|
|
|
<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>
|
2024-02-02 15:04:47 +08:00
|
|
|
|
</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>
|
2024-02-04 16:11:12 +08:00
|
|
|
|
<el-button :disabled="msgKey" style="margin-left: 15px;" type="primary"
|
|
|
|
|
|
@click="getCode">{{ msgText }}</el-button>
|
2024-02-02 15:04:47 +08:00
|
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-form-item label="请设置新密码:" :label-width="formLabelWidth" prop="pwd">
|
2024-02-04 16:11:12 +08:00
|
|
|
|
<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>
|
2024-02-02 15:04:47 +08:00
|
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-form-item label="请再次输入新密码:" :label-width="formLabelWidth" prop="pwd2">
|
2024-02-04 16:11:12 +08:00
|
|
|
|
<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>
|
2024-02-02 15:04:47 +08:00
|
|
|
|
</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>
|
2024-02-04 16:11:12 +08:00
|
|
|
|
<employ-information ref="order" :checkDisplayVisible="checkDisplayVisible" :fpData="fpData" :fpTitleId='fpTitleId'
|
|
|
|
|
|
:usersInfo="userInfo" @checkDisplayVisibleClose="checkDisplayVisibleClose"
|
|
|
|
|
|
@refresh="refreshChange"></employ-information>
|
2024-02-02 15:04:47 +08:00
|
|
|
|
</basic-container>
|
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
|
|
<script>
|
|
|
|
|
|
import { employList, cancelEmploy, employ } from "@/api/tenant/mission";
|
2024-02-04 16:11:12 +08:00
|
|
|
|
import { viewContractImg, certCheckPass, getCode, resetPwd } from "@/api/manage/econtract.js";//api
|
|
|
|
|
|
import { contractDownload } from "@/api/manage/esignature.js";//api
|
2024-02-02 15:04:47 +08:00
|
|
|
|
import Resume from "@/components/resume/index";
|
|
|
|
|
|
import { idNumberDDesensitization } from "@/util/util";
|
2024-02-16 21:37:45 +08:00
|
|
|
|
// import { applyStatus } from '@/api/manage/econtract'
|
2024-02-04 16:11:12 +08:00
|
|
|
|
import { mapGetters } from 'vuex'
|
2024-02-02 15:04:47 +08:00
|
|
|
|
import { dateFormat } from "@/util/date";
|
2024-02-04 16:11:12 +08:00
|
|
|
|
import { getConfig } from '@/api/tenant/config'
|
2024-02-02 15:04:47 +08:00
|
|
|
|
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() {
|
2024-02-04 16:11:12 +08:00
|
|
|
|
const validatePwdLength = (rule, value, callback) => {
|
|
|
|
|
|
if (value.length != 6 || isNaN(Number(value))) {
|
|
|
|
|
|
callback(new Error('请输入6位数的数字密码'));
|
|
|
|
|
|
}
|
|
|
|
|
|
else {
|
|
|
|
|
|
callback();
|
2024-02-02 15:04:47 +08:00
|
|
|
|
}
|
2024-02-04 16:11:12 +08:00
|
|
|
|
}
|
2024-02-02 15:04:47 +08:00
|
|
|
|
|
2024-02-04 16:11:12 +08:00
|
|
|
|
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();
|
2024-02-02 15:04:47 +08:00
|
|
|
|
}
|
2024-02-04 16:11:12 +08:00
|
|
|
|
}
|
2024-02-02 15:04:47 +08:00
|
|
|
|
|
|
|
|
|
|
return {
|
2024-02-04 16:11:12 +08:00
|
|
|
|
selectTaskInfo: {},
|
|
|
|
|
|
getUserConfig: {},
|
2024-02-02 15:04:47 +08:00
|
|
|
|
checkDisplayVisible: false,
|
2024-02-04 16:11:12 +08:00
|
|
|
|
fpTitleId: '',
|
2024-02-02 15:04:47 +08:00
|
|
|
|
fpData: {},
|
2024-02-04 16:11:12 +08:00
|
|
|
|
pwdFormRules: {
|
|
|
|
|
|
pwd: [
|
2024-02-02 15:04:47 +08:00
|
|
|
|
{
|
2024-02-04 16:11:12 +08:00
|
|
|
|
required: true, message: '请输入密码', trigger: 'blur'
|
2024-02-02 15:04:47 +08:00
|
|
|
|
},
|
|
|
|
|
|
{
|
2024-02-04 16:11:12 +08:00
|
|
|
|
validator: validatePwdLength, trigger: 'blur'
|
2024-02-02 15:04:47 +08:00
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
]
|
|
|
|
|
|
},
|
2024-02-04 16:11:12 +08:00
|
|
|
|
companyContractOn: '',//电子合同状态
|
|
|
|
|
|
conpanySealOn: '',//签章状态
|
|
|
|
|
|
selectionFlag: true,
|
2024-02-02 15:04:47 +08:00
|
|
|
|
/*忘记密码*/
|
2024-02-04 16:11:12 +08:00
|
|
|
|
resetPwdDialogVisible: false,
|
|
|
|
|
|
resetPwdForm: {},
|
|
|
|
|
|
formLabelWidth: '150px',
|
2024-02-02 15:04:47 +08:00
|
|
|
|
msgText: '获取验证码',
|
2024-02-04 16:11:12 +08:00
|
|
|
|
msgTime: 120,
|
|
|
|
|
|
cancel: '',
|
2024-02-02 15:04:47 +08:00
|
|
|
|
//重置密码校验
|
|
|
|
|
|
resetPwdRules: {
|
2024-02-04 16:11:12 +08:00
|
|
|
|
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'
|
|
|
|
|
|
}
|
|
|
|
|
|
]
|
2024-02-02 15:04:47 +08:00
|
|
|
|
|
2024-02-04 16:11:12 +08:00
|
|
|
|
},
|
2024-02-02 15:04:47 +08:00
|
|
|
|
|
2024-02-04 16:11:12 +08:00
|
|
|
|
loadingbut: false,
|
|
|
|
|
|
loadingbuttext: '确定',
|
|
|
|
|
|
downLoadRow: {},
|
|
|
|
|
|
dataCurClick: {},
|
|
|
|
|
|
employDataIds: 1,
|
|
|
|
|
|
employNum: 1,
|
|
|
|
|
|
imgStr: '',
|
2024-02-02 15:04:47 +08:00
|
|
|
|
isIndeterminate: false,
|
|
|
|
|
|
checkAll: false,
|
|
|
|
|
|
checked: false,
|
|
|
|
|
|
missionId: "",
|
|
|
|
|
|
loading: false,
|
|
|
|
|
|
selectionList: [],
|
|
|
|
|
|
dialogVisible: false,
|
|
|
|
|
|
dialogVisible1: false,
|
2024-02-04 16:11:12 +08:00
|
|
|
|
contractId: '',
|
2024-02-02 15:04:47 +08:00
|
|
|
|
labelPosition: 'right',
|
|
|
|
|
|
pwdForm: {
|
2024-02-04 16:11:12 +08:00
|
|
|
|
pwd: ''
|
|
|
|
|
|
},
|
2024-02-02 15:04:47 +08:00
|
|
|
|
page: {
|
|
|
|
|
|
pageSize: 20,
|
|
|
|
|
|
currentPage: 1,
|
|
|
|
|
|
total: 0,
|
|
|
|
|
|
},
|
|
|
|
|
|
query: {
|
|
|
|
|
|
status: 1,
|
|
|
|
|
|
},
|
|
|
|
|
|
personType: [
|
|
|
|
|
|
{
|
|
|
|
|
|
value: 1,
|
2024-02-16 15:02:17 +08:00
|
|
|
|
label: "待登记",
|
2024-02-02 15:04:47 +08:00
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
value: 2,
|
2024-02-16 15:02:17 +08:00
|
|
|
|
label: "已录用登记",
|
2024-02-02 15:04:47 +08:00
|
|
|
|
},
|
|
|
|
|
|
],
|
|
|
|
|
|
drawer: false,
|
|
|
|
|
|
data: [],
|
2024-02-04 16:11:12 +08:00
|
|
|
|
personTypeDisabledFlag: true,
|
2024-02-02 15:04:47 +08:00
|
|
|
|
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,
|
2024-02-04 16:11:12 +08:00
|
|
|
|
width: 70,
|
2024-02-02 15:04:47 +08:00
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
label: "性别",
|
|
|
|
|
|
prop: "sex",
|
|
|
|
|
|
search: false,
|
2024-02-04 16:11:12 +08:00
|
|
|
|
width: 50,
|
2024-02-02 15:04:47 +08:00
|
|
|
|
dicData: [
|
|
|
|
|
|
{
|
|
|
|
|
|
label: "男",
|
|
|
|
|
|
value: 1,
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
label: "女",
|
|
|
|
|
|
value: 2,
|
|
|
|
|
|
},
|
|
|
|
|
|
],
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
label: "年龄",
|
|
|
|
|
|
prop: "age",
|
|
|
|
|
|
search: false,
|
2024-02-04 16:11:12 +08:00
|
|
|
|
width: 50,
|
2024-02-02 15:04:47 +08:00
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
label: "手机号",
|
|
|
|
|
|
prop: "telphone",
|
|
|
|
|
|
search: false,
|
2024-02-04 16:11:12 +08:00
|
|
|
|
width: 100,
|
2024-02-02 15:04:47 +08:00
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
label: "身份证",
|
|
|
|
|
|
prop: "cardNumber",
|
|
|
|
|
|
search: false,
|
|
|
|
|
|
slot: true,
|
2024-02-04 16:11:12 +08:00
|
|
|
|
width: 110
|
2024-02-02 15:04:47 +08:00
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
label: "工种",
|
|
|
|
|
|
prop: "workTypes",
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
label: "来源",
|
|
|
|
|
|
prop: "src",
|
|
|
|
|
|
search: false,
|
2024-02-04 16:11:12 +08:00
|
|
|
|
width: 70,
|
2024-02-02 15:04:47 +08:00
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
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) {
|
2024-02-04 16:11:12 +08:00
|
|
|
|
if (val == 1) {
|
2024-02-02 15:04:47 +08:00
|
|
|
|
this.selectionFlag = true;
|
2024-02-04 16:11:12 +08:00
|
|
|
|
} else {
|
2024-02-02 15:04:47 +08:00
|
|
|
|
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);
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
2024-02-04 16:11:12 +08:00
|
|
|
|
mounted() {
|
2024-02-02 15:04:47 +08:00
|
|
|
|
this.checkStatus();
|
|
|
|
|
|
},
|
|
|
|
|
|
methods: {
|
2024-02-04 16:11:12 +08:00
|
|
|
|
checkDisplayVisibleClose() {
|
2024-02-02 15:04:47 +08:00
|
|
|
|
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;
|
2024-02-04 16:11:12 +08:00
|
|
|
|
self.$refs.order.openDialog(this.selectTaskInfo, this.employDataIds, this.selectionList);
|
2024-02-02 15:04:47 +08:00
|
|
|
|
self.$refs.order.getData(self.addresses);
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
2024-02-04 16:11:12 +08:00
|
|
|
|
rowEmployDisabled() {
|
2024-02-02 15:04:47 +08:00
|
|
|
|
},
|
2024-02-04 16:11:12 +08:00
|
|
|
|
dateFormat(date) {
|
|
|
|
|
|
return dateFormat(new Date(date), 'yyyy/MM/dd')
|
2024-02-02 15:04:47 +08:00
|
|
|
|
},
|
2024-02-04 16:11:12 +08:00
|
|
|
|
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=已设置
|
|
|
|
|
|
// })
|
2024-02-02 15:04:47 +08:00
|
|
|
|
},
|
|
|
|
|
|
idNumberDDesensitization,
|
2024-02-04 16:11:12 +08:00
|
|
|
|
//输入密码点击确定
|
|
|
|
|
|
PWDOk() {
|
|
|
|
|
|
this.$refs.pwdForm.validate(valid => {
|
|
|
|
|
|
if (valid) {
|
|
|
|
|
|
this.loadingbut = true;
|
|
|
|
|
|
this.loadingbuttext = '提交中...';
|
|
|
|
|
|
certCheckPass(this.pwdForm.pwd).then((res) => {
|
|
|
|
|
|
if (res.data.data == true) {//输入签章密码正确走录用流程
|
2024-02-02 15:04:47 +08:00
|
|
|
|
this.employApi(this.employDataIds);
|
2024-02-04 16:11:12 +08:00
|
|
|
|
} else {
|
2024-02-02 15:04:47 +08:00
|
|
|
|
this.$message.closeAll();
|
2024-02-04 16:11:12 +08:00
|
|
|
|
this.$message({
|
2024-02-02 15:04:47 +08:00
|
|
|
|
type: "error",
|
|
|
|
|
|
message: "密码输入错误!",
|
|
|
|
|
|
});
|
2024-02-04 16:11:12 +08:00
|
|
|
|
this.loadingbut = false;
|
|
|
|
|
|
this.loadingbuttext = '确定';
|
|
|
|
|
|
}
|
|
|
|
|
|
})
|
|
|
|
|
|
}
|
2024-02-02 15:04:47 +08:00
|
|
|
|
|
2024-02-04 16:11:12 +08:00
|
|
|
|
})
|
2024-02-02 15:04:47 +08:00
|
|
|
|
|
2024-02-04 16:11:12 +08:00
|
|
|
|
},
|
2024-02-02 15:04:47 +08:00
|
|
|
|
/*录用人员*/
|
|
|
|
|
|
rowEmploy(row) {
|
|
|
|
|
|
this.dataCurClick = row;
|
|
|
|
|
|
this.employDataIds = row.id;
|
|
|
|
|
|
this.employNum = 1;
|
|
|
|
|
|
this.pwdForm.pwd = '';
|
2024-02-04 16:11:12 +08:00
|
|
|
|
if (this.getUserConfig.insuranceOn == 1) {
|
2024-02-02 15:04:47 +08:00
|
|
|
|
this.getData();
|
2024-02-04 16:11:12 +08:00
|
|
|
|
} else {
|
2024-02-02 15:04:47 +08:00
|
|
|
|
|
2024-02-04 16:11:12 +08:00
|
|
|
|
if (this.companyContractOn != 0) {
|
2024-02-02 15:04:47 +08:00
|
|
|
|
this.dialogVisible1 = true;
|
|
|
|
|
|
}
|
2024-02-04 16:11:12 +08:00
|
|
|
|
else {
|
2024-02-02 15:04:47 +08:00
|
|
|
|
this.employApi(this.employDataIds);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
},
|
2024-02-04 16:11:12 +08:00
|
|
|
|
drawerClose() {
|
|
|
|
|
|
this.$emit('refresh');
|
|
|
|
|
|
this.drawer = false;
|
2024-02-02 15:04:47 +08:00
|
|
|
|
},
|
2024-02-04 16:11:12 +08:00
|
|
|
|
radioButtonChange() {
|
2024-02-02 15:04:47 +08:00
|
|
|
|
this.query.realName = '';
|
|
|
|
|
|
this.query.groupId = '';
|
|
|
|
|
|
this.personTypeDisabledFlag = true;
|
|
|
|
|
|
this.page.total = 0;
|
|
|
|
|
|
this.data = [];
|
2024-02-04 16:11:12 +08:00
|
|
|
|
if (this.query.status == 2) {
|
2024-02-02 15:04:47 +08:00
|
|
|
|
this.selectionFlag = false;
|
|
|
|
|
|
this.data = this.employedData;
|
|
|
|
|
|
|
2024-02-04 16:11:12 +08:00
|
|
|
|
} else {
|
2024-02-02 15:04:47 +08:00
|
|
|
|
this.selectionFlag = true;
|
|
|
|
|
|
this.data = this.waitEmployedData;
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
/*打开drawer*/
|
|
|
|
|
|
openDialog(row, status) {
|
2024-02-04 16:11:12 +08:00
|
|
|
|
this.selectTaskInfo = row;
|
2024-02-02 15:04:47 +08:00
|
|
|
|
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;
|
|
|
|
|
|
},
|
|
|
|
|
|
//查看合同
|
2024-02-04 16:11:12 +08:00
|
|
|
|
rowCheck(row) {
|
2024-02-02 15:04:47 +08:00
|
|
|
|
this.downLoadRow = row;
|
2024-02-04 16:11:12 +08:00
|
|
|
|
if (row.contractStatus == true) {
|
|
|
|
|
|
viewContractImg(row.userId, row.missionNo).then((res) => {
|
2024-02-02 15:04:47 +08:00
|
|
|
|
window.open(res.data.data.url)
|
2024-02-04 16:11:12 +08:00
|
|
|
|
// this.imgStr = res.data.data.url;
|
|
|
|
|
|
// this.contractId = res.data.data.id;
|
|
|
|
|
|
// this.dialogVisible = true;
|
|
|
|
|
|
})
|
2024-02-02 15:04:47 +08:00
|
|
|
|
}
|
2024-02-04 16:11:12 +08:00
|
|
|
|
else {
|
2024-02-02 15:04:47 +08:00
|
|
|
|
this.$message.closeAll();
|
|
|
|
|
|
this.$message.warning('合同生成中,请稍后查看');
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
//下载合同
|
2024-02-04 16:11:12 +08:00
|
|
|
|
downLoadContract() {
|
2024-02-02 15:04:47 +08:00
|
|
|
|
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;
|
2024-02-04 16:11:12 +08:00
|
|
|
|
if (this.getUserConfig.insuranceOn == 1) {
|
2024-02-02 15:04:47 +08:00
|
|
|
|
this.getData();
|
2024-02-04 16:11:12 +08:00
|
|
|
|
} else {
|
2024-02-02 15:04:47 +08:00
|
|
|
|
|
2024-02-04 16:11:12 +08:00
|
|
|
|
if (this.companyContractOn != 0) {
|
2024-02-02 15:04:47 +08:00
|
|
|
|
this.dialogVisible1 = true;
|
|
|
|
|
|
}
|
2024-02-04 16:11:12 +08:00
|
|
|
|
else {
|
2024-02-02 15:04:47 +08:00
|
|
|
|
this.employApi(this.employDataIds);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
})
|
|
|
|
|
|
.catch(() => {
|
|
|
|
|
|
});
|
|
|
|
|
|
},
|
2024-02-04 16:11:12 +08:00
|
|
|
|
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;
|
|
|
|
|
|
}
|
|
|
|
|
|
);
|
2024-02-02 15:04:47 +08:00
|
|
|
|
},
|
|
|
|
|
|
/*批量取消*/
|
|
|
|
|
|
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 = [];
|
2024-02-04 16:11:12 +08:00
|
|
|
|
getConfig().then((res) => {
|
|
|
|
|
|
this.getUserConfig = res.data.data;
|
2024-02-02 15:04:47 +08:00
|
|
|
|
});
|
|
|
|
|
|
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");
|
|
|
|
|
|
},
|
2024-02-04 16:11:12 +08:00
|
|
|
|
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 = {};
|
2024-02-02 15:04:47 +08:00
|
|
|
|
},
|
|
|
|
|
|
/*获取验证码*/
|
|
|
|
|
|
getCode() {
|
2024-02-04 16:11:12 +08:00
|
|
|
|
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;
|
|
|
|
|
|
});
|
2024-02-02 15:04:47 +08:00
|
|
|
|
|
2024-02-04 16:11:12 +08:00
|
|
|
|
},
|
|
|
|
|
|
/*重置密码*/
|
|
|
|
|
|
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) => {
|
2024-02-02 15:04:47 +08:00
|
|
|
|
this.$message.error(err);
|
|
|
|
|
|
})
|
2024-02-04 16:11:12 +08:00
|
|
|
|
}
|
|
|
|
|
|
})
|
|
|
|
|
|
},
|
2024-02-02 15:04:47 +08:00
|
|
|
|
},
|
|
|
|
|
|
};
|
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
|
|
<style>
|
2024-02-04 16:11:12 +08:00
|
|
|
|
.selectBtn {
|
|
|
|
|
|
color: #787879 !important;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.selectBtn:hover {
|
|
|
|
|
|
color: #787879 !important;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.tipsWrap1 {
|
2024-02-02 15:04:47 +08:00
|
|
|
|
font-size: 14px;
|
|
|
|
|
|
color: #ff0000;
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
margin-top: 75px;
|
|
|
|
|
|
margin-left: 130px;
|
|
|
|
|
|
/* top: 165px;
|
|
|
|
|
|
left: 130px; */
|
|
|
|
|
|
}
|
2024-02-04 16:11:12 +08:00
|
|
|
|
|
|
|
|
|
|
.tipsWrap2 {
|
2024-02-02 15:04:47 +08:00
|
|
|
|
font-size: 14px;
|
|
|
|
|
|
color: #ff0000;
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
margin-top: 75px;
|
|
|
|
|
|
margin-left: 30px;
|
|
|
|
|
|
}
|
2024-02-04 16:11:12 +08:00
|
|
|
|
|
|
|
|
|
|
.employ-employNum-count {
|
|
|
|
|
|
color: #2098ee;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.employ-forgetPwd {
|
|
|
|
|
|
float: right;
|
|
|
|
|
|
margin-top: -33px;
|
|
|
|
|
|
}
|
2024-02-02 15:04:47 +08:00
|
|
|
|
</style>
|