Commit 795fbd97 authored by lvweichao's avatar lvweichao

Merge remote-tracking branch 'origin/dev'

parents 6c8aba04 250d7a46
const API_INTERNAL_URI = require("../config.js").API_INTERNAL_URI;
const req = require("../utils/request").httpReq;
const controller_utils = require("./utils");
// 获取企业信息列表
exports.auditList = async ctx => {
......@@ -46,6 +47,37 @@ exports.getRecordInfo = async ctx => {
json: true,
body: ctx.request.body
};
let permission = await controller_utils.getUserPermission(ctx);
permission = JSON.parse(permission);
const request = await req(ctx, opts);
if (permission.is_sensitive_data !== 1) {
request.result.record.entterprise_image = null; // 营业执照照片
request.result.record.legal_person = "********"; // 法人姓名
request.result.record.legal_id_card = "********"; // 法人身份证号
request.result.record.legal_validity_start_time = "********"; // 法人身份证开始时间
request.result.record.legal_validity_end_time = "********"; // 法人身份证结束时间
request.result.record.legal_front_id_card = null; // 法人身份证正面照
request.result.record.legal_back_id_card = null; // 法人身份证反面照
request.result.record.legal_id_card_hash = "********"; // 法人身份证哈希值
request.result.record.enterprice_address = "********"; // 企业地址
request.result.record.legal_issued_by = "********"; // 法人身份证地址
request.result.record.legal_nationality = "********"; // 法人民族
request.result.record.mobile = "********"; // 法人电话
request.result.record.sensitiveWord = false; // 是否有查看敏感词权限
} else {
request.result.record.sensitiveWord = true; // 是否有查看敏感词权限
}
ctx.body = request;
};
exports.onUpload = async ctx => {
const url = `${API_INTERNAL_URI}/merchant/lifeinner/upload`;
const opts = {
url,
method: "POST",
json: true,
body: ctx.request.body
};
ctx.body = await req(ctx, opts);
};
......@@ -61,9 +93,33 @@ exports.getLog = async ctx => {
ctx.body = await req(ctx, opts);
};
// 企业信息提交
exports.entCommit = async ctx => {
const url = `${API_INTERNAL_URI}/merchant/inner/ent_commit`;
// 企业资料审核
exports.postAudit = async ctx => {
const url = `${API_INTERNAL_URI}/merchant/inner/audit`;
const opts = {
url,
method: "POST",
json: true,
body: ctx.request.body
};
ctx.body = await req(ctx, opts);
};
// 商户上传营业执照信息
exports.postBusiness = async ctx => {
const url = `${API_INTERNAL_URI}/merchant/enterprise/business`;
const opts = {
url,
method: "POST",
json: true,
body: ctx.request.body
};
ctx.body = await req(ctx, opts);
};
// 商户信息代提交(op后台)
exports.opCommit = async ctx => {
const url = `${API_INTERNAL_URI}/merchant/inner/op_commit`;
const opts = {
url,
method: "POST",
......
......@@ -29,11 +29,14 @@ router.post(`${API_VERSION}/merchant/authority/get_role_info`, role.get_role_inf
router.post(`${API_VERSION}/merchant/authority/delete_role`, role.getDelete_role)
/* 企业认证 */
router.post(`${API_VERSION}/certification`, enterprise.auditList);
router.post(`${API_VERSION}/emterprise_commit`, enterprise.entCommit);
router.post(`${API_VERSION}/send_code`, enterprise.sendCode);
router.post(`${API_VERSION}/check_code`, enterprise.checkCode);
router.post(`${API_VERSION}/get_record_info`, enterprise.getRecordInfo);
router.post(`${API_VERSION}/get_log`, enterprise.getLog);
router.post(`${API_VERSION}/audit`, enterprise.postAudit);
router.post(`${API_VERSION}/business`, enterprise.postBusiness)
router.post(`${API_VERSION}/op_commit`, enterprise.opCommit);
router.post(`${API_VERSION}/upload`, enterprise.onUpload);
router.get(`${API_VERSION}/image/get_image_id`, image.get_obj_id)
router.get(`${API_VERSION}/image/get_bucket`, image.get_bucket)
......
......@@ -29,6 +29,9 @@
background-color: lightblue;
color: #000;
}
.audit .history_area {
margin-bottom: 20px;
}
.mgtb20 {
margin: 20px 0;
}
......@@ -30,6 +30,9 @@
color: #000;
}
}
.history_area{
margin-bottom: 20px;
}
}
.mgtb20{
margin: 20px 0;
......
......@@ -17,6 +17,7 @@
border
:data="messageList"
>
<!-- 审核状态 -->
<el-table-column
align="center"
label="审核状态"
......@@ -28,30 +29,36 @@
<span v-if="scope.row.audit_status === 30">审核失败</span>
</template>
</el-table-column>
<!-- 企业ID -->
<el-table-column
align="center"
label="企业ID"
prop="enterprise_auth_record_id"
></el-table-column>
<!-- 企业注册名称 -->
<el-table-column
align="center"
label="企业注册名称"
prop="name"
></el-table-column>
<!-- 注册码 -->
<el-table-column
align="center"
label="注册码"
prop="code"
></el-table-column>
<!-- 企业营业执照照片 -->
<el-table-column
align="center"
label="企业营业执照照片"
>
<template #default="scope">
<el-image
v-if="scope.row.entterprise_image"
fit="fill"
:src="scope.row.entterprise_image"
></el-image>
<span v-else>无权限</span>
</template>
</el-table-column>
<el-table-column
......@@ -70,9 +77,11 @@
>
<template #default="scope">
<el-image
v-if="scope.row.legal_front_id_card"
:src="scope.row.legal_front_id_card"
fit="fill"
></el-image>
<span v-else>无权限</span>
</template>
</el-table-column>
<el-table-column
......@@ -81,106 +90,21 @@
>
<template #default="scope">
<el-image
v-if="scope.row.legal_back_id_card"
fit="fill"
:src="scope.row.legal_back_id_card"
></el-image>
<span v-else>无权限</span>
</template>
</el-table-column>
</el-table>
<!-- 修改详情页 -->
<!-- <el-form
<enterprise-form
:dataForm="messageForm"
:enterpriseId="auditId"
v-if="pageStatus === 'EDIT'"
:rules="messageLishRules"
label-width="240px"
ref="establish_form"
:model="messageList[0]"
>
<el-form-item
label="商户类型"
prop="merchantsType"
>
<el-select v-model="messageList[0].merchantsType">
<el-option
label="个体工商户"
:value="1"
></el-option>
<el-option
label="普通企业"
:value="2"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label="营业执照:"
ref="licenseChange"
prop="businessLicense"
>
<el-upload
action=""
multiple
show-file-list
:limit="4"
:auto-upload="false"
:file-list="messageList[0].licenseList"
:on-change="onLicenseChange"
:on-remove="onLicenseRemove"
>
<el-button
size="small"
type="primary"
>点击上传</el-button>
</el-upload>
</el-form-item>
<el-form-item
label="企业注册名称:"
prop="registeredName"
>
<el-input v-model.trim="messageList[0].registeredName"></el-input>
</el-form-item>
<el-form-item
label="统一社会信用代码(注册码):"
prop="registrationCode"
>
<el-input v-model.trim="messageList[0].registrationCode"></el-input>
</el-form-item>
<el-form-item
label="经营者(法人)身份证照片:"
ref="idcardPhotoChange"
prop="legalPhoto"
>
<el-upload
action=""
multiple
show-file-list
:auto-upload="false"
:file-list="messageList[0].idcardPhoto"
:on-change="onIdPhoneChange"
:on-remove="onIdPhoneRemove"
>
<el-button
size="small"
type="primary"
>点击上传</el-button>
</el-upload>
</el-form-item>
<el-form-item
label="经营者(法人)姓名:"
prop="legalName"
>
<el-input v-model.trim="messageList[0].legalName"></el-input>
</el-form-item>
<el-form-item
label="经营者(法人)身份证号:"
prop="idcardNumber"
>
<el-input v-model.trim="messageList[0].idcardNumber"></el-input>
</el-form-item>
</el-form> -->
></enterprise-form>
</el-card>
<!-- 审核/查看详情/修改详情__提交信息 -->
......@@ -223,32 +147,36 @@
<el-table-column
align="center"
label="提交审核时间"
prop="subDate"
prop="commit_time"
></el-table-column>
<el-table-column
align="center"
label="提交人"
prop="author"
prop="commit_name"
></el-table-column>
<el-table-column
align="center"
label="审核时间"
prop="auditDate"
prop="create_time"
></el-table-column>
<el-table-column
align="center"
label="审核人"
prop="auditer"
prop="opt_user_name"
></el-table-column>
<el-table-column
align="center"
label="审核状态"
prop="status"
></el-table-column>
>
<template #default="scope">
<span v-if="scope.row.audit_status === 20">通过</span>
<span v-if="scope.row.audit_status === 30">审核不通过</span>
</template>
</el-table-column>
<el-table-column
align="center"
label="审核意见"
prop="address"
prop="audit_opinion"
></el-table-column>
</el-table>
</el-card>
......@@ -270,10 +198,15 @@
></textarea>
<h5 class="mgtb20">审核结果</h5>
<div class="button_area">
<el-button type="primary">通过</el-button>
<el-button
:disabled="!permission.get('audit')"
type="primary"
@click="auditResult(20)"
>通过</el-button>
<el-button
:disabled="!permission.get('audit')"
type="danger"
@click="auditRefuse"
@click="auditResult(30)"
>拒绝</el-button>
</div>
</el-card>
......@@ -315,21 +248,6 @@
></el-table-column>
</el-table>
</el-card>
<!-- 修改详情__提交表单或取消提交 -->
<div
class="edit_button_area"
v-if="pageStatus === 'EDIT'"
>
<el-button
@click="handelCancel('establish_form')"
type="danger"
>取消</el-button>
<el-button
@click="handelSubmit('establish_form')"
type="primary"
>提交审核</el-button>
</div>
</div>
</layout>
</template>
......@@ -338,10 +256,11 @@
<script>
import Layout from "@/layouts";
import { getRecordInfo, getLog } from "@/service/enterprise";
import { getRecordInfo, getLog, postAudit } from "@/service/enterprise";
import EnterpriseForm from "../components/enterpriseForm.vue";
export default {
name: "Audit",
components: { Layout },
components: { Layout, EnterpriseForm },
beforeRouteEnter (to, from, next) {
to.params.pageStatus && to.params.auditId
? next()
......@@ -353,128 +272,27 @@ export default {
this.auditId = parseInt(auditId);
this.pageStatus = pageStatus;
this.getInfo();
this.getHistory()
this.getHistory();
console.log(this.$store);
},
data () {
// 营业执照校验规则
let businessRules = (rule, value, callback) => {
if (this.messageList[0].licenseList.length === 0) {
callback(new Error("请上传营业执照"));
} else {
callback();
}
};
// 身份证照片校验规则
let idPhotoRules = (rule, value, callback) => {
if (this.messageList[0].idcardPhoto.length === 0) {
callback(new Error("请上传身份证照片"));
} else {
callback();
}
};
// 身份证号校验规则
let idcardNumberRules = (rule, value, callback) => {
let IDRe18 = /^([1-6][1-9]|50)\d{4}(18|19|20)\d{2}((0[1-9])|10|11|12)(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/;
let IDre15 = /^([1-6][1-9]|50)\d{4}\d{2}((0[1-9])|10|11|12)(([0-2][1-9])|10|20|30|31)\d{3}$/;
let idNumber = this.messageList[0].idcardNumber;
if (idNumber.length === 0) {
callback(new Error("身份证号不可为空"));
} else if (!(IDRe18.test(idNumber) || IDre15.test(idNumber))) {
callback(new Error("身份证号格式不正确"));
} else {
callback();
}
};
return {
pageStatus: null, // 哪个按钮进入
auditId: null, // 传入的企业id
// 审核/修改详情/查看详情-企业信息
messageList: [
{
merchantsType: null,
status: 1,
id: 1221,
code: 112211,
registeredName: "一点资讯", // 企业名称
registrationCode: 1221, // 注册码
licenseList: [], // 营业执照
legalName: "蒙文昊", // 法人姓名
idcardNumber: 150402199704132713, // 法人身份证号
idcardPhoto: [] // 身份证照片
}
],
// 审核-提交历史
historyList: [
{
subDate: "2021-05-26",
author: "蒙文昊",
auditDate: "2021-05-26",
auditer: "蒙文昊",
status: 1,
address: "请求通过,可以提交审核"
}
],
messageList: [],
// 审核-审核意见
opinionArea: "",
messageForm: {}, // 修改信息表单
// 生活号-生活号信息
// 生活号列表信息
lifeList: [],
// 修改详情-表单校验规则
messageLishRules: {
// 营业执照
businessLicense: [
{ required: true, validator: businessRules, trigger: "change" }
],
// 企业注册名称
registeredName: [
{ required: true, message: "请输入企业注册名称", trigger: "blur" }
],
// 注册码
registrationCode: [
{
required: true,
message: "请输入统一社会信用代码(注册码)",
trigger: "blur"
}
],
// 法人照片
legalPhoto: [
{ required: true, validator: idPhotoRules, trigger: "change" }
],
// 法人姓名
legalName: [
{
required: true,
message: "请输入经营者(法人)姓名",
trigger: "blur"
}
],
// 法人身份证号
idcardNumber: [
{
required: true,
validator: idcardNumberRules,
trigger: "blur"
}
],
// 商户类型
merchantsType: [
{
required: true,
message: "请选择商户类型",
trigger: "change"
}
]
},
// 审核-提交历史
historyList: [],
// 生活号状态
lifeStatus: false,
// 生活号错误信息
lifeErrorMessage: ""
// 审核-审核意见
opinionArea: ""
};
},
......@@ -487,6 +305,13 @@ export default {
} else {
return "查看详情页";
}
},
permission () {
const modulePermissions =
this.$store.getters.moduleSubPermissions("enterprise") || [];
console.log("Current page func-permissions:", modulePermissions);
return new Map(modulePermissions.map(ele => [ele.name, true]));
}
},
......@@ -498,11 +323,13 @@ export default {
const params = { enterprise_auth_record_id: this.auditId };
try {
const res = await getRecordInfo(params);
if (res.code !== 0) return this.$message.error(res.result);
if (res.code !== 0) return this.$message.error(res.reason);
this.messageForm = res.result.record;
this.messageList.push(res.result.record);
this.lifeList.push(res.result.life);
console.log(this.lifeList);
console.log(this.messageList);
console.log("messageForm=1-2=310=-203", this.messageForm);
console.log("lifeLIST======", this.lifeList);
console.log("messageList", this.messageList);
console.log(res);
} catch (error) {
this.$message.error("发生未知错误,请稍后再试一下吧~~~");
......@@ -513,63 +340,41 @@ export default {
// 获取提交日志信息(历史提交)
async getHistory () {
const res = await getLog({ enterprise_auth_record_id: this.auditId });
console.log("提交历史记录", res);
if (res.code !== 0) return this.$message.error(res.reason);
this.historyList = [...res.result];
},
// 审核-拒绝审核
auditRefuse () {
async auditResult (status) {
console.log(this.$store.state.userInfo.userid);
const params = {
audit_status: status,
audit_user_name: this.$store.state.userInfo.name,
audit_user_id: this.$store.state.userInfo.userid,
enterprise_auth_record_id: this.auditId,
audit_opinion: this.opinionArea
};
// 审核通过
if (status === 20) {
const res = await postAudit(params);
if (res.code !== 0) return this.$message.error(res.reason);
this.$message.success("审核通过成功!");
this.$router.replace({ name: "Certification" });
}
// 拒绝审核通过
else {
if (this.opinionArea.length === 0)
return this.$message.error("请填写拒绝原因");
return this.$message.error("请填写审核意见");
const res = await postAudit(params);
if (res.code !== 0) return this.$message.error(res.reason);
this.$message.warning("拒绝审核通过成功!");
this.$router.replace({ name: "Certification" });
}
},
// 返回上一页
goBack () {
this.$router.replace({ name: "Certification" });
},
// 生活号-创建生活号弹框显示
// onCreateLife (params) {
// console.log(params);
// this.isDialogShow = true;
// this.lifeStatus = true;
// },
// 修改详情-提交审核
handelSubmit (formName) {
this.$refs[formName].validate(valid => {
console.log(valid);
});
},
// 修改详情-取消修改表单
handelCancel () {
this.$router.replace({ name: "Certification" });
},
// 修改详情-执照列表更改时
onLicenseChange (file, fileList) {
this.messageList[0].licenseList = fileList;
this.$refs["licenseChange"].clearValidate();
console.log("licenseList", this.messageList[0].licenseList);
},
// 修改详情-身份证照片更改时
onIdPhoneChange (file, fileList) {
this.messageList[0].idcardPhoto = fileList;
this.$refs["idcardPhotoChange"].clearValidate();
console.log("idcardPhoto:", this.messageList[0].idcardPhoto);
},
// 修改详情-删除上传的营业执照
onLicenseRemove (file, fileList) {
console.log("file", file);
console.log("fileList", fileList);
this.messageList[0].licenseList = fileList;
console.log("licenseList", this.messageList[0].licenseList);
},
// 修改详情-删除上传的身份证照片
onIdPhoneRemove (file, fileList) {
this.messageList[0].idcardPhoto = fileList;
console.log("idCarPhoto:", this.messageList[0].idcardPhoto);
}
}
};
......
......@@ -2,6 +2,7 @@
<layout>
<!-- 企业信息提交 -->
<el-button
:disabled="!permission.get('create')"
type="primary"
class="setUp"
@click="goEstablish"
......@@ -17,19 +18,28 @@
>
<!-- 查询信息区域 -->
<div class="formItem">
<el-form-item label="企业注册名称:">
<el-form-item
label="企业注册名称:"
prop="name"
>
<el-input v-model="enterpriseForm.name"></el-input>
</el-form-item>
<el-form-item label="注册码:">
<el-form-item
label="注册码:"
prop="code"
>
<el-input v-model="enterpriseForm.code"></el-input>
</el-form-item>
<el-form-item
label="法人或经营者姓名:"
prop="userName"
prop="legal_person"
>
<el-input v-model="enterpriseForm.legal_person"></el-input>
</el-form-item>
<el-form-item label="审核状态:">
<el-form-item
label="审核状态:"
prop="audit_status"
>
<el-select
placeholder="请选择审核状态"
v-model="enterpriseForm.audit_status"
......@@ -42,9 +52,12 @@
></el-option>
</el-select>
</el-form-item>
<el-form-item label="提交类型:">
<el-form-item
label="提交类型:"
prop="data_from"
>
<el-select
v-model="enterpriseForm.data_form"
v-model="enterpriseForm.data_from"
placeholder="请选择提交类型"
>
<el-option
......@@ -55,7 +68,10 @@
></el-option>
</el-select>
</el-form-item>
<el-form-item label="提交人账号:">
<el-form-item
label="提交人账号:"
prop="proxy_user_name"
>
<el-input v-model="enterpriseForm.proxy_user_name"></el-input>
</el-form-item>
</div>
......@@ -92,7 +108,7 @@
>
<template #default="scope">
<span v-if="scope.row.audit_status === 5">编辑中</span>
<span v-if="scope.row.audit_status === 10">身份证校验通过待平台审核</span>
<span v-if="scope.row.audit_status === 10">审核</span>
<span v-if="scope.row.audit_status === 20">审核成功</span>
<span v-if="scope.row.audit_status === 30">审核失败</span>
</template>
......@@ -141,9 +157,12 @@
<el-button
size="mini"
type="primary"
:disabled="!permission.get('audit')"
@click="goAuditPage('AUDIT', scope.row.enterprise_auth_record_id)"
>审核</el-button>
<!-- || scope.row.audit_status !== 30 ? true : false -->
<el-button
:disabled="!permission.get('edit') "
size="mini"
type="success"
@click="goAuditPage('EDIT', scope.row.enterprise_auth_record_id)"
......@@ -206,11 +225,11 @@ export default {
code: "",
legal_person: "",
audit_status: null,
data_form: null,
data_from: null,
proxy_user_name: null,
statusOptions: [
{ value: 5, label: "编辑中" },
{ value: 10, label: "身份证校验通过待平台审核" },
{ value: 10, label: "审核" },
{ value: 20, label: "审核成功" },
{ value: 30, label: "审核失败" }
],
......@@ -237,11 +256,12 @@ export default {
created () {
this.getEnterpriseList();
console.log(this.$store);
},
computed: {
// 使用示例: permission.get("audit") 获取是否有审核权限
permission() {
permission () {
const modulePermissions = this.$store.getters.moduleSubPermissions('enterprise') || [];
console.log('Current page func-permissions:', modulePermissions);
return new Map(modulePermissions.map(ele => [ele.name, true]))
......@@ -257,7 +277,7 @@ export default {
code,
legal_person,
audit_status,
data_form,
data_from,
proxy_user_name
} = this.enterpriseForm;
const params = {
......@@ -267,7 +287,7 @@ export default {
code, // 注册码
legal_person, // 法人或经营者姓名
audit_status, // 审核状态
data_form, // 提交类型
data_from, // 提交类型
proxy_user_name // 提交人账号
};
try {
......@@ -285,6 +305,7 @@ export default {
// 重置表单
resetForm (formName) {
this.$refs[formName].resetFields();
this.getEnterpriseList();
},
// 跳转到企业信息提交
......@@ -317,22 +338,18 @@ export default {
if (this.checkIsCode.length === 0) {
return this.$message.error("验证码不可为空");
} else {
try {
const parasm = {
enterprise_auth_record_id: this.auditId,
code: parseInt(this.checkIsCode)
};
const res = await checkCode(parasm);
console.log(res);
if (res.code !== 0) return this.$message.error(res.reason);
// if (res.code !== 0) return this.$message.error(res.reason);
this.$message.success("验证码校验成功!");
this.$router.push({
name: "Audit",
params: { pageStatus: "EDIT", auditId: this.auditId }
});
} catch (error) {
console.log(error);
}
}
},
......
......@@ -7,280 +7,7 @@
@back="goBack"
></el-page-header>
<div class="establish">
<el-form
:rules="establishRules"
label-width="240px"
ref="establishFormRef"
:model="establishForm"
>
<h3>营业执照信息</h3>
<!-- 商户类型 -->
<el-form-item
label="商户类型"
prop="dataType"
>
<el-select
placeholder="请选择商户类型"
v-model="establishForm.dataType"
>
<el-option
label="个体工商户"
:value="1"
></el-option>
<el-option
label="普通企业"
:value="2"
></el-option>
</el-select>
</el-form-item>
<!-- 营业执照金山云key -->
<el-form-item
label="营业执照:"
ref="licenseChange"
prop="businessLicense"
>
<el-upload
action=""
multiple
show-file-list
:auto-upload="false"
:file-list="establishForm.licenseList"
:on-change="onLicenseChange"
:on-remove="onLicenseRemove"
>
<el-button
size="small"
type="primary"
>点击上传</el-button>
</el-upload>
</el-form-item>
<!-- 企业注册名称 -->
<el-form-item
label="企业注册名称:"
prop="name"
>
<el-input v-model.trim="establishForm.name"></el-input>
</el-form-item>
<!-- 企业代码 -->
<el-form-item
label="统一社会信用代码(注册码:"
prop="code"
>
<el-input v-model.trim="establishForm.code"></el-input>
</el-form-item>
<!-- 数据来源 -->
<el-form-item
label="数据来源:"
prop="data_from"
>
<el-select
v-model="establishForm.data_from"
placeholder="请选择数据来源"
>
<el-option
label="C端"
:value="1"
></el-option>
<el-option
label="B端"
:value="2"
></el-option>
<el-option
label="OP后台代提交"
:value="3"
></el-option>
</el-select>
</el-form-item>
<!-- 代提交人手机号 -->
<el-form-item
label="待提交人手机号:"
prop="mobile"
>
<el-input v-model.number="establishForm.mobile"></el-input>
</el-form-item>
<el-form-item
label="代提交标识"
prop="is_agent"
>
<el-select v-model="establishForm.is_agent">
<el-option
label="代提交"
:value="1"
></el-option>
</el-select>
</el-form-item>
<!-- =================普通企业法人/个体工商户身份认证信息========== -->
<h3>身份信息</h3>
<!-- 企业营业执照号 -->
<el-form-item
label="企业营业执照号"
prop="enterpriseCode"
>
<el-input
placeholder="请输入企业营业执照号"
v-model="establishForm.enterpriseCode"
></el-input>
</el-form-item>
<!-- 身份证正面照片 -->
<el-form-item
label="身份证正面照"
prop="front_img"
>
<el-upload
action=""
multiple
show-file-list
:auto-upload="false"
:file-list="establishForm.licenseList"
:on-change="onLicenseChange"
:on-remove="onLicenseRemove"
>
<el-button
size="small"
type="primary"
>点击上传</el-button>
</el-upload>
</el-form-item>
<!-- 身份证反面照片 -->
<el-form-item
label="身份证反面照"
prop="bak_img"
>
<el-upload
action=""
multiple
show-file-list
:auto-upload="false"
:file-list="establishForm.licenseList"
:on-change="onLicenseChange"
:on-remove="onLicenseRemove"
>
<el-button
size="small"
type="primary"
>点击上传</el-button>
</el-upload>
</el-form-item>
<!-- orc照片正面完整度 -->
<el-form-item
label="orc正面完整度"
prop="front_completeness"
>
<el-input v-model="establishForm.front_completeness"></el-input>
</el-form-item>
<!-- orc照片反面完整度 -->
<el-form-item
label="orc反面完整度"
prop="bak_completeness"
>
<el-input v-model="establishForm.bak_completeness"></el-input>
</el-form-item>
<!-- 身份证号 -->
<el-form-item
label="身份证号"
prop="idcard_number"
>
<el-input v-model="establishForm.idcard_number"></el-input>
</el-form-item>
<!-- 姓名 -->
<el-form-item
label="经营者(法人)姓名"
prop="userName"
>
<el-input v-model="establishForm.userName"></el-input>
</el-form-item>
<!-- ====================== 非必填项 =============================== -->
<!-- 营业执照企业类型 -->
<!-- <el-form-item label="营业执照上企业类型:">
<el-input
placeholder="如:有限责任公司,个体工商户等文字描述"
v-model.trim="establishForm.type"
></el-input>
</el-form-item> -->
<!-- 企业注册地址 -->
<!-- <el-form-item label="企业注册地址:">
<el-input v-model.trim="establishForm.addr"></el-input>
</el-form-item> -->
<!-- 经营范围 -->
<!-- <el-form-item label="经营范围:">
<el-input v-model.trim="establishForm.scope"></el-input>
</el-form-item> -->
<!-- 有效期 -->
<!-- <el-form-item label="有效期:">
<el-input v-model.trim="establishForm.time"></el-input>
</el-form-item> -->
<!-- 注册资本 -->
<!-- <el-form-item label="注册资本:">
<el-input v-model.trim="establishForm.regi"></el-input>
</el-form-item> -->
<!-- 主管单位 -->
<!-- <el-form-item label="主管单位:">
<el-input v-model.trim="establishForm.organizer"></el-input>
</el-form-item> -->
<!-- 成立时间 -->
<!-- <el-form-item label="成立时间:">
<el-input v-model.trim="establishForm.date"></el-input>
</el-form-item> -->
<!-- 登记机关 -->
<!-- <el-form-item label="登记机关:">
<el-input v-model.trim="establishForm.comp"></el-input>
</el-form-item> -->
<!-- 登记号 -->
<!-- <el-form-item label="登记号:">
<el-input v-model.trim="establishForm.num"></el-input>
</el-form-item> -->
<!-- 组成形式 -->
<!-- <el-form-item label="组成形式:">
<el-input v-model.trim="establishForm.form"></el-input>
</el-form-item> -->
<!-- 经费来源 -->
<!-- <el-form-item label="经费来源:">
<el-input v-model.trim="establishForm.funding"></el-input>
</el-form-item> -->
<!-- 发证日期 -->
<!-- <el-form-item label="发证日期:">
<el-input v-model.trim="establishForm.issue_date"></el-input>
</el-form-item> -->
<!-- 生活号id -->
<!-- <el-form-item label="生活号id:">
<el-input v-model.trim="establishForm.life_account_id"></el-input>
</el-form-item> -->
<!-- 代提交人名 -->
<!-- <el-form-item label="代提交人名:">
<el-input v-model.trim="establishForm.proxy_user_name"></el-input>
</el-form-item> -->
<!-- 代提交,被提交人手机号 -->
<!-- <el-form-item label="代提交/被提交用户手机号:">
<el-input v-model.trim="establishForm.phone"></el-input>
</el-form-item> -->
<!-- 代提交标识位 -->
<!-- <el-form-item label="发证日期:">
<el-select
placeholder="是否为代提交"
v-model="establishForm.is_agent"
>
<el-option
label="代提交"
:value="1"
></el-option>
<el-option
label="非代提交"
:value="null"
></el-option>
</el-select>
</el-form-item> -->
<el-form-item>
<el-button @click="handelCancel('establishFormRef')">取消</el-button>
<el-button
@click="handelSubmit('establishFormRef')"
type="primary"
>提交审核</el-button>
</el-form-item>
</el-form>
</div>
<enterprise-form :type="'SUBMIT'"></enterprise-form>
</layout>
</template>
......@@ -288,141 +15,16 @@
<script>
import Layout from "@/layouts";
import { entCommit } from "../../../service/enterprise";
import EnterpriseForm from "../components/enterpriseForm.vue";
export default {
name: "Establish",
components: { Layout },
data () {
// 营业执照校验规则
let businessRules = (rule, value, callback) => {
if (this.establishForm.licenseList.length === 0) {
callback(new Error("请上传营业执照"));
} else {
callback();
}
};
/* // 身份证照片校验规则
let idPhotoRules = (rule, value, callback) => {
if (this.establishForm.idcardPhoto.length === 0) {
callback(new Error("请上传身份证照片"));
} else {
callback();
}
}; */
// 身份证号校验规则
let idcardNumberRules = (rule, value, callback) => {
let IDRe18 = /^([1-6][1-9]|50)\d{4}(18|19|20)\d{2}((0[1-9])|10|11|12)(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/;
let IDre15 = /^([1-6][1-9]|50)\d{4}\d{2}((0[1-9])|10|11|12)(([0-2][1-9])|10|20|30|31)\d{3}$/;
let idNumber = this.establishForm.idcard_number;
if (idNumber.length === 0) {
callback(new Error("身份证号不可为空"));
} else if (!(IDRe18.test(idNumber) || IDre15.test(idNumber))) {
callback(new Error("身份证号格式不正确"));
} else {
callback();
}
};
return {
// 表单输入项
establishForm: {
user_id: null, // 用户id(!)
code: null, // 企业代码(!)
name: null, // 企业名称(!)
entterprise_image: null, // 金山云key(!)
data_from: null, // 数据来源(!)
dataType: null, // 企业认证类型(!)
type: null, // 营业执照上的企业类型
addr: null, // 企业注册地址
pers: null, // 法人
scope: null, // 经营范围
time: null, // 有效期
regi: null, // 注册资本
organizer: null, // 主管单位
date: null, // 成立时间
comp: null, // 登记机关
num: null, // 登记号,
form: null, // 组成形式
funding: null, // 经费来源
issue_date: null, // 发证日期
life_account_id: null, // 生活号id
proxy_user_name: null, // OP后台代提交人姓名
phone: null, // 代提交 被提交用户手机号
is_agent: null, // 代提交标识位
/* *********身份认证信息********* */
enterpriseCode: "", // 企业营业执照(!)
front_img: "", // 身份证正面照的金山云objectid(!)
bak_img: "", // 身份证反面照的尖山云objeid(!)
front_completeness: "", // ocr识别身份证正面照的完整度(!)
bak_completeness: "", // ocr识别身份证反面的完整度(!)
idcard_number: "", // 身份证号(!) 用户填写的
gender: "", // 性别(身份证识别的:男/女)
userName: "", // 姓名 用户填写的(!)
address: "", // 地址
nationality: "", // 民族
valid_date_start: "", // 身份证有效期开始时间
valid_date_end: "", // 身份证有效期结束时间
issued_by: "" // 签发机关
components: { Layout, EnterpriseForm },
created () {
},
// 表单校验规则
establishRules: {
// 营业执照
businessLicense: [
{ required: true, validator: businessRules, trigger: "change" }
],
// 企业注册名称
name: [
{ required: true, message: "请输入企业注册名称", trigger: "blur" }
],
// 注册码
code: [
{
required: true,
message: "请输入统一社会信用代码(注册码)",
trigger: "blur"
}
],
// 商户类型
dataType: [
{ required: true, message: "请选择商户类型", trigger: "change" }
],
// 数据来源
data_from: [
{ required: true, message: "请选择数据来源", trigger: "change" }
],
/* ****************法人/个体用户身份校验***************** */
// 企业营业执照号
enterpriseCode: [
{ required: true, message: "请输入企业营业执照号", trigger: "blur" }
],
// 身份证正面照
front_img: [
{ required: true, message: "请上传身份证正面照", trigger: "change" }
],
// 身份证反面照
bak_img: [
{ required: true, message: "请上传身份证反面照", trigger: "change" }
],
// 正面完整度
front_completeness: [
{ required: true, message: "请填写orc正面完整度", trigger: "blur" }
],
// 反面完整度
bak_completeness: [
{ required: true, message: "请填写orc反面完整度", trigger: "blur" }
],
// 身份证号
idcard_number: [
{ required: true, validator: idcardNumberRules, trigger: "blur" }
],
// 经营者/法人姓名
userName: [
{ required: true, message: "请填写经营者(法人姓名)", trigger: "blur" }
],
mobile: [{ required: true, message: "请填写待提交人手机号", trigger: "blur" }],
is_agent: [{ required: true, message: "请填写是否代提交", trigger: "change" }]
}
};
data () {
return {};
},
methods: {
......@@ -430,72 +32,6 @@ export default {
goBack () {
this.$router.replace({ name: "Certification" });
},
// 执照列表更改时
onLicenseChange (file, fileList) {
this.establishForm.licenseList = fileList;
this.$refs["licenseChange"].clearValidate();
},
// 身份证照片更改时
onIdPhoneChange (file, fileList) {
this.establishForm.idcardPhoto = fileList;
this.$refs["idcardPhotoChange"].clearValidate();
},
// 删除上传的营业执照
onLicenseRemove (file, fileList) {
this.establishForm.licenseList = fileList;
},
// 删除上传的身份证照片
onIdPhoneRemove (file, fileList) {
this.establishForm.idcardPhoto = fileList;
},
// 取消创建表单
handelCancel () {
this.$router.go(-1);
},
// 提交表单
handelSubmit (formName) {
this.$refs[formName].validate(async valid => {
console.log(valid);
const query = {
user_id: 510232747179, // 用户id
code: parseInt(this.establishForm.code), // 企业代码
name: this.establishForm.name, // 企业名称
type: "", // 企业类型
addr: "", // 企业注册地址
pers: "", // 法人
scope: "", // 经营范围
time: "", // 有效期
regi: "", // 注册资本
organizer: "", // 主管单位(!)
date: "", // 成立时间(!)
comp: "", // 登记机关(!)
num: "", // 登记号(!)
form: "", // 组成形式(!)
funding: "", // 经费来源(!)
issue_date: "", // 发证日期(!)
entterprise_image: "", // 金山云key
data_from: "", // 数据来源,1C端,2B端,3 OP后台代提交
proxy_user_name: "" // OP后台代提交 代提交人名(!)
};
if (valid) {
const res = await entCommit(query);
if (res.code !== 0) {
return this.$message.error(res.reason);
} else {
this.$message({ type: "success", message: "信息提交成功!" });
}
console.log(res);
} else {
this.$message.error("表单未填写完整!");
}
});
}
}
};
</script>
<template>
<div class="establish">
<el-form
:rules="establishRules"
label-width="240px"
ref="establishFormRef"
:model="establishForm"
>
<h3>营业执照信息</h3>
<!-- 商户类型 -->
<el-form-item
label="商户类型"
prop="data_type"
>
<el-select
placeholder="请选择商户类型"
v-model="establishForm.data_type"
>
<el-option
label="个体工商户"
:value="1"
></el-option>
<el-option
label="普通企业"
:value="2"
></el-option>
</el-select>
</el-form-item>
<!-- 营业执照金山云key -->
<el-form-item
label="营业执照:"
ref="licenseChange"
prop="businessLicense"
>
<el-image
v-if="establishForm.entterprise_image"
style="width:100px;height:100px;border-radius:10px"
:src="establishForm.entterprise_image"
fit="cover"
></el-image>
<el-upload
:show-file-list="false"
action="http://bp-dev.ini.yidian-inc.com/merchant/lifeinner/upload"
:limit="1"
:accept="'image/*'"
auto-upload
:on-success="handleSuccess"
:on-error="handleError"
>
<el-button
size="small"
type="primary"
>点击上传</el-button>
</el-upload>
</el-form-item>
<!-- 企业注册名称 -->
<el-form-item
label="企业注册名称:"
prop="name"
>
<el-input v-model.trim="establishForm.name"></el-input>
</el-form-item>
<!-- 企业代码 -->
<el-form-item
label="统一社会信用代码(注册码):"
prop="code"
>
<el-input v-model.trim="establishForm.code"></el-input>
</el-form-item>
<!-- 数据来源 -->
<el-form-item
label="数据来源:"
prop="data_from"
>
<el-select
v-model="establishForm.data_from"
placeholder="请选择数据来源"
>
<el-option
label="C端"
:value="1"
></el-option>
<el-option
label="B端"
:value="2"
></el-option>
<el-option
label="OP后台代提交"
:value="3"
></el-option>
</el-select>
</el-form-item>
<!-- =================普通企业法人/个体工商户身份认证信息========== -->
<h3>身份信息</h3>
<!-- 身份证正面照片 -->
<el-form-item
label="经营者(法人)身份证正面照"
prop="front_img"
>
<el-image
v-if="establishForm.front_img"
style="width:100px;height:100px;border-radius:10px"
:src="establishForm.front_img"
fit="cover"
></el-image>
<el-upload
action=""
multiple
show-file-list
:limit="1"
:auto-upload="false"
:file-list="establishForm.idcardFontPhoto"
:on-change="onIdPhoneFontChange"
:on-remove="onIdPhoneRemove"
>
<el-button
size="small"
type="primary"
>点击上传</el-button>
</el-upload>
</el-form-item>
<!-- 身份证反面照片 -->
<el-form-item
label="经营者(法人)身份证反面照"
prop="bak_img"
>
<el-image
v-if="establishForm.bak_img"
style="width:100px;height:100px;border-radius:10px"
:src="establishForm.bak_img"
fit="cover"
></el-image>
<el-upload
action=""
multiple
show-file-list
:limit="1"
:auto-upload="false"
:file-list="establishForm.idcardBackPhoto"
:on-change="onIdPhoneBackChange"
:on-remove="onIdPhoneRemove"
>
<el-button
size="small"
type="primary"
>点击上传</el-button>
</el-upload>
</el-form-item>
<!-- 经营者(法人)姓名 -->
<el-form-item
label="经营者(法人)姓名:"
prop="userName"
>
<el-input v-model="establishForm.userName"></el-input>
</el-form-item>
<!-- 经营者(法人)手机号 -->
<el-form-item
label="经营者(法人)手机号:"
prop="mobile"
v-if="isMobbileRequired"
>
<el-input v-model="establishForm.mobile"></el-input>
</el-form-item>
<el-form-item
label="经营者(法人)手机号:"
v-else
>
<el-input v-model="establishForm.mobile"></el-input>
</el-form-item>
<!-- 经营者(法人)身份证号 -->
<el-form-item
label="经营者(法人)身份证号:"
prop="idcard_number"
>
<el-input v-model="establishForm.idcard_number"></el-input>
</el-form-item>
<!-- 用户手机号 -->
<!-- <el-form-item
label="用户手机号:"
prop="mobile"
>
<el-input v-model.number="establishForm.mobile"></el-input>
</el-form-item> -->
<el-form-item>
<el-button @click="handelCancel('establishFormRef')">取消</el-button>
<el-button
@click="handelSubmit('establishFormRef')"
type="primary"
>提交审核</el-button>
</el-form-item>
</el-form>
</div>
</template>
<style lang="less" scoped>
// 主体区域
.establish {
padding: 0;
display: flex;
justify-content: center;
}
</style>
<script>
import { postBusiness, opCommit } from "@/service/enterprise";
export default {
props: {
enterpriseId: { type: Number },
dataForm: { type: Object }
},
data () {
// 营业执照校验规则
const businessRules = (rule, value, callback) => {
if (!this.establishForm.entterprise_image) {
callback(new Error("请上传营业执照"));
} else {
callback();
}
};
// 身份证照片正面校验规则
const idPhotoFontRules = (rule, value, callback) => {
if (this.establishForm.idcardFontPhoto.length === 0) {
callback(new Error("请上传身份正面证照片"));
} else {
callback();
}
};
// 身份证照片反面校验规则
const idPhotoBackRules = (rule, value, callback) => {
if (this.establishForm.idcardBackPhoto.length === 0) {
callback(new Error("请上传身份反面证照片"));
} else {
callback();
}
};
// 身份证号校验规则
const idcardNumberRules = (rule, value, callback) => {
const IDRe18 = /^([1-6][1-9]|50)\d{4}(18|19|20)\d{2}((0[1-9])|10|11|12)(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/;
const IDre15 = /^([1-6][1-9]|50)\d{4}\d{2}((0[1-9])|10|11|12)(([0-2][1-9])|10|20|30|31)\d{3}$/;
const { idcard_number } = this.establishForm;
if (idcard_number.length === 0) {
callback(new Error("身份证号不可为空"));
} else if (!(IDRe18.test(idcard_number) || IDre15.test(idcard_number))) {
callback(new Error("身份证号格式不正确"));
} else {
callback();
}
};
// 手机号校验规则
const mobileRules = (rule, value, callback) => {
const phoneReg = /^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/;
const { mobile } = this.establishForm;
if (mobile.length === 0) {
callback(new Error("手机号码不可为空"));
} else if (!phoneReg.test(mobile)) {
callback(new Error("手机号格式不正确"));
}
// if (!phoneReg.test(legal_mobile)) {
// callback(new Error("手机号格式不正确"));
// }
callback();
};
return {
// 表单输入项
establishForm: {
code: null, // 企业代码(!)
name: null, // 企业名称(!)
entterprise_image: null, // 金山云key(!)
data_from: null, // 数据来源(!)
/* *********身份认证信息********* */
record_id: null, // 企业认证id
front_img: "", // 身份证正面照的金山云objectid(!)
bak_img: "", // 身份证反面照的尖山云objeid(!)
idcard_number: "", // 身份证号(!)
userName: "", // 用户姓名(!)
mobile: null, // 用户手机号
data_type: null // 企业类型(!)
},
// 表单回显信息
callbackForm: null,
// 表单校验规则
establishRules: {
// 营业执照
businessLicense: [
{ required: true, validator: businessRules, trigger: "change" }
],
// 企业注册名称
name: [
{ required: true, message: "请输入企业注册名称", trigger: "blur" }
],
// 注册码
code: [{ required: true, message: "请输入企业代码", trigger: "blur" }],
// 商户类型
data_type: [
{ required: true, message: "请选择商户类型", trigger: "change" }
],
// 数据来源
data_from: [
{ required: true, message: "请选择数据来源", trigger: "change" }
],
/* ****************法人/个体用户身份校验***************** */
// 身份证正面照
front_img: [
{ required: true, validator: idPhotoFontRules, trigger: "change" }
],
// 身份证反面照
bak_img: [
{ required: true, validator: idPhotoBackRules, trigger: "change" }
],
// 身份证号
idcard_number: [
{ required: true, validator: idcardNumberRules, trigger: "blur" }
],
// 经营者/法人姓名
userName: [
{ required: true, message: "请填写经营者(法人姓名)", trigger: "blur" }
],
// 法人手机号
mobile: [{ required: true, validator: mobileRules, trigger: "blur" }]
/* // 法人手机号
legal_mobile: [{ required: true, validator: mobileRules, trigger: "blur" }] */
}
};
},
computed: {
isMobbileRequired () {
return this.establishForm.data_type === 2 ? true : false;
}
},
watch: {
// 监听异步传过来的表单值做修改
dataForm (val) {
this.establishForm.data_type = val.data_type;
this.establishForm.data_from = val.data_from;
this.establishForm.name = val.name;
this.establishForm.code = val.code;
this.establishForm.entterprise_image = val.entterprise_image;
this.establishForm.front_img = val.legal_front_id_card;
this.establishForm.bak_img = val.legal_back_id_card;
this.establishForm.idcard_number = val.legal_id_card;
this.establishForm.userName = val.legal_person;
this.establishForm.mobile = val.mobile;
}
},
methods: {
// 上传营业执照时
handleSuccess (res) {
if (res.code !== 0) return this.$message.error(res.reason);
this.establishForm.entterprise_image = `http://${res.result.file_url}`
},
handleError (error, file, fileList) {
console.log("error", error);
console.log("file", file);
console.log("fileList", fileList);
},
// 身份证正面照片更改时
onIdPhoneFontChange (file, fileList) {
this.establishForm.idcardFontPhoto = fileList;
},
// 身份证照片反面更改时
onIdPhoneBackChange (file, fileList) {
this.establishForm.idcardBackPhoto = fileList;
},
// 删除上传的身份证照片
onIdPhoneRemove (file, fileList) {
this.establishForm.idcardFontPhoto = fileList;
},
// 取消创建表单
handelCancel () {
this.$router.replace({ name: "Certification" });
},
// 提交表单
async handelSubmit () {
// 企业信息提交参数
const {
code,
name,
entterprise_image,
data_from,
data_type,
front_img,
bak_img,
idcard_number,
userName,
mobile
} = this.establishForm;
const enterpriseQuery = {
code,
name,
entterprise_image,
data_from,
data_type
};
// 法人信息提交参数
const legalQuery = {
record_id: this.enterpriseId ? this.enterpriseId : "",
front_img,
bak_img,
front_completeness: 0,
bak_completeness: 0,
idcard_number,
name: userName,
mobile,
data_type,
user_id: parseInt(this.$store.state.userInfo.userid)
};
const res = await postBusiness(enterpriseQuery);
const result = await opCommit(legalQuery);
console.log("res", res);
console.log("result", result);
if (res.code !== 0) return this.$message.error(res.reason);
if (result.code !== 0) return this.$message.error(result.reason);
if (!this.enterpriseId) {
this.$message.success("企业信息代提交成功!");
this.$router.replace({ name: "Certification" });
} else {
this.$message.success("企业信息修改成功!");
this.$router.replace({ name: "Certification" });
}
}
}
};
</script>
......@@ -48,8 +48,34 @@ export async function getLog (params) {
return res;
}
// 发送企业信息认证
export async function entCommit (query) {
const res = await axios.post(`/api/v1/emterprise_commit`, query);
/**
* 企业资料审核
* @param param 企业资料审核参数
*/
export async function postAudit (params) {
const res = axios.post(`/api/v1/audit`, params);
return res;
}
/**
* 商户上传营业执照信息
* @param query 上传执照参数信息
*/
export async function postBusiness (query) {
const res = await axios.post(`/api/v1/business`, query);
return res;
}
/**
* 提交法人信息
* @param params 法人信息
*/
export async function opCommit (params) {
const res = await axios.post(`/api/v1/op_commit`, params);
return res;
}
export async function onUpload (params) {
const res = await axios.post(`/api/v1/upload`, params);
return res;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment