Files
cmanager/src/views/manage/company/companyCheck.vue
2024-02-02 15:04:47 +08:00

607 lines
17 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<el-drawer
:visible.sync="visible"
size="60%"
append-to-body
title="审核"
class="avue--view avue--detail"
>
<avue-form class="companyCheck-form" ref="check-form" v-model="form" :option="formOption" @submit="submit" :upload-before="uploadBefore">
<template slot="cityId" slot-scope="{disabled}">
<jl-city-cascader :disabled="disabled" v-model="form.cityId"></jl-city-cascader>
</template>
<template slot="motoleyUrl">
<el-upload
list-type="picture-card"
:auto-upload="true"
:file-list="imgList"
:limit="5"
:action="mutiPutFile"
:on-preview="handlePictureCardPreview"
:on-exceed="handleImgLimit"
:on-success="handleImgSuccess"
:on-remove="handleImgRemove"
:before-remove="beforeRemove"
:before-upload="beforeAvatarUpload"
>
<i slot="default" class="el-icon-plus avue-upload__icon"></i>
<div slot="tip" class="el-upload__tip">*最多上传5张图片且大小限制2M以内</div>
</el-upload>
</template>
<template slot="product">
<span>灵活用工</span>
</template>
<template slot="serveCost" v-if="form.serveCost !== undefined">
<span>{{moneyFormat(form.serveCost)}} {{wageUnitCategory[form.serveUnit]}}</span>
</template>
<template slot="menuForm">
<!-- <div v-show="[1,2].includes(form.status)"> -->
<div v-show="form.status != 0 && form.status != 9">
<el-button size="medium" type="primary" @click="handlePass" :loading="loading">通过</el-button>
<el-button size="medium" @click="handleReject" :loading="loading">驳回</el-button>
</div>
</template>
</avue-form>
</el-drawer>
</template>
<script>
import { moneyFormat } from "@/util/money";
import { validatenull,check18IdCardNo } from "@/util/validate";
import {reject, examineInfo,newExamineApi } from "@/api/manage/company";
import { getStationDic } from "@/api/manage/station";
import { getTradeDic } from "@/api/manage/trade";
import { putFile } from "@/api/resource/oss";
const accept = [
"image/png",
"image/jpeg",
"image/svg+xml",
"image/gif",
"image/x-photoshop",
];
const validateCityId=(rule,value,callback)=>{
if(value==0){
callback(new Error('请选择所在地区'));
}else{
callback();
}
};
const validateIdNumber=(rule,value,callback)=>{
if(check18IdCardNo(value)){
callback()
}
else{
callback(new Error('身份证格式不正确'));
}
}
const validateTradeId=(rule,value,callback)=>{
if(value=='请选择行业'){
callback(new Error('请选择行业'));
}else{
callback();
}
}
export default {
data() {
return {
loading: false,
visible: false,
operation: false,
mutiPutFile:putFile,
form: { serveCost: 0, serveUnit: 0 },
wageUnitCategory: {
0: "元/人·次",
1: "元/人·时",
2: "元/人·天",
3: "元/人·周",
4: "元/人·月",
5: "元/人·个",
6: "元/人·件"
},
imgList:[],
};
},
computed: {
formOption() {
return {
emptyBtn: false,
submitBtn: false,
//disabled: true,
labelWidth: 120,
group: [
{
label: "企业信息",
column: [
{
type: "select",
label: "所属市场",
size: "small",
prop: "stationId",
dicUrl: getStationDic(),
props: {
label: "stationName",
value: "stationId"
},
dicFormatter(resp) {
return resp.data;
},
disabled: true,
},
{
type: "select",
label: "行业",
size: "small",
prop: "tradeId",
dicUrl: getTradeDic(),
props: {
label: "name",
value: "id"
},
dicFormatter(resp) {
var result=[];
resp.data.forEach(ele => {
if(ele.name!="1"){
result.push(ele)
}
});
return result;
},
rules:[
{
required:true,validator:validateTradeId,trigger:'blur'
}
]
},
{
type: "input",
label: "企业名称",
span: 12,
display: true,
size: "small",
prop: "companyName",
disabled: true,
},
{
type: "input",
label: "统一信用代码",
span: 12,
display: true,
size: "small",
prop: "companyTid",
placeholder: "18位统一社会信用代码",
disabled: true,
},
{
type: "input",
label: "法人姓名",
span: 12,
display: true,
size: "small",
prop: "masterName",
rules:[
{
required:true,message:'请输入法人姓名',trigger:'blur'
}
]
},
{
type: "input",
label: "法人身份证号",
span: 12,
display: true,
size: "small",
prop: "masterIdentity",
rules:[
{
required:true,message:'请输入法人身份证号',trigger:'blur'
},
{
validator:validateIdNumber,trigger:'blur'
}
]
},
{
type: "input",
label: "所在地区",
span: 12,
display: true,
prop: "cityId",
formslot: true,
rules:[
{
required:true,message:'请选择所在地区',trigger:'blur'
},
{
validator:validateCityId,trigger:'blur',required:true
}
]
},
{
type: "input",
label: "详细地址",
span: 12,
display: true,
size: "small",
prop: "companyAddress",
rules:[
{
required:true,message:'请输入详细地址',trigger:'blur'
}
]
},
// 图片预览
{
type: "upload",
label: "营业执照",
span: 12,
accept,
showFileList: false,
listType: "picture-img",
multiple: false,
propsHttp: {
res: "data",
url: "link",
},
size: "small",
prop: "authUrlId",
action: putFile,
viewDisplay: false,
rules: [
{
required: true,
message: "请上传营业执照照片",
},
],
tip: '上传图片大小限制2M以内',
},
{
type: "upload",
label: "法人身份证正面",
span: 12,
showFileList: false,
listType: "picture-img",
multiple: false,
propsHttp: {
res: "data",
url: "link",
},
canvasOption: {},
headers: [],
data: [],
accept,
tip: '上传图片大小限制2M以内',
size: "small",
prop: "identityUrl4Id",
action: putFile,
viewDisplay: false,
rules: [
{
required: true,
message: "请上传法人身份证正面",
},
],
},
{
type: "upload",
label: "法人身份证背面",
span: 12,
showFileList: false,
listType: "picture-img",
multiple: false,
propsHttp: {
res: "data",
url: "link",
},
canvasOption: {},
headers: [],
data: [],
accept,
tip: '上传图片大小限制2M以内',
size: "small",
prop: "identityUrl5Id",
action: putFile,
viewDisplay: false,
rules: [
{
required: true,
message: "请上传法人身份证背面",
},
],
},
{
type: "upload",
label: "电子签章申请表",
span: 12,
showFileList: false,
listType: "picture-img",
multiple: false,
propsHttp: {
res: "data",
url: "link",
},
canvasOption: {},
headers: [],
data: [],
accept,
tip: '上传图片大小限制2M以内',
size: "small",
prop: "signSrcUrl",
action: putFile,
viewDisplay: false,
rules: [
{
required: true,
message: "请上传电子签章申请表",
},
],
},
{
type: "upload",
label: "授权委托书",
span: 24,
showFileList: false,
listType: "picture-img",
multiple: false,
propsHttp: {
res: "data",
url: "link",
},
canvasOption: {},
headers: [],
data: [],
accept,
tip: '上传图片大小限制2M以内',
size: "small",
prop: "letterOfAttorneyUrl",
action: putFile,
viewDisplay: false,
rules: [
{
required: true,
message: "请上传授权委托书",
},
],
},
{
label: "招聘简章",
formslot:true,
span:24,
tip: '上传图片大小限制2M以内',
accept,
prop:'motoleyUrl',
rules: [
{
required: true,
message: "请上传招聘简章",
},
],
},
]
},
{
label: "管理员信息",
column: [
{
type: "input",
label: "联系人",
span: 12,
display: true,
size: "small",
prop: "realName"
},
{
type: "input",
label: "手机号码",
span: 12,
display: true,
size: "small",
prop: "account"
}
]
},
{
label: "服务信息",
column: [
{
type: "input",
label: "联系人",
span: 12,
display: true,
size: "small",
prop: "product",
formslot: true
},
{
type: "input",
label: "服务费",
span: 12,
display: true,
size: "small",
prop: "serveCost",
formslot: true
}
]
}
]
};
}
},
methods: {
open(id) {
examineInfo(id).then(res => {
this.imgList=[];
this.loading = false;
this.form = res.data.data;
this.visible = true;
if(this.form.tradeId==1){
this.form.tradeId='请选择行业';
}
//给imgList赋值
if(this.form.motoleyUrl!=""){
var strList=this.form.motoleyUrl.split(',');
for(var i in strList){
this.imgList.push({
url:strList[i]
})
}
}
});
},
handlePass() {
this.loading = true;
this.$refs["check-form"].validate(valid=>{
if(valid){
//newExamineApi({id:this.form.companyId,...this.form}
newExamineApi(this.form.id,this.form.tenantId,this.form.tradeId,this.form.masterName,this.form.masterIdentity,
this.form.cityId,this.form.companyAddress,this.form.authUrlId,
this.form.identityUrl4Id,this.form.identityUrl5Id,this.form.signSrcUrl,this.form.letterOfAttorneyUrl,
this.form.motoleyUrl
).then(() => {
this.$emit("success");
this.visible = false;
this.$message({ type: "success", message: "操作成功!" });
},
(error) => {
this.$message.error(error);
this.visible = false;
}
)
}
else{
this.loading=false;
}
})
},
handleReject() {
this.$prompt("", "驳回", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
inputPlaceholder: "驳回原因(0~50个字)",
inputValidator: val => {
if (validatenull(val)) {
return "请输入驳回原因";
} else {
if(val.length>50){
return "驳回原因不能超过50个字";
}
else{
return true;
}
}
},
inputType: "textarea"
})
.then(({ value }) => {
this.loading = true;
return reject(this.form.id, value);
})
.then(() => {
this.loading = false;
this.$emit("success");
this.visible = false;
this.$message({ type: "success", message: "操作成功!" });
})
.catch(() => {
this.loading = false;
});
},
moneyFormat,
beforeAvatarUpload(file) {
const isJPG = ["image/png", "image/jpeg", "image/svg+xml", "image/gif"].indexOf(file.type) != -1;
const isLt2M = file.size / 1024 / 1024 < 2;
if (!isJPG) {
this.$message.error('上传图片格式不正确');
}
if (!isLt2M) {
this.$message.error('上传图片大小不能超过 2MB!');
}
return isJPG && isLt2M;
},
handleAuthUrlIdSuccess(res) {
this.$set(this.form, "authUrlId", res.data.link);
},
handleidentityUrl4IdSuccess(res){
this.$set(this.form, "identityUrl4Id", res.data.link);
},
handleidentityUrl5IdSuccess(res){
this.$set(this.form, "identityUrl5Id", res.data.link);
},
/*多张图片上传*/
handleImgLimit(){
this.$message.warning('当前最多上传5张图片');
},
handleImgSuccess(res){
if(res.code==200){
this.imgList.push({url:res.data.link});
var str="";
for(var i=0;i<this.imgList.length;i++){
str+=this.imgList[i]['url']+",";
}
if(str.length>0){
str=str.substr(0,str.length-1);
}
this.form.motoleyUrl=str;
}
else{
this.$message.error('上传失败');
}
},
handleImgRemove(file){
let index=0;
for(let i in this.imgList){
if(this.imgList[i]['uid']==file.uid){
index=i;
break;
}
}
this.imgList.splice(index,1);
var str="";
for(var i=0;i<this.imgList.length;i++){
str+=this.imgList[i]['url']+",";
}
if(str.length>0){
str=str.substr(0,str.length-1);
}
this.form.motoleyUrl=str;
},
uploadBefore(file, done, loading){
const isJPG = ["image/png", "image/jpeg", "image/svg+xml", "image/gif"].indexOf(file.type) != -1;
const isLt2M = file.size / 1024 / 1024 < 2;
if (!isLt2M || !isJPG) {
this.$message.error('上传图片大小不能超过 2MB!');
loading();
}
else{
done();
return isJPG && isLt2M;
}
}
}
};
</script>
<style>
.companyCheck-form .el-upload--picture-card{
width: 178px;
height: 178px;
background-color: #ffffff;
}
.companyCheck-form .el-input__inner{
border: 1px solid #DCDFE6;
}
.companyCheck-form .el-upload-list--picture-card .el-upload-list__item{
width: 178px;
height: 178px;
}
</style>