取消applyStatus/whetherSetSignPwd两个接口

This commit is contained in:
dengxin
2024-02-04 16:11:12 +08:00
parent 7c9769466f
commit d4dda18720
8 changed files with 978 additions and 1018 deletions

View File

@@ -1,136 +1,128 @@
import request from '@/router/axios';
import { getToken } from '@/util/auth'
import request from "@/router/axios";
import { getToken } from "@/util/auth";
//申请开通电子签章
export const apply =
(data) => {
export const apply = (data) => {
return request({
url: `jobslink-api/doc/docCompanySeal/signseal/apply`,
method: 'post',
data:data
})
}
method: "post",
data: data,
});
};
//电子合同状态
export const applyStatus =
() => {
export const applyStatus = () => {
return request({
url: '/api/jobslink-api/doc/company/cert/company/status',
method: 'get',
params: {}
})
}
//电子合同管理列表
export const tenantList =
(current, size, params) =>request({
url: '/api/jobslink-api/doc/contract/tenant/list',
method: 'get',
url: "/api/jobslink-api/doc/company/cert/company/status",
method: "get",
params: {},
});
};
//电子合同管理列表
export const tenantList = (current, size, params) =>
request({
url: "/api/jobslink-api/doc/contract/tenant/list",
method: "get",
params: {
...params,
current,
size,
},
headers:{
'content-type':'application/pdf'
}
})
headers: {
"content-type": "application/pdf",
},
});
//企业-录用人员-已录用中查看合同
export const viewContractImg =
(userId,missionsNo) => {
export const viewContractImg = (userId, missionsNo) => {
return request({
url: '/api/jobslink-api/doc/contract/mission/viewContract',
method: 'get',
url: "/api/jobslink-api/doc/contract/mission/viewContract",
method: "get",
params: {
userId:userId,
missionsNo:missionsNo
}
})
}
userId: userId,
missionsNo: missionsNo,
},
});
};
//企业-录用人员-已录用中是否显示查看合同
export const isGenerateContract =
(userId,missionsNo) => {
export const isGenerateContract = (userId, missionsNo) => {
return request({
url: '/api/jobslink-api/doc/contract/isGenerateContract',
method: 'get',
url: "/api/jobslink-api/doc/contract/isGenerateContract",
method: "get",
params: {
userId:userId,
missionsNo:missionsNo
}
})
}
userId: userId,
missionsNo: missionsNo,
},
});
};
//企业端校验印章密码是否正确
export const certCheckPass =
(pass) => {
export const certCheckPass = (pass) => {
return request({
url: '/api/jobslink-api/doc/company/cert/checkPass',
method: 'get',
url: "/api/jobslink-api/doc/company/cert/checkPass",
method: "get",
params: {
pass:pass
}
})
}
pass: pass,
},
});
};
//获取手机短信验证码
export const getCode=(mobile)=>{
export const getCode = (mobile) => {
return request({
url:'/api/jobslink-api/doc/company/cert/resetPass/sendValidate',
method:'get',
params:{mobile}
})
}
url: "/api/jobslink-api/doc/company/cert/resetPass/sendValidate",
method: "get",
params: { mobile },
});
};
//重置密码
export const resetPwd=(mobile,password,code)=>{
export const resetPwd = (mobile, password, code) => {
return request({
headers: {'SCaptcha-Key': mobile, 'SCaptcha-Code': code},
url:'/api/jobslink-api/doc/company/cert/resetPass',
method:'post',
params:{mobile,password,code}
})
}
headers: { "SCaptcha-Key": mobile, "SCaptcha-Code": code },
url: "/api/jobslink-api/doc/company/cert/resetPass",
method: "post",
params: { mobile, password, code },
});
};
//查看签章图片
export const viewSignature=()=>{
export const viewSignature = () => {
return request({
url:'/api/jobslink-api/doc/docCompanySeal/company/details',
method:'get',
})
}
url: "/api/jobslink-api/doc/docCompanySeal/company/details",
method: "get",
});
};
//查看电子合同
export const viewLetter=(userId,missionsNo)=>{
export const viewLetter = (userId, missionsNo) => {
return request({
url:'/api/jobslink-api/doc/contract/mission/viewContract',
method:'get',
params:{userId,missionsNo}
})
}
url: "/api/jobslink-api/doc/contract/mission/viewContract",
method: "get",
params: { userId, missionsNo },
});
};
//下载电子合同
export const downLetter =
(id) => {
return `jobslink-api/doc/contract/download/${id}?Jobslink-Auth=${getToken()}`
}
export const downLetter = (id) => {
return `jobslink-api/doc/contract/download/${id}?Jobslink-Auth=${getToken()}`;
};
//判断企业是否设置签章密码
export const whetherSetSignPwd=()=>{
export const whetherSetSignPwd = () => {
return request({
url:'/api/jobslink-api/doc/company/cert/hasPass',
method:'get'
})
}
url: "/api/jobslink-api/doc/company/cert/hasPass",
method: "get",
});
};
//查看pdf
export const viewPdf=(url)=>{
console.log(url)
export const viewPdf = (url) => {
console.log(url);
return request({
url:url,
method:'get'
})
}
url: url,
method: "get",
});
};
//批量下载合同
export const mutiDownPdf=(ids)=> {
return `jobslink-api/doc/contract/contract/bulkDownload?ids=${ids}&Jobslink-Auth=${getToken()}`
}
export const mutiDownPdf = (ids) => {
return `jobslink-api/doc/contract/contract/bulkDownload?ids=${ids}&Jobslink-Auth=${getToken()}`;
};

View File

@@ -92,7 +92,7 @@
},
mounted() {
this.init();
this.getSignatureStatus();//获取企业是否设置了签章密码
// this.getSignatureStatus();//获取企业是否设置了签章密码
},
activated() { },
computed: {

View File

@@ -91,6 +91,7 @@
</el-row>
</template>
<script>
import {
getList,

View File

@@ -5,13 +5,14 @@
<!--<li>
<h3>电子签章管理</h3>
</li>-->
<li v-if="econtractStatus.sealOn ==0">电子签章未开通,请申请开通电子签章 <el-button type="primary"
<li v-if="econtractStatus.sealOn == 0">电子签章未开通,请申请开通电子签章 <el-button type="primary"
@click="handelEnableSignature">申请开通电子签章</el-button>
</li>
<li v-else-if="econtractStatus.sealOn == 1">电子签章已申请正在审核中...</li>
<li v-else-if="econtractStatus.sealOn == 2">电子合同状态:<span v-if="econtractStatus.contractOn">启用</span><span
v-else>未启用</span></li>
<li v-show="econtractStatus.contractOn">电子签章:<el-button @click="handelViewSignature" type="primary">查 看</el-button><el-button @click="handelResetPwd">重置密码</el-button></li>
<li v-show="econtractStatus.contractOn">电子签章:<el-button @click="handelViewSignature" type="primary">
</el-button><el-button @click="handelResetPwd">重置密码</el-button></li>
</ul>
</basic-container>
@@ -23,8 +24,7 @@
<el-form :model="applyEcontractForm" ref="applyEcontractForm" label-width="100px" class="demo-ruleForm"
:rules="ruleValidate">
<el-form-item label="上传《电子签章申请表》:" prop="authUrlId" :label-position="labelPosition" label-width="210px">
<el-upload :show-file-list="false" :on-progress="
() => {
<el-upload :show-file-list="false" :on-progress="() => {
uploading = true;
}
" :on-success="handleAvatarSuccess" :before-upload="beforeAvatarUpload" :http-request="httpRequest">
@@ -33,19 +33,23 @@
</div>
<div slot="tip" class="el-upload__tip">*请上传高清扫描文件</div>
</el-upload>
<div class="uploadEcontractBtn" @click="handleDownload"><i class="el-icon-download" style="color: #409EFF;"></i>下载《电子签章申请表》模板</div>
<div class="uploadEcontractBtn" @click="handleDownload"><i class="el-icon-download"
style="color: #409EFF;"></i>下载《电子签章申请表》模板</div>
<!-- <p class="uploadImgP">上传图片大小限制5M以内</p> -->
</el-form-item>
<el-form-item label="请设置签章密码" prop="pwd" :label-position="labelPosition" label-width="210px">
<el-col :span="16">
<el-input type="number" maxlength="6" onKeypress="return(/^[0-9]*$/.test(String.fromCharCode(event.keyCode)))" v-model="applyEcontractForm.pwd" show-password placeholder="请输入六位数字密码">
<el-input type="number" maxlength="6"
onKeypress="return(/^[0-9]*$/.test(String.fromCharCode(event.keyCode)))"
v-model="applyEcontractForm.pwd" show-password placeholder="请输入六位数字密码">
</el-input>
</el-col>
</el-form-item>
<el-form-item label="请再次输入签章密码" prop="confirmpwd" :label-position="labelPosition" label-width="210px">
<el-col :span="16">
<el-input type="number" maxlength="6" onKeypress="return(/^[0-9]*$/.test(String.fromCharCode(event.keyCode)))" v-model="applyEcontractForm.confirmpwd" show-password
placeholder="请再次输入六位数字密码"></el-input>
<el-input type="number" maxlength="6"
onKeypress="return(/^[0-9]*$/.test(String.fromCharCode(event.keyCode)))"
v-model="applyEcontractForm.confirmpwd" show-password placeholder="请再次输入六位数字密码"></el-input>
</el-col>
</el-form-item>
<!--
@@ -67,19 +71,24 @@
<!--重置密码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 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" type="primary" @click="getCode">{{msgText}}</el-button>
<el-button :disabled="msgKey" type="primary" @click="getCode">{{ msgText }}</el-button>
</el-form-item>
<el-form-item label="请设置新密码" :label-width="formLabelWidth" prop="pwd">
<el-input type="number" maxlength="6" onKeypress="return(/^[0-9]*$/.test(String.fromCharCode(event.keyCode)))" v-model="resetPwdForm.pwd" autocomplete="off" show-password placeholder="请输入六位数字密码"></el-input>
<el-input type="number" maxlength="6"
onKeypress="return(/^[0-9]*$/.test(String.fromCharCode(event.keyCode)))" v-model="resetPwdForm.pwd"
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-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">
@@ -89,19 +98,12 @@
</el-dialog>
<!-- /查看签章dialog -->
<el-dialog
title="查看"
:visible.sync="calibrationDialog"
width="500px"
:modal="false"
<el-dialog title="查看" :visible.sync="calibrationDialog" width="500px" :modal="false"
class="calibrationForm excelBox checkForm">
<el-form :model="viewSignatureForm" :rules="rules">
<el-form-item label="公章" prop="authUrlId" >
<el-form-item label="公章" prop="authUrlId">
<div v-loading="uploading">
<img
class="companyInfo-upload-image"
:src="'data:image/png;base64,'+viewSignatureForm.imgStr"
/>
<img class="companyInfo-upload-image" :src="'data:image/png;base64,' + viewSignatureForm.imgStr" />
</div>
</el-form-item>
</el-form>
@@ -138,7 +140,8 @@
</el-form-item>
<el-form-item>
<el-date-picker v-model="monthData" type="daterange" range-separator="" start-placeholder="请选择开始日期"
end-placeholder="请选择结束日期" value-format="yyyy-MM-dd hh:mm:ss" format="yyyy-MM-dd" @change="getDateValueStime">
end-placeholder="请选择结束日期" value-format="yyyy-MM-dd hh:mm:ss" format="yyyy-MM-dd"
@change="getDateValueStime">
</el-date-picker>
</el-form-item>
<tool-tip></tool-tip>
@@ -150,22 +153,22 @@
</el-form>
<content-index ref="waiting" @refresh="handleClear"></content-index>
</basic-container>
</div>
</div>
</template>
<script>
import contentIndex from './contentIndex'//待签发
import {
import contentIndex from './contentIndex'//待签发
import {
apply,
applyStatus,
getCode,
resetPwd,
viewSignature,
} from "@/api/manage/econtract";
import { getTemplate } from "@/api/resource/template";
import httpRequest from "./httpRequest";
import {mapGetters} from 'vuex'
export default {
} from "@/api/manage/econtract";
import { getTemplate } from "@/api/resource/template";
import httpRequest from "./httpRequest";
import { mapGetters } from 'vuex'
export default {
components: {
contentIndex,
},
@@ -178,19 +181,19 @@
callback();
}
};
const validPwdNums=(rule,value,callback)=>{
if(value.length!=6 || isNaN(Number(value))){
const validPwdNums = (rule, value, callback) => {
if (value.length != 6 || isNaN(Number(value))) {
callback(new Error('请输入6位数的数字密码'));
}
else{
else {
callback();
}
}
const apply_validPwdNums=(rule,value,callback)=>{
if(value.length!=6 || isNaN(Number(value))){
const apply_validPwdNums = (rule, value, callback) => {
if (value.length != 6 || isNaN(Number(value))) {
callback(new Error('请输入6位数的数字密码'));
}
else{
else {
callback();
}
}
@@ -212,21 +215,21 @@
}*/
return {
//申请签章校验
ruleValidate:{
authUrlId:[
ruleValidate: {
authUrlId: [
{
required: true, message: '请上传电子签章申请表', trigger: 'blur'
}
],
pwd:[
pwd: [
{
required: true, message: '请输入密码', trigger: 'blur'
},
{
validator:apply_validPwdNums, trigger: 'blur'
validator: apply_validPwdNums, trigger: 'blur'
}
],
confirmpwd:[
confirmpwd: [
{
required: true, message: '请输入确认密码', trigger: 'blur'
},
@@ -265,16 +268,16 @@
]
},
phone:'',
formLabelWidth:'150px',
phone: '',
formLabelWidth: '150px',
search: {
// status:''
},
msgTime:120,
msgTime: 120,
resetPwdDialogVisible: false,
resetPwdForm: {},
viewSignatureForm:{},
calibrationDialog:false,
viewSignatureForm: {},
calibrationDialog: false,
msgKey: false,
msgText: '获取验证码',
page: {
@@ -282,8 +285,8 @@
currentPage: 1,
total: 0
},
monthData:'',
monthDataEtime:'',
monthData: '',
monthDataEtime: '',
rules: {
authUrlId: [
{
@@ -307,22 +310,22 @@
dialogImageUrl: '',
dialogVisible1: false,
disabled: false,
searchTypeList:[
searchTypeList: [
{
label:'员工签署日期',
value:0
label: '员工签署日期',
value: 0
},
{
label:'企业签署日期',
value:1
label: '企业签署日期',
value: 1
},
{
label:'合同生效日期',
value:2
label: '合同生效日期',
value: 2
},
{
label:'合同失效日期',
value:3
label: '合同失效日期',
value: 3
},
]
};
@@ -330,17 +333,18 @@
methods: {
//页面加载执行
onLoad() {
this.econtractStatus.sealOn = 0;//电子合同是否启用0=未启用
//applyStatus
applyStatus().then((res) => {
this.econtractStatus = res.data.data;
//this.econtractStatus.sealOn = 1
});
// applyStatus().then((res) => {
// this.econtractStatus = res.data.data;
// //this.econtractStatus.sealOn = 1
// });
},
/**上传图片**/
httpRequest,
handleAvatarSuccess(res, file) {
this.imageUrl = URL.createObjectURL(file.raw);
this.applyEcontractForm.authUrlId=URL.createObjectURL(file.raw);
this.applyEcontractForm.authUrlId = URL.createObjectURL(file.raw);
this.uploading = false;
},
beforeAvatarUpload(file) {
@@ -454,9 +458,9 @@
},
handelResetPwd() {
this.phone=this.userInfo.account;
var pat=/(\d{3})\d*(\d{4})/;
this.phone=this.phone.replace(pat,'$1****$2');
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 = {};
},
@@ -491,31 +495,31 @@
submitResetPwd() {
this.$refs.resetPwdForm.validate(valid => {
if (valid) {
resetPwd(this.userInfo.account,this.resetPwdForm.pwd,this.resetPwdForm.code).then(()=>{
resetPwd(this.userInfo.account, this.resetPwdForm.pwd, this.resetPwdForm.code).then(() => {
this.$message.success('密码重置成功');
this.resetPwdDialogVisible=false;
this.resetPwdDialogVisible = false;
})
.catch((err)=>{
.catch((err) => {
this.$message.error(err);
})
}
})
},
//查看签章
handelViewSignature(){
viewSignature().then(res=>{
this.viewSignatureForm.imgStr=res.data.data;
this.calibrationDialog=true;
handelViewSignature() {
viewSignature().then(res => {
this.viewSignatureForm.imgStr = res.data.data;
this.calibrationDialog = true;
})
// window.open('http://jlfiles.oss-cn-zhangjiakou.aliyuncs.com/upload/20210320/b89d611d7f371c8f08d08edc79cfd4b2.pdf')
},
//
handelEnableSignature(){
this.applyEcontractForm={}
this.imageUrl="/manage/img/idcard-h.png"
handelEnableSignature() {
this.applyEcontractForm = {}
this.imageUrl = "/manage/img/idcard-h.png"
this.dialogVisible = true;
},
getDateValueStime(val){
getDateValueStime(val) {
this.search.stime = val[0];
this.search.etime = val[1];
},
@@ -523,91 +527,101 @@
created() {
this.onLoad();
},
computed:{
...mapGetters(['userInfo','permission'])
computed: {
...mapGetters(['userInfo', 'permission'])
}
};
};
</script>
<style scoped>
* {
* {
margin: 0;
padding: 0;
}
.el-form--inline .el-form-item{
}
.el-form--inline .el-form-item {
margin-right: 10px;
}
.companyInfo-upload-image {
}
.companyInfo-upload-image {
height: 200px;
width: 200px;
}
.contract-signature-image{
}
.contract-signature-image {
width: 150px;
height: 100px;
}
.econtract {
.econtract {
background: #ffffff;
margin-left: 10px;
font-size: 14px;
}
.econtract-header{
}
.econtract-header {
margin-bottom: 10px;
}
.econtract-header /deep/ .el-card__body{
padding: 5px 16px!important;
}
.header {
}
.econtract-header /deep/ .el-card__body {
padding: 5px 16px !important;
}
.header {
clear: both;
height: 50px;
margin: 0;
padding: 0;
padding-left: 10px;
}
}
.header li {
.header li {
list-style-type: none;
float: left;
margin-right: 50px;
line-height: 50px;
}
}
.header li h3 {
.header li h3 {
margin-left: 10px;
font-size: 18px;
}
}
.header li a {
.header li a {
color: #409EFF;
margin-right: 20px;
cursor: pointer;
}
}
.el-button {
.el-button {
padding: 8px 10px;
margin-left: 10px;
}
}
.applyEcontract /deep/ .el-input__inner {
.applyEcontract /deep/ .el-input__inner {
width: 210px;
height: 30px;
}
}
.uploadEcontractBtn {
.uploadEcontractBtn {
cursor: pointer;
}
}
.uploadEcontractBtn:hover {
.uploadEcontractBtn:hover {
color: #409EFF;
}
.econtract-resetForm /deep/ .el-form-item__content{
}
.econtract-resetForm /deep/ .el-form-item__content {
text-align: left;
}
.searchBtn{
}
.searchBtn {
display: inline-block;
}
.econtract-resetForm .el-form-item {
margin-bottom: 30px!important;
}
.demo-ruleForm .el-form-item{
margin-bottom: 20px!important;
}
</style>
}
.econtract-resetForm .el-form-item {
margin-bottom: 30px !important;
}
.demo-ruleForm .el-form-item {
margin-bottom: 20px !important;
}</style>

View File

@@ -1,48 +1,34 @@
<template>
<basic-container>
<el-drawer
title="录用人员"
append-to-body
:visible.sync="drawer"
size="80%"
class="drawer"
:before-close="drawerClose"
>
<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"
>
<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>
<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}" >
<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>
<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>
@@ -51,13 +37,8 @@
</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
>
<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>
@@ -78,24 +59,14 @@
></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-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-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="提示:"
@@ -106,20 +77,10 @@
>
<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
>
<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
@@ -147,15 +108,8 @@
<!--/-->
<!--自定义按钮-->
<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" :disabled="!selectionList.length" icon="el-icon-plus"
@click="handleEmploy" v-show="employState === 1 && status === 1">批量录用</el-button>
<!-- <el-button
type="primary"
size="small"
@@ -166,43 +120,30 @@
>批量取消</el-button
> -->
</template>
<template v-slot:cardNumber="{row}">
<span>{{idNumberDDesensitization(row.cardNumber)}}</span>
<template v-slot:cardNumber="{ row }">
<span>{{ idNumberDDesensitization(row.cardNumber) }}</span>
</template>
</avue-crud>
<el-dialog
title=""
:visible.sync="dialogVisible"
width="35%"
:modal=false
>
<el-dialog title="" :visible.sync="dialogVisible" width="35%" :modal=false>
<div>
<img class="" :src="'data:image/png;base64,'+imgStr" width="100%"/>
<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
>
<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>
<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-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-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">
@@ -211,26 +152,31 @@
</el-form>
</div>
<span slot="footer" class="dialog-footer">
<el-button type="primary" @click="PWDOk" :loading="loadingbut">{{loadingbuttext}}</el-button>
<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 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-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-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-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">
@@ -241,28 +187,22 @@
</el-drawer>
<Resume ref="resume"></Resume>
<employ-information
ref="order"
:checkDisplayVisible="checkDisplayVisible"
:fpData="fpData"
:fpTitleId='fpTitleId'
:usersInfo = "userInfo"
@checkDisplayVisibleClose = "checkDisplayVisibleClose"
@refresh="refreshChange"
></employ-information>
<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 { 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 { applyStatus } from '@/api/manage/econtract'
import { mapGetters } from 'vuex'
import { dateFormat } from "@/util/date";
import {getConfig} from '@/api/tenant/config'
import { getConfig } from '@/api/tenant/config'
import EmployInformation from "./EmployInformation";
import { validatenull } from "@/util/validate";
import { getFpDetail, getAddressAll } from "@/api/tenant/fp";
@@ -277,11 +217,11 @@ export default {
},
data() {
const validatePwdLength=(rule,value,callback)=>{
if(value.length!=6 || isNaN(Number(value))){
const validatePwdLength = (rule, value, callback) => {
if (value.length != 6 || isNaN(Number(value))) {
callback(new Error('请输入6位数的数字密码'));
}
else{
else {
callback();
}
}
@@ -294,42 +234,42 @@ export default {
callback();
}
};
const validPwdNums=(rule,value,callback)=>{
if(value.length!=6 || isNaN(Number(value))){
const validPwdNums = (rule, value, callback) => {
if (value.length != 6 || isNaN(Number(value))) {
callback(new Error('请输入6位数的数字密码'));
}
else{
else {
callback();
}
}
return {
selectTaskInfo:{},
getUserConfig:{},
selectTaskInfo: {},
getUserConfig: {},
checkDisplayVisible: false,
fpTitleId:'',
fpTitleId: '',
fpData: {},
pwdFormRules:{
pwd:[
pwdFormRules: {
pwd: [
{
required:true,message:'请输入密码',trigger:'blur'
required: true, message: '请输入密码', trigger: 'blur'
},
{
validator:validatePwdLength,trigger:'blur'
validator: validatePwdLength, trigger: 'blur'
},
]
},
companyContractOn:'',//电子合同状态
conpanySealOn:'',//签章状态
selectionFlag:true,
companyContractOn: '',//电子合同状态
conpanySealOn: '',//签章状态
selectionFlag: true,
/*忘记密码*/
resetPwdDialogVisible:false,
resetPwdForm:{},
formLabelWidth:'150px',
resetPwdDialogVisible: false,
resetPwdForm: {},
formLabelWidth: '150px',
msgText: '获取验证码',
msgTime:120,
cancel:'',
msgTime: 120,
cancel: '',
//重置密码校验
resetPwdRules: {
code: [
@@ -356,13 +296,13 @@ export default {
},
loadingbut:false,
loadingbuttext:'确定',
downLoadRow:{},
dataCurClick:{},
employDataIds:1,
employNum:1,
imgStr:'',
loadingbut: false,
loadingbuttext: '确定',
downLoadRow: {},
dataCurClick: {},
employDataIds: 1,
employNum: 1,
imgStr: '',
isIndeterminate: false,
checkAll: false,
checked: false,
@@ -371,7 +311,7 @@ export default {
selectionList: [],
dialogVisible: false,
dialogVisible1: false,
contractId:'',
contractId: '',
labelPosition: 'right',
pwdForm: {
pwd: ''
@@ -396,7 +336,7 @@ export default {
],
drawer: false,
data: [],
personTypeDisabledFlag:true,
personTypeDisabledFlag: true,
obj: {},
};
@@ -458,13 +398,13 @@ export default {
prop: "realName",
search: true,
searchSpan: 4,
width:70,
width: 70,
},
{
label: "性别",
prop: "sex",
search: false,
width:50,
width: 50,
dicData: [
{
label: "男",
@@ -480,28 +420,28 @@ export default {
label: "年龄",
prop: "age",
search: false,
width:50,
width: 50,
},
{
label: "手机号",
prop: "telphone",
search: false,
width:100,
width: 100,
},
{
label: "身份证",
prop: "cardNumber",
search: false,
slot: true,
width:110
width: 110
},
{
label: "最新保期",
prop: "period",
searchSpan: 5,
display: false,
slot:true,
width:190
slot: true,
width: 190
},
{
label: "商保状态",
@@ -527,7 +467,7 @@ export default {
value: 3
},
],
slot:true,
slot: true,
},
{
label: "工种",
@@ -537,7 +477,7 @@ export default {
label: "来源",
prop: "src",
search: false,
width:70,
width: 70,
},
{
label: "人才库",
@@ -563,9 +503,9 @@ export default {
},
watch: {
"query.status": function (val, oldVal) {
if(val == 1){
if (val == 1) {
this.selectionFlag = true;
}else{
} else {
this.selectionFlag = false;
}
this.query.realName = '';
@@ -577,11 +517,11 @@ export default {
}
},
},
mounted(){
mounted() {
this.checkStatus();
},
methods: {
checkDisplayVisibleClose(){
checkDisplayVisibleClose() {
this.checkDisplayVisible = false;
},
/*获取发票数据*/
@@ -607,39 +547,41 @@ export default {
self.$message.warning("请完善您的发票收件地址");
} else {
self.checkDisplayVisible = true;
self.$refs.order.openDialog(this.selectTaskInfo,this.employDataIds,this.selectionList);
self.$refs.order.openDialog(this.selectTaskInfo, this.employDataIds, this.selectionList);
self.$refs.order.getData(self.addresses);
}
},
rowEmployDisabled(){
rowEmployDisabled() {
},
dateFormat(date){
return dateFormat(new Date(date),'yyyy/MM/dd')
dateFormat(date) {
return dateFormat(new Date(date), 'yyyy/MM/dd')
},
checkStatus(){
applyStatus().then(res=>{
this.companyContractOn=res.data.data.contractOn;//电子合同是否启用0=未启用
this.conpanySealOn=res.data.data.sealOn;//电子签章是否设置0=未设置,1=等待审核2=已设置
})
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){
PWDOk() {
this.$refs.pwdForm.validate(valid => {
if (valid) {
this.loadingbut = true;
this.loadingbuttext = '提交中...';
certCheckPass(this.pwdForm.pwd).then((res)=>{
if(res.data.data == true){//输入签章密码正确走录用流程
certCheckPass(this.pwdForm.pwd).then((res) => {
if (res.data.data == true) {//输入签章密码正确走录用流程
this.employApi(this.employDataIds);
}else{
} else {
this.$message.closeAll();
this.$message({
type: "error",
message: "密码输入错误!",
});
this.loadingbut=false;
this.loadingbuttext='确定';
this.loadingbut = false;
this.loadingbuttext = '确定';
}
})
}
@@ -653,35 +595,35 @@ export default {
this.employDataIds = row.id;
this.employNum = 1;
this.pwdForm.pwd = '';
if(this.getUserConfig.insuranceOn == 1){
if (this.getUserConfig.insuranceOn == 1) {
this.getData();
}else{
} else {
if(this.companyContractOn!=0){
if (this.companyContractOn != 0) {
this.dialogVisible1 = true;
}
else{
else {
this.employApi(this.employDataIds);
}
}
},
drawerClose(){
drawerClose() {
this.$emit('refresh');
this.drawer = false;
},
radioButtonChange(){
radioButtonChange() {
this.query.realName = '';
this.query.groupId = '';
this.personTypeDisabledFlag = true;
this.page.total = 0;
this.data = [];
if(this.query.status == 2){
if (this.query.status == 2) {
this.selectionFlag = false;
this.data = this.employedData;
}else{
} else {
this.selectionFlag = true;
this.data = this.waitEmployedData;
}
@@ -701,17 +643,17 @@ export default {
this.drawer = true;
},
//查看合同
rowCheck(row){
rowCheck(row) {
this.downLoadRow = row;
if(row.contractStatus==true){
viewContractImg(row.userId,row.missionNo).then((res) => {
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{
else {
this.$message.closeAll();
this.$message.warning('合同生成中,请稍后查看');
}
@@ -719,7 +661,7 @@ export default {
},
//下载合同
downLoadContract(){
downLoadContract() {
window.open(contractDownload(this.contractId))
},
/*单行取消*/
@@ -813,14 +755,14 @@ export default {
this.pwdForm.pwd = '';
//未开通合同,不显示输入密码框
this.employDataIds = this.ids;
if(this.getUserConfig.insuranceOn == 1){
if (this.getUserConfig.insuranceOn == 1) {
this.getData();
}else{
} else {
if(this.companyContractOn!=0){
if (this.companyContractOn != 0) {
this.dialogVisible1 = true;
}
else{
else {
this.employApi(this.employDataIds);
}
}
@@ -828,8 +770,8 @@ export default {
.catch(() => {
});
},
employApi(ids){
employ(this.missionId, ids,0,0).then(
employApi(ids) {
employ(this.missionId, ids, 0, 0).then(
() => {
this.loadingbut = false;
this.loadingbuttext = '确定';
@@ -940,7 +882,7 @@ export default {
/*加载数据*/
onLoad(page, params) {
this.data = [];
getConfig().then((res)=>{
getConfig().then((res) => {
this.getUserConfig = res.data.data;
});
this.loading = true;
@@ -994,12 +936,12 @@ export default {
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={};
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() {
@@ -1030,11 +972,11 @@ export default {
submitResetPwd() {
this.$refs.resetPwdForm.validate(valid => {
if (valid) {
resetPwd(this.userInfo.account,this.resetPwdForm.pwd,this.resetPwdForm.code).then(()=>{
resetPwd(this.userInfo.account, this.resetPwdForm.pwd, this.resetPwdForm.code).then(() => {
this.$message.success('密码重置成功');
this.resetPwdDialogVisible=false;
this.resetPwdDialogVisible = false;
})
.catch((err)=>{
.catch((err) => {
this.$message.error(err);
})
}
@@ -1045,13 +987,15 @@ export default {
</script>
<style>
.selectBtn{
.selectBtn {
color: #787879 !important;
}
.selectBtn:hover{
}
.selectBtn:hover {
color: #787879 !important;
}
.tipsWrap1{
}
.tipsWrap1 {
font-size: 14px;
color: #ff0000;
position: absolute;
@@ -1060,18 +1004,21 @@ export default {
/* top: 165px;
left: 130px; */
}
.tipsWrap2{
.tipsWrap2 {
font-size: 14px;
color: #ff0000;
position: absolute;
margin-top: 75px;
margin-left: 30px;
}
.employ-employNum-count{
.employ-employNum-count {
color: #2098ee;
}
.employ-forgetPwd{
}
.employ-forgetPwd {
float: right;
margin-top: -33px;
}
}
</style>

View File

@@ -335,10 +335,12 @@ export default {
);
},
checkStatus(){
applyStatus().then(res=>{
this.companyContractOn=res.data.data.contractOn;//电子合同是否启用0=未启用 1=已启用
this.conpanySealOn=res.data.data.sealOn;//电子签章是否设置0=未设置,1=等待审核2=已设置
})
this.companyContractOn = 0;//电子合同是否启用0=未启用
this.conpanySealOn = 0;//电子签章是否设置0=未设置,1=等待审核2=已设置
// applyStatus().then(res=>{
// this.companyContractOn=res.data.data.contractOn;//电子合同是否启用0=未启用 1=已启用
// this.conpanySealOn=res.data.data.sealOn;//电子签章是否设置0=未设置,1=等待审核2=已设置
// })
},
drawerClose(){
this.$emit('refresh');

View File

@@ -617,10 +617,12 @@ export default {
return dateFormat(new Date(date),'yyyy/MM/dd')
},
checkStatus(){
applyStatus().then(res=>{
this.companyContractOn=res.data.data.contractOn;//电子合同是否启用0=未启用
this.conpanySealOn=res.data.data.sealOn;//电子签章是否设置0=未设置,1=等待审核2=已设置
})
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,
//输入密码点击确定

View File

@@ -335,10 +335,12 @@ export default {
);
},
checkStatus(){
applyStatus().then(res=>{
this.companyContractOn=res.data.data.contractOn;//电子合同是否启用0=未启用 1=已启用
this.conpanySealOn=res.data.data.sealOn;//电子签章是否设置0=未设置,1=等待审核2=已设置
})
this.companyContractOn = 0;//电子合同是否启用0=未启用
this.conpanySealOn = 0;//电子签章是否设置0=未设置,1=等待审核2=已设置
// applyStatus().then(res=>{
// this.companyContractOn=res.data.data.contractOn;//电子合同是否启用0=未启用 1=已启用
// this.conpanySealOn=res.data.data.sealOn;//电子签章是否设置0=未设置,1=等待审核2=已设置
// })
},
drawerClose(){
this.$emit('refresh');