初步实现企业模块

pull/4/head
WeiRan 2024-08-28 01:04:30 +08:00
parent d1ff7bacc5
commit cf1669ce85
8 changed files with 609 additions and 7 deletions

View File

@ -0,0 +1,9 @@
import request from "@/utils/request";
export function linkemail(data){
return request({
url:"/market/company/list",
method: "POST",
data: data
})
}

View File

@ -0,0 +1,17 @@
import request from "@/utils/request";
export function selectcompanyList(data){
return request({
url:"/background/company/list",
method: "POST",
data: data
})
}
export function selectcompanystatus(data){
return request({
url:"/background/company/companystatus",
method: "POST",
data: data
})
}

View File

@ -104,6 +104,18 @@ export const constantRoutes = [
}
]
},
{
path: '/authentication',
component: Layout,
children: [
{
path: 'index',
name: 'authentication',
component: () => import('@/views/market/authentication/index.vue'),
meta: { title: '实名认证', icon: 'form' }
}
]
},
]
// 动态路由,基于用户权限动态去加载

View File

@ -17,7 +17,7 @@ const service = axios.create({
// axios中请求配置有baseURL选项表示请求URL公共部分
baseURL: process.env.VUE_APP_BASE_API,
// 超时
timeout: 10000
timeout: 20000
})
// request拦截器

View File

@ -0,0 +1,241 @@
<template>
<div>
<span>企业管理/待审核企业</span>
<el-container style="height: 500px; border: 1px solid #eee">
<el-aside width="200px" style="background-color: rgb(238, 241, 246)">
<span @click="choseall()"></span>
<div v-for="(companyStatus,index1) in companystatusList" :key="index1">
<span @click="chosetype(index1)" v-if="companyStatus==0"></span>
<span @click="chosetype(index1)" v-if="companyStatus==1"></span>
<span @click="chosetype(index1)" v-if="companyStatus==2"></span>
</div>
</el-aside>
<el-container>
<el-main>
<!--企业审核列表-->
<el-table
:data="tableData"
style="width: 100%">
<el-table-column
label="序号"
width="180">
<template slot-scope="scope">
<el-popover trigger="hover" placement="top">
<div slot="reference" class="name-wrapper">
<el-tag size="medium">{{ scope.row.companyId }}</el-tag>
</div>
</el-popover>
</template>
</el-table-column>
<el-table-column
label="注册人姓名"
width="180">
<template slot-scope="scope">
<el-popover trigger="hover" placement="top">
<div slot="reference" class="name-wrapper">
<el-tag size="medium">{{ scope.row.registrantName }}</el-tag>
</div>
</el-popover>
</template>
</el-table-column>
<el-table-column
label="注册人手机号码"
width="180">
<template slot-scope="scope">
<el-popover trigger="hover" placement="top">
<div slot="reference" class="name-wrapper">
<el-tag size="medium">{{ scope.row.registrantPhone }}</el-tag>
</div>
</el-popover>
</template>
</el-table-column>
<el-table-column
label="职位"
width="180">
<template slot-scope="scope">
<el-popover trigger="hover" placement="top">
<div slot="reference" class="name-wrapper">
<el-tag size="medium">{{ scope.row.registrantPosition }}</el-tag>
</div>
</el-popover>
</template>
</el-table-column>
<el-table-column
label="公司名称"
width="180">
<template slot-scope="scope">
<el-popover trigger="hover" placement="top">
<div slot="reference" class="name-wrapper">
<el-tag size="medium">{{ scope.row.companyName }}</el-tag>
</div>
</el-popover>
</template>
</el-table-column>
<el-table-column
label="地址"
width="180">
<template slot-scope="scope">
<el-popover trigger="hover" placement="top">
<div slot="reference" class="name-wrapper">
<el-tag size="medium">{{ scope.row.companyAddress }}</el-tag>
</div>
</el-popover>
</template>
</el-table-column>
<el-table-column
label="注册日期"
width="180">
<template slot-scope="scope">
<el-popover trigger="hover" placement="top">
<div slot="reference" class="name-wrapper">
<el-tag size="medium">{{ scope.row.registrantDate }}</el-tag>
</div>
</el-popover>
</template>
</el-table-column>
<el-table-column
label="社会统一信用代码"
width="180">
<template slot-scope="scope">
<el-popover trigger="hover" placement="top">
<div slot="reference" class="name-wrapper">
<el-tag size="medium">{{ scope.row.name }}</el-tag>
</div>
</el-popover>
</template>
</el-table-column>
<el-table-column
label="公司营业执照"
width="180">
<template slot-scope="scope">
<el-popover trigger="hover" placement="top">
<div slot="reference" class="name-wrapper">
<el-tag size="medium">{{ scope.row.businessLicense }}</el-tag>
</div>
</el-popover>
</template>
</el-table-column>
<el-table-column label="操作">
<template slot-scope="scope">
<el-button
size="mini"
@click="handleEdit(scope.$index, scope.row)">编辑</el-button>
<el-button
size="mini"
type="danger"
@click="handleDelete(scope.$index, scope.row)">删除</el-button>
</template>
</el-table-column>
</el-table>
<!--分页-->
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="ruleForm.pageNum"
:page-sizes="[5, 7, 9, 11]"
:page-size="ruleForm.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="total">
</el-pagination>
</el-main>
</el-container>
</el-container>
</div>
</template>
<script>
//jsjsjson,
//import from ',
import {selectcompanyList, selectcompanystatus} from "@/api/background/company";
export default {
name: "Company",
//import使"
components: {},
props: {},
data() {
//"
return {
tableData:[],
ruleForm:{
pageNum:1,
pageSize:8,
reviewStatus:''
},
total:0,
companyStatus:{},
companystatusList:[]
};
},
// data",
computed: {},
//data",
watch: {},
//",
methods: {
//
getList(){
selectcompanyList(this.ruleForm).then(response=>{
console.log(response)
this.tableData=response.data.companytotalList
this.total=response.data.total
})
},
//
handleSizeChange(val) {
console.log(`每页 ${val}`);
this.ruleForm.pageSize=val
this.getList()
},
handleCurrentChange(val) {
console.log(`当前页: ${val}`);
this.ruleForm.pageNum=val
this.getList()
},
//
getcompanystatusList(){
selectcompanystatus().then(response=>{
this.companystatusList=response.data
})
},
//
chosetype(index){
this.ruleForm.reviewStatus=this.companystatusList[index]
this.getList()
},
//
choseall(){
this.ruleForm.reviewStatus=''
this.getList()
},
},
// - 访this",
created() {
this.getList()
this.getcompanystatusList()
},
// - 访DOM",
mounted() {
},
beforeCreate() {
}, // - ",
beforeMount() {
}, // - ",
beforeUpdate() {
}, // - ",
updated() {
}, // - ",
beforeDestroy() {
}, // - ",
destroyed() {
}, // - ",
activated() {
} //keep-alive",
};
</script>
<style scoped>
</style>

View File

@ -0,0 +1,201 @@
<template>
<div>
<h2>实名认证</h2>
<el-divider></el-divider>
<span style="color: #1482f0">实名认证决定了账号属性实名认证一经通过后续付款方的银行开户名必须与聚合实名信息一致否则不给予入账且个人和企业认证不能互转</span><br><br>
<h4>选择认证类型</h4>
<center>
<!--个人认证-->
<div style="width: 70%;">
<el-row style="border: 2px solid #e0e0e0;">
<el-col :span="4"><div class="grid-content bg-purple"><center><h2>个人认证</h2></center></div></el-col>
<el-col :span="12"><div class="grid-content bg-purple-light">
<el-row>
<el-col :span="24"><div class="grid-content bg-purple-dark">
<span style="color: #1482f0">认证方式</span> 支持个人身份证认证人脸识别实时认证
</div></el-col>
</el-row>
<el-row>
<el-col :span="24"><div class="grid-content bg-purple-dark">
<span style="color: #1482f0">使用限制</span> 个人基础认证不支持部分企业专用类接口
</div></el-col>
</el-row>
</div></el-col>
<el-col :span="4" style="margin-top: 20px;"><div class="grid-content bg-purple">
<center> <el-button type="primary" @click="tocompanyauthentication(1)"></el-button></center>
</div></el-col>
</el-row>
</div><br><br><br>
<!--企业认证-->
<div style="width: 70%;">
<el-row style="border: 2px solid #e0e0e0;">
<el-col :span="4"><div class="grid-content bg-purple"><center><h2>企业认证</h2></center></div></el-col>
<el-col :span="12"><div class="grid-content bg-purple-light">
<el-row>
<el-col :span="24"><div class="grid-content bg-purple-dark">
<span style="color: #1482f0">适用群体</span> 企业党政及国家机关事业单位民办非企业单位社会团体个体工商户等
</div></el-col>
</el-row>
<el-row>
<el-col :span="24"><div class="grid-content bg-purple-dark">
<span style="color: #1482f0">基础认证</span> 上传企业营业执照快速认证支持程序代码方式api调用接口
</div></el-col>
</el-row>
<el-row>
<el-col :span="24"><div class="grid-content bg-purple-dark">
<span style="color: #1482f0">高级认证</span> 通过对公打款法人手机验证等方式进行认证支持API购买余额支付支付宝支付微信支付
</div></el-col>
</el-row>
</div></el-col>
<el-col :span="4" style="margin-top: 20px;"><div class="grid-content bg-purple">
<center> <el-button type="primary" @click="tocompanyauthentication(2)"></el-button></center>
</div></el-col>
</el-row>
</div>
</center>
<!--企业认证页面对话框-->
<el-dialog
:title="dialogtitle"
:visible.sync="dialogVisible"
width="30%"
:before-close="handleClose">
<!--个人认证-->
<div v-if="this.index==1">
</div>
<!--企业认证-->
<div v-if="this.index==2">
<h2>基本信息填写</h2><br>
<el-form :model="companyForm" status-icon :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm">
<el-form-item label="企业营业执照副本:" prop="pass">
<el-upload
action="/dev-api/market/company/upload"
list-type="picture-card"
:on-preview="handlePictureCardPreview"
:on-remove="handleRemove"
:on-success="handleSuccess">
<i class="el-icon-plus"></i>
</el-upload>
<el-dialog :visible.sync="dialogVisiblepicture">
<img width="100%" :src="dialogImageUrl" alt="">
</el-dialog>
<span>请上传清晰完整的营业执照副本照片</span>
</el-form-item>
<el-form-item label="公司名称:" prop="companyName">
<el-input type="text" v-model="companyForm.companyName" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="社会统一编码:" prop="USCI">
<el-input type="text" v-model="companyForm.USCI" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="企业法人姓名:" prop="companyLeader">
<el-input type="text" v-model="companyForm.companyLeader" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="联系人姓名:" prop="registrantName">
<el-input type="text" v-model="companyForm.registrantName" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="联系人电话:" prop="registrantPhone">
<el-input type="text" v-model="companyForm.registrantPhone" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="联系人职位:" prop="registrantPosition">
<el-input type="text" v-model="companyForm.registrantPosition" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="公司地址:" prop="companyAddress">
<el-input type="text" v-model="companyForm.companyAddress" autocomplete="off"></el-input>
</el-form-item>
</el-form>
</div>
<span slot="footer" class="dialog-footer">
<el-button @click="dialogVisible = false"> </el-button>
<el-button type="primary" @click="yes()"></el-button>
</span>
</el-dialog>
</div>
</template>
<script>
//jsjsjson,
//import from ',
export default {
name: "Authentication",
//import使"
components: {},
props: {},
data() {
//"
return {
dialogVisible:false,
index:'',
dialogtitle:'',
companyForm:{},
dialogImageUrl: '',
dialogVisiblepicture: false
};
},
// data",
computed: {},
//data",
watch: {},
//",
methods: {
//
tocompanyauthentication(index){
this.index=index
if (this.index === 1) {
this.dialogtitle= '个人认证';
} else if (this.index === 2) {
this.dialogtitle= '企业认证';
}
this.dialogVisible=true
},
handleClose(done) {
this.$confirm('确认关闭?')
.then(_ => {
done();
})
.catch(_ => {});
},
yes(){
this.index=''
this.dialogVisible=false
},
//
handleRemove(file, fileList) {
console.log(file, fileList);
},
handlePictureCardPreview(file) {
this.dialogImageUrl = file.url;
this.dialogVisible = true;
},
handleSuccess(response,file,fileList){
this.companyForm.businessLicense=response.data
}
},
// - 访this",
created() {
},
// - 访DOM",
mounted() {
},
beforeCreate() {
}, // - ",
beforeMount() {
}, // - ",
beforeUpdate() {
}, // - ",
updated() {
}, // - ",
beforeDestroy() {
}, // - ",
destroyed() {
}, // - ",
activated() {
} //keep-alive",
};
</script>
<style scoped>
</style>

View File

@ -0,0 +1,121 @@
<template>
<div>
<el-row :gutter="20">
<el-col :span="8"><div class="grid-content bg-purple">
</div></el-col>
<el-col :span="16"><div class="grid-content bg-purple">
<el-form :model="ruleForm" status-icon :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm">
<el-form-item label="用户名" prop="userName">
{{ruleForm.userName}}
</el-form-item>
<el-form-item label="用户类型" prop="">
<span>个人</span>
</el-form-item>
<el-form-item label="手机号" prop="phonenumber">
{{ruleForm.phonenumber}}
</el-form-item>
<el-form-item label="绑定邮箱" prop="email">
{{ruleForm.email}} <span style="color: #1482f0" @click="toemail">>></span>
</el-form-item>
<el-form-item label="认证信息" prop="userName">
<span style="color: #1482f0" @click="toauthentication">>>>></span>
</el-form-item>
</el-form>
</div></el-col>
</el-row>
<!--绑定邮箱-->
<el-dialog
title="邮箱绑定"
:visible.sync="dialogVisible"
width="30%"
:before-close="handleClose">
<el-form :model="EmailForm" status-icon :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm">
<el-form-item label="邮箱" prop="email">
<el-input type="text" v-model="EmailForm.email" autocomplete="off" placeholder="请输入绑定的邮箱"></el-input>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="dialogVisible = false"> </el-button>
<el-button type="primary" @click="yes(EmailForm)"> </el-button>
</span>
</el-dialog>
</div>
</template>
<script>
//jsjsjson,
//import from ',
import {linkemail} from "@/api/authentication/message";
export default {
name: "Easymessage",
//import使"
components: {},
props: {},
data() {
//"
return {
ruleForm:{},
EmailForm:{},
dialogVisible: false
};
},
// data",
computed: {},
//data",
watch: {},
//",
methods: {
//
toemail(){
this.dialogVisible=true
},
//
handleClose(done) {
this.$confirm('确认关闭?')
.then(_ => {
done();
})
.catch(_ => {});
},
//
yes(EmailForm){
linkemail(EmailForm).then(response=>{
if (response.code===200){
this.dialogVisible=false
}
})
},
//
toauthentication(){
this.$router.push("/authentication/index")
}
},
// - 访this",
created() {
},
// - 访DOM",
mounted() {
},
beforeCreate() {
}, // - ",
beforeMount() {
}, // - ",
beforeUpdate() {
}, // - ",
updated() {
}, // - ",
beforeDestroy() {
}, // - ",
destroyed() {
}, // - ",
activated() {
} //keep-alive",
};
</script>
<style scoped>
</style>

View File

@ -111,6 +111,12 @@ export default {
submitForm(){
this.getList()
},
//
gettypeList(){
selectTypeList().then(response=>{
this.typeList=response.data
})
},
//
chosetype(index1){
this.ruleForm.productType=this.typeList[index1]
@ -148,12 +154,7 @@ export default {
this.ruleForm.pageNum=val
this.getList()
},
//
gettypeList(){
selectTypeList().then(response=>{
this.typeList=response.data
})
}
},
// - 访this",
created() {